From c48d14588968cf60dea5ced5713cbd8534e41aff Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 26 Jul 2024 18:42:59 +0800 Subject: [PATCH] add sonicfi rap630c-311g and sonicfi rap630w-311g Signed-off-by: Your Name --- .github/workflows/build-dev.yml | 2 +- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 4 + .../board-sonicfi-rap630c-311g.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-sonicfi-rap630c-311g.bin.QCN6122 | Bin 0 -> 131072 bytes .../board-sonicfi-rap630w-311g.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-sonicfi-rap630w-311g.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/02_network | 4 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 34 + .../base-files/lib/upgrade/platform.sh | 4 + .../dts/qcom/qcom-ipq5018-rap630c-311g.dts | 915 ++++++++++++++++ .../dts/qcom/qcom-ipq5018-rap630w-311g.dts | 981 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 22 + .../ipq807x/base-files/etc/board.d/01_leds | 1 + profiles/sonicfi_rap630c-311g.yml | 13 + profiles/sonicfi_rap630w-311g.yml | 13 + 15 files changed, 1992 insertions(+), 1 deletion(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630c-311g.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630c-311g.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630w-311g.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630w-311g.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630c-311g.dts create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630w-311g.dts create mode 100644 profiles/sonicfi_rap630c-311g.yml create mode 100644 profiles/sonicfi_rap630w-311g.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index c29e6dbb..27c97c8a 100644 --- 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_wf196', 'cig_wf189', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'sercomm_ap72tip', 'udaya_a6-id2', 'wallys_dr5018', 'wallys_dr6018', 'wallys_dr6018-v4', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] + target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf196', 'cig_wf189', 'cybertan_eww631-a1', 'cybertan_eww631-b1','sonicfi_rap630c-311g', 'sonicfi_rap630w-311g', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'sercomm_ap72tip', 'udaya_a6-id2', 'wallys_dr5018', 'wallys_dr6018', 'wallys_dr6018-v4', '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 250e1ee7..96dd2f9b 100644 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -32,6 +32,8 @@ ALLWIFIBOARDS:= \ cybertan-eww622-a1 \ cybertan-eww631-a1 \ cybertan-eww631-b1 \ + sonicfi-rap630c-311g \ + sonicfi-rap630w-311g \ edgecore-eap101 \ gl-ax1800 \ gl-axt1800 \ @@ -377,6 +379,8 @@ $(eval $(call generate-ath11k-wifi-package,cig-wf194c4,Cigtech WF194c4)) $(eval $(call generate-ath11k-wifi-package,cybertan-eww622-a1,CyberTan EWW622 A1)) $(eval $(call generate-ath11k-wifi-package,cybertan-eww631-a1,CyberTan EWW631 A1)) $(eval $(call generate-ath11k-wifi-package,cybertan-eww631-b1,CyberTan EWW631 B1)) +$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,CyberTan RAP630C 311G)) +$(eval $(call generate-ath11k-wifi-package,sonicfi-rap630w-311g,CyberTan RAP630W 311G)) $(eval $(call generate-ath11k-wifi-package,sercomm-wallaby,Sercomm Kiwi)) $(eval $(call generate-ath11k-wifi-package,wallys-dr6018,Wallys DR6018)) $(eval $(call generate-ath11k-wifi-package,wallys-dr6018-v4,Wallys DR6018 V4)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630c-311g.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630c-311g.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..8fd712175efe4a5ceae9fb66985d95d5efee78e2 GIT binary patch literal 131072 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 {J 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 D1f{*k literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630w-311g.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630w-311g.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..d0f3451f5ec5deab8502b1297a6f1805020a2f83 GIT binary patch literal 131072 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 Nihv@Z2&4#s{||Oh!ukLJ literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network index 81f054e4..cd91ae68 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/02_network @@ -18,10 +18,12 @@ qcom_setup_interfaces() cig,wf186h) ucidef_add_switch "switch0" "4:wan" "1:lan" "2:lan" "6@eth0" ;; + sonicfi,rap630c-311g|\ cybertan,eww631-a1) ucidef_set_interface_wan "eth0" ucidef_set_interface_lan "" ;; + sonicfi,rap630w-311g|\ cybertan,eww631-b1) ucidef_add_switch "switch1" "5:wan" "2:lan" "3:lan" "4:lan" "6@eth0" ;; @@ -75,6 +77,8 @@ qcom_setup_macs() ucidef_set_network_device_mac eth0 $wan_mac ip link set eth0 address $wan_mac ;; + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1) mtd=$(find_mtd_chardev "0:APPSBLENV") diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index 0c3711f5..0c47dc3a 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -61,6 +61,28 @@ ath11k_generate_macs_eww631_b1() { echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs } +ath11k_generate_macs_rap630c_311g() { + touch /lib/firmware/ath11k-macs + local dev=$(find_mtd_chardev "0:APPSBLENV") + mac=$(grep BaseMacAddress= $dev | cut -d '=' -f2) + eth=$(macaddr_canonicalize $mac) + mac1=$(macaddr_add $eth 1) + mac2=$(macaddr_add $eth 2) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} + +ath11k_generate_macs_rap630w_311g() { + touch /lib/firmware/ath11k-macs + local dev=$(find_mtd_chardev "0:APPSBLENV") + mac=$(grep BaseMacAddress= $dev | cut -d '=' -f2) + eth=$(macaddr_canonicalize $mac) + mac1=$(macaddr_add $eth 2) + mac2=$(macaddr_add $eth 3) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} + caldata_die() { echo "caldata: " "$*" exit 1 @@ -86,6 +108,8 @@ ath11k/IPQ5018/hw1.0/caldata.bin) case "$board" in cig,wf186w|\ cig,wf186h|\ + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,eap104|\ @@ -110,6 +134,8 @@ ath11k/qcn6122/hw1.0/caldata_1.bin) case "$board" in cig,wf186w|\ cig,wf186h|\ + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,oap101|\ @@ -132,6 +158,8 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) edgecore,oap101e-6e) caldata_extract "0:ART" 0x4c000 0x20000 ;; + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1) caldata_extract "0:ART" 0x26800 0x20000 @@ -154,6 +182,12 @@ ath11k-macs) cig,wf186h) ath11k_generate_macs_wf186w ;; + sonicfi,rap630c-311g) + ath11k_generate_macs_rap630c_311g + ;; + sonicfi,rap630w-311g) + ath11k_generate_macs_rap630w_311g + ;; cybertan,eww631-a1) ath11k_generate_macs_eww631_a1 ;; diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh b/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh index b0525d59..c9cbfba2 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/lib/upgrade/platform.sh @@ -70,6 +70,8 @@ platform_check_image() { case $board in cig,wf186w|\ cig,wf186h|\ + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,eap104|\ @@ -136,6 +138,8 @@ platform_do_upgrade() { } nand_upgrade_tar "$1" ;; + sonicfi,rap630c-311g|\ + sonicfi,rap630w-311g|\ cybertan,eww631-a1|\ cybertan,eww631-b1) boot_part=$(fw_printenv bootfrom | cut -d = -f2) diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630c-311g.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630c-311g.dts new file mode 100644 index 00000000..10cc3a41 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630c-311g.dts @@ -0,0 +1,915 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Sonicfi RAP630C-311G"; + compatible = "sonicfi,rap630c-311g", "qcom,ipq5018-mp03.5", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0"; + }; + + reserved-memory { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + /* 256 MB Profile + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 8MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x40800000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D300000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E000000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E100000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E200000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4EF00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F000000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4100000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x1400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 { + no-map; + reg = <0x0 0x4E000000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 { + no-map; + reg = <0x0 0x4E100000 0x0 0x100000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 { + no-map; + reg = <0x0 0x4EF00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 { + no-map; + reg = <0x0 0x4F000000 0x0 0x100000>; + }; + #else + /* 512MB/1GB Profiles + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 16MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x41000000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D300000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D500000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E400000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E900000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4F800000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4D00000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 01400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D500000 { + no-map; + reg = <0x0 0x4D500000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 { + no-map; + reg = <0x0 0x4E300000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0x500000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E900000 { + no-map; + reg = <0x0 0x4E900000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F600000 { + no-map; + reg = <0x0 0x4F600000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F700000 { + no-map; + reg = <0x0 0x4F700000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4F800000 { + no-map; + reg = <0x0 0x4F800000 0x0 0x500000>; + }; + + #endif + }; + + soc { + serial@78af000 { + status = "ok"; + }; + + blsp1_uart2: serial@78b0000 { + pinctrl-0 = <&blsp1_uart_pins>; + pinctrl-names = "default"; + }; + + qpic_bam: dma@7984000{ + status = "ok"; + }; + + nand: qpic-nand@79b0000 { + pinctrl-0 = <&qspi_nand_pins>; + pinctrl-names = "default"; + status = "ok"; + }; + + spi_0: spi@78b5000 { /* BLSP1 QUP0 */ + pinctrl-0 = <&blsp0_spi_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; + }; + + mdio0: mdio@88000 { + status = "ok"; + + ethernet-phy@0 { + reg = <7>; + }; + }; + + mdio1: mdio@90000 { + status = "disabled"; + pinctrl-0 = <&mdio1_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 39 0>; + + ethernet-phy@0 { + reg = <28>; + }; + }; + + ess-instance { + num_devices = <0x1>; + ess-switch@0x39c00000 { + switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/ + cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <7>; + mdiobus = <&mdio0>; + }; + /* + port@1 { + port_id = <2>; + phy_address = <0x1c>; + mdiobus = <&mdio1>; + port_mac_sel = "QGMAC_PORT"; + }; + */ + }; + + led_source@0 { + source = <0>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <1>; + reg = <0x39C00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <7>; + mdio-bus = <&mdio0>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + /* + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <2>; + reg = <0x39D00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + mdio-bus = <&mdio1>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + */ + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_uart_pins { + blsp0_uart_rx_tx { + pins = "gpio20", "gpio21"; + function = "blsp0_uart0"; + bias-disable; + }; + }; + + blsp1_uart_pins: blsp1_uart_pins { + blsp1_uart_rx_tx { + pins = "gpio23", "gpio25", "gpio24", "gpio26"; + function = "blsp1_uart2"; + bias-disable; + }; + }; + + blsp0_spi_pins: blsp0_spi_pins { + mux { + pins = "gpio10", "gpio11", "gpio12", "gpio13"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-disable; + }; + }; + + qspi_nand_pins: qspi_nand_pins { + qspi_clock { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + + qspi_cs { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + + qspi_data { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + phy_led_pins: phy_led_pins { + gephy_led_pin { + pins = "gpio46"; + function = "led0"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + i2c_pins: i2c_pins { + i2c_scl { + pins = "gpio25"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + + i2c_sda { + pins = "gpio26"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; + leds_pins: leds_pinmux { + sys_blue { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + sys_red { + pins = "gpio36"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + sys_green { + pins = "gpio37"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 28 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + gpio_leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@30 { + label = "sys:blue"; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; /* GPIO_30 */ + default-state="on"; + /* linux,default-trigger = "timer"; + active-delay = <700>; + inactive-delay = <700>; + default-state="on"; */ + }; + led@36 { + label = "sys:red"; + gpios = <&tlmm 36 GPIO_ACTIVE_HIGH>; /* GPIO_36 */ + default-state="off"; + /* linux,default-trigger = "timer"; + active-delay = <700>; + inactive-delay = <700>; + default-state="on"; */ + }; + led@37 { + label = "sys:green"; + gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; /* GPIO_37 */ + default-state="off"; + /* linux,default-trigger = "timer"; + active-delay = <700>; + inactive-delay = <700>; + default-state="on"; */ + }; + }; + +}; + +&q6v5_wcss { + compatible = "qcom,ipq5018-q6-mpd"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + firmware = "IPQ5018/q6_fw.mdt"; + reg = <0x0cd00000 0x4040>, + <0x1938000 0x8>, + <0x193d204 0x4>; + reg-names = "qdsp6", + "tcsr-msip", + "tcsr-q6"; + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_Q6_BCR>; + + reset-names = "wcss_aon_reset", + "wcss_q6_reset"; + + clocks = <&gcc GCC_Q6_AXIS_CLK>, + <&gcc GCC_WCSS_ECAHB_CLK>, + <&gcc GCC_Q6_AXIM_CLK>, + <&gcc GCC_Q6_AXIM2_CLK>, + <&gcc GCC_Q6_AHB_CLK>, + <&gcc GCC_Q6_AHB_S_CLK>, + <&gcc GCC_WCSS_AXI_S_CLK>; + clock-names = "gcc_q6_axis_clk", + "gcc_wcss_ecahb_clk", + "gcc_q6_axim_clk", + "gcc_q6_axim2_clk", + "gcc_q6_ahb_clk", + "gcc_q6_ahb_s_clk", + "gcc_wcss_axi_s_clk"; + + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_mem_regions>, <&q6_etr_region>; + #else + memory-region = <&q6_mem_regions>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif + + qcom,rproc = <&q6v5_wcss>; + qcom,bootargs_smem = <507>; + boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>, + <0x2 0x4 0x2 0x12 0x0 0x0>; + status = "ok"; + q6_wcss_pd1: remoteproc_pd1@4ab000 { + compatible = "qcom,ipq5018-wcss-ahb-mpd"; + reg = <0x4ab000 0x20>; + reg-names = "rmb"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "IPQ5018/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_BCR>, + <&gcc GCC_CE_BCR>; + reset-names = "wcss_aon_reset", + "wcss_reset", + "ce_reset"; + + clocks = <&gcc GCC_WCSS_AHB_S_CLK>, + <&gcc GCC_WCSS_ACMT_CLK>, + <&gcc GCC_WCSS_AXI_M_CLK>; + clock-names = "gcc_wcss_ahb_s_clk", + "gcc_wcss_acmt_clk", + "gcc_wcss_axi_m_clk"; + + qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>; + #else + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>, <&q6_caldb_region>; + #endif + + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "qcn6122/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>; + #else + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>; + #endif + + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>; + #else + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>; + #endif + }; +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; + status = "disabled"; +}; + +&wifi0 { + /* IPQ5018 */ + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x24>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>; + qcom,caldb-addr = <0x4D300000 0x4D300000 0 0 0 0>; + qcom,caldb-size = <0x200000>; + mem-region = <&q6_ipq5018_data>; +1235 +#else + memory-region = <&q6_ipq5018_data>; +#endif + status = "ok"; +}; + +&wifi1 { + /* QCN6122 5G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,rproc = <&q6_wcss_pd3>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x60>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4E900000 0x4E900000 0x4E200000 0x0 0x0>; + qcom,caldb-addr = <0x4F800000 0x4F800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + +&wifi2 { + /* QCN6122 6G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0xb0>; + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; +#ifdef __CNSS2__ + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; +#else + qcom,caldb-addr = <0x4FF00000>; + m3-dump-addr = <0x4FD00000>; +#endif + qcom,caldb-size = <0x500000>; + status = "disabled"; +}; + +&usb3 { + status = "ok"; + device-power-gpio = <&tlmm 24 1>; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "disabled"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + + }; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630w-311g.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630w-311g.dts new file mode 100644 index 00000000..c2846f28 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630w-311g.dts @@ -0,0 +1,981 @@ +/dts-v1/; +/* Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. + * + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "ipq5018.dtsi" + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Sonicfi RAP630W-311G"; + compatible = "sonicfi,rap630w-311g", "qcom,ipq5018-mp03.5", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0"; + }; + + reserved-memory { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + /* 256 MB Profile + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 8MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x40800000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D300000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E000000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E100000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E200000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4EF00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F000000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4100000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x1400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 { + no-map; + reg = <0x0 0x4E000000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 { + no-map; + reg = <0x0 0x4E100000 0x0 0x100000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 { + no-map; + reg = <0x0 0x4EF00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 { + no-map; + reg = <0x0 0x4F000000 0x0 0x100000>; + }; + #else + /* 512MB/1GB Profiles + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 16MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x41000000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 14MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D300000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D400000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D600000 | 16MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E800000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4ED00000 | 16MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4FD00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4FE00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4FF00000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x5400000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 01400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xE00000>; + }; + + m3_dump: m3_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D400000 { + no-map; + reg = <0x0 0x4D400000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D600000 { + no-map; + reg = <0x0 0x4D600000 0x0 0x1000000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E600000 { + no-map; + reg = <0x0 0x4E600000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E700000 { + no-map; + reg = <0x0 0x4E700000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E800000 { + no-map; + reg = <0x0 0x4E800000 0x0 0x500000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E900000 { + no-map; + reg = <0x0 0x4ED00000 0x0 0x1000000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4FD00000 { + no-map; + reg = <0x0 0x4FD00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4FE00000 { + no-map; + reg = <0x0 0x4FE00000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4FF00000 { + no-map; + reg = <0x0 0x4FF00000 0x0 0x500000>; + }; + + #endif + }; + + soc { + serial@78af000 { + status = "ok"; + }; +/* + blsp1_uart2: serial@78b0000 { + pinctrl-0 = <&blsp1_uart_pins>; + pinctrl-names = "default"; + }; +*/ + qpic_bam: dma@7984000{ + status = "ok"; + }; + + nand: qpic-nand@79b0000 { + pinctrl-0 = <&qspi_nand_pins>; + pinctrl-names = "default"; + status = "ok"; + }; + + spi_0: spi@78b5000 { /* BLSP1 QUP0 */ + pinctrl-0 = <&blsp0_spi_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "ok"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "n25q128a11"; + linux,modalias = "m25p80", "n25q128a11"; + spi-max-frequency = <50000000>; + use-default-sizes; + }; + }; + + mdio0: mdio@88000 { + status = "ok"; + + ethernet-phy@0 { + reg = <7>; + }; + }; + + mdio1: mdio@90000 { + status = "ok"; + pinctrl-0 = <&mdio1_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 38 0>; + + ethernet-phy@0 { + reg = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + + ethernet-phy@4 { + reg = <4>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/ + cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <7>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + led_source@0 { + source = <0>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + ess-switch1@1 { + compatible = "qcom,ess-switch-qca83xx"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio1>; + reset_gpio = <&tlmm 0x26 0>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap (Port 6 GMAC) */ + switch_lan_bmp = <0x3c>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ + qca,ar8327-initvals = < + 0x00004 0x7600000 /* PAD0_MODE */ + 0x00008 0x1000000 /* PAD5_MODE */ + 0x0000c 0x80 /* PAD6_MODE */ + 0x00010 0x2613a0 /* PORT6 FORCE MODE*/ + 0x000e4 0xaa545 /* MAC_POWER_SEL */ + 0x000e0 0xc74164de /* SGMII_CTRL */ + 0x0007c 0x4e /* PORT0_STATUS */ + 0x00094 0x4e /* PORT6_STATUS */ + >; + 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 = <4>; + }; + }; + }; + }; + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <2>; + reg = <0x39D00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <1>; + reg = <0x39C00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <7>; + mdio-bus = <&mdio0>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + }; + + qcom,test@0 { + status = "ok"; + }; + +/* + lpass: lpass@0xA000000{ + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + status = "disabled"; + }; + + pcm_lb: pcm_lb@0 { + status = "disabled"; + }; +*/ + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins>; //<&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: blsp0_uart_pins { + blsp0_uart_rx_tx { + pins = "gpio20", "gpio21"; + function = "blsp0_uart0"; + bias-disable; + }; + }; +/* + blsp1_uart_pins: blsp1_uart_pins { + blsp1_uart_rx_tx { + pins = "gpio23", "gpio25", "gpio24", "gpio26"; + function = "blsp1_uart2"; + bias-disable; + }; + }; +*/ + blsp0_spi_pins: blsp0_spi_pins { + mux { + pins = "gpio10", "gpio11", "gpio12", "gpio13"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-disable; + }; + }; + + qspi_nand_pins: qspi_nand_pins { + qspi_clock { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + + qspi_cs { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + + qspi_data { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +/* + phy_led_pins: phy_led_pins { + gephy_led_pin { + pins = "gpio46"; + function = "led0"; + drive-strength = <8>; + bias-pull-down; + }; + }; +*/ + i2c_pins: i2c_pins { + i2c_scl { + pins = "gpio25"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + + i2c_sda { + pins = "gpio26"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + }; + + button_pins: button_pins { + reset_button { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +/* + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +*/ + poe_pins: poe_pinmux { + /* + LAN port PoE output enable + H --> enable; L --> disable (Default setting to H) + */ + mux_0 { /* PoE_OUT_EN */ + pins = "gpio24"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + output-high; + }; + + mux_1 { /* PSE_INT_N */ + pins = "gpio27"; + function = "gpio"; + bias-pull-up; + input; + }; + }; + + leds_pins: leds_pinmux { + sys_green { + pins = "gpio1"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + sys_blue { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + sys_red { + pins = "gpio46"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 28 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + gpio_leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@1 { + label = "sys:green"; + gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; /* GPIO_1/ATST_QP0 */ + default-state="off"; + }; + led@30 { + label = "sys:blue"; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; /* GPIO_30 */ + default-state="on"; + }; + led@46 { + label = "sys:red"; + gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; /* GPIO_46 */ + default-state="off"; + }; + }; +}; + +&q6v5_wcss { + compatible = "qcom,ipq5018-q6-mpd"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + firmware = "IPQ5018/q6_fw.mdt"; + reg = <0x0cd00000 0x4040>, + <0x1938000 0x8>, + <0x193d204 0x4>; + reg-names = "qdsp6", + "tcsr-msip", + "tcsr-q6"; + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_Q6_BCR>; + + reset-names = "wcss_aon_reset", + "wcss_q6_reset"; + + clocks = <&gcc GCC_Q6_AXIS_CLK>, + <&gcc GCC_WCSS_ECAHB_CLK>, + <&gcc GCC_Q6_AXIM_CLK>, + <&gcc GCC_Q6_AXIM2_CLK>, + <&gcc GCC_Q6_AHB_CLK>, + <&gcc GCC_Q6_AHB_S_CLK>, + <&gcc GCC_WCSS_AXI_S_CLK>; + clock-names = "gcc_q6_axis_clk", + "gcc_wcss_ecahb_clk", + "gcc_q6_axim_clk", + "gcc_q6_axim2_clk", + "gcc_q6_ahb_clk", + "gcc_q6_ahb_s_clk", + "gcc_wcss_axi_s_clk"; + + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_mem_regions>, <&q6_etr_region>; + #else + memory-region = <&q6_mem_regions>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif + + qcom,rproc = <&q6v5_wcss>; + qcom,bootargs_smem = <507>; + boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>, + <0x2 0x4 0x2 0x12 0x0 0x0>; + status = "ok"; + q6_wcss_pd1: remoteproc_pd1@4ab000 { + compatible = "qcom,ipq5018-wcss-ahb-mpd"; + reg = <0x4ab000 0x20>; + reg-names = "rmb"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "IPQ5018/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_BCR>, + <&gcc GCC_CE_BCR>; + reset-names = "wcss_aon_reset", + "wcss_reset", + "ce_reset"; + + clocks = <&gcc GCC_WCSS_AHB_S_CLK>, + <&gcc GCC_WCSS_ACMT_CLK>, + <&gcc GCC_WCSS_AXI_M_CLK>; + clock-names = "gcc_wcss_ahb_s_clk", + "gcc_wcss_acmt_clk", + "gcc_wcss_axi_m_clk"; + + qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>; + #else + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>, <&q6_caldb_region>; + #endif + + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "qcn6122/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>; + #else + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>; + #endif + + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>; + #else + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>; + #endif + }; +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&wifi0 { + /* IPQ5018 */ + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x24>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0 0x0>; + qcom,caldb-addr = <0x4D300000 0x4D300000 0 0 0 0>; + qcom,caldb-size = <0x200000>; + mem-region = <&q6_ipq5018_data>; +#else + memory-region = <&q6_ipq5018_data>; +#endif + status = "ok"; +}; + +&wifi1 { + /* QCN6122 5G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; + qcom,rproc = <&q6_wcss_pd3>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x60>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4E900000 0x4E900000 0x4E200000 0x0 0x0>; + qcom,caldb-addr = <0x4F800000 0x4F800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + +&wifi2 { + /* QCN6122 6G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0xb0>; + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; +#ifdef __CNSS2__ + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; +#else + qcom,caldb-addr = <0x4FF00000>; + m3-dump-addr = <0x4FD00000>; +#endif + qcom,caldb-size = <0x500000>; + status = "disabled"; +}; + +&usb3 { + status = "ok"; + device-power-gpio = <&tlmm 24 1>; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "disabled"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + + }; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index dda83d71..6f6b6eb6 100644 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -40,6 +40,28 @@ define Device/cybertan_eww631_b1 endef TARGET_DEVICES += cybertan_eww631_b1 +define Device/sonicfi_rap630c_311g + DEVICE_TITLE := Sonicfi RAP630C-311G + DEVICE_DTS := qcom-ipq5018-rap630c-311g + SUPPORTED_DEVICES := sonicfi,rap630c-311g + DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap630c-311g ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + IMAGE/nand-factory.ubi := append-ubi +endef +TARGET_DEVICES += sonicfi_rap630c_311g + +define Device/sonicfi_rap630w_311g + DEVICE_TITLE := Sonicfi RAP630W-311G + DEVICE_DTS := qcom-ipq5018-rap630w-311g + SUPPORTED_DEVICES := sonicfi,rap630w-311g + DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap630w-311g ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 + IMAGES := sysupgrade.tar nand-factory.bin nand-factory.ubi + IMAGE/nand-factory.ubi := append-ubi +endef +TARGET_DEVICES += sonicfi_rap630w_311g + define Device/edgecore_eap104 DEVICE_TITLE := EdgeCore EAP104 DEVICE_DTS := qcom-ipq5018-eap104 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 1d0f1aad..7259f565 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 @@ -18,6 +18,7 @@ edgecore,oap102) ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy0tpt" ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy1tpt" ;; +sonicfi,rap630w-311g|\ cybertan,eww631-b1) ucidef_set_led_default "power" "POWER" "sys:blue" "on" ;; diff --git a/profiles/sonicfi_rap630c-311g.yml b/profiles/sonicfi_rap630c-311g.yml new file mode 100644 index 00000000..9dea8df3 --- /dev/null +++ b/profiles/sonicfi_rap630c-311g.yml @@ -0,0 +1,13 @@ +--- +profile: sonicfi_rap630c_311g +target: ipq50xx +subtarget: generic +description: Build image for the Sonicfi Ceiling Mount EAP RAP630C-311G +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-sonicfi_rap630c_311g-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +packages: + - ipq50xx +include: + - ucentral-ap diff --git a/profiles/sonicfi_rap630w-311g.yml b/profiles/sonicfi_rap630w-311g.yml new file mode 100644 index 00000000..eb571a67 --- /dev/null +++ b/profiles/sonicfi_rap630w-311g.yml @@ -0,0 +1,13 @@ +--- +profile: sonicfi_rap630w_311g +target: ipq50xx +subtarget: generic +description: Build image for the Sonicfi Wallmount EAP RAP630W-311G +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-sonicfi_rap630w_311g-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +packages: + - ipq50xx +include: + - ucentral-ap