From 8df207c103d0ebc6e55d5ecd301e0f7348e647ce Mon Sep 17 00:00:00 2001 From: David Bauer Date: Fri, 20 Dec 2019 22:49:46 +0100 Subject: [PATCH] ipq40xx-generic: add support for Aruba AP-303 --- ...07-ipq-wifi-add-BDF-for-Aruba-AP-303.patch | 92 +++ ...ipq40xx-add-support-for-Aruba-AP-303.patch | 646 ++++++++++++++++++ targets/ipq40xx-generic | 7 + 3 files changed, 745 insertions(+) create mode 100644 patches/openwrt/0007-ipq-wifi-add-BDF-for-Aruba-AP-303.patch create mode 100644 patches/openwrt/0008-ipq40xx-add-support-for-Aruba-AP-303.patch diff --git a/patches/openwrt/0007-ipq-wifi-add-BDF-for-Aruba-AP-303.patch b/patches/openwrt/0007-ipq-wifi-add-BDF-for-Aruba-AP-303.patch new file mode 100644 index 00000000..bfc386a2 --- /dev/null +++ b/patches/openwrt/0007-ipq-wifi-add-BDF-for-Aruba-AP-303.patch @@ -0,0 +1,92 @@ +From: David Bauer +Date: Sun, 15 Dec 2019 23:02:54 +0100 +Subject: ipq-wifi: add BDF for Aruba AP-303 + +The BDF originates from the vendor-firmware. + +Signed-off-by: David Bauer +(cherry picked from commit 4113d8a2554adf5ecee55cc07956eafad378eaff) + +diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile +index eb7c2df1aa36ded7774a772c8a7e02b2acb81b40..cc0505b97c6a04bafd88972cf6ce7890a637c33b 100644 +--- a/package/firmware/ipq-wifi/Makefile ++++ b/package/firmware/ipq-wifi/Makefile +@@ -25,6 +25,7 @@ endef + + ALLWIFIBOARDS:= \ + alfa-network_ap120c-ac \ ++ aruba_ap-303 \ + asus_map-ac2200 \ + avm_fritzbox-7530 \ + avm_fritzrepeater-1200 \ +@@ -97,6 +98,7 @@ endef + # Add $(eval $(call generate-ipq-wifi-package,,)) + + $(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,ALFA Network AP120C-AC)) ++$(eval $(call generate-ipq-wifi-package,aruba_ap-303,Aruba AP-303)) + $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,ASUS MAP-AC2200)) + $(eval $(call generate-ipq-wifi-package,avm_fritzbox-7530,AVM FRITZ!Box 7530)) + $(eval $(call generate-ipq-wifi-package,avm_fritzrepeater-1200,AVM FRITZRepeater 1200)) +diff --git a/package/firmware/ipq-wifi/board-aruba_ap-303.qca4019 b/package/firmware/ipq-wifi/board-aruba_ap-303.qca4019 +new file mode 100644 +index 0000000000000000000000000000000000000000..4848115cfbe3a4a0ed6b17cac929731ecbd7968c +GIT binary patch +literal 24316 +zcmeHPdr(tX8b1l)p-UHTNDu)pAp}Se0tBi-!W$`%6c7~&un1I6BFeZwJ$y}AjvN}B`Pfz$mMbX<(NN~1F#FGd_`$kUSYm( +zzFg|}UZJ$ePkJaU0I%hr$SXO7RRsaQWqBpiyyGXsqDmC`d45r;enA02aybRIXTiQ$ +z{(Fv6D8Qnc9-NN#>(d1&AQynm*7jHxFaWR*!ZjM6>t{S38|w;yprD{vFJ4eY3@h-< +z-!4WF$pUt;M0u#+u2DM@cmo9V_`vZ+ET^9yjw-&*$wzjskw6xF>07kKy8YxWZr<)vMT{juo&5WBJl$pvJ +zSBe@2uw^qXb0;%4&|Y78I5R0hICi_exl*3FFCluYul;;oiF8lGjWOy2|{_1bA?;y|Gf7nVJwj){D78n-DgruPe_KCxqe+o_PC!v0LpI;0W&~ +zgp7R#8_4hmJ+PC)%p@TfcGpx{l$j&E$%$G#3{F}KdUX|Jgd|puct0g5t8qXU6jp>E=A|Pc_n}{`jGyHYexpa) +z8eg})+@@SU~bv!vW@t_*D0~j*k2Ra54<44 +zGAfly!Ey@=__b^`E!H<{G6I~Qyq_vSIUEo8>&bR^_h7rT+37SJ;+lkrg)CPdfsBl_ +zWH#Fk4)pWSFMfRe8oL4#@;p7Xw*UV4*B^9knBz8EYbuTQKj>!%PuOhxmoH!ZTkE^h +zQ5Oxs>k&9eQFX%rmay^oy5hs-a5%Vu>&0fVaLp_>UjzM_W;28hf+9#18ifR+fk=_! +zRP~t;8=70^D?l_Y4@^?%D4kD#N=KYgXTG!89<@iD&}cN8AN@2MNkkL*iQ-5!5{X9z +zsDLkcDnNFjyZF1r0cZdsL}!9fUpK7I#3T~UL`ACe&W|yWIG_$w4u}it!gmqJpfOW1 +zND`XFPZ9^AK~q6UC>qKS6>Cp|ZjKM7g?`0zZ0#0(s21q!}Wsktx^q!Hyz)q)K=GO +zoF7djK!C#!ycz%kffr-~xxvJNR46t~SlLJq1Z=jeD_c)mpnblT&CYJ-0FjUaUY!7- +z#TubR1_QvgL4XK|Xt`DhpfahOvtem(k8e884~Vp^8wB1A+A^rrLvRNI?k-blHXlQ| +z28Ed52$bd6#2N6zwQKmBg-UNPPtI?dv^#g&y*lmgoH%t~Mt1I@LRDi+Ye!f2&4Iz; +zkI`9mEA&tbcUZ +z%raPCff}=CoSdFh&~W)`kLJ$!*9+*BuD^e+C^f1J|FyU;r!;;^^oI +zutbQ7^|zo9O_y4-fz<*{BN<(cKQSIMS&pfWHI9R`Q7+)GZ~m87zSOtRt#@=xPIh$J +z+RmlJ%=Iy)wjsB2$w?ctL{=e6#)NGiAEXw5z3>BC;Y0;D{!GEsIar?io&qX3RM0m- +z1^qu!!LtzyFeRb^yHOg52(ttT)56l)JRy+1kO+_nY&ZmFIrD}%_y76l-@pIvyT3qG +z!a_rK!Uv_0b8llsqdtHB4`|cp+)q8%a_-ajrKM^)`>$U7G-ZAsz9G)NzdxUkC2X$& +zduqM~`z#Q)p7ZVawgPK2|7z4Vsn5hz4U5-aIh*Kyy`9 +z2K#+`d{Fa=s!Ar2h&1D>cG=1J-CQSpgrl-7ZAjx2Fr>-5ns)VRm0Y%a{Fdgrx(+r@ +z*4$UM$;#s6xh~@)>W}b{+^~=yKH~BKoNA}$qFSNKg(0ccXH~^YiRPBNQznm(68cZx +z*IZXs$_@yfwGDV)*c_VFr&I;XWO(qZszR13@rQx5DHW0=A#d`I=8CFBmJ-jw8hkOq +zgDBk|Z&R15a+I-?Bk*9UGFz4i!@LHuj1;2qXotF778Ab}Z}1q-!4z4Am-=K##+*PB +zB@(3t5LgdOV}YrW<_(KL>(KEV5iNeTE@js=e`t@r=v}q-_{qz0XL!ZV`L=NnyANLo +zQ+gcPBDpqn@zBNZRxW7|) +z$*qbmtL@F{5S&95^!$;V#g`*L;FZw#KkAbCs3#V=uB4NN#U`sakZFU2HEI?ks7Dsq&ROrak#AvEH|GYk~cN +z-oYbXaZQ|4jDps_<5wfH44oN*XPh1H-<59xMxzd~07FF+FO3!KO +zkzNs<^C)%5zR+;s{a_h8iyk@DSK5($fm`l$c*8Cna^fTc>i~h}zJUY22WwUg;4xU6 +zE40Voz~Sl1fxqzW8!QiZceZ;vST%3pn9qkNDEBsI+pnKL20^*sWVSI3z)zY;1PmfD +zk8=M~&&^oEhq?Xq!q{llMLGBQ>t)~ra4xR!eZAQ1X^ph;*FG+*f4xJlJ!C>*eEV+r +z#z~GXOppZ=2|4(iyLmNON}QN2ao#+YHqDy{lvv2w_X*(?ul{+G5$Yp=apGx^6Q9v~ +z^YKb>;`PTfcYPtQJz@VX`S#e@Bso3?a_*Ok9NBKwB4Es(@j^U%UHht?;4%Xv +NIrrxNmNc!u{{!hMI2Hf^ + +literal 0 +HcmV?d00001 + diff --git a/patches/openwrt/0008-ipq40xx-add-support-for-Aruba-AP-303.patch b/patches/openwrt/0008-ipq40xx-add-support-for-Aruba-AP-303.patch new file mode 100644 index 00000000..8b5fc9dd --- /dev/null +++ b/patches/openwrt/0008-ipq40xx-add-support-for-Aruba-AP-303.patch @@ -0,0 +1,646 @@ +From: David Bauer +Date: Wed, 23 Oct 2019 22:25:14 +0200 +Subject: ipq40xx: add support for Aruba AP-303 + +Hardware +-------- + +SoC: Qualcomm IPQ4029 +RAM: 512M DDR3 +FLASH: - 128MB NAND (Macronix MX30LF1G18AC) + - 4MB SPI-NOR (Macronix MX25R3235F) +TPM: Atmel AT97SC3203 +BLE: Texas Instruments CC2540T + attached to ttyMSM0 +ETH: Atheros AR8035 +LED: WiFi (amber / green) + System (red / green) +BTN: Reset + +To connect to the serial console, you can solder to the labled pads next +to the USB port or use your Aruba supplied UARt adapter. + +Do NOT plug a standard USB cable into the Console labled USB-port! +Aruba/HPE simply put UART on the micro-USB pins. You can solder yourself +an adapter cable: + +VCC - NC + D+ - TX + D- - RX +GND - GND + +The console setting in bootloader and OS is 9600 8N1. Voltage level is +3.3V. + +To enable a full list of commands in the U-Boot "help" command, execute +the literal "diag" command. + +Installation +------------ + +1. Get the OpenWrt initramfs image. Rename it to ipq40xx.ari and put it + into the TFTP server root directory. Configure the TFTP server to + be reachable at 192.168.1.75/24. Connect the machine running the TFTP + server to the ethernet port of the access point. + +2. Connect to the serial console. Interrupt autobooting by pressing + Enter when prompted. + +3. Configure the bootargs and bootcmd for OpenWrt. + $ setenv bootargs_openwrt "setenv bootargs console=ttyMSM1,9600n8" + $ setenv nandboot_openwrt "run bootargs_openwrt; ubi part aos1; + ubi read 0x85000000 kernel; bootm 0x85000000" + $ setenv ramboot_openwrt "run bootargs_openwrt; + setenv ipaddr 192.168.1.105; setenv serverip 192.168.1.75; + netget; set fdt_high 0x87000000; bootm" + $ setenv bootcmd "run nandboot_openwrt" + $ saveenv + +4. Load OpenWrt into RAM: + $ run ramboot_openwrt + +5. After OpenWrt booted, transfer the OpenWrt sysupgrade image to the + /tmp folder on the device. + +6. Flash OpenWrt: + $ ubidetach -p /dev/mtd1 + $ ubiformat /dev/mtd1 + $ sysupgrade -n /tmp/openwrt-sysupgrade.bin + +To go back to the stock firmware, simply reset the bootcmd in the +bootloader to the original value: + + $ setenv bootcmd "boot" + $ saveenv + +Signed-off-by: David Bauer +(cherry picked from commit 102c8c55f217606cdbdc9a449667e034676b3e75) + +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 01825b8bac46eec6325de00396d96307c946f975..49dd570242533068adf2c9df89e78560ba5f70eb 100755 +--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network ++++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network +@@ -39,6 +39,7 @@ ipq40xx_setup_interfaces() + ucidef_add_switch "switch0" \ + "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan" + ;; ++ aruba,ap-303|\ + avm,fritzrepeater-1200|\ + engenius,eap1300|\ + meraki,mr33|\ +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 b0035ce8a394b6e87d7d89b9f55a6ec7c66e448e..15a2f2c09f8a92cc0accfbf9a977dbeb3355570d 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 +@@ -137,6 +137,10 @@ case "$FIRMWARE" in + qcom,ap-dk01.1-c1) + ath10kcal_extract "ART" 4096 12064 + ;; ++ aruba,ap-303) ++ ath10kcal_extract "ART" 4096 12064 ++ ath10kcal_patch_mac_crc $(mtd_get_mac_binary mfginfo 29) ++ ;; + asus,map-ac2200) + ath10kcal_ubi_extract "Factory" 4096 12064 + ;; +@@ -199,6 +203,10 @@ case "$FIRMWARE" in + qcom,ap-dk01.1-c1) + ath10kcal_extract "ART" 20480 12064 + ;; ++ aruba,ap-303) ++ ath10kcal_extract "ART" 20480 12064 ++ ath10kcal_patch_mac_crc $(macaddr_add $(mtd_get_mac_binary mfginfo 29) +1) ++ ;; + asus,map-ac2200) + ath10kcal_ubi_extract "Factory" 20480 12064 + ;; +diff --git a/target/linux/ipq40xx/base-files/etc/inittab b/target/linux/ipq40xx/base-files/etc/inittab +index 809bba5e5ff49869429c91cf791cea73ab67d14e..3181021a0592720657b815c3eac803a57f4ea438 100644 +--- a/target/linux/ipq40xx/base-files/etc/inittab ++++ b/target/linux/ipq40xx/base-files/etc/inittab +@@ -2,3 +2,4 @@ + ::sysinit:/etc/init.d/rcS S boot + ::shutdown:/etc/init.d/rcS K shutdown + ttyMSM0::askfirst:/usr/libexec/login.sh ++ttyMSM1::askfirst:/usr/libexec/login.sh +diff --git a/target/linux/ipq40xx/base-files/lib/preinit/06_set_preinit_iface_ipq40xx.sh b/target/linux/ipq40xx/base-files/lib/preinit/06_set_preinit_iface_ipq40xx.sh +index be4b6322cb6a91f489dfec237ac6b79ce079e0eb..a0dec1042a3dd7416ece3307666c8ecf9d15d277 100644 +--- a/target/linux/ipq40xx/base-files/lib/preinit/06_set_preinit_iface_ipq40xx.sh ++++ b/target/linux/ipq40xx/base-files/lib/preinit/06_set_preinit_iface_ipq40xx.sh +@@ -4,6 +4,7 @@ set_preinit_iface() { + . /lib/functions.sh + + case $(board_name) in ++ aruba,ap-303| \ + asus,rt-ac58u| \ + avm,fritzbox-4040| \ + glinet,gl-b1300| \ +diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +index a7b7da1bf378f7cc19e960c497bc52efb3bae4fb..7253139497a8a8b9fab49cef3fce5eabe98d8002 100644 +--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh ++++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +@@ -48,6 +48,7 @@ platform_do_upgrade() { + case "$(board_name)" in + 8dev,jalapeno |\ + alfa-network,ap120c-ac |\ ++ aruba,ap-303 |\ + avm,fritzbox-7530 |\ + avm,fritzrepeater-1200 |\ + avm,fritzrepeater-3000 |\ +diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-ap-303.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-ap-303.dts +new file mode 100644 +index 0000000000000000000000000000000000000000..7929494d027aca5c696910232a36d484f5ce6562 +--- /dev/null ++++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4029-ap-303.dts +@@ -0,0 +1,418 @@ ++// SPDX-License-Identifier: GPL-2.0 OR MIT ++ ++#include "qcom-ipq4019.dtsi" ++#include ++#include ++#include ++ ++/ { ++ model = "Aruba AP-303"; ++ compatible = "aruba,ap-303"; ++ ++ aliases { ++ led-boot = &led_system_green; ++ led-failsafe = &led_system_red; ++ led-running = &led_system_green; ++ led-upgrade = &led_system_red; ++ }; ++ ++ memory { ++ device_type = "memory"; ++ reg = <0x80000000 0x10000000>; ++ }; ++ ++ soc { ++ mdio@90000 { ++ status = "okay"; ++ pinctrl-0 = <&mdio_pins>; ++ pinctrl-names = "default"; ++ ++ /delete-node/ ethernet-phy@0; ++ /delete-node/ ethernet-phy@2; ++ /delete-node/ ethernet-phy@3; ++ /delete-node/ ethernet-phy@4; ++ ++ ethernet-phy@5 { ++ reg = <0x5>; ++ }; ++ }; ++ ++ counter@4a1000 { ++ compatible = "qcom,qca-gcnt"; ++ reg = <0x4a1000 0x4>; ++ }; ++ ++ ess_tcsr@1953000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1953000 0x1000>; ++ qcom,ess-interface-select = ; ++ }; ++ ++ tcsr@1949000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1949000 0x100>; ++ qcom,wifi_glb_cfg = ; ++ }; ++ ++ tcsr@1957000 { ++ compatible = "qcom,tcsr"; ++ reg = <0x1957000 0x100>; ++ qcom,wifi_noc_memtype_m0_m2 = ; ++ }; ++ ++ blsp1_uart2: serial@78b0000 { ++ }; ++ ++ crypto@8e3a000 { ++ status = "okay"; ++ }; ++ ++ watchdog@b017000 { ++ status = "okay"; ++ }; ++ ++ ess-switch@c000000 { ++ switch_mac_mode = <0x3>; /* mac mode for RGMII RMII */ ++ switch_lan_bmp = <0x0>; /* lan port bitmap */ ++ switch_wan_bmp = <0x10>; /* wan port bitmap */ ++ }; ++ ++ edma@c080000 { ++ qcom,single-phy; ++ qcom,num_gmac = <1>; ++ phy-mode = "rgmii-id"; ++ status = "okay"; ++ }; ++ ++ i2c_0: i2c@78b7000 { ++ pinctrl-0 = <&i2c_0_pins>; ++ pinctrl-names = "default"; ++ status = "ok"; ++ ++ tpm@29 { ++ /* No Driver */ ++ compatible = "atmel,at97sc3203"; ++ reg = <0x29>; ++ read-only; ++ }; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ wifi_green { ++ label = "ap-303:green:wifi"; ++ gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "phy0tpt"; ++ }; ++ ++ wifi_amber { ++ label = "ap-303:amber:wifi"; ++ gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "phy1tpt"; ++ }; ++ ++ led_system_red: system_red { ++ label = "ap-303:red:system"; ++ gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ led_system_green: system_green { ++ label = "ap-303:green:system"; ++ gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "Reset button"; ++ gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ }; ++}; ++ ++&blsp_dma { ++ status = "okay"; ++}; ++ ++&blsp1_uart1 { ++ /* Texas Instruments CC2540T BLE radio */ ++ pinctrl-0 = <&serial_0_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++}; ++ ++&blsp1_uart2 { ++ pinctrl-0 = <&serial_1_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++}; ++ ++&cryptobam { ++ status = "okay"; ++}; ++ ++&gmac0 { ++ qcom,phy_mdio_addr = <5>; ++ qcom,poll_required = <1>; ++ vlan_tag = <0 0x20>; ++}; ++ ++&qpic_bam { ++ status = "okay"; ++}; ++ ++&tlmm { ++ /* ++ * In addition to the Pins listed below, ++ * the following GPIOs have "features": ++ * 54 - out - active low to force HW reset ++ * 41 - out - active low to reset TPM ++ * 43 - out - active low to reset BLE radio ++ * 19 - in - active high when DC powered ++ */ ++ mdio_pins: mdio_pinmux { ++ mux_1 { ++ pins = "gpio6"; ++ function = "mdio"; ++ bias-pull-up; ++ }; ++ mux_2 { ++ pins = "gpio7"; ++ function = "mdc"; ++ bias-pull-up; ++ }; ++ }; ++ ++ nand_pins: nand_pins { ++ pullups { ++ pins = "gpio53", "gpio58", "gpio59"; ++ function = "qpic"; ++ bias-pull-up; ++ }; ++ ++ pulldowns { ++ pins = "gpio54", "gpio55", "gpio56", ++ "gpio57", "gpio60", "gpio61", ++ "gpio62", "gpio63", "gpio64", ++ "gpio65", "gpio66", "gpio67", ++ "gpio68", "gpio69"; ++ function = "qpic"; ++ bias-pull-down; ++ }; ++ }; ++ ++ spi_0_pins: spi_0_pinmux { ++ pin { ++ function = "blsp_spi0"; ++ pins = "gpio13", "gpio14", "gpio15"; ++ drive-strength = <12>; ++ bias-disable; ++ }; ++ pin_cs { ++ function = "gpio"; ++ pins = "gpio12"; ++ drive-strength = <2>; ++ bias-disable; ++ output-high; ++ }; ++ }; ++ i2c_0_pins: i2c_0_pinmux { ++ mux { ++ pins = "gpio10", "gpio11"; ++ function = "blsp_i2c0"; ++ drive-strength = <4>; ++ bias-disable; ++ }; ++ }; ++ ++ serial_0_pins: serial_0_pinmux { ++ mux { ++ pins = "gpio16", "gpio17"; ++ function = "blsp_uart0"; ++ bias-disable; ++ }; ++ }; ++ ++ serial_1_pins: serial_1_pinmux { ++ mux { ++ pins = "gpio8", "gpio9"; ++ function = "blsp_uart1"; ++ bias-disable; ++ }; ++ }; ++ ++ phy-reset { ++ line-name = "PHY-reset"; ++ gpios = <42 GPIO_ACTIVE_HIGH>; ++ gpio-hog; ++ output-high; ++ }; ++}; ++ ++&nand { ++ pinctrl-0 = <&nand_pins>; ++ pinctrl-names = "default"; ++ status = "okay"; ++ ++ nand@0 { ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ /* 'aos0' in Aruba firmware */ ++ label = "aos0"; ++ reg = <0x0 0x2000000>; ++ read-only; ++ }; ++ ++ partition@2000000 { ++ /* 'aos1' in AVM firmware */ ++ label = "ubi"; ++ reg = <0x2000000 0x2000000>; ++ }; ++ ++ partition@4000000 { ++ label = "aruba-ubifs"; ++ reg = <0x4000000 0x4000000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++&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>; ++ ++ /* ++ * There is no partition map for the NOR flash ++ * in the stock firmware. ++ * ++ * All partitions here are based on offsets ++ * found in the U-Boot GPL code and information ++ * from smem. ++ */ ++ ++ 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 = "ART"; ++ reg = <0xe0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@f0000 { ++ label = "appsbl"; ++ reg = <0xf0000 0xf0000>; ++ read-only; ++ }; ++ ++ partition@1e0000 { ++ label = "mfginfo"; ++ reg = <0x1e0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@1f0000 { ++ label = "apcd"; ++ reg = <0x1f0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@200000 { ++ label = "osss"; ++ reg = <0x200000 0x180000>; ++ read-only; ++ }; ++ ++ partition@380000 { ++ /* This is empty */ ++ label = "appsblenv"; ++ reg = <0x380000 0x10000>; ++ read-only; ++ }; ++ ++ partition@390000 { ++ label = "pds"; ++ reg = <0x390000 0x10000>; ++ read-only; ++ }; ++ ++ partition@3a0000 { ++ label = "fcache"; ++ reg = <0x3a0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@3b0000 { ++ /* Called osss1 in smem */ ++ label = "u-boot-env-bak"; ++ reg = <0x3b0000 0x10000>; ++ read-only; ++ }; ++ ++ partition@3f0000 { ++ label = "u-boot-env"; ++ reg = <0x3f0000 0x10000>; ++ read-only; ++ }; ++ }; ++ }; ++}; ++ ++&wifi0 { ++ status = "okay"; ++ qcom,ath10k-calibration-variant = "Aruba-AP-303"; ++}; ++ ++&wifi1 { ++ status = "okay"; ++ qcom,ath10k-calibration-variant = "Aruba-AP-303"; ++}; +diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile +index 98c81726d9c12bd466df2150c3e98a76cfb46f78..68dcbc59a42f6d8360b87c7b4e74cd34f697b465 100644 +--- a/target/linux/ipq40xx/image/Makefile ++++ b/target/linux/ipq40xx/image/Makefile +@@ -85,6 +85,15 @@ define Device/alfa-network_ap120c-ac + endef + TARGET_DEVICES += alfa-network_ap120c-ac + ++define Device/aruba_ap-303 ++ $(call Device/FitImageLzma) ++ DEVICE_TITLE := Aruba AP-303 ++ DEVICE_DTS := qcom-ipq4029-ap-303 ++ DEVICE_PACKAGES := ipq-wifi-aruba_ap-303 ++ IMAGES := sysupgrade.bin ++endef ++TARGET_DEVICES += aruba_ap-303 ++ + define Device/asus_map-ac2200 + $(call Device/FitImageLzma) + DEVICE_DTS := qcom-ipq4019-map-ac2200 +diff --git a/target/linux/ipq40xx/patches-4.14/304-mtd-spi-nor-Add-support-for-mx25r3235f.patch b/target/linux/ipq40xx/patches-4.14/304-mtd-spi-nor-Add-support-for-mx25r3235f.patch +new file mode 100644 +index 0000000000000000000000000000000000000000..d95923a1610d4764538e79bb783702903edcdcad +--- /dev/null ++++ b/target/linux/ipq40xx/patches-4.14/304-mtd-spi-nor-Add-support-for-mx25r3235f.patch +@@ -0,0 +1,26 @@ ++From 158acdbf0336f601971637f988b57a6a67a0869b Mon Sep 17 00:00:00 2001 ++From: David Bauer ++Date: Sun, 15 Dec 2019 13:10:50 +0100 ++Subject: [PATCH] mtd: spi-nor: Add support for mx25r3235f ++ ++Add MTD support for the Macronix MX25R3235F SPI NOR chip from Macronix. ++The chip has 4MB of total capacity, divided into a total of 64 sectors, ++each 64KB sized. The chip also supports 4KB large sectors. ++Additionally, it supports dual and quad read modes. ++ ++Signed-off-by: David Bauer ++--- ++ drivers/mtd/spi-nor/spi-nor.c | 2 ++ ++ 1 file changed, 2 insertions(+) ++ ++--- a/drivers/mtd/spi-nor/spi-nor.c +++++ b/drivers/mtd/spi-nor/spi-nor.c ++@@ -1024,6 +1024,8 @@ static const struct flash_info spi_nor_i ++ { "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) }, ++ { "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) }, ++ { "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) }, +++ { "mx25r3235f", INFO(0xc22816, 0, 64 * 1024, 64, +++ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, ++ { "mx25u3235f", INFO(0xc22536, 0, 64 * 1024, 64, 0) }, ++ { "mx25u2033e", INFO(0xc22532, 0, 64 * 1024, 4, SECT_4K) }, ++ { "mx25u4035", INFO(0xc22533, 0, 64 * 1024, 8, SECT_4K) }, +diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch +index f7efd415f1f1c000867793b3b133e44b3e50b0fd..fc8a88336491c2ac7c2a93fafb1f2b6fd38695be 100644 +--- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch ++++ b/target/linux/ipq40xx/patches-4.14/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 +-@@ -697,7 +697,31 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ++@@ -697,7 +697,32 @@ dtb-$(CONFIG_ARCH_QCOM) += \ + qcom-apq8074-dragonboard.dtb \ + qcom-apq8084-ifc6540.dtb \ + qcom-apq8084-mtp.dtb \ +@@ -37,6 +37,7 @@ Signed-off-by: John Crispin + + qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ + + qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ + + qcom-ipq4028-wpj428.dtb \ +++ qcom-ipq4029-ap-303.dtb \ + + qcom-ipq4029-gl-b1300.dtb \ + + qcom-ipq4029-mr33.dtb \ + qcom-ipq8064-ap148.dtb \ diff --git a/targets/ipq40xx-generic b/targets/ipq40xx-generic index f06e15f2..44864933 100644 --- a/targets/ipq40xx-generic +++ b/targets/ipq40xx-generic @@ -19,6 +19,13 @@ defaults { } +-- Aruba + +device('aruba-ap-303', 'aruba_ap-303', { + factory = false, +}) + + -- AVM device('avm-fritz-box-4040', 'avm_fritzbox-4040', {