From 109ea3f9bf8784b55bee6a55b5c011470c14984c Mon Sep 17 00:00:00 2001 From: jackcybertan Date: Thu, 26 Jun 2025 08:11:50 +0000 Subject: [PATCH] WIFI-14728 ipq50xx : add sonicfi rap630e Signed-off-by: jackcybertan --- .github/workflows/build-dev.yml | 2 +- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-sonicfi-rap630e.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-sonicfi-rap630e.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 6 + .../ipq50xx/base-files/etc/board.d/02_network | 14 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 15 + .../ipq50xx/base-files/etc/init.d/hdwdt | 13 + .../base-files/lib/upgrade/platform.sh | 4 +- .../boot/dts/qcom/qcom-ipq5018-rap630e.dts | 895 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 11 + ...at-Add-hardware-watchdog-during-boot.patch | 27 + profiles/sonicfi_rap630e.yml | 15 + 13 files changed, 1002 insertions(+), 2 deletions(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630e.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630e.bin.QCN6122 create mode 100755 feeds/ipq807x_v5.4/ipq50xx/base-files/etc/init.d/hdwdt create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630e.dts create mode 100644 patches/0091-Feat-Add-hardware-watchdog-during-boot.patch create mode 100644 profiles/sonicfi_rap630e.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index ce060819d..aa3871f7c 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_wf189h', 'cig_wf189w', 'cig_wf672', '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_rap750e-h', 'sonicfi_rap750e-s', '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', 'emplus_wap588m', 'zyxel_nwa130be', 'sercomm_ap72tip-v4' ] + target: [ 'cig_wf189h', 'cig_wf189w', 'cig_wf672', '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_rap630e' , 'sonicfi_rap7110c-341x', 'sonicfi_rap750e-h', 'sonicfi_rap750e-s', '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', 'emplus_wap588m', 'zyxel_nwa130be', 'sercomm_ap72tip-v4' ] steps: - uses: actions/checkout@v3 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index aefa31ef6..bf890ed51 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -56,6 +56,7 @@ ALLWIFIBOARDS:= \ sonicfi-rap630w-311g \ sonicfi-rap630w-312g \ sonicfi-rap650c \ + sonicfi-rap630e \ tplink-ex227 \ tplink-ex447 \ yuncore-ax840 \ @@ -416,6 +417,7 @@ $(eval $(call generate-ath11k-wifi-package,sonicfi-rap630c-311g,Sonicfi RAP630C $(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,sonicfi-rap630e,SonicFi RAP630E)) $(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-rap630e.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630e.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..cf588ba1c4ea78ea76eb0b1884ddafa928ea6f25 GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630e.bin.QCN6122 b/feeds/ipq807x_v5.4/ath11k-wifi/board-sonicfi-rap630e.bin.QCN6122 new file mode 100644 index 0000000000000000000000000000000000000000..d2be0d4a6aee30eab099b597cefe91615befbb5a GIT binary patch literal 131072 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 /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} + caldata_die() { echo "caldata: " "$*" exit 1 @@ -122,6 +131,7 @@ ath11k/IPQ5018/hw1.0/caldata.bin) sonicfi,rap630c-311g|\ sonicfi,rap630w-311g|\ sonicfi,rap630w-312g|\ + sonicfi,rap630e|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,eap104|\ @@ -152,6 +162,7 @@ ath11k/qcn6122/hw1.0/caldata_1.bin) sonicfi,rap630c-311g|\ sonicfi,rap630w-311g|\ sonicfi,rap630w-312g|\ + sonicfi,rap630e|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,oap101|\ @@ -178,6 +189,7 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) ;; sonicfi,rap630c-311g|\ sonicfi,rap630w-311g|\ + sonicfi,rap630e|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ glinet,b3000) @@ -213,6 +225,9 @@ ath11k-macs) cybertan,eww631-b1) ath11k_generate_macs_eww631_b1 ;; + sonicfi,rap630e) + ath11k_generate_macs_rap630e + ;; edgecore,eap104|\ edgecore,oap101|\ edgecore,oap101-6e|\ diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/init.d/hdwdt b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/init.d/hdwdt new file mode 100755 index 000000000..bb6acbdbf --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/init.d/hdwdt @@ -0,0 +1,13 @@ +#!/bin/sh /etc/rc.common + +START=09 + +boot() { + . /lib/functions.sh + + case "$(board_name)" in + sonicfi,rap630e) + /sbin/hwwatchdog.sh & + ;; + esac +} 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 a113cd8d7..a3ff535eb 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 @@ -73,6 +73,7 @@ platform_check_image() { sonicfi,rap630c-311g|\ sonicfi,rap630w-311g|\ sonicfi,rap630w-312g|\ + sonicfi,rap630e|\ cybertan,eww631-a1|\ cybertan,eww631-b1|\ edgecore,eap104|\ @@ -149,7 +150,8 @@ platform_do_upgrade() { cybertan,eww631-b1|\ sonicfi,rap630c-311g|\ sonicfi,rap630w-311g|\ - sonicfi,rap630w-312g) + sonicfi,rap630w-312g|\ + sonicfi,rap630e) boot_part=$(fw_printenv bootfrom | cut -d = -f2) echo "Current bootfrom is $boot_part" if [[ $boot_part == 1 ]]; then diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630e.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630e.dts new file mode 100644 index 000000000..d641a37e4 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-rap630e.dts @@ -0,0 +1,895 @@ +/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" +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Sonicfi RAP630E"; + compatible = "sonicfi,rap630e", "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"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + 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>; + }; + ramoops: ramoops@50400000 { + compatible = "ramoops"; + reg = <0x0 0x50400000 0x0 0x80000>; // 512KB + record-size = <0x20000>; + console-size = <0x20000>; + pmsg-size = <0x20000>; + no-map; + }; + + #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 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>; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + }; + + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &phy_led_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: 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 = "gpio22", "gpio24", "gpio23", "gpio25"; + 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 = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pins: audio_pinmux { + }; + + leds_pins: leds_pins { + led_5g { + pins = "gpio34"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_2g { + pins = "gpio33"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_sys { + pins = "gpio26"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + hwwatchdog { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_onekey { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led34 { + label = "green:wifi5"; + gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + linux,default-trigger = "default-on"; + default-state = "on"; + }; + led33 { + label = "green:wifi2"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + linux,default-trigger = "default-on"; + default-state = "on"; + }; + led_power: led26 { + label = "green:power"; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + linux,default-trigger = "default-on"; + default-state = "on"; + }; + hwwatchdog { + label = "hwwatchdog"; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,default-trigger = "hwwatchdog"; + default-state = "timer"; + }; + led@28 { + label = "led_onekey"; + gpios = <&tlmm 28 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_onekey"; + 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"; +}; + +&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>; + qcom,caldb-size = <0x200000>; + mem-region = <&q6_ipq5018_data>; +#else + memory-region = <&q6_ipq5018_data>; +#endif + nss-radio-priority = <0>; + 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 + nss-radio-priority = <1>; + 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 = <0x60>; + 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>; + nss-radio-priority = <1>; +#endif + mem-region = <&q6_qcn6122_data2>; + qcom,caldb-size = <0x500000>; + status = "disabled"; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "disabled"; +}; + +&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 1fa14624d..e891f00a4 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -73,6 +73,17 @@ define Device/sonicfi_rap630w_311g endef TARGET_DEVICES += sonicfi_rap630w_311g +define Device/sonicfi_rap630e + DEVICE_TITLE := Sonicfi RAP630E + DEVICE_DTS := qcom-ipq5018-rap630e + SUPPORTED_DEVICES := sonicfi,rap630e + DEVICE_PACKAGES := ath11k-wifi-sonicfi-rap630e 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_rap630e + define Device/edgecore_eap104 DEVICE_TITLE := EdgeCore EAP104 DEVICE_DTS := qcom-ipq5018-eap104 diff --git a/patches/0091-Feat-Add-hardware-watchdog-during-boot.patch b/patches/0091-Feat-Add-hardware-watchdog-during-boot.patch new file mode 100644 index 000000000..e3d080c54 --- /dev/null +++ b/patches/0091-Feat-Add-hardware-watchdog-during-boot.patch @@ -0,0 +1,27 @@ +From 219050de5e05821db08af4f0c483169f9826a9b1 Mon Sep 17 00:00:00 2001 +From: "kent.kuo" +Date: Tue, 24 Jun 2025 09:22:34 +0000 +Subject: [PATCH] [Feat] Add hardware watchdog during boot. + +--- + package/base-files/files/sbin/hwwatchdog.sh | 7 +++++++ + 1 file changed, 7 insertions(+) + create mode 100755 package/base-files/files/sbin/hwwatchdog.sh + +diff --git a/package/base-files/files/sbin/hwwatchdog.sh b/package/base-files/files/sbin/hwwatchdog.sh +new file mode 100755 +index 0000000000..02dffe61a4 +--- /dev/null ++++ b/package/base-files/files/sbin/hwwatchdog.sh +@@ -0,0 +1,7 @@ ++#!/bin/sh ++while [ 1 ]; do ++ echo 1 > /sys/class/leds/hwwatchdog/brightness ++ sleep 1 ++ echo 0 > /sys/class/leds/hwwatchdog/brightness ++ sleep 1 ++done +\ No newline at end of file +-- +2.34.1 + diff --git a/profiles/sonicfi_rap630e.yml b/profiles/sonicfi_rap630e.yml new file mode 100644 index 000000000..59f6f3e0e --- /dev/null +++ b/profiles/sonicfi_rap630e.yml @@ -0,0 +1,15 @@ +--- +profile: sonicfi_rap630e +target: ipq50xx +subtarget: generic +description: Build image for the Sonicfi Wallmount EAP RAP630E +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-sonicfi_rap630e-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +packages: + - ipq50xx +include: + - ucentral-ap +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512