From fc700364d119b3223114be711ef09c0665e2ee0a Mon Sep 17 00:00:00 2001 From: jackcybertan Date: Mon, 10 Mar 2025 17:47:33 +0800 Subject: [PATCH] ipq807x: add sonicfi rap650c Fixes: WIFI-14494 Signed-off-by: jackcybertan --- .github/workflows/build-dev.yml | 2 +- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-sonicfi-rap650c.bin.IPQ8074 | Bin 0 -> 131072 bytes .../ipq807x/base-files/etc/board.d/01_leds | 1 + .../ipq807x/base-files/etc/board.d/02_network | 11 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 18 + .../hotplug.d/firmware/11-ath11k-pdev-stats | 3 +- .../base-files/lib/upgrade/platform.sh | 13 + .../boot/dts/qcom/qcom-ipq807x-rap650c.dts | 650 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk | 11 + profiles/sonicfi_rap650c.yml | 15 + 11 files changed, 724 insertions(+), 2 deletions(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap650c.bin.IPQ8074 create mode 100644 feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-rap650c.dts create mode 100644 profiles/sonicfi_rap650c.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 4505f1c52..d848f777a 100755 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap7110c-341x', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] + target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf189', 'cig_wf196', 'cig_wf196', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'sonicfi_rap630w-312g', 'sonicfi_rap63xc-211g', 'sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'sonicfi_rap630w-211g', 'sonicfi_rap650c', 'sonicfi_rap7110c-341x', 'sonicfi_rap750w-311a', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_eap112', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'edgecore_oap103', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'senao_iap4300m', 'senao_iap2300m', 'senao_jeap6500', 'udaya_a6-id2', 'udaya_a6-od2', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] steps: - uses: actions/checkout@v3 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index fb1c93778..d158bf6de 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -53,6 +53,7 @@ ALLWIFIBOARDS:= \ sonicfi-rap630c-311g \ sonicfi-rap630w-311g \ sonicfi-rap630w-312g \ + sonicfi-rap650c \ tplink-ex227 \ tplink-ex447 \ yuncore-ax840 \ @@ -410,6 +411,7 @@ $(eval $(call generate-ath11k-wifi-package,indio-um-510axm-v1,Indio UM-510AXM V1 $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C 311G)) $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,Sonicfi RAP630W 311G)) $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-312g,Sonicfi RAP630W 312G)) +$(eval $(call generate-ath11k-wifi-package,sonicfi-rap650c,SonicFi RAP650C)) $(eval $(call generate-ath11k-wifi-package,tplink-ex227,TP-Link EX227)) $(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447)) $(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap650c.bin.IPQ8074 b/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap650c.bin.IPQ8074 new file mode 100644 index 0000000000000000000000000000000000000000..637e8fd2fe83f77346536ea1413dc1dde2727e57 GIT binary patch literal 131072 zcmeHw33OD~ndV=wo=OWs2vJg1fdENW5`s8xjBOT4fCLDHk%Z8`0b;SiHeeZpjWHm0 zvxrr~V8?L?@si`??sgm}@tG6bB+fGFBy;-o>B%JSbe3*slJ4p0VLF)}r%%Sr_q|uI z^a?Qbgcgu=Z~a$w|99_ym+$}YfA70`PjZQ_3&Y->-}UR_?nt|@-uT&I{A@ISHW@#g zjh`(>Y5X{S4^#K?hl@X~a2lKzb;ZiL?z`=}Dq;We6+56GE{14BcREj46WBqynY;GWX$y!Kjn&Mzy3u#)4%E0qZ$(Q(0L!( zlPK{4?B`Iy(=EwSko2#%`dFLCBYXc!{^s(3-TSlRzn5QM{;2o$T?mKXOMbe9%b(!B zljEoNJa&#QndZJAcG1`+T&|C?jP%6V62rHI4jgV4httT*t7;ot+tzRFJl%ca#fvY0 z`HeTxr#Xx13CnAH6`~_MJyBTzcbbIEZ9@C^F$a5&tV9 z-u=L%RU`?ATJaNbkNCf?#%wR^ry>*I7YSSvNk0I2Y&b^UE0Qo7^8e&O{%0bYXg~0B zSRUtVqwa@%7Uchj1NmQ||L=zT&-PcM|1(8AV-PRfq}tmz~ErG{oY{k^DqXlqJ7F+7^L+Q1IrE$n{`AmxDp%3 zY+z_$@FklbEe!rSwtN;bq#aloG{Fv_N2hi$nRZM&fE|t7XZAmF26UJS41OQG{fHe{ z7=&%fz+gP;_}{VXAO;gThA;-Ht1t%GkuevXU|`t+=fbsi@Gr63H!!#?;=_5)IL>9X z-&+hOLl1^Oz!=8SmT60{#du;8P7daNyGn489rmi53Qh(18ya-UHtWtP-z>R0*~Y=~qJP`${WI&!+ib6|>kF-?iaK&0_1fw~|BU*) zHoaMGsc(hA?LeUY=%v^Fd zi%dF;`|3wTGHOK9a6XiRGqPj{Bg*@ZNa*W0FFlX*kxe*fg1i^!oT=%kLyuiS-uFa; zZ;DJl4f!pQuZKL&RZ?+JpAzRlp6!1P?Vp1@`tPrXJf1*I9S3;_zs1SN*;42|k!+k% zPQ=-eAHIGZ`acGb4JA1^mzjdIt>F7;|7D!d9K;zD)~Io_MMjT?yn}O$r2iXxs^>#K_gm;c&ZQ>dd@=xeFV2O=q~dJFLI1gTWe9yAbwCf3oPUz!AA)=i+MoP9+J}4w<>x|= zS&&bOEuZ^swEtDepGEr*hucU0owiRL4Lbmi6Ay�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 Hy$Jk&ac1U* literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/01_leds b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/01_leds index c3c0d37fb..d53c857c7 100755 --- a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/01_leds +++ b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/01_leds @@ -21,6 +21,7 @@ edgecore,oap103) ucidef_set_led_wlan "power" "POWER" "green:power" "default-on" ;; sonicfi,rap630w-311g|\ +sonicfi,rap650c|\ cybertan,eww631-b1) ucidef_set_led_default "power" "POWER" "sys:blue" "on" ;; diff --git a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/02_network b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/02_network index 0be4450b3..70539436d 100755 --- a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/board.d/02_network @@ -24,6 +24,7 @@ qcom_setup_interfaces() edgecore,eap102|\ edgecore,oap102|\ edgecore,oap103|\ + sonicfi,rap650c|\ cig,wf196) ucidef_set_interface_lan "eth1" ucidef_set_interface_wan "eth0" @@ -50,6 +51,16 @@ qcom_setup_macs() ip link set eth1 address $lan_mac ucidef_set_label_macaddr $wan_mac ;; + sonicfi,rap650c) + mac=$(fw_printenv -n BaseMacAddress) + [ -z "$mac" ] && return; + wan_mac=$(macaddr_canonicalize $mac) + lan_mac=$(macaddr_add "$wan_mac" 1) + ucidef_set_network_device_mac eth0 $wan_mac + ucidef_set_network_device_mac eth1 $lan_mac + ip link set eth0 address $wan_mac + ip link set eth1 address $lan_mac + ;; *) wan_mac=$(cat /sys/class/net/eth0/address) lan_mac=$(macaddr_add "$wan_mac" 1) diff --git a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index 8ccb1afe9..baec71c76 100755 --- a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -16,6 +16,20 @@ ath11k_generate_macs() { echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs } +ath11k_generate_macs_sonicfi() { + mac=$(fw_printenv -n BaseMacAddress) + [ -z "$mac" ] && return; + + touch /lib/firmware/ath11k-macs + eth=$(macaddr_canonicalize $mac) + mac1=$(macaddr_add $eth 2) + mac2=$(macaddr_add $eth 3) + mac3=$(macaddr_add $eth 4) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs +} + ath11k_generate_macs_wf196() { touch /lib/firmware/ath11k-macs mac=$(grep BaseMacAddress= /dev/mtd18 | cut -dx -f2) @@ -63,6 +77,7 @@ case "$FIRMWARE" in tplink,ex227|\ tplink,ex447|\ yuncore,ax840|\ + sonicfi,rap650c|\ sercomm,wallaby) caldata_extract "0:ART" 0x1000 0x20000 ;; @@ -97,6 +112,9 @@ ath11k-macs) cig,wf196) ath11k_generate_macs_wf196 ;; + sonicfi*) + ath11k_generate_macs_sonicfi + ;; esac ;; ath11k/IPQ8074/hw2.0/board.bin) diff --git a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-pdev-stats b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-pdev-stats index 12ac910d8..198a6ecff 100755 --- a/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-pdev-stats +++ b/feeds/ipq807x_v5.4/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-pdev-stats @@ -10,7 +10,8 @@ case "$board" in ln -s /sys/kernel/debug/ath11k/ipq6018\ hw1.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g ;; "edgecore,eap102"|\ - "edgecore,oap103") + "edgecore,oap103"|\ + "sonicfi,rap650c") ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac0/fw_stats/pdev_stats /tmp/pdev_stats_phy5g ln -s /sys/kernel/debug/ath11k/ipq8074\ hw2.0/mac1/fw_stats/pdev_stats /tmp/pdev_stats_phy2g ;; diff --git a/feeds/ipq807x_v5.4/ipq807x/base-files/lib/upgrade/platform.sh b/feeds/ipq807x_v5.4/ipq807x/base-files/lib/upgrade/platform.sh index 6d28b9800..4746b06f4 100755 --- a/feeds/ipq807x_v5.4/ipq807x/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x_v5.4/ipq807x/base-files/lib/upgrade/platform.sh @@ -29,6 +29,7 @@ platform_check_image() { edgecore,oap102|\ edgecore,oap103|\ edgecore,eap106|\ + sonicfi,rap650c|\ tplink,ex227|\ tplink,ex447) [ "$magic_long" = "73797375" ] && return 0 @@ -83,5 +84,17 @@ platform_do_upgrade() { fi nand_upgrade_tar "$1" ;; + sonicfi,rap650c) + boot_part=$(fw_printenv -n bootfrom) + [ ${#boot_part} -eq 0 ] && boot_part=0 + echo "Current bootfrom is $boot_part" + if [[ $boot_part == 1 ]]; then + CI_UBIPART="rootfs" + CI_FWSETENV="bootfrom 0" + elif [[ $boot_part == 0 ]]; then + CI_UBIPART="rootfs_1" + CI_FWSETENV="bootfrom 1" + fi + nand_upgrade_tar "$1" esac } diff --git a/feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-rap650c.dts b/feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-rap650c.dts new file mode 100644 index 000000000..e6a5bcad2 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq807x-rap650c.dts @@ -0,0 +1,650 @@ +// SPDX-License-Identifier: GPL-2.0-only +/dts-v1/; +/* Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ +#include "ipq8074.dtsi" +#include "ipq8074-hk-cpu.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "SonicFi RAP650C"; + compatible = "sonicfi,rap650c", "qcom,ipq8074-ap-hk09", "qcom,ipq8074"; + qcom,msm-id = <0x157 0x0>, <0x187 0x0>; + interrupt-parent = <&intc>; + + aliases { + serial0 = &blsp1_uart5; + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + stdout-path = "serial0"; + }; + + soc { + pinctrl@1000000 { + button_pins: button_pins { + reset_button { + pins = "gpio57"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + usb_mux_sel_pins: usb_mux_pins { + mux { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + pcie0_pins: pcie_pins { + pcie0_rst { + pins = "gpio58"; + function = "pcie0_rst"; + drive-strength = <8>; + bias-pull-down; + }; + pcie0_wake { + pins = "gpio59"; + function = "pcie0_wake"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio25"; + function = "gpio"; + bias-pull-up; + }; + mux_3 { + pins = "gpio44"; + function = "gpio"; + bias-pull-up; + }; + }; + + led_pins: led_pins { + red { + pins = "gpio0"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + green { + pins = "gpio2"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + blue { + pins = "gpio9"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_3_pins: spi_3_pins { + mux { + pins = "gpio50", "gpio52", "gpio53"; + function = "blsp3_spi"; + drive-strength = <8>; + bias-disable; + }; + spi_cs { + pins = "gpio22"; + function = "blsp3_spi2"; + drive-strength = <8>; + bias-disable; + }; + quartz_interrupt { + pins = "gpio47"; + function = "gpio"; + input; + bias-disable; + }; + quartz_reset { + pins = "gpio21"; + function = "gpio"; + output-low; + bias-disable; + }; + }; + }; + + serial@78b3000 { + status = "ok"; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <24>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <6>; + reg = <0x3a001a00 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + phy-mode = "sgmii"; + }; + + spi@78b5000 { + status = "ok"; + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + + m25p80@0 { + compatible = "n25q128a11"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <50000000>; + }; + }; + + spi@78b8000 { + status = "ok"; + pinctrl-0 = <&spi_3_pins>; + pinctrl-names = "default"; + cs-select = <2>; + quartz-reset-gpio = <&tlmm 21 1>; + + spidev3: spi@3 { + compatible = "qti,spidev"; + reg = <0>; + spi-max-frequency = <24000000>; + }; + }; + + dma@7984000 { + status = "ok"; + }; + + nand@79b0000 { + status = "ok"; + + nand@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + }; + }; + + qusb@79000 { + status = "ok"; + }; + + ssphy@78000 { + status = "ok"; + }; + + usb3@8A00000 { + status = "ok"; + }; + + qusb@59000 { + status = "ok"; + }; + + ssphy@58000 { + status = "ok"; + }; + + usb3@8C00000 { + status = "ok"; + }; + + phy@84000 { + status = "ok"; + }; + + phy@86000 { + status = "ok"; + }; + + pci@20000000 { + perst-gpio = <&tlmm 58 1>; + status = "ok"; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + status = "ok"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + + red { + label = "sys:red"; + gpio = <&tlmm 0 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + green { + label = "sys:green"; + gpio = <&tlmm 2 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led_power: blue { + label = "sys:blue"; + gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; + + mdio: mdio@90000 { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 37 0 &tlmm 25 0 &tlmm 44 0>; + phy0: ethernet-phy@0 { + reg = <0>; + }; + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <24>; + }; + phy5: ethernet-phy@5 { + reg = <28>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x3e>; /* lan port bitmap */ + switch_wan_bmp = <0x40>; /* wan port bitmap */ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ + bm_tick_mode = <0>; /* bm tick mode */ + tm_tick_mode = <0>; /* tm tick mode */ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + port@4 { + port_id = <5>; + phy_address = <24>; + port_mac_sel = "QGMAC_PORT"; + }; + port@5 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; + port_scheduler_resource { + port@0 { + port_id = <0>; + ucast_queue = <0 143>; + mcast_queue = <256 271>; + l0sp = <0 35>; + l0cdrr = <0 47>; + l0edrr = <0 47>; + l1cdrr = <0 7>; + l1edrr = <0 7>; + }; + port@1 { + port_id = <1>; + ucast_queue = <144 159>; + mcast_queue = <272 275>; + l0sp = <36 39>; + l0cdrr = <48 63>; + l0edrr = <48 63>; + l1cdrr = <8 11>; + l1edrr = <8 11>; + }; + port@2 { + port_id = <2>; + ucast_queue = <160 175>; + mcast_queue = <276 279>; + l0sp = <40 43>; + l0cdrr = <64 79>; + l0edrr = <64 79>; + l1cdrr = <12 15>; + l1edrr = <12 15>; + }; + port@3 { + port_id = <3>; + ucast_queue = <176 191>; + mcast_queue = <280 283>; + l0sp = <44 47>; + l0cdrr = <80 95>; + l0edrr = <80 95>; + l1cdrr = <16 19>; + l1edrr = <16 19>; + }; + port@4 { + port_id = <4>; + ucast_queue = <192 207>; + mcast_queue = <284 287>; + l0sp = <48 51>; + l0cdrr = <96 111>; + l0edrr = <96 111>; + l1cdrr = <20 23>; + l1edrr = <20 23>; + }; + port@5 { + port_id = <5>; + ucast_queue = <208 223>; + mcast_queue = <288 291>; + l0sp = <52 55>; + l0cdrr = <112 127>; + l0edrr = <112 127>; + l1cdrr = <24 27>; + l1edrr = <24 27>; + }; + port@6 { + port_id = <6>; + ucast_queue = <224 239>; + mcast_queue = <292 295>; + l0sp = <56 59>; + l0cdrr = <128 143>; + l0edrr = <128 143>; + l1cdrr = <28 31>; + l1edrr = <28 31>; + }; + port@7 { + port_id = <7>; + ucast_queue = <240 255>; + mcast_queue = <296 299>; + l0sp = <60 63>; + l0cdrr = <144 159>; + l0edrr = <144 159>; + l1cdrr = <32 35>; + l1edrr = <32 35>; + }; + }; + port_scheduler_config { + port@0 { + port_id = <0>; + l1scheduler { + group@0 { + sp = <0 1>; /*L0 SPs*/ + /*cpri cdrr epri edrr*/ + cfg = <0 0 0 0>; + }; + }; + l0scheduler { + group@0 { + /*unicast queues*/ + ucast_queue = <0 4 8>; + /*multicast queues*/ + mcast_queue = <256 260>; + /*sp cpri cdrr epri edrr*/ + cfg = <0 0 0 0 0>; + }; + group@1 { + ucast_queue = <1 5 9>; + mcast_queue = <257 261>; + cfg = <0 1 1 1 1>; + }; + group@2 { + ucast_queue = <2 6 10>; + mcast_queue = <258 262>; + cfg = <0 2 2 2 2>; + }; + group@3 { + ucast_queue = <3 7 11>; + mcast_queue = <259 263>; + cfg = <0 3 3 3 3>; + }; + }; + }; + port@1 { + port_id = <1>; + l1scheduler { + group@0 { + sp = <36>; + cfg = <0 8 0 8>; + }; + group@1 { + sp = <37>; + cfg = <1 9 1 9>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <144>; + ucast_loop_pri = <16>; + mcast_queue = <272>; + mcast_loop_pri = <4>; + cfg = <36 0 48 0 48>; + }; + }; + }; + port@2 { + port_id = <2>; + l1scheduler { + group@0 { + sp = <40>; + cfg = <0 12 0 12>; + }; + group@1 { + sp = <41>; + cfg = <1 13 1 13>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <160>; + ucast_loop_pri = <16>; + mcast_queue = <276>; + mcast_loop_pri = <4>; + cfg = <40 0 64 0 64>; + }; + }; + }; + port@3 { + port_id = <3>; + l1scheduler { + group@0 { + sp = <44>; + cfg = <0 16 0 16>; + }; + group@1 { + sp = <45>; + cfg = <1 17 1 17>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <176>; + ucast_loop_pri = <16>; + mcast_queue = <280>; + mcast_loop_pri = <4>; + cfg = <44 0 80 0 80>; + }; + }; + }; + port@4 { + port_id = <4>; + l1scheduler { + group@0 { + sp = <48>; + cfg = <0 20 0 20>; + }; + group@1 { + sp = <49>; + cfg = <1 21 1 21>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <192>; + ucast_loop_pri = <16>; + mcast_queue = <284>; + mcast_loop_pri = <4>; + cfg = <48 0 96 0 96>; + }; + }; + }; + port@5 { + port_id = <5>; + l1scheduler { + group@0 { + sp = <52>; + cfg = <0 24 0 24>; + }; + group@1 { + sp = <53>; + cfg = <1 25 1 25>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <208>; + ucast_loop_pri = <16>; + mcast_queue = <288>; + mcast_loop_pri = <4>; + cfg = <52 0 112 0 112>; + }; + }; + }; + port@6 { + port_id = <6>; + l1scheduler { + group@0 { + sp = <56>; + cfg = <0 28 0 28>; + }; + group@1 { + sp = <57>; + cfg = <1 29 1 29>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <224>; + ucast_loop_pri = <16>; + mcast_queue = <292>; + mcast_loop_pri = <4>; + cfg = <56 0 128 0 128>; + }; + }; + }; + port@7 { + port_id = <7>; + l1scheduler { + group@0 { + sp = <60>; + cfg = <0 32 0 32>; + }; + group@1 { + sp = <61>; + cfg = <1 33 1 33>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <240>; + ucast_loop_pri = <16>; + mcast_queue = <296>; + cfg = <60 0 144 0 144>; + }; + }; + }; + }; + }; + + nss-macsec0 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x18>; + phy_access_mode = <0>; + mdiobus = <&mdio>; + }; + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + phy_access_mode = <0>; + mdiobus = <&mdio>; + }; + }; +}; + +&wifi0 { + qcom,board_id = <0x90>; +}; + +&wifi1 { + qcom,board_id = <0x290>; +}; diff --git a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk index fa9ccf0e0..487f3c322 100644 --- a/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk +++ b/feeds/ipq807x_v5.4/ipq807x/image/ipq807x.mk @@ -57,6 +57,17 @@ define Device/edgecore_eap106 endef #TARGET_DEVICES += edgecore_eap106 +define Device/sonicfi_rap650c + DEVICE_TITLE := SonicFi RAP650C + DEVICE_DTS := qcom-ipq807x-rap650c + DEVICE_DTS_CONFIG=config@hk09 + SUPPORTED_DEVICES := sonicfi,rap650c + DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap650c uboot-envtools + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + IMAGE/nand-factory.ubi := append-ubi +endef +TARGET_DEVICES += sonicfi_rap650c + define Device/tplink_ex227 DEVICE_TITLE := TP-Link EX227 DEVICE_DTS := qcom-ipq807x-ex227 diff --git a/profiles/sonicfi_rap650c.yml b/profiles/sonicfi_rap650c.yml new file mode 100644 index 000000000..ed09bd1aa --- /dev/null +++ b/profiles/sonicfi_rap650c.yml @@ -0,0 +1,15 @@ +--- +profile: sonicfi_rap650c +target: ipq807x +subtarget: generic +description: Build image for the SonicFi RAP650C +image: bin/targets/ipq807x/generic/openwrt-ipq807x-sonicfi_rap650c-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq807x +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=0