Message ID | 1625214318-32520-1-git-send-email-li.zhang@gl-inet.com |
---|---|
State | Changes Requested |
Headers | show |
Series | This patch adds supports for GL-B2200-EMMC. | expand |
Hi, > -----Original Message----- > From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org] > On Behalf Of Li Zhang > Sent: Freitag, 2. Juli 2021 10:25 > To: openwrt-devel@lists.openwrt.org > Cc: Li Zhang <li.zhang@gl-inet.com> > Subject: [PATCH] This patch adds supports for GL-B2200-EMMC. this patch has multiple formal issues. Please visit https://openwrt.org/submitting-patches and also consider checking out https://openwrt.org/docs/guide-developer/device-support-policies Some quick additional content-related comments below. > > Specifications: > - SOC: Qualcomm IPQ4019 ARM Quad-Core > - RAM: 512 MiB > - Flash: 16 MiB NOR - SPI0 > - EMMC: 8GB EMMC > - ETH: Qualcomm QCA8075 > - WLAN1: Qualcomm Atheros QCA4019 2.4GHz 802.11b/g/n 2x2 > - WLAN2: Qualcomm Atheros QCA4019 5GHz 802.11n/ac W2 2x2 > - WLAN3: Qualcomm Atheros QCA9886 5GHz 802.11n/ac W2 2x2 > - INPUT: Reset, WPS > - LED: Power, Internet > - UART1: On board pin header near to LED (3.3V, TX, RX, GND), 3.3V > without pin - 115200 8N1 > - UART2: On board with BLE module > - SPI1: On board socket for Zigbee module > > Update firmware instructions > ============================ > Pleae update firmware on uboot web(default 192.168.1.1). > --- > package/firmware/ipq-wifi/Makefile | 2 + > .../ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 | Bin 0 -> 24316 bytes > .../ipq-wifi/board-glinet_gl-b2200-emmc.qca9888 | Bin 0 -> 12168 bytes > target/linux/ipq40xx/Makefile | 2 +- > .../ipq40xx/base-files/etc/board.d/02_network | 5 + > .../etc/hotplug.d/firmware/11-ath10k-caldata | 3 + > .../arm/boot/dts/qcom-ipq4019-gl-b2200-emmc.dts | 366 > +++++++++++++++++++++ > .../arch/arm/boot/dts/qcom-ipq4029-gl-s1300.dts | 7 - > target/linux/ipq40xx/image/generic.mk | 27 ++ > .../patches-5.4/901-arm-boot-add-dts-files.patch | 3 +- > 10 files changed, 406 insertions(+), 9 deletions(-) create mode 100644 > package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 > create mode 100644 package/firmware/ipq-wifi/board-glinet_gl-b2200- > emmc.qca9888 > create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom- > ipq4019-gl-b2200-emmc.dts > > diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq- > wifi/Makefile > index e63e3b3..3d02048 100644 > --- a/package/firmware/ipq-wifi/Makefile > +++ b/package/firmware/ipq-wifi/Makefile > @@ -39,6 +39,7 @@ ALLWIFIBOARDS:= \ > engenius_emr3500 \ > ezviz_cs-w3-wd1200g-eup \ > glinet_gl-ap1300 \ > + glinet_gl-b2200-emmc \ > glinet_gl-s1300 \ > linksys_ea8300 \ > linksys_mr8300-v0 \ > @@ -125,6 +126,7 @@ $(eval $(call generate-ipq-wifi- > package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi- > package,engenius_emr3500,EnGenius EMR3500)) $(eval $(call generate-ipq- > wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) $(eval > $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) > +$(eval $(call generate-ipq-wifi-package,glinet_gl-b2200-emmc,GL.iNet > +GL-B2200-EMMC)) > $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) > $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) > $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) > diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 > b/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 > new file mode 100644 > index > 0000000000000000000000000000000000000000..c4721328e1bbaad8722b3b5f7 > 4c88af6c8c5214d > GIT binary patch > literal 24316 > zcmeHPdr(tX8b1jj>SE!BfCzXAAv{7MK%g2V@)iR`u&79YB2YzgYm|rKVdz3TJ}5 > *) > zpcV`fv<%9lDI(+Ii&(6!ol&NL>>oS(N88y)cV^wS9qmp#v%9$G- > sD0Ei6#PD9`_69 > zobR0bedm1VcTbXgbAH@66XJs7c8kJ7Q-kBv<1!L~OeO<R4u#- > 308ua%%FDMF6c+{+ > z%A~<>7fVZmrTe#r61Bo31!ep3DnB%+qM%G#aQNuf?c(5gK0h=xc- > xL02{Ib=XTiQ$ > zA);a$4cOE&A~NxQ1G{0C55QV`C#V3x1mLxBLNlFlxoo^E0K&t=e|q|qCS<Mxz > x?@3 > z44G_T2d^l1js2Q+BZ22o;4ytoZ`EULP1YR=<=#UF;G}<%NAMU)eY%W!^@yiCf > !bQ4 > zhL6kAzhDE4Xw+v+hG8v+X>V_DXJ=<)AOPIKXKJCiKs&?a3hRc+!fvL_9HC5Am > bg;V > zG>9)7z091<*r2Mh`apJSvS93*s<m2{y*oL6tY3Aip- > lQ_@}{u?sFh1IlHd3R%Kb07 > z{$T7ARYP@Qb}~FTq- > w5~X75an9_z!+V4DCsG&WRbi<6@WhX?+FVC<^uG#p_^a^%>j > z&;cVHdSNHU*{Om6*j-C?Np^-HRPW$FGrpJ9s- > e8ZWaeSYVJ04?Ys(=%IItv!te > zm5~ShGd)wsTgz&bWW0SY@pt-5JCaTXl)2@14CHh~o??|d7xXq1$Ri8=c5O_)- > F&!a > zn=~lLCHjlL>W|V- > @ya*8eRH6)V@G3frDxH|>Ef#B1Kdm`@)op9#CSQ*(U*Ir?V^U) > zD?N&Dd{WUBQtMUXoWHbCqM{`cu(MzDn{|$ev&;Go9vjIIe1j7IjD3;7e&7W > Wp3&)a > z8lKzOz^~<1da=J!mlf*v;N6{kl*93Xf4*#QZy&Zdo1JO9+US~u42dci5P__$j5Ide > z3y$#f&rg4toW!qy1YBPqUE6<t_~ZA6ZMfk^2Yb4$?SG- > 2BRpZ#{?DF0d91Ttz;KDK > zO9tWf2- > Heyn+EZOHwNk@0E!<6m&K_O6EMmU6hY$9I3x@WLrUbwYL9==)Y?8<0Ybg > p > zwn|~33?Abl193;)dG2B-)CqAz<I#9t{KI%81x?|lh-1- > MM1=BDK9B#9k8DA=@V1CU > z(NIKyP6eU9WLlkyNhq9(ic)8tA4?!{MxCEHBOa&+&qJJmCOk<%QqfdisyG}Ce- > e&F > zp;5djvF;=o=EP7s=odW4mu<- > h>OsTgJ4Z42YB8xAy;bH^T@Kfz)Eq2X0u)LVN@ftC > zmWCN%W;Cxzlx846RVV}~1SkY31SkY31XeHt>- > p;uFUEHMb|js#nZFr{VXP(vWE8es > z8op<klehlXm9xiKL(063v4T$_HFYZycs5I{>|mkH@vQ|*#8Nv;`dUOb;@o28$Rh > w? > zS*7eAd1PD$2Et#z;m_Y}7Nspm3>MK+G#N@PK!Ef2+&TclfFI=NctJK02U4NfF > yUo0 > zBMh+Fo}O$YX@l*vTiNW~Rt^vfXyB(K0JPa7wAcs$0#+kH2!yuzs}MkUp|8z_rI > Qn} > z>1Z- > 0s&RQB@O;RDNvH3JI}mVpnQpuKBPbW4kh2?wGM6@S7W{DS9{I{#>F?*u`8 > AVn > z=T5g*r`w$q@7$f0o4>zU+1%FN+1+zxaA;)o&S&?(dSv|pgMB>fu3VRlH6Zpu# > f*A# > zCzRL&701_;yP(AWr<h+)?toekqFImSkM5FL2Foi@OZJS@GV_X>&Ryu$T- > SbSPG4TA > zOwWcn$wWL+PoAfk2@)q05iu&}iN%Q^Vln~|qC%cf95HYA*VCg~qq*{35tNa > {PeRfd > zoA{fMXh!yV{587|@_UXfm&z@UwVeB~mvZi-@6%|Ia9`C- > Fu+~9AtL#ZyKP?w6@tV4 > zV$Qu}!8rHVhyV<-7jo_m>}IMj=iH- > +p@)w9ZokUL&UT9Z4#4&2)>83Ja_$WW!vCMa > zK<0t#&tx(Io=9<Zbp?1L#mf3RD5UGFmTa)fjB6~joB1{Kt_#a`r)!<- > &~%h$?2ViM > zp_9*z+h^80J0~VOyB!>6(qU%WSW{b(Te;MvEm<Oq5G6~(o*x^e9)Ml&16uA > z2bX_O > zBhpD&p8SpmsyKAeKS&1yKhnXYQ5*0?XbT+g*n*g?b^vj)v9q6_5U5@#1SkY > n90Jpv > zc~hMGfB*e2-+lY- > A0R3^9zM>wfBw(E{ps=Jzrr?ioO_`#B2>rOpPc;HkMqyNH^sRR > z(hE+#$65Dm_B?9(T@2XsoHbJmjN;tu?l5mp-)OEt)so*&4B7TNoq$Y- > )`I8w+BM|c > z<N6#a_rBt+;+Z!WMm1CK7sIx1hP7?#3Pq+Q<eM8>mAXceClP3`tIsJ)B}oEb?X > adt > zslX%xPyGMHZr}9}0MMaTEm!Q3@Fs>dXO%~=42eK9qVC2pNtz%?`#W`uLM > Dk9uyBVv > z<Np4DFvAp?ip+_dnogx0+a=koxv4ydm5CAseCW`sI7B*(jr()K#BI$5Wd- > c_4egNT > zV`U8{kq9+fr3yPL+7{qOjPMSYqYFtp4nvx_p;4*dQ_8Sy+N+vN>IUeXrn#l;z$!$ > d > z01xe``a>clFFd5X_X4;8PPI#OMlDz7!;sYK6UtJBL~~W$g~>#5f{=+@noG)RY_Gs > w > z=fL&D=g^`)rYusV!Gjl+RoG5R2n?h{A(x~IxD(ek=apqxx`=~2d^XO7C|%QbsLP > dk > zio}Ugc(7cNi>1IYFG4J11t>h)sjkElL>mZ)`*04{$RfPdr$Vyi1X3tbD49WEIV=q` > zQ=^(!ECTJrhcCyp1=o92T- > 3a!N<8CVv*Ga3b4ka!rS63eNq2h=oZhPNIk;YOaro%v > z_|}km5Bcy=kviq<>%a9la;7`8DeM>vb4>f9?@&u@ov&;|o^ohUm*A{d4Fjw1 > %j@Ky > zMCFXa(JQ6rV&CVMG4|Z+m$t^#`5bb~s~OmHA- > LYX;<bYQp~{bAn*wUq7b{h1C&G@p > z>|M9*MqgpemRi<3E;*myQ1qv({NHnxX|BpIMK!Q182cJJ(oaTIxJevD*9P`|D0 > tsX > z=91T|k#;4XVabvFzJYSJ@C3WmNixz^)|5~aBy- > Jp@M%h8Q1yl)r@ehc2fLG6ILDYp > z?fr)@#5DL- > F$*qtNb95Jfd`#ad#@ZhA9dWPjG1@7ub?BY(Yu_H*VZdNFFff}?wotN > zY45uc7(0g%JKSI1nRYs$((S;CT{zUlDFl`Q0&{%=2Ye3Jw3xtSs6JodL_C4R*OvqT > z;L|r)KHlDJ?@X|0p1?7i4^L9=SI^si{p>MF%Ke&o8^Z+rR1<}ONd#t5?w=W%Sx > Wer > zZ#$zfR$BFCoO|LqGx%@RY)Ydr`2Vj1l56h=Su{P6I>d2+39?{fAqRhL54R3aDdW > >6 > z!JDVs>Ur~kmIyiffsvfjmG-_~4)eu1@wSi?pVfZl{z7o#7aAjTTzj(p*W}ydV^f@a > qVz28}Gm3Nns>o4(ixvS(_KeN(><!x&?F8o-7{$3?=x@yz_y0fSzd?Qg > > literal 0 > HcmV?d00001 > > diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca9888 > b/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca9888 > new file mode 100644 > index > 0000000000000000000000000000000000000000..f5a05d4cbc760fc44326fad52a > e4f86ad231b7d3 > GIT binary patch > literal 12168 > zcmeHNTTl~M7(R(OqC#bt0CI8VCRq?dSgfvG1OiG*maBmh1m&iNl}i+)V7zv!C > eD(i > zAc{&9BQR7UWf-PIZ9CRstT>}iANt@- > U;5BzAFSi}Qqr@D%T3XwNb6<)&Drz+|M|cF > zob&AlcKOLqPm4)Y%HyPp7+G#wK?bO+s{>GKW7#tRiLg~3Y)sZv)kIg;)x=b(Yc > w%6 > z)yY!3RoPH+pqe$~HbysB9H^<NZ%WRjVq^p%mBwt%&Q7lrKzuOF6&(BLF9H > F&p{T`# > zvUz>}076g>z`- > wstO>jT5XQ5LaOo1Zn=4gSfK3HJe0==VCr<<lkq5BZY$;q@BASbE > z+WviRq{%*$fX#24J2t<)%04uH- > vjQ&ad5Hh8d=?cCFf!Ll%+zu2n2#9oB%LvpYhF` > z8JSwy3VTv^-ryI<%vo4{cD9t+=G<UsY>`L=*v5&kuP<O5CobBaP&nxO- > m~}2wEX+s > zv_f$S%>$gFi)U$3SaK#QAHy@iGr%+8Dg%8+0dN- > xgl_Ke0~KfRRCzUH`t`R*Z0sW& > z`%HDyCW4JUIDC^$W_xHWx2*u9pa&kDtbos8=U^*>vHiC8sd$sAxkRa?wvo > Wg%l(NX > znv7f*78<%18lq*- > o=;BtK+WM}oohUn3EkZOhQ4L+;T7V`9e7Vq;S2npJtajBUqFDj > zw<G7<JZlCuhC!H6bIdTvHa2(k42g=uBQT70ynEWKct9`&NyE~RI4lm)96WUFE4 > `tk > z>tzKby^tSWQcw()p!ZQE01J==P+pi9vKo_NGKuWI49UW>Bw17{mWs$R0wW > ~EeF90q > z5+n(f6q6z(Hnj+|<<;ucnv#;HR>i9?T_0yC@y5I#dn18Zpd^q=$I>6CBMM9*QB > d(% > z{Ns2e5lfULQjUu- > ^K75WLH(kiUv=*;)W;awdq&2_A56bp%+}tNpRv;Is%A2Ob(GdZ > zcgodd;p%8+fYzyM$t*n1d_$|JwekWo^*IzE#>Ig7mhNBy_$F;1eO}cH0a45l- > KJ_F > z6}XhKXpQs<xssIG0XPe=(5F@PWHwGP*J&e!Dp#+E8l!3?^YBm2L)tU+VfpqKf > JiY8 > z%mZ43N- > bC6(M&(BhfoTSgGuyo2AIS;%oykfm6D8~T9UbkG13~=W&TF1qg&((G65#h > z(TC)@WU}?DxlOC4OXLzeAW|F!%oe7D- > p>M<t6BqnRGv+4v0i5wx?WXC61T3IPcluk > zQjR<JAQl7bAY+1qd88E1pr>2qS>$GGA9ISXVSNt=tzR>>bhe6c0HSbU?T1S`0JF > uJ > zd$nzFh8!~Smc^{s*3!G=<ikFzo}p=lN@@p0;gN5;OtZ%M*Oggx%wzB@%|py > AH_y^6 > zI_5EWmgXUbck>LqhJo`}_O{11ui1^{cXw`WiB|g;dL(^$?sFYp>tFUs*2V5py- > d5N > z!l&TImBtRD8LL9`ht4ZnC3}MkJvaAu?`xAZ1nu- > v+_cmiKRXe;Tco^dq0cH#hu8a+ > zbsFW(v3rA*o(aPj4>Jjk;gvplotI0_q#O>aLbspkRvA)GtW}Ft{hf{aP4%HWeW`Iv > znLef=Xcv+_G2Cj- > F~lBOrR?shHYOewYf$Cgu0|cz60*ZbarUB0mwX7u<&F>Kw8d%z > z)o95jOGQV*v55VM@~|QQXxJ{_Y|kwhE>$zB+V%B5h2M{~UW+}6HF;H<FYh > )b9TC@~ > zd5pfS6)*M6TDAFfXYncWAYS90_ru^9X6X^E7Ts~Xzsk7fc;o@Ju(z$@sI+2D4w > 5)} > zp;@1!C2G-3W9L47+My`gU-cSl`5~SGo`H9qfu+lquk>7nc>DPI2hM&kb65*q{;;l` > z^qM%5M_}vLg~Lx+Xh?8aNJwZ%5pZWKqrte8OqJ&qm#Z}`$91Nzo`K=9pC=|J > xV0>F > zerNE0gdegN%_K6BTyzt$2}wcSIROQg?Us@8nP=|R- > ?jebIhJ$s*5+_#uY3&80L#F$ > zXV0EKefrl7nZt`yf3Jp^w;eZU86TTTm8zN12LQmnh3Of6Ft^8{L_~y#hlcVR&%u > 9x > zAAD@zM}EK44A_P}L~g=rP~0_eM*#o*?L3sLP`HROC=2m%c^0duis28}p3!^r_ > 2P(i > z;s0lIRPG$LI!ASm%2O7XmRGA8)7h@>p5B4M;nA_5Zr{20!1aL{bv)OeT;H2$V6 > THx > zsE(_I+H0VcOvhD0?e$NJ&~X(|*GZfg@!_-k-rNQs)<T`B8Rr!3++#R*x!?NTt- > JH- > z9~LXqyAe%_kRU8b5=4nW#$*OUVU&cTGQft(4M-A}BuSz+ytVi1=~- > RTd<kC!L$?vz > ZkQ{U)u@TvVmRw|ymvb!E@4dy$`ws~Q%FO@( > > literal 0 > HcmV?d00001 > > diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile > index 4006123..6bb5ded 100644 > --- a/target/linux/ipq40xx/Makefile > +++ b/target/linux/ipq40xx/Makefile > @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=ipq40xx > BOARDNAME:=Qualcomm Atheros IPQ40XX -FEATURES:=squashfs fpu > ramdisk nand > +FEATURES:=squashfs fpu ramdisk nand boot-part rootfs-part > CPU_TYPE:=cortex-a7 > CPU_SUBTYPE:=neon-vfpv4 > SUBTARGETS:=generic mikrotik > diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network > b/target/linux/ipq40xx/base-files/etc/board.d/02_network > index a675acc..ae286c1 100644 > --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network > +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network > @@ -101,6 +101,11 @@ ipq40xx_setup_interfaces() > ucidef_add_switch "switch0" \ > "0u@eth0" "3:lan" "4:lan" > ;; > + glinet,gl-b2200-emmc) > + ucidef_set_interfaces_lan_wan "eth0" "eth1" > + ucidef_add_switch "switch0" \ > + "0u@eth0" "1:lan" "2:lan" "3:lan" "5:lan" "0u@eth1" > "4:wan" > + ;; > mobipromo,cm520-79f) > ucidef_add_switch "switch0" \ > "0u@eth0" "3:lan:2" "4:lan:1" > diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11- > ath10k-caldata b/target/linux/ipq40xx/base- > files/etc/hotplug.d/firmware/11-ath10k-caldata > index 87876ad..8fc1d6a 100644 > --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k- > caldata > +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-c > +++ aldata > @@ -40,6 +40,7 @@ case "$FIRMWARE" in > plasmacloud,pa2200) > caldata_extract "0:ART" 0x9000 0x2f20 > ;; > + glinet,gl-b2200-emmc |\ > linksys,ea8300 |\ > linksys,mr8300) > caldata_extract "ART" 0x9000 0x2f20 > @@ -57,6 +58,7 @@ case "$FIRMWARE" in > ezviz,cs-w3-wd1200g-eup |\ > glinet,gl-ap1300 |\ > glinet,gl-b1300 |\ > + glinet,gl-b2200-emmc |\ > glinet,gl-s1300 |\ > linksys,ea6350v3 |\ > mobipromo,cm520-79f |\ > @@ -170,6 +172,7 @@ case "$FIRMWARE" in > ezviz,cs-w3-wd1200g-eup |\ > glinet,gl-ap1300 |\ > glinet,gl-b1300 |\ > + glinet,gl-b2200-emmc |\ > glinet,gl-s1300 |\ > linksys,ea6350v3 |\ > mobipromo,cm520-79f |\ > diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl- > b2200-emmc.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom- > ipq4019-gl-b2200-emmc.dts > new file mode 100644 > index 0000000..8c8bfda > --- /dev/null > +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200 > +++ -emmc.dts > @@ -0,0 +1,366 @@ > +// SPDX-License-Identifier: GPL-2.0-only OR MIT > + > +#include "qcom-ipq4019.dtsi" > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > +#include <dt-bindings/soc/qcom,tcsr.h> > + > +/ { > + model = "GL.iNet GL-B2200-EMMC"; > + compatible = "glinet,gl-b2200-emmc"; > + > + memory { > + device_type = "memory"; > + reg = <0x80000000 0x10000000>; > + }; > + > + chosen { > + bootargs-append = " root=/dev/mmcblk0p2 rw rootwait > clk_ignore_unused"; > + }; > + > + soc { > + rng@22000 { > + status = "okay"; > + }; > + > + mdio@90000 { > + status = "okay"; > + }; > + > + ess-psgmii@98000 { > + status = "okay"; > + }; > + > + tcsr@1949000 { > + compatible = "qcom,tcsr"; > + reg = <0x1949000 0x100>; > + qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; > + }; > + > + tcsr@194b000 { > + /* select hostmode */ > + compatible = "qcom,tcsr"; > + reg = <0x194b000 0x100>; > + qcom,usb-hsphy-mode-select = > <TCSR_USB_HSPHY_HOST_MODE>; > + status = "okay"; > + }; > + > + ess_tcsr@1953000 { > + compatible = "qcom,tcsr"; > + reg = <0x1953000 0x1000>; > + qcom,ess-interface-select = <TCSR_ESS_PSGMII>; > + }; > + > + tcsr@1957000 { > + compatible = "qcom,tcsr"; > + reg = <0x1957000 0x100>; > + qcom,wifi_noc_memtype_m0_m2 = > <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; > + }; > + > + crypto@8e3a000 { > + status = "okay"; > + }; > + > + ess-switch@c000000 { > + status = "okay"; > + switch_lan_bmp = <0x2e>; > + switch_wan_bmp = <0x10>; > + }; > + > + edma@c080000 { > + status = "okay"; > + }; > + }; > + > + keys { > + compatible = "gpio-keys"; > + > + wps { > + label = "wps"; > + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_WPS_BUTTON>; > + linux,input-type = <1>; > + }; > + > + reset { > + label = "reset"; > + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; > + linux,code = <KEY_RESTART>; > + linux,input-type = <1>; > + }; > + }; > + > + leds { > + compatible = "gpio-leds"; > + > + blue_power { For node names, this is typically inverted (power_blue etc.) > + label = "blue:power"; > + gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>; > + default-state = "on"; > + }; > + blue_internet { > + label = "blue:internet"; > + gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>; > + }; > + white_power { > + label = "white:power"; > + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; > + default-state = "off"; default off is default an can be removed here. > + }; > + white_internet { > + label = "white:internet"; > + gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; > + default-state = "off"; > + }; > + }; > +}; > + > +&gmac1 { > + qcom,phy_mdio_addr = <3>; > + qcom,poll_required = <1>; > + qcom,forced_speed = <1000>; > + qcom,forced_duplex = <1>; > + vlan_tag = <2 0x10>; > +}; > + > +&gmac0 { > + vlan_tag = <1 0x2e>; > +}; > + > +&vqmmc { > + status = "okay"; > +}; > + > +&sdhci { > + status = "okay"; > + pinctrl-0 = <&sd_pins>; > + pinctrl-names = "default"; > + cd-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; > + vqmmc-supply = <&vqmmc>; > +}; > + > +&blsp_dma { > + status = "okay"; > +}; > + > +&cryptobam { > + status = "okay"; > +}; > + > +&blsp1_spi1 { > + pinctrl-0 = <&spi_0_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; > + > + flash@0 { > + compatible = "jedec,spi-nor"; > + reg = <0>; > + spi-max-frequency = <24000000>; > + > + partitions { > + compatible = "fixed-partitions"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + partition@0 { > + label = "SBL1"; > + reg = <0x0 0x40000>; > + read-only; > + }; > + > + partition@40000 { > + label = "MIBIB"; > + reg = <0x40000 0x20000>; > + read-only; > + }; > + > + partition@60000 { > + label = "QSEE"; > + reg = <0x60000 0x60000>; > + read-only; > + }; > + > + partition@c0000 { > + label = "CDT"; > + reg = <0xc0000 0x10000>; > + read-only; > + }; > + > + partition@d0000 { > + label = "DDRPARAMS"; > + reg = <0xd0000 0x10000>; > + read-only; > + }; > + > + partition@e0000 { > + label = "APPSBLENV"; > + reg = <0xe0000 0x10000>; > + read-only; > + }; > + > + partition@f0000 { > + label = "APPSBL"; > + reg = <0xf0000 0x80000>; > + read-only; > + }; > + > + partition@170000 { > + label = "ART"; > + reg = <0x170000 0x10000>; > + read-only; > + }; > + }; > + }; > +}; > + > +&blsp1_spi2 { > + pinctrl-0 = <&spi_1_pins>; > + pinctrl-names = "default"; > + status = "okay"; > + > + spidev1: spi@0 { > + compatible = "siliconlabs,si3210"; > + reg = <0>; > + spi-max-frequency = <24000000>; > + }; > +}; > + > +&blsp1_uart1 { > + pinctrl-0 = <&serial_pins>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&blsp1_uart2 { > + pinctrl-0 = <&serial_1_pins>; > + pinctrl-names = "default"; > + status = "okay"; > +}; > + > +&tlmm { > + serial_pins: serial_pinmux { > + mux { > + pins = "gpio16", "gpio17"; > + function = "blsp_uart0"; > + bias-disable; > + }; > + }; > + > + serial_1_pins: serial1_pinmux { > + mux { > + pins = "gpio8", "gpio9", > + "gpio10", "gpio11"; > + function = "blsp_uart1"; > + bias-disable; > + }; > + }; > + > + spi_0_pins: spi_0_pinmux { > + pinmux { > + function = "blsp_spi0"; > + pins = "gpio13", "gpio14", "gpio15"; > + }; > + pinmux_cs { > + function = "gpio"; > + pins = "gpio12"; > + }; > + pinconf { > + pins = "gpio13", "gpio14", "gpio15"; > + drive-strength = <12>; > + bias-disable; > + }; > + pinconf_cs { > + pins = "gpio12"; > + drive-strength = <2>; > + bias-disable; > + output-high; > + }; > + }; > + > + spi_1_pins: spi_1_pinmux { > + mux { > + pins = "gpio44", "gpio46", "gpio47"; > + function = "blsp_spi1"; > + bias-disable; > + }; > + cs { > + pins = "gpio45"; > + function = "gpio"; > + bias-pull-up; > + }; > + reset { > + pins = "gpio43"; > + function = "gpio"; > + output-high; > + }; > + mux_2 { > + pins = "gpio35"; > + function = "gpio"; > + output-high; > + }; > + host_int { > + pins = "gpio2"; > + function = "gpio"; > + input; > + }; > + wake { > + pins = "gpio48"; > + function = "gpio"; > + output-high; > + }; > + }; > + > + sd_pins: sd_pins { > + pinmux { > + function = "sdio"; > + pins = "gpio23", "gpio24", "gpio25", "gpio26", > + "gpio29", "gpio30", "gpio31", "gpio32"; > + drive-strength = <10>; > + }; > + > + pinmux_sd_clk { > + function = "sdio"; > + pins = "gpio27"; > + drive-strength = <16>; > + }; > + > + pinmux_sd7 { > + function = "sdio"; > + pins = "gpio28"; > + drive-strength = <10>; > + bias-disable; > + }; > + }; > + > +}; > + > +&pcie0 { > + status = "okay"; > + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; > + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; > + > + bridge@0,0 { > + reg = <0x00000000 0 0 0 0>; > + #address-cells = <3>; > + #size-cells = <2>; > + ranges; > + > + wifi2: wifi@1,0 { > + status = "okay"; > + compatible = "qcom,ath10k"; > + reg = <0x00010000 0 0 0 0>; > + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; > + }; > + }; > +}; > + > +&wifi0 { > + status = "okay"; > + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; }; > + > +&wifi1 { > + status = "okay"; > + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; }; > diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl- > s1300.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl- > s1300.dts > index fa859b7..66a6a01 100644 > --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl- > s1300.dts > +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-s1300 > +++ .dts > @@ -9,13 +9,6 @@ > model = "GL.iNet GL-S1300"; > compatible = "glinet,gl-s1300"; > > - aliases { > - led-boot = &led_power; > - led-failsafe = &led_power; > - led-running = &led_power; > - led-upgrade = &led_power; > - }; > - Please do not add unrelated changes, particularly if the make other devices worse. > memory { > device_type = "memory"; > reg = <0x80000000 0x10000000>; > diff --git a/target/linux/ipq40xx/image/generic.mk > b/target/linux/ipq40xx/image/generic.mk > index 68e5655..141fa94 100644 > --- a/target/linux/ipq40xx/image/generic.mk > +++ b/target/linux/ipq40xx/image/generic.mk > @@ -81,6 +81,17 @@ define Build/qsdk-ipq-factory-nand-askey > @mv $@.new $@ > endef > > +define Build/qsdk-ipq-app-gpt > + cp $@ $@.tmp 2>/dev/null || true > + ptgen -g -o $@.tmp -a 1 -l 1024 \ > + -t 0x2e -N 0:HLOS -r -p 32M \ > + -t 0x83 -N rootfs -r -p 128M \ > + -N rootfs_data -p 512M \ > + -N user_data -p 6766M > + cat $@.tmp >> $@ > + rm $@.tmp > +endef > + > define Build/SenaoFW > -$(STAGING_DIR_HOST)/bin/mksenaofw \ > -n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \ @@ -516,6 > +527,22 @@ define Device/glinet_gl-s1300 endef TARGET_DEVICES += > glinet_gl-s1300 > > +define Device/glinet_gl-b2200-emmc > + $(call Device/FitImage) > + DEVICE_VENDOR := GL.iNet > + DEVICE_MODEL := GL-B2200-EMMC Probably EMMC is a DEVICE_VARIANT? > + SOC := qcom-ipq4019 > + DEVICE_DTS_CONFIG := config@ap.dk04.1-c3 > + KERNEL_INITRAMFS_SUFFIX := -recovery.itb > + IMAGES := sdcard.img.gz > + IMAGE/sdcard.img.gz := qsdk-ipq-app-gpt |\ > + pad-to 1024k | append-kernel |\ > + pad-to 33792k | append-rootfs |\ > + append-metadata | gzip Fill up the lines until max. 74 characters and then just use two tabs for hanging indent. > + DEVICE_PACKAGES := ipq-wifi-glinet_gl-b2200-emmc kmod-fs-ext4 > kmod-mmc > +kmod-spi-dev mkf2fs e2fsprogs kmod-fs-f2fs endef TARGET_DEVICES += > +glinet_gl-b2200-emmc > + > define Device/linksys_ea6350v3 > # The Linksys EA6350v3 has a uboot bootloader that does not > # support either booting lzma kernel images nor booting UBI diff --git > a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch > b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch > index 0447fb6..0685fb0 100644 > --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch > +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch > @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> > > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > -@@ -837,11 +837,61 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > +@@ -837,11 +837,62 @@ dtb-$(CONFIG_ARCH_QCOM) += \ > qcom-apq8074-dragonboard.dtb \ > qcom-apq8084-ifc6540.dtb \ > qcom-apq8084-mtp.dtb \ > @@ -52,6 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org> > + qcom-ipq4019-fritzbox-7530.dtb \ > + qcom-ipq4019-fritzrepeater-1200.dtb \ > + qcom-ipq4019-fritzrepeater-3000.dtb \ > ++ qcom-ipq4019-gl-b2200-emmc.dtb \ Broken indent. Best Adrian > + qcom-ipq4019-map-ac2200.dtb \ > + qcom-ipq4019-mr8300.dtb \ > + qcom-ipq4019-e2600ac-c1.dtb \ > -- > 2.7.4 > > > > > _______________________________________________ > openwrt-devel mailing list > openwrt-devel@lists.openwrt.org > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index e63e3b3..3d02048 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -39,6 +39,7 @@ ALLWIFIBOARDS:= \ engenius_emr3500 \ ezviz_cs-w3-wd1200g-eup \ glinet_gl-ap1300 \ + glinet_gl-b2200-emmc \ glinet_gl-s1300 \ linksys_ea8300 \ linksys_mr8300-v0 \ @@ -125,6 +126,7 @@ $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) $(eval $(call generate-ipq-wifi-package,engenius_emr3500,EnGenius EMR3500)) $(eval $(call generate-ipq-wifi-package,ezviz_cs-w3-wd1200g-eup,EZVIZ CS-W3-WD1200G EUP)) $(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-b2200-emmc,GL.iNet GL-B2200-EMMC)) $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 b/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..c4721328e1bbaad8722b3b5f74c88af6c8c5214d GIT binary patch literal 24316 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 literal 0 HcmV?d00001 diff --git a/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca9888 b/package/firmware/ipq-wifi/board-glinet_gl-b2200-emmc.qca9888 new file mode 100644 index 0000000000000000000000000000000000000000..f5a05d4cbc760fc44326fad52ae4f86ad231b7d3 GIT binary patch literal 12168 zcmeHNTTl~M7(R(OqC#bt0CI8VCRq?dSgfvG1OiG*maBmh1m&iNl}i+)V7zv!CeD(i zAc{&9BQR7UWf-PIZ9CRstT>}iANt@-U;5BzAFSi}Qqr@D%T3XwNb6<)&Drz+|M|cF zob&AlcKOLqPm4)Y%HyPp7+G#wK?bO+s{>GKW7#tRiLg~3Y)sZv)kIg;)x=b(Ycw%6 z)yY!3RoPH+pqe$~HbysB9H^<NZ%WRjVq^p%mBwt%&Q7lrKzuOF6&(BLF9HF&p{T`# zvUz>}076g>z`-wstO>jT5XQ5LaOo1Zn=4gSfK3HJe0==VCr<<lkq5BZY$;q@BASbE z+WviRq{%*$fX#24J2t<)%04uH-vjQ&ad5Hh8d=?cCFf!Ll%+zu2n2#9oB%LvpYhF` z8JSwy3VTv^-ryI<%vo4{cD9t+=G<UsY>`L=*v5&kuP<O5CobBaP&nxO-m~}2wEX+s zv_f$S%>$gFi)U$3SaK#QAHy@iGr%+8Dg%8+0dN-xgl_Ke0~KfRRCzUH`t`R*Z0sW& z`%HDyCW4JUIDC^$W_xHWx2*u9pa&kDtbos8=U^*>vHiC8sd$sAxkRa?wvoWg%l(NX znv7f*78<%18lq*-o=;BtK+WM}oohUn3EkZOhQ4L+;T7V`9e7Vq;S2npJtajBUqFDj zw<G7<JZlCuhC!H6bIdTvHa2(k42g=uBQT70ynEWKct9`&NyE~RI4lm)96WUFE4`tk z>tzKby^tSWQcw()p!ZQE01J==P+pi9vKo_NGKuWI49UW>Bw17{mWs$R0wW~EeF90q z5+n(f6q6z(Hnj+|<<;ucnv#;HR>i9?T_0yC@y5I#dn18Zpd^q=$I>6CBMM9*QBd(% z{Ns2e5lfULQjUu-^K75WLH(kiUv=*;)W;awdq&2_A56bp%+}tNpRv;Is%A2Ob(GdZ zcgodd;p%8+fYzyM$t*n1d_$|JwekWo^*IzE#>Ig7mhNBy_$F;1eO}cH0a45l-KJ_F z6}XhKXpQs<xssIG0XPe=(5F@PWHwGP*J&e!Dp#+E8l!3?^YBm2L)tU+VfpqKfJiY8 z%mZ43N-bC6(M&(BhfoTSgGuyo2AIS;%oykfm6D8~T9UbkG13~=W&TF1qg&((G65#h z(TC)@WU}?DxlOC4OXLzeAW|F!%oe7D-p>M<t6BqnRGv+4v0i5wx?WXC61T3IPcluk zQjR<JAQl7bAY+1qd88E1pr>2qS>$GGA9ISXVSNt=tzR>>bhe6c0HSbU?T1S`0JFuJ zd$nzFh8!~Smc^{s*3!G=<ikFzo}p=lN@@p0;gN5;OtZ%M*Oggx%wzB@%|pyAH_y^6 zI_5EWmgXUbck>LqhJo`}_O{11ui1^{cXw`WiB|g;dL(^$?sFYp>tFUs*2V5py-d5N z!l&TImBtRD8LL9`ht4ZnC3}MkJvaAu?`xAZ1nu-v+_cmiKRXe;Tco^dq0cH#hu8a+ zbsFW(v3rA*o(aPj4>Jjk;gvplotI0_q#O>aLbspkRvA)GtW}Ft{hf{aP4%HWeW`Iv znLef=Xcv+_G2Cj-F~lBOrR?shHYOewYf$Cgu0|cz60*ZbarUB0mwX7u<&F>Kw8d%z z)o95jOGQV*v55VM@~|QQXxJ{_Y|kwhE>$zB+V%B5h2M{~UW+}6HF;H<FYh)b9TC@~ zd5pfS6)*M6TDAFfXYncWAYS90_ru^9X6X^E7Ts~Xzsk7fc;o@Ju(z$@sI+2D4w5)} zp;@1!C2G-3W9L47+My`gU-cSl`5~SGo`H9qfu+lquk>7nc>DPI2hM&kb65*q{;;l` z^qM%5M_}vLg~Lx+Xh?8aNJwZ%5pZWKqrte8OqJ&qm#Z}`$91Nzo`K=9pC=|JxV0>F zerNE0gdegN%_K6BTyzt$2}wcSIROQg?Us@8nP=|R-?jebIhJ$s*5+_#uY3&80L#F$ zXV0EKefrl7nZt`yf3Jp^w;eZU86TTTm8zN12LQmnh3Of6Ft^8{L_~y#hlcVR&%u9x zAAD@zM}EK44A_P}L~g=rP~0_eM*#o*?L3sLP`HROC=2m%c^0duis28}p3!^r_2P(i z;s0lIRPG$LI!ASm%2O7XmRGA8)7h@>p5B4M;nA_5Zr{20!1aL{bv)OeT;H2$V6THx zsE(_I+H0VcOvhD0?e$NJ&~X(|*GZfg@!_-k-rNQs)<T`B8Rr!3++#R*x!?NTt-JH- z9~LXqyAe%_kRU8b5=4nW#$*OUVU&cTGQft(4M-A}BuSz+ytVi1=~-RTd<kC!L$?vz ZkQ{U)u@TvVmRw|ymvb!E@4dy$`ws~Q%FO@( literal 0 HcmV?d00001 diff --git a/target/linux/ipq40xx/Makefile b/target/linux/ipq40xx/Makefile index 4006123..6bb5ded 100644 --- a/target/linux/ipq40xx/Makefile +++ b/target/linux/ipq40xx/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk ARCH:=arm BOARD:=ipq40xx BOARDNAME:=Qualcomm Atheros IPQ40XX -FEATURES:=squashfs fpu ramdisk nand +FEATURES:=squashfs fpu ramdisk nand boot-part rootfs-part CPU_TYPE:=cortex-a7 CPU_SUBTYPE:=neon-vfpv4 SUBTARGETS:=generic mikrotik diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index a675acc..ae286c1 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -101,6 +101,11 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "3:lan" "4:lan" ;; + glinet,gl-b2200-emmc) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" \ + "0u@eth0" "1:lan" "2:lan" "3:lan" "5:lan" "0u@eth1" "4:wan" + ;; mobipromo,cm520-79f) ucidef_add_switch "switch0" \ "0u@eth0" "3:lan:2" "4:lan:1" diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 87876ad..8fc1d6a 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -40,6 +40,7 @@ case "$FIRMWARE" in plasmacloud,pa2200) caldata_extract "0:ART" 0x9000 0x2f20 ;; + glinet,gl-b2200-emmc |\ linksys,ea8300 |\ linksys,mr8300) caldata_extract "ART" 0x9000 0x2f20 @@ -57,6 +58,7 @@ case "$FIRMWARE" in ezviz,cs-w3-wd1200g-eup |\ glinet,gl-ap1300 |\ glinet,gl-b1300 |\ + glinet,gl-b2200-emmc |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ @@ -170,6 +172,7 @@ case "$FIRMWARE" in ezviz,cs-w3-wd1200g-eup |\ glinet,gl-ap1300 |\ glinet,gl-b1300 |\ + glinet,gl-b2200-emmc |\ glinet,gl-s1300 |\ linksys,ea6350v3 |\ mobipromo,cm520-79f |\ diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200-emmc.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200-emmc.dts new file mode 100644 index 0000000..8c8bfda --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-gl-b2200-emmc.dts @@ -0,0 +1,366 @@ +// SPDX-License-Identifier: GPL-2.0-only OR MIT + +#include "qcom-ipq4019.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> +#include <dt-bindings/soc/qcom,tcsr.h> + +/ { + model = "GL.iNet GL-B2200-EMMC"; + compatible = "glinet,gl-b2200-emmc"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; + }; + + chosen { + bootargs-append = " root=/dev/mmcblk0p2 rw rootwait clk_ignore_unused"; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>; + status = "okay"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = <TCSR_ESS_PSGMII>; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + switch_lan_bmp = <0x2e>; + switch_wan_bmp = <0x10>; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + keys { + compatible = "gpio-keys"; + + wps { + label = "wps"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = <KEY_WPS_BUTTON>; + linux,input-type = <1>; + }; + + reset { + label = "reset"; + gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RESTART>; + linux,input-type = <1>; + }; + }; + + leds { + compatible = "gpio-leds"; + + blue_power { + label = "blue:power"; + gpios = <&tlmm 57 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + blue_internet { + label = "blue:internet"; + gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>; + }; + white_power { + label = "white:power"; + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + white_internet { + label = "white:internet"; + gpios = <&tlmm 66 GPIO_ACTIVE_LOW>; + default-state = "off"; + }; + }; +}; + +&gmac1 { + qcom,phy_mdio_addr = <3>; + qcom,poll_required = <1>; + qcom,forced_speed = <1000>; + qcom,forced_duplex = <1>; + vlan_tag = <2 0x10>; +}; + +&gmac0 { + vlan_tag = <1 0x2e>; +}; + +&vqmmc { + status = "okay"; +}; + +&sdhci { + status = "okay"; + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>; + vqmmc-supply = <&vqmmc>; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@40000 { + label = "MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + + partition@60000 { + label = "QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + + partition@c0000 { + label = "CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + + partition@d0000 { + label = "DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + + partition@e0000 { + label = "APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + + partition@f0000 { + label = "APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + + partition@170000 { + label = "ART"; + reg = <0x170000 0x10000>; + read-only; + }; + }; + }; +}; + +&blsp1_spi2 { + pinctrl-0 = <&spi_1_pins>; + pinctrl-names = "default"; + status = "okay"; + + spidev1: spi@0 { + compatible = "siliconlabs,si3210"; + reg = <0>; + spi-max-frequency = <24000000>; + }; +}; + +&blsp1_uart1 { + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart2 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&tlmm { + serial_pins: serial_pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + serial_1_pins: serial1_pinmux { + mux { + pins = "gpio8", "gpio9", + "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + }; + pinconf { + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinconf_cs { + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + + spi_1_pins: spi_1_pinmux { + mux { + pins = "gpio44", "gpio46", "gpio47"; + function = "blsp_spi1"; + bias-disable; + }; + cs { + pins = "gpio45"; + function = "gpio"; + bias-pull-up; + }; + reset { + pins = "gpio43"; + function = "gpio"; + output-high; + }; + mux_2 { + pins = "gpio35"; + function = "gpio"; + output-high; + }; + host_int { + pins = "gpio2"; + function = "gpio"; + input; + }; + wake { + pins = "gpio48"; + function = "gpio"; + output-high; + }; + }; + + sd_pins: sd_pins { + pinmux { + function = "sdio"; + pins = "gpio23", "gpio24", "gpio25", "gpio26", + "gpio29", "gpio30", "gpio31", "gpio32"; + drive-strength = <10>; + }; + + pinmux_sd_clk { + function = "sdio"; + pins = "gpio27"; + drive-strength = <16>; + }; + + pinmux_sd7 { + function = "sdio"; + pins = "gpio28"; + drive-strength = <10>; + bias-disable; + }; + }; + +}; + +&pcie0 { + status = "okay"; + perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + status = "okay"; + compatible = "qcom,ath10k"; + reg = <0x00010000 0 0 0 0>; + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; + }; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "GL-B2200-EMMC"; +}; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-s1300.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-s1300.dts index fa859b7..66a6a01 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-s1300.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4029-gl-s1300.dts @@ -9,13 +9,6 @@ model = "GL.iNet GL-S1300"; compatible = "glinet,gl-s1300"; - aliases { - led-boot = &led_power; - led-failsafe = &led_power; - led-running = &led_power; - led-upgrade = &led_power; - }; - memory { device_type = "memory"; reg = <0x80000000 0x10000000>; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 68e5655..141fa94 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -81,6 +81,17 @@ define Build/qsdk-ipq-factory-nand-askey @mv $@.new $@ endef +define Build/qsdk-ipq-app-gpt + cp $@ $@.tmp 2>/dev/null || true + ptgen -g -o $@.tmp -a 1 -l 1024 \ + -t 0x2e -N 0:HLOS -r -p 32M \ + -t 0x83 -N rootfs -r -p 128M \ + -N rootfs_data -p 512M \ + -N user_data -p 6766M + cat $@.tmp >> $@ + rm $@.tmp +endef + define Build/SenaoFW -$(STAGING_DIR_HOST)/bin/mksenaofw \ -n $(BOARD_NAME) -r $(VENDOR_ID) -p $(1) \ @@ -516,6 +527,22 @@ define Device/glinet_gl-s1300 endef TARGET_DEVICES += glinet_gl-s1300 +define Device/glinet_gl-b2200-emmc + $(call Device/FitImage) + DEVICE_VENDOR := GL.iNet + DEVICE_MODEL := GL-B2200-EMMC + SOC := qcom-ipq4019 + DEVICE_DTS_CONFIG := config@ap.dk04.1-c3 + KERNEL_INITRAMFS_SUFFIX := -recovery.itb + IMAGES := sdcard.img.gz + IMAGE/sdcard.img.gz := qsdk-ipq-app-gpt |\ + pad-to 1024k | append-kernel |\ + pad-to 33792k | append-rootfs |\ + append-metadata | gzip + DEVICE_PACKAGES := ipq-wifi-glinet_gl-b2200-emmc kmod-fs-ext4 kmod-mmc kmod-spi-dev mkf2fs e2fsprogs kmod-fs-f2fs +endef +TARGET_DEVICES += glinet_gl-b2200-emmc + define Device/linksys_ea6350v3 # The Linksys EA6350v3 has a uboot bootloader that does not # support either booting lzma kernel images nor booting UBI diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index 0447fb6..0685fb0 100644 --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin <john@phrozen.org> --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -837,11 +837,61 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -837,11 +837,62 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -52,6 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org> + qcom-ipq4019-fritzbox-7530.dtb \ + qcom-ipq4019-fritzrepeater-1200.dtb \ + qcom-ipq4019-fritzrepeater-3000.dtb \ ++ qcom-ipq4019-gl-b2200-emmc.dtb \ + qcom-ipq4019-map-ac2200.dtb \ + qcom-ipq4019-mr8300.dtb \ + qcom-ipq4019-e2600ac-c1.dtb \