From 7ae17f821bc3a168207448c5d0ec889589966ce5 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 14 Jan 2021 12:06:26 +0100 Subject: [PATCH] ipq807x: update kernel patches and add new boards Signed-off-by: John Crispin --- feeds/wifi-ax/ath11k-wifi/Makefile | 6 +- feeds/wifi-ax/ath11k-wifi/bdwlan_EX227.bin | Bin 0 -> 131072 bytes feeds/wifi-ax/ath11k-wifi/bdwlan_EX447.bin | Bin 0 -> 131072 bytes .../board-tplink-ex227.bin.IPQ8074 | Bin 0 -> 131072 bytes .../board-tplink-ex447.bin.IPQ8074 | Bin 0 -> 131072 bytes .../patches/pending/201-log-spam.patch | 13 + .../patches/pending/201-nl80211-atomic.patch | 13 - ...everal-backports-required-by-ipq807x.patch | 4 +- .../0002-netifd-add-bridge-vlan-support.patch | 4 +- ...0003-ubox-add-log-priority-filtering.patch | 4 +- ...ifd-add-interface-to-status-messages.patch | 4 +- ...5-.gitignore-add-the-profiles-folder.patch | 4 +- ...06-pending-scripts-add-gen_config.py.patch | 4 +- patches/0007-scripts-update-feed-script.patch | 4 +- .../0008-kernel-fix-crashlog-for-ARM.patch | 4 +- ...mware-ipq-wifi-enable-use-on-IPQ806x.patch | 4 +- ...10-ipq806x-4.14-enable-AT803X-driver.patch | 4 +- .../0011-ipq806x-add-GSBI1-node-to-DTSI.patch | 4 +- ...-import-bootargs-append-from-IPQ40xx.patch | 4 +- ...ipq806x-add-Edgecore-ECW5410-support.patch | 4 +- ...ipq40xx-add-Edgecore-ECW5211-support.patch | 4 +- .../0015-ipq40xx-TP-Link-AP2220-support.patch | 4 +- ...q-build.mk-add-ovsdb-tool-dependency.patch | 4 +- .../0017-ipq40xx-TP-Link-EC420-support.patch | 4 +- ...all-tune-lan-wan-into-named-sections.patch | 4 +- .../0019-uhttp-adds-the-deployed-option.patch | 6 +- ...les-set-default-password-to-openwifi.patch | 4 +- patches/0021-base-files-update-banner.patch | 4 +- ...ipq40xx-add-Edgecore-OAP-100-support.patch | 4 +- ...base-files-add-the-wlan-ap-repo-hash.patch | 4 +- .../0024-ec420-fix-generation-of-br-lan.patch | 4 +- ...ystem-patches-required-by-the-target.patch | 4 +- ...iles-make-sysupgrade-work-on-qcom-AX.patch | 4 +- ...x-add-the-Qualcomm-AX-target-support.patch | 3960 ++++++++++++++++- ...image.sh-allow-setting-the-rootfs-na.patch | 4 +- ...029-busybox-enable-the-watchdog-tool.patch | 4 +- ...x-modules-fix-some-v4.4-dependencies.patch | 4 +- ...upport-for-v4.4-style-netdev-led-tri.patch | 4 +- ...flash-W25M02GV-support-for-Edgecore.patch} | 5 +- ...q807x-Fix-dtc-host-build-with-GCC-10.patch | 35 - ...he-base-uci-section-into-a-named-one.patch | 4 +- ...make-target-work-with-trunk-mac80211.patch | 27 + ...> 0035-ipq40xx-add-ec420-ubi-images.patch} | 4 +- ...ipq807x-add-edgecore-EAP-102-support.patch | 1027 ----- ...6-apply-ec420-changes-to-calibation.patch} | 6 +- ...q40xx-Add-support-for-CIG-WF610D-AP.patch} | 4 +- ...-ipq807x-add-edgecore-eap101-support.patch | 1114 ----- ...-mtd-spi-nor-support-for-mx25u12835f.patch | 11 +- ...ipq807x-update-to-ath11k-ed2-release.patch | 101 - ...Add-usr-bin-get_tip-script-for-EC420.patch | 6 +- ...l-Add-firewall-rule-for-interapcomm.patch} | 4 +- ...-dump-the-whole-ram-when-unit-panics.patch | 54 - 52 files changed, 4015 insertions(+), 2501 deletions(-) create mode 100644 feeds/wifi-ax/ath11k-wifi/bdwlan_EX227.bin create mode 100644 feeds/wifi-ax/ath11k-wifi/bdwlan_EX447.bin create mode 100644 feeds/wifi-ax/ath11k-wifi/board-tplink-ex227.bin.IPQ8074 create mode 100644 feeds/wifi-ax/ath11k-wifi/board-tplink-ex447.bin.IPQ8074 create mode 100644 feeds/wifi-ax/mac80211/patches/pending/201-log-spam.patch delete mode 100644 feeds/wifi-ax/mac80211/patches/pending/201-nl80211-atomic.patch rename patches/{0032-ipq40xx-Edgecore-ECW5211-nand-w25m02gv-support.patch => 0032-ipq40xx-new-NAND-flash-W25M02GV-support-for-Edgecore.patch} (89%) delete mode 100644 patches/0032-ipq807x-Fix-dtc-host-build-with-GCC-10.patch create mode 100644 patches/0034-ramips-make-target-work-with-trunk-mac80211.patch rename patches/{0036-ipq40xx-add-ec420-ubi-images.patch => 0035-ipq40xx-add-ec420-ubi-images.patch} (90%) delete mode 100644 patches/0035-ipq807x-add-edgecore-EAP-102-support.patch rename patches/{0037-apply-ec420-changes-to-calibation.patch => 0036-apply-ec420-changes-to-calibation.patch} (92%) rename patches/{0038-ipq40xx-Add-support-for-CIG-WF610D-AP.patch => 0037-ipq40xx-Add-support-for-CIG-WF610D-AP.patch} (99%) delete mode 100644 patches/0037-ipq807x-add-edgecore-eap101-support.patch delete mode 100644 patches/0038-ipq807x-update-to-ath11k-ed2-release.patch rename patches/{0039-firewall-Add-firewall-rule-for-interapcomm.patch => 0040-firewall-Add-firewall-rule-for-interapcomm.patch} (89%) delete mode 100644 patches/0040-ipq807x-do-not-dump-the-whole-ram-when-unit-panics.patch diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile index 5f426f6d1..f7b2ee22e 100644 --- a/feeds/wifi-ax/ath11k-wifi/Makefile +++ b/feeds/wifi-ax/ath11k-wifi/Makefile @@ -29,7 +29,9 @@ ALLWIFIBOARDS:= \ cig-wf194c \ edgecore-eap101 \ sercomm-wallaby \ - edgecore-eap102 + edgecore-eap102 \ + tplink-ex227 \ + tplink-ex447 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD)) @@ -110,6 +112,8 @@ $(eval $(call generate-ath11k-wifi-package,cig-wf194c,Cigtech WF194c)) $(eval $(call generate-ath11k-wifi-package,sercomm-wallaby,Sercomm Kiwi)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap101,EdgeCore EAP101)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap102,Edgecore EAP102)) +$(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227)) +$(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) $(eval $(call BuildPackage,ath11k-wifi-qcom-ipq8074)) diff --git a/feeds/wifi-ax/ath11k-wifi/bdwlan_EX227.bin b/feeds/wifi-ax/ath11k-wifi/bdwlan_EX227.bin new file mode 100644 index 0000000000000000000000000000000000000000..e2e138bb410086a1121f41c2bcb041c0380430fb GIT binary patch literal 131072 zcmeHw33OD~ndV=Mgjg(uRN7djQfYy9r!lr!B!LzXixENy?F)#-HnuUAF?hl32rNKi zlQ6`w9f#OSj*m}|<8~6CIk8RRES*j=r%#{mOycfNG83meJ<~Ij>GbsU^vP-F``)Wp z^|au6g+vKS|JARm`@ehtd;k0W%f0WZ3S8p#3d_;I%FghL=ScE>^~P(1@!Dv-HW{zY z#%qhw8!s2A`HSm+b@XSYe=Gmx`X|v(dNo+0m%O=zDk zC;#4D^T;h;nQfj6B6p44!{z!{Y$M^{$P(kXhZi_}+V6N;d1ZBNV{7})UELS@uD<-* z>tA{6?RVdM|6AYv!H)+l(wi`4GRu@HQxf>@;6Db0>2Z2eFVcxmBTyo^bjT=XDY-Rdy+%A{P{=1%9 zOh;iaJj6-pf9rRXK`?^b_IqoCM5oC}pp_s$dWqw795{XT+FJm}C?Z)Oi_H2!B;ySc z-*Mp4Dl!ERwIvhm5pn9QpNh=+P$cu3Na_j5*4khcaF~*0%F;1EoOf3Wk znGP}F8lXcaF+3W?U|AFxzy<~eUj_!9!TF=X;BSH$d3xg*30qp4159ZO2=?Czmlw+p;lNZ5;vw^|yBF`W4 z0}F$oFBurj#2EiO@)*Qm4%ZOGAZZKM06#Kf!3hSIA21dM`oTX&p5MUWx=1>n=cF)} zF@Lle%!3__e1J8i(3j~;@Wn~Q;8y*B7%-k4V2}-84&?(21IrJFi@`rf#*lt6Vi+JE zQ<+bg(~wgQKX8!K3=F;*%!w8TMX*6SFuWBEV8dwrKqh#hA53rvL@^M>070OBpcpV0 zsvjr@mLI(M<%YiHFXTSsYv&cSTzI9qr|59b?sS|ttkUyp^SQz!c^&CEi(2K}7uzo{ zKb7-j>Q?KD$dxZ|y|SV!XMg|kS_X}G?$z4vB8-<|lRf!bYhU4soW1t(&c9LLTX-t4 z&$lf+N8c-LJNeZ`&rj{f5{^cI~A>`%3gcjeWs zJw#*}{W4kEOSU z`*lIT;-miEskk4q%9YpK`<7Eb+d8;j=(o?VpE+LM2w z+0B|u-xYz;K%nFFwa7PXqoJ72c}F5pS<|?ESNEltuf6rod+&erW9tED=soa}i2q%Y zxtDNX{isOVW|3q(A4y&jGsVGknS4Ck%J~rUzmDfKop{ECJt}3X$X$0q-obN~Jj!3k`Z53P zlaS~9#gGU1Q~qz{P%nUd?zf;no=eTe^T|xe`|w<7dJ>+kIMAPGSC+u{F$U}~_eG5H z1pJ@@ey{`>!Vc5oBHJMsYsh&A>$oT~a~IZ8ZR(Mfi7^r)%LgFu$Ncj?i}@j+M)~Ei zV;1BSBg^N08}t7OkN5c<*(UqC!2 z&B7RnsYoUNZy+l1} zr@@ZNu%ofB{J+TZoIhamL*Cn^z>gAVIMd(qgB*;Jjl4eR0_@NMJsM3t5}o=1_7(2$ zp?pvmWj;VG_%XlX2gvJbn=t=E*fASxK}SfK8%x!c=SZFf_X-<&IhxeKs?mL58#hU@T0^@4&*U^4(6YC1@Vl0 zlukb?g8UrFV~>kejC?R0KlnHpPq5>h7ob1m33;7o6DRT9Z(leG{jGh)p&uCXK|30G zy~XrH<9y*HpD>?M{>#Dh1@j5_wRGt3;CwNpAMkttJ0!!7j{U$MkI3srUPe4Q&C8*9 zei42EKTO{o%L->&~e-wUboHL<+)|W6p_ciEm*>B4KiM+3b{D9{~ z#G{c9hT{i3r_m3P*LhBHdQJkjNNq#rP^b6;@q`J~XkWSif}=RRkC81e(e zvmbeNF6_{6U%)s{zBv+#$IG^OE`%Kz&kpjs_58p%U%(GD>flGPgK@v%jbueLmi%9Z zA6&)!*q74lA-^2*S(qQWJyHqz0pf8k;?cP8f*(&uE}81!GYv*QKs?TaycLhp-1iys z*UfxjJU?JQS`6Kz*;jZ@q#qo|`kRpt76s)Uem;o4Fz7i_O?Vs!X;p^p2UtVkPq2N0jIM$1uO;N5F52gU@({^1(;Q2e3oG z`?jDzIq`$Qw;}%y z=NtMl@^K;-@8o=A`GIjxdlz}FZ$Mt>dEEh!q5XN_Ic+ZF9qiBf-+>))KFNms?A@>f z_J!2@kdtO1Cqy&<73jYQIC5W!;(TEE0qp2UKA4MmH1-9|&*#!pf8)Rpeil6EL4M9D z_;DNT$b6CvJ2*J+=iB7Dukblg3g&nE{Gy*9U|+MIBk_#w|n^-;~DvY&%t=Mn&RMmV(4$>GoEkYhd$&(!;c-D zb3=ZB{W<5Wup{#NtPc27J;u2o<77e?C-?un-*_AHj7OaFLicS>^TGEKPms^T{Ie0y znGNs*%%6;Wl;q%m5W4S#ABFBakr$nwQwRFNOyEdAoZ)lm2Z(3h^JISk`2hPu=zIbB zDGr|N8u1J}+V5KpKVV*u#t&XcJ{yJ~4BVeH8-WAk0eLOaB@s*Lxo$7)a0~a1dGN#G zoD+@v&UfI4moPuh7slVYs6YMK!F}g^*f9_B=qHYh=O)t+XQaRneieCNpdE9A@od-u zdEGc)06!=9ouRzWeFc8R=Lh_IA$51+M~42)2iMGf&G2LFD@jSv-@*CD$_Eh*tsTZS z0_q3j+Psbzr+(lVs&U;>{a{?1*YV=i4;(`^t~;t9jBE2cUYz=YW2nY;NA-hoZC=NV zQ$KJF)wu4celV`h>v(bM2acf{*B#Xl#yDNmT>M<~nZoCDALZv{t#YWddSA)zg4T>m>x#&c7j_;g*^^bD zwl;jNvwP?9(!B*cGHb%uPF-$1xnzINgZ$pKReHNy4=&psXiZ;lT@mT+tv_1yRA3vw z|74XD-K|H9I&#}HHd$9hE`7fF+_J;DPw;!dRyoqO>DhaCWi?D+VO_!hx^%wzNYN94 ztto55*Lp719b5e5%tn5f-YVxW*Pkfb@86Mu&%asa;^~&>mhK8PrrBgKoNqq7WKWC{a|8agU&?<*dR_`y}Q?Mn|Ci}|y?MF&F3bv-& z=J;%H+p(f2^S1N5KUTTWxAkQ4{=A3yJr1k%o^5-6*`tBxv~|`Mk*j@MJB#<_?y%$6 z)6;lp>Er&^^o`+u&%e0s+@h!FJ;cvVTIKM`n*F7Z_t)?A>H6oEJ(|;GpW~&zwi88r z^LC`z>~`v6OK0J}z;=G`%qrbojn6K5*x!(D)32|$_4u;Afo*o|Pn@lNe(9c^wlo_q z$FA0N-TzG1!>RZjoK=pV+VphUo_Te4{7!Y%Keyx&f0Nz+UhZo@vHYom9sD;htaADC zmXk&M1Kat1Ypa~>+WhSD$8(y}ZT@`rQvI>Qrvlr3He2?dYoiZsvD^1_Ut{Nzeg5tI zzNb}Ay-@qi;)k>A?f&v=&(1@od$Q_ME3953eSIy*mpv8er{D3OEys%X=5FKX=B(0p zw(UUSqq)s?{CavDPb_)Lzm1>2x5~v!E%2AXHlGc@vwh7cm+jBlVfUAFXId~`PE*DM zmZZq5-P@io-CfX<7q@g4?aP1Aj@647S`HTy1KS+u&on=`{4sx{J$}1;8;>v9 z>))1Y^WD=u^@kQep52yeo1?F<{p9lfxjXs!bE{l9!}SK5(rx3pDP z+sPIC^B=Oyo;%lY2svV_-N(2k}Fk_rvd{%Z4sH?3niUZaq=-RBk_ixzfG$ zVDawU7JL3XeX8#1r4RY*GFDrw5IJ#v^O5_X$l8)>i?{Be52e}ss^@gg)1{B+G}`^S zySM3hG4->>(M80}iv4*H+Sl86Y0Gi?i`~ax>fUj1#qPX*wmfuf$Fn87vZ_+Qtd5;-J6yCUZwtQ{VwIPBwjWxtJHOQ)TjzS4JD2Ut-D!{W^Ou`Cm+s5i z$(#f{G4u+J#(S)=#mcqmNXmoo#&g5EqyX)8^0rOm6K=d4=&lA-C~dZ z6DK$Azwg06zt^}^^zdqgO zyO+D#o`uf+u66dbA1{6~ub9KoL*`6ahs*5l{pa0YyL&Py`eKML-cy z1QY>9KoL*`6ahs*5l{pa0YyL&Py`eKML-cy1QY>9KoL*`6ahs*5l{pafpLPsWGR@$ zrMSIu2~(yePEVSVoZ?GOOV7xhIcxTux%0BJ{W&*KCPgSF96rgCg|bviWvx_8qqNH| z>5ymTsC3B%xhk*8SLAJZPp-?K%Afc9`Kf#ptw$lVP!i;qgT7z!+Rm~9{Fg~6f!u(d zq#6BP32cG>Ny!7159H?M7tCL9XRTrW{DOkKJZl{RnIBpM*P&%%BM=DWfO7rW**X4f zfA#9KoL*`qDSB^`AsjSJZ=$}+wF3JTpqW}$w;nvbdE>=Ne=rbpnn4TPj=S7 z<62mYj<<%c-+gxpiv5**^kw#J%Gh6{AA=HES$xgQ3)fkTz6fj~fD49kWD9{U1hx=| zwh-7tU<+|-ivzEOtZ_42EVz3?K}m`IHTrc^!fpk#erw~5lr7wDx5o$#r?v>Y>ac3= zc+3l%x}Dl|ShIzN-3gc%zTtN08)3=e)jAG@Tug4}V+C}v68r0|`9>_IM#`UKsq;w1 zPAqjska`fJF1`%U6Qh&%AWl7qQ%{WJ)Pp$nAWl6oj?)93y;q5l6|UBM!Gb`*`i-UC z8DG|KEa%P6E-A^+FDc=BEK79WIeNWgiHVcBMh^*{c_0E#?4^AsCISO}MfuS~U}Acp zuG$F#qvw@6^FRcg*h~9NOaun{it=|p0^`+F?|kGZj)vpa$8=r8M_}Sa!JWC%;agBg zaDu>{Y5l=kIay0A`wZ4luZ$J~v9!C+HMS5KEuYkR2O}`HJV&*SB?5!JMX!t&0yFvwEn*1gvBg@N=?e$+Ok%*RA%6_&!>n=^io(#Ngs+eU>~1 zOB-^E(fSPgkjlj1V&%}=&Q151o9;W|ZKq_xP3jXdU+9|0CIUA*8`!Up&6TOv6A=OX z`AyGt6VU_4*P2J`J6kb0k_|b!0n4B9a#}j z1jZ`@6C*q7Diwh+0^>E7bzO>pB5?Z<2xkzjDFWjQf!h}~I9 zKoJ;>K9KoPhz z5tuICj5|{^)k+ai1QY>9KoL*`6ahs*5l{pa0YyL&Py`eKML-cy1QY>9KoL*`hKoQ_ z@bdt}9Y^IA0YyL&Py`eKMPTe9Fhh37ROw`?b#cN*_fJQB-XrcCBR=Ns(DQbTnG!tD zWmOFg!FyB9>jwBkchRegfFhs>C<2OrA}~e~@QHUeRrksgDO*h{cunvf4{((va?_+) zRvAPtNeZQGGl^WE8$H*N$Yn`~l+}>P-75>FYy+vlCz8sZ4J5V&BuC2XNaPAQUoDB; zJjykb$lWbPQofl)ZlN?u`C1akTqHG8zKX=Q`y^Y+%Sq%qFlISAHyPYgaup=D)yi@y zZzho|#)`@}kjRy?XDx}`DruAQjU;lb*;Ym(S1Bb@4h78Bwo8kYSCQDZlRejv$kltW zhSel;`_Q(2Es5Mg@yW_E61gs{c6}3xTsOFtt4Rd~z#4M3t4M6SD!-DIl_YX6OM|Se zB9XgBxkeJXH_2@zk^3gO8WIsa>H@cp#I_GH!`d1Wx$l5m*+e4uLvqa|a(@nP)p`=S zzl2w;+CU=r6LK3#q+EVG0NIH61jG8>o$|f?Q}KCx+)U6U9Ngrw~9nOJJ@p*iEaDHRglO%>sl=9 zDoNxHvaOaxuG962Jg|X8?t-ga9@t1Cch2RJ_01$Wr1ZHq$@&Ts+g@^Qk@Ynsa<5{B z^$jF)Z()YYdJ?%WVSSb5Byw-EZ8M47*U7CTk$aC^Es5NJBv(fw_W?%Pu#rSA-?KzE ztS6EC9(rzQAd&ksSEg)eB9Z$~t`^x)Pa^jd_N*n5Tk9^A4Qol{K4#k{61ks~t09s5 zCAm5hx&HtkY^o)Z`@~fu8yZRE)?m!l8%X5-iE^t*az#}na=&9+1&Q3h z0?!R)BywK&ucfMtL~feBKLs1PO8_F$gP81bpwgqM)%)Ibs33Vy}L-N*O16H zl4~N7Yb94fBG*oCEs5MN%vW7WBDb4dEs5OIoUevN?tpu~Y$_v>JB*$+6(n-U$!#Q& zJKg?~0|CNY=4iMGvUB)0vr`xDt*MI!e$+G;kF$bA6KHm@O(`;c<$N#wpoZXJo- z_t3Msj707)(N?jUMD7#ztRa!RfSg>pp2R%yTeek@*!IuhR<0$Hdlh?QZ3Bs1xu-^I zn@Qw;kNIlXlE?|xSG$J9^-aT$S6fSBn-5vPwu(e9gFP{jsmpBkTuEYE7Pz`KBys`I z3aKk2kxN2bSp|t)Ax2qKP9nF~lO}bWN#vS6*;3a;BG-!9>zYaA0?@j?jzn&Y$1n92 zBy!i;Rz)hP7OC+RO8q(#+ji4_t4ZXZ@pz=Eg2X)dBVg9tKw?{$t4kiJCXv&k2#g&B zJc#2YeARmf-m}Ez$`%(Q#1&tNb5)VJJtg9fPZp0WN8&s_iF2h%JoeT}o=+sf^LH{C zaWDnZHr2Bb8DP2Gh4@YMLsh$=|^R!92 zXA82!R>|~il$khN%x9v&02D(hJJ4I z8f1-{xwb{Vzwo_=dEJm;jk3p4tHz2Ff;C^LmK>_h4b`ZNDM1a)T1KdqsF~NOsnu%L zsFisQvl%sNl^}alx2I7Tt496IYn;PswQ6Ar>TI@B=e?;_7{zR5EqrZOu+^H4t>$d3 z%?!z!^G;=(&#_`M=$9p*K zhiE0HW{s_8jrf^0`i6DQ9jwuA<~4Ja-=+D4t9&?(HFK2TVdQWv(U9OZbL4M?TF<8y z7#jRA?H57WUxY@1(1a=2ed6tZbuxK(X#EROa|!mTU@67BTjCS!yi4LO7Eg@W-#dVh z3-SCLpbI}%A@3H~Bs=c`KT_L7lFJ?M5l`a%!3j*>+mH9kB;TxH2e#YwOTrF}^;+V> z_BiyPe~)>IyjSA;$#c9vTxL!Pd7yDu`dn*#gO3mK3*By@>rM0r^;_tUV-Gs6QP}R5 z1ehhr!;`(@O`a1RZ=u`Z6Z3-eEp$&od))LuQLsPc$!FbX=e>#ZR`lnyORVu>4GAq5 z_9S0wHsX~$MhuPy-q1g8`r=>@Q{Ne(0T#v)pSVQ7rLTdPcZR>z6kva^Or4oq9Oi+? z-DM^l9N(MxM?pTxYvQ%U;-L-tC)@cr@uVzRWKKx@))hp>=GtJj@qULo(2e6ta+Hz4npX-lmO2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%I zfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv@Z j2q*%IfFhs>C<2OrBA^H;0*Zhlpa>`eihv?uL*V}dqogi_ literal 0 HcmV?d00001 diff --git a/feeds/wifi-ax/ath11k-wifi/bdwlan_EX447.bin b/feeds/wifi-ax/ath11k-wifi/bdwlan_EX447.bin new file mode 100644 index 0000000000000000000000000000000000000000..31eb856b8d1082acaf0bb2bb74242ee47c387f6e GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/feeds/wifi-ax/ath11k-wifi/board-tplink-ex227.bin.IPQ8074 b/feeds/wifi-ax/ath11k-wifi/board-tplink-ex227.bin.IPQ8074 new file mode 100644 index 0000000000000000000000000000000000000000..e2e138bb410086a1121f41c2bcb041c0380430fb GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/feeds/wifi-ax/ath11k-wifi/board-tplink-ex447.bin.IPQ8074 b/feeds/wifi-ax/ath11k-wifi/board-tplink-ex447.bin.IPQ8074 new file mode 100644 index 0000000000000000000000000000000000000000..31eb856b8d1082acaf0bb2bb74242ee47c387f6e GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/feeds/wifi-ax/mac80211/patches/pending/201-log-spam.patch b/feeds/wifi-ax/mac80211/patches/pending/201-log-spam.patch new file mode 100644 index 000000000..2ffe6f8d5 --- /dev/null +++ b/feeds/wifi-ax/mac80211/patches/pending/201-log-spam.patch @@ -0,0 +1,13 @@ +Index: backports-20200902_001-4.4.60-931c337125/drivers/net/wireless/ath/ath11k/mac.c +=================================================================== +--- backports-20200902_001-4.4.60-931c337125.orig/drivers/net/wireless/ath/ath11k/mac.c ++++ backports-20200902_001-4.4.60-931c337125/drivers/net/wireless/ath/ath11k/mac.c +@@ -497,7 +497,7 @@ struct ath11k_vif *ath11k_mac_get_arvif( + ath11k_mac_get_arvif_iter, + &arvif_iter); + if (!arvif_iter.arvif) { +- ath11k_warn(ar->ab, "No VIF found for vdev %d\n", vdev_id); ++ //ath11k_warn(ar->ab, "No VIF found for vdev %d\n", vdev_id); + return NULL; + } + diff --git a/feeds/wifi-ax/mac80211/patches/pending/201-nl80211-atomic.patch b/feeds/wifi-ax/mac80211/patches/pending/201-nl80211-atomic.patch deleted file mode 100644 index cb9c7c762..000000000 --- a/feeds/wifi-ax/mac80211/patches/pending/201-nl80211-atomic.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: backports-20200902_001-4.4.60-931c337125/compat/backport-genetlink.c -=================================================================== ---- backports-20200902_001-4.4.60-931c337125.orig/compat/backport-genetlink.c -+++ backports-20200902_001-4.4.60-931c337125/compat/backport-genetlink.c -@@ -381,6 +381,8 @@ int genlmsg_multicast_netns(const struct - u32 portid, unsigned int group, - gfp_t flags) - { -+ if (in_atomic()) -+ return -EINVAL; - group = __backport_genl_group(family, group); - if (group == INVALID_GROUP) - return -EINVAL; diff --git a/patches/0001-netifd-several-backports-required-by-ipq807x.patch b/patches/0001-netifd-several-backports-required-by-ipq807x.patch index 766fd0ece..e397c48e6 100644 --- a/patches/0001-netifd-several-backports-required-by-ipq807x.patch +++ b/patches/0001-netifd-several-backports-required-by-ipq807x.patch @@ -1,7 +1,7 @@ -From 83340aa0935db7d0f6930b9fbf41318899877ef2 Mon Sep 17 00:00:00 2001 +From f5e2764d23b0f7273b5a25490e67cdbaaeded8af Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 20 Jun 2020 16:27:12 +0200 -Subject: [PATCH 01/30] netifd: several backports required by ipq807x +Subject: [PATCH 01/40] netifd: several backports required by ipq807x IPQ807x uses the mac80211.sh/hostapd.sh from owrt HEAD, which require these patches. diff --git a/patches/0002-netifd-add-bridge-vlan-support.patch b/patches/0002-netifd-add-bridge-vlan-support.patch index 9ebef0b0f..f96270a66 100644 --- a/patches/0002-netifd-add-bridge-vlan-support.patch +++ b/patches/0002-netifd-add-bridge-vlan-support.patch @@ -1,7 +1,7 @@ -From ff27a07e9e0337f6a639dceef6c9a2de3719e564 Mon Sep 17 00:00:00 2001 +From 6b54e5471e2bf3d3893f0cc72162bd16e36a3178 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 12 Jul 2020 18:41:24 +0200 -Subject: [PATCH 02/30] netifd: add bridge/vlan support +Subject: [PATCH 02/40] netifd: add bridge/vlan support Backport the vlan patches for the netifd bridge layer. diff --git a/patches/0003-ubox-add-log-priority-filtering.patch b/patches/0003-ubox-add-log-priority-filtering.patch index 47128990c..81cea30a4 100644 --- a/patches/0003-ubox-add-log-priority-filtering.patch +++ b/patches/0003-ubox-add-log-priority-filtering.patch @@ -1,7 +1,7 @@ -From 9b69e7551dd2cc4bb93f825bcfe10cf2c89493b5 Mon Sep 17 00:00:00 2001 +From 10e0cb60aca9bfd50e5d0d49039752d6a8b91baa Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 23 Jul 2020 16:09:28 +0200 -Subject: [PATCH 03/30] ubox: add log priority filtering +Subject: [PATCH 03/40] ubox: add log priority filtering Allow logread to filer based on priority. diff --git a/patches/0004-netifd-add-interface-to-status-messages.patch b/patches/0004-netifd-add-interface-to-status-messages.patch index 6c4438a38..43578af41 100644 --- a/patches/0004-netifd-add-interface-to-status-messages.patch +++ b/patches/0004-netifd-add-interface-to-status-messages.patch @@ -1,7 +1,7 @@ -From 20c424c6db8637020f979befdc79cac077e48fd5 Mon Sep 17 00:00:00 2001 +From 2e2b1971f17138b3b7611fd6c223206be6f5a28a Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 29 Jul 2020 12:30:42 +0200 -Subject: [PATCH 04/30] netifd: add interface to status messages +Subject: [PATCH 04/40] netifd: add interface to status messages Add the interface name to the status messages. Otherwise we cannot identify the content. diff --git a/patches/0005-.gitignore-add-the-profiles-folder.patch b/patches/0005-.gitignore-add-the-profiles-folder.patch index 01e7e07c3..90dc00b89 100644 --- a/patches/0005-.gitignore-add-the-profiles-folder.patch +++ b/patches/0005-.gitignore-add-the-profiles-folder.patch @@ -1,7 +1,7 @@ -From e18d8cbdb4985fad10b413714e411dd5584073e1 Mon Sep 17 00:00:00 2001 +From e4cecbd929a0d9d7d190b0d4e9648b48279a1a13 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 22 Sep 2020 18:02:55 +0200 -Subject: [PATCH 05/30] .gitignore: add the /profiles folder +Subject: [PATCH 05/40] .gitignore: add the /profiles folder Signed-off-by: John Crispin --- diff --git a/patches/0006-pending-scripts-add-gen_config.py.patch b/patches/0006-pending-scripts-add-gen_config.py.patch index 8f738810a..00fd45fec 100644 --- a/patches/0006-pending-scripts-add-gen_config.py.patch +++ b/patches/0006-pending-scripts-add-gen_config.py.patch @@ -1,7 +1,7 @@ -From cc1b7ac4d020f0ac0cfbc242184c93f8ff53a0a9 Mon Sep 17 00:00:00 2001 +From 45886db6eb6e3f1e359945996d34969ce15710d2 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 19 Jun 2020 10:45:22 +0200 -Subject: [PATCH 06/30] pending: scripts: add gen_config.py +Subject: [PATCH 06/40] pending: scripts: add gen_config.py This script is used to setup the tree based on the profiles/. diff --git a/patches/0007-scripts-update-feed-script.patch b/patches/0007-scripts-update-feed-script.patch index bbd5ccbfb..3c5e5176d 100644 --- a/patches/0007-scripts-update-feed-script.patch +++ b/patches/0007-scripts-update-feed-script.patch @@ -1,7 +1,7 @@ -From 2f915b4b478c18b0f7583ab5b57893a7c2f5300b Mon Sep 17 00:00:00 2001 +From 0af1d76c05f739dd4dbe090ac0d20e429b3c7869 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 19 Jun 2020 13:25:27 +0200 -Subject: [PATCH 07/30] scripts: update feed script +Subject: [PATCH 07/40] scripts: update feed script gen_config.py requires the latest version of the feeds script. diff --git a/patches/0008-kernel-fix-crashlog-for-ARM.patch b/patches/0008-kernel-fix-crashlog-for-ARM.patch index d20bade73..c23274f76 100644 --- a/patches/0008-kernel-fix-crashlog-for-ARM.patch +++ b/patches/0008-kernel-fix-crashlog-for-ARM.patch @@ -1,7 +1,7 @@ -From 83d3cbbf165d8a2044e56866101a4f8eac2948a5 Mon Sep 17 00:00:00 2001 +From f7b3b958e9651bb1fd17d2d98cb69dd4a01c0048 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 24 Jul 2020 11:55:31 +0200 -Subject: [PATCH 08/30] kernel: fix crashlog for ARM +Subject: [PATCH 08/40] kernel: fix crashlog for ARM The current driver was MIPS specific, make it work on ARM. diff --git a/patches/0009-firmware-ipq-wifi-enable-use-on-IPQ806x.patch b/patches/0009-firmware-ipq-wifi-enable-use-on-IPQ806x.patch index ab281cdae..cc674d9ef 100644 --- a/patches/0009-firmware-ipq-wifi-enable-use-on-IPQ806x.patch +++ b/patches/0009-firmware-ipq-wifi-enable-use-on-IPQ806x.patch @@ -1,7 +1,7 @@ -From b313236c60633f7254ea2dbfa15c61b29be65e6e Mon Sep 17 00:00:00 2001 +From 3c75ea181c65ebebb61188a2b7fed69c6d3f6cfd Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 18 May 2020 12:34:06 +0200 -Subject: [PATCH 09/30] firmware: ipq-wifi: enable use on IPQ806x +Subject: [PATCH 09/40] firmware: ipq-wifi: enable use on IPQ806x This enables the ipq-wifi package to be used on IPQ806x target. Its needed for boards using a different BDF than one shipped in the upstream board-2.bin. diff --git a/patches/0010-ipq806x-4.14-enable-AT803X-driver.patch b/patches/0010-ipq806x-4.14-enable-AT803X-driver.patch index a27e69340..739801be4 100644 --- a/patches/0010-ipq806x-4.14-enable-AT803X-driver.patch +++ b/patches/0010-ipq806x-4.14-enable-AT803X-driver.patch @@ -1,7 +1,7 @@ -From e06d369e38178c0b7a79fa18b732ea3a3942a795 Mon Sep 17 00:00:00 2001 +From 210faa703a17aa7d59a7ca7d580d3174e15f51cf Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 18 May 2020 12:25:20 +0200 -Subject: [PATCH 10/30] ipq806x: 4.14: enable AT803X driver +Subject: [PATCH 10/40] ipq806x: 4.14: enable AT803X driver Its needed for Edgecore ECW5410 which does not use QCA8337 switch, but rather 2x AR8033 PHY-s directly connected to GMAC-s. diff --git a/patches/0011-ipq806x-add-GSBI1-node-to-DTSI.patch b/patches/0011-ipq806x-add-GSBI1-node-to-DTSI.patch index 9c5cb91a0..864de9ab6 100644 --- a/patches/0011-ipq806x-add-GSBI1-node-to-DTSI.patch +++ b/patches/0011-ipq806x-add-GSBI1-node-to-DTSI.patch @@ -1,7 +1,7 @@ -From 49d0de44770e393eac063083a8c925e8bbc91d6b Mon Sep 17 00:00:00 2001 +From 6d57a301283407567b00c4a289ffedbace33a7b3 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 18 May 2020 12:28:37 +0200 -Subject: [PATCH 11/30] ipq806x: add GSBI1 node to DTSI +Subject: [PATCH 11/40] ipq806x: add GSBI1 node to DTSI IPQ806x series also has a GSBI1 with UART and I2C peripherals, so lets add the node for it. diff --git a/patches/0012-ipq806x-import-bootargs-append-from-IPQ40xx.patch b/patches/0012-ipq806x-import-bootargs-append-from-IPQ40xx.patch index 987c9b2a9..846c61e43 100644 --- a/patches/0012-ipq806x-import-bootargs-append-from-IPQ40xx.patch +++ b/patches/0012-ipq806x-import-bootargs-append-from-IPQ40xx.patch @@ -1,7 +1,7 @@ -From c938f2d93c3140899e1b234a37a2219d680d86d3 Mon Sep 17 00:00:00 2001 +From 23df8a23a0ab0841af3f2935968d071739d59168 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 18 May 2020 12:35:15 +0200 -Subject: [PATCH 12/30] ipq806x: import bootargs-append from IPQ40xx +Subject: [PATCH 12/40] ipq806x: import bootargs-append from IPQ40xx This imports the patch that adds bootargs-append support from IPQ40xx. diff --git a/patches/0013-ipq806x-add-Edgecore-ECW5410-support.patch b/patches/0013-ipq806x-add-Edgecore-ECW5410-support.patch index 032309e4c..07533c0be 100644 --- a/patches/0013-ipq806x-add-Edgecore-ECW5410-support.patch +++ b/patches/0013-ipq806x-add-Edgecore-ECW5410-support.patch @@ -1,7 +1,7 @@ -From 31942f1bbfa2b59a3bdf97882399b0cc49ec9794 Mon Sep 17 00:00:00 2001 +From 6842adf43711584900a64bb9ab65f9c63b7d3034 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Mon, 18 May 2020 12:45:47 +0200 -Subject: [PATCH 13/30] ipq806x: add Edgecore ECW5410 support +Subject: [PATCH 13/40] ipq806x: add Edgecore ECW5410 support This patch adds support for the Edgecore ECW5410 indoor AP. diff --git a/patches/0014-ipq40xx-add-Edgecore-ECW5211-support.patch b/patches/0014-ipq40xx-add-Edgecore-ECW5211-support.patch index 883a1da0f..1fd7add18 100644 --- a/patches/0014-ipq40xx-add-Edgecore-ECW5211-support.patch +++ b/patches/0014-ipq40xx-add-Edgecore-ECW5211-support.patch @@ -1,7 +1,7 @@ -From 55055b2b91fcde3da0c313d320254f30360e8d13 Mon Sep 17 00:00:00 2001 +From f072c795bc3f5eae1a249b89874d35eb9b8b2e46 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 19 Jun 2020 14:01:58 +0200 -Subject: [PATCH 14/30] ipq40xx: add Edgecore ECW5211 support +Subject: [PATCH 14/40] ipq40xx: add Edgecore ECW5211 support This patch adds support for the Edgecore ECW5211 indoor AP. diff --git a/patches/0015-ipq40xx-TP-Link-AP2220-support.patch b/patches/0015-ipq40xx-TP-Link-AP2220-support.patch index e99452269..b29e0b218 100644 --- a/patches/0015-ipq40xx-TP-Link-AP2220-support.patch +++ b/patches/0015-ipq40xx-TP-Link-AP2220-support.patch @@ -1,7 +1,7 @@ -From 20f3f7e0ffd292cf91bfc5a41b58316ba9486063 Mon Sep 17 00:00:00 2001 +From e519bee7c82124e38452bcd2e458d4b999425467 Mon Sep 17 00:00:00 2001 From: Arif Alam Date: Fri, 19 Jun 2020 14:02:32 +0200 -Subject: [PATCH 15/30] ipq40xx: TP-Link AP2220 support +Subject: [PATCH 15/40] ipq40xx: TP-Link AP2220 support Signed-off-by: Arif Alam --- diff --git a/patches/0016-include-prereq-build.mk-add-ovsdb-tool-dependency.patch b/patches/0016-include-prereq-build.mk-add-ovsdb-tool-dependency.patch index 4562cbf4b..560cf52b3 100644 --- a/patches/0016-include-prereq-build.mk-add-ovsdb-tool-dependency.patch +++ b/patches/0016-include-prereq-build.mk-add-ovsdb-tool-dependency.patch @@ -1,7 +1,7 @@ -From 2ed4f05265c404ea67a0b7719e9a0c8245558072 Mon Sep 17 00:00:00 2001 +From 4391d63651027968eb833e8c44740752bc6f0c98 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 25 Jun 2020 09:03:16 +0200 -Subject: [PATCH 16/30] include/prereq-build.mk: add ovsdb-tool dependency +Subject: [PATCH 16/40] include/prereq-build.mk: add ovsdb-tool dependency OpenSync requires a host installation of ovsdb-tool. Add this to the required commands. diff --git a/patches/0017-ipq40xx-TP-Link-EC420-support.patch b/patches/0017-ipq40xx-TP-Link-EC420-support.patch index b3df0ffa4..4ad105d7b 100644 --- a/patches/0017-ipq40xx-TP-Link-EC420-support.patch +++ b/patches/0017-ipq40xx-TP-Link-EC420-support.patch @@ -1,7 +1,7 @@ -From f161ec6c232d7abb5379712440bee715a39b57fa Mon Sep 17 00:00:00 2001 +From 53477e0b86c24528083f21272b13a4426575b063 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 22 Jul 2020 14:29:55 +0200 -Subject: [PATCH 17/30] ipq40xx: TP-Link EC420 support +Subject: [PATCH 17/40] ipq40xx: TP-Link EC420 support Signed-off-by: John Crispin --- diff --git a/patches/0018-firewall-tune-lan-wan-into-named-sections.patch b/patches/0018-firewall-tune-lan-wan-into-named-sections.patch index 0366b42e3..4edf4c24d 100644 --- a/patches/0018-firewall-tune-lan-wan-into-named-sections.patch +++ b/patches/0018-firewall-tune-lan-wan-into-named-sections.patch @@ -1,7 +1,7 @@ -From 7167a7364150eeffb7c125f6df82d4e5d4328bb8 Mon Sep 17 00:00:00 2001 +From 2d0deef14e6aaea42ae37b2f60cb6adbbccfbe54 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 26 Jul 2020 19:16:21 +0200 -Subject: [PATCH 18/30] firewall: tune lan/wan into named sections +Subject: [PATCH 18/40] firewall: tune lan/wan into named sections We want to reference these from within OpenSync. They need to be named for this to work. diff --git a/patches/0019-uhttp-adds-the-deployed-option.patch b/patches/0019-uhttp-adds-the-deployed-option.patch index bc09d70f8..22575a4eb 100644 --- a/patches/0019-uhttp-adds-the-deployed-option.patch +++ b/patches/0019-uhttp-adds-the-deployed-option.patch @@ -1,7 +1,7 @@ -From a5852761c39b2a00337984ad49bfdb7beeb15f75 Mon Sep 17 00:00:00 2001 +From 4401ae30fdc549cb9aa541256d39304c85f05d9c Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 29 Jul 2020 14:11:39 +0200 -Subject: [PATCH 19/30] uhttp: adds the deployed option +Subject: [PATCH 19/40] uhttp: adds the deployed option This allows us to make sure the webui is not automatically started if the unit is already deployed. @@ -12,7 +12,7 @@ Signed-off-by: John Crispin 1 file changed, 7 insertions(+) diff --git a/package/network/services/uhttpd/files/uhttpd.init b/package/network/services/uhttpd/files/uhttpd.init -index 6322473b97..5e57bd66da 100755 +index 6322473b97..8dbc3849b7 100755 --- a/package/network/services/uhttpd/files/uhttpd.init +++ b/package/network/services/uhttpd/files/uhttpd.init @@ -207,3 +207,10 @@ start_service() { diff --git a/patches/0020-base-files-set-default-password-to-openwifi.patch b/patches/0020-base-files-set-default-password-to-openwifi.patch index 2d8fdfa1f..79b3e19cf 100644 --- a/patches/0020-base-files-set-default-password-to-openwifi.patch +++ b/patches/0020-base-files-set-default-password-to-openwifi.patch @@ -1,7 +1,7 @@ -From 5afdd3055134c6eacf73747238939a916021d670 Mon Sep 17 00:00:00 2001 +From 7a00a739c486a8b0b506dd059e301d27b5d1cab0 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 30 Jul 2020 16:51:04 +0200 -Subject: [PATCH 20/30] base-files: set default password to "openwifi" +Subject: [PATCH 20/40] base-files: set default password to "openwifi" Signed-off-by: John Crispin --- diff --git a/patches/0021-base-files-update-banner.patch b/patches/0021-base-files-update-banner.patch index b56e790e9..eb82fb74a 100644 --- a/patches/0021-base-files-update-banner.patch +++ b/patches/0021-base-files-update-banner.patch @@ -1,7 +1,7 @@ -From 86e40767ba7b74a789d3f52f5d44ecf01f3d2ee5 Mon Sep 17 00:00:00 2001 +From 10dcba991861b65f783ecd9fd0347072fc8b3849 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 31 Jul 2020 17:15:13 +0200 -Subject: [PATCH 21/30] base-files: update banner +Subject: [PATCH 21/40] base-files: update banner Use OpenWiFi for the banner. diff --git a/patches/0022-ipq40xx-add-Edgecore-OAP-100-support.patch b/patches/0022-ipq40xx-add-Edgecore-OAP-100-support.patch index 672cd3c38..1537ddf3c 100644 --- a/patches/0022-ipq40xx-add-Edgecore-OAP-100-support.patch +++ b/patches/0022-ipq40xx-add-Edgecore-OAP-100-support.patch @@ -1,7 +1,7 @@ -From 084ac550e9a44ebea2b19b4f9fb98617ffcdfde7 Mon Sep 17 00:00:00 2001 +From 86ad7eeeef70c75bffd30b791d9eec62f26e71d2 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 8 Aug 2020 09:58:02 +0200 -Subject: [PATCH 22/30] ipq40xx: add Edgecore OAP-100 support +Subject: [PATCH 22/40] ipq40xx: add Edgecore OAP-100 support flashing the unit * first update to latest edcore FW as per the PDF instructions diff --git a/patches/0023-base-files-add-the-wlan-ap-repo-hash.patch b/patches/0023-base-files-add-the-wlan-ap-repo-hash.patch index bf9f127fb..49065a873 100644 --- a/patches/0023-base-files-add-the-wlan-ap-repo-hash.patch +++ b/patches/0023-base-files-add-the-wlan-ap-repo-hash.patch @@ -1,7 +1,7 @@ -From 548f1e06f05fcd4e469de9e0e6a79870a25b9551 Mon Sep 17 00:00:00 2001 +From f27e3d4a67ac9adc43159aa33e3e0b88aa33552a Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 29 Aug 2020 08:25:41 +0200 -Subject: [PATCH 23/30] base-files: add the wlan-ap repo hash +Subject: [PATCH 23/40] base-files: add the wlan-ap repo hash currently the banner will show the revision of the build tree. This patch adds the hash of the wlan-ap tree. diff --git a/patches/0024-ec420-fix-generation-of-br-lan.patch b/patches/0024-ec420-fix-generation-of-br-lan.patch index f184ddfa0..2bffe2ab5 100644 --- a/patches/0024-ec420-fix-generation-of-br-lan.patch +++ b/patches/0024-ec420-fix-generation-of-br-lan.patch @@ -1,7 +1,7 @@ -From 03e974a5f2ca2b12e8013d9bd44b2d9c89d87bc3 Mon Sep 17 00:00:00 2001 +From 17e8d353f678cb7025bf0c35169d245fc2eee3d7 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 17 Sep 2020 08:12:23 +0200 -Subject: [PATCH 24/30] ec420: fix generation of br-lan +Subject: [PATCH 24/40] ec420: fix generation of br-lan OpenWrt does not allow bridges with no default interfaces. diff --git a/patches/0025-ipq807x-buildsystem-patches-required-by-the-target.patch b/patches/0025-ipq807x-buildsystem-patches-required-by-the-target.patch index f281e4b98..86556c4e5 100644 --- a/patches/0025-ipq807x-buildsystem-patches-required-by-the-target.patch +++ b/patches/0025-ipq807x-buildsystem-patches-required-by-the-target.patch @@ -1,7 +1,7 @@ -From 0e9c938a22ec353883223dcca730f054c1317172 Mon Sep 17 00:00:00 2001 +From 94b7aafa5482838923f466cb96edb8848183e5d8 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 20 Jun 2020 16:28:50 +0200 -Subject: [PATCH 25/30] ipq807x: buildsystem patches required by the target +Subject: [PATCH 25/40] ipq807x: buildsystem patches required by the target The target uses the v4.4 kernel and requires these patches to build properly. diff --git a/patches/0026-base-files-make-sysupgrade-work-on-qcom-AX.patch b/patches/0026-base-files-make-sysupgrade-work-on-qcom-AX.patch index 31cb9790a..6fbc3975c 100644 --- a/patches/0026-base-files-make-sysupgrade-work-on-qcom-AX.patch +++ b/patches/0026-base-files-make-sysupgrade-work-on-qcom-AX.patch @@ -1,7 +1,7 @@ -From ff121a96dd79eb4a6a9139d9ae012803f50321ae Mon Sep 17 00:00:00 2001 +From 94b3fa17d64560324b0a6b46de0e9952cc51778b Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 22 Jun 2020 14:32:45 +0200 -Subject: [PATCH 26/30] base-files: make sysupgrade work on qcom AX +Subject: [PATCH 26/40] base-files: make sysupgrade work on qcom AX The qsdk v4.4 ubi layer does not detach the rootfs properly during sysupgrade. Pull in the ubu force detach patch from owrt-15.05. diff --git a/patches/0027-ipq807x-add-the-Qualcomm-AX-target-support.patch b/patches/0027-ipq807x-add-the-Qualcomm-AX-target-support.patch index bf057839f..9bb8020cc 100644 --- a/patches/0027-ipq807x-add-the-Qualcomm-AX-target-support.patch +++ b/patches/0027-ipq807x-add-the-Qualcomm-AX-target-support.patch @@ -1,47 +1,58 @@ -From 7a86b245637b46f4d1c5f53aa0bd384e59a7e0ec Mon Sep 17 00:00:00 2001 +From adc12da944ee71a0913a9485b4f3d389caa2b240 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 18 Jul 2020 08:53:44 +0200 -Subject: [PATCH 1/6] ipq807x: add the Qualcomm AX target support +Subject: [PATCH 27/40] ipq807x: add the Qualcomm AX target support Signed-off-by: John Crispin --- - include/kernel-version.mk | 2 +- - package/boot/uboot-envtools/files/ipq807x | 37 + - target/linux/ipq807x/Makefile | 21 + - .../ipq807x/base-files/etc/board.d/01_leds | 22 + - .../ipq807x/base-files/etc/board.d/02_network | 55 + - .../etc/hotplug.d/firmware/10-ath11k-caldata | 65 ++ - .../ipq807x/base-files/etc/init.d/aq_phy | 15 + - .../linux/ipq807x/base-files/etc/init.d/wdt | 14 + - ...G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld | Bin 0 -> 391170 bytes - .../base-files/lib/upgrade/platform.sh | 53 + - target/linux/ipq807x/config-4.4 | 745 +++++++++++++ - target/linux/ipq807x/image/Makefile | 26 + - target/linux/ipq807x/image/ipq60xx.mk | 32 + - target/linux/ipq807x/image/ipq807x.mk | 41 + - target/linux/ipq807x/ipq60xx/config-default | 242 +++++ - .../linux/ipq807x/ipq60xx/profiles/default.mk | 9 + - target/linux/ipq807x/ipq60xx/target.mk | 8 + - target/linux/ipq807x/ipq807x/config-default | 222 ++++ - .../linux/ipq807x/ipq807x/profiles/default.mk | 9 + - target/linux/ipq807x/ipq807x/target.mk | 7 + - target/linux/ipq807x/modules.mk | 58 ++ - .../linux/ipq807x/patches/100-qrtr-ns.patch | 976 ++++++++++++++++++ - .../linux/ipq807x/patches/101-squashfs.patch | 16 + - .../linux/ipq807x/patches/102-cig-wf188.patch | 869 ++++++++++++++++ - .../ipq807x/patches/103-sercomm-wallaby.patch | 816 +++++++++++++++ - target/linux/ipq807x/patches/104-wf194c.patch | 816 +++++++++++++++ - 26 files changed, 5175 insertions(+), 1 deletion(-) + include/kernel-version.mk | 2 +- + package/boot/uboot-envtools/files/ipq807x | 37 + + target/linux/ipq807x/Makefile | 22 + + .../ipq807x/base-files/etc/board.d/01_leds | 27 + + .../ipq807x/base-files/etc/board.d/02_network | 65 + + .../etc/hotplug.d/firmware/10-ath11k-caldata | 69 + + .../ipq807x/base-files/etc/init.d/aq_phy | 15 + + .../ipq807x/base-files/etc/init.d/bootcount | 11 + + .../linux/ipq807x/base-files/etc/init.d/wdt | 14 + + ...G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld | Bin 0 -> 391170 bytes + .../base-files/lib/update_smp_affinity.sh | 203 +++ + .../base-files/lib/upgrade/platform.sh | 62 + + target/linux/ipq807x/config-4.4 | 748 ++++++++ + .../boot/dts/qcom/qcom-ipq807x-eap102.dts | 922 ++++++++++ + target/linux/ipq807x/image/Makefile | 26 + + target/linux/ipq807x/image/ipq60xx.mk | 42 + + target/linux/ipq807x/image/ipq807x.mk | 77 + + target/linux/ipq807x/ipq60xx/config-default | 242 +++ + .../linux/ipq807x/ipq60xx/profiles/default.mk | 9 + + target/linux/ipq807x/ipq60xx/target.mk | 8 + + target/linux/ipq807x/ipq807x/config-default | 222 +++ + .../linux/ipq807x/ipq807x/profiles/default.mk | 9 + + target/linux/ipq807x/ipq807x/target.mk | 7 + + target/linux/ipq807x/modules.mk | 58 + + .../linux/ipq807x/patches/100-qrtr-ns.patch | 976 +++++++++++ + .../linux/ipq807x/patches/101-squashfs.patch | 16 + + .../linux/ipq807x/patches/102-cig-wf188.patch | 869 ++++++++++ + .../ipq807x/patches/103-sercomm-wallaby.patch | 816 +++++++++ + target/linux/ipq807x/patches/104-wf194c.patch | 818 +++++++++ + .../patches/105-fix-dtc-gcc10-build.patch | 11 + + target/linux/ipq807x/patches/106-eap101.patch | 975 +++++++++++ + .../ipq807x/patches/107-ed2-compile.patch | 12 + + target/linux/ipq807x/patches/108-tplink.patch | 1510 +++++++++++++++++ + .../linux/ipq807x/patches/109-logspam.patch | 24 + + 34 files changed, 8923 insertions(+), 1 deletion(-) create mode 100644 package/boot/uboot-envtools/files/ipq807x create mode 100644 target/linux/ipq807x/Makefile create mode 100755 target/linux/ipq807x/base-files/etc/board.d/01_leds create mode 100755 target/linux/ipq807x/base-files/etc/board.d/02_network create mode 100755 target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata create mode 100755 target/linux/ipq807x/base-files/etc/init.d/aq_phy + create mode 100755 target/linux/ipq807x/base-files/etc/init.d/bootcount create mode 100755 target/linux/ipq807x/base-files/etc/init.d/wdt create mode 100644 target/linux/ipq807x/base-files/lib/firmware/AQR-G4_v5.4.B-AQR_CIG_WIFI_ID44715_VER1673.cld + create mode 100755 target/linux/ipq807x/base-files/lib/update_smp_affinity.sh create mode 100755 target/linux/ipq807x/base-files/lib/upgrade/platform.sh create mode 100644 target/linux/ipq807x/config-4.4 + create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts create mode 100644 target/linux/ipq807x/image/Makefile create mode 100644 target/linux/ipq807x/image/ipq60xx.mk create mode 100644 target/linux/ipq807x/image/ipq807x.mk @@ -57,9 +68,14 @@ Signed-off-by: John Crispin create mode 100644 target/linux/ipq807x/patches/102-cig-wf188.patch create mode 100644 target/linux/ipq807x/patches/103-sercomm-wallaby.patch create mode 100644 target/linux/ipq807x/patches/104-wf194c.patch + create mode 100644 target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch + create mode 100644 target/linux/ipq807x/patches/106-eap101.patch + create mode 100644 target/linux/ipq807x/patches/107-ed2-compile.patch + create mode 100644 target/linux/ipq807x/patches/108-tplink.patch + create mode 100644 target/linux/ipq807x/patches/109-logspam.patch diff --git a/include/kernel-version.mk b/include/kernel-version.mk -index 9f6939295a..43bdf76db7 100644 +index 9f6939295a..52c249ff9f 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -9,7 +9,7 @@ endif @@ -67,7 +83,7 @@ index 9f6939295a..43bdf76db7 100644 LINUX_VERSION-4.14 = .187 -LINUX_KERNEL_HASH-4.4.60 = cc015248c1b97d7a403d960c55ae6d54690f6cfc738362337eb3d11c0082269c -+LINUX_KERNEL_HASH-4.4.60 = 92c5320788332fedbfe8ce2da80a849dd68d1e7eeb09a094b93d1ae05a69ef89 ++LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) @@ -116,10 +132,10 @@ index 0000000000..6c429f1852 +exit 0 diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile new file mode 100644 -index 0000000000..e132546f2c +index 0000000000..0895fec121 --- /dev/null +++ b/target/linux/ipq807x/Makefile -@@ -0,0 +1,21 @@ +@@ -0,0 +1,22 @@ +include $(TOPDIR)/rules.mk + +ARCH:=aarch64 @@ -131,22 +147,23 @@ index 0000000000..e132546f2c +CPU_TYPE:=cortex-a53 + +KERNEL_PATCHVER:=4.4 -+KERNEL_NAME_SUFFIX=-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1 ++KERNEL_NAME_SUFFIX=-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce + +include $(INCLUDE_DIR)/target.mk +DEFAULT_PACKAGES += kmod-qca-nss-dp kmod-qca-ssdk swconfig \ + kmod-qca-nss-drv \ + kmod-usb-phy-ipq807x kmod-usb-dwc3-of-simple \ + kmod-ath11k-ahb kmod-qrtr_mproc wpad \ ++ kmod-gpio-button-hotplug \ + qca-thermald-10.4 qca-ssdk-shell + +$(eval $(call BuildTarget)) diff --git a/target/linux/ipq807x/base-files/etc/board.d/01_leds b/target/linux/ipq807x/base-files/etc/board.d/01_leds new file mode 100755 -index 0000000000..5196da447b +index 0000000000..12492bf3d1 --- /dev/null +++ b/target/linux/ipq807x/base-files/etc/board.d/01_leds -@@ -0,0 +1,22 @@ +@@ -0,0 +1,27 @@ +#!/bin/sh + +. /lib/functions/uci-defaults.sh @@ -164,6 +181,11 @@ index 0000000000..5196da447b + ucidef_set_led_netdev "wan" "WAN" "wf194c:green:wan" "br-wan" "tx rx link" + ucidef_set_led_netdev "lan" "LAN" "wf194c:green:lan" "br-lan" "tx rx link" + ;; ++edgecore,eap101\ ++edgecore,eap102) ++ ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy0tx" ++ ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy1tx" ++ ;; +esac + +board_config_flush @@ -171,10 +193,10 @@ index 0000000000..5196da447b +exit 0 diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network new file mode 100755 -index 0000000000..aadf9d4ff2 +index 0000000000..15c341c449 --- /dev/null +++ b/target/linux/ipq807x/base-files/etc/board.d/02_network -@@ -0,0 +1,55 @@ +@@ -0,0 +1,65 @@ +#!/bin/sh + +. /lib/functions.sh @@ -189,7 +211,9 @@ index 0000000000..aadf9d4ff2 + ucidef_add_switch_attr "switch0" "reset" "false" + + case $board in -+ cig,wf188) ++ cig,wf188|\ ++ tplink,ex227|\ ++ tplink,ex447) + ucidef_set_interface_lan "eth0" + ;; + qcom,ipq6018-cp01|\ @@ -203,6 +227,14 @@ index 0000000000..aadf9d4ff2 + ucidef_set_interface_lan "eth0" + ucidef_set_interface_wan "eth1" + ;; ++ edgecore,eap101) ++ ucidef_set_interface_lan "eth1 eth2" ++ ucidef_set_interface_wan "eth0" ++ ;; ++ edgecore,eap102) ++ ucidef_set_interface_lan "eth1" ++ ucidef_set_interface_wan "eth0" ++ ;; + esac +} + @@ -232,10 +264,10 @@ index 0000000000..aadf9d4ff2 +exit 0 diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata new file mode 100755 -index 0000000000..30292c2505 +index 0000000000..392f1e5cbe --- /dev/null +++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -@@ -0,0 +1,65 @@ +@@ -0,0 +1,69 @@ +#!/bin/sh + +[ -e /lib/firmware/$FIRMWARE ] && exit 0 @@ -264,20 +296,24 @@ index 0000000000..30292c2505 +board=$(board_name) + +case "$FIRMWARE" in -+"IPQ8074/caldata.bin") ++"ath11k/IPQ8074/hw2.0/caldata.bin") + case "$board" in + cig,wf194c|\ ++ edgecore,eap102 |\ + qcom,ipq807x-hk01|\ + qcom,ipq807x-hk14|\ ++ tplink,ex227|\ ++ tplink,ex447|\ + sercomm,wallaby) + caldata_extract "0:ART" 0x1000 0x20000 + ;; + esac + ;; -+"IPQ6018/caldata.bin") ++"ath11k/IPQ6018/hw1.0/caldata.bin") + case "$board" in + cig,wf188|\ + cig,wf188n|\ ++ edgecore,eap101|\ + qcom,ipq6018-cp01) + caldata_extract "0:ART" 0x1000 0x20000 + ;; @@ -322,6 +358,23 @@ index 0000000000..41a52ccc2d + ;; + esac +} +diff --git a/target/linux/ipq807x/base-files/etc/init.d/bootcount b/target/linux/ipq807x/base-files/etc/init.d/bootcount +new file mode 100755 +index 0000000000..ac345d6d4a +--- /dev/null ++++ b/target/linux/ipq807x/base-files/etc/init.d/bootcount +@@ -0,0 +1,11 @@ ++#!/bin/sh /etc/rc.common ++ ++START=99 ++ ++boot() { ++ case "$(board_name)" in ++ edgecore,eap101) ++ fw_setenv bootcount 0 ++ ;; ++ esac ++} diff --git a/target/linux/ipq807x/base-files/etc/init.d/wdt b/target/linux/ipq807x/base-files/etc/init.d/wdt new file mode 100755 index 0000000000..75de36a347 @@ -4521,12 +4574,221 @@ b4F2C~4_;jUw%c04m4Mu7{r~pwLDT;MxmF=) literal 0 HcmV?d00001 +diff --git a/target/linux/ipq807x/base-files/lib/update_smp_affinity.sh b/target/linux/ipq807x/base-files/lib/update_smp_affinity.sh +new file mode 100755 +index 0000000000..ec079258b4 +--- /dev/null ++++ b/target/linux/ipq807x/base-files/lib/update_smp_affinity.sh +@@ -0,0 +1,203 @@ ++#!/bin/sh ++# ++# Copyright (c) 2015 The Linux Foundation. All rights reserved. ++# Copyright (C) 2011 OpenWrt.org ++ ++. /lib/ipq806x.sh ++ ++enable_smp_affinity_wigig() { ++ # This function supports up to 2 wil6210 devices. ++ wil6210_tx0=`grep -E -m1 'wil6210_tx' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ wil6210_rx0=`grep -E -m1 'wil6210_rx' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ wil6210_tx1=`grep -E -m2 'wil6210_tx' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ wil6210_rx1=`grep -E -m2 'wil6210_rx' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ ++ # Enable smp_affinity for wil6210 devices ++ [ -n "$wil6210_tx0" ] && echo 8 > /proc/irq/$wil6210_tx0/smp_affinity ++ [ -n "$wil6210_rx0" ] && echo 4 > /proc/irq/$wil6210_rx0/smp_affinity ++ [ -n "$wil6210_tx1" ] && echo 8 > /proc/irq/$wil6210_tx1/smp_affinity ++ [ -n "$wil6210_rx1" ] && echo 4 > /proc/irq/$wil6210_rx1/smp_affinity ++ ++ # Adjust nss_queue handler affinity to avoid contention with wil6210_tx handler for EDMG ++ [ -n "$wil6210_tx0" ] && [ -n "$wil6210_rx0" ] && { ++ nssq0_set1=`grep -E -m1 'nss_queue0' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ nssq3_set1=`grep -E -m1 'nss_queue3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ nssq0_set2=`grep -E -m2 'nss_queue0' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ ++ irq3_set1=`cat /proc/irq/$nssq3_set1/smp_affinity` ++ if [ $irq3_set1 -eq 8 ] ; then ++ echo 4 > /proc/irq/$nssq3_set1/smp_affinity ++ fi ++ ++ irq0_set1=`cat /proc/irq/$nssq0_set1/smp_affinity` ++ irq0_set2=`cat /proc/irq/$nssq0_set2/smp_affinity` ++ if [ "$irq0_set1" == "f" ] && [ "$irq0_set2" == "f" ] ; then ++ echo e > /proc/irq/$nssq0_set2/smp_affinity ++ fi ++ } ++} ++ ++enable_smp_affinity_wifi() { ++ irq_wifi0=`grep -E -m1 'ath10k' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ irq_wifi1=`grep -E -m2 'ath10k' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ ++ # Enable smp_affinity for ath10k driver ++ if [ -n "$irq_wifi0" ]; then ++ board=$(ipq806x_board_name) ++ ++ case "$board" in ++ ap-dk0*) ++ echo 4 > /proc/irq/$irq_wifi0/smp_affinity ++ [ -n "$irq_wifi1" ] && { ++ echo 8 > /proc/irq/$irq_wifi1/smp_affinity ++ } ++ ;; ++ ap148*) ++ echo 2 > /proc/irq/$irq_wifi0/smp_affinity ++ ;; ++ esac ++ else ++ # Enable smp_affinity for qca-wifi driver ++ board=$(ipq806x_board_name) ++ device="$1" ++ hwcaps=$(cat /sys/class/net/$device/hwcaps) ++ ++ ++ [ -n "$device" ] && { ++ case "$board" in ++ ap-dk0*) ++ if [ $device == "wifi2" ]; then ++ irq_affinity_num=`grep -E -m3 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ elif [ $device == "wifi1" ];then ++ irq_affinity_num=`grep -E -m2 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ else ++ irq_affinity_num=`grep -E -m1 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ fi ++ ;; ++ *) ++ if [ $device == "wifi2" ]; then ++ irq_affinity_num=`grep -E -m3 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ elif [ $device == "wifi1" ];then ++ irq_affinity_num=`grep -E -m2 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ else ++ irq_affinity_num=`grep -E -m1 'wlan' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ fi ++ esac ++ } ++ ++ case "${hwcaps}" in ++ *11an/ac) ++ smp_affinity=2 ++ ;; ++ *) ++ smp_affinity=4 ++ esac ++ ++ case "$board" in ++ ap-dk0*) ++ if [ $device == "wifi2" ]; then ++ # Assign core 3 for wifi2. For ap-dkXX,wifi2 is always the third radio ++ smp_affinity=8 ++ fi ++ ;; ++ esac ++ ++ [ -n "$irq_affinity_num" ] && echo $smp_affinity > /proc/irq/$irq_affinity_num/smp_affinity ++ fi ++ ++ # Enable smp_affinity for Lithium ++ ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ #Flipping arrangement for HK14 boards as reo2host-destination-ring1 5G data needs to go to core 1 for better throughput ++ board=$(cat /tmp/sysinfo/board_name) ++ ++ case "$board" in ++ ap-hk14*) ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ ;; ++ *) ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'reo2host-destination-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity ++ ;; ++ esac ++ ++ irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ irq_affinity_num=`grep -E -m1 'ppdu-end-interrupts-mac1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-status-ring-mac1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-destination-mac1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'host2rxdma-monitor-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ irq_affinity_num=`grep -E -m1 'ppdu-end-interrupts-mac2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-status-ring-mac2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-destination-mac2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'host2rxdma-monitor-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ irq_affinity_num=`grep -E -m1 'ppdu-end-interrupts-mac3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-status-ring-mac3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'rxdma2host-monitor-destination-mac3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'host2rxdma-monitor-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ # Enable smp affinity for PCIE attach ++ #pci 0 ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_0' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_5' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_6' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci0_wlan_grp_dp_7' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ ++ #pci 1 ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_0' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_5' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_6' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity ++ irq_affinity_num=`grep -E -m1 'pci1_wlan_grp_dp_7' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` ++ [ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity ++} diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh new file mode 100755 -index 0000000000..0073b94bbb +index 0000000000..4e05cd13ec --- /dev/null +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -@@ -0,0 +1,53 @@ +@@ -0,0 +1,62 @@ +. /lib/functions/system.sh + +qca_do_upgrade() { @@ -4552,6 +4814,8 @@ index 0000000000..0073b94bbb + cig,wf188|\ + cig,wf188n|\ + cig,wf194c|\ ++ edgecore,eap101|\ ++ edgecore,eap102|\ + qcom,ipq6018-cp01|\ + qcom,ipq807x-hk01|\ + sercomm,wallaby) @@ -4568,24 +4832,31 @@ index 0000000000..0073b94bbb + + board=$(board_name) + case $board in -+ cig,wf188) ++ cig,wf188|\ ++ tplink,ex227|\ ++ tplink,ex447) + qca_do_upgrade $1 + ;; + cig,wf188n|\ + cig,wf194c|\ ++ edgecore,eap102|\ + qcom,ipq6018-cp01|\ + qcom,ipq807x-hk01|\ + sercomm,wallaby) + nand_upgrade_tar "$1" + ;; ++ edgecore,eap101) ++ CI_UBIPART="rootfs1" ++ nand_upgrade_tar "$1" ++ ;; + esac +} diff --git a/target/linux/ipq807x/config-4.4 b/target/linux/ipq807x/config-4.4 new file mode 100644 -index 0000000000..84e68078a6 +index 0000000000..440d7b99c5 --- /dev/null +++ b/target/linux/ipq807x/config-4.4 -@@ -0,0 +1,745 @@ +@@ -0,0 +1,748 @@ +# CONFIG_AHCI_IPQ is not set +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_ALLOW_DEV_COREDUMP is not set @@ -5123,8 +5394,8 @@ index 0000000000..84e68078a6 +CONFIG_QCOM_GDSC=y +CONFIG_QCOM_GSBI=y +# CONFIG_QCOM_HFPLL is not set -+CONFIG_QCOM_MEMORY_DUMP_V2=y -+CONFIG_QCOM_QFPROM=y ++# CONFIG_QCOM_MEMORY_DUMP_V2 is not set ++# CONFIG_QCOM_QFPROM is not set +# CONFIG_QCOM_SPMI_TEMP_ALARM is not set +CONFIG_QCOM_RPM_CLK=y +# CONFIG_QCOM_RTB is not set @@ -5228,6 +5499,7 @@ index 0000000000..84e68078a6 +CONFIG_USB_GADGET=n +CONFIG_USB_SUPPORT=y +# CONFIG_USB_DWC3_OF_SIMPLE is not set ++# CONFIG_USB_QCOM_KS_BRIDGE is not set +# CONFIG_USB_QCOM_8X16_PHY is not set +# CONFIG_USB_QCOM_QUSB_PHY is not set +# CONFIG_USB_QCOM_QMP_PHY is not set @@ -5251,11 +5523,11 @@ index 0000000000..84e68078a6 +CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DMA_FLAG=0 -+CONFIG_QCOM_CACHE_DUMP=y -+CONFIG_QCOM_CACHE_DUMP_ON_PANIC=y -+CONFIG_QCOM_RESTART_REASON=y -+CONFIG_QCOM_DLOAD_MODE=y -+CONFIG_QCOM_DLOAD_MODE_APPSBL=y ++# CONFIG_QCOM_CACHE_DUMP is not set ++# CONFIG_QCOM_CACHE_DUMP_ON_PANIC is not set ++# CONFIG_QCOM_RESTART_REASON is not set ++# CONFIG_QCOM_DLOAD_MODE is not set ++# CONFIG_QCOM_DLOAD_MODE_APPSBL is not set +CONFIG_FW_AUTH=y +CONFIG_FW_AUTH_TEST=m +CONFIG_ASYMMETRIC_KEY_TYPE=y @@ -5314,7 +5586,7 @@ index 0000000000..84e68078a6 +# CONFIG_RPMSG_CHAR is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set +# CONFIG_RPMSG_QCOM_SMD is not set -+CONFIG_QCA_MINIDUMP=y ++# CONFIG_QCA_MINIDUMP is not set +# CONFIG_QCA_MINIDUMP_DEBUG is not set +# CONFIG_QRTR_USB is not set +# CONFIG_QRTR_FIFO is not set @@ -5331,6 +5603,936 @@ index 0000000000..84e68078a6 +# CONFIG_MAP_E_SUPPORT is not set +# CONFIG_USB_QCA_M31_PHY is not set +CONFIG_QTI_Q6V5_ADSP=y ++# CONFIG_QGIC2_MSI is not set ++CONFIG_BRIDGE_VLAN_FILTERING=y +diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts +new file mode 100755 +index 0000000000..f81cf2d4af +--- /dev/null ++++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts +@@ -0,0 +1,922 @@ ++/dts-v1/; ++/* ++ * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. ++ * ++ * Permission to use, copy, modify, and/or distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++#include "qcom-ipq807x-soc.dtsi" ++#include "qcom-ipq807x-ac-cpu.dtsi" ++ ++/ { ++ #address-cells = <0x2>; ++ #size-cells = <0x2>; ++ model = "Edgecore EAP102"; ++ compatible = "edgecore,eap102", "qcom,ipq807x-ac02", "qcom,ipq807x"; ++ qcom,msm-id = <0x178 0x0>; ++ interrupt-parent = <&intc>; ++ qcom,board-id = <0x8 0x0>; ++ qcom,pmic-id = <0x0 0x0 0x0 0x0>; ++ ++ aliases { ++ /* ++ * Aliases as required by u-boot ++ * to patch MAC addresses ++ */ ++ ethernet0 = "/soc/dp1"; ++ ethernet1 = "/soc/dp2"; ++ ethernet2 = "/soc/dp3"; ++ ethernet3 = "/soc/dp4"; ++ ethernet4 = "/soc/dp5"; ++ ethernet5 = "/soc/dp6"; ++ ++ led-boot = &led_power; ++ led-failsafe = &led_power; ++ led-running = &led_power; ++ led-upgrade = &led_power; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \ ++ init=/init"; ++ #ifdef __IPQ_MEM_PROFILE_256_MB__ ++ bootargs-append = " swiotlb=1"; ++ #else ++ bootargs-append = " swiotlb=1 coherent_pool=2M"; ++ #endif ++ }; ++}; ++ ++&tlmm { ++ pinctrl-0 = <&btcoex_pins>; ++ pinctrl-names = "default"; ++ ++ btcoex_pins: btcoex_pins { ++ mux_0 { ++ pins = "gpio64"; ++ function = "pta1_1"; ++ drive-strength = <6>; ++ bias-pull-down; ++ }; ++ mux_1 { ++ pins = "gpio65"; ++ function = "pta1_2"; ++ drive-strength = <6>; ++ bias-pull-down; ++ }; ++ }; ++ ++ mdio_pins: mdio_pinmux { ++ mux_0 { ++ pins = "gpio68"; ++ function = "mdc"; ++ drive-strength = <8>; ++ bias-pull-up; ++ }; ++ mux_1 { ++ pins = "gpio69"; ++ function = "mdio"; ++ drive-strength = <8>; ++ bias-pull-up; ++ }; ++ mux_2 { ++ pins = "gpio33"; ++ function = "gpio"; ++ bias-pull-up; ++ }; ++ mux_3 { ++ pins = "gpio44"; ++ function = "gpio"; ++ bias-pull-up; ++ }; ++ }; ++ ++ uart_pins: uart_pins { ++ mux { ++ pins = "gpio23", "gpio24"; ++ function = "blsp4_uart1"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ }; ++ ++ spi_0_pins: spi_0_pins { ++ mux { ++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; ++ function = "blsp0_spi"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ }; ++ ++ qpic_pins: qpic_pins { ++ data_0 { ++ pins = "gpio15"; ++ function = "qpic_pad0"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_1 { ++ pins = "gpio12"; ++ function = "qpic_pad1"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_2 { ++ pins = "gpio13"; ++ function = "qpic_pad2"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_3 { ++ pins = "gpio14"; ++ function = "qpic_pad3"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_4 { ++ pins = "gpio5"; ++ function = "qpic_pad4"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_5 { ++ pins = "gpio6"; ++ function = "qpic_pad5"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_6 { ++ pins = "gpio7"; ++ function = "qpic_pad6"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ data_7 { ++ pins = "gpio8"; ++ function = "qpic_pad7"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ qpic_pad { ++ pins = "gpio1", "gpio3", "gpio4", ++ "gpio10", "gpio11", "gpio17"; ++ function = "qpic_pad"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ }; ++ ++ hsuart_pins: hsuart_pins { ++ mux { ++ pins = "gpio49"; ++ function = "blsp2_uart"; ++ drive-strength = <8>; ++ bias-disable; ++ }; ++ }; ++ ++ button_pins: button_pins { ++ ++ reset_button { ++ pins = "gpio66"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-up; ++ }; ++ }; ++ ++ led_pins: led_pins { ++ led_pwr { ++ pins = "gpio46"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ ++ led_2g { ++ pins = "gpio47"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ ++ led_5g { ++ pins = "gpio48"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ ++ led_bt { ++ pins = "gpio50"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ }; ++ ++ usb_mux_sel_pins: usb_mux_pins { ++ mux { ++ pins = "gpio27"; ++ function = "gpio"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ }; ++ ++ pcie0_pins: pcie_pins { ++ pcie0_rst { ++ pins = "gpio58"; ++ function = "pcie0_rst"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ pcie0_wake { ++ pins = "gpio59"; ++ function = "pcie0_wake"; ++ drive-strength = <8>; ++ bias-pull-down; ++ }; ++ }; ++ ++}; ++ ++&soc { ++ gpio_keys { ++ compatible = "gpio-keys"; ++ pinctrl-0 = <&button_pins>; ++ pinctrl-names = "default"; ++ ++ button@1 { ++ label = "reset_button"; ++ linux,code = ; ++ gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; ++ linux,input-type = <1>; ++ debounce-interval = <60>; ++ }; ++ }; ++ ++ mdio: mdio@90000 { ++ pinctrl-0 = <&mdio_pins>; ++ pinctrl-names = "default"; ++ phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1 &tlmm 44 1>; ++ compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio"; ++ phy0: ethernet-phy@0 { ++ reg = <0>; ++ }; ++ phy1: ethernet-phy@1 { ++ reg = <1>; ++ }; ++ phy2: ethernet-phy@2 { ++ reg = <2>; ++ }; ++ phy3: ethernet-phy@3 { ++ reg = <3>; ++ }; ++ phy4: ethernet-phy@4 { ++ reg = <24>; ++ }; ++ phy5: ethernet-phy@5 { ++ reg = <28>; ++ }; ++ }; ++ ++ ess-switch@3a000000 { ++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ ++ switch_lan_bmp = <0x3e>; /* lan port bitmap */ ++ switch_wan_bmp = <0x40>; /* wan port bitmap */ ++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ ++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ ++ switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ ++ bm_tick_mode = <0>; /* bm tick mode */ ++ tm_tick_mode = <0>; /* tm tick mode */ ++ qcom,port_phyinfo { ++ port@0 { ++ port_id = <1>; ++ phy_address = <0>; ++ }; ++ port@1 { ++ port_id = <2>; ++ phy_address = <1>; ++ }; ++ port@2 { ++ port_id = <3>; ++ phy_address = <2>; ++ }; ++ port@3 { ++ port_id = <4>; ++ phy_address = <3>; ++ }; ++ port@4 { ++ port_id = <5>; ++ phy_address = <24>; ++ port_mac_sel = "QGMAC_PORT"; ++ }; ++ port@5 { ++ port_id = <6>; ++ phy_address = <28>; ++ port_mac_sel = "QGMAC_PORT"; ++ }; ++ }; ++ port_scheduler_resource { ++ port@0 { ++ port_id = <0>; ++ ucast_queue = <0 143>; ++ mcast_queue = <256 271>; ++ l0sp = <0 35>; ++ l0cdrr = <0 47>; ++ l0edrr = <0 47>; ++ l1cdrr = <0 7>; ++ l1edrr = <0 7>; ++ }; ++ port@1 { ++ port_id = <1>; ++ ucast_queue = <144 159>; ++ mcast_queue = <272 275>; ++ l0sp = <36 39>; ++ l0cdrr = <48 63>; ++ l0edrr = <48 63>; ++ l1cdrr = <8 11>; ++ l1edrr = <8 11>; ++ }; ++ port@2 { ++ port_id = <2>; ++ ucast_queue = <160 175>; ++ mcast_queue = <276 279>; ++ l0sp = <40 43>; ++ l0cdrr = <64 79>; ++ l0edrr = <64 79>; ++ l1cdrr = <12 15>; ++ l1edrr = <12 15>; ++ }; ++ port@3 { ++ port_id = <3>; ++ ucast_queue = <176 191>; ++ mcast_queue = <280 283>; ++ l0sp = <44 47>; ++ l0cdrr = <80 95>; ++ l0edrr = <80 95>; ++ l1cdrr = <16 19>; ++ l1edrr = <16 19>; ++ }; ++ port@4 { ++ port_id = <4>; ++ ucast_queue = <192 207>; ++ mcast_queue = <284 287>; ++ l0sp = <48 51>; ++ l0cdrr = <96 111>; ++ l0edrr = <96 111>; ++ l1cdrr = <20 23>; ++ l1edrr = <20 23>; ++ }; ++ port@5 { ++ port_id = <5>; ++ ucast_queue = <208 223>; ++ mcast_queue = <288 291>; ++ l0sp = <52 55>; ++ l0cdrr = <112 127>; ++ l0edrr = <112 127>; ++ l1cdrr = <24 27>; ++ l1edrr = <24 27>; ++ }; ++ port@6 { ++ port_id = <6>; ++ ucast_queue = <224 239>; ++ mcast_queue = <292 295>; ++ l0sp = <56 59>; ++ l0cdrr = <128 143>; ++ l0edrr = <128 143>; ++ l1cdrr = <28 31>; ++ l1edrr = <28 31>; ++ }; ++ port@7 { ++ port_id = <7>; ++ ucast_queue = <240 255>; ++ mcast_queue = <296 299>; ++ l0sp = <60 63>; ++ l0cdrr = <144 159>; ++ l0edrr = <144 159>; ++ l1cdrr = <32 35>; ++ l1edrr = <32 35>; ++ }; ++ }; ++ port_scheduler_config { ++ port@0 { ++ port_id = <0>; ++ l1scheduler { ++ group@0 { ++ sp = <0 1>; /*L0 SPs*/ ++ /*cpri cdrr epri edrr*/ ++ cfg = <0 0 0 0>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ /*unicast queues*/ ++ ucast_queue = <0 4 8>; ++ /*multicast queues*/ ++ mcast_queue = <256 260>; ++ /*sp cpri cdrr epri edrr*/ ++ cfg = <0 0 0 0 0>; ++ }; ++ group@1 { ++ ucast_queue = <1 5 9>; ++ mcast_queue = <257 261>; ++ cfg = <0 1 1 1 1>; ++ }; ++ group@2 { ++ ucast_queue = <2 6 10>; ++ mcast_queue = <258 262>; ++ cfg = <0 2 2 2 2>; ++ }; ++ group@3 { ++ ucast_queue = <3 7 11>; ++ mcast_queue = <259 263>; ++ cfg = <0 3 3 3 3>; ++ }; ++ }; ++ }; ++ port@1 { ++ port_id = <1>; ++ l1scheduler { ++ group@0 { ++ sp = <36>; ++ cfg = <0 8 0 8>; ++ }; ++ group@1 { ++ sp = <37>; ++ cfg = <1 9 1 9>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <144>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <272>; ++ mcast_loop_pri = <4>; ++ cfg = <36 0 48 0 48>; ++ }; ++ }; ++ }; ++ port@2 { ++ port_id = <2>; ++ l1scheduler { ++ group@0 { ++ sp = <40>; ++ cfg = <0 12 0 12>; ++ }; ++ group@1 { ++ sp = <41>; ++ cfg = <1 13 1 13>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <160>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <276>; ++ mcast_loop_pri = <4>; ++ cfg = <40 0 64 0 64>; ++ }; ++ }; ++ }; ++ port@3 { ++ port_id = <3>; ++ l1scheduler { ++ group@0 { ++ sp = <44>; ++ cfg = <0 16 0 16>; ++ }; ++ group@1 { ++ sp = <45>; ++ cfg = <1 17 1 17>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <176>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <280>; ++ mcast_loop_pri = <4>; ++ cfg = <44 0 80 0 80>; ++ }; ++ }; ++ }; ++ port@4 { ++ port_id = <4>; ++ l1scheduler { ++ group@0 { ++ sp = <48>; ++ cfg = <0 20 0 20>; ++ }; ++ group@1 { ++ sp = <49>; ++ cfg = <1 21 1 21>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <192>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <284>; ++ mcast_loop_pri = <4>; ++ cfg = <48 0 96 0 96>; ++ }; ++ }; ++ }; ++ port@5 { ++ port_id = <5>; ++ l1scheduler { ++ group@0 { ++ sp = <52>; ++ cfg = <0 24 0 24>; ++ }; ++ group@1 { ++ sp = <53>; ++ cfg = <1 25 1 25>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <208>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <288>; ++ mcast_loop_pri = <4>; ++ cfg = <52 0 112 0 112>; ++ }; ++ }; ++ }; ++ port@6 { ++ port_id = <6>; ++ l1scheduler { ++ group@0 { ++ sp = <56>; ++ cfg = <0 28 0 28>; ++ }; ++ group@1 { ++ sp = <57>; ++ cfg = <1 29 1 29>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <224>; ++ ucast_loop_pri = <16>; ++ mcast_queue = <292>; ++ mcast_loop_pri = <4>; ++ cfg = <56 0 128 0 128>; ++ }; ++ }; ++ }; ++ port@7 { ++ port_id = <7>; ++ l1scheduler { ++ group@0 { ++ sp = <60>; ++ cfg = <0 32 0 32>; ++ }; ++ }; ++ l0scheduler { ++ group@0 { ++ ucast_queue = <240>; ++ mcast_queue = <296>; ++ cfg = <60 0 144 0 144>; ++ }; ++ }; ++ }; ++ }; ++ }; ++ ++ dp1 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <1>; ++ reg = <0x3a001000 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <0>; ++ phy-mode = "sgmii"; ++ }; ++ ++ dp2 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <2>; ++ reg = <0x3a001200 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <1>; ++ phy-mode = "sgmii"; ++ }; ++ ++ dp3 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <3>; ++ reg = <0x3a001400 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <2>; ++ phy-mode = "sgmii"; ++ }; ++ ++ dp4 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <4>; ++ reg = <0x3a001600 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <3>; ++ phy-mode = "sgmii"; ++ }; ++ ++ dp5 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <5>; ++ reg = <0x3a001800 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <24>; ++ phy-mode = "sgmii"; ++ }; ++ ++ dp6 { ++ device_type = "network"; ++ compatible = "qcom,nss-dp"; ++ qcom,id = <6>; ++ reg = <0x3a001a00 0x200>; ++ qcom,mactype = <0>; ++ local-mac-address = [000000000000]; ++ qcom,link-poll = <1>; ++ qcom,phy-mdio-addr = <28>; ++ phy-mode = "sgmii"; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-0 = <&led_pins>; ++ pinctrl-names = "default"; ++ ++ led_power: led_pwr { ++ label = "green:power"; ++ gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; ++ default-state = "on"; ++ linux,default-trigger = "led_pwr"; ++ }; ++ ++ led_2g { ++ label = "green:wifi2"; ++ gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ }; ++ ++ led_5g { ++ label = "green:wifi5"; ++ gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ }; ++ ++ led_bt { ++ gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; ++ label = "green:bt"; ++ default-state = "off"; ++ linux,default-trigger = "led_bt"; ++ }; ++ }; ++ nss-macsec0 { ++ compatible = "qcom,nss-macsec"; ++ phy_addr = <0x18>; ++ phy_access_mode = <0>; ++ mdiobus = <&mdio>; ++ }; ++ nss-macsec1 { ++ compatible = "qcom,nss-macsec"; ++ phy_addr = <0x1c>; ++ phy_access_mode = <0>; ++ mdiobus = <&mdio>; ++ }; ++}; ++ ++&serial_blsp4 { ++ pinctrl-0 = <&uart_pins>; ++ pinctrl-names = "default"; ++ status = "ok"; ++}; ++ ++&spi_0 { /* BLSP1 QUP1 */ ++ pinctrl-0 = <&spi_0_pins>; ++ pinctrl-names = "default"; ++ cs-select = <0>; ++ status = "ok"; ++ ++ m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ reg = <0>; ++ compatible = "n25q128a11"; ++ linux,modalias = "m25p80", "n25q128a11"; ++ spi-max-frequency = <50000000>; ++ use-default-sizes; ++ }; ++}; ++ ++&serial_blsp2 { ++ pinctrl-0 = <&hsuart_pins>; ++ pinctrl-names = "default"; ++ status = "ok"; ++}; ++ ++&nss0 { ++ qcom,low-frequency = <187200000>; ++ qcom,mid-frequency = <748800000>; ++ qcom,max-frequency = <1497600000>; ++}; ++ ++&msm_imem { ++ status = "disabled"; ++}; ++ ++&ssphy_0 { ++ status = "ok"; ++}; ++ ++&qusb_phy_0 { ++ status = "ok"; ++}; ++ ++&ssphy_1 { ++ status = "ok"; ++}; ++ ++&qusb_phy_1 { ++ status = "ok"; ++}; ++ ++&usb3_0 { ++ status = "ok"; ++}; ++ ++&usb3_1 { ++ status = "ok"; ++}; ++ ++&cryptobam { ++ status = "ok"; ++}; ++ ++&crypto { ++ status = "ok"; ++}; ++ ++&i2c_0 { ++ status = "disabled"; ++}; ++ ++&i2c_1 { ++ status = "disabled"; ++}; ++ ++&qpic_bam { ++ status = "ok"; ++}; ++ ++&nand { ++ pinctrl-0 = <&qpic_pins>; ++ pinctrl-names = "default"; ++ status = "ok"; ++}; ++ ++&qpic_lcd { ++ status = "disabled"; ++}; ++ ++&qpic_lcd_panel { ++ status = "disabled"; ++}; ++ ++&ledc { ++ status = "disabled"; ++}; ++ ++&pcie0 { ++ status = "ok"; ++}; ++ ++&pcie1 { ++ status = "disabled"; ++}; ++ ++&glink_rpm { ++ status = "disabled"; ++}; ++ ++&apc_cpr { ++ /* Same CPR configuration as OAK */ ++ compatible = "qcom,cpr4-ipq817x-apss-regulator"; ++ ++ thread@0 { ++ apc_vreg: regulator { ++ regulator-min-microvolt = <1>; ++ regulator-max-microvolt = <2>; ++ qcom,cpr-fuse-corners = <2>; ++ qcom,cpr-corners = <3>; ++ qcom,cpr-speed-bin-corners = <3>; ++ qcom,cpr-corner-fmax-map = <1 3>; ++ ++ qcom,cpr-voltage-ceiling = ++ <840000 904000 944000>; ++ qcom,cpr-voltage-floor = ++ <592000 648000 712000>; ++ qcom,corner-frequencies = ++ <1017600000 1382400000 1382400000>; ++ ++ qcom,cpr-open-loop-voltage-fuse-adjustment-0 = ++ /* Speed bin 0; CPR rev 0..7 */ ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>; ++ ++ qcom,cpr-open-loop-voltage-fuse-adjustment-1 = ++ /* Speed bin 0; CPR rev 0..7 */ ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 20000 26000>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>; ++ ++ qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0 = ++ /* Speed bin 0; CPR rev 0..7 */ ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>; ++ ++ qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1 = ++ /* Speed bin 0; CPR rev 0..7 */ ++ < 0 0>, ++ < 0 7000>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>, ++ < 0 0>; ++ ++ qcom,cpr-floor-to-ceiling-max-range = ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>, ++ < 40000 40000 40000>; ++ }; ++ }; ++}; ++ ++&npu_cpr { ++ status = "disabled"; ++}; ++ ++&nss0 { ++ npu-supply = <&dummy_reg>; ++ mx-supply = <&dummy_reg>; ++}; ++ ++&wifi0 { ++ qcom,board_id = <0x92>; ++}; ++ ++&wifi1 { ++ qcom,board_id = <0x292>; ++}; diff --git a/target/linux/ipq807x/image/Makefile b/target/linux/ipq807x/image/Makefile new file mode 100644 index 0000000000..3a219e6d6c @@ -5365,10 +6567,10 @@ index 0000000000..3a219e6d6c +$(eval $(call BuildImage)) diff --git a/target/linux/ipq807x/image/ipq60xx.mk b/target/linux/ipq807x/image/ipq60xx.mk new file mode 100644 -index 0000000000..6a2d30bbb6 +index 0000000000..fd66acab58 --- /dev/null +++ b/target/linux/ipq807x/image/ipq60xx.mk -@@ -0,0 +1,32 @@ +@@ -0,0 +1,42 @@ +KERNEL_LOADADDR := 0x41080000 + +define Device/cig_wf188 @@ -5393,6 +6595,16 @@ index 0000000000..6a2d30bbb6 +endef +TARGET_DEVICES += cig_wf188n + ++define Device/edgecore_eap101 ++ DEVICE_TITLE := EdgeCore EAP101 ++ DEVICE_DTS := qcom-ipq6018-edgecore-eap101 ++ DEVICE_DTS_DIR := $(DTS_DIR)/qcom ++ DEVICE_DTS_CONFIG := config@cp01-c1 ++ SUPPORTED_DEVICES := edgecore,eap101 ++ DEVICE_PACKAGES := ath11k-wifi-edgecore-eap101 uboot-env ++endef ++TARGET_DEVICES += edgecore_eap101 ++ +define Device/qcom_cp01_c1 + DEVICE_TITLE := Qualcomm Cypress C1 + DEVICE_DTS := qcom-ipq6018-cp01-c1 @@ -5403,10 +6615,10 @@ index 0000000000..6a2d30bbb6 +TARGET_DEVICES += qcom_cp01_c1 diff --git a/target/linux/ipq807x/image/ipq807x.mk b/target/linux/ipq807x/image/ipq807x.mk new file mode 100644 -index 0000000000..9a8cbd8581 +index 0000000000..6e93f57229 --- /dev/null +++ b/target/linux/ipq807x/image/ipq807x.mk -@@ -0,0 +1,41 @@ +@@ -0,0 +1,77 @@ +KERNEL_LOADADDR := 0x41080000 + +define Device/qcom_hk01 @@ -5448,6 +6660,42 @@ index 0000000000..9a8cbd8581 + DEVICE_PACKAGES := ath11k-wifi-cig-wf194c aq-fw-download uboot-envtools +endef +TARGET_DEVICES += cig_wf194 ++ ++define Device/edgecore_eap102 ++ DEVICE_TITLE := Edgecore EAP102 ++ DEVICE_DTS := qcom-ipq807x-eap102 ++ DEVICE_DTS_DIR := $(DTS_DIR)/qcom ++ DEVICE_DTS_CONFIG=config@ac02 ++ SUPPORTED_DEVICES := edgecore,eap102 ++ DEVICE_PACKAGES := ath11k-wifi-edgecore-eap102 kmod-usb3 kmod-usb2 ++endef ++TARGET_DEVICES += edgecore_eap102 ++ ++define Device/tplink_ex227 ++ DEVICE_TITLE := TP-Link EX227 ++ DEVICE_DTS := qcom-ipq807x-ex227 ++ DEVICE_DTS_DIR := $(DTS_DIR)/qcom ++ DEVICE_DTS_CONFIG=config@hk07 ++ SUPPORTED_DEVICES := tplinl,ex227 ++ DEVICE_PACKAGES := ath11k-wifi-tplink-ex227 ++ IMAGES := sysupgrade.tar nor-factory.bin ++ IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata ++ IMAGE/nor-factory.bin := qsdk-ipq-factory-nor ++endef ++TARGET_DEVICES += tplink_ex227 ++ ++define Device/tplink_ex447 ++ DEVICE_TITLE := TP-Link EX447 ++ DEVICE_DTS := qcom-ipq807x-ex447 ++ DEVICE_DTS_DIR := $(DTS_DIR)/qcom ++ DEVICE_DTS_CONFIG=config@hk09 ++ SUPPORTED_DEVICES := tplinl,ex447 ++ DEVICE_PACKAGES := ath11k-wifi-tplink-ex447 ++ IMAGES := sysupgrade.tar nor-factory.bin ++ IMAGE/sysupgrade.tar/squashfs := append-rootfs | pad-rootfs | sysupgrade-tar rootfs=$$$$@ | append-metadata ++ IMAGE/nor-factory.bin := qsdk-ipq-factory-nor ++endef ++TARGET_DEVICES += tplink_ex447 diff --git a/target/linux/ipq807x/ipq60xx/config-default b/target/linux/ipq807x/ipq60xx/config-default new file mode 100644 index 0000000000..e1816687c0 @@ -5713,7 +6961,7 @@ index 0000000000..f47e73acfc + diff --git a/target/linux/ipq807x/ipq60xx/target.mk b/target/linux/ipq807x/ipq60xx/target.mk new file mode 100644 -index 0000000000..0d6a9fa4b5 +index 0000000000..cf2bf7b9cd --- /dev/null +++ b/target/linux/ipq807x/ipq60xx/target.mk @@ -0,0 +1,8 @@ @@ -5970,7 +7218,7 @@ index 0000000000..f47e73acfc + diff --git a/target/linux/ipq807x/ipq807x/target.mk b/target/linux/ipq807x/ipq807x/target.mk new file mode 100644 -index 0000000000..e9c6ba028b +index 0000000000..7c24b66e60 --- /dev/null +++ b/target/linux/ipq807x/ipq807x/target.mk @@ -0,0 +1,7 @@ @@ -8748,28 +9996,30 @@ index 0000000000..c6d12fe963 ++ diff --git a/target/linux/ipq807x/patches/104-wf194c.patch b/target/linux/ipq807x/patches/104-wf194c.patch new file mode 100644 -index 0000000000..7e7f172688 +index 0000000000..40a4eaaa5f --- /dev/null +++ b/target/linux/ipq807x/patches/104-wf194c.patch -@@ -0,0 +1,816 @@ -+Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/Makefile +@@ -0,0 +1,818 @@ ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/Makefile +=================================================================== -+--- linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1.orig/arch/arm64/boot/dts/qcom/Makefile -++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/Makefile -+@@ -55,7 +55,8 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ++--- linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce.orig/arch/arm64/boot/dts/qcom/Makefile +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/Makefile ++@@ -64,7 +64,10 @@ dtb-$(CONFIG_ARCH_QCOM) += \ + qcom-ipq807x-oak03.dtb \ + qcom-ipq807x-sercomm-wallaby.dtb \ + qcom-ipq807x-db.hk01.dtb \ +- qcom-ipq807x-db.hk02.dtb ++ qcom-ipq807x-db.hk02.dtb \ -++ qcom-ipq807x-wf194c.dtb +++ qcom-ipq807x-wf194c.dtb \ +++ qcom-ipq807x-ex227.dts \ +++ qcom-ipq807x-ex447.dts + endif + + always := $(dtb-y) -+Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts +=================================================================== +--- /dev/null -++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-wf194c.dts +@@ -0,0 +1,751 @@ ++/dts-v1/; ++/* @@ -9522,10 +10772,10 @@ index 0000000000..7e7f172688 ++&qpic_lcd_panel { ++ status = "ok"; ++}; -+Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/drivers/net/phy/aquantia.c ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/drivers/net/phy/aquantia.c +=================================================================== -+--- linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1.orig/drivers/net/phy/aquantia.c -++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/drivers/net/phy/aquantia.c ++--- linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce.orig/drivers/net/phy/aquantia.c +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/drivers/net/phy/aquantia.c +@@ -32,6 +32,7 @@ + #define PHY_ID_AQR112 0x03a1b660 + #define PHY_ID_AQR113C 0x31c31C10 @@ -9568,6 +10818,2568 @@ index 0000000000..7e7f172688 + { } + }; + +diff --git a/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch b/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch +new file mode 100644 +index 0000000000..f91601ec59 +--- /dev/null ++++ b/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch +@@ -0,0 +1,11 @@ ++--- a/scripts/dtc/dtc-lexer.lex.c_shipped +++++ b/scripts/dtc/dtc-lexer.lex.c_shipped ++@@ -637,7 +637,7 @@ char *yytext; ++ #include "srcpos.h" ++ #include "dtc-parser.tab.h" ++ ++-YYLTYPE yylloc; +++extern YYLTYPE yylloc; ++ extern bool treesource_error; ++ ++ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +diff --git a/target/linux/ipq807x/patches/106-eap101.patch b/target/linux/ipq807x/patches/106-eap101.patch +new file mode 100644 +index 0000000000..6b0eb2f831 +--- /dev/null ++++ b/target/linux/ipq807x/patches/106-eap101.patch +@@ -0,0 +1,975 @@ ++Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-cp01-edgecore.dtsi ++=================================================================== ++--- /dev/null +++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-cp01-edgecore.dtsi ++@@ -0,0 +1,542 @@ +++/* +++ * Copyright (c) 2019, The Linux Foundation. All rights reserved. +++ * +++ * Permission to use, copy, modify, and/or distribute this software for any +++ * purpose with or without fee is hereby granted, provided that the above +++ * copyright notice and this permission notice appear in all copies. +++ * +++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +++ */ +++ +++#include "qcom-ipq6018.dtsi" +++#include +++#include +++ +++/ { +++ #address-cells = <0x2>; +++ #size-cells = <0x2>; +++ compatible = "qcom,ipq6018-cp01", "qcom,ipq6018"; +++ interrupt-parent = <&intc>; +++ qcom,msm-id = <0x192 0x0>, <0x193 0x0>; +++ +++ aliases { +++ serial0 = &blsp1_uart3; +++ serial1 = &blsp1_uart2; +++ sdhc2 = &sdhc_2; +++ /* +++ * Aliases as required by u-boot +++ * to patch MAC addresses +++ */ +++ ethernet0 = "/soc/dp1"; +++ ethernet1 = "/soc/dp2"; +++ ethernet2 = "/soc/dp3"; +++ +++ led-boot = &led_power; +++ led-failsafe = &led_power; +++ led-running = &led_power; +++ led-upgrade = &led_power; +++ }; +++ +++ chosen { +++ bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; +++#ifdef __IPQ_MEM_PROFILE_256_MB__ +++ bootargs-append = " swiotlb=1"; +++#else +++ bootargs-append = " swiotlb=1 coherent_pool=2M"; +++#endif +++ }; +++ +++}; +++ +++&tlmm { +++ pinctrl-0 = <&sd_ldo_pins>; +++ pinctrl-names = "default"; +++ +++ uart_pins: uart_pins { +++ mux { +++ pins = "gpio44", "gpio45"; +++ function = "blsp2_uart"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ sd_ldo_pins: sd_ldo_pins { +++ mux { +++ pins = "gpio66"; +++ function = "gpio"; +++ drive-strength = <2>; +++ bias-disable; +++ output-low; +++ }; +++ }; +++ +++ spi_0_pins: spi_0_pins { +++ mux { +++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; +++ function = "blsp0_spi"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ spi_1_pins: spi_1_pins { +++ mux { +++ pins = "gpio69", "gpio71", "gpio72"; +++ function = "blsp1_spi"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ spi_cs { +++ pins = "gpio70"; +++ function = "blsp1_spi"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ quartz_interrupt { +++ pins = "gpio78"; +++ function = "gpio"; +++ input; +++ bias-disable; +++ }; +++ quartz_reset { +++ pins = "gpio79"; +++ function = "gpio"; +++ output-low; +++ bias-disable; +++ }; +++ +++ }; +++ +++ qpic_pins: qpic_pins { +++ data_0 { +++ pins = "gpio15"; +++ function = "qpic_pad0"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_1 { +++ pins = "gpio12"; +++ function = "qpic_pad1"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_2 { +++ pins = "gpio13"; +++ function = "qpic_pad2"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_3 { +++ pins = "gpio14"; +++ function = "qpic_pad3"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_4 { +++ pins = "gpio5"; +++ function = "qpic_pad4"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_5 { +++ pins = "gpio6"; +++ function = "qpic_pad5"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_6 { +++ pins = "gpio7"; +++ function = "qpic_pad6"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_7 { +++ pins = "gpio8"; +++ function = "qpic_pad7"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ qpic_pad { +++ pins = "gpio1", "gpio3", "gpio4", +++ "gpio10", "gpio11", "gpio17"; +++ function = "qpic_pad"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ sd_pins: sd_pins { +++ mux { +++ pins = "gpio62"; +++ function = "sd_card"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ extcon_usb_pins: extcon_usb_pins { +++ mux { +++ pins = "gpio26"; +++ function = "gpio"; +++ drive-strength = <2>; +++ bias-pull-down; +++ }; +++ }; +++ +++ button_pins: button_pins { +++ wps_button { +++ pins = "gpio9"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ reset_button { +++ pins = "gpio19"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ mdio_pins: mdio_pinmux { +++ mux_0 { +++ pins = "gpio64"; +++ function = "mdc"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_1 { +++ pins = "gpio65"; +++ function = "mdio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_2 { +++ pins = "gpio75"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ mux_3 { +++ pins = "gpio77"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ }; +++ +++ leds_pins: leds_pins { +++ led_pwr { +++ pins = "gpio74"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_5g { +++ pins = "gpio35"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_2g { +++ pins = "gpio37"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_wan { +++ pins = "gpio62"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_lan1 { +++ pins = "gpio61"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_lan2 { +++ pins = "gpio63"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_bt { +++ pins = "gpio73"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ hsuart_pins: hsuart_pins { +++ mux { +++ pins = "gpio71", "gpio72", "gpio69", "gpio70"; +++ function = "blsp1_uart"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ btcoex_pins: btcoex_pins { +++ mux_0 { +++ pins = "gpio51"; +++ function = "pta1_1"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_1 { +++ pins = "gpio53"; +++ function = "pta1_0"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_2 { +++ pins = "gpio52"; +++ function = "pta1_2"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ }; +++}; +++ +++&soc { +++ extcon_usb: extcon_usb { +++ pinctrl-0 = <&extcon_usb_pins>; +++ pinctrl-names = "default"; +++ id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; +++ status = "ok"; +++ }; +++ +++ mdio: mdio@90000 { +++ pinctrl-0 = <&mdio_pins>; +++ pinctrl-names = "default"; +++ phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>; +++ status = "ok"; +++ phy0: ethernet-phy@0 { +++ reg = <0x1c>; +++ }; +++ phy1: ethernet-phy@1 { +++ reg = <3>; +++ }; +++ phy2: ethernet-phy@2 { +++ reg = <4>; +++ }; +++ }; +++ +++ dp1 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <5>; +++ reg = <0x3a001000 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <28>; +++ phy-mode = "sgmii"; +++ }; +++ +++ dp2 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <4>; +++ reg = <0x3a001200 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <3>; +++ phy-mode = "sgmii"; +++ }; +++ +++ dp3 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <3>; +++ reg = <0x3a001400 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <4>; +++ phy-mode = "sgmii"; +++ }; +++ +++ +++ nss-macsec0 { +++ compatible = "qcom,nss-macsec"; +++ phy_addr = <0x1c>; +++ phy_access_mode = <0>; +++ mdiobus = <&mdio>; +++ }; +++ +++ ess-switch@3a000000 { +++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ +++ switch_lan_bmp = <0x1e>; /* lan port bitmap */ +++ switch_wan_bmp = <0x20>; /* wan port bitmap */ +++ switch_inner_bmp = <0xc0>; /*inner port bitmap*/ +++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ +++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ +++ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ +++ qcom,port_phyinfo { +++ port@2 { +++ port_id = <3>; +++ phy_address = <4>; +++ }; +++ port@1 { +++ port_id = <4>; +++ phy_address = <3>; +++ }; +++ port@0 { +++ port_id = <5>; +++ phy_address = <0x1c>; +++ port_mac_sel = "QGMAC_PORT"; +++ }; +++ }; +++ }; +++ +++ gpio_keys { +++ compatible = "gpio-keys"; +++ pinctrl-0 = <&button_pins>; +++ pinctrl-names = "default"; +++ +++ /*wps { +++ label = "wps"; +++ linux,code = ; +++ gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; +++ linux,input-type = <1>; +++ debounce-interval = <60>; +++ };*/ +++ reset { +++ label = "reset"; +++ linux,code = ; +++ gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; +++ linux,input-type = <1>; +++ debounce-interval = <60>; +++ }; +++ }; +++ +++ leds { +++ compatible = "gpio-leds"; +++ pinctrl-0 = <&leds_pins>; +++ pinctrl-names = "default"; +++ +++ led_power: led@74 { +++ label = "green:power"; +++ gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "led_pwr"; +++ default-state = "on"; +++ }; +++ led@35 { +++ label = "green:wifi5"; +++ gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "led_5g"; +++ default-state = "off"; +++ }; +++ led@37 { +++ label = "green:wifi2"; +++ gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "led_2g"; +++ default-state = "off"; +++ }; +++ }; +++}; +++ +++&blsp1_uart3 { +++ pinctrl-0 = <&uart_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&spi_0 { +++ pinctrl-0 = <&spi_0_pins>; +++ pinctrl-names = "default"; +++ cs-select = <0>; +++ status = "ok"; +++ +++ m25p80@0 { +++ #address-cells = <1>; +++ #size-cells = <1>; +++ reg = <0>; +++ compatible = "n25q128a11"; +++ linux,modalias = "m25p80", "n25q128a11"; +++ spi-max-frequency = <50000000>; +++ use-default-sizes; +++ }; +++}; +++ +++&blsp1_uart2 { +++ pinctrl-0 = <&hsuart_pins &btcoex_pins>; +++ pinctrl-names = "default"; +++ dmas = <&blsp_dma 2>, +++ <&blsp_dma 3>; +++ dma-names = "tx", "rx"; +++ status = "ok"; +++}; +++ +++&spi_1 { /* BLSP1 QUP1 */ +++ pinctrl-0 = <&spi_1_pins>; +++ pinctrl-names = "default"; +++ cs-select = <0>; +++ quartz-reset-gpio = <&tlmm 79 1>; +++ status = "disabled"; +++ spidev1: spi@1 { +++ compatible = "qca,spidev"; +++ reg = <0>; +++ spi-max-frequency = <24000000>; +++ }; +++}; +++ +++&qpic_bam { +++ status = "ok"; +++}; +++ +++&nand { +++ pinctrl-0 = <&qpic_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&ssphy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_1 { +++ status = "ok"; +++}; +++ +++&usb2 { +++ status = "ok"; +++}; +++ +++&usb3 { +++ status = "ok"; +++}; +++ +++&nss_crypto { +++ status = "ok"; +++}; +++ +++&pcie_phy { +++ status = "ok"; +++}; +++ +++&pcie0 { +++ status = "ok"; +++}; +++ +++&qpic_lcd { +++ status = "ok"; +++}; +++ +++&qpic_lcd_panel { +++ status = "ok"; +++}; ++Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts ++=================================================================== ++--- /dev/null +++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts ++@@ -0,0 +1,423 @@ +++/dts-v1/; +++/* +++ * Copyright (c) 2019, The Linux Foundation. All rights reserved. +++ * +++ * Permission to use, copy, modify, and/or distribute this software for any +++ * purpose with or without fee is hereby granted, provided that the above +++ * copyright notice and this permission notice appear in all copies. +++ * +++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +++ */ +++ +++#include "qcom-ipq6018.dtsi" +++#include "qcom-ipq6018-rpm-regulator.dtsi" +++#include "qcom-ipq6018-cpr-regulator.dtsi" +++#include "qcom-ipq6018-cp-cpu.dtsi" +++#include +++#include +++ +++/ { +++ #address-cells = <0x2>; +++ #size-cells = <0x2>; +++ model = "EdgeCore EAP101"; +++ compatible = "edgecore,eap101", "qcom,ipq6018-cp01", "qcom,ipq6018"; +++ interrupt-parent = <&intc>; +++ +++ aliases { +++ serial0 = &blsp1_uart3; +++ serial1 = &blsp1_uart2; +++ +++ /* +++ * Aliases as required by u-boot +++ * to patch MAC addresses +++ */ +++ ethernet0 = "/soc/dp1"; +++ ethernet1 = "/soc/dp2"; +++ +++ led-boot = &led_power; +++ led-failsafe = &led_power; +++ led-running = &led_power; +++ led-upgrade = &led_power; +++ }; +++ +++ chosen { +++ bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; +++ bootargs-append = " console=ttyMSM0,115200,n8 swiotlb=1 coherent_pool=2M"; +++ }; +++ +++ /* +++ * +=========+==============+========================+ +++ * | | | | +++ * | Region | Start Offset | Size | +++ * | | | | +++ * +--------+--------------+-------------------------+ +++ * | | | | +++ * | | | | +++ * | | | | +++ * | | | | +++ * | Linux | 0x41000000 | 139MB | +++ * | | | | +++ * | | | | +++ * | | | | +++ * +--------+--------------+-------------------------+ +++ * | TZ App | 0x49B00000 | 6MB | +++ * +--------+--------------+-------------------------+ +++ * +++ * From the available 145 MB for Linux in the first 256 MB, +++ * we are reserving 6 MB for TZAPP. +++ * +++ * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi +++ * for memory layout. +++ */ +++ +++/* TZAPP is enabled only in default memory profile */ +++#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +++ reserved-memory { +++ tzapp:tzapp@49B00000 { /* TZAPPS */ +++ no-map; +++ reg = <0x0 0x49B00000 0x0 0x00600000>; +++ }; +++ }; +++#endif +++}; +++ +++&tlmm { +++ uart_pins: uart_pins { +++ mux { +++ pins = "gpio44", "gpio45"; +++ function = "blsp2_uart"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ spi_0_pins: spi_0_pins { +++ mux { +++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; +++ function = "blsp0_spi"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ qpic_pins: qpic_pins { +++ data_0 { +++ pins = "gpio15"; +++ function = "qpic_pad0"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_1 { +++ pins = "gpio12"; +++ function = "qpic_pad1"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_2 { +++ pins = "gpio13"; +++ function = "qpic_pad2"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_3 { +++ pins = "gpio14"; +++ function = "qpic_pad3"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_4 { +++ pins = "gpio5"; +++ function = "qpic_pad4"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_5 { +++ pins = "gpio6"; +++ function = "qpic_pad5"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_6 { +++ pins = "gpio7"; +++ function = "qpic_pad6"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ data_7 { +++ pins = "gpio8"; +++ function = "qpic_pad7"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ qpic_pad { +++ pins = "gpio1", "gpio3", "gpio4", +++ "gpio10", "gpio11", "gpio17"; +++ function = "qpic_pad"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ extcon_usb_pins: extcon_usb_pins { +++ mux { +++ pins = "gpio26"; +++ function = "gpio"; +++ drive-strength = <2>; +++ bias-pull-down; +++ }; +++ }; +++ +++ button_pins: button_pins { +++ wps_button { +++ pins = "gpio19"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ mdio_pins: mdio_pinmux { +++ mux_0 { +++ pins = "gpio64"; +++ function = "mdc"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_1 { +++ pins = "gpio65"; +++ function = "mdio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_2 { +++ pins = "gpio75"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ }; +++ +++ leds_pins: leds_pins { +++ led_pwr { +++ pins = "gpio74"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_5g { +++ pins = "gpio35"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ led_2g { +++ pins = "gpio37"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ uart2_pins: uart2_pins { +++ mux { +++ pins = "gpio57", "gpio58"; +++ function = "blsp4_uart"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++}; +++ +++&soc { +++ extcon_usb: extcon_usb { +++ pinctrl-0 = <&extcon_usb_pins>; +++ pinctrl-names = "default"; +++ id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; +++ status = "ok"; +++ }; +++ +++ mdio: mdio@90000 { +++ pinctrl-0 = <&mdio_pins>; +++ pinctrl-names = "default"; +++ phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>; +++ status = "ok"; +++ phy0: ethernet-phy@0 { +++ reg = <0x1c>; +++ }; +++ phy1: ethernet-phy@1 { +++ reg = <3>; +++ }; +++ phy2: ethernet-phy@2 { +++ reg = <4>; +++ }; +++ }; +++ +++ dp1 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <5>; +++ reg = <0x3a001000 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <28>; +++ phy-mode = "sgmii"; +++ }; +++ +++ dp2 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <4>; +++ reg = <0x3a001200 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <3>; +++ phy-mode = "sgmii"; +++ }; +++ +++ dp3 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <3>; +++ reg = <0x3a001400 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <4>; +++ phy-mode = "sgmii"; +++ }; +++ +++ ess-switch@3a000000 { +++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ +++ switch_lan_bmp = <0x1e>; /* lan port bitmap */ +++ switch_wan_bmp = <0x20>; /* wan port bitmap */ +++ switch_inner_bmp = <0xc0>; /*inner port bitmap*/ +++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ +++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ +++ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ +++ qcom,port_phyinfo { +++ port@2 { +++ port_id = <3>; +++ phy_address = <4>; +++ }; +++ port@1 { +++ port_id = <4>; +++ phy_address = <3>; +++ }; +++ port@0 { +++ port_id = <5>; +++ phy_address = <0x1c>; +++ port_mac_sel = "QGMAC_PORT"; +++ }; +++ }; +++ }; +++ +++ gpio_keys { +++ compatible = "gpio-keys"; +++ pinctrl-0 = <&button_pins>; +++ pinctrl-names = "default"; +++ +++ wps { +++ label = "reset"; +++ linux,code = ; +++ gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; +++ linux,input-type = <1>; +++ debounce-interval = <60>; +++ }; +++ }; +++ +++ leds { +++ compatible = "gpio-leds"; +++ pinctrl-0 = <&leds_pins>; +++ pinctrl-names = "default"; +++ +++ led@25 { +++ label = "wifi5g"; +++ gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "wf188:green:5g"; +++ default-state = "off"; +++ }; +++ led@24 { +++ label = "wifi2g"; +++ gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "wf188:green:2g"; +++ default-state = "off"; +++ }; +++ led_power: led@16 { +++ label = "led_pwr"; +++ gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>; +++ linux,default-trigger = "green:power"; +++ default-state = "off"; +++ }; +++ }; +++}; +++ +++&blsp1_uart3 { +++ pinctrl-0 = <&uart_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&spi_0 { +++ pinctrl-0 = <&spi_0_pins>; +++ pinctrl-names = "default"; +++ cs-select = <0>; +++ status = "ok"; +++ +++ m25p80@0 { +++ #address-cells = <1>; +++ #size-cells = <1>; +++ reg = <0>; +++ compatible = "n25q128a11"; +++ linux,modalias = "m25p80", "n25q128a11"; +++ spi-max-frequency = <50000000>; +++ use-default-sizes; +++ }; +++}; +++ +++&blsp1_uart2 { +++ pinctrl-0 = <&uart2_pins>; +++ pinctrl-names = "default"; +++ dmas = <&blsp_dma 2>, +++ <&blsp_dma 3>; +++ dma-names = "tx", "rx"; +++ status = "ok"; +++}; +++&qpic_bam { +++ status = "ok"; +++}; +++ +++&nand { +++ pinctrl-0 = <&qpic_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&ssphy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_1 { +++ status = "ok"; +++}; +++ +++&usb2 { +++ status = "ok"; +++}; +++ +++&usb3 { +++ status = "ok"; +++}; +++ +++&nss_crypto { +++ status = "ok"; +++}; +diff --git a/target/linux/ipq807x/patches/107-ed2-compile.patch b/target/linux/ipq807x/patches/107-ed2-compile.patch +new file mode 100644 +index 0000000000..8122f9ee7d +--- /dev/null ++++ b/target/linux/ipq807x/patches/107-ed2-compile.patch +@@ -0,0 +1,12 @@ ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/include/linux/qcom_scm.h ++=================================================================== ++--- linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce.orig/include/linux/qcom_scm.h +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/include/linux/qcom_scm.h ++@@ -14,6 +14,7 @@ ++ #define __QCOM_SCM_H ++ ++ #include +++#include ++ ++ #define QCOM_KERNEL_AUTH_CMD 0x15 ++ #define QCOM_SCM_PAS_AUTH_DEBUG_RESET_CMD 0x14 +diff --git a/target/linux/ipq807x/patches/108-tplink.patch b/target/linux/ipq807x/patches/108-tplink.patch +new file mode 100644 +index 0000000000..da3e3ef536 +--- /dev/null ++++ b/target/linux/ipq807x/patches/108-tplink.patch +@@ -0,0 +1,1510 @@ ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-ex227.dts ++=================================================================== ++--- /dev/null +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-ex227.dts ++@@ -0,0 +1,750 @@ +++/dts-v1/; +++/* +++ * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. +++ * +++ * Permission to use, copy, modify, and/or distribute this software for any +++ * purpose with or without fee is hereby granted, provided that the above +++ * copyright notice and this permission notice appear in all copies. +++ * +++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +++ */ +++#include "qcom-ipq807x-soc.dtsi" +++#include "qcom-ipq807x-hk-cpu.dtsi" +++ +++/ { +++ #address-cells = <0x2>; +++ #size-cells = <0x2>; +++ model = "TP-Link EX227"; +++ compatible = "tplink,ex227", "qcom,ipq807x"; +++ qcom,msm-id = <0x143 0x0>; +++ interrupt-parent = <&intc>; +++ qcom,board-id = <0x8 0x0>; +++ qcom,pmic-id = <0x0 0x0 0x0 0x0>; +++ +++ aliases { +++ /* +++ * Aliases as required by u-boot +++ * to patch MAC addresses +++ */ +++ ethernet0 = "/soc/dp1"; +++ }; +++ +++ chosen { +++ bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \ +++ init=/init"; +++ bootargs-append = " swiotlb=1"; +++ }; +++}; +++ +++&tlmm { +++ pinctrl-0 = <&btcoex_pins>; +++ pinctrl-names = "default"; +++ +++ btcoex_pins: btcoex_pins { +++ mux_0 { +++ pins = "gpio64"; +++ function = "pta1_1"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_1 { +++ pins = "gpio65"; +++ function = "pta1_2"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_2 { +++ pins = "gpio66"; +++ function = "pta1_0"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ }; +++ +++ mdio_pins: mdio_pinmux { +++ mux_0 { +++ pins = "gpio68"; +++ function = "mdc"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_1 { +++ pins = "gpio69"; +++ function = "mdio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_2 { +++ pins = "gpio25"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ mux_3 { +++ pins = "gpio37"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ }; +++ +++ uart_pins: uart_pins { +++ mux { +++ pins = "gpio23", "gpio24"; +++ function = "blsp4_uart1"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ spi_0_pins: spi_0_pins { +++ mux { +++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; +++ function = "blsp0_spi"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ spi_3_pins: spi_3_pins { +++ mux { +++ pins = "gpio52", "gpio53"; +++ function = "blsp3_spi"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ spi_cs { +++ pins = "gpio22"; +++ function = "blsp3_spi2"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ quartz_interrupt { +++ pins = "gpio47"; +++ function = "gpio"; +++ input; +++ bias-disable; +++ }; +++ quartz_reset { +++ pins = "gpio21"; +++ function = "gpio"; +++ output-low; +++ bias-disable; +++ }; +++ }; +++ +++ qpic_pins: qpic_pins { +++ data_0 { +++ pins = "gpio15"; +++ function = "qpic_pad0"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_1 { +++ pins = "gpio12"; +++ function = "qpic_pad1"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_2 { +++ pins = "gpio13"; +++ function = "qpic_pad2"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_3 { +++ pins = "gpio14"; +++ function = "qpic_pad3"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_4 { +++ pins = "gpio5"; +++ function = "qpic_pad4"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_5 { +++ pins = "gpio6"; +++ function = "qpic_pad5"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_6 { +++ pins = "gpio7"; +++ function = "qpic_pad6"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_7 { +++ pins = "gpio8"; +++ function = "qpic_pad7"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ qpic_pad { +++ pins = "gpio1", "gpio3", "gpio4", +++ "gpio10", "gpio11", "gpio17"; +++ function = "qpic_pad"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ hsuart_pins: hsuart_pins { +++ mux { +++ pins = "gpio46", "gpio47", "gpio48", "gpio49"; +++ function = "blsp2_uart"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ /* POWER_LED, TP-Link */ +++ led_pins: led_pins { +++ led_power { +++ pins = "gpio42"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ /* BUTTON, TP-Link */ +++ button_pins: button_pins { +++ reset_button { +++ pins = "gpio50"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ usb_mux_sel_pins: usb_mux_pins { +++ mux { +++ pins = "gpio27"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ pcie0_pins: pcie_pins { +++ pcie0_rst { +++ pins = "gpio58"; +++ function = "pcie0_rst"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ pcie0_wake { +++ pins = "gpio59"; +++ function = "pcie0_wake"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++}; +++ +++&soc { +++ mdio: mdio@90000 { +++ pinctrl-0 = <&mdio_pins>; +++ pinctrl-names = "default"; +++ phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>; +++ compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio"; +++ phy0: ethernet-phy@0 { +++ reg = <0>; +++ }; +++ phy1: ethernet-phy@1 { +++ reg = <1>; +++ }; +++ phy2: ethernet-phy@2 { +++ reg = <2>; +++ }; +++ phy3: ethernet-phy@3 { +++ reg = <3>; +++ }; +++ phy4: ethernet-phy@4 { +++ reg = <28>; +++ }; +++ phy5: ethernet-phy@5 { +++ reg = <4>; +++ }; +++ }; +++ +++ ess-switch@3a000000 { +++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ +++ switch_lan_bmp = <0x3e>; /* lan port bitmap */ +++ switch_wan_bmp = <0x40>; /* wan port bitmap */ +++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ +++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ +++ switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ +++ bm_tick_mode = <0>; /* bm tick mode */ +++ tm_tick_mode = <0>; /* tm tick mode */ +++ qcom,port_phyinfo { +++ port@0 { +++ port_id = <1>; +++ phy_address = <0>; +++ }; +++ port@1 { +++ port_id = <2>; +++ phy_address = <1>; +++ }; +++ port@2 { +++ port_id = <3>; +++ phy_address = <2>; +++ }; +++ port@3 { +++ port_id = <4>; +++ phy_address = <3>; +++ }; +++ port@4 { +++ port_id = <5>; +++ phy_address = <28>; +++ port_mac_sel = "QGMAC_PORT"; +++ }; +++ port@5 { +++ port_id = <6>; +++ phy_address = <4>; +++ }; +++ }; +++ port_scheduler_resource { +++ port@0 { +++ port_id = <0>; +++ ucast_queue = <0 143>; +++ mcast_queue = <256 271>; +++ l0sp = <0 35>; +++ l0cdrr = <0 47>; +++ l0edrr = <0 47>; +++ l1cdrr = <0 7>; +++ l1edrr = <0 7>; +++ }; +++ port@1 { +++ port_id = <1>; +++ ucast_queue = <144 159>; +++ mcast_queue = <272 275>; +++ l0sp = <36 39>; +++ l0cdrr = <48 63>; +++ l0edrr = <48 63>; +++ l1cdrr = <8 11>; +++ l1edrr = <8 11>; +++ }; +++ port@2 { +++ port_id = <2>; +++ ucast_queue = <160 175>; +++ mcast_queue = <276 279>; +++ l0sp = <40 43>; +++ l0cdrr = <64 79>; +++ l0edrr = <64 79>; +++ l1cdrr = <12 15>; +++ l1edrr = <12 15>; +++ }; +++ port@3 { +++ port_id = <3>; +++ ucast_queue = <176 191>; +++ mcast_queue = <280 283>; +++ l0sp = <44 47>; +++ l0cdrr = <80 95>; +++ l0edrr = <80 95>; +++ l1cdrr = <16 19>; +++ l1edrr = <16 19>; +++ }; +++ port@4 { +++ port_id = <4>; +++ ucast_queue = <192 207>; +++ mcast_queue = <284 287>; +++ l0sp = <48 51>; +++ l0cdrr = <96 111>; +++ l0edrr = <96 111>; +++ l1cdrr = <20 23>; +++ l1edrr = <20 23>; +++ }; +++ port@5 { +++ port_id = <5>; +++ ucast_queue = <208 223>; +++ mcast_queue = <288 291>; +++ l0sp = <52 55>; +++ l0cdrr = <112 127>; +++ l0edrr = <112 127>; +++ l1cdrr = <24 27>; +++ l1edrr = <24 27>; +++ }; +++ port@6 { +++ port_id = <6>; +++ ucast_queue = <224 239>; +++ mcast_queue = <292 295>; +++ l0sp = <56 59>; +++ l0cdrr = <128 143>; +++ l0edrr = <128 143>; +++ l1cdrr = <28 31>; +++ l1edrr = <28 31>; +++ }; +++ port@7 { +++ port_id = <7>; +++ ucast_queue = <240 255>; +++ mcast_queue = <296 299>; +++ l0sp = <60 63>; +++ l0cdrr = <144 159>; +++ l0edrr = <144 159>; +++ l1cdrr = <32 35>; +++ l1edrr = <32 35>; +++ }; +++ }; +++ port_scheduler_config { +++ port@0 { +++ port_id = <0>; +++ l1scheduler { +++ group@0 { +++ sp = <0 1>; /*L0 SPs*/ +++ /*cpri cdrr epri edrr*/ +++ cfg = <0 0 0 0>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ /*unicast queues*/ +++ ucast_queue = <0 4 8>; +++ /*multicast queues*/ +++ mcast_queue = <256 260>; +++ /*sp cpri cdrr epri edrr*/ +++ cfg = <0 0 0 0 0>; +++ }; +++ group@1 { +++ ucast_queue = <1 5 9>; +++ mcast_queue = <257 261>; +++ cfg = <0 1 1 1 1>; +++ }; +++ group@2 { +++ ucast_queue = <2 6 10>; +++ mcast_queue = <258 262>; +++ cfg = <0 2 2 2 2>; +++ }; +++ group@3 { +++ ucast_queue = <3 7 11>; +++ mcast_queue = <259 263>; +++ cfg = <0 3 3 3 3>; +++ }; +++ }; +++ }; +++ port@1 { +++ port_id = <1>; +++ l1scheduler { +++ group@0 { +++ sp = <36>; +++ cfg = <0 8 0 8>; +++ }; +++ group@1 { +++ sp = <37>; +++ cfg = <1 9 1 9>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <144>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <272>; +++ mcast_loop_pri = <4>; +++ cfg = <36 0 48 0 48>; +++ }; +++ }; +++ }; +++ port@2 { +++ port_id = <2>; +++ l1scheduler { +++ group@0 { +++ sp = <40>; +++ cfg = <0 12 0 12>; +++ }; +++ group@1 { +++ sp = <41>; +++ cfg = <1 13 1 13>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <160>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <276>; +++ mcast_loop_pri = <4>; +++ cfg = <40 0 64 0 64>; +++ }; +++ }; +++ }; +++ port@3 { +++ port_id = <3>; +++ l1scheduler { +++ group@0 { +++ sp = <44>; +++ cfg = <0 16 0 16>; +++ }; +++ group@1 { +++ sp = <45>; +++ cfg = <1 17 1 17>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <176>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <280>; +++ mcast_loop_pri = <4>; +++ cfg = <44 0 80 0 80>; +++ }; +++ }; +++ }; +++ port@4 { +++ port_id = <4>; +++ l1scheduler { +++ group@0 { +++ sp = <48>; +++ cfg = <0 20 0 20>; +++ }; +++ group@1 { +++ sp = <49>; +++ cfg = <1 21 1 21>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <192>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <284>; +++ mcast_loop_pri = <4>; +++ cfg = <48 0 96 0 96>; +++ }; +++ }; +++ }; +++ port@5 { +++ port_id = <5>; +++ l1scheduler { +++ group@0 { +++ sp = <52>; +++ cfg = <0 24 0 24>; +++ }; +++ group@1 { +++ sp = <53>; +++ cfg = <1 25 1 25>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <208>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <288>; +++ mcast_loop_pri = <4>; +++ cfg = <52 0 112 0 112>; +++ }; +++ }; +++ }; +++ port@6 { +++ port_id = <6>; +++ l1scheduler { +++ group@0 { +++ sp = <56>; +++ cfg = <0 28 0 28>; +++ }; +++ group@1 { +++ sp = <57>; +++ cfg = <1 29 1 29>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <224>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <292>; +++ mcast_loop_pri = <4>; +++ cfg = <56 0 128 0 128>; +++ }; +++ }; +++ }; +++ port@7 { +++ port_id = <7>; +++ l1scheduler { +++ group@0 { +++ sp = <60>; +++ cfg = <0 32 0 32>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <240>; +++ mcast_queue = <296>; +++ cfg = <60 0 144 0 144>; +++ }; +++ }; +++ }; +++ }; +++ }; +++ +++ dp1 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <6>; +++ reg = <0x3a001000 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <4>; +++ phy-mode = "sgmii"; +++ }; +++ +++ /* POWER LED, TP-Link */ +++ leds { +++ compatible = "gpio-leds"; +++ pinctrl-0 = <&led_pins>; +++ pinctrl-names = "default"; +++ +++ led_power { +++ label = "led_power"; +++ gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>; +++ default-state = "on"; +++ }; +++ }; +++ +++ /* BUTTON, TP-Link */ +++ gpio_keys { +++ compatible = "gpio-keys"; +++ pinctrl-0 = <&button_pins>; +++ pinctrl-names = "default"; +++ +++ button@1 { +++ label = "reset"; +++ linux,code = ; +++ gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; +++ linux,input-type = <1>; +++ }; +++ }; +++ +++ nss-macsec0 { +++ compatible = "qcom,nss-macsec"; +++ phy_addr = <0x18>; +++ phy_access_mode = <0>; +++ mdiobus = <&mdio>; +++ }; +++ nss-macsec1 { +++ compatible = "qcom,nss-macsec"; +++ phy_addr = <0x1c>; +++ phy_access_mode = <0>; +++ mdiobus = <&mdio>; +++ }; +++}; +++ +++&serial_blsp4 { +++ pinctrl-0 = <&uart_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&spi_0 { /* BLSP1 QUP1 */ +++ pinctrl-0 = <&spi_0_pins>; +++ pinctrl-names = "default"; +++ cs-select = <0>; +++ status = "ok"; +++ +++ m25p80@0 { +++ #address-cells = <1>; +++ #size-cells = <1>; +++ reg = <0>; +++ compatible = "n25q128a11"; +++ linux,modalias = "m25p80", "n25q128a11"; +++ spi-max-frequency = <50000000>; +++ use-default-sizes; +++ }; +++}; +++ +++&spi_4 { /* BLSP1 QUP3 */ +++ pinctrl-0 = <&spi_3_pins>; +++ pinctrl-names = "default"; +++ cs-select = <2>; +++ quartz-reset-gpio = <&tlmm 21 1>; +++ status = "disabled"; +++ spidev3: spi@3 { +++ compatible = "qca,spidev"; +++ reg = <0>; +++ spi-max-frequency = <24000000>; +++ }; +++}; +++ +++&serial_blsp2 { +++ status = "disabled"; +++}; +++ +++&msm_imem { +++ status = "disabled"; +++}; +++ +++&ssphy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_0 { +++ status = "ok"; +++}; +++ +++&ssphy_1 { +++ status = "ok"; +++}; +++ +++&qusb_phy_1 { +++ status = "ok"; +++}; +++ +++&usb3_0 { +++ status = "ok"; +++}; +++ +++&usb3_1 { +++ status = "ok"; +++}; +++ +++&cryptobam { +++ status = "ok"; +++}; +++ +++&crypto { +++ status = "ok"; +++}; +++ +++&i2c_0 { +++ status = "disabled"; +++}; +++ +++&i2c_1 { +++ status = "disabled"; +++}; +++ +++&qpic_bam { +++ status = "ok"; +++}; +++ +++&nand { +++ pinctrl-0 = <&qpic_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&qpic_lcd { +++ status = "disabled"; +++}; +++ +++&qpic_lcd_panel { +++ status = "disabled"; +++}; +++ +++&ledc { +++ status = "disabled"; +++}; +++ +++&pcie0 { +++ status = "ok"; +++}; +++ +++&pcie1 { +++ status = "disabled"; +++}; +++ ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-ex447.dts ++=================================================================== ++--- /dev/null +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/arch/arm64/boot/dts/qcom/qcom-ipq807x-ex447.dts ++@@ -0,0 +1,750 @@ +++/dts-v1/; +++/* +++ * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. +++ * +++ * Permission to use, copy, modify, and/or distribute this software for any +++ * purpose with or without fee is hereby granted, provided that the above +++ * copyright notice and this permission notice appear in all copies. +++ * +++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +++ */ +++#include "qcom-ipq807x-soc.dtsi" +++#include "qcom-ipq807x-hk-cpu.dtsi" +++ +++/ { +++ #address-cells = <0x2>; +++ #size-cells = <0x2>; +++ model = "TP-Link EX447"; +++ compatible = "tplink,ex447", "qcom,ipq807x"; +++ qcom,msm-id = <0x143 0x0>; +++ interrupt-parent = <&intc>; +++ qcom,board-id = <0x8 0x0>; +++ qcom,pmic-id = <0x0 0x0 0x0 0x0>; +++ +++ aliases { +++ /* +++ * Aliases as required by u-boot +++ * to patch MAC addresses +++ */ +++ ethernet0 = "/soc/dp1"; +++ }; +++ +++ chosen { +++ bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \ +++ init=/init"; +++ bootargs-append = " swiotlb=1"; +++ }; +++}; +++ +++&tlmm { +++ pinctrl-0 = <&btcoex_pins>; +++ pinctrl-names = "default"; +++ +++ btcoex_pins: btcoex_pins { +++ mux_0 { +++ pins = "gpio64"; +++ function = "pta1_1"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_1 { +++ pins = "gpio65"; +++ function = "pta1_2"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ mux_2 { +++ pins = "gpio66"; +++ function = "pta1_0"; +++ drive-strength = <6>; +++ bias-pull-down; +++ }; +++ }; +++ +++ mdio_pins: mdio_pinmux { +++ mux_0 { +++ pins = "gpio68"; +++ function = "mdc"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_1 { +++ pins = "gpio69"; +++ function = "mdio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ mux_2 { +++ pins = "gpio25"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ mux_3 { +++ pins = "gpio37"; +++ function = "gpio"; +++ bias-pull-up; +++ }; +++ }; +++ +++ uart_pins: uart_pins { +++ mux { +++ pins = "gpio23", "gpio24"; +++ function = "blsp4_uart1"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ spi_0_pins: spi_0_pins { +++ mux { +++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; +++ function = "blsp0_spi"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ spi_3_pins: spi_3_pins { +++ mux { +++ pins = "gpio52", "gpio53"; +++ function = "blsp3_spi"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ spi_cs { +++ pins = "gpio22"; +++ function = "blsp3_spi2"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ quartz_interrupt { +++ pins = "gpio47"; +++ function = "gpio"; +++ input; +++ bias-disable; +++ }; +++ quartz_reset { +++ pins = "gpio21"; +++ function = "gpio"; +++ output-low; +++ bias-disable; +++ }; +++ }; +++ +++ qpic_pins: qpic_pins { +++ data_0 { +++ pins = "gpio15"; +++ function = "qpic_pad0"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_1 { +++ pins = "gpio12"; +++ function = "qpic_pad1"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_2 { +++ pins = "gpio13"; +++ function = "qpic_pad2"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_3 { +++ pins = "gpio14"; +++ function = "qpic_pad3"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_4 { +++ pins = "gpio5"; +++ function = "qpic_pad4"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_5 { +++ pins = "gpio6"; +++ function = "qpic_pad5"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_6 { +++ pins = "gpio7"; +++ function = "qpic_pad6"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ data_7 { +++ pins = "gpio8"; +++ function = "qpic_pad7"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ qpic_pad { +++ pins = "gpio1", "gpio3", "gpio4", +++ "gpio10", "gpio11", "gpio17"; +++ function = "qpic_pad"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ hsuart_pins: hsuart_pins { +++ mux { +++ pins = "gpio46", "gpio47", "gpio48", "gpio49"; +++ function = "blsp2_uart"; +++ drive-strength = <8>; +++ bias-disable; +++ }; +++ }; +++ +++ /* POWER_LED, TP-Link */ +++ led_pins: led_pins { +++ led_power { +++ pins = "gpio42"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ /* BUTTON, TP-Link */ +++ button_pins: button_pins { +++ reset_button { +++ pins = "gpio50"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-up; +++ }; +++ }; +++ +++ usb_mux_sel_pins: usb_mux_pins { +++ mux { +++ pins = "gpio27"; +++ function = "gpio"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++ pcie0_pins: pcie_pins { +++ pcie0_rst { +++ pins = "gpio58"; +++ function = "pcie0_rst"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ pcie0_wake { +++ pins = "gpio59"; +++ function = "pcie0_wake"; +++ drive-strength = <8>; +++ bias-pull-down; +++ }; +++ }; +++ +++}; +++ +++&soc { +++ mdio: mdio@90000 { +++ pinctrl-0 = <&mdio_pins>; +++ pinctrl-names = "default"; +++ phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1>; +++ compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio"; +++ phy0: ethernet-phy@0 { +++ reg = <0>; +++ }; +++ phy1: ethernet-phy@1 { +++ reg = <1>; +++ }; +++ phy2: ethernet-phy@2 { +++ reg = <2>; +++ }; +++ phy3: ethernet-phy@3 { +++ reg = <3>; +++ }; +++ phy4: ethernet-phy@4 { +++ reg = <28>; +++ }; +++ phy5: ethernet-phy@5 { +++ reg = <4>; +++ }; +++ }; +++ +++ ess-switch@3a000000 { +++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ +++ switch_lan_bmp = <0x3e>; /* lan port bitmap */ +++ switch_wan_bmp = <0x40>; /* wan port bitmap */ +++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ +++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ +++ switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ +++ bm_tick_mode = <0>; /* bm tick mode */ +++ tm_tick_mode = <0>; /* tm tick mode */ +++ qcom,port_phyinfo { +++ port@0 { +++ port_id = <1>; +++ phy_address = <0>; +++ }; +++ port@1 { +++ port_id = <2>; +++ phy_address = <1>; +++ }; +++ port@2 { +++ port_id = <3>; +++ phy_address = <2>; +++ }; +++ port@3 { +++ port_id = <4>; +++ phy_address = <3>; +++ }; +++ port@4 { +++ port_id = <5>; +++ phy_address = <28>; +++ port_mac_sel = "QGMAC_PORT"; +++ }; +++ port@5 { +++ port_id = <6>; +++ phy_address = <4>; +++ }; +++ }; +++ port_scheduler_resource { +++ port@0 { +++ port_id = <0>; +++ ucast_queue = <0 143>; +++ mcast_queue = <256 271>; +++ l0sp = <0 35>; +++ l0cdrr = <0 47>; +++ l0edrr = <0 47>; +++ l1cdrr = <0 7>; +++ l1edrr = <0 7>; +++ }; +++ port@1 { +++ port_id = <1>; +++ ucast_queue = <144 159>; +++ mcast_queue = <272 275>; +++ l0sp = <36 39>; +++ l0cdrr = <48 63>; +++ l0edrr = <48 63>; +++ l1cdrr = <8 11>; +++ l1edrr = <8 11>; +++ }; +++ port@2 { +++ port_id = <2>; +++ ucast_queue = <160 175>; +++ mcast_queue = <276 279>; +++ l0sp = <40 43>; +++ l0cdrr = <64 79>; +++ l0edrr = <64 79>; +++ l1cdrr = <12 15>; +++ l1edrr = <12 15>; +++ }; +++ port@3 { +++ port_id = <3>; +++ ucast_queue = <176 191>; +++ mcast_queue = <280 283>; +++ l0sp = <44 47>; +++ l0cdrr = <80 95>; +++ l0edrr = <80 95>; +++ l1cdrr = <16 19>; +++ l1edrr = <16 19>; +++ }; +++ port@4 { +++ port_id = <4>; +++ ucast_queue = <192 207>; +++ mcast_queue = <284 287>; +++ l0sp = <48 51>; +++ l0cdrr = <96 111>; +++ l0edrr = <96 111>; +++ l1cdrr = <20 23>; +++ l1edrr = <20 23>; +++ }; +++ port@5 { +++ port_id = <5>; +++ ucast_queue = <208 223>; +++ mcast_queue = <288 291>; +++ l0sp = <52 55>; +++ l0cdrr = <112 127>; +++ l0edrr = <112 127>; +++ l1cdrr = <24 27>; +++ l1edrr = <24 27>; +++ }; +++ port@6 { +++ port_id = <6>; +++ ucast_queue = <224 239>; +++ mcast_queue = <292 295>; +++ l0sp = <56 59>; +++ l0cdrr = <128 143>; +++ l0edrr = <128 143>; +++ l1cdrr = <28 31>; +++ l1edrr = <28 31>; +++ }; +++ port@7 { +++ port_id = <7>; +++ ucast_queue = <240 255>; +++ mcast_queue = <296 299>; +++ l0sp = <60 63>; +++ l0cdrr = <144 159>; +++ l0edrr = <144 159>; +++ l1cdrr = <32 35>; +++ l1edrr = <32 35>; +++ }; +++ }; +++ port_scheduler_config { +++ port@0 { +++ port_id = <0>; +++ l1scheduler { +++ group@0 { +++ sp = <0 1>; /*L0 SPs*/ +++ /*cpri cdrr epri edrr*/ +++ cfg = <0 0 0 0>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ /*unicast queues*/ +++ ucast_queue = <0 4 8>; +++ /*multicast queues*/ +++ mcast_queue = <256 260>; +++ /*sp cpri cdrr epri edrr*/ +++ cfg = <0 0 0 0 0>; +++ }; +++ group@1 { +++ ucast_queue = <1 5 9>; +++ mcast_queue = <257 261>; +++ cfg = <0 1 1 1 1>; +++ }; +++ group@2 { +++ ucast_queue = <2 6 10>; +++ mcast_queue = <258 262>; +++ cfg = <0 2 2 2 2>; +++ }; +++ group@3 { +++ ucast_queue = <3 7 11>; +++ mcast_queue = <259 263>; +++ cfg = <0 3 3 3 3>; +++ }; +++ }; +++ }; +++ port@1 { +++ port_id = <1>; +++ l1scheduler { +++ group@0 { +++ sp = <36>; +++ cfg = <0 8 0 8>; +++ }; +++ group@1 { +++ sp = <37>; +++ cfg = <1 9 1 9>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <144>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <272>; +++ mcast_loop_pri = <4>; +++ cfg = <36 0 48 0 48>; +++ }; +++ }; +++ }; +++ port@2 { +++ port_id = <2>; +++ l1scheduler { +++ group@0 { +++ sp = <40>; +++ cfg = <0 12 0 12>; +++ }; +++ group@1 { +++ sp = <41>; +++ cfg = <1 13 1 13>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <160>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <276>; +++ mcast_loop_pri = <4>; +++ cfg = <40 0 64 0 64>; +++ }; +++ }; +++ }; +++ port@3 { +++ port_id = <3>; +++ l1scheduler { +++ group@0 { +++ sp = <44>; +++ cfg = <0 16 0 16>; +++ }; +++ group@1 { +++ sp = <45>; +++ cfg = <1 17 1 17>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <176>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <280>; +++ mcast_loop_pri = <4>; +++ cfg = <44 0 80 0 80>; +++ }; +++ }; +++ }; +++ port@4 { +++ port_id = <4>; +++ l1scheduler { +++ group@0 { +++ sp = <48>; +++ cfg = <0 20 0 20>; +++ }; +++ group@1 { +++ sp = <49>; +++ cfg = <1 21 1 21>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <192>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <284>; +++ mcast_loop_pri = <4>; +++ cfg = <48 0 96 0 96>; +++ }; +++ }; +++ }; +++ port@5 { +++ port_id = <5>; +++ l1scheduler { +++ group@0 { +++ sp = <52>; +++ cfg = <0 24 0 24>; +++ }; +++ group@1 { +++ sp = <53>; +++ cfg = <1 25 1 25>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <208>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <288>; +++ mcast_loop_pri = <4>; +++ cfg = <52 0 112 0 112>; +++ }; +++ }; +++ }; +++ port@6 { +++ port_id = <6>; +++ l1scheduler { +++ group@0 { +++ sp = <56>; +++ cfg = <0 28 0 28>; +++ }; +++ group@1 { +++ sp = <57>; +++ cfg = <1 29 1 29>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <224>; +++ ucast_loop_pri = <16>; +++ mcast_queue = <292>; +++ mcast_loop_pri = <4>; +++ cfg = <56 0 128 0 128>; +++ }; +++ }; +++ }; +++ port@7 { +++ port_id = <7>; +++ l1scheduler { +++ group@0 { +++ sp = <60>; +++ cfg = <0 32 0 32>; +++ }; +++ }; +++ l0scheduler { +++ group@0 { +++ ucast_queue = <240>; +++ mcast_queue = <296>; +++ cfg = <60 0 144 0 144>; +++ }; +++ }; +++ }; +++ }; +++ }; +++ +++ dp1 { +++ device_type = "network"; +++ compatible = "qcom,nss-dp"; +++ qcom,id = <5>; +++ reg = <0x3a001000 0x200>; +++ qcom,mactype = <0>; +++ local-mac-address = [000000000000]; +++ qcom,link-poll = <1>; +++ qcom,phy-mdio-addr = <28>; +++ phy-mode = "sgmii"; +++ }; +++ +++ /* POWER LED, TP-Link */ +++ leds { +++ compatible = "gpio-leds"; +++ pinctrl-0 = <&led_pins>; +++ pinctrl-names = "default"; +++ +++ led_power { +++ label = "led_power"; +++ gpio = <&tlmm 42 GPIO_ACTIVE_HIGH>; +++ default-state = "on"; +++ }; +++ }; +++ +++ /* BUTTON, TP-Link */ +++ gpio_keys { +++ compatible = "gpio-keys"; +++ pinctrl-0 = <&button_pins>; +++ pinctrl-names = "default"; +++ +++ button@1 { +++ label = "reset"; +++ linux,code = ; +++ gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; +++ linux,input-type = <1>; +++ }; +++ }; +++ +++ nss-macsec0 { +++ compatible = "qcom,nss-macsec"; +++ phy_addr = <0x18>; +++ phy_access_mode = <0>; +++ mdiobus = <&mdio>; +++ }; +++ nss-macsec1 { +++ compatible = "qcom,nss-macsec"; +++ phy_addr = <0x1c>; +++ phy_access_mode = <0>; +++ mdiobus = <&mdio>; +++ }; +++}; +++ +++&serial_blsp4 { +++ pinctrl-0 = <&uart_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&spi_0 { /* BLSP1 QUP1 */ +++ pinctrl-0 = <&spi_0_pins>; +++ pinctrl-names = "default"; +++ cs-select = <0>; +++ status = "ok"; +++ +++ m25p80@0 { +++ #address-cells = <1>; +++ #size-cells = <1>; +++ reg = <0>; +++ compatible = "n25q128a11"; +++ linux,modalias = "m25p80", "n25q128a11"; +++ spi-max-frequency = <50000000>; +++ use-default-sizes; +++ }; +++}; +++ +++&spi_4 { /* BLSP1 QUP3 */ +++ pinctrl-0 = <&spi_3_pins>; +++ pinctrl-names = "default"; +++ cs-select = <2>; +++ quartz-reset-gpio = <&tlmm 21 1>; +++ status = "disabled"; +++ spidev3: spi@3 { +++ compatible = "qca,spidev"; +++ reg = <0>; +++ spi-max-frequency = <24000000>; +++ }; +++}; +++ +++&serial_blsp2 { +++ status = "disabled"; +++}; +++ +++&msm_imem { +++ status = "disabled"; +++}; +++ +++&ssphy_0 { +++ status = "ok"; +++}; +++ +++&qusb_phy_0 { +++ status = "ok"; +++}; +++ +++&ssphy_1 { +++ status = "ok"; +++}; +++ +++&qusb_phy_1 { +++ status = "ok"; +++}; +++ +++&usb3_0 { +++ status = "ok"; +++}; +++ +++&usb3_1 { +++ status = "ok"; +++}; +++ +++&cryptobam { +++ status = "ok"; +++}; +++ +++&crypto { +++ status = "ok"; +++}; +++ +++&i2c_0 { +++ status = "disabled"; +++}; +++ +++&i2c_1 { +++ status = "disabled"; +++}; +++ +++&qpic_bam { +++ status = "ok"; +++}; +++ +++&nand { +++ pinctrl-0 = <&qpic_pins>; +++ pinctrl-names = "default"; +++ status = "ok"; +++}; +++ +++&qpic_lcd { +++ status = "disabled"; +++}; +++ +++&qpic_lcd_panel { +++ status = "disabled"; +++}; +++ +++&ledc { +++ status = "disabled"; +++}; +++ +++&pcie0 { +++ status = "ok"; +++}; +++ +++&pcie1 { +++ status = "disabled"; +++}; +++ +diff --git a/target/linux/ipq807x/patches/109-logspam.patch b/target/linux/ipq807x/patches/109-logspam.patch +new file mode 100644 +index 0000000000..79ee61dc77 +--- /dev/null ++++ b/target/linux/ipq807x/patches/109-logspam.patch +@@ -0,0 +1,24 @@ ++Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/drivers/clk/qcom/clk-branch.c ++=================================================================== ++--- linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce.orig/drivers/clk/qcom/clk-branch.c +++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/drivers/clk/qcom/clk-branch.c ++@@ -75,7 +75,7 @@ static int clk_branch_wait(const struct ++ bool (check_halt)(const struct clk_branch *, bool)) ++ { ++ bool voted = br->halt_check & BRANCH_VOTED; ++- const char *name = clk_hw_get_name(&br->clkr.hw); +++ //const char *name = clk_hw_get_name(&br->clkr.hw); ++ ++ /* Skip checking halt bit if the clock is in hardware gated mode */ ++ if (clk_branch_in_hwcg_mode(br)) ++@@ -93,8 +93,8 @@ static int clk_branch_wait(const struct ++ return 0; ++ udelay(1); ++ } ++- WARN(1, "%s status stuck at 'o%s'", name, ++- enabling ? "ff" : "n"); +++/* WARN(1, "%s status stuck at 'o%s'", name, +++ enabling ? "ff" : "n");*/ ++ return -EBUSY; ++ } ++ return 0; -- 2.25.1 diff --git a/patches/0028-scripts-ubinize-image.sh-allow-setting-the-rootfs-na.patch b/patches/0028-scripts-ubinize-image.sh-allow-setting-the-rootfs-na.patch index 9c31e1ccb..2a5460203 100644 --- a/patches/0028-scripts-ubinize-image.sh-allow-setting-the-rootfs-na.patch +++ b/patches/0028-scripts-ubinize-image.sh-allow-setting-the-rootfs-na.patch @@ -1,7 +1,7 @@ -From 4f0a934de0ba78e5c35afb0f34a1dbbc65b45098 Mon Sep 17 00:00:00 2001 +From 568303aa6778dc3e665067b465b05822013ef558 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 9 Aug 2020 20:58:52 +0200 -Subject: [PATCH 28/30] scripts/ubinize-image.sh: allow setting the rootfs name +Subject: [PATCH 28/40] scripts/ubinize-image.sh: allow setting the rootfs name This patch allows us to use a different rootfs name. Some QCA boards will require the in ubi rfs to be called ubi_rootfs. diff --git a/patches/0029-busybox-enable-the-watchdog-tool.patch b/patches/0029-busybox-enable-the-watchdog-tool.patch index 3e41b429c..ab8965924 100644 --- a/patches/0029-busybox-enable-the-watchdog-tool.patch +++ b/patches/0029-busybox-enable-the-watchdog-tool.patch @@ -1,7 +1,7 @@ -From 70bfec02a965a55c9f508d1bb1e228dedc2a91ae Mon Sep 17 00:00:00 2001 +From d762c074153650d4bbbc2baf757173c6d7750f5f Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 28 Jul 2020 09:21:04 +0200 -Subject: [PATCH 29/30] busybox: enable the watchdog tool +Subject: [PATCH 29/40] busybox: enable the watchdog tool procd can currently only handle the main wdt. Enable the busybox applet until procd can handle multiple devices. diff --git a/patches/0030-linux-modules-fix-some-v4.4-dependencies.patch b/patches/0030-linux-modules-fix-some-v4.4-dependencies.patch index dd873af8c..4a422aed3 100644 --- a/patches/0030-linux-modules-fix-some-v4.4-dependencies.patch +++ b/patches/0030-linux-modules-fix-some-v4.4-dependencies.patch @@ -1,7 +1,7 @@ -From 8fa6b7b34d29d1e846e7da08e99d38dc1c4ba080 Mon Sep 17 00:00:00 2001 +From 529a2f90904082bcf1d38ab5c341d28b59ce1fcf Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 30 Aug 2020 09:20:03 +0200 -Subject: [PATCH 30/30] linux/modules: fix some v4.4 dependencies +Subject: [PATCH 30/40] linux/modules: fix some v4.4 dependencies NFT has different deps on v4.4. diff --git a/patches/0031-base-files-add-support-for-v4.4-style-netdev-led-tri.patch b/patches/0031-base-files-add-support-for-v4.4-style-netdev-led-tri.patch index 1ee13aa3f..02a126a58 100644 --- a/patches/0031-base-files-add-support-for-v4.4-style-netdev-led-tri.patch +++ b/patches/0031-base-files-add-support-for-v4.4-style-netdev-led-tri.patch @@ -1,7 +1,7 @@ -From 2bf15aa4902f3239580e6edec8780014bbdd3df4 Mon Sep 17 00:00:00 2001 +From 65f12b2e00fe04b337024d4f814664b72dc44bf6 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 23 Sep 2020 17:34:44 +0200 -Subject: [PATCH 31/31] base-files: add support for v4.4 style netdev led +Subject: [PATCH 31/40] base-files: add support for v4.4 style netdev led triggers Current owrt scripting cant handle the old v4.4 style sysfs API of led diff --git a/patches/0032-ipq40xx-Edgecore-ECW5211-nand-w25m02gv-support.patch b/patches/0032-ipq40xx-new-NAND-flash-W25M02GV-support-for-Edgecore.patch similarity index 89% rename from patches/0032-ipq40xx-Edgecore-ECW5211-nand-w25m02gv-support.patch rename to patches/0032-ipq40xx-new-NAND-flash-W25M02GV-support-for-Edgecore.patch index 80f20a9d4..925fb090a 100644 --- a/patches/0032-ipq40xx-Edgecore-ECW5211-nand-w25m02gv-support.patch +++ b/patches/0032-ipq40xx-new-NAND-flash-W25M02GV-support-for-Edgecore.patch @@ -1,7 +1,8 @@ -From 0b19f0eb6d01f0b9fb28c7bb9fdef58b4b4efe1e Mon Sep 17 00:00:00 2001 +From 63a9aae95e673ca2d7a461b135759d65c0d4587d Mon Sep 17 00:00:00 2001 From: Samul Hwang Date: Wed, 30 Sep 2020 09:42:44 +0200 -Subject: [PATCH] ipq40xx: new NAND flash W25M02GV support for Edgecore ECW5211 +Subject: [PATCH 32/40] ipq40xx: new NAND flash W25M02GV support for Edgecore + ECW5211 This patch adds W25M02GV NAND flash support for Edgecore ECW5211 diff --git a/patches/0032-ipq807x-Fix-dtc-host-build-with-GCC-10.patch b/patches/0032-ipq807x-Fix-dtc-host-build-with-GCC-10.patch deleted file mode 100644 index 3001815bf..000000000 --- a/patches/0032-ipq807x-Fix-dtc-host-build-with-GCC-10.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b0192e711ace4680b757bb75fdf079028174aee7 Mon Sep 17 00:00:00 2001 -From: Sven Eckelmann -Date: Tue, 25 Aug 2020 14:27:20 +0200 -Subject: [PATCH] ipq807x: Fix dtc host build with GCC 10 - -The dtc binary has to be compiled using the host GCC and not the target -cross compiler GCC. And GCC 10 is using by default -fno-common which -inhibits the merging of tentative definitions by the linker. - -Signed-off-by: Sven Eckelmann ---- - .../ipq807x/patches/105-fix-dtc-gcc10-build.patch | 11 +++++++++++ - 1 file changed, 11 insertions(+) - create mode 100644 target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch - -diff --git a/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch b/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch -new file mode 100644 -index 0000000000..f91601ec59 ---- /dev/null -+++ b/target/linux/ipq807x/patches/105-fix-dtc-gcc10-build.patch -@@ -0,0 +1,11 @@ -+--- a/scripts/dtc/dtc-lexer.lex.c_shipped -++++ b/scripts/dtc/dtc-lexer.lex.c_shipped -+@@ -637,7 +637,7 @@ char *yytext; -+ #include "srcpos.h" -+ #include "dtc-parser.tab.h" -+ -+-YYLTYPE yylloc; -++extern YYLTYPE yylloc; -+ extern bool treesource_error; -+ -+ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ --- -2.28.0 - diff --git a/patches/0033-dnsmasq-turn-the-base-uci-section-into-a-named-one.patch b/patches/0033-dnsmasq-turn-the-base-uci-section-into-a-named-one.patch index 245e11b6f..2e921709e 100644 --- a/patches/0033-dnsmasq-turn-the-base-uci-section-into-a-named-one.patch +++ b/patches/0033-dnsmasq-turn-the-base-uci-section-into-a-named-one.patch @@ -1,7 +1,7 @@ -From 2173013a62679aa3487f89de262d12cda6e85909 Mon Sep 17 00:00:00 2001 +From 9d9e291530855b1e1adcc6d11357befae71d0aa6 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 6 Oct 2020 16:39:16 +0200 -Subject: [PATCH] dnsmasq: turn the base uci section into a named one +Subject: [PATCH 33/40] dnsmasq: turn the base uci section into a named one Handling this section from opensync is complicated if it is unnamed. diff --git a/patches/0034-ramips-make-target-work-with-trunk-mac80211.patch b/patches/0034-ramips-make-target-work-with-trunk-mac80211.patch new file mode 100644 index 000000000..d5f7c7e93 --- /dev/null +++ b/patches/0034-ramips-make-target-work-with-trunk-mac80211.patch @@ -0,0 +1,27 @@ +From 9a2987d2af548d1d118d9f3ae0140c2cf4a03c6a Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Sat, 10 Oct 2020 14:35:24 +0200 +Subject: [PATCH 34/40] ramips: make target work with trunk mac80211 + +The 19.07 tree is missing crypto support, which trunk mac80211 depends on. + +Signed-off-by: John Crispin +--- + target/linux/ramips/mt76x8/config-4.14 | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/target/linux/ramips/mt76x8/config-4.14 b/target/linux/ramips/mt76x8/config-4.14 +index 00de576855..265105ef90 100644 +--- a/target/linux/ramips/mt76x8/config-4.14 ++++ b/target/linux/ramips/mt76x8/config-4.14 +@@ -47,6 +47,7 @@ CONFIG_CPU_R4K_FPU=y + CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y + CONFIG_CPU_SUPPORTS_HIGHMEM=y + CONFIG_CPU_SUPPORTS_MSA=y ++CONFIG_CRYPTO_HASH=y + CONFIG_CRYPTO_RNG2=y + CONFIG_CRYPTO_WORKQUEUE=y + CONFIG_CSRC_R4K=y +-- +2.25.1 + diff --git a/patches/0036-ipq40xx-add-ec420-ubi-images.patch b/patches/0035-ipq40xx-add-ec420-ubi-images.patch similarity index 90% rename from patches/0036-ipq40xx-add-ec420-ubi-images.patch rename to patches/0035-ipq40xx-add-ec420-ubi-images.patch index df0112d2a..09bfb2088 100644 --- a/patches/0036-ipq40xx-add-ec420-ubi-images.patch +++ b/patches/0035-ipq40xx-add-ec420-ubi-images.patch @@ -1,7 +1,7 @@ -From 5ad54edddba89594274cbe8e397b8726c435dee1 Mon Sep 17 00:00:00 2001 +From b6474f7c2813a821cac9a7ffd0f9ce6bac007846 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 22 Oct 2020 10:09:47 +0200 -Subject: [PATCH] ipq40xx: add ec420 ubi images +Subject: [PATCH 35/40] ipq40xx: add ec420 ubi images Add code to generate ubi images for tplink ec420 diff --git a/patches/0035-ipq807x-add-edgecore-EAP-102-support.patch b/patches/0035-ipq807x-add-edgecore-EAP-102-support.patch deleted file mode 100644 index d61ffef0f..000000000 --- a/patches/0035-ipq807x-add-edgecore-EAP-102-support.patch +++ /dev/null @@ -1,1027 +0,0 @@ -From 34f431b13c858b63d9361f1291734fb53900e73b Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Fri, 16 Oct 2020 04:27:42 +0200 -Subject: [PATCH] ipq807x: add edgecore EAP-102 support - -Signed-off-by: John Crispin ---- - .../ipq807x/base-files/etc/board.d/01_leds | 4 + - .../ipq807x/base-files/etc/board.d/02_network | 4 + - .../etc/hotplug.d/firmware/10-ath11k-caldata | 1 + - .../base-files/lib/upgrade/platform.sh | 2 + - .../boot/dts/qcom/qcom-ipq807x-eap102.dts | 922 ++++++++++++++++++ - target/linux/ipq807x/image/ipq807x.mk | 10 + - 6 files changed, 943 insertions(+) - create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts - -diff --git a/target/linux/ipq807x/base-files/etc/board.d/01_leds b/target/linux/ipq807x/base-files/etc/board.d/01_leds -index 5196da447b..3ed1227a3d 100755 ---- a/target/linux/ipq807x/base-files/etc/board.d/01_leds -+++ b/target/linux/ipq807x/base-files/etc/board.d/01_leds -@@ -15,6 +15,10 @@ cig,wf194c) - ucidef_set_led_netdev "wan" "WAN" "wf194c:green:wan" "br-wan" "tx rx link" - ucidef_set_led_netdev "lan" "LAN" "wf194c:green:lan" "br-lan" "tx rx link" - ;; -+edgecore,eap102) -+ ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy0tx" -+ ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy1tx" -+ ;; - esac - - board_config_flush -diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network -index aadf9d4ff2..0ae29613d9 100755 ---- a/target/linux/ipq807x/base-files/etc/board.d/02_network -+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network -@@ -26,6 +26,10 @@ qcom_setup_interfaces() - ucidef_set_interface_lan "eth0" - ucidef_set_interface_wan "eth1" - ;; -+ edgecore,eap102) -+ ucidef_set_interface_lan "eth1" -+ ucidef_set_interface_wan "eth0" -+ ;; - esac - } - -diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -index 30292c2505..faade0972f 100755 ---- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -@@ -29,6 +29,7 @@ case "$FIRMWARE" in - "IPQ8074/caldata.bin") - case "$board" in - cig,wf194c|\ -+ edgecore,eap102 |\ - qcom,ipq807x-hk01|\ - qcom,ipq807x-hk14|\ - sercomm,wallaby) -diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -index 0073b94bbb..43ee219412 100755 ---- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -@@ -23,6 +23,7 @@ platform_check_image() { - cig,wf188|\ - cig,wf188n|\ - cig,wf194c|\ -+ edgecore,eap102|\ - qcom,ipq6018-cp01|\ - qcom,ipq807x-hk01|\ - sercomm,wallaby) -@@ -44,6 +45,7 @@ platform_do_upgrade() { - ;; - cig,wf188n|\ - cig,wf194c|\ -+ edgecore,eap102|\ - qcom,ipq6018-cp01|\ - qcom,ipq807x-hk01|\ - sercomm,wallaby) -diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts -new file mode 100755 -index 0000000000..f81cf2d4af ---- /dev/null -+++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-eap102.dts -@@ -0,0 +1,922 @@ -+/dts-v1/; -+/* -+ * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. -+ * -+ * Permission to use, copy, modify, and/or distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+#include "qcom-ipq807x-soc.dtsi" -+#include "qcom-ipq807x-ac-cpu.dtsi" -+ -+/ { -+ #address-cells = <0x2>; -+ #size-cells = <0x2>; -+ model = "Edgecore EAP102"; -+ compatible = "edgecore,eap102", "qcom,ipq807x-ac02", "qcom,ipq807x"; -+ qcom,msm-id = <0x178 0x0>; -+ interrupt-parent = <&intc>; -+ qcom,board-id = <0x8 0x0>; -+ qcom,pmic-id = <0x0 0x0 0x0 0x0>; -+ -+ aliases { -+ /* -+ * Aliases as required by u-boot -+ * to patch MAC addresses -+ */ -+ ethernet0 = "/soc/dp1"; -+ ethernet1 = "/soc/dp2"; -+ ethernet2 = "/soc/dp3"; -+ ethernet3 = "/soc/dp4"; -+ ethernet4 = "/soc/dp5"; -+ ethernet5 = "/soc/dp6"; -+ -+ led-boot = &led_power; -+ led-failsafe = &led_power; -+ led-running = &led_power; -+ led-upgrade = &led_power; -+ }; -+ -+ chosen { -+ bootargs = "console=ttyMSM0,115200,n8 root=/dev/ram0 rw \ -+ init=/init"; -+ #ifdef __IPQ_MEM_PROFILE_256_MB__ -+ bootargs-append = " swiotlb=1"; -+ #else -+ bootargs-append = " swiotlb=1 coherent_pool=2M"; -+ #endif -+ }; -+}; -+ -+&tlmm { -+ pinctrl-0 = <&btcoex_pins>; -+ pinctrl-names = "default"; -+ -+ btcoex_pins: btcoex_pins { -+ mux_0 { -+ pins = "gpio64"; -+ function = "pta1_1"; -+ drive-strength = <6>; -+ bias-pull-down; -+ }; -+ mux_1 { -+ pins = "gpio65"; -+ function = "pta1_2"; -+ drive-strength = <6>; -+ bias-pull-down; -+ }; -+ }; -+ -+ mdio_pins: mdio_pinmux { -+ mux_0 { -+ pins = "gpio68"; -+ function = "mdc"; -+ drive-strength = <8>; -+ bias-pull-up; -+ }; -+ mux_1 { -+ pins = "gpio69"; -+ function = "mdio"; -+ drive-strength = <8>; -+ bias-pull-up; -+ }; -+ mux_2 { -+ pins = "gpio33"; -+ function = "gpio"; -+ bias-pull-up; -+ }; -+ mux_3 { -+ pins = "gpio44"; -+ function = "gpio"; -+ bias-pull-up; -+ }; -+ }; -+ -+ uart_pins: uart_pins { -+ mux { -+ pins = "gpio23", "gpio24"; -+ function = "blsp4_uart1"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ }; -+ -+ spi_0_pins: spi_0_pins { -+ mux { -+ pins = "gpio38", "gpio39", "gpio40", "gpio41"; -+ function = "blsp0_spi"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ }; -+ -+ qpic_pins: qpic_pins { -+ data_0 { -+ pins = "gpio15"; -+ function = "qpic_pad0"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_1 { -+ pins = "gpio12"; -+ function = "qpic_pad1"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_2 { -+ pins = "gpio13"; -+ function = "qpic_pad2"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_3 { -+ pins = "gpio14"; -+ function = "qpic_pad3"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_4 { -+ pins = "gpio5"; -+ function = "qpic_pad4"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_5 { -+ pins = "gpio6"; -+ function = "qpic_pad5"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_6 { -+ pins = "gpio7"; -+ function = "qpic_pad6"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ data_7 { -+ pins = "gpio8"; -+ function = "qpic_pad7"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ qpic_pad { -+ pins = "gpio1", "gpio3", "gpio4", -+ "gpio10", "gpio11", "gpio17"; -+ function = "qpic_pad"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ }; -+ -+ hsuart_pins: hsuart_pins { -+ mux { -+ pins = "gpio49"; -+ function = "blsp2_uart"; -+ drive-strength = <8>; -+ bias-disable; -+ }; -+ }; -+ -+ button_pins: button_pins { -+ -+ reset_button { -+ pins = "gpio66"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-up; -+ }; -+ }; -+ -+ led_pins: led_pins { -+ led_pwr { -+ pins = "gpio46"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ -+ led_2g { -+ pins = "gpio47"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ -+ led_5g { -+ pins = "gpio48"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ -+ led_bt { -+ pins = "gpio50"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ }; -+ -+ usb_mux_sel_pins: usb_mux_pins { -+ mux { -+ pins = "gpio27"; -+ function = "gpio"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ }; -+ -+ pcie0_pins: pcie_pins { -+ pcie0_rst { -+ pins = "gpio58"; -+ function = "pcie0_rst"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ pcie0_wake { -+ pins = "gpio59"; -+ function = "pcie0_wake"; -+ drive-strength = <8>; -+ bias-pull-down; -+ }; -+ }; -+ -+}; -+ -+&soc { -+ gpio_keys { -+ compatible = "gpio-keys"; -+ pinctrl-0 = <&button_pins>; -+ pinctrl-names = "default"; -+ -+ button@1 { -+ label = "reset_button"; -+ linux,code = ; -+ gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; -+ linux,input-type = <1>; -+ debounce-interval = <60>; -+ }; -+ }; -+ -+ mdio: mdio@90000 { -+ pinctrl-0 = <&mdio_pins>; -+ pinctrl-names = "default"; -+ phy-reset-gpio = <&tlmm 37 0 &tlmm 25 1 &tlmm 44 1>; -+ compatible = "qcom,ipq40xx-mdio", "qcom,qca-mdio"; -+ phy0: ethernet-phy@0 { -+ reg = <0>; -+ }; -+ phy1: ethernet-phy@1 { -+ reg = <1>; -+ }; -+ phy2: ethernet-phy@2 { -+ reg = <2>; -+ }; -+ phy3: ethernet-phy@3 { -+ reg = <3>; -+ }; -+ phy4: ethernet-phy@4 { -+ reg = <24>; -+ }; -+ phy5: ethernet-phy@5 { -+ reg = <28>; -+ }; -+ }; -+ -+ ess-switch@3a000000 { -+ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ -+ switch_lan_bmp = <0x3e>; /* lan port bitmap */ -+ switch_wan_bmp = <0x40>; /* wan port bitmap */ -+ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ -+ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ -+ switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ -+ bm_tick_mode = <0>; /* bm tick mode */ -+ tm_tick_mode = <0>; /* tm tick mode */ -+ qcom,port_phyinfo { -+ port@0 { -+ port_id = <1>; -+ phy_address = <0>; -+ }; -+ port@1 { -+ port_id = <2>; -+ phy_address = <1>; -+ }; -+ port@2 { -+ port_id = <3>; -+ phy_address = <2>; -+ }; -+ port@3 { -+ port_id = <4>; -+ phy_address = <3>; -+ }; -+ port@4 { -+ port_id = <5>; -+ phy_address = <24>; -+ port_mac_sel = "QGMAC_PORT"; -+ }; -+ port@5 { -+ port_id = <6>; -+ phy_address = <28>; -+ port_mac_sel = "QGMAC_PORT"; -+ }; -+ }; -+ port_scheduler_resource { -+ port@0 { -+ port_id = <0>; -+ ucast_queue = <0 143>; -+ mcast_queue = <256 271>; -+ l0sp = <0 35>; -+ l0cdrr = <0 47>; -+ l0edrr = <0 47>; -+ l1cdrr = <0 7>; -+ l1edrr = <0 7>; -+ }; -+ port@1 { -+ port_id = <1>; -+ ucast_queue = <144 159>; -+ mcast_queue = <272 275>; -+ l0sp = <36 39>; -+ l0cdrr = <48 63>; -+ l0edrr = <48 63>; -+ l1cdrr = <8 11>; -+ l1edrr = <8 11>; -+ }; -+ port@2 { -+ port_id = <2>; -+ ucast_queue = <160 175>; -+ mcast_queue = <276 279>; -+ l0sp = <40 43>; -+ l0cdrr = <64 79>; -+ l0edrr = <64 79>; -+ l1cdrr = <12 15>; -+ l1edrr = <12 15>; -+ }; -+ port@3 { -+ port_id = <3>; -+ ucast_queue = <176 191>; -+ mcast_queue = <280 283>; -+ l0sp = <44 47>; -+ l0cdrr = <80 95>; -+ l0edrr = <80 95>; -+ l1cdrr = <16 19>; -+ l1edrr = <16 19>; -+ }; -+ port@4 { -+ port_id = <4>; -+ ucast_queue = <192 207>; -+ mcast_queue = <284 287>; -+ l0sp = <48 51>; -+ l0cdrr = <96 111>; -+ l0edrr = <96 111>; -+ l1cdrr = <20 23>; -+ l1edrr = <20 23>; -+ }; -+ port@5 { -+ port_id = <5>; -+ ucast_queue = <208 223>; -+ mcast_queue = <288 291>; -+ l0sp = <52 55>; -+ l0cdrr = <112 127>; -+ l0edrr = <112 127>; -+ l1cdrr = <24 27>; -+ l1edrr = <24 27>; -+ }; -+ port@6 { -+ port_id = <6>; -+ ucast_queue = <224 239>; -+ mcast_queue = <292 295>; -+ l0sp = <56 59>; -+ l0cdrr = <128 143>; -+ l0edrr = <128 143>; -+ l1cdrr = <28 31>; -+ l1edrr = <28 31>; -+ }; -+ port@7 { -+ port_id = <7>; -+ ucast_queue = <240 255>; -+ mcast_queue = <296 299>; -+ l0sp = <60 63>; -+ l0cdrr = <144 159>; -+ l0edrr = <144 159>; -+ l1cdrr = <32 35>; -+ l1edrr = <32 35>; -+ }; -+ }; -+ port_scheduler_config { -+ port@0 { -+ port_id = <0>; -+ l1scheduler { -+ group@0 { -+ sp = <0 1>; /*L0 SPs*/ -+ /*cpri cdrr epri edrr*/ -+ cfg = <0 0 0 0>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ /*unicast queues*/ -+ ucast_queue = <0 4 8>; -+ /*multicast queues*/ -+ mcast_queue = <256 260>; -+ /*sp cpri cdrr epri edrr*/ -+ cfg = <0 0 0 0 0>; -+ }; -+ group@1 { -+ ucast_queue = <1 5 9>; -+ mcast_queue = <257 261>; -+ cfg = <0 1 1 1 1>; -+ }; -+ group@2 { -+ ucast_queue = <2 6 10>; -+ mcast_queue = <258 262>; -+ cfg = <0 2 2 2 2>; -+ }; -+ group@3 { -+ ucast_queue = <3 7 11>; -+ mcast_queue = <259 263>; -+ cfg = <0 3 3 3 3>; -+ }; -+ }; -+ }; -+ port@1 { -+ port_id = <1>; -+ l1scheduler { -+ group@0 { -+ sp = <36>; -+ cfg = <0 8 0 8>; -+ }; -+ group@1 { -+ sp = <37>; -+ cfg = <1 9 1 9>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <144>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <272>; -+ mcast_loop_pri = <4>; -+ cfg = <36 0 48 0 48>; -+ }; -+ }; -+ }; -+ port@2 { -+ port_id = <2>; -+ l1scheduler { -+ group@0 { -+ sp = <40>; -+ cfg = <0 12 0 12>; -+ }; -+ group@1 { -+ sp = <41>; -+ cfg = <1 13 1 13>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <160>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <276>; -+ mcast_loop_pri = <4>; -+ cfg = <40 0 64 0 64>; -+ }; -+ }; -+ }; -+ port@3 { -+ port_id = <3>; -+ l1scheduler { -+ group@0 { -+ sp = <44>; -+ cfg = <0 16 0 16>; -+ }; -+ group@1 { -+ sp = <45>; -+ cfg = <1 17 1 17>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <176>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <280>; -+ mcast_loop_pri = <4>; -+ cfg = <44 0 80 0 80>; -+ }; -+ }; -+ }; -+ port@4 { -+ port_id = <4>; -+ l1scheduler { -+ group@0 { -+ sp = <48>; -+ cfg = <0 20 0 20>; -+ }; -+ group@1 { -+ sp = <49>; -+ cfg = <1 21 1 21>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <192>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <284>; -+ mcast_loop_pri = <4>; -+ cfg = <48 0 96 0 96>; -+ }; -+ }; -+ }; -+ port@5 { -+ port_id = <5>; -+ l1scheduler { -+ group@0 { -+ sp = <52>; -+ cfg = <0 24 0 24>; -+ }; -+ group@1 { -+ sp = <53>; -+ cfg = <1 25 1 25>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <208>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <288>; -+ mcast_loop_pri = <4>; -+ cfg = <52 0 112 0 112>; -+ }; -+ }; -+ }; -+ port@6 { -+ port_id = <6>; -+ l1scheduler { -+ group@0 { -+ sp = <56>; -+ cfg = <0 28 0 28>; -+ }; -+ group@1 { -+ sp = <57>; -+ cfg = <1 29 1 29>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <224>; -+ ucast_loop_pri = <16>; -+ mcast_queue = <292>; -+ mcast_loop_pri = <4>; -+ cfg = <56 0 128 0 128>; -+ }; -+ }; -+ }; -+ port@7 { -+ port_id = <7>; -+ l1scheduler { -+ group@0 { -+ sp = <60>; -+ cfg = <0 32 0 32>; -+ }; -+ }; -+ l0scheduler { -+ group@0 { -+ ucast_queue = <240>; -+ mcast_queue = <296>; -+ cfg = <60 0 144 0 144>; -+ }; -+ }; -+ }; -+ }; -+ }; -+ -+ dp1 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <1>; -+ reg = <0x3a001000 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <0>; -+ phy-mode = "sgmii"; -+ }; -+ -+ dp2 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <2>; -+ reg = <0x3a001200 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <1>; -+ phy-mode = "sgmii"; -+ }; -+ -+ dp3 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <3>; -+ reg = <0x3a001400 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <2>; -+ phy-mode = "sgmii"; -+ }; -+ -+ dp4 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <4>; -+ reg = <0x3a001600 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <3>; -+ phy-mode = "sgmii"; -+ }; -+ -+ dp5 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <5>; -+ reg = <0x3a001800 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <24>; -+ phy-mode = "sgmii"; -+ }; -+ -+ dp6 { -+ device_type = "network"; -+ compatible = "qcom,nss-dp"; -+ qcom,id = <6>; -+ reg = <0x3a001a00 0x200>; -+ qcom,mactype = <0>; -+ local-mac-address = [000000000000]; -+ qcom,link-poll = <1>; -+ qcom,phy-mdio-addr = <28>; -+ phy-mode = "sgmii"; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-0 = <&led_pins>; -+ pinctrl-names = "default"; -+ -+ led_power: led_pwr { -+ label = "green:power"; -+ gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; -+ default-state = "on"; -+ linux,default-trigger = "led_pwr"; -+ }; -+ -+ led_2g { -+ label = "green:wifi2"; -+ gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ }; -+ -+ led_5g { -+ label = "green:wifi5"; -+ gpio = <&tlmm 48 GPIO_ACTIVE_HIGH>; -+ default-state = "off"; -+ }; -+ -+ led_bt { -+ gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>; -+ label = "green:bt"; -+ default-state = "off"; -+ linux,default-trigger = "led_bt"; -+ }; -+ }; -+ nss-macsec0 { -+ compatible = "qcom,nss-macsec"; -+ phy_addr = <0x18>; -+ phy_access_mode = <0>; -+ mdiobus = <&mdio>; -+ }; -+ nss-macsec1 { -+ compatible = "qcom,nss-macsec"; -+ phy_addr = <0x1c>; -+ phy_access_mode = <0>; -+ mdiobus = <&mdio>; -+ }; -+}; -+ -+&serial_blsp4 { -+ pinctrl-0 = <&uart_pins>; -+ pinctrl-names = "default"; -+ status = "ok"; -+}; -+ -+&spi_0 { /* BLSP1 QUP1 */ -+ pinctrl-0 = <&spi_0_pins>; -+ pinctrl-names = "default"; -+ cs-select = <0>; -+ status = "ok"; -+ -+ m25p80@0 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ reg = <0>; -+ compatible = "n25q128a11"; -+ linux,modalias = "m25p80", "n25q128a11"; -+ spi-max-frequency = <50000000>; -+ use-default-sizes; -+ }; -+}; -+ -+&serial_blsp2 { -+ pinctrl-0 = <&hsuart_pins>; -+ pinctrl-names = "default"; -+ status = "ok"; -+}; -+ -+&nss0 { -+ qcom,low-frequency = <187200000>; -+ qcom,mid-frequency = <748800000>; -+ qcom,max-frequency = <1497600000>; -+}; -+ -+&msm_imem { -+ status = "disabled"; -+}; -+ -+&ssphy_0 { -+ status = "ok"; -+}; -+ -+&qusb_phy_0 { -+ status = "ok"; -+}; -+ -+&ssphy_1 { -+ status = "ok"; -+}; -+ -+&qusb_phy_1 { -+ status = "ok"; -+}; -+ -+&usb3_0 { -+ status = "ok"; -+}; -+ -+&usb3_1 { -+ status = "ok"; -+}; -+ -+&cryptobam { -+ status = "ok"; -+}; -+ -+&crypto { -+ status = "ok"; -+}; -+ -+&i2c_0 { -+ status = "disabled"; -+}; -+ -+&i2c_1 { -+ status = "disabled"; -+}; -+ -+&qpic_bam { -+ status = "ok"; -+}; -+ -+&nand { -+ pinctrl-0 = <&qpic_pins>; -+ pinctrl-names = "default"; -+ status = "ok"; -+}; -+ -+&qpic_lcd { -+ status = "disabled"; -+}; -+ -+&qpic_lcd_panel { -+ status = "disabled"; -+}; -+ -+&ledc { -+ status = "disabled"; -+}; -+ -+&pcie0 { -+ status = "ok"; -+}; -+ -+&pcie1 { -+ status = "disabled"; -+}; -+ -+&glink_rpm { -+ status = "disabled"; -+}; -+ -+&apc_cpr { -+ /* Same CPR configuration as OAK */ -+ compatible = "qcom,cpr4-ipq817x-apss-regulator"; -+ -+ thread@0 { -+ apc_vreg: regulator { -+ regulator-min-microvolt = <1>; -+ regulator-max-microvolt = <2>; -+ qcom,cpr-fuse-corners = <2>; -+ qcom,cpr-corners = <3>; -+ qcom,cpr-speed-bin-corners = <3>; -+ qcom,cpr-corner-fmax-map = <1 3>; -+ -+ qcom,cpr-voltage-ceiling = -+ <840000 904000 944000>; -+ qcom,cpr-voltage-floor = -+ <592000 648000 712000>; -+ qcom,corner-frequencies = -+ <1017600000 1382400000 1382400000>; -+ -+ qcom,cpr-open-loop-voltage-fuse-adjustment-0 = -+ /* Speed bin 0; CPR rev 0..7 */ -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>; -+ -+ qcom,cpr-open-loop-voltage-fuse-adjustment-1 = -+ /* Speed bin 0; CPR rev 0..7 */ -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 20000 26000>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>; -+ -+ qcom,cpr-open-loop-voltage-fuse-adjustment-v2-0 = -+ /* Speed bin 0; CPR rev 0..7 */ -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>; -+ -+ qcom,cpr-open-loop-voltage-fuse-adjustment-v2-1 = -+ /* Speed bin 0; CPR rev 0..7 */ -+ < 0 0>, -+ < 0 7000>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>, -+ < 0 0>; -+ -+ qcom,cpr-floor-to-ceiling-max-range = -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>, -+ < 40000 40000 40000>; -+ }; -+ }; -+}; -+ -+&npu_cpr { -+ status = "disabled"; -+}; -+ -+&nss0 { -+ npu-supply = <&dummy_reg>; -+ mx-supply = <&dummy_reg>; -+}; -+ -+&wifi0 { -+ qcom,board_id = <0x92>; -+}; -+ -+&wifi1 { -+ qcom,board_id = <0x292>; -+}; -diff --git a/target/linux/ipq807x/image/ipq807x.mk b/target/linux/ipq807x/image/ipq807x.mk -index 9a8cbd8581..d0c02cd803 100644 ---- a/target/linux/ipq807x/image/ipq807x.mk -+++ b/target/linux/ipq807x/image/ipq807x.mk -@@ -39,3 +39,13 @@ define Device/cig_wf194 - DEVICE_PACKAGES := ath11k-wifi-cig-wf194c aq-fw-download uboot-envtools - endef - TARGET_DEVICES += cig_wf194 -+ -+define Device/edgecore_eap102 -+ DEVICE_TITLE := Edgecore EAP102 -+ DEVICE_DTS := qcom-ipq807x-eap102 -+ DEVICE_DTS_DIR := $(DTS_DIR)/qcom -+ DEVICE_DTS_CONFIG=config@ac02 -+ SUPPORTED_DEVICES := edgecore,eap102 -+ DEVICE_PACKAGES := ath11k-wifi-edgecore-eap102 kmod-usb3 kmod-usb2 -+endef -+TARGET_DEVICES += edgecore_eap102 --- -2.25.1 - diff --git a/patches/0037-apply-ec420-changes-to-calibation.patch b/patches/0036-apply-ec420-changes-to-calibation.patch similarity index 92% rename from patches/0037-apply-ec420-changes-to-calibation.patch rename to patches/0036-apply-ec420-changes-to-calibation.patch index 4dcfc3e95..8f3fc1bdc 100644 --- a/patches/0037-apply-ec420-changes-to-calibation.patch +++ b/patches/0036-apply-ec420-changes-to-calibation.patch @@ -1,7 +1,7 @@ -From 2be3d0c63e62087cfc2c455e7412cddcaf371a77 Mon Sep 17 00:00:00 2001 +From c63f3fc046337f0fe79aaef03ea835cadc32aab1 Mon Sep 17 00:00:00 2001 From: Rick Sommerville Date: Fri, 23 Oct 2020 15:03:34 -0400 -Subject: [PATCH] apply ec420 changes to calibation +Subject: [PATCH 36/40] apply ec420 changes to calibation --- .../etc/hotplug.d/firmware/11-ath10k-caldata | 14 ++++++++++---- @@ -50,5 +50,5 @@ index a8ebced11a..ff77aed304 100644 ;; "ath10k/pre-cal-ahb-a800000.wifi.bin") -- -2.17.1 +2.25.1 diff --git a/patches/0038-ipq40xx-Add-support-for-CIG-WF610D-AP.patch b/patches/0037-ipq40xx-Add-support-for-CIG-WF610D-AP.patch similarity index 99% rename from patches/0038-ipq40xx-Add-support-for-CIG-WF610D-AP.patch rename to patches/0037-ipq40xx-Add-support-for-CIG-WF610D-AP.patch index 5b6c2186e..f77acddfc 100644 --- a/patches/0038-ipq40xx-Add-support-for-CIG-WF610D-AP.patch +++ b/patches/0037-ipq40xx-Add-support-for-CIG-WF610D-AP.patch @@ -1,7 +1,7 @@ -From 45ff03940077e0c3777d9e945f9fb9e65bd61549 Mon Sep 17 00:00:00 2001 +From 3903cefa5c720f0f1ac76f5719473313e79ace3e Mon Sep 17 00:00:00 2001 From: Chaitanya Godavarthi Date: Wed, 4 Nov 2020 22:45:12 -0500 -Subject: [PATCH] ipq40xx: Add support for CIG WF610D AP +Subject: [PATCH 37/40] ipq40xx: Add support for CIG WF610D AP Signed-off-by: Chaitanya Godavarthi --- diff --git a/patches/0037-ipq807x-add-edgecore-eap101-support.patch b/patches/0037-ipq807x-add-edgecore-eap101-support.patch deleted file mode 100644 index 476550c46..000000000 --- a/patches/0037-ipq807x-add-edgecore-eap101-support.patch +++ /dev/null @@ -1,1114 +0,0 @@ -From 02d197d190a9fa405e5fd9164bcfc5fb201d9295 Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Sat, 24 Oct 2020 12:26:51 +0200 -Subject: [PATCH] ipq807x: add edgecore eap101 support - -Signed-off-by: John Crispin ---- - target/linux/ipq807x/Makefile | 1 + - .../ipq807x/base-files/etc/board.d/01_leds | 1 + - .../ipq807x/base-files/etc/board.d/02_network | 4 + - .../etc/hotplug.d/firmware/10-ath11k-caldata | 1 + - .../ipq807x/base-files/etc/init.d/bootcount | 11 + - .../base-files/lib/upgrade/platform.sh | 5 + - target/linux/ipq807x/image/ipq60xx.mk | 10 + - target/linux/ipq807x/patches/106-eap101.patch | 975 ++++++++++++++++++ - 8 files changed, 1008 insertions(+) - create mode 100755 target/linux/ipq807x/base-files/etc/init.d/bootcount - create mode 100644 target/linux/ipq807x/patches/106-eap101.patch - -diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile -index e132546f2c..d1d6e0e6fc 100644 ---- a/target/linux/ipq807x/Makefile -+++ b/target/linux/ipq807x/Makefile -@@ -16,6 +16,7 @@ DEFAULT_PACKAGES += kmod-qca-nss-dp kmod-qca-ssdk swconfig \ - kmod-qca-nss-drv \ - kmod-usb-phy-ipq807x kmod-usb-dwc3-of-simple \ - kmod-ath11k-ahb kmod-qrtr_mproc wpad \ -+ kmod-gpio-button-hotplug \ - qca-thermald-10.4 qca-ssdk-shell - - $(eval $(call BuildTarget)) -diff --git a/target/linux/ipq807x/base-files/etc/board.d/01_leds b/target/linux/ipq807x/base-files/etc/board.d/01_leds -index 3ed1227a3d..12492bf3d1 100755 ---- a/target/linux/ipq807x/base-files/etc/board.d/01_leds -+++ b/target/linux/ipq807x/base-files/etc/board.d/01_leds -@@ -15,6 +15,7 @@ cig,wf194c) - ucidef_set_led_netdev "wan" "WAN" "wf194c:green:wan" "br-wan" "tx rx link" - ucidef_set_led_netdev "lan" "LAN" "wf194c:green:lan" "br-lan" "tx rx link" - ;; -+edgecore,eap101\ - edgecore,eap102) - ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy0tx" - ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy1tx" -diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network -index 0ae29613d9..c1f4f1829f 100755 ---- a/target/linux/ipq807x/base-files/etc/board.d/02_network -+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network -@@ -26,6 +26,10 @@ qcom_setup_interfaces() - ucidef_set_interface_lan "eth0" - ucidef_set_interface_wan "eth1" - ;; -+ edgecore,eap101) -+ ucidef_set_interface_lan "eth1 eth2" -+ ucidef_set_interface_wan "eth0" -+ ;; - edgecore,eap102) - ucidef_set_interface_lan "eth1" - ucidef_set_interface_wan "eth0" -diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -index faade0972f..6004e8b88d 100755 ---- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -@@ -41,6 +41,7 @@ case "$FIRMWARE" in - case "$board" in - cig,wf188|\ - cig,wf188n|\ -+ edgecore,eap101|\ - qcom,ipq6018-cp01) - caldata_extract "0:ART" 0x1000 0x20000 - ;; -diff --git a/target/linux/ipq807x/base-files/etc/init.d/bootcount b/target/linux/ipq807x/base-files/etc/init.d/bootcount -new file mode 100755 -index 0000000000..ac345d6d4a ---- /dev/null -+++ b/target/linux/ipq807x/base-files/etc/init.d/bootcount -@@ -0,0 +1,11 @@ -+#!/bin/sh /etc/rc.common -+ -+START=99 -+ -+boot() { -+ case "$(board_name)" in -+ edgecore,eap101) -+ fw_setenv bootcount 0 -+ ;; -+ esac -+} -diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -index 43ee219412..5be62f59a9 100755 ---- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -@@ -23,6 +23,7 @@ platform_check_image() { - cig,wf188|\ - cig,wf188n|\ - cig,wf194c|\ -+ edgecore,eap101|\ - edgecore,eap102|\ - qcom,ipq6018-cp01|\ - qcom,ipq807x-hk01|\ -@@ -51,5 +52,9 @@ platform_do_upgrade() { - sercomm,wallaby) - nand_upgrade_tar "$1" - ;; -+ edgecore,eap101) -+ CI_UBIPART="rootfs1" -+ nand_upgrade_tar "$1" -+ ;; - esac - } -diff --git a/target/linux/ipq807x/image/ipq60xx.mk b/target/linux/ipq807x/image/ipq60xx.mk -index 6a2d30bbb6..fd66acab58 100644 ---- a/target/linux/ipq807x/image/ipq60xx.mk -+++ b/target/linux/ipq807x/image/ipq60xx.mk -@@ -22,6 +22,16 @@ define Device/cig_wf188n - endef - TARGET_DEVICES += cig_wf188n - -+define Device/edgecore_eap101 -+ DEVICE_TITLE := EdgeCore EAP101 -+ DEVICE_DTS := qcom-ipq6018-edgecore-eap101 -+ DEVICE_DTS_DIR := $(DTS_DIR)/qcom -+ DEVICE_DTS_CONFIG := config@cp01-c1 -+ SUPPORTED_DEVICES := edgecore,eap101 -+ DEVICE_PACKAGES := ath11k-wifi-edgecore-eap101 uboot-env -+endef -+TARGET_DEVICES += edgecore_eap101 -+ - define Device/qcom_cp01_c1 - DEVICE_TITLE := Qualcomm Cypress C1 - DEVICE_DTS := qcom-ipq6018-cp01-c1 -diff --git a/target/linux/ipq807x/patches/106-eap101.patch b/target/linux/ipq807x/patches/106-eap101.patch -new file mode 100644 -index 0000000000..6b0eb2f831 ---- /dev/null -+++ b/target/linux/ipq807x/patches/106-eap101.patch -@@ -0,0 +1,975 @@ -+Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-cp01-edgecore.dtsi -+=================================================================== -+--- /dev/null -++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-cp01-edgecore.dtsi -+@@ -0,0 +1,542 @@ -++/* -++ * Copyright (c) 2019, The Linux Foundation. All rights reserved. -++ * -++ * Permission to use, copy, modify, and/or distribute this software for any -++ * purpose with or without fee is hereby granted, provided that the above -++ * copyright notice and this permission notice appear in all copies. -++ * -++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -++ */ -++ -++#include "qcom-ipq6018.dtsi" -++#include -++#include -++ -++/ { -++ #address-cells = <0x2>; -++ #size-cells = <0x2>; -++ compatible = "qcom,ipq6018-cp01", "qcom,ipq6018"; -++ interrupt-parent = <&intc>; -++ qcom,msm-id = <0x192 0x0>, <0x193 0x0>; -++ -++ aliases { -++ serial0 = &blsp1_uart3; -++ serial1 = &blsp1_uart2; -++ sdhc2 = &sdhc_2; -++ /* -++ * Aliases as required by u-boot -++ * to patch MAC addresses -++ */ -++ ethernet0 = "/soc/dp1"; -++ ethernet1 = "/soc/dp2"; -++ ethernet2 = "/soc/dp3"; -++ -++ led-boot = &led_power; -++ led-failsafe = &led_power; -++ led-running = &led_power; -++ led-upgrade = &led_power; -++ }; -++ -++ chosen { -++ bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; -++#ifdef __IPQ_MEM_PROFILE_256_MB__ -++ bootargs-append = " swiotlb=1"; -++#else -++ bootargs-append = " swiotlb=1 coherent_pool=2M"; -++#endif -++ }; -++ -++}; -++ -++&tlmm { -++ pinctrl-0 = <&sd_ldo_pins>; -++ pinctrl-names = "default"; -++ -++ uart_pins: uart_pins { -++ mux { -++ pins = "gpio44", "gpio45"; -++ function = "blsp2_uart"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ sd_ldo_pins: sd_ldo_pins { -++ mux { -++ pins = "gpio66"; -++ function = "gpio"; -++ drive-strength = <2>; -++ bias-disable; -++ output-low; -++ }; -++ }; -++ -++ spi_0_pins: spi_0_pins { -++ mux { -++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; -++ function = "blsp0_spi"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ spi_1_pins: spi_1_pins { -++ mux { -++ pins = "gpio69", "gpio71", "gpio72"; -++ function = "blsp1_spi"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ spi_cs { -++ pins = "gpio70"; -++ function = "blsp1_spi"; -++ drive-strength = <8>; -++ bias-disable; -++ }; -++ quartz_interrupt { -++ pins = "gpio78"; -++ function = "gpio"; -++ input; -++ bias-disable; -++ }; -++ quartz_reset { -++ pins = "gpio79"; -++ function = "gpio"; -++ output-low; -++ bias-disable; -++ }; -++ -++ }; -++ -++ qpic_pins: qpic_pins { -++ data_0 { -++ pins = "gpio15"; -++ function = "qpic_pad0"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_1 { -++ pins = "gpio12"; -++ function = "qpic_pad1"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_2 { -++ pins = "gpio13"; -++ function = "qpic_pad2"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_3 { -++ pins = "gpio14"; -++ function = "qpic_pad3"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_4 { -++ pins = "gpio5"; -++ function = "qpic_pad4"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_5 { -++ pins = "gpio6"; -++ function = "qpic_pad5"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_6 { -++ pins = "gpio7"; -++ function = "qpic_pad6"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_7 { -++ pins = "gpio8"; -++ function = "qpic_pad7"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ qpic_pad { -++ pins = "gpio1", "gpio3", "gpio4", -++ "gpio10", "gpio11", "gpio17"; -++ function = "qpic_pad"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ sd_pins: sd_pins { -++ mux { -++ pins = "gpio62"; -++ function = "sd_card"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ }; -++ -++ extcon_usb_pins: extcon_usb_pins { -++ mux { -++ pins = "gpio26"; -++ function = "gpio"; -++ drive-strength = <2>; -++ bias-pull-down; -++ }; -++ }; -++ -++ button_pins: button_pins { -++ wps_button { -++ pins = "gpio9"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ reset_button { -++ pins = "gpio19"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ }; -++ -++ mdio_pins: mdio_pinmux { -++ mux_0 { -++ pins = "gpio64"; -++ function = "mdc"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ mux_1 { -++ pins = "gpio65"; -++ function = "mdio"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ mux_2 { -++ pins = "gpio75"; -++ function = "gpio"; -++ bias-pull-up; -++ }; -++ mux_3 { -++ pins = "gpio77"; -++ function = "gpio"; -++ bias-pull-up; -++ }; -++ }; -++ -++ leds_pins: leds_pins { -++ led_pwr { -++ pins = "gpio74"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_5g { -++ pins = "gpio35"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_2g { -++ pins = "gpio37"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_wan { -++ pins = "gpio62"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_lan1 { -++ pins = "gpio61"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_lan2 { -++ pins = "gpio63"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_bt { -++ pins = "gpio73"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ hsuart_pins: hsuart_pins { -++ mux { -++ pins = "gpio71", "gpio72", "gpio69", "gpio70"; -++ function = "blsp1_uart"; -++ drive-strength = <8>; -++ bias-disable; -++ }; -++ }; -++ -++ btcoex_pins: btcoex_pins { -++ mux_0 { -++ pins = "gpio51"; -++ function = "pta1_1"; -++ drive-strength = <6>; -++ bias-pull-down; -++ }; -++ mux_1 { -++ pins = "gpio53"; -++ function = "pta1_0"; -++ drive-strength = <6>; -++ bias-pull-down; -++ }; -++ mux_2 { -++ pins = "gpio52"; -++ function = "pta1_2"; -++ drive-strength = <6>; -++ bias-pull-down; -++ }; -++ }; -++}; -++ -++&soc { -++ extcon_usb: extcon_usb { -++ pinctrl-0 = <&extcon_usb_pins>; -++ pinctrl-names = "default"; -++ id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; -++ status = "ok"; -++ }; -++ -++ mdio: mdio@90000 { -++ pinctrl-0 = <&mdio_pins>; -++ pinctrl-names = "default"; -++ phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>; -++ status = "ok"; -++ phy0: ethernet-phy@0 { -++ reg = <0x1c>; -++ }; -++ phy1: ethernet-phy@1 { -++ reg = <3>; -++ }; -++ phy2: ethernet-phy@2 { -++ reg = <4>; -++ }; -++ }; -++ -++ dp1 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <5>; -++ reg = <0x3a001000 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <28>; -++ phy-mode = "sgmii"; -++ }; -++ -++ dp2 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <4>; -++ reg = <0x3a001200 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <3>; -++ phy-mode = "sgmii"; -++ }; -++ -++ dp3 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <3>; -++ reg = <0x3a001400 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <4>; -++ phy-mode = "sgmii"; -++ }; -++ -++ -++ nss-macsec0 { -++ compatible = "qcom,nss-macsec"; -++ phy_addr = <0x1c>; -++ phy_access_mode = <0>; -++ mdiobus = <&mdio>; -++ }; -++ -++ ess-switch@3a000000 { -++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ -++ switch_lan_bmp = <0x1e>; /* lan port bitmap */ -++ switch_wan_bmp = <0x20>; /* wan port bitmap */ -++ switch_inner_bmp = <0xc0>; /*inner port bitmap*/ -++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ -++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ -++ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ -++ qcom,port_phyinfo { -++ port@2 { -++ port_id = <3>; -++ phy_address = <4>; -++ }; -++ port@1 { -++ port_id = <4>; -++ phy_address = <3>; -++ }; -++ port@0 { -++ port_id = <5>; -++ phy_address = <0x1c>; -++ port_mac_sel = "QGMAC_PORT"; -++ }; -++ }; -++ }; -++ -++ gpio_keys { -++ compatible = "gpio-keys"; -++ pinctrl-0 = <&button_pins>; -++ pinctrl-names = "default"; -++ -++ /*wps { -++ label = "wps"; -++ linux,code = ; -++ gpios = <&tlmm 9 GPIO_ACTIVE_LOW>; -++ linux,input-type = <1>; -++ debounce-interval = <60>; -++ };*/ -++ reset { -++ label = "reset"; -++ linux,code = ; -++ gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; -++ linux,input-type = <1>; -++ debounce-interval = <60>; -++ }; -++ }; -++ -++ leds { -++ compatible = "gpio-leds"; -++ pinctrl-0 = <&leds_pins>; -++ pinctrl-names = "default"; -++ -++ led_power: led@74 { -++ label = "green:power"; -++ gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "led_pwr"; -++ default-state = "on"; -++ }; -++ led@35 { -++ label = "green:wifi5"; -++ gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "led_5g"; -++ default-state = "off"; -++ }; -++ led@37 { -++ label = "green:wifi2"; -++ gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "led_2g"; -++ default-state = "off"; -++ }; -++ }; -++}; -++ -++&blsp1_uart3 { -++ pinctrl-0 = <&uart_pins>; -++ pinctrl-names = "default"; -++ status = "ok"; -++}; -++ -++&spi_0 { -++ pinctrl-0 = <&spi_0_pins>; -++ pinctrl-names = "default"; -++ cs-select = <0>; -++ status = "ok"; -++ -++ m25p80@0 { -++ #address-cells = <1>; -++ #size-cells = <1>; -++ reg = <0>; -++ compatible = "n25q128a11"; -++ linux,modalias = "m25p80", "n25q128a11"; -++ spi-max-frequency = <50000000>; -++ use-default-sizes; -++ }; -++}; -++ -++&blsp1_uart2 { -++ pinctrl-0 = <&hsuart_pins &btcoex_pins>; -++ pinctrl-names = "default"; -++ dmas = <&blsp_dma 2>, -++ <&blsp_dma 3>; -++ dma-names = "tx", "rx"; -++ status = "ok"; -++}; -++ -++&spi_1 { /* BLSP1 QUP1 */ -++ pinctrl-0 = <&spi_1_pins>; -++ pinctrl-names = "default"; -++ cs-select = <0>; -++ quartz-reset-gpio = <&tlmm 79 1>; -++ status = "disabled"; -++ spidev1: spi@1 { -++ compatible = "qca,spidev"; -++ reg = <0>; -++ spi-max-frequency = <24000000>; -++ }; -++}; -++ -++&qpic_bam { -++ status = "ok"; -++}; -++ -++&nand { -++ pinctrl-0 = <&qpic_pins>; -++ pinctrl-names = "default"; -++ status = "ok"; -++}; -++ -++&ssphy_0 { -++ status = "ok"; -++}; -++ -++&qusb_phy_0 { -++ status = "ok"; -++}; -++ -++&qusb_phy_1 { -++ status = "ok"; -++}; -++ -++&usb2 { -++ status = "ok"; -++}; -++ -++&usb3 { -++ status = "ok"; -++}; -++ -++&nss_crypto { -++ status = "ok"; -++}; -++ -++&pcie_phy { -++ status = "ok"; -++}; -++ -++&pcie0 { -++ status = "ok"; -++}; -++ -++&qpic_lcd { -++ status = "ok"; -++}; -++ -++&qpic_lcd_panel { -++ status = "ok"; -++}; -+Index: linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts -+=================================================================== -+--- /dev/null -++++ linux-4.4.60-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1/arch/arm64/boot/dts/qcom/qcom-ipq6018-edgecore-eap101.dts -+@@ -0,0 +1,423 @@ -++/dts-v1/; -++/* -++ * Copyright (c) 2019, The Linux Foundation. All rights reserved. -++ * -++ * Permission to use, copy, modify, and/or distribute this software for any -++ * purpose with or without fee is hereby granted, provided that the above -++ * copyright notice and this permission notice appear in all copies. -++ * -++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -++ */ -++ -++#include "qcom-ipq6018.dtsi" -++#include "qcom-ipq6018-rpm-regulator.dtsi" -++#include "qcom-ipq6018-cpr-regulator.dtsi" -++#include "qcom-ipq6018-cp-cpu.dtsi" -++#include -++#include -++ -++/ { -++ #address-cells = <0x2>; -++ #size-cells = <0x2>; -++ model = "EdgeCore EAP101"; -++ compatible = "edgecore,eap101", "qcom,ipq6018-cp01", "qcom,ipq6018"; -++ interrupt-parent = <&intc>; -++ -++ aliases { -++ serial0 = &blsp1_uart3; -++ serial1 = &blsp1_uart2; -++ -++ /* -++ * Aliases as required by u-boot -++ * to patch MAC addresses -++ */ -++ ethernet0 = "/soc/dp1"; -++ ethernet1 = "/soc/dp2"; -++ -++ led-boot = &led_power; -++ led-failsafe = &led_power; -++ led-running = &led_power; -++ led-upgrade = &led_power; -++ }; -++ -++ chosen { -++ bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; -++ bootargs-append = " console=ttyMSM0,115200,n8 swiotlb=1 coherent_pool=2M"; -++ }; -++ -++ /* -++ * +=========+==============+========================+ -++ * | | | | -++ * | Region | Start Offset | Size | -++ * | | | | -++ * +--------+--------------+-------------------------+ -++ * | | | | -++ * | | | | -++ * | | | | -++ * | | | | -++ * | Linux | 0x41000000 | 139MB | -++ * | | | | -++ * | | | | -++ * | | | | -++ * +--------+--------------+-------------------------+ -++ * | TZ App | 0x49B00000 | 6MB | -++ * +--------+--------------+-------------------------+ -++ * -++ * From the available 145 MB for Linux in the first 256 MB, -++ * we are reserving 6 MB for TZAPP. -++ * -++ * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi -++ * for memory layout. -++ */ -++ -++/* TZAPP is enabled only in default memory profile */ -++#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) -++ reserved-memory { -++ tzapp:tzapp@49B00000 { /* TZAPPS */ -++ no-map; -++ reg = <0x0 0x49B00000 0x0 0x00600000>; -++ }; -++ }; -++#endif -++}; -++ -++&tlmm { -++ uart_pins: uart_pins { -++ mux { -++ pins = "gpio44", "gpio45"; -++ function = "blsp2_uart"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ spi_0_pins: spi_0_pins { -++ mux { -++ pins = "gpio38", "gpio39", "gpio40", "gpio41"; -++ function = "blsp0_spi"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ qpic_pins: qpic_pins { -++ data_0 { -++ pins = "gpio15"; -++ function = "qpic_pad0"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_1 { -++ pins = "gpio12"; -++ function = "qpic_pad1"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_2 { -++ pins = "gpio13"; -++ function = "qpic_pad2"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_3 { -++ pins = "gpio14"; -++ function = "qpic_pad3"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_4 { -++ pins = "gpio5"; -++ function = "qpic_pad4"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_5 { -++ pins = "gpio6"; -++ function = "qpic_pad5"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_6 { -++ pins = "gpio7"; -++ function = "qpic_pad6"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ data_7 { -++ pins = "gpio8"; -++ function = "qpic_pad7"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ qpic_pad { -++ pins = "gpio1", "gpio3", "gpio4", -++ "gpio10", "gpio11", "gpio17"; -++ function = "qpic_pad"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ -++ extcon_usb_pins: extcon_usb_pins { -++ mux { -++ pins = "gpio26"; -++ function = "gpio"; -++ drive-strength = <2>; -++ bias-pull-down; -++ }; -++ }; -++ -++ button_pins: button_pins { -++ wps_button { -++ pins = "gpio19"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ }; -++ -++ mdio_pins: mdio_pinmux { -++ mux_0 { -++ pins = "gpio64"; -++ function = "mdc"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ mux_1 { -++ pins = "gpio65"; -++ function = "mdio"; -++ drive-strength = <8>; -++ bias-pull-up; -++ }; -++ mux_2 { -++ pins = "gpio75"; -++ function = "gpio"; -++ bias-pull-up; -++ }; -++ }; -++ -++ leds_pins: leds_pins { -++ led_pwr { -++ pins = "gpio74"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_5g { -++ pins = "gpio35"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ led_2g { -++ pins = "gpio37"; -++ function = "gpio"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++ uart2_pins: uart2_pins { -++ mux { -++ pins = "gpio57", "gpio58"; -++ function = "blsp4_uart"; -++ drive-strength = <8>; -++ bias-pull-down; -++ }; -++ }; -++}; -++ -++&soc { -++ extcon_usb: extcon_usb { -++ pinctrl-0 = <&extcon_usb_pins>; -++ pinctrl-names = "default"; -++ id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; -++ status = "ok"; -++ }; -++ -++ mdio: mdio@90000 { -++ pinctrl-0 = <&mdio_pins>; -++ pinctrl-names = "default"; -++ phy-reset-gpio = <&tlmm 75 0 &tlmm 77 1>; -++ status = "ok"; -++ phy0: ethernet-phy@0 { -++ reg = <0x1c>; -++ }; -++ phy1: ethernet-phy@1 { -++ reg = <3>; -++ }; -++ phy2: ethernet-phy@2 { -++ reg = <4>; -++ }; -++ }; -++ -++ dp1 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <5>; -++ reg = <0x3a001000 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <28>; -++ phy-mode = "sgmii"; -++ }; -++ -++ dp2 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <4>; -++ reg = <0x3a001200 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <3>; -++ phy-mode = "sgmii"; -++ }; -++ -++ dp3 { -++ device_type = "network"; -++ compatible = "qcom,nss-dp"; -++ qcom,id = <3>; -++ reg = <0x3a001400 0x200>; -++ qcom,mactype = <0>; -++ local-mac-address = [000000000000]; -++ qcom,link-poll = <1>; -++ qcom,phy-mdio-addr = <4>; -++ phy-mode = "sgmii"; -++ }; -++ -++ ess-switch@3a000000 { -++ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ -++ switch_lan_bmp = <0x1e>; /* lan port bitmap */ -++ switch_wan_bmp = <0x20>; /* wan port bitmap */ -++ switch_inner_bmp = <0xc0>; /*inner port bitmap*/ -++ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ -++ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ -++ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ -++ qcom,port_phyinfo { -++ port@2 { -++ port_id = <3>; -++ phy_address = <4>; -++ }; -++ port@1 { -++ port_id = <4>; -++ phy_address = <3>; -++ }; -++ port@0 { -++ port_id = <5>; -++ phy_address = <0x1c>; -++ port_mac_sel = "QGMAC_PORT"; -++ }; -++ }; -++ }; -++ -++ gpio_keys { -++ compatible = "gpio-keys"; -++ pinctrl-0 = <&button_pins>; -++ pinctrl-names = "default"; -++ -++ wps { -++ label = "reset"; -++ linux,code = ; -++ gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; -++ linux,input-type = <1>; -++ debounce-interval = <60>; -++ }; -++ }; -++ -++ leds { -++ compatible = "gpio-leds"; -++ pinctrl-0 = <&leds_pins>; -++ pinctrl-names = "default"; -++ -++ led@25 { -++ label = "wifi5g"; -++ gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "wf188:green:5g"; -++ default-state = "off"; -++ }; -++ led@24 { -++ label = "wifi2g"; -++ gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "wf188:green:2g"; -++ default-state = "off"; -++ }; -++ led_power: led@16 { -++ label = "led_pwr"; -++ gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>; -++ linux,default-trigger = "green:power"; -++ default-state = "off"; -++ }; -++ }; -++}; -++ -++&blsp1_uart3 { -++ pinctrl-0 = <&uart_pins>; -++ pinctrl-names = "default"; -++ status = "ok"; -++}; -++ -++&spi_0 { -++ pinctrl-0 = <&spi_0_pins>; -++ pinctrl-names = "default"; -++ cs-select = <0>; -++ status = "ok"; -++ -++ m25p80@0 { -++ #address-cells = <1>; -++ #size-cells = <1>; -++ reg = <0>; -++ compatible = "n25q128a11"; -++ linux,modalias = "m25p80", "n25q128a11"; -++ spi-max-frequency = <50000000>; -++ use-default-sizes; -++ }; -++}; -++ -++&blsp1_uart2 { -++ pinctrl-0 = <&uart2_pins>; -++ pinctrl-names = "default"; -++ dmas = <&blsp_dma 2>, -++ <&blsp_dma 3>; -++ dma-names = "tx", "rx"; -++ status = "ok"; -++}; -++&qpic_bam { -++ status = "ok"; -++}; -++ -++&nand { -++ pinctrl-0 = <&qpic_pins>; -++ pinctrl-names = "default"; -++ status = "ok"; -++}; -++ -++&ssphy_0 { -++ status = "ok"; -++}; -++ -++&qusb_phy_0 { -++ status = "ok"; -++}; -++ -++&qusb_phy_1 { -++ status = "ok"; -++}; -++ -++&usb2 { -++ status = "ok"; -++}; -++ -++&usb3 { -++ status = "ok"; -++}; -++ -++&nss_crypto { -++ status = "ok"; -++}; --- -2.25.1 - diff --git a/patches/0038-ipq806x-add-mtd-spi-nor-support-for-mx25u12835f.patch b/patches/0038-ipq806x-add-mtd-spi-nor-support-for-mx25u12835f.patch index 625802e4e..7ad1ec965 100644 --- a/patches/0038-ipq806x-add-mtd-spi-nor-support-for-mx25u12835f.patch +++ b/patches/0038-ipq806x-add-mtd-spi-nor-support-for-mx25u12835f.patch @@ -1,7 +1,7 @@ -From de4a7d685f74fa57cf2d4ac4c6e106b359e94fff Mon Sep 17 00:00:00 2001 +From 8f46a9038e18bb396c01aed513bd2a0a03bd754b Mon Sep 17 00:00:00 2001 From: Brian Moyle Date: Mon, 7 Dec 2020 22:59:19 +0000 -Subject: [PATCH] ipq806x: add mtd spi-nor support for mx25u12835f +Subject: [PATCH 38/40] ipq806x: add mtd spi-nor support for mx25u12835f Signed-off-by: Brian Moyle --- @@ -11,7 +11,7 @@ Signed-off-by: Brian Moyle diff --git a/target/linux/ipq806x/patches-4.14/450-mtd-spi-nor-Add-support-for-mx25u12835f.patch b/target/linux/ipq806x/patches-4.14/450-mtd-spi-nor-Add-support-for-mx25u12835f.patch new file mode 100644 -index 0000000000..8b13ac234e +index 0000000000..1648666112 --- /dev/null +++ b/target/linux/ipq806x/patches-4.14/450-mtd-spi-nor-Add-support-for-mx25u12835f.patch @@ -0,0 +1,32 @@ @@ -47,5 +47,6 @@ index 0000000000..8b13ac234e + { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SECT_4K) }, + { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, + { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, --- -2.17.1 +-- +2.25.1 + diff --git a/patches/0038-ipq807x-update-to-ath11k-ed2-release.patch b/patches/0038-ipq807x-update-to-ath11k-ed2-release.patch deleted file mode 100644 index 61510fdcf..000000000 --- a/patches/0038-ipq807x-update-to-ath11k-ed2-release.patch +++ /dev/null @@ -1,101 +0,0 @@ -From f5a7225caa168641a668e979f8ae5098f39d5ad0 Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Mon, 23 Nov 2020 10:57:45 +0100 -Subject: [PATCH] ipq807x: update to ath11k-ed2 release - -Signed-off-by: John Crispin ---- - include/kernel-version.mk | 2 +- - target/linux/ipq807x/Makefile | 2 +- - .../etc/hotplug.d/firmware/10-ath11k-caldata | 4 ++-- - target/linux/ipq807x/config-4.4 | 2 ++ - target/linux/ipq807x/patches/107-ed2-compile.patch | 12 ++++++++++++ - 5 files changed, 18 insertions(+), 4 deletions(-) - create mode 100644 target/linux/ipq807x/patches/107-ed2-compile.patch - -diff --git a/include/kernel-version.mk b/include/kernel-version.mk -index 43bdf76db7..52c249ff9f 100644 ---- a/include/kernel-version.mk -+++ b/include/kernel-version.mk -@@ -9,7 +9,7 @@ endif - LINUX_VERSION-4.4 = .60 - LINUX_VERSION-4.14 = .187 - --LINUX_KERNEL_HASH-4.4.60 = 92c5320788332fedbfe8ce2da80a849dd68d1e7eeb09a094b93d1ae05a69ef89 -+LINUX_KERNEL_HASH-4.4.60 = 2cd8df6f1ac6a5329c5a286ec9b5956215977221a1b731597ed169fff74a9659 - LINUX_KERNEL_HASH-4.14.187 = 5b223475eaeea196aa7e127d3f253bca5c35d8afdc72ca75230ce1ecdd1454bd - - remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) -diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile -index d1d6e0e6fc..0895fec121 100644 ---- a/target/linux/ipq807x/Makefile -+++ b/target/linux/ipq807x/Makefile -@@ -9,7 +9,7 @@ KERNELNAME:=Image dtbs - CPU_TYPE:=cortex-a53 - - KERNEL_PATCHVER:=4.4 --KERNEL_NAME_SUFFIX=-qsdk-ad8f8efb2edcd35cdb130466cfc1923c37ef7ec1 -+KERNEL_NAME_SUFFIX=-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce - - include $(INCLUDE_DIR)/target.mk - DEFAULT_PACKAGES += kmod-qca-nss-dp kmod-qca-ssdk swconfig \ -diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -index 6004e8b88d..80f00c1cb4 100755 ---- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata -@@ -26,7 +26,7 @@ caldata_extract() { - board=$(board_name) - - case "$FIRMWARE" in --"IPQ8074/caldata.bin") -+"ath11k/IPQ8074/hw2.0/caldata.bin") - case "$board" in - cig,wf194c|\ - edgecore,eap102 |\ -@@ -37,7 +37,7 @@ case "$FIRMWARE" in - ;; - esac - ;; --"IPQ6018/caldata.bin") -+"ath11k/IPQ6018/hw1.0/caldata.bin") - case "$board" in - cig,wf188|\ - cig,wf188n|\ -diff --git a/target/linux/ipq807x/config-4.4 b/target/linux/ipq807x/config-4.4 -index 84e68078a6..b7e0491f45 100644 ---- a/target/linux/ipq807x/config-4.4 -+++ b/target/linux/ipq807x/config-4.4 -@@ -640,6 +640,7 @@ CONFIG_UNINLINE_SPIN_UNLOCK=y - CONFIG_USB_GADGET=n - CONFIG_USB_SUPPORT=y - # CONFIG_USB_DWC3_OF_SIMPLE is not set -+# CONFIG_USB_QCOM_KS_BRIDGE is not set - # CONFIG_USB_QCOM_8X16_PHY is not set - # CONFIG_USB_QCOM_QUSB_PHY is not set - # CONFIG_USB_QCOM_QMP_PHY is not set -@@ -743,3 +744,4 @@ CONFIG_CRYPTO_MICHAEL_MIC=y - # CONFIG_MAP_E_SUPPORT is not set - # CONFIG_USB_QCA_M31_PHY is not set - CONFIG_QTI_Q6V5_ADSP=y -+# CONFIG_QGIC2_MSI is not set -diff --git a/target/linux/ipq807x/patches/107-ed2-compile.patch b/target/linux/ipq807x/patches/107-ed2-compile.patch -new file mode 100644 -index 0000000000..8122f9ee7d ---- /dev/null -+++ b/target/linux/ipq807x/patches/107-ed2-compile.patch -@@ -0,0 +1,12 @@ -+Index: linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/include/linux/qcom_scm.h -+=================================================================== -+--- linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce.orig/include/linux/qcom_scm.h -++++ linux-4.4.60-qsdk-10fd7d14853b7020b804acae690c8acec5d954ce/include/linux/qcom_scm.h -+@@ -14,6 +14,7 @@ -+ #define __QCOM_SCM_H -+ -+ #include -++#include -+ -+ #define QCOM_KERNEL_AUTH_CMD 0x15 -+ #define QCOM_SCM_PAS_AUTH_DEBUG_RESET_CMD 0x14 --- -2.25.1 - diff --git a/patches/0039-Add-usr-bin-get_tip-script-for-EC420.patch b/patches/0039-Add-usr-bin-get_tip-script-for-EC420.patch index 8e6e672c7..952604866 100644 --- a/patches/0039-Add-usr-bin-get_tip-script-for-EC420.patch +++ b/patches/0039-Add-usr-bin-get_tip-script-for-EC420.patch @@ -1,7 +1,7 @@ -From 9e609d64031168c8bcb83b62740153661bee2486 Mon Sep 17 00:00:00 2001 +From a791b99da9f79d73f7e665f898372cfaacacfacf Mon Sep 17 00:00:00 2001 From: Rick Sommerville Date: Sat, 19 Dec 2020 12:07:07 -0500 -Subject: [PATCH] Add /usr/bin/get_tip script for EC420 +Subject: [PATCH 39/40] Add /usr/bin/get_tip script for EC420 --- files/usr/bin/get_tip | 63 +++++++++++++++++++++++++++++++++++++++++++ @@ -78,5 +78,5 @@ index 0000000000..e736357cdd + + -- -2.17.1 +2.25.1 diff --git a/patches/0039-firewall-Add-firewall-rule-for-interapcomm.patch b/patches/0040-firewall-Add-firewall-rule-for-interapcomm.patch similarity index 89% rename from patches/0039-firewall-Add-firewall-rule-for-interapcomm.patch rename to patches/0040-firewall-Add-firewall-rule-for-interapcomm.patch index c56f5fb51..a0e71a113 100644 --- a/patches/0039-firewall-Add-firewall-rule-for-interapcomm.patch +++ b/patches/0040-firewall-Add-firewall-rule-for-interapcomm.patch @@ -1,7 +1,7 @@ -From c8ef5cfd02de7589365eba715be47188dc0b992e Mon Sep 17 00:00:00 2001 +From 73f3b678931fd817e5d254764201cd28f3fa29fb Mon Sep 17 00:00:00 2001 From: Chaitanya Godavarthi Date: Mon, 21 Dec 2020 06:16:32 +0530 -Subject: [PATCH] firewall: Add firewall rule for interapcomm +Subject: [PATCH 40/40] firewall: Add firewall rule for interapcomm Add firewall rule for UCC (video/voice detect messages) and APC (Access Point Coordinator) diff --git a/patches/0040-ipq807x-do-not-dump-the-whole-ram-when-unit-panics.patch b/patches/0040-ipq807x-do-not-dump-the-whole-ram-when-unit-panics.patch deleted file mode 100644 index d0536d250..000000000 --- a/patches/0040-ipq807x-do-not-dump-the-whole-ram-when-unit-panics.patch +++ /dev/null @@ -1,54 +0,0 @@ -From f23a5179ce179fe8917ff8115d4cedce6c23a6a9 Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Tue, 12 Jan 2021 09:12:23 +0100 -Subject: [PATCH] ipq807x: do not dump the whole ram when unit panics - -Signed-off-by: John Crispin ---- - target/linux/ipq807x/config-4.4 | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/target/linux/ipq807x/config-4.4 b/target/linux/ipq807x/config-4.4 -index b7e0491f45..a68e32de18 100644 ---- a/target/linux/ipq807x/config-4.4 -+++ b/target/linux/ipq807x/config-4.4 -@@ -535,8 +535,8 @@ CONFIG_QCOM_BAM_DMA=y - CONFIG_QCOM_GDSC=y - CONFIG_QCOM_GSBI=y - # CONFIG_QCOM_HFPLL is not set --CONFIG_QCOM_MEMORY_DUMP_V2=y --CONFIG_QCOM_QFPROM=y -+# CONFIG_QCOM_MEMORY_DUMP_V2 is not set -+# CONFIG_QCOM_QFPROM is not set - # CONFIG_QCOM_SPMI_TEMP_ALARM is not set - CONFIG_QCOM_RPM_CLK=y - # CONFIG_QCOM_RTB is not set -@@ -664,11 +664,11 @@ CONFIG_ZBOOT_ROM_TEXT=0 - CONFIG_ZLIB_DEFLATE=y - CONFIG_ZLIB_INFLATE=y - CONFIG_ZONE_DMA_FLAG=0 --CONFIG_QCOM_CACHE_DUMP=y --CONFIG_QCOM_CACHE_DUMP_ON_PANIC=y --CONFIG_QCOM_RESTART_REASON=y --CONFIG_QCOM_DLOAD_MODE=y --CONFIG_QCOM_DLOAD_MODE_APPSBL=y -+# CONFIG_QCOM_CACHE_DUMP is not set -+# CONFIG_QCOM_CACHE_DUMP_ON_PANIC is not set -+# CONFIG_QCOM_RESTART_REASON is not set -+# CONFIG_QCOM_DLOAD_MODE is not set -+# CONFIG_QCOM_DLOAD_MODE_APPSBL is not set - CONFIG_FW_AUTH=y - CONFIG_FW_AUTH_TEST=m - CONFIG_ASYMMETRIC_KEY_TYPE=y -@@ -727,7 +727,7 @@ CONFIG_SCSI_SCAN_ASYNC=y - # CONFIG_RPMSG_CHAR is not set - # CONFIG_RPMSG_QCOM_GLINK_SMEM is not set - # CONFIG_RPMSG_QCOM_SMD is not set --CONFIG_QCA_MINIDUMP=y -+# CONFIG_QCA_MINIDUMP is not set - # CONFIG_QCA_MINIDUMP_DEBUG is not set - # CONFIG_QRTR_USB is not set - # CONFIG_QRTR_FIFO is not set --- -2.25.1 -