From 0789a4db83aad1b8aaa33b381a075b28be73ad08 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Fri, 13 Aug 2021 19:04:57 +0200 Subject: [PATCH] ipq40xx: add Wallys DR40x9 support Signed-off-by: John Crispin --- .github/workflows/build-dev.yml | 2 +- ...41-ipq40xx-add-Wallys-DR40x9-support.patch | 641 ++++++++++++++++++ profiles/wallys_dr40x9.yml | 16 + 3 files changed, 658 insertions(+), 1 deletion(-) create mode 100644 patches/0041-ipq40xx-add-Wallys-DR40x9-support.patch create mode 100644 profiles/wallys_dr40x9.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 2583b7805..05e7ad899 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - target: ['cig_wf188', 'cig_wf194c', 'cig_wf160d', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_spw2ac1200', 'indio_um-305ac', 'linksys_e8450-ubi', 'linksys_ea8300', 'mikrotik_nand', 'tplink_cpe210_v3', 'tplink_cpe510_v3', 'tplink_eap225_outdoor_v1', 'tplink_ec420', 'tplink_ex227', 'tplink_ex228', 'tplink_ex447' ] + target: ['cig_wf188', 'cig_wf194c', 'cig_wf160d', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_spw2ac1200', 'indio_um-305ac', 'linksys_e8450-ubi', 'linksys_ea8300', 'mikrotik_nand', 'tplink_cpe210_v3', 'tplink_cpe510_v3', 'tplink_eap225_outdoor_v1', 'tplink_ec420', 'tplink_ex227', 'tplink_ex228', 'tplink_ex447', 'wallys_dr40x9' ] steps: - uses: actions/checkout@v2 diff --git a/patches/0041-ipq40xx-add-Wallys-DR40x9-support.patch b/patches/0041-ipq40xx-add-Wallys-DR40x9-support.patch new file mode 100644 index 000000000..c08091d4f --- /dev/null +++ b/patches/0041-ipq40xx-add-Wallys-DR40x9-support.patch @@ -0,0 +1,641 @@ +From 5a0366889960ae89594177854b77889cdf22ac63 Mon Sep 17 00:00:00 2001 +From: Robert Marko +Date: Fri, 13 Aug 2021 18:28:21 +0200 +Subject: [PATCH] ipq40xx: add Wallys DR40x9 support + +Adds support for the Wallys DR40x9 series boards. +They come in IPQ4019 and IPQ4029 versions. +IPQ4019/4029 only differ in that that IPQ4029 is the industrial version that is rated to higher temperatures. + +Specifications are: +* CPU: Qualcomm IPQ40x9 (4x ARMv7A Cortex A7) at 716 MHz +* RAM: 512 MB +* Storage: 2MB of SPI-NOR, 128 MB of parallel NAND +* USB 3.0 TypeA port for users +* MiniPCI-E with PCI-E 2.0 link +* MiniPCI-E for LTE modems with only USB2.0 link +* 2 SIM card slots that are selected via GPIO11 +* MicroSD card slot +* Ethernet: 2x GBe with 24~48V passive POE +* SFP port (Untested, I have no way to test it) +* DC Jack +* UART header +* WLAN: In-SoC 2x2 802.11b/g/n and 2x2 802.11a/n/ac +* 4x MMCX connectors for WLAN +* Reset button +* 8x LED-s + +Installation instructions: +Connect to UART, pins are like this: +-> 3.3V | TX | RX | GND + +Settings are 115200 8n1 + +Boot initramfs from TFTP: +tftpboot 0x84000000 openwrt-ipq40xx-generic-wallys_dr40x9-initramfs-fit-uImage.itb + +bootm + +Then copy the sysupgrade image to the /tmp folder and execute sysupgrade -n + +Signed-off-by: Robert Marko +--- + package/firmware/ipq-wifi/Makefile | 2 + + .../ipq-wifi/board-wallys_dr40x9.qca4019 | Bin 0 -> 24316 bytes + .../ipq40xx/base-files/etc/board.d/02_network | 3 +- + .../base-files/etc/board.d/03_gpio_switches | 3 + + .../etc/hotplug.d/firmware/11-ath10k-caldata | 6 +- + .../base-files/lib/upgrade/platform.sh | 1 + + .../arch/arm/boot/dts/qcom-ipq40x9-dr40x9.dts | 387 ++++++++++++++++++ + target/linux/ipq40xx/image/generic.mk | 13 + + .../901-arm-boot-add-dts-files.patch | 3 +- + 9 files changed, 414 insertions(+), 4 deletions(-) + create mode 100644 package/firmware/ipq-wifi/board-wallys_dr40x9.qca4019 + create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq40x9-dr40x9.dts + +diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile +index 87dcf9a769..192e8dcf7e 100644 +--- a/package/firmware/ipq-wifi/Makefile ++++ b/package/firmware/ipq-wifi/Makefile +@@ -49,6 +49,7 @@ ALLWIFIBOARDS:= \ + plasmacloud_pa2200 \ + qxwlan_e2600ac \ + cig_wf610d \ ++ wallys_dr40x9 \ + tp-link_ec420-g1 + + ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) +@@ -135,5 +136,6 @@ $(eval $(call generate-ipq-wifi-package,plasmacloud_pa2200,Plasma Cloud PA2200)) + $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC)) + $(eval $(call generate-ipq-wifi-package,cig_wf610d,CIG WF_610D)) + $(eval $(call generate-ipq-wifi-package,tp-link_ec420-g1,tp-link EC420-G1)) ++$(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9)) + + $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) +diff --git a/package/firmware/ipq-wifi/board-wallys_dr40x9.qca4019 b/package/firmware/ipq-wifi/board-wallys_dr40x9.qca4019 +new file mode 100644 +index 0000000000000000000000000000000000000000..9114eecbbdffb0c47192e9ea4d7b6055a1c4b470 +GIT binary patch +literal 24316 +zcmeHPdr(tX8b1jj>SE!BfCzYj@Qj53A;lmO0z?`h1&fLVSOls_QldNz4?`F1_@EFG +zfm$#`&@w2GrihG-4~WIu+8Jf`kNsn3|7bhg-R{h~s~zo5JF~mE=iYE338W?vrabN! +z&N<&X_xsNI&hMTi_ulg(Zzsfs#O)P^hoywXr^TfUfJ`O>P>Msb9Drz;3gqQG^NR|C +z3uKazcZwt>A(DeT!|+i93En)mkmf+M5(V-mf~-P$qdhDRO)OYUPsjq&I$s^59Em +zAQ=Bd)lglKl>`qCshX=LS-X>B#``cc*v5qpjSZDqqNHft;bGu5Fn(Qi7LM>%Qq=gT +z&_Rkj^ukVxvQoG~u)CJ(lB{%Y*tA2SVSKNsRYQ4&iQ!?=!4Qx6YpVgJ`DeDWT6-Gv +zE29ntW_YGdw3gK-%2)?n;>Y?+I}*b*>;K}#(PpdKs_Q39Iq +zGyzFLQ&=gY2sGkp1QLx#v!X@1lc1mDL+PMj@*G>XB_F5<^^^Z1MenO+Ue)NWvZ(56 +zxF#j%V9pXCQ6f#2r7|~UEtnp~ +zTszY}EXyOJoFe7OV*p@TrR*MgY+S-;-q=HLR&en0)ZjDpNcc3J6}*kq7J|XDT$Fl2 +z@c{yyzh~9~5Do$$KgSEQf&3s9iUAW=Hq*iZgW>7PFp@UdKDU*@$Z7QhJT3+Ncocv( +zdxXO001&hu0X)F7&0B{6sta{v4lJFV@J&a(NJw?HA@Fj@flj3!ggX#$cbRIt{v#-t +zp%C*Ng|e77Q6~Iw?H>8cR2dlH@Aqpa-OinEuTHl+C)&L?Gbit0k+Qk1y|cUL+ThU0 +z=-6iuzItr=0lj@Z%dT8kj5WabK}EEBVkZ>e0~N*B6T6`J{-=mtPwaqN4x&kq)sOCq +zSq7^sP;>T-Q!{c4n=V}H)!fv6X-Z#RsLalWK1D}7QBRhqhz?Vy +zJ)=+{;l8RFXMnqOLqzf*ciX-WDmaJxmpS+1CF9)Rzyr|BevxypXJ@FsnsbjL`W`y& +zyZt&FJKGudI{-IdT1v&=2u^s%0gQ9+J^j)j1=9_Cv;xK`e1It|Oy-%>!89~JZuQo+CvRPcDz +z20Z220>?315WCY3ATBm`_SOl3?1e;tL}1M!Fw2>rk8}T@fBf~^Z@&2xL`BEL$2j*d +z|MmC3JbCgr*k+1z&*O2zbe#REsek`qeIC9!oO^uN0q5K=P9vE1!NJzi=38JS=U#V* +zd3W|ka}BEIJU`KA+v{{3G96k=o?~lQpKp)pi=^E9i!!kX-D8gp?=WU-^Sxj6+rA#w +zwy7%=8RF2dZ)sKP8bz*{tG%hdpePk5a{aZ#njWP>D&~4(|0j0$USJS_4y|grVxO2b +zIixwSJSt5Wb2TICZmCq9$_>{3UfrUQiQ~E6n8VmaU?9NFq>2nh#^h~Hr&2E6Bi^pL +zt-K&D6AHL&=+LStCLG2m0-0d)uI7@m0`~icc1ZKFvPLQv^E6teN_tGVE65EW;azFA +zE+p*)3~BO~Mx{QXlu37KuWPQT8=!Nl=8m#MS|Jn$d1yz~AL1c-VIkeSAH)Q3s$H6M +zYPm8GhNM=XQkE*jn(OK=sZ1Eh4V}EBxuUF=?&rGe9GC&v99q=Jm4%8_c<_?4O1fJd +z3Ipj-$i*pK=HyMyMP->ZP3VU?d^W*^DBaL@sLPeP3c=(kJXo&CktV}1FGDQ(TofMd +zR98w9gj;Zj2XGFS$TGatCqpvl1d=F`D49TDH7pGiQzM(#ECTJrN3O=Uh17dgT-N+n +zB{&yYv*pOK3yCM0rS1g|iT8RAo!zPMJ-k_bdHC4X_}0*R5Bcy=p*s2e>%a3jdagU8 +zDg3y%)G_sozTy^soxf~Lu5xH!7x%nZ4NY3#m)prcjml{Sqt{9=@ZV>a(e~Z%m$b&# +z`4+q7)(q^s6jJYA@mhZWQ02$`rl6Y5MM_obsqkYi`#0^n)mPB6qt^Rfm+a4PDf-h? +zfhSyLn(Oi_(G83W+JT0Sw9}jlH?f28#=wCOx$k?)TylFgk}knHZ#k0JH&CwTonn+a +ziATE1ni6V)Wv=NDKTU27uHI7Uw7+lYaCc&h-*I|jd;gJ3u?+!L^!%$GlKL3=w!_XT +zz1NOjj6UgGM$f(2m){ZB=u=M1ZR?d>xLAl>xwK3*_pKKx#m=}RLl=~M(X66z;tZio$##*bAocp!S*I)kYUB|T# +zfGnCGNFDNXfC;i-_>hCYv4>fQrR0g(66eiRZKrwjfFgjL{cTZxrOSVwWQ4{DV4Qec +z$cfKvzxH4$IPu2gS-WnEYfrTQntXd~Y?5=2?{zISBRTgAMUM1awg{NBXKadRuiw6G +RC%DMKNY1^rza=f}@BfIFW;6f* + +literal 0 +HcmV?d00001 + +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 9d03b620ce..cfcf518907 100755 +--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network ++++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network +@@ -19,7 +19,8 @@ ipq40xx_setup_interfaces() + engenius,ens620ext|\ + luma,wrtq-329acn|\ + plasmacloud,pa1200|\ +- plasmacloud,pa2200) ++ plasmacloud,pa2200|\ ++ wallys,dr40x9) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ;; + aruba,ap-303|\ +diff --git a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches b/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches +index c255707f91..e1f75fd4bd 100755 +--- a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches ++++ b/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches +@@ -19,6 +19,9 @@ cilab,meshpoint-one) + compex,wpj428) + ucidef_add_gpio_switch "sim_card_select" "SIM card select" "3" "0" + ;; ++wallys,dr40x9) ++ ucidef_add_gpio_switch "sim_card_select" "SIM card select" "423" "0" ++ ;; + esac + + board_config_flush +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 56b9935541..561c8289e7 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 +@@ -115,7 +115,8 @@ case "$FIRMWARE" in + plasmacloud,pa2200 |\ + qxwlan,e2600ac-c1 |\ + qxwlan,e2600ac-c2 |\ +- unielec,u4019-32m) ++ unielec,u4019-32m |\ ++ wallys,dr40x9) + caldata_extract "0:ART" 0x1000 0x2f20 + ;; + devolo,magic-2-wifi-next) +@@ -227,7 +228,8 @@ case "$FIRMWARE" in + plasmacloud,pa2200 |\ + qxwlan,e2600ac-c1 |\ + qxwlan,e2600ac-c2 |\ +- unielec,u4019-32m) ++ unielec,u4019-32m |\ ++ wallys,dr40x9) + caldata_extract "0:ART" 0x5000 0x2f20 + ;; + devolo,magic-2-wifi-next) +diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +index f6fc828134..7ebe0396f6 100644 +--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh ++++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +@@ -73,6 +73,7 @@ platform_do_upgrade() { + luma,wrtq-329acn |\ + mobipromo,cm520-79f |\ + qxwlan,e2600ac-c2 |\ ++ wallys,dr40x9 |\ + tp-link,ec420-g1) + nand_do_upgrade "$1" + ;; +diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq40x9-dr40x9.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq40x9-dr40x9.dts +new file mode 100644 +index 0000000000..cb3296f5e5 +--- /dev/null ++++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq40x9-dr40x9.dts +@@ -0,0 +1,387 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "qcom-ipq4019.dtsi" ++#include ++#include ++#include ++ ++/ { ++ model = "Wallys DR40X9"; ++ compatible = "wallys,dr40x9"; ++ ++ chosen { ++ bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1"; ++ }; ++ ++ soc { ++ rng@22000 { ++ status = "okay"; ++ }; ++ ++ mdio@90000 { ++ status = "okay"; ++ ++ pinctrl-0 = <&mdio_pins>; ++ pinctrl-names = "default"; ++ reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>; ++ reset-delay-us = <2000>; ++ }; ++ ++ ess-psgmii@98000 { ++ status = "okay"; ++ }; ++ ++ counter@4a1000 { ++ compatible = "qcom,qca-gcnt"; ++ reg = <0x4a1000 0x4>; ++ }; ++ ++ tcsr@1949000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1949000 0x100>; ++ qcom,wifi_glb_cfg = ; ++ }; ++ ++ tcsr@194b000 { ++ status = "okay"; ++ ++ /* select hostmode */ ++ compatible = "qcom,tcsr"; ++ reg = <0x194b000 0x100>; ++ qcom,usb-hsphy-mode-select = ; ++ }; ++ ++ ess_tcsr@1953000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1953000 0x1000>; ++ qcom,ess-interface-select = ; ++ }; ++ ++ tcsr@1957000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1957000 0x100>; ++ qcom,wifi_noc_memtype_m0_m2 = ; ++ }; ++ ++ usb2: usb2@60f8800 { ++ status = "okay"; ++ }; ++ ++ usb3: usb3@8af8800 { ++ status = "okay"; ++ }; ++ ++ crypto@8e3a000 { ++ status = "okay"; ++ }; ++ ++ watchdog@b017000 { ++ status = "okay"; ++ }; ++ ++ ess-switch@c000000 { ++ status = "okay"; ++ }; ++ ++ edma@c080000 { ++ status = "okay"; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "reset"; ++ gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ wlan2g { ++ label = "dr4029:green:wlan2g"; ++ gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ ++ wlan5g { ++ label = "dr4029:green:wlan5g"; ++ gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "phy1tpt"; ++ }; ++ ++ wlan2g-strength { ++ label = "dr4029:green:wlan2g-strength"; ++ gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wlan5g-strength { ++ label = "dr4029:green:wlan5g-strength"; ++ gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++&tlmm { ++ mdio_pins: mdio_pinmux { ++ mux_1 { ++ pins = "gpio6"; ++ function = "mdio"; ++ bias-pull-up; ++ }; ++ mux_2 { ++ pins = "gpio7"; ++ function = "mdc"; ++ bias-pull-up; ++ }; ++ }; ++ ++ serial0_pins: serial0_pinmux { ++ mux { ++ pins = "gpio16", "gpio17"; ++ function = "blsp_uart0"; ++ bias-disable; ++ }; ++ }; ++ ++ serial1_pins: serial1_pinmux { ++ mux { ++ pins = "gpio8", "gpio9"; ++ function = "blsp_uart1"; ++ bias-disable; ++ }; ++ }; ++ ++ spi_0_pins: spi_0_pinmux { ++ pinmux { ++ function = "blsp_spi0"; ++ pins = "gpio13", "gpio14", "gpio15"; ++ drive-strength = <12>; ++ bias-disable; ++ }; ++ pinmux_cs { ++ function = "gpio"; ++ pins = "gpio12"; ++ drive-strength = <2>; ++ bias-disable; ++ output-high; ++ }; ++ }; ++ ++ nand_pins: nand_pins { ++ pullups { ++ pins = "gpio52", "gpio53", "gpio58", "gpio59"; ++ function = "qpic"; ++ bias-pull-up; ++ }; ++ ++ pulldowns { ++ pins = "gpio54", "gpio55", "gpio56", "gpio57", ++ "gpio60", "gpio62", "gpio63", "gpio64", ++ "gpio65", "gpio66", "gpio67", "gpio68", ++ "gpio69"; ++ function = "qpic"; ++ bias-pull-down; ++ }; ++ }; ++ ++ sd_pins: sd_pins { ++ pinmux { ++ function = "sdio"; ++ pins = "gpio23", "gpio24", "gpio25", "gpio26", ++ "gpio28", "gpio29", "gpio30", "gpio31"; ++ drive-strength = <10>; ++ }; ++ pinmux_sd_clk { ++ function = "sdio"; ++ pins = "gpio27"; ++ drive-strength = <16>; ++ }; ++ pinmux_sd7 { ++ function = "sdio"; ++ pins = "gpio32"; ++ drive-strength = <10>; ++ bias-disable; ++ }; ++ }; ++}; ++ ++&blsp_dma { ++ status = "okay"; ++}; ++ ++&blsp1_spi1 { ++ status = "okay"; ++ ++ pinctrl-0 = <&spi_0_pins>; ++ pinctrl-names = "default"; ++ ++ cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ spi-max-frequency = <24000000>; ++ reg = <0>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition0@0 { ++ label = "0:SBL1"; ++ reg = <0x00000000 0x00040000>; ++ read-only; ++ }; ++ ++ partition1@40000 { ++ label = "0:MIBIB"; ++ reg = <0x00040000 0x00020000>; ++ read-only; ++ }; ++ ++ partition2@60000 { ++ label = "0:QSEE"; ++ reg = <0x00060000 0x00060000>; ++ read-only; ++ }; ++ ++ partition3@c0000 { ++ label = "0:CDT"; ++ reg = <0x000c0000 0x00010000>; ++ read-only; ++ }; ++ ++ partition4@d0000 { ++ label = "0:DDRPARAMS"; ++ reg = <0x000d0000 0x00010000>; ++ read-only; ++ }; ++ ++ partition5@e0000 { ++ label = "0:APPSBLENV"; /* uboot env */ ++ reg = <0x000e0000 0x00010000>; ++ read-only; ++ }; ++ ++ partition6@f0000 { ++ label = "0:APPSBL"; /* uboot */ ++ reg = <0x000f0000 0x00080000>; ++ read-only; ++ }; ++ ++ partition7@170000 { ++ label = "0:ART"; ++ reg = <0x00170000 0x00010000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++&qpic_bam { ++ status = "okay"; ++}; ++ ++&nand { ++ status = "okay"; ++ ++ pinctrl-0 = <&nand_pins>; ++ pinctrl-names = "default"; ++ ++ nand@0 { ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "ubi"; ++ reg = <0x00000000 0x08000000>; ++ }; ++ }; ++ }; ++}; ++ ++&blsp1_uart1 { ++ status = "okay"; ++ ++ pinctrl-0 = <&serial0_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&blsp1_uart2 { ++ status = "okay"; ++ ++ pinctrl-0 = <&serial1_pins>; ++ pinctrl-names = "default"; ++}; ++ ++&cryptobam { ++ status = "okay"; ++}; ++ ++&pcie0 { ++ status = "okay"; ++ ++ perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; ++ wake-gpio = <&tlmm 40 GPIO_ACTIVE_LOW>; ++ ++ /* Unpolulated slot */ ++ bridge@0,0 { ++ reg = <0x00000000 0 0 0 0>; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ ranges; ++ }; ++}; ++ ++&vqmmc { ++ status = "okay"; ++}; ++ ++&sdhci { ++ pinctrl-0 = <&sd_pins>; ++ pinctrl-names = "default"; ++ cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; ++ vqmmc-supply = <&vqmmc>; ++ status = "okay"; ++}; ++ ++ðphy4 { ++ qcom,fiber-enable; ++}; ++ ++&gmac0 { ++ qcom,phy_mdio_addr = <3>; ++ qcom,poll_required = <1>; ++ qcom,forced_speed = <1000>; ++ qcom,forced_duplex = <1>; ++}; ++ ++&wifi0 { ++ status = "okay"; ++ ++ qcom,ath10k-calibration-variant = "Wallys-DR40X9"; ++}; ++ ++&wifi1 { ++ status = "okay"; ++ ++ qcom,ath10k-calibration-variant = "Wallys-DR40X9"; ++}; ++ ++&usb3_ss_phy { ++ status = "okay"; ++}; ++ ++&usb3_hs_phy { ++ status = "okay"; ++}; ++ ++&usb2_hs_phy { ++ status = "okay"; ++}; +diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk +index e4e437bb95..7cbfecb233 100644 +--- a/target/linux/ipq40xx/image/generic.mk ++++ b/target/linux/ipq40xx/image/generic.mk +@@ -834,6 +834,19 @@ define Device/zyxel_wre6606 + endef + TARGET_DEVICES += zyxel_wre6606 + ++define Device/wallys_dr40x9 ++ $(call Device/FitImage) ++ $(call Device/UbiFit) ++ DEVICE_VENDOR := Wallys ++ DEVICE_MODEL := DR40X9 ++ SOC := qcom-ipq40x9 ++ DEVICE_DTS_CONFIG := config@ap.dk07.1-c1 ++ BLOCKSIZE := 128k ++ PAGESIZE := 2048 ++ DEVICE_PACKAGES := ipq-wifi-wallys_dr40x9 ++endef ++TARGET_DEVICES += wallys_dr40x9 ++ + define Device/tp-link_ec420_g1 + $(call Device/FitImage) + $(call Device/UbiFit) +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 492cc67b2c..4d686df304 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 + + --- a/arch/arm/boot/dts/Makefile + +++ b/arch/arm/boot/dts/Makefile +-@@ -837,11 +837,60 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ++@@ -837,11 +837,61 @@ dtb-$(CONFIG_ARCH_QCOM) += \ + qcom-apq8074-dragonboard.dtb \ + qcom-apq8084-ifc6540.dtb \ + qcom-apq8084-mtp.dtb \ +@@ -68,6 +68,7 @@ Signed-off-by: John Crispin + + qcom-ipq4029-gl-b1300.dtb \ + + qcom-ipq4029-gl-s1300.dtb \ + + qcom-ipq4029-mr33.dtb \ +++ qcom-ipq40x9-dr40x9.dtb \ + qcom-ipq8064-ap148.dtb \ + qcom-msm8660-surf.dtb \ + qcom-msm8960-cdp.dtb \ +-- +2.25.1 + diff --git a/profiles/wallys_dr40x9.yml b/profiles/wallys_dr40x9.yml new file mode 100644 index 000000000..06bcfc5c2 --- /dev/null +++ b/profiles/wallys_dr40x9.yml @@ -0,0 +1,16 @@ +--- +profile: wallys_dr40x9 +target: ipq40xx +subtarget: generic +description: Build image for the wallys dr40x9 +image: bin/targets/ipq40xx/generic/openwrt-ipq40xx-generic-wallys_dr40x9-squashfs-sysupgrade.bin +include: + - ucentral-ap +packages: + - ath10k-firmware-qca4019-ct-htt + - ath10k-firmware-qca9888-ct-htt + - ath10k-firmware-qca9984-ct-htt +diffconfig: | + # CONFIG_PACKAGE_ath10k-firmware-qca4019-ct is not set + # CONFIG_PACKAGE_ath10k-firmware-qca9888-ct is not set + # CONFIG_PACKAGE_ath10k-firmware-qca9984-ct is not set