01-zte_mf269.bin.patch 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. From c8b8a6adca5bfb49a9312eb3ba17a68f53ffd63e Mon Sep 17 00:00:00 2001
  2. From: Hugo Yuan <[email protected]>
  3. Date: Thu, 8 Sep 2022 20:27:05 +0800
  4. Subject: [PATCH] ipq807x: add support for ZTE MF269
  5. Co-authored-by: AmadeusGhost <[email protected]>
  6. Signed-off-by: Tianling Shen <[email protected]>
  7. ---
  8. package/boot/uboot-envtools/files/ipq807x | 3 +-
  9. package/firmware/ipq-wifi/Makefile | 2 +
  10. .../firmware/ipq-wifi/board-zte_mf269.ipq8074 | Bin 0 -> 131172 bytes
  11. .../ipq807x/base-files/etc/board.d/02_network | 24 +-
  12. .../etc/hotplug.d/firmware/11-ath11k-caldata | 3 +-
  13. .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 18 ++
  14. .../base-files/lib/upgrade/platform.sh | 4 +
  15. .../arm64/boot/dts/qcom/ipq8071-mf269.dts | 212 ++++++++++++++++++
  16. target/linux/ipq807x/image/generic.mk | 13 ++
  17. 9 files changed, 276 insertions(+), 3 deletions(-)
  18. create mode 100644 package/firmware/ipq-wifi/board-zte_mf269.ipq8074
  19. create mode 100644 target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
  20. create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
  21. diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x
  22. index 5c5b77089ac..4444021defe 100644
  23. --- a/package/boot/uboot-envtools/files/ipq807x
  24. +++ b/package/boot/uboot-envtools/files/ipq807x
  25. @@ -27,7 +27,8 @@ edimax,cax1800)
  26. ;;
  27. redmi,ax6|\
  28. xiaomi,ax3600|\
  29. -xiaomi,ax9000)
  30. +xiaomi,ax9000|\
  31. +zte,mf269)
  32. idx="$(find_mtd_index 0:appsblenv)"
  33. [ -n "$idx" ] && \
  34. ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000"
  35. diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
  36. index 32988910c0a..763eeb3a137 100644
  37. --- a/package/firmware/ipq-wifi/Makefile
  38. +++ b/package/firmware/ipq-wifi/Makefile
  39. @@ -38,6 +38,7 @@ ALLWIFIBOARDS:= \
  40. wallys_dr40x9 \
  41. xiaomi_ax3600 \
  42. xiaomi_ax9000 \
  43. + zte_mf269 \
  44. zyxel_nbg7815
  45. ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
  46. @@ -122,6 +123,7 @@ $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
  47. $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
  48. $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
  49. $(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000))
  50. +$(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269))
  51. $(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815))
  52. $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
  53. diff --git a/package/firmware/ipq-wifi/board-zte_mf269.ipq8074 b/package/firmware/ipq-wifi/board-zte_mf269.ipq8074
  54. new file mode 100644
  55. index 0000000000000000000000000000000000000000..473fceabc4e532a3099c0210562a31188e0c1988
  56. GIT binary patch
  57. literal 131172
  58. zcmeHw3vg7&neIPlhC#wY2qDb_1R6=BhY3zF79b=6l0YCp5<(gYNeGaHY`_LAFktbp
  59. zd1C}J<{{ho5u13u*{sXE>o`v0+KLnBUD+gCx3>1?)~2#~t+UDQ-MU3>Qn#|Vvex~+
  60. zbLNcBfMAZEMyPxKp6S24|L(uP{`+xy&Y9V;qV$2%P{o4}u6v+teQE7V*}Z$Wz*UIG
  61. z4=I3eKk&rTwjJ&B_U_*Kz_uMbJ0IBDv2?!9wLjjruY>G@g$w5$Y}>c9ZO{It&7txK
  62. zs#Yynw8Wv8pov3VE<JdB>LQ;@oX3*$8}#>$`g^1P-lV@b>+hTN+<3e4AVc|lGYVq}
  63. z?h-gHD#nN(;JtN#xCs`O?3k{<7CM&cuOdgG{#x!>tiP6pKbJU)_19uYzW!S1SfIa>
  64. z9BJWKF+OKTa8D4HOfXq8KUp$ASu#IaGCx@|KUp$ASu#Hj=Maa(Z89R0qx-r)L50RQ
  65. z0-F3u@AdlGx3*)NOuIGmHZjJ`6i)oyZ8D8O^jlFCi8%2ZjEfQ<MLow0o=!=Kf@CmQ
  66. zj(T3VTaN#o{KJR;^Y}lN{ImS(!;c1E<F&9GyyWdA9KJZ`-Ry6#dF&LIq#65y*jZ!e
  67. za5(;mWu)K7mbiCwxPZf*{Jqrj%9>DPOKZoDo=d&gUcLV27v6s7z4t%(=68Sa<C_}k
  68. ziklKoH)YC{IDWeL?uNf9-w@d5A;>6^*a%FL5Bt{(ZV(La&Y{@FsvHV|F+;#DKkB#P
  69. zF{@Qoq!1V#1SX3weC6(tV>iA%ZF!c(P5YhZa5$`f9krMS$6PqXNtxtWYE^9DLQsNc
  70. z@k1+QkeXPv8e%w3e)KX$I}dkXd*kiCuoIc{7a}vSh<Nsk%-9S(06_xKh{NTi>(_lT
  71. zYn$`ukiR72?Gj086G>VL`Ao>8CtSabEg$$Nk+iRi_}>&sJ%##lzINY2$OmwW_P=e&
  72. z|6F9&2O>V`kwSU2Vag&A_jJhrXKeXHaC5$Z`g?%E0bsBNWh_S<g3tk10Iq+DUB;Zx
  73. z1B1)J;1J|nAYUBD5VNc6SFz;-KMiAmzDPX{d6Y3I41N~I0D7cQ-ozkz5E!r@*@h!G
  74. z*@4|QK=)a&1K(k^VH@mV88Da)4F9`N-2Y(%1Je#n44Qxe`q8c(qyt0U4&H?RCkzbY
  75. z7vR7y4H*1BcKx)2z+1rJSzz!aaNLSEl%Wmj(4ntSTtAOpMgVosg1is%sjVW@OGTz)
  76. zEKI>Z-u-Vj<V`z3Ik(t>4GeV*K7{_C0|qC70c?5D7+@^S!hGPxSV)0<Qc1WUKL!Rr
  77. zv(X0F;H>9>0p^3$HppWvOw9rYQ|w`o0b7pD2ejoDiyaIXgFnR9U$+Cc!D`D((T41B
  78. z8-5qNjLg488z>J9Q!y5&V=PQfhrAmY{A+A^9fPlh=R^~OBG|GQwmcLJpu=G8Kqk1O
  79. z9ZYZtL}4Hb0}KLX2MPnug~|>T2BsYxIkoNR(p`c2)K!cz+=Ua(dkfmKYyB(D7?EdR
  80. zYra@`ET_|py`<?b{#onuOV4KQP2Fn7h#Wt&;Xujmj0Vr@{<s%TwC-Elo>!NOJ*4R_
  81. zz82~!LU}%m?3wE=y@jW;_F2n2eKPdK!flx$Pq`^6a_VsXV~aKgD}C6HneLfa8+sNW
  82. z4es$;%Ip5z*52aNnVr`1&OP1m_~Na>8Xv9+On3Ilh8>F=gKK=)o0(28@2TuPR{dUh
  83. zv-SDn)7ejWTFqP{-A5aD7i<Zx_m%X=J>Ru;XK_>R+LVX-<IX|9;^UdSQgJ<Gx)<MU
  84. z?OjU!ESO$C-11oArtHd;g=Q|1YX{mMSz4dBI`uRCaaUh&d9L_a=3^<A@}QqyUJCY!
  85. z$|(fy1_V00-x%mZNxNCM6DLl{sZ%)kQEoybP+8m9zN6>Lt8cvh?)x8n`^V-1XXG>Z
  86. zZIR6PaNdct4gaG!>#Gw<#`#cUGR`+_AeZwUk>FQE0x#lhU>C0KA<ua_DHUb7Vi%C}
  87. zJ&~+;MAC6CFl!Iw8z7IlItkbGiIZ%|v;Hrm{^ubN{e88N#~p}CGa!G<sJOMfJe=!f
  88. z;fynI5EyjeoNEOzz`0B^WD{+iapvG$E)(a2>9{IRYeoH7LsMp>epHoU<7_OO^1xn~
  89. z$6D)K3i&k1<7_SAp9dQ1(QU}3JoHaLfckMJ#63o8CglGFc^l_a+`G~Rzb}%3ewgzD
  90. z%6J?YYy<|2fdTp<!A3u1e+V4kg&x3S<_?^b)u0`Vpobr2#6{~o5Eq1eChAXr3H3wX
  91. zLwR746o7o<KoZe$+22C_UxGZaoVhbxKlHa-f8L+NjxGTMob%4X`P@vLQF=0f0jf!~
  92. zaaNs!v$0Ib56cd&LLTSDL$RYg*g+P~7X#3Lb~`XEgB?(RoUta__`blf0@wk@W9C<Z
  93. z0mhRbcNKdu9+T0Ji5}R2&G8(BeBfGmJcrPaxEVMJ@^;3vZU<ky$qq2425kqxQn!N*
  94. zsGoK)6ZHd&SnhuGWAGyE0ONU1E6OMV27$00*!bQi2X>T+en`hTZ`u&Xb2jbhc6RWK
  95. z*z-Xi<g=i^ZU?aAh#laZc~Ex1`2hW(&j*;7BlCd|cHoYMq6p{ph#kO=e1o-vZvqF5
  96. z=Q)?r2ChrB=z|B*h9uM<yL!pSx|W4?Exi|g_!#B`$fqoU9n3-*z#^8@=L6Ioz`Qz}
  97. z^D3^jJVEH-g#1Ub`ysL}a6F?Qe9KY)9Mq4B6KwP&*M$tu>qjBK4f3Us4?tdnyp8!N
  98. zmv%_`gOJDdkPrGt))gD;k~tq_p&v5d1qPVg{GGs{5f~Hz1G{zrJL38tnGfor$6)4z
  99. zZ=oHiU$+Cy>z)m$e?D-?fDY4Q^`c1jcToSAhhYbA8tX!o9b`iX%!P@+v1tduF0w8R
  100. z)($Y9BX-apwuAIR*a7s<f*tGogUuE@!1q>m_9vzt1iy=Z_zL;~<H^4Z{SX2M=*PrV
  101. z*dxY7ESC*CGWQ3wu)m1x^I%7blVeGvA5ni6>Q8?W;~Ddjmv)5ng{0Y#zt4s|=YwI`
  102. z!Q4NC4wzRnvA(8vKnKnTs5=?o<0jhNr|I)@7se9$!M_yiGvy~ie;eO@<#L}2JJRR%
  103. zR>)&MNDV+9d#gkn-=WTh9R=|ntiG<bLH{!7p9y&f<ZbM82ebq356}<E3sFX@O*{CG
  104. zr5`Y_>+>?^6T9<rWIVrsHoy+Ob+7}@>uJ!z#=IV}Bg#X6FYGvCM+vd*XfDQ6HrDry
  105. z0~ibF$C=ohcrYH5v0qQLF|X%vJhC6LF3jGFe#Cr`igh6wV<7RjeK8e?vIF#^ZU-5V
  106. z=RWV>W6SIN8|n``o`d-$>Uzh<x)!kmtnZQeU^sTbeH!fm^Lh&Hz~(+JvfsDLoBKQ)
  107. z*BjZ;KkKVE%_kVsN$88jsWH1j=DuOf2O0Z;V+-1V@$6wgVqQ(OvA%Mjcw0NL@m+c@
  108. z#<M=3V4tenQ3>oQJ#0rd<^$aho`oG?KAN)?`a?dl&$Y3?h}Z$fbLN*(2KpgtT}Z)v
  109. zpvA^9G9I6Y4(50+43B3U^SXI{pzkkWhrW8)(L<2;pdVea>kobi{l5r1xQ6<%E_oXu
  110. zkG@O_Kt3_H{DAYpQ0xHX@s{~usCEF|?XC-Xn2+>zfp)M37%aEgfsN~(h#g>kjXFo-
  111. zetiKjOokoAhOvKrAF3UE6YcmC=G7~>?!@_luLk3x0R1=}I@qXRw}W>Eumg-KTXul)
  112. zn2mWo;~;P}*M&jYfj*vlpg-lep&wSDAA-QpiTZ8K%em}Fj6uqq*DI-56ZL(njr|4Z
  113. zgY3)3x|aSh>c?E@p}fugO_Uv=AEK_?24M%mZ^4e<g*>n{&w;q#w|m`}19{yJfW<6a
  114. zFAUla%=&>v<hqmk!;b9Ou|A%#PmG)&lmbVt&#*x|=SV!yvz|vrt~)W8*}2}}b)PQ(
  115. zB<uio=wF6$FdOyT+-LIqK%WmFe~TU4*x#6TpzqV(!+7e2Em`Mv=#ppy$jJKq0^~8T
  116. zNA_tLQ+C$p-0#4izk+^%d>ZQaV_iti2M)6^Ck&?k7g7Hn)X#MVW5VwKK*y2$Eb|;`
  117. zuy(-py=NHn!JX{D#y&G*2bfPH`y1L3=K~x2n}{7?JPmj*Yj>ZAe$=n~xGq@FaWFU8
  118. zx$e{L;LGR-$frTxAA%h`GzdFj{gA)q9EtVYxZdEotbVSH{eI+JITQ6eAaCP7a(!Os
  119. zyi9rS(+0UdN94KRZ-aap=A*1|{Wh-q`29$bc5LnsFrN(OdM9EB-vo|d1df>3XLVYx
  120. z|NX$h&h`KIur9m<d5*`S%m?2`J0KrG{b?A_{*ADMg}?zeon&K!5V`Jz9YxJ&HtkS9
  121. zPvp8l9L;{j-ooy6W27HApKO5+gX{;>4g&ij-wt{1FK7oE@V8?Jm`{S3k9gh7^N(4O
  122. z_ri`-c>XYm@0o61pZ$&KhsEdvERcy96R}+6To>#6P_7$uV28umC+gRo*q;pbd#3x}
  123. zG_D&nVF&50z_A24!VXffJ}23{ZqxT^=*RSJmVUtXf0B)Rprhs^)USWfg?_X<AI-&l
  124. zmU9JT5%mXP2We#(%Nfug9hYQdJ~QV7WLItiBcSYH0(ZWp>B<f)U`*hkvV#fS`Ie?D
  125. zJFtK;frH8pCUEClny&1?0>%UmDm$3Koo{KnvI7ek6F8{sU;=l(rRmBJEMQFFpt6Gr
  126. z-1(NKD?6}&F@b~14kmEtTbi!yzyihu4k|mCz@2Yty0QZc7!x>X+QH>ln$H&=$$r$^
  127. z+z-Z6r)%~v-<8+mtL%?E_DsjI<$D4Ro{Ijs(>)z0OZMe$^VjyrU3{u>_rgsX>r#vQ
  128. z<9g3G9$L5~qtU;<Kd$>q{i%{eIoo+3n(3~c-g;n3M^?zU(u~2sDZSo&ammx!k9%;>
  129. zm+6k3+tBsUj=;ugxChL1m!E4sR`hsq>x|WA41QziO8tpNduKNCS$fl*KC<DlrEPf|
  130. z_}q}`u68#b%7=a_7TMmb&8PGC23oDMmru4lQP7@M>%~1krhDPF&CeD;mAl)&*^Ci+
  131. z`b^D%l0A7_{8jyNpM9?V*z(T2t*MqeUb?#ZMA6=yc0T)Ky4O!^+gH?@Q{yW!V??f=
  132. zYwXJ3p0&~Xn@TTV-Ew;I-mED7E}Yo7Z(&<TZK_4TBQLaFTyQY`5kKy^Gu_i?YVn&&
  133. z(fW0FHym2>XjYSFjhRd2<=)MwiuUDfo3XAx?$YU&1B=l|UP~YKoDUr?=?pZbSY$uj
  134. z+kU3-iQqOq-)6e&XKD{F+nwH!vdWARIdQG_+`=aV+f#8Loav6A-EgpUPkOx-zq98W
  135. z4lUl9*<`i9S9@DeEqx+y8-Me{bmvbs9az+n8Jb>f#)zElu06E8Gq*LxV!N+hZ9lVQ
  136. zU$EUOd+kE|Q$@RTHe2iM?rl81cz<R)pZ7G~*=IseF4`Xbn^dno+woM%9{lcAxtU9(
  137. zw|CRYCBVR1$Mfgfjx67mv&nB6Tj!r??#h2STJ~gj=t${a=xo9C;@K^SiXP2w@>=39
  138. z^fsSaav*CPpZhW0#q*mE7osnHYt0yu*LvEHl<dljs`u3wwwx~7pZhSMO*h?(=i82!
  139. z?8)8iuQp>uE_b&aUbsDTqxCnqPE)^qxov)n?Or~&`AE@YS<OC+z4Z3Bo>_VzyMy<i
  140. zo9@#2&CoB{<hAJ6dw%WSVzkYw^WkUP&MZ5S`-oNcv*&8}=Rcg=GJUC8n#haYZHEiC
  141. z2RC{xW9#HI^@mD2bGN2i`ux(_&0R}&1{=MWxT{yUo+^4GyFChno~=iVcV%y~&VSu!
  142. z>kk$@l3DMw*zT$4>W(dZJg_CzGOwLFS$|*=@_8)zUg>T>Qn)>Pqjl_`JQq4tdXs)v
  143. z&bD?H?Z}F1NAHy_CyVxFw^?oI<(_Rvm)&GTPo3D-wR}gQCe<>poqMj~*y6`Cws<Z2
  144. zT{zWz@Kc+!>b(~IUOm%suy9*;oe%f4n(oZ$hJ*PX8KG3mIKOgg%YmYYGwZBl|JlpU
  145. zCztHQJY*SzC(qS&E!dH_)jFTPeqqa@;+?roehc=!-7P1U?8|Po&JpLIX*#rIXJ(_-
  146. z#$SPc1s%Cj>%zG+O;0X-I5TRzJ$I(%$t90uMfK5{3k^pX@5<QZwT!n@_)WR|hx1xe
  147. zEbV>yY|H-Qj+}arrM(xPZF;J3Pv&N?Wh^}NOv9l?&@a_8246Yd4*YVW@VjuP8Tw^K
  148. z*};V~jRy-J&WQT$x!13>pIEjxuZ_>?nC{wz)+0+F%W3vo#?dQhTAnE0mJ_n}(bE@d
  149. zjx5Lg=dtAL>25w;@MvaJs%30lI?=o@e{1G?&vLT{kypC69a)O;=C|Z~>6xm|q8-5o
  150. zt8Kh|Y2A~>o!PBEiw#|WcEf?v-MK9(7Oajx-EnaFBZ2A^OC4u=LPr+?dyfVCOJ_HA
  151. z72a&)$G7fXyd|^RV_DB%J74nH{Px^t>wNGM_6LO>S+yQZzg;}P5$i&*(Yh{NJKuho
  152. zZJS=w-`*=HHgy)YW!G5O{in~>c46JxXk8aBA8*-P(3-X0W08ISXzT8R=HNO{VSjmN
  153. zPBc8RpfzKIb-Z0Wx@A}4rmVHo7xd>-A%%cKKp~(IPzWdl6aoqXg}~i}KyCY#H{Sg=
  154. ze!OS+P8)s^cP`<w?(qB7ba)Q-tnNh4>F&<5Dpet%5Kssx1QY@a0fm4<Kp~(IPzWdl
  155. z6aoqXg@8gpA)pXY2q**;0tx|zfI>hapb$_9C<GJ&3IT<HLO>y)5Kssx1QY@a0fm4<
  156. zKp~(IPzWdl6aor?y9a@I$(u}VT<*9j2~!iNB~4GBk&^21`usCzrOgRs2D5W=``{+W
  157. zaQwGJpX5n_lt_itNTamM4(XIGIWFhql3bJP@&$QE-oMT3P3e*S(jvu@CV%R?^$()1
  158. zca-MgufO1e*+DBwv&4xbjww?T5|ff6%FmvY9>~bdVgvH-pKGrTECv5dBmuN!{-E1p
  159. zzYW=N{f!99yhs}i4b=NYMj#l>0%d1rWMpM#WM<sNVg!tGI&CvMh`Iw=8L0mz7XL>!
  160. z%IOoi@1xp2$I2zZS^2vu>~uOO!QD+Nje;&y#HFt@o!y^(J8PJ36x176MOHSp?C81v
  161. z-VYv};BH)Xno@Se5#YXb#0ymgDg+b)qlUnJ@-@Be1$}pZg<5;Az4^`uKe%(Q1$~3f
  162. zSJ2o0I^2D2?qDa71aa~2ccsE`vXZX2xR@UWa3yf~$T#`<^XJVQuVKqiu8o>KsDc#&
  163. z;}L;k4)&W|et!NuOa;0_IDa@{qi7TeH=Ho_pqrPMmuG~A8x92e%Q3_A^3u|LzFXs2
  164. zS9Bf|H|D)L%-jRTv;AhgnP)hdSY`9)8*W}+FgUC*6@=?=uQhBRA49i-0_tNsi~(d~
  165. zY0B`E>I}yQt+GbBC~#cZqZRu*hfUnrcQ=PAIZ%8UTRp#-XT<Os6MMWfCTueuZP{p-
  166. zvPT0CJ9DTx-`U4l2Rn?nHLUFMRt$$~kK=KVp>$RVC<GJ&3IT<HLg4N~V5<D?Dm8NA
  167. zmq;C2g2SO{@D7K=iLg_1+(}!98+qKw>_+~{2v3fYKMr}~kUtLj;}MR(bN<dZ`fKle
  168. zd*JZ$d(;W~LeLiixCDKH4!UDs2>L?M7lOVJ^o7Le3qfB9`a;kbg1!*d7q_(}O-q=j
  169. zX_`|X8t4nnncxO@=l<w7*CB^AH|k|g=u-`S3a`Ptv{-#R<Qfe@Ee`d@p<dXA7N0O#
  170. zi(wnXtS%xxk;nUOjZY=mM!<=2ib3kc&~!L4PT}2TA_g`}0Vl?(6XVp0aq7f4h1cL+
  171. z&QTtxPK;A0#;FtI)QNHG9HVi1_?iLa;qdxwe%kIRm2p@IjFK6Tc(KE3<R}P_cmq{|
  172. zLq=c}x>pr>k09X1I_||f?!`Lp#X1h}_Kv|i?!`Lp#X9cAI_||f4zIzxyraC1d$Ept
  173. zv5tGOj(f3=d&g)USNrXIWWanv&G2EI`Y=v?7^gmrQ+T&;492Ms<J5<7>ccqoVVuHi
  174. z@Gjpdk5eDUsSo4ShjHq|IQ5OuI5qd%Tx`v~_RZl>$OKfi;{bsnZ_<?DCx*Z{FsmV{
  175. z_=y3kD!v7QA$6b<nh*%wVk|0ROc9t6Ms^o8a!fmQ7?s@xP(`UQjHW2j5k?@YV-%wh
  176. zupltPrlyJ;1_G9DQ9*@36avFAD<wL@2t;*^ViW=v1V-4@#$R#T4cwE8`$Z%7rh><J
  177. zKQZr5wcAoR%8R;}6+FJ<iFrS(-SXp5Uevv>;BDOhYPa~xmJfbBP~OU(_XdiV%AWTJ
  178. zjJKGa3MvE?0wauohItGgw{_oe!T%BWc!N(!?7z<&=}x3Ok?y?Fg?qlo?7r^-Cxl@}
  179. zYVI3-(f5<1eUs6?$!Oo?8*%VS@U3HcpZPGGbVqS54(*M)kNw86vAmc4j>?TfqFQ%G
  180. zc!E&HDFhS(3IT<HLO>xfY6v*74~PFa`q?eSVebv^g6|s3XSqgUYZg_c6Z`P!=f%)g
  181. z?8D*lyx5I6_$2t&v3!m!O2H9koY;p)Kc{x%*jPTRHp0z`SzPs&Z+!peOw||v`sOI9
  182. zzW9|};zn(dse%;(3IT<HLO>xf4iIo@H~L(7wg?BaP8Xgnayf6%Yw#}kE*H*X;oYt=
  183. zc-H8aMS2t>T-X!3@Jy2n&osI4Op|Le+KW9QybC@KJ_)|nh3~=O5ubqg(f?h8QD~}O
  184. zqzijO7tUr~c$UhAXQ^EAH;%dRJe6yVo~IhEcHOSr+V*cpl4`H?|EN*zm3JfY<6u}S
  185. z6%_&sfx8TW$ONJS3V{iNz+E;3l{yLmg}^vKV1i7Ks+kIb2m<3^SSl420t$h<3;{RJ
  186. zVBI)_b>j?H|A}v$!Mbq<3-5yOa^nmZ-tE3e&S2d*gLUH!){Qe*H_l+)ID>`P;9c->
  187. z@JaBkZk)lwBR&D~<M#~KjWbv`&S2d*gLUH!){Qe*H_l+)_vjgH^UETpzsrW&J*!S+
  188. z6QTkmg1|j%D5_y&g20Fv;RG*aOgc(cGGYi!aC04z=8srssDj1>ff4ES30}yUbd;)O
  189. z#1NR^<~pe6j~M79RFD_XfWT|;F8Dv<_y55sB=-LY0Mc>x1n+|H8q5C#7!<HJGkbB?
  190. z6#ZWVXdlj+;PGDrH{#%v;9JM?KL~89KBR13oHa%N$H9$bWBES^LsEJeLh4!U5t<lO
  191. zF$w{NfI>hapb$_9j5-27?8D(dj{aXC#9{9Z?}G0d%m4Wq#um($s1N(_=>HNzTd@y^
  192. z$A1akh=WgpZyn437_z1K5HtC(50Cy2qZ`M@@_&qmsP>S>26`5og$?vPwh@2pGuezE
  193. z^?|1<PzWdl6aoqXg@8g}!Xx0vy_bI6d+Eo$mwr6|?#I2C@EW`ezRQn$FX7$(d*t3r
  194. zKlb5%+<WQAy_bI6d+Eo$m+%_A3qB4$3BJ{jdoSS;pMd!Bd+((m`*1(*z4YVWOF!<t
  195. z^yA)3KkmKs-=p_lTAzRCe%f@_XW`8_ep;W4x5iKSi9rFN5Kssx1QY@a0foS*BVgTo
  196. zsIWp{yd#h(t~j=#@12Ac&D9~D-6HrSA8|>Xya@L>IJ1rK!wo0yUaG?dtQxO<;k%=W
  197. z)xA)MX*=puA)pXY2q*;ZP6Vcj%Qsxj{ww~!;#o%NeWmyHe`dsGV23d^ek#)VUhS@S
  198. zJ0?3O54ScERo}?sIs6_`B@7pV<#Oxm;s5^9$6xxmsn7aKm0MrKt=lU9SADm>tm$U>
  199. zFQg8yxlu1e*Jyb&zxq@NC<GJ&6B&W7>DLl2PH&$|Zx;t+RWMcpW9GlTq%rdv>BjtQ
  200. z%*eNwP$>!lg@8gpA)pXY2q**;0tx|zfI>haFwqc53f~Vf(b}!rs}N8KC<GJ&3IT<H
  201. z$aL8?rZ6N+$iWH&+Vv5y_n6i<;$@D8o}*FbjPQOgP(3gN@9TGJ@SacQ6aoqXg@8gp
  202. zA)pYr*APe%R~p;olEqTGij;R<<d0G$rHv$VaZIZukxP(fS*a7bBq@~AIuf}QStO+^
  203. zN#uGp$gLrfOJgakN#p{uTS{w5<Q|gwQd&jIOA$$>+(r`9f|4br^(1n6EG0xDmrl86
  204. z61jQMx~z^wZoV{0Sp|t@E|6L&TS;PCzGO&Q8Hrpc$}B_XCY>uFS59JDNR~=jGl^U=
  205. zT3c2{B3HtkAriTjvRTU3lgO=NS}BQKCGOrUg91itTV<1!Rg;+3!JMl}<Qkl4!zvQF
  206. z{YYC^K_b@$ZbcP|+)<#tqLf7L9NNCFiA1gk+=^ACygc*+<U%V+OuHr@$%;x6xmRVQ
  207. ztf(fDdxLU~Byw+&TTdeQKDl)ya$h4?OCopN0d5V6+&55PMJ<Wkcc^s}iQEs#HIvBw
  208. z4{$5jk;wfctZ8KxiQG?s^~&`maz90V<ts>fZ#oxA`Dzl=evYe>x&{){{tac8my?+G
  209. zTXG>1x&H%h)jATne<!z|MDG8RTSFrE|H##n$bAfM^(qoM&9PW&R*}fLz=c+k$R&VV
  210. zT}~pG0&ZnFiCh3Et*#)E3o_>#61jQgYDwhgldB|=%XbvY>XjsN1x%|Ukt=3eJ&9Zi
  211. z(?TS2%bnm>lgL##kgbVCt`c$;AriT2N0wAnk;v7cl!j6gxe&Cjs3wtXB)5)4t_3+O
  212. z>Ph5U!L6wyk?U~ml{M8QayuNQvSuYIuLdKIIX94)wx3)%iCihPUQ<OP*X39wYbr_P
  213. zjxuM6MDDcXBUxKTB3A;rwdEvommFoXc0GyQMaMZ=*GwYU>&TUL<s@=1J21d%N#tHb
  214. zed{)o$i0pFDjP`TK99CnmXXN4#k4vSxv!90Ln8M+xe$rm-;%2*k^4GIsaj7WmkX_{
  215. z){)444>_wglF0p?!!K1$ByxZ6*d$dAByvAt&Jc-Qg;pq46(n*$W!eT3xu27(C6W6j
  216. zxq1@0zkyvhg-GN+ax9msMiRNzD05X6iQIouZY7D_e~?>2B6ou=swR>9J=4lb<o-ae
  217. zjzsQ{K)0%tL~aM><f<wXIhXbusV*gvOVIvBs%uE(lCUCFSCYsjbA6~LkxOIR3KF@w
  218. z+H$FGCXrjDZI<fQByuZ>QVogRr@>XPA(1O&DfJ|B%d{-1UPU5T#<cY$asqCB6^Yzh
  219. ztzK%@k;tt<nKc_p<koBdDmA4fat&IM)T}0vYb4i1BG*E$oJ6jbTm^~T4%AmuNg}t4
  220. zT!=*OAnU6okvpv2FB?ip<eo;(+Hw-PljPQu$eq%bN^L!f+*#CDyOBh$2RX|sN#rhq
  221. ztE(W9yQ*!Kb=4$tFMz9DK_d4ea#pP(k$V|jO%;jUYv3AIkjU+W&2OwDadmnFZK$gv
  222. zG41ovr7lDw_m=jc)RmIR{k8Uy)K!zny@N7q>qz9jPPx@2avr4BHIm4EgWNh2xo?tN
  223. zLn8M*$TgRe$o(VI%IiqvK4Q*V61huQfhyOLxXSzv7E-sC#IzgCSxzGN2XHGYNaS9_
  224. zIu_bUB3I_Dl~6N@+@DZ;sDeaJfJ<mKiMS+SClCsen3jSSFH}t;=VMM3WN4PgoGVC7
  225. z3xKO%O(GX`E|dCF61gO#m6nsp6{3{YWh8PHPLI^rk;s*6;HpUEnw=R^-$WwU0$u8x
  226. zN#ufPLqk1@+!kl1G?bIbeaN(G5@-EdXQ4E#A?c-H?rB&}BDae+v5G|QNvBhq%1Ho1
  227. zegr(5H<Flk&haZ*TSFrEH`Bm9xG>BivvR{iz=`=SNgUWwIkbRi*e7dRrf8E2#R>a&
  228. zVs>>-O2*Z~44H&|xm!ySw|Hc-_$3~ra|&j>`!M4tXp3a3HeV7k&rH*nVg3%vbS)dD
  229. z=3w^DlNnmBq+qs6#rXDUwc^Dr>YY?BKCMA~lS;+sE)&1DNoHdHo~3QU9A6=6t`(9t
  230. zd8^FU*2^5(An95&PK7s0hSnsRTBl@byCrMVZzVYCmlAaEmF!8sksPcdx!SKKZ_-J*
  231. z-}RErb)J*Cu5S61>wn2S*DvG&*RSN$u2z{pr47Cvew%zI{$cnI`Apm+GCyu7{C1fi
  232. zzXSeJ_+9XLDjo;N$`1yE_V_Qv=b_(3j1Z>Ka44vU-bJbr$B>baq5f2FIA4mM@1^*^
  233. zif2fZm*U?Ihu(_+IznDtml>fHDTB<N+^1(eJ;NxkQV(Sy^XF&$Ivlqk<zz|?Y!+9K
  234. zdWaerA!=%bsHqX+W0FQFITAuX&4`1n9x~dtAmtxYuIt(xA<CXaTn)633x`r7q2x$t
  235. zP9#KK3<+vrgnW@yqGrTVQ!~{JQ7a=3wdo;hWvN%&m)h>RE-cRo5oaUB+RRilL|G$_
  236. z+M5y#RihLml_9psh?^A-8TA@*Ms3VDGm_6J?<c7>VO<z9G+>CW+?V<-J&q+OM|94K
  237. z)W(oe%E#e+$)0wPQJxWEc}9rkZTI{TsYKTZG1UkWNh3rnG2^swh&^b;Sxbov#}R|=
  238. zp5J>?ge^BhM#;ZNZT+D{y%fd~tL>hzMpBKC8Aoeks$sj^J<oaabe(_b`32%w-Y@jp
  239. z82YIv+nWOX%n;-5CYL1QwtmZG@LEL0`3O0%`k1Z+0ZrUfth@uOkm-#4E|bMM5as(H
  240. zE3VP`{`~w7(1Dlf$ZO)zpIByGn2$5lNBT3#fj>$YXX2u8!3OV&;$1R1B`utR=~jJ{
  241. zL~{cVQ(Txn3Hj$PFrvu2#BG(w+D(3~UZasdIpx!Zh5{%L>-$u1x>=vjyCeL3O+#-?
  242. z@n?ngov%$|4w|m+n661&QiO*syTp||CtTiq>>0o(=7#H=uT23TKP!8kDIeySnLPE0
  243. zpOsN;<)`=qrB>dRm>HhzSwG7UtPH0^8wbuMO*dcXSD7sAgZjD_nh{3(CQVx$j!4qm
  244. zGd)s3$t2?GO3VmL%-8XCP0w0k2!KcZ_sz^%9_DqtTo0@cmuHmkN~B%VmAHtfE3v>}
  245. zaR#RI$yR=nIA?t7AwvbGPZC$^y!;|v0{w^j(4Qqn0Y>|QPq+ZK&nfXfvpq)rQ~c%O
  246. z`bv=QK#8U+aT@)5znMM&kK8UT(a6F44t<|)2$aAYX&;;=>H1K<CJ9Rn&fuMrFgp@q
  247. zCaBL5L7;yo8<FBvAqoM7z&(#ZD!%EWD=sb`QSZSwMdR6d<xk^T{bB3w!+9_ZncFw7
  248. zZ?69Obl<0<J|76jo9X7Kk!x-^_i*Jytv%P?eCLB747Z%&%HM5z%tOBn=5@IH+OTcn
  249. zlPth5EoSu&heOjU8+Y_vfA51In~`_;>^%L(9a6(dGs8RCw6v_8Kp-pUP7<@^qyEd%
  250. zJ7rX93IT<{xJ4jMI?apmaoYx^xI#c7pb$_9C<GJ&3IT<HLO>y)5Kssx1QY@a0fm4<
  251. zKp~(IPzWdl6aoqXg@8gpA)pXY2q**;0tx|zfI>hapb$_9C<GJ&3IT<HLO>y)5Kssx
  252. z1QY@a0fm4<Kp~(IPzWdl6avFXV7B}$@(WkPFHM!85Kssx1QY@a0fm4<Kp~(I_+%0I
  253. E|I0XP%>V!Z
  254. literal 0
  255. HcmV?d00001
  256. diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
  257. index 004ab4fdc62..a597aee68f2 100644
  258. --- a/target/linux/ipq807x/base-files/etc/board.d/02_network
  259. +++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
  260. @@ -16,7 +16,8 @@ ipq807x_setup_interfaces()
  261. xiaomi,ax9000)
  262. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  263. ;;
  264. - edgecore,eap102)
  265. + edgecore,eap102|\
  266. + zte,mf269)
  267. ucidef_set_interfaces_lan_wan "lan" "wan"
  268. ;;
  269. edimax,cax1800)
  270. @@ -38,9 +39,31 @@ ipq807x_setup_interfaces()
  271. esac
  272. }
  273. +ipq807x_setup_macs()
  274. +{
  275. + local board="$1"
  276. + local lan_mac=""
  277. + local wan_mac=""
  278. + local label_mac=""
  279. +
  280. + case "$board" in
  281. + zte,mf269)
  282. + wan_mac="$(mtd_get_mac_binary mac 0x0)"
  283. + [ "$wan_mac" != "00:00:00:00:00:00" ] || wan_mac="$(get_mac_binary "$(find_mtd_chardev mac)" 0x20000)"
  284. + lan_mac="$(macaddr_add "$wan_mac" 1)"
  285. + label_mac="$wan_mac"
  286. + ;;
  287. + esac
  288. +
  289. + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" "$lan_mac"
  290. + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac"
  291. + [ -n "$label_mac" ] && ucidef_set_label_macaddr "$label_mac"
  292. +}
  293. +
  294. board_config_update
  295. board=$(board_name)
  296. ipq807x_setup_interfaces $board
  297. +ipq807x_setup_macs $board
  298. board_config_flush
  299. exit 0
  300. diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
  301. index 524211ef43e..61ea555247e 100644
  302. --- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
  303. +++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
  304. @@ -18,6 +18,7 @@ case "$FIRMWARE" in
  305. redmi,ax6|\
  306. xiaomi,ax3600|\
  307. xiaomi,ax9000|\
  308. + zte,mf269|\
  309. zyxel,nbg7815)
  310. caldata_extract "0:art" 0x1000 0x20000
  311. ;;
  312. diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
  313. new file mode 100644
  314. index 00000000000..c8a8c6ad2b9
  315. --- /dev/null
  316. +++ b/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac
  317. @@ -0,0 +1,19 @@
  318. +[ "$ACTION" == "add" ] || exit 0
  319. +
  320. +PHYNBR=${DEVPATH##*/phy}
  321. +
  322. +[ -n $PHYNBR ] || exit 0
  323. +
  324. +. /lib/functions.sh
  325. +. /lib/functions/system.sh
  326. +
  327. +board=$(board_name)
  328. +
  329. +case "$board" in
  330. + zte,mf269)
  331. + mac_addr="$(mtd_get_mac_binary mac 0x0)"
  332. + [ "$mac_addr" != "00:00:00:00:00:00" ] || mac_addr="$(get_mac_binary "$(find_mtd_chardev mac)" 0x20000)"
  333. + [ "$PHYNBR" = "0" ] && macaddr_add "$mac_addr" 2 > "/sys${DEVPATH}/macaddress"
  334. + [ "$PHYNBR" = "1" ] && macaddr_add "$mac_addr" 3 > "/sys${DEVPATH}/macaddress"
  335. + ;;
  336. +esac
  337. diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  338. index 346cc390f3124..d9a81e1e22d2b 100644
  339. --- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  340. +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
  341. @@ -109,6 +109,10 @@ platform_do_upgrade() {
  342. CI_ROOT_UBIPART="rootfs"
  343. nand_do_upgrade "$1"
  344. ;;
  345. + zte,mf269)
  346. + CI_UBIPART="rootfs"
  347. + nand_do_upgrade "$1"
  348. + ;;
  349. *)
  350. default_do_upgrade "$1"
  351. ;;
  352. diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
  353. new file mode 100644
  354. index 00000000000..be76ddf12e4
  355. --- /dev/null
  356. +++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts
  357. @@ -0,0 +1,212 @@
  358. +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  359. +
  360. +/dts-v1/;
  361. +
  362. +#include "ipq8074-512m.dtsi"
  363. +#include "ipq8074-ac-cpu.dtsi"
  364. +#include "ipq8074-ess.dtsi"
  365. +#include <dt-bindings/gpio/gpio.h>
  366. +#include <dt-bindings/input/input.h>
  367. +
  368. +/ {
  369. + model = "ZTE MF269";
  370. + compatible = "zte,mf269", "qcom,ipq8074";
  371. +
  372. + aliases {
  373. + serial0 = &blsp1_uart5;
  374. + led-boot = &led_system_white;
  375. + led-failsafe = &led_system_white;
  376. + led-running = &led_system_white;
  377. + led-upgrade = &led_system_white;
  378. + };
  379. +
  380. + chosen {
  381. + stdout-path = "serial0:115200n8";
  382. + bootargs-append = " root=/dev/ubiblock0_1";
  383. + };
  384. +
  385. + keys {
  386. + compatible = "gpio-keys";
  387. +
  388. + reset {
  389. + label = "reset";
  390. + gpios = <&tlmm 46 GPIO_ACTIVE_LOW>;
  391. + linux,code = <KEY_RESTART>;
  392. + };
  393. +
  394. + wps {
  395. + label = "wps";
  396. + gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
  397. + linux,code = <KEY_WPS_BUTTON>;
  398. + };
  399. + };
  400. +
  401. + leds {
  402. + compatible = "gpio-leds";
  403. +
  404. + led_system_white: system-white {
  405. + label = "white:system";
  406. + gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>;
  407. + };
  408. + };
  409. +};
  410. +
  411. +&tlmm {
  412. + mdio_pins: mdio-pins {
  413. + mdc {
  414. + pins = "gpio68";
  415. + function = "mdc";
  416. + drive-strength = <8>;
  417. + bias-pull-up;
  418. + };
  419. +
  420. + mido {
  421. + pins = "gpio69";
  422. + function = "mdio";
  423. + drive-strength = <8>;
  424. + bias-pull-up;
  425. + };
  426. + };
  427. +
  428. + usb_vbus_pins: usb-vbus-pins {
  429. + usb-pins {
  430. + pins = "gpio29";
  431. + function = "gpio";
  432. + drive-strength = <8>;
  433. + bias-disable;
  434. + output-high;
  435. + };
  436. + };
  437. +};
  438. +
  439. +&blsp1_spi1 {
  440. + pinctrl-0 = <&spi_0_pins>;
  441. + pinctrl-names = "default";
  442. + cs-select = <0>;
  443. + status = "okay";
  444. +
  445. + flash@0 {
  446. + compatible = "jedec,spi-nor";
  447. + #address-cells = <1>;
  448. + #size-cells = <1>;
  449. + reg = <0>;
  450. + spi-max-frequency = <50000000>;
  451. + };
  452. +};
  453. +
  454. +&blsp1_uart5 {
  455. + status = "okay";
  456. +};
  457. +
  458. +&prng {
  459. + status = "okay";
  460. +};
  461. +
  462. +&cryptobam {
  463. + status = "okay";
  464. +};
  465. +
  466. +&crypto {
  467. + status = "okay";
  468. +};
  469. +
  470. +&qpic_bam {
  471. + status = "okay";
  472. +};
  473. +
  474. +&qpic_nand {
  475. + status = "okay";
  476. +
  477. + nand@0 {
  478. + reg = <0>;
  479. + nand-ecc-strength = <4>;
  480. + nand-ecc-step-size = <512>;
  481. + nand-bus-width = <8>;
  482. +
  483. + partitions {
  484. + compatible = "qcom,smem-part";
  485. + };
  486. + };
  487. +};
  488. +
  489. +&qusb_phy_0 {
  490. + status = "okay";
  491. +};
  492. +
  493. +&ssphy_0 {
  494. + status = "okay";
  495. +};
  496. +
  497. +&usb_0 {
  498. + pinctrl-0 = <&usb_vbus_pins>;
  499. + pinctrl-names = "default";
  500. + status = "okay";
  501. +};
  502. +
  503. +&mdio {
  504. + status = "okay";
  505. +
  506. + pinctrl-0 = <&mdio_pins>;
  507. + pinctrl-names = "default";
  508. +
  509. + qca8075_24: ethernet-phy@24 {
  510. + compatible = "ethernet-phy-ieee802.3-c22";
  511. + reg = <24>;
  512. + reset-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
  513. + };
  514. +
  515. + qca8075_28: ethernet-phy@28 {
  516. + compatible = "ethernet-phy-ieee802.3-c22";
  517. + reg = <28>;
  518. + reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
  519. + };
  520. +};
  521. +
  522. +&switch {
  523. + status = "okay";
  524. +
  525. + switch_cpu_bmp = <0x1>; /* cpu port bitmap */
  526. + switch_lan_bmp = <0x3e>; /* lan port bitmap */
  527. + switch_wan_bmp = <0x40>; /* wan port bitmap */
  528. + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/
  529. + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/
  530. + switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/
  531. + bm_tick_mode = <0>; /* bm tick mode */
  532. + tm_tick_mode = <0>; /* tm tick mode */
  533. +
  534. + qcom,port_phyinfo {
  535. + port@4 {
  536. + port_id = <5>;
  537. + phy_address = <24>;
  538. + port_mac_sel = "QGMAC_PORT";
  539. + };
  540. + port@5 {
  541. + port_id = <6>;
  542. + phy_address = <28>;
  543. + port_mac_sel = "QGMAC_PORT";
  544. + };
  545. + };
  546. +};
  547. +
  548. +&edma {
  549. + status = "okay";
  550. +};
  551. +
  552. +&dp5_syn {
  553. + status = "okay";
  554. + phy-handle = <&qca8075_24>;
  555. + label = "lan";
  556. +};
  557. +
  558. +&dp6_syn {
  559. + status = "okay";
  560. + phy-handle = <&qca8075_28>;
  561. + label = "wan";
  562. +};
  563. +
  564. +&wifi {
  565. + status = "okay";
  566. +
  567. + qcom,ath11k-calibration-variant = "ZTE-MF269";
  568. + qcom,ath11k-fw-memory-mode = <1>;
  569. +};
  570. --- a/target/linux/ipq807x/image/generic.mk
  571. +++ b/target/linux/ipq807x/image/generic.mk
  572. @@ -147,6 +147,19 @@
  573. endif
  574. endef
  575. TARGET_DEVICES += xiaomi_ax9000
  576. +
  577. +define Device/zte_mf269
  578. + $(call Device/FitImage)
  579. + $(call Device/UbiFit)
  580. + DEVICE_VENDOR := ZTE
  581. + DEVICE_MODEL := MF269
  582. + BLOCKSIZE := 128k
  583. + PAGESIZE := 2048
  584. + DEVICE_DTS_CONFIG := config@ac04
  585. + SOC := ipq8071
  586. + DEVICE_PACKAGES := ipq-wifi-zte_mf269
  587. +endef
  588. +TARGET_DEVICES += zte_mf269
  589. define Device/zyxel_nbg7815
  590. $(call Device/FitImage)