From 7d1e2037ade3f870f1a791e92ba3b917487c1cc1 Mon Sep 17 00:00:00 2001 From: INAGAKI Hiroshi Date: Sun, 4 Sep 2022 21:27:11 +0900 Subject: [PATCH] ipq40xx: add support for Sony NCP-HG100/Cellular Sony NCP-HG100/Cellular is a IoT Gateway with 2.4/5 GHz band 11ac (WiFi-5) wireless function, based on IPQ4019. Specification: - SoC : Qualcomm IPQ4019 - RAM : DDR3 512 MiB (H5TC4G63EFR) - Flash : eMMC 4 GiB (THGBMNG5D1LBAIT) - WLAN : 2.4/5 GHz 2T2R (IPQ4019) - Ethernet : 10/100/1000 Mbps x2 - Transceiver : Qualcomm QCA8072 - WWAN : Telit LN940A9 - Z-Wave : Silicon Labs ZM5101 - Bluetooth : Qualcomm CSR8811 - Audio DAC : Realtek ALC5629 - Audio Amp. : Realtek ALC1304 - Voice Input Processor : Conexant CX20924 - Micro Controller Unit : Nuvoton MINI54FDE - RGB LED, Fan, Temp. sensors - Touch Sensor : Cypress CY8C4014LQI - RGB LED driver : TI LP55231 (2x) - LEDs/Keys : 11x, 6x - UART : through-hole on PCB - J1: 3.3V, TX, RX, GND from tri-angle marking - 115200n8 - Power : 12 VDC, 2.5 A Flash instruction using initramfs image: 1. Prepare TFTP server with the IP address 192.168.132.100 and place the initramfs image to TFTP directory with the name "C0A88401.img" 2. Boot NCP-HG100/Cellular and interrupt after the message "Hit any key to stop autoboot: 2" 3. Perform the following commands and set bootcmd to allow booting from eMMC setenv bootcmd "mmc read 0x84000000 0x2e22 0x4000 && bootm 0x84000000" saveenv 4. Perform the following command to load/boot the OpenWrt initramfs image tftpboot && bootm 5. On the initramfs image, perform sysupgrade with the sysupgrade image (if needed, backup eMMC partitions by dd command and download to other place before performing sysupgrade) 6. Wait for ~120 seconds to complete flashing Known issues: - There are no drivers for audio-related chips/functions in Linux Kernel and OpenWrt, they cannot be used. - There is no driver for MINI54FDE Micro-Controller Unit, customized for this device by the firmware in the MCU. This chip controls the following functions, but they cannot be controlled in OpenWrt. - RGB LED - Fan this fan is controlled automatically by MCU by default, without driver - Thermal Sensors (2x) - Currently, there is no driver or tool for CY8C4014LQI and cannot be controlled. It cannot be exited from "booting mode" and moved to "normal op mode" after booting. And also, the 4x buttons (mic mute, vol down, vol up, alexa trigger) connected to the IC cannot be controlled. - it can be exited from "booting mode" by installing and executing i2cset command: opkg update opkg install i2c-tools i2cset -y 1 0x14 0xf 1 - There is a connection issue on the control by uqmi for the WWAN module. But modemmanager can be used without any issues and the use of it is recommended. - With the F2FS format, too many errors are reported on erasing eMMC partition "rootfs_data" while booting: [ 1.360270] sdhci: Secure Digital Host Controller Interface driver [ 1.363636] sdhci: Copyright(c) Pierre Ossman [ 1.369730] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.374729] sdhci_msm 7824900.sdhci: Got CD GPIO ... [ 1.413552] mmc0: SDHCI controller on 7824900.sdhci [7824900.sdhci] using ADMA 64-bit [ 1.528325] mmc0: new HS200 MMC card at address 0001 [ 1.530627] mmcblk0: mmc0:0001 004GA0 3.69 GiB [ 1.533530] mmcblk0boot0: mmc0:0001 004GA0 partition 1 2.00 MiB [ 1.537831] mmcblk0boot1: mmc0:0001 004GA0 partition 2 2.00 MiB [ 1.542918] mmcblk0rpmb: mmc0:0001 004GA0 partition 3 512 KiB, chardev (247:0) [ 1.550323] Alternate GPT is invalid, using primary GPT. [ 1.561669] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 ... [ 8.841400] mount_root: loading kmods from internal overlay [ 8.860241] kmodloader: loading kernel modules from //etc/modules-boot.d/* [ 8.863746] kmodloader: done loading kernel modules from //etc/modules-boot.d/* [ 9.240465] block: attempting to load /etc/config/fstab [ 9.246722] block: unable to load configuration (fstab: Entry not found) [ 9.246863] block: no usable configuration [ 9.254883] mount_root: overlay filesystem in /dev/mmcblk0p17 has not been formatted yet [ 9.438915] urandom_read: 5 callbacks suppressed [ 9.438924] random: mkfs.f2fs: uninitialized urandom read (16 bytes read) [ 12.243332] mmc_erase: erase error -110, status 0x800 [ 12.246638] mmc0: cache flush error -110 [ 15.134585] mmc_erase: erase error -110, status 0x800 [ 15.135891] mmc_erase: group start error -110, status 0x0 [ 15.139850] mmc_erase: group start error -110, status 0x0 ...(too many the same errors)... [ 17.350811] mmc_erase: group start error -110, status 0x0 [ 17.356197] mmc_erase: group start error -110, status 0x0 [ 17.439498] sdhci_msm 7824900.sdhci: Card stuck in wrong state! card_busy_detect status: 0xe00 [ 17.446910] mmc0: tuning execution failed: -5 [ 17.447111] mmc0: cache flush error -110 [ 18.012440] F2FS-fs (mmcblk0p17): Found nat_bits in checkpoint [ 18.062652] F2FS-fs (mmcblk0p17): Mounted with checkpoint version = 428fa16b [ 18.198691] block: attempting to load /etc/config/fstab [ 18.198972] block: unable to load configuration (fstab: Entry not found) [ 18.203029] block: no usable configuration [ 18.211371] mount_root: overlay filesystem has not been fully initialized yet [ 18.214487] mount_root: switching to f2fs overlay So, this support uses ext4 format instead which has no errors. Note: - The primary uart is shared for debug console and Z-Wave chip. The function is switched by GPIO15 (Linux: 427). value: 1: debug console 0: Z-Wave - NCP-HG100/Cellular has 2x os-image pairs in eMMC. - 0:HLOS, rootfs - 0:HLOS_1, rootfs_1 In OpenWrt, the first image pair is used. - "bootipq" command in U-Boot requires authentication with signed-image by default. To boot unsigned image of OpenWrt, use "mmc read" and "bootm" command instead. - This support is for "Cellular" variant of NCP-HG100 and not tested on "WLAN" (non-cellular) variant. - The board files of ipq-wifi may also be used in "WLAN" variant of NCP-HG100, but unconfirmed and add files as for "Cellular" variant. - "NET" LED is used to indicate WWAN status in stock firmware. - There is no MAC address information in the label on the case, use the address included in UUID in the label as "label-MAC" instead. - The "CLOUD" LEDs are partially used for indication of system status in stock firmware, use they as status LEDs in OpenWrt instead of RGB LED connected to the MCU. MAC addresses: LAN : 5C:FF:35:**:**:ED (ART, 0x6 (hex)) WAN : 5C:FF:35:**:**:EF (ART, 0x0 (hex)) 2.4 GHz: 5C:FF:35:**:**:ED (ART, 0x1006 (hex)) 5 GHz : 5C:FF:35:**:**:EE (ART, 0x5006 (hex)) partition layout in eMMC (by fdisk, GPT): Disk /dev/mmcblk0: 7733248 sectors, 3776M Logical sector size: 512 Disk identifier (GUID): **** Partition table holds up to 20 entries First usable sector is 34, last usable sector is 7634910 Number Start (sector) End (sector) Size Name 1 34 1057 512K 0:SBL1 2 1058 2081 512K 0:BOOTCONFIG 3 2082 3105 512K 0:QSEE 4 3106 4129 512K 0:QSEE_1 5 4130 4641 256K 0:CDT 6 4642 5153 256K 0:CDT_1 7 5154 6177 512K 0:BOOTCONFIG1 8 6178 6689 256K 0:APPSBLENV 9 6690 8737 1024K 0:APPSBL 10 8738 10785 1024K 0:APPSBL_1 11 10786 11297 256K 0:ART 12 11298 11809 256K 0:HSEE 13 11810 28193 8192K 0:HLOS 14 28194 44577 8192K 0:HLOS_1 15 44578 306721 128M rootfs 16 306722 568865 128M rootfs_1 17 568866 3958065 1654M rootfs_data [initial work] Signed-off-by: Iwao Yuki Co-developed-by: Iwao Yuki [adjustments, cleanups, commit message, sending patch] Signed-off-by: INAGAKI Hiroshi (dropped clk_unused_ignore, dropped 901-* patches, renamed key nodes, changed LEDs chan/labels to match func-en, made :net -> (w)wan leds) Signed-off-by: Christian Lamparter --- board-sony_ncp-hg100-cellular.qca4019 | Bin 0 -> 24340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 board-sony_ncp-hg100-cellular.qca4019 diff --git a/board-sony_ncp-hg100-cellular.qca4019 b/board-sony_ncp-hg100-cellular.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..6776864de7aa0b6d7da4dfbbeafdd20532974f84 GIT binary patch literal 24340 zcmeHPdr(tX8b1l)p-UHT2#A1}5I~590D)?d@J0-f0-_=T7J&+qNO&3^hA!CgK_MUl zwP1*#Wl$bX5gCgQz+!Ffj57Pj{;{)vw4K@A{;}@Rt~%4s?5^&)2{#FWXoAoNxL-K; zeCOQnJLfyUdr9ui_siWE8|@!`fEN^)_ES&yb57n$?@?0r6slg$+4;ayuCqzf&Q@t#l@21 zyb3rj364dFN&p}>9ft@)~7-x_b*fs^!T5FJMW_VX`% z4;CY?YwO76N30zLYMV9l(t-K~JL$S6G^%bZl4fmfZE0y~p(6lHVk3470Ar6jPwz_V^-|%&6 z>^=5X0>^qkuWrj6~R$F< zB!#+*y$gw?+Ta4x^4qVB-PhgXxBjNpi|5#c%Zkmhfe#_EbQ2MHwn$7IV71KW=?bqM z-dMZW4rE>i{Olsx_+tQIT_fuof2?1d=Xc&~Fe)ca%x0yT*V(u@nkaw(haZ>?00e>U zkO|}tix;FqF<`;!Hfj*e)VR56k~Q;6C+uI`%V1=8cmXbl1fG`y&}og3qCx=hwLt(E za4ES~2p~I>H)q4z-d>e-TpSS5vu+T0IciHIlaIg*1k5gzDK;NNxeNtg-~^O6>Ema> zH`l)LZw%Ew+r7Ph%c9QQsdIJe>>NM!Kt^`%ks?`JXID>O|Fx0P@rlVV9(?oI^c^~R zJkzdR*Nin#Mm!U$%7OA@8u2WsD*wr6H{uyk(?K-ovHsCrGpE7&3e=dKadLW2 zVe5rU1InAzUmMcb7b@D-&|c6GH`I;g#;1X}7jXz5<+J$wI1ut81mU7w7MCBgV)xhD zSxwQL*iHyajc3Or$<&?fok#>V^CI?IJO=(bhu3T67ROZneUM4~duj`b1j+X`Z7Mdn zV;``<`1g+14Jw!*o5@bazlUTr95>yXDOffB{SDoDF#VPMdwpX~+YT=1KDhtL)*$~L zMKs1xQS;!ftt>1l8YVmd<1dY)<&SIl@=NmXbtl4p+n^&W!274sXaFm?I5{~1tl(l| z`zvC%burlBpMeC#eiFVJC?v(1(;54d@(ty2w_rKKgrGEdyc2CdjY)_x9?LunI zLK{hj1M4&2lR%9Z84Qh(!SGLH z@OZ)k%yB8eZju5b!z}^gXklr+G9eJ75C{+mY&Zn8{Q0H$_y76l-@pIvyT3qG!oxy$ z!7oc8|K7%mLVoh(AFxlKe?Rv`&A(4Skd~_E?>~R~)7;8)@(KR^{N34I{4VWP3c9Rw6kX=MT33auUf`;4u{TFu?meczA^qN)pMibpJ^6Uy9fr1r&G{<% zc5J#+Q6)_m1blmITCS**<_I{`Hx(D8<$`#Q_w<;uUnUg^IBwW)#_rzp@dePKLm`nK z6tHGTmFH!pqBH?VIj-mvi3G_Uzv<5v?NYHIhC|03CTDznfXYlHO_!$6-d6U=B%=L- zUCP_C3!(~M9ES}ZI;6$8!_#UmL zm?%pf()0`rY4(;Be-oqEeP4jhmf-J1eExqC^iI9vrfCNeeN(K;E52uEKr4ij57J;s@lBRY#^NG4A{9dz9B&|77(V)YiymL*eUJdXNk>zwOb4A4-JkU?Tc^sIzcP!8Y;OI*|fcemUp#V*cc(% zanvDc;9BX$uv4BDw495BdEL>?9+lLb&H>>??itTYhwPTtL+^)(7+KV)v7ySI3V85`o<>-L-XDwiJ}!M|VWPf63p`#+Fw2#f## literal 0 HcmV?d00001 -- 2.30.2