From 6e67205a729dc3bc730245e43018cc01bdbe13c3 Mon Sep 17 00:00:00 2001 From: Giammarco Marzano Date: Wed, 14 Sep 2022 14:20:43 +0200 Subject: [PATCH] ipq40xx: Add ZTE MF289F It's a 4G Cat.20 router used by Vodafone Italy (called Vodafone FWA) and Vodafone DE\T-Mobile PL (called GigaCube). Modem is a MiniPCIe-to-USB based on Snapdragon X24, it supports 4CA aggregation. There are currently two hardware revisions, which differ on the 5Ghz radio: AT1 = QCA9984 5Ghz Radio on PCI-E bus AT2 = IPQ4019 5Ghz Radio inside IPQ4019 like 2.4Ghz Device specification -------------------- SoC Type: Qualcomm IPQ4019 RAM: 256 MiB Flash: 128 MiB SPI NAND (Winbond W25N01GV) ROM: 2MiB SPI Flash (GD25Q16) Wireless 2.4 GHz (IP4019): b/g/n, 2x2 Wireless 5 GHz: (QCA9984): a/n/ac, 4x4 HW REV AT1 (IPA4019): a/n/ac, 2x2 HW REV AT2 Ethernet: 2xGbE (WAN/LAN1, LAN2) USB ports: No Button: 2 (Reset/WPS) LEDs: 3 external leds: Network (white or red), Wifi, Power and 1 internal (blue) Power: 12 VDC, 1 A Connector type: Barrel Bootloader: U-Boot Installation ------------ 1. Place OpenWrt initramfs image for the device on a TFTP in the server's root. This example uses Server IP: 192.168.0.2 2. Connect serial console (115200,8n1) to serial connector GND (which is right next to the thing with MF289F MIMO-V1.0), RX, TX (refer to this image: https://ibb.co/31Gngpr). 3. Connect TFTP server to RJ-45 port (WAN/LAN1). 4. Stop in u-Boot (using ESC button) and run u-Boot commands: setenv serverip 192.168.0.2 setenv ipaddr 192.168.0.1 set fdt_high 0x85000000 tftp openwrt-ipq40xx-generic-zte_mf289f-initramfs-fit-zImage.itb bootm $loadaddr 5. Please make backup of original partitions, if you think about revert to stock, specially mtd16 (Web UI) and mtd17 (rootFS). Use /tmp as temporary storage and do: WEB PARITION -------------------------------------- cat /dev/mtd16 > /tmp/mtd16.bin scp /tmp/mtd16.bin root@YOURSERVERIP:/ rm /tmp/mtd16.bin ROOT PARITION -------------------------------------- cat /dev/mtd17 > /tmp/mtd17.bin scp /tmp/mtd17.bin root@YOURSERVERIP:/ rm /tmp/mtd17.bin 6. Login via ssh or serial and remove stock partitions (default IP 192.168.0.1): # this can return an error, if ubi was attached before # or rootfs part was erased before. ubiattach -m 17 # it could return error if rootfs part was erased before ubirmvol /dev/ubi0 -N ubi_rootfs # some devices doesn't have it ubirmvol /dev/ubi0 -N ubi_rootfs_data 7. download and install image via sysupgrade -n (either use wget/scp to copy the mf289f's squashfs-sysupgrade.bin to the device's /tmp directory) sysupgrade -n /tmp/openwrt-...-zte_mf289f-squashfs-sysupgrade.bin Sometimes it could print ubi attach error, but please ignore it if process goes forward. Flash Layout NAND: mtd8: 000a0000 00020000 "fota-flag" mtd9: 00080000 00020000 "0:ART" mtd10: 00080000 00020000 "mac" mtd11: 000c0000 00020000 "reserved2" mtd12: 00400000 00020000 "cfg-param" mtd13: 00400000 00020000 "log" mtd14: 000a0000 00020000 "oops" mtd15: 00500000 00020000 "reserved3" mtd16: 00800000 00020000 "web" mtd17: 01d00000 00020000 "rootfs" mtd18: 01900000 00020000 "data" mtd19: 03200000 00020000 "fota" mtd20: 0041e000 0001f000 "kernel" mtd21: 0101b000 0001f000 "ubi_rootfs" SPI: mtd0: 00040000 00010000 "0:SBL1" mtd1: 00020000 00010000 "0:MIBIB" mtd2: 00060000 00010000 "0:QSEE" mtd3: 00010000 00010000 "0:CDT" mtd4: 00010000 00010000 "0:DDRPARAMS" mtd5: 00010000 00010000 "0:APPSBLENV" mtd6: 000c0000 00010000 "0:APPSBL" mtd7: 00050000 00010000 "0:reserved1" Back to Stock (!!! need original dump taken from initramfs !!!) ------------- 1. Place mtd16.bin and mtd17.bin initramfs image for the device on a TFTP in the server's root. This example uses Server IP: 192.168.0.2 2. Connect serial console (115200,8n1) to serial console connector (refer to the pin-out from above). 3. Connect TFTP server to RJ-45 port (WAN/LAN1). 4. rename mtd16.bin to web.img and mtd17.bin to root_uImage_s 5. Stop in u-Boot (using ESC button) and run u-Boot commands: This will erase RootFS+Web: nand erase 0x1000000 0x800000 nand erase 0x1800000 0x1D00000 This will restore RootFS: tftpboot 0x84000000 ${dir}root_uImage_s nand erase 0x1800000 0x1D00000 nand write $fileaddr 0x1800000 $filesize This will restore Web Interface: tftpboot 0x84000000 ${dir}web.img nand erase 0x1000000 0x800000 nand write $fileaddr 0x1000000 $filesize After first boot on stock firwmare, do a factory reset. Push reset button for 5 seconds so all parameters will be reverted to the one printed on label on bottom of the router Signed-off-by: Giammarco Marzano Reviewed-by: Lech Perczak (Warning: commit message did not conform to UTF-8 - hopefully fixed?, added description of the pin-out if image goes down, reformatted commit message to be hopefully somewhat readable on git-web, redid some of the gpio-buttons & leds DT nodes, etc.) Signed-off-by: Christian Lamparter --- board-zte_mf289f.qca4019 | Bin 0 -> 24308 bytes board-zte_mf289f.qca9984 | Bin 0 -> 12204 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 board-zte_mf289f.qca4019 create mode 100644 board-zte_mf289f.qca9984 diff --git a/board-zte_mf289f.qca4019 b/board-zte_mf289f.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..3a4cb8b888cc7e7282b064fce2c0d6e48f562702 GIT binary patch literal 24308 zcmeHPdr(tX8b1j^)WyOLAtK->oQjvu$S|-I;aQcC|b0%8Jt@ka^; z*woR(GO#iIdjJLG0kF{yYXQIjz%dlB(ePY9<8s;9PymF6hJOG2IYr1=2Y&qXxhNvp zzyTI1_x0^sv@?O1P~fqd)=bf>-K!c{nsw`1b1a9!i*B?yW=sXK&cs(h6 z;v;Av#SQx4AjMfJ0zWuhYfVX3x*&MQz<0iXKhvs#@-toLA0`dv<6*e98c;I4vX!On zZOX3-FZ9iDPnm2ht4oma4m!t<50rK!obfAj$?F)*?g&4_DtF57Ys{C27x?Vmnsl$_ zXzgxEK(=$_XZxxs46{SY9_HcGv4OgIylIy@!u-I9~A2o9*f8#r9;gGid9HYZAg2vRr-yGBeXt z*=!Fu(GNd7|8{yBy8;q$y}h)$|9<<2Z*+B7$F25uR2uDnu%81wVRQB`UOfMow(oL# zT`~l(N8ltSb-G6X9ybvMUWUY1_?n! zkP`Xvx|8oVx3w><0O5?>Gpj;J={)*lI^v4D@?1rZs3YQn#-g#j*vGL*GMdaw7Dc1c zNFvHd`8@t(KC%ZjMi-g?`y{Z10x5s~XZx-b)mnj~0VfL;o*} z)vbnWQgRKZoP81{5+x%DkXyqDF!R)F5~X(UtU|Fr~8GWK(@&W?_0{s0rEYvz{&^dp9KOg9ymDZqpGyYj+ z&5E|7L06&y0-V0#)&md%d>|9Z1163mjLyJ>l`ZrT7^!i0C!#e(c>(GdYT4|ZHVzO9 zDB$~J0OYMh0M(hgF$b28j(CvKpbw;Sbt3R`*q%Y99)b}F7+t2)*1r$s3KU|sV^Ef& z6J^3T*PhWYjFrAV-ke`DX(M;qSe-UHC)%?wGbis*v9jetdsk2I^`YU>vGGqHe(}Wo z13Ga$^R8T1OmBe4K}GZiA`*(nKt-_)L=+T{e~S1GLvVC<6 z&i;1pfoSAG-nLymtl<3ZSG0V4ytyFbikFRVe^Y-lJ-)sEVIyrVWgO$Z8{^xfh_0!Y z_ine&#+EkAd5T=VQ z*4P)?uou2T%U!78+V3cMIt|OyUsFIehYALUs9^9rDtIzx1D*+K zz+s#QqITH=#M#Dn=BHhjafBR&M1VwK4Iwbcmp8<>|Igq5^7U6={T||><=|s{`lysha})hcqu0?jSeMMbGNLExs=ll2kX9xp`nhSw zRPW&~d0;Nxf8fUjaH-wub1Jzq54xmMol=%6#OfQWZmBFWMi4Z0SAA7kBRwE+)f#Yp zur;)*jw_24sqo-sWwmsVI0!n@p^%GH1l*}x>PyNpX<8x&Gx%hZ3sJhM=}?s`a~1JZ zWAI?PB1f7G-Mj*^j258qXqT!=8ke{QH+TrwV2)Vfr9SDBDJPIbiA2c=0;^$b7+D&r zUb6_aj~u-gbs@09t@4Wc*PZd_d~3HHt+<$Ql3VIpV4rZmxA5#Ph1cQD;wvK+*J9g( z8rW4ExF3!{oR7|9<_97Lw{};|1>J6 z7mQsmy%_xtw~W63!GNSKs^05}OK$Dp{>y<4u9dIk4-8j*5Z&xoySZ4|nR+Uu!ui0a z-M9M-T6fm5-g3_V^tNIkt<(1eQ>MNlzZ%iVuB0Dq>_|HuR_P+PPrNyJ@IAph9x~_L zKDDGf{v1n={7%@uQEpNrT+Ymm?qD1dhUfj$tB@wuX3lHv&{$I z4wJI8>CqztLHVu;#=79>WcJ0!RGm8{Xa=_y?c7 z!SeF-WP4@+t9kmyLM}W(w_k6uSpC8|2)g|Si_KvGeo{puU=V=?bo&>2-ApBWSh}B{ z8*8okb9{S__E9kI?yeY<89sK#)zyX6tsV@lf4@VXJ!C>*T>D-~9pc!-1X(cAkbl3i zms^jek0wa4Zr`Sy6MYq1&0w_hxBq@C3wU`ou`7{^{$Z?y|tqGKfA-qN3v=8gA%FoqY> literal 0 HcmV?d00001 diff --git a/board-zte_mf289f.qca9984 b/board-zte_mf289f.qca9984 new file mode 100644 index 0000000000000000000000000000000000000000..0422bc852feebf5bd70cbe74e8c6ade6a0515be2 GIT binary patch literal 12204 zcmeHMdr(u^89%v63<^qah$zTj-ac527+63JAV|@XyBaNn#v&44Vl+y_V^MH%2^7{1 zY>EaS+aMLfMi)}BxM3GH5kX`|nf}okce<_9cBX%>Gu?J}ZO7*JoSWPb1GwO7i%z~T z=bYd9&i6R?yBF>~=j_^&x;8ay+xnQywP`z3cc%lTQVAew*P$AKTv+le%92V84nAR-&k zdLTA7_MhK=%aRBe0E(hgn8Fs$VEDu0uiaI&_DIM-<%kLZ%OP}EcJ_T~l$s6z-@#D8 zM?y45)Dk$V8A=gyxm-4z&0?`&Z6^Q*C^Rl)bGQqhR~&jscM)q1wh&ynun2C|v9iqN;VgTA*FaV5x0afUf_fQrm2H=DX2H>Z3FNEs1 zU9){-ql1Bs)JE#jf9x25SgMWIIZpk-_O&hBVVz6mQb!#60HjhRE$327o6=TG<8$bl-az2XZ=ag3_MSmLAwEt!?Q+1r0>IP*l|Fl>~tV^A9;M!Uf<2j;9i- z_v$2DGTxog?2oW;I>Ws1^Cr0u5Px{WoVRM)6ebqi$ z!V^duo%Un!&}zP{t5#*p#AA0%y_yC^0W`Q{>eAFGWYRcjV1NcPS-jI=V$@{NsZ}|$ zc*|YGXBv&-pfnYk>NKh%S<1wi$*B8<>VRwmGWZBZFc0gy)D4Qm(sc7}gyj3TC7DL_ zz10o!;%ynGJGxF)jVwEHJsqL#m(aip{hn47N+o8izC(Qqq9pUE-k@$oPE1z4QQf3a zN;8}W7OUa1rdF{>y3Rai=-0HUl(L_|$r&|`iUZOF%dnvfCL%`~=P=NMv0>9yU0rpa zJjHw$8Z@g8%Xe8u3af? zU6{;ntuosP^IPxqNWq|_d(Aoj59-Z7yAperP~)Y8!=?T2c1AU?s5agx`E09xRpass z)7_Ip?_Le6$5ov}M|&mbA{zXEe(Ktuu9%jf8h**p&5E9#?Qb^*R<@1iUQadzYXm25 z-%Y!;O5^{Y??L^IlHPb-h#FUZGI-D!rwy**A8a323?+1hXz}X1_qKLLX_r^?kC;aG z_a*nggqR8p3s~{i zvkNo2ht>FU-(DJOkC7f z1!(zN{)5Gs7v|;a->xt84T9_{e+s^X3_#SsD2ge^*cgSu{YBLGvDwQ_xPAFOd@_&> zU8C+PMIo6HUNR#?@_*Be(4@~pY!1b7^XJQj`=@UHSS%Yr8=uTPP+P#BoF6lnB-VCT zlOrypJA`#WJ_afv1JH~87UD+GfTjV4u{u~ErLmF5@56a_LB0&SA;S}RYyfKoZIBW5 zVMwL{TI@XJB`h2=08LmE7Qn(F|6>Z#W|I}vo)x`py;%i)c}iM3=XET^FVE|Xdm?j6 zGy@L+fNd4rHhbXShCvD;h@imb9`xcl2nu9u=Nl3sie3$G?)*eA{$zVBU-t}9eLg}C zrx5HtZyZJEn&%+>8WM9|gOGlVjPdiTT5>P^=h`taK2y7DWn{$vv)E7W>}PfM(>YR_ zwKpfPutcLhd;V7)UB;fifx(-%N5>z`eZb`$Z*E_%uZ=dK&p}B+6LS(upMjETP0T4M zef~*`o0t>OxhHW(i#I>JugzodW=(W9XU03SbBkNr+Ph7kTgGO>Z&p?&uSRGS;z2}^ zD2Nn-bXz)35~PSE(?Ogq4wn!Tk%WwUY3u9BsB=O7Vt