diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 05e7ad899..055d40d79 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', 'wallys_dr40x9' ] + target: ['cig_wf188', 'cig_wf194c', 'cig_wf160d', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_ssw2ac2600', '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/0042-ipq806x-add-edgecore_ssw2ac2600-support.patch b/patches/0042-ipq806x-add-edgecore_ssw2ac2600-support.patch new file mode 100644 index 000000000..c80abe739 --- /dev/null +++ b/patches/0042-ipq806x-add-edgecore_ssw2ac2600-support.patch @@ -0,0 +1,590 @@ +From e5f38285a39a57f3f6faa6450e8b9e9847dfcc7a Mon Sep 17 00:00:00 2001 +From: John Crispin +Date: Wed, 18 Aug 2021 15:49:56 +0200 +Subject: [PATCH] ipq806x: add edgecore_ssw2ac2600 support + +Signed-off-by: John Crispin +--- + package/boot/uboot-envtools/files/ipq806x | 1 + + package/firmware/ipq-wifi/Makefile | 2 + + .../board-edgecore_ssw2ac2600.qca9984 | Bin 0 -> 24324 bytes + .../ipq806x/base-files/etc/board.d/01_leds | 1 + + .../ipq806x/base-files/etc/board.d/02_network | 1 + + .../etc/hotplug.d/firmware/11-ath10k-caldata | 2 + + .../ipq806x/base-files/etc/init.d/bootcount | 1 + + .../base-files/lib/upgrade/platform.sh | 1 + + .../arm/boot/dts/qcom-ipq8068-ssw2ac2600.dts | 341 ++++++++++++++++++ + target/linux/ipq806x/image/Makefile | 14 + + .../0069-arm-boot-add-dts-files.patch | 3 +- + 11 files changed, 366 insertions(+), 1 deletion(-) + create mode 100644 package/firmware/ipq-wifi/board-edgecore_ssw2ac2600.qca9984 + create mode 100644 target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-ssw2ac2600.dts + +diff --git a/package/boot/uboot-envtools/files/ipq806x b/package/boot/uboot-envtools/files/ipq806x +index 96a4ee6450..1b49fd51d4 100644 +--- a/package/boot/uboot-envtools/files/ipq806x ++++ b/package/boot/uboot-envtools/files/ipq806x +@@ -31,6 +31,7 @@ ubootenv_mtdinfo () { + } + + case "$board" in ++edgecore,ssw2ac2600 |\ + edgecore,ecw5410) + ubootenv_add_uci_config "/dev/mtd11" "0x0" "0x10000" "0x10000" + ;; +diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile +index 192e8dcf7e..23fc4caa2e 100644 +--- a/package/firmware/ipq-wifi/Makefile ++++ b/package/firmware/ipq-wifi/Makefile +@@ -33,6 +33,7 @@ ALLWIFIBOARDS:= \ + devolo_magic-2-wifi-next \ + dlink_dap2610 \ + edgecore_ecw5410 \ ++ edgecore_ssw2ac2600 \ + edgecore_oap100 \ + engenius_eap2200 \ + engenius_emd1 \ +@@ -119,6 +120,7 @@ $(eval $(call generate-ipq-wifi-package,cellc_rtl30vw, Cell C RTL30VW)) + $(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) + $(eval $(call generate-ipq-wifi-package,dlink_dap2610,D-Link DAP-2610)) + $(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) ++$(eval $(call generate-ipq-wifi-package,edgecore_ssw2ac2600,Edgecore SSW2AC2600)) + $(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) + $(eval $(call generate-ipq-wifi-package,engenius_eap2200,EnGenius EAP2200)) + $(eval $(call generate-ipq-wifi-package,engenius_emd1,EnGenius EMD1)) +diff --git a/package/firmware/ipq-wifi/board-edgecore_ssw2ac2600.qca9984 b/package/firmware/ipq-wifi/board-edgecore_ssw2ac2600.qca9984 +new file mode 100644 +index 0000000000000000000000000000000000000000..2c1992001d86268e0483b9e53ed4b563e224ada4 +GIT binary patch +literal 24324 +zcmeHPeN+=y7JnH)J}sG$q9`3c1goeK0|h^#2wJq7)|7S8P(=c$7>lM6tOyq5L#PH# +zk)SOLQb{PbK*6Pj7KMm{+M}HAIX$P{t+nl*ZU5Mw_MEnR+HQ}{?0YkrWC%pV*W$JNMrA-pycU-uvP6t6~?#Zd|)4eEovB4Y3KUL1tzqfTUW8Y5-zjNzLB3T$Q$K +zero2f1!)<(R10>cFAt}Bse2Xbbktomf4@S#OR*QzO-Pm;3Ch`U8Q?PT|IdJt8qx?-$yCb& +zRu}o9MFyajB?G|Nr;+IveG}PZkpVc!k^%S=)e9usOy^DCo9Oi|C6|)7|Da_6BFHMr +zCWrio>2p(}**lp`CSNq$0}x9}DZLAsY05O^Q}Sx^oavm&aDoTics$J64gNrZiF&tI +znv$;3e*DR2$mTP$6-N7z6vBd-@yjCP$N@5i^Z@Ok4l+X?pp~qGB@x;-kQEktt#*IX +z#*NbW#emOuGaE0S8#*gEH~{v3`TC3BOs2=7MC*|9w{LD^&dw+euJADu`lrzTUS7^- +z{~bG$5^3F?J3pFr0EFmN)Tr~x_e}4Z{%Ow9LUJM5PU-iN-hy=c8O +zf{6Gb0$)Zf6D^a{9|F6khN4qH;WfHtRj<}Gu}kO}NxC^hQ`dg+ruFS&u*CW`8CJY~ +zrKh3haPAhx%B#kfbDAP$s%*tTZ%e%eJp1z3vrtl05o1NE)5?1o+h0aaNbB +zPLzwUUT$gDlql1n!{rveCQm7sMM4JybdbxVEDi&GEe2hYdW$@&r{D07Mx)#*i$$(F +zje5I0X5eZ|qwa`$n|uj!IEF^(=&jKgl_+=1R(D)Nl49%H`Ep9kk$TZ_C@d!rT-^Oh-R-C|B=R +zJl}K0V9*q*74ju0bMUG{vC`u3>E({bnu4OO%9x(3FmACrMG@cA+tON7QM6YngIC{z +zSCf^LLwS`}JM3p;PszQm*vkxC&t-|74SO<|C3~4+>$xnkv%$%ZW&oqNu?Lwu_O3F> +z<$>)Sy^_``X_$M;_i%B?3+Ey#i6UIp*{f=Mwmz(UW^Ut!jCa=5JXtzDyQTk7*RyZ? +z7vt*su073?Qz0e3FBP2Mqz^ytpU2PWx|rRxp>|&BjQv%8$?vT&1ZV^YFZIWrc~ay1 +zviHuK3mMH(y1*hlv$}I(ChhiRwh@?UJZvb8z-jeruL +zY*lmI>!HQdvOE(@uWjm_SL=6lYSvrV_Iwak7jO*EuIyfK2&s@hbR*}z(UR&C(@4v9_?Z9%u +zfs;M)^|Q-`Szf8vt}HthRER4*Q(GmqGYTHt{lI?k+{C#Ia2WtDuI`>wy>Xw%r}@o%V(^O@)kE(K +zcOzFe4U%yv3Y--b6daW3;$}Ic9LCQv6%TWA!2ssuJjK-s +zdSI?o&^DW^EBaD%b#Oi0kXmu}{AG5{y!wx< +z9XbX&J)~&d#$a+L@J0NTs{nFa1qPTx_-*8GX?WGvDY5K!r2X +zBWlRU0Mbjm2kX&wI{tds5Xeky)Y9=qo&zoe!^B?=x7XQ++Rd}FB4rZ!tKjn;hlkWXpOo% +zB#Cs5aLJ4g>3^pfN!FOVoSaE#n|R(XaR1aM9*<`NXycQa2Wr!ttn*{$vYfY$S7siU +zvF*a@Anyg)kO64M{tD$%P=clbda*)S@1f*IN`3{-TMzjxXn+hrJJya>fGWs{S}~;4 +z04;VJ@?$(4G5}>*8Ro~sApbmsC^u^btsSEAwsUCE@iWp=IWOcP9>1ugk0jlap=rMf +z0BjGyZL^!Ut%#!eVRPn~rP;y3obKVt0d>eR2a#EVpYQ#o8~vTlc|PbFAX~kJ&d%vz +z^XbMubgp>{(wmT&b#+1-i;jsiQLS_{{KvJf{kpyO$=RVHlUeAKJNm4SKAn@wHg4XM +zlAfW_R-XP#oxZWDwY~G=rM~MoM}C2IjyJL=*9XQLQ0JghK^b!rN}Yj926d +zLa^Gj8kZ7MkyN@GM4BRT2_X?lq>DuhE*mP}-ZMrtbHr-*SVo{9{cQ1Afci-a) +z&mo-hA@m*%6!sOYQULIn23trlMP7E{L-6`g+`ZR$;qGrx6JS+i#oe<)Q6k)Ui?P+g +zziJo>xPGX+MPtR?2LhVmB?|A)m-CG3XXBS`C +zXP3Ks554LMX{h$W)IgjYYu9z~8gBP?>#GZLk`ki2FB=*Q3zCv!V+Q(~8%~zKqYXwNpSm8cYXEYoUI9qyRTFma`F>i2#@UVHPja#N=k~A^cyKj +zPUBKe=qfA0ZDaSF&|zD`(r#mQLr!5ra`=+|O9p*mVN&wq#RGi?L*Zd4QP`RjRl3T- +z^SeinJCeRff~d=nWR@IB%)M;j$u;_(oHVM`Csjlj1n%}p$~zN(bneSDGK9&+4I3)v +z9rD}dopees*M{f%XZXmE)&Kdm=)-}T!mZ_o=U-ctAFy}&_7hDnR7aKuWC_!ons!&O +zI1-XIJ-w?f=gnue0egJ5^`B2X8C4jv&u{0kcNDctj?FqaP5Ew9PVJhb^K$%^leS=P +z;4x)jtS4=7aO#GKkaBeE!`jISel1TildJWlZSaF#aH8`#oV1N;=@a5SkBWNdj@W|N +zr-wnfdz2mucMkQjKSFE`EJOBRI +zS6_aKfc{q8z5A~}e*fKf-$0!=e7+sdpB>*Sdw6|KJqn*Soq?$)rAm_h1?Axnc6 +z#C5m~a2en-z-55T0GEMBI0Hj5@eJ(VZQRc6hmOI(?%l_2j0f!_EciQO-Hlwxc}Fn7 +z6#q}Yz4h&_-jDzI=#P((PF6w}+WzL>zJScwqV|3w_@^F-2jT9I{C>;zmMg7eaQ6(h +zpTXRtb|Ti%gLOf6=XpW~K<%maoJ##=z!2E|&l55FC}KLaPY&ZcYB!20Os31daQ6s< +zP5oap(>aNF2y-x*_Z~Mkmx0O50K)ZS5ZAAI75?)+0l0p9czZ@anV5StHix^X&bmfh +zak%@@W{&f_Z!_S?nXx^rJzIa@E^v$!<8b#7Wo3ck+koY5x`XjpBg5?5doK7Nj2+EG + +literal 0 +HcmV?d00001 + +diff --git a/target/linux/ipq806x/base-files/etc/board.d/01_leds b/target/linux/ipq806x/base-files/etc/board.d/01_leds +index 74b94a29b4..05c63c817f 100755 +--- a/target/linux/ipq806x/base-files/etc/board.d/01_leds ++++ b/target/linux/ipq806x/base-files/etc/board.d/01_leds +@@ -17,6 +17,7 @@ compex,wpq864) + ucidef_set_led_usbport "usb" "USB" "green:usb" "usb1-port1" "usb2-port1" + ucidef_set_led_usbport "pcie-usb" "PCIe USB" "green:usb-pcie" "usb3-port1" + ;; ++edgecore,ssw2ac2600 |\ + edgecore,ecw5410) + ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wlan2g" "phy1tpt" + ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wlan5g" "phy0tpt" +diff --git a/target/linux/ipq806x/base-files/etc/board.d/02_network b/target/linux/ipq806x/base-files/etc/board.d/02_network +index 1a1cec51aa..146d42cb0a 100755 +--- a/target/linux/ipq806x/base-files/etc/board.d/02_network ++++ b/target/linux/ipq806x/base-files/etc/board.d/02_network +@@ -27,6 +27,7 @@ tplink,vr2600v) + ucidef_add_switch "switch0" \ + "1:lan" "2:lan" "3:lan" "4:lan" "6@eth1" "5:wan" "0@eth0" + ;; ++edgecore,ssw2ac2600 |\ + edgecore,ecw5410) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + if [ -b "$(find_mtd_part 0:art)" ]; then +diff --git a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +index b9d0fec25e..ae8feba798 100644 +--- a/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata ++++ b/target/linux/ipq806x/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +@@ -74,6 +74,7 @@ case "$FIRMWARE" in + caldata_extract "ART" 0x5000 0x2f20 + ath10k_patch_mac $(mtd_get_mac_binary ART 0x18) + ;; ++ edgecore,ssw2ac2600 |\ + edgecore,ecw5410) + if [ -b "$(find_mtd_part 0:art)" ]; then + caldata_extract "0:art" 0x1000 0x2f20 +@@ -121,6 +122,7 @@ case "$FIRMWARE" in + ;; + "ath10k/pre-cal-pci-0002:01:00.0.bin") + case $board in ++ edgecore,ssw2ac2600 |\ + edgecore,ecw5410) + if [ -b "$(find_mtd_part 0:art)" ]; then + caldata_extract "0:art" 0x5000 0x2f20 +diff --git a/target/linux/ipq806x/base-files/etc/init.d/bootcount b/target/linux/ipq806x/base-files/etc/init.d/bootcount +index cb32a4ed35..f555e1af9a 100755 +--- a/target/linux/ipq806x/base-files/etc/init.d/bootcount ++++ b/target/linux/ipq806x/base-files/etc/init.d/bootcount +@@ -9,6 +9,7 @@ boot() { + asrock,g10) + asrock_bootconfig_mangle "bootcheck" && reboot + ;; ++ edgecore,ssw2ac2600|\ + edgecore,ecw5410) + fw_setenv bootcount 0 + ;; +diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +index a5e18201df..f3ac923ccb 100644 +--- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh ++++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +@@ -29,6 +29,7 @@ platform_do_upgrade() { + CI_ROOTPART="ubi_rootfs" + nand_do_upgrade "$1" + ;; ++ edgecore,ssw2ac2600|\ + edgecore,ecw5410) + part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" + if [ "$part" = "rootfs1" ]; then +diff --git a/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-ssw2ac2600.dts b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-ssw2ac2600.dts +new file mode 100644 +index 0000000000..b5608c2f94 +--- /dev/null ++++ b/target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8068-ssw2ac2600.dts +@@ -0,0 +1,341 @@ ++#include "qcom-ipq8064-v2.0.dtsi" ++ ++#include ++#include ++ ++/ { ++ model = "Edgecore SSW2AC2600"; ++ compatible = "edgecore,ssw2ac2600", "qcom,ipq8064"; ++ ++ reserved-memory { ++ nss@40000000 { ++ reg = <0x40000000 0x1000000>; ++ no-map; ++ }; ++ ++ smem: smem@41000000 { ++ reg = <0x41000000 0x200000>; ++ no-map; ++ }; ++ ++ wifi_dump@44000000 { ++ reg = <0x44000000 0x600000>; ++ no-map; ++ }; ++ }; ++ ++ cpus { ++ idle-states { ++ CPU_SPC: spc { ++ status = "disabled"; ++ }; ++ }; ++ }; ++ ++ aliases { ++ serial1 = &gsbi1_serial; ++ mdio-gpio0 = &mdio0; ++ ethernet0 = &gmac3; ++ ethernet1 = &gmac2; ++ ++ led-boot = &led_power_green; ++ led-failsafe = &led_power_red; ++ led-running = &led_power_green; ++ led-upgrade = &led_power_green; ++ }; ++ ++ chosen { ++ bootargs-append = " console=ttyMSM0,115200n8 root=/dev/ubiblock0_1"; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ pinctrl-0 = <&button_pins>; ++ pinctrl-names = "default"; ++ ++ reset { ++ label = "reset"; ++ gpios = <&qcom_pinmux 25 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ debounce-interval = <60>; ++ wakeup-source; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ pinctrl-0 = <&led_pins>; ++ pinctrl-names = "default"; ++ ++ led_power_green: power_green { ++ label = "green:power"; ++ gpios = <&qcom_pinmux 16 GPIO_ACTIVE_HIGH>; ++ }; ++ ++ wlan2g_green { ++ label = "green:wlan2g"; ++ gpios = <&qcom_pinmux 23 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wlan2g_yellow { ++ label = "yellow:wlan2g"; ++ gpios = <&qcom_pinmux 24 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wlan5g_green { ++ label = "green:wlan5g"; ++ gpios = <&qcom_pinmux 26 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_power_red: power_red { ++ label = "red:power"; ++ gpios = <&qcom_pinmux 28 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wlan5g_yellow { ++ label = "yellow:wlan5g"; ++ gpios = <&qcom_pinmux 59 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++}; ++ ++ ++&qcom_pinmux { ++ spi_pins: spi_pins { ++ mux { ++ pins = "gpio18", "gpio19"; ++ function = "gsbi5"; ++ drive-strength = <10>; ++ bias-pull-down; ++ }; ++ ++ clk { ++ pins = "gpio21"; ++ function = "gsbi5"; ++ drive-strength = <12>; ++ bias-pull-down; ++ }; ++ ++ cs { ++ pins = "gpio20"; ++ function = "gpio"; ++ drive-strength = <10>; ++ bias-pull-up; ++ }; ++ }; ++ ++ led_pins: led_pins { ++ mux { ++ pins = "gpio16", "gpio23", "gpio24", "gpio26", ++ "gpio28", "gpio59"; ++ function = "gpio"; ++ drive-strength = <2>; ++ bias-pull-up; ++ }; ++ }; ++ ++ button_pins: button_pins { ++ mux { ++ pins = "gpio25"; ++ function = "gpio"; ++ drive-strength = <2>; ++ bias-pull-up; ++ }; ++ }; ++ ++ uart1_pins: uart1_pins { ++ mux { ++ pins = "gpio51", "gpio52", "gpio53", "gpio54"; ++ function = "gsbi1"; ++ drive-strength = <12>; ++ bias-none; ++ }; ++ }; ++}; ++ ++&gsbi1 { ++ qcom,mode = ; ++ status = "okay"; ++ ++ serial@12450000 { ++ status = "okay"; ++ ++ pinctrl-0 = <&uart1_pins>; ++ pinctrl-names = "default"; ++ }; ++}; ++ ++&gsbi5 { ++ qcom,mode = ; ++ status = "okay"; ++ ++ spi4: spi@1a280000 { ++ status = "okay"; ++ spi-max-frequency = <50000000>; ++ ++ pinctrl-0 = <&spi_pins>; ++ pinctrl-names = "default"; ++ ++ cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>; ++ ++ m25p80@0 { ++ compatible = "jedec,spi-nor"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ spi-max-frequency = <50000000>; ++ reg = <0>; ++ ++ partitions { ++ compatible = "qcom,smem-part"; ++ }; ++ }; ++ }; ++}; ++ ++&hs_phy_0 { /* USB3 port 0 HS phy */ ++ status = "okay"; ++}; ++ ++&hs_phy_1 { /* USB3 port 1 HS phy */ ++ status = "okay"; ++}; ++ ++&ss_phy_0 { /* USB3 port 0 SS phy */ ++ status = "okay"; ++}; ++ ++&ss_phy_1 { /* USB3 port 1 SS phy */ ++ status = "okay"; ++}; ++ ++&usb3_0 { ++ status = "okay"; ++}; ++ ++&usb3_1 { ++ status = "okay"; ++}; ++ ++&pcie1 { ++ status = "okay"; ++ ++ /delete-property/ pinctrl-0; ++ /delete-property/ pinctrl-names; ++ /delete-property/ perst-gpios; ++ ++ bridge@0,0 { ++ reg = <0x00000000 0 0 0 0>; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ ranges; ++ ++ wifi@1,0 { ++ compatible = "qcom,ath10k"; ++ status = "okay"; ++ reg = <0x00010000 0 0 0 0>; ++ qcom,ath10k-calibration-variant = "Edgecore-ECW5410-L"; ++ }; ++ }; ++}; ++ ++&pcie2 { ++ status = "okay"; ++ ++ /delete-property/ pinctrl-0; ++ /delete-property/ pinctrl-names; ++ /delete-property/ perst-gpios; ++ ++ bridge@0,0 { ++ reg = <0x00000000 0 0 0 0>; ++ #address-cells = <3>; ++ #size-cells = <2>; ++ ranges; ++ ++ wifi@1,0 { ++ compatible = "qcom,ath10k"; ++ status = "okay"; ++ reg = <0x00010000 0 0 0 0>; ++ qcom,ath10k-calibration-variant = "Edgecore-ECW5410-L"; ++ }; ++ }; ++}; ++ ++&nand_controller { ++ status = "okay"; ++ ++ pinctrl-0 = <&nand_pins>; ++ pinctrl-names = "default"; ++ ++ nand@0 { ++ compatible = "qcom,nandcs"; ++ ++ reg = <0>; ++ ++ nand-ecc-strength = <4>; ++ nand-bus-width = <8>; ++ nand-ecc-step-size = <512>; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ rootfs1@0 { ++ label = "rootfs1"; ++ reg = <0x0000000 0x4000000>; ++ }; ++ ++ rootfs2@4000000 { ++ label = "rootfs2"; ++ reg = <0x4000000 0x4000000>; ++ }; ++ }; ++ }; ++}; ++ ++&soc { ++ mdio1: mdio { ++ compatible = "virtual,mdio-gpio"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ status = "okay"; ++ ++ pinctrl-0 = <&mdio0_pins>; ++ pinctrl-names = "default"; ++ ++ gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH &qcom_pinmux 0 GPIO_ACTIVE_HIGH>; ++ ++ phy0: ethernet-phy@0 { ++ reg = <0>; ++ }; ++ ++ phy1: ethernet-phy@1 { ++ reg = <1>; ++ }; ++ }; ++}; ++ ++&gmac2 { ++ status = "okay"; ++ ++ qcom,id = <2>; ++ mdiobus = <&mdio0>; ++ ++ phy-mode = "sgmii"; ++ phy-handle = <&phy1>; ++}; ++ ++&gmac3 { ++ status = "okay"; ++ ++ qcom,id = <3>; ++ mdiobus = <&mdio1>; ++ ++ phy-mode = "sgmii"; ++ phy-handle = <&phy0>; ++}; ++ ++&adm_dma { ++ status = "okay"; ++}; +diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile +index 93e7ba3151..8c000075c6 100644 +--- a/target/linux/ipq806x/image/Makefile ++++ b/target/linux/ipq806x/image/Makefile +@@ -157,6 +157,20 @@ define Device/edgecore_ecw5410 + endef + TARGET_DEVICES += edgecore_ecw5410 + ++define Device/edgecore_ssw2ac2600 ++ $(call Device/FitImage) ++ $(call Device/UbiFit) ++ DEVICE_VENDOR := Edgecore ++ DEVICE_MODEL := SSW2AC2600 ++ SOC := qcom-ipq8068 ++ BLOCKSIZE := 128k ++ PAGESIZE := 2048 ++ DEVICE_DTS := qcom-ipq8068-ssw2ac2600 ++ DEVICE_DTS_CONFIG := config@v2.0-ap160 ++ DEVICE_PACKAGES := ath10k-firmware-qca9984-ct ipq-wifi-edgecore_ssw2ac2600 ++endef ++TARGET_DEVICES += edgecore_ssw2ac2600 ++ + define Device/linksys_ea7500-v1 + $(call Device/LegacyImage) + DEVICE_VENDOR := Linksys +diff --git a/target/linux/ipq806x/patches-5.4/0069-arm-boot-add-dts-files.patch b/target/linux/ipq806x/patches-5.4/0069-arm-boot-add-dts-files.patch +index b97d36fd7c..7cb1d9cc75 100644 +--- a/target/linux/ipq806x/patches-5.4/0069-arm-boot-add-dts-files.patch ++++ b/target/linux/ipq806x/patches-5.4/0069-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 +-@@ -842,7 +842,25 @@ dtb-$(CONFIG_ARCH_QCOM) += \ ++@@ -842,7 +842,26 @@ dtb-$(CONFIG_ARCH_QCOM) += \ + qcom-ipq4019-ap.dk04.1-c3.dtb \ + qcom-ipq4019-ap.dk07.1-c1.dtb \ + qcom-ipq4019-ap.dk07.1-c2.dtb \ +@@ -33,6 +33,7 @@ Signed-off-by: John Crispin + + qcom-ipq8065-r7800.dtb \ + + qcom-ipq8065-rt4230w-rev6.dtb \ + + qcom-ipq8068-ecw5410.dtb \ +++ qcom-ipq8068-ssw2ac2600.dtb \ + qcom-msm8660-surf.dtb \ + qcom-msm8960-cdp.dtb \ + qcom-msm8974-fairphone-fp2.dtb \ +-- +2.25.1 + diff --git a/profiles/edgecore_ssw2ac2600.yml b/profiles/edgecore_ssw2ac2600.yml new file mode 100644 index 000000000..cfbc04738 --- /dev/null +++ b/profiles/edgecore_ssw2ac2600.yml @@ -0,0 +1,16 @@ +--- +profile: edgecore_ssw2ac2600 +target: ipq806x +subtarget: generic +description: Build image for the EdgeCore SSW2AC2600 +image: bin/targets/ipq806x/generic/openwrt-ipq806x-generic-edgecore_ssw2ac2600-squashfs-nand-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