From b4a7cca81dd22169891d1877d2678dd3931b8121 Mon Sep 17 00:00:00 2001 From: pratibha Date: Mon, 7 Apr 2025 12:19:13 +0530 Subject: [PATCH 1/2] WIFI-14493: Add support for Indio 525AXM wifi6 AP Based on IPQ5018 platform. Signed-off-by: Pratibha Kuril --- feeds/indio/indio/Makefile | 33 + feeds/indio/indio/files/bin/hwwatchdog.sh | 8 + feeds/indio/indio/files/bin/sys_led.sh | 69 ++ feeds/indio/indio/files/etc/rc.local | 5 + feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-indio-um-525axm.bin.IPQ5018 | Bin 0 -> 131073 bytes .../board-indio-um-525axm.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 5 +- .../ipq50xx/base-files/etc/board.d/02_network | 6 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 7 +- .../base-files/lib/upgrade/platform.sh | 4 +- .../dts/qcom/qcom-ipq5018-indio-um-525axm.dts | 940 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 9 + profiles/indio_um-525axm.yml | 20 + 14 files changed, 1103 insertions(+), 5 deletions(-) create mode 100644 feeds/indio/indio/Makefile create mode 100755 feeds/indio/indio/files/bin/hwwatchdog.sh create mode 100755 feeds/indio/indio/files/bin/sys_led.sh create mode 100755 feeds/indio/indio/files/etc/rc.local create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts create mode 100644 profiles/indio_um-525axm.yml diff --git a/feeds/indio/indio/Makefile b/feeds/indio/indio/Makefile new file mode 100644 index 000000000..992d98919 --- /dev/null +++ b/feeds/indio/indio/Makefile @@ -0,0 +1,33 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=indio +PKG_VERSION:=1.0 +PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/indio + SECTION:=base + CATEGORY:=Utilities + TITLE:=indio Package + DEPENDS:=+base-files +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Compile/Default + +endef + +Build/Compile = $(Build/Compile/Default) + +define Package/indio/install + cp -rf ./files/* $(1) + $(INSTALL_DIR) $(1)/etc + $(INSTALL_DATA) ./files/rc.local $(1)/etc/rc.local + $(INSTALL_DATA) ./files/sys_led.sh $(1)/bin/sys_led.sh + $(INSTALL_DATA) ./files/hwwatchdog.sh $(1)/bin/hwwatchdog.sh +endef + $(eval $(call BuildPackage,indio)) diff --git a/feeds/indio/indio/files/bin/hwwatchdog.sh b/feeds/indio/indio/files/bin/hwwatchdog.sh new file mode 100755 index 000000000..cf3e46feb --- /dev/null +++ b/feeds/indio/indio/files/bin/hwwatchdog.sh @@ -0,0 +1,8 @@ +#!/bin/sh +while [ 1 ]; do + echo 1 > /sys/class/leds/hwwatchdog/brightness + sleep 1 + echo 0 > /sys/class/leds/hwwatchdog/brightness + sleep 1 +done + diff --git a/feeds/indio/indio/files/bin/sys_led.sh b/feeds/indio/indio/files/bin/sys_led.sh new file mode 100755 index 000000000..2ebd3fdf0 --- /dev/null +++ b/feeds/indio/indio/files/bin/sys_led.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# Maximum number of retries +max_retries=5 + +# Delay between retries (in seconds) +retry_delay=1 + +# Function to turn on the LED (green) +turn_on_green_led() +{ + echo "1" > /sys/class/leds/led_2g/brightness + echo "0" > /sys/class/leds/led_5g/brightness + echo "0" > /sys/class/leds/led_sys/brightness + +} + +# Function to turn on the LED (red) +turn_on_blue_led() +{ + echo "1" > /sys/class/leds/led_2g/brightness + echo "1" > /sys/class/leds/led_5g/brightness + echo "0" > /sys/class/leds/led_sys/brightness +} + +turn_on_pink_led() +{ + + echo "0" > /sys/class/leds/led_2g/brightness + echo "1" > /sys/class/leds/led_5g/brightness + echo "1" > /sys/class/leds/led_sys/brightness +} + +# Function to check internet connectivity +check_internet() +{ + if ping -q -c 1 -W 1 8.8.8.8 > /dev/null; then +# echo "Internet is working" + return 0 + else +# echo "Internet is not working" + return 1 + fi +} + +# Main loop to continuously check internet connectivity +while true; do + # Attempt to check internet connectivity with retries + attempt=1 + while [ $attempt -le $max_retries ]; do + #echo "Attempt $attempt:" + if check_internet; then + turn_on_green_led + break # Exit the retry loop if internet is working + fi + attempt=$(( attempt + 1 )) + sleep $retry_delay + + done + + # If all attempts fail, turn on red LED and continue loop + if [ $attempt -gt $max_retries ]; then + turn_on_blue_led + fi + + # Sleep before the next iteration + sleep 10 +done + diff --git a/feeds/indio/indio/files/etc/rc.local b/feeds/indio/indio/files/etc/rc.local new file mode 100755 index 000000000..9d7f9c287 --- /dev/null +++ b/feeds/indio/indio/files/etc/rc.local @@ -0,0 +1,5 @@ +# Put your custom commands here that should be executed once +# the system init finished. By default this file does nothing. +/bin/sh /bin/hwwatchdog.sh & +/bin/sh /bin/sys_led.sh & +exit 0 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 840139021..502c0a89c 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -45,6 +45,7 @@ ALLWIFIBOARDS:= \ indio-um-310ax-v1 \ indio-um-510axp-v1 \ indio-um-510axm-v1 \ + indio-um-525axm \ muxi-ap3220l \ plasmacloud-pax1800 \ wallys-dr5018 \ @@ -404,6 +405,7 @@ $(eval $(call generate-ath11k-wifi-package,edgecore-oap102,Edgecore OAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap104,Edgecore EAP104)) $(eval $(call generate-ath11k-wifi-package,liteon-wpx8324,Liteon WPX8324)) $(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) +$(eval $(call generate-ath11k-wifi-package,indio-um-525axm,Indio UM-525AXM)) $(eval $(call generate-ath11k-wifi-package,indio-um-510axp-v1,Indio UM-510AXP V1)) $(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)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..9eaf360448a0dd088921a22b389550576b7090c6 GIT binary patch literal 131073 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 Q0cAiLPzIENNn+st0po*d)c^nh literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds index 0b53c4358..c0cd6ee6d 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds @@ -10,11 +10,12 @@ case "$board" in wallys,dr5018) ucidef_set_led_netdev "wan" "wan" "green:uplink" "eth0" ;; -edgecore,eap104) +edgecore,eap104|\ +indio,um-525axm) ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt" ucidef_set_led_netdev "wan" "wan" "yellow:uplink" "eth0" - ucidef_set_led_default "power" "POWER" "green:power" "on" + # ucidef_set_led_default "power" "POWER" "green:power" "on" ;; cig,wf186h|\ cig,wf186w) 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 2f5b1a1d7..56546a943 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 @@ -48,6 +48,12 @@ qcom_setup_interfaces() ucidef_add_switch "switch1" \ "6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" ;; + indio,um-525axm) + ucidef_set_interface_wan "eth1" + ucidef_set_interface_lan "eth0" + ucidef_add_switch "switch1" \ + "6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" + ;; hfcl,ion4x_w|\ hfcl,ion4xi_w) ucidef_set_interface_wan "eth0" 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 49c17f14a..bcb4fadc6 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 @@ -131,6 +131,7 @@ ath11k/IPQ5018/hw1.0/caldata.bin) edgecore,oap101e-6e|\ hfcl,ion4x_w|\ hfcl,ion4xi_w|\ + indio,um-525xm|\ optimcloud,d60|\ optimcloud,d60-5g|\ optimcloud,d50|\ @@ -171,7 +172,8 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) wallys,dr5018|\ edgecore,eap104|\ edgecore,oap101-6e|\ - edgecore,oap101e-6e) + edgecore,oap101e-6e|\ + indio,um-525axm) caldata_extract "0:ART" 0x4c000 0x20000 ;; sonicfi,rap630c-311g|\ @@ -220,7 +222,8 @@ ath11k-macs) optimcloud,d50|\ optimcloud,d50-5g|\ cybertan,rap630w-312g|\ - yuncore,fap655) + yuncore,fap655|\ + indio,um-525axm) ath11k_generate_macs ;; hfcl,ion4x_w|\ 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 461772f31..a158cde43 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 @@ -79,6 +79,7 @@ platform_check_image() { wallys,dr5018|\ hfcl,ion4x_w|\ hfcl,ion4xi_w|\ + indio,um-525axm|\ optimcloud,d60|\ optimcloud,d60-5g|\ optimcloud,d50|\ @@ -109,7 +110,8 @@ platform_do_upgrade() { edgecore,oap101-6e|\ edgecore,oap101e|\ edgecore,oap101e-6e|\ - edgecore,eap104) + edgecore,eap104|\ + indio,um-525axm) CI_UBIPART="rootfs1" [ "$(find_mtd_chardev rootfs)" ] && CI_UBIPART="rootfs" nand_upgrade_tar "$1" diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts new file mode 100644 index 000000000..acd47eb92 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts @@ -0,0 +1,940 @@ +/dts-v1/; +/* Copyright (c) 2018-2020, The Linux Foundation. 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 = "Indio UM-525axm"; + compatible = "indio,um-525axm", "qcom,ipq5018-mp03.5-c1", "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"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + bootargs-append = " swiotlb=1"; + #else + bootargs-append = " swiotlb=1 coherent_pool=2M"; + #endif + 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 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E400000 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F400000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4500000>; + }; + + 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 0xF00000>; + }; + + 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_data2: q6_qcn6122_data2@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0xF00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 { + no-map; + reg = <0x0 0x4F300000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 { + no-map; + reg = <0x0 0x4F400000 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 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"; + }; + }; + ess-switch1@1 { + compatible = "qcom,ess-switch-qca83xx"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio1>; + reset_gpio = <0x28>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap */ + switch_lan_bmp = <0x1e>; /* 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 = <28>; + }; + }; + }; + }; + + 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"; + }; + + 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,test@0 { + status = "ok"; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + + 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 &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_0 { + pins = "gpio7"; + function = "qspi0"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_1 { + pins = "gpio6"; + function = "qspi1"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_2 { + pins = "gpio5"; + function = "qspi2"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_3 { + pins = "gpio4"; + function = "qspi3"; + 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"; + + led@33 { + label = "led_5g"; + gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_5g"; + default-state = "off"; + }; + led@34 { + label = "led_2g"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_2g"; + default-state = "off"; + }; + led@26 { + label = "led_sys"; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_sys"; + default-state = "on"; + }; + hwwatchdog { + label = "hwwatchdog"; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,default-trigger = "hwwatchdog"; + default-state = "on"; + }; + 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"; + 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 = <0x4D400000 0x4D400000 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_userpd2"; + qcom,rproc = <&q6_wcss_pd2>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x50>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>; + qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data1>; +#else + memory-region = <&q6_qcn6122_data1>; +#endif + status = "disabled"; +}; + +&wifi2 { + /* QCN6122 6G */ + 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 = <0xb0>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + + +&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 { + #status = "disabled"; + #perst-gpio = <&tlmm 18 1>; + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + #status = "disabled"; + #perst-gpio = <&tlmm 15 1>; + 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 c3ce88a47..3ad71cc04 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -82,6 +82,15 @@ define Device/edgecore_eap104 endef TARGET_DEVICES += edgecore_eap104 +define Device/indio_um-525axm + DEVICE_TITLE := Indio UM-525axm + DEVICE_DTS := qcom-ipq5018-indio-um-525axm + SUPPORTED_DEVICES := indio,um-525axm + DEVICE_PACKAGES := ath11k-wifi-indio-um-525axm ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 +endef +TARGET_DEVICES += indio_um-525axm + define Device/udaya_a6_id2 DEVICE_TITLE := Udaya A6 - ID2 DEVICE_DTS := qcom-ipq5018-udaya-a6-id2 diff --git a/profiles/indio_um-525axm.yml b/profiles/indio_um-525axm.yml new file mode 100644 index 000000000..66b8bac55 --- /dev/null +++ b/profiles/indio_um-525axm.yml @@ -0,0 +1,20 @@ +--- +profile: indio_um-525axm +target: ipq50xx +subtarget: generic +description: Build image for the Indio UM-525axm +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-indio_um-525axm-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 + - name: indio + path: ../../feeds/indio +include: + - ucentral-ap +packages: + - ipq50xx + - indio +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 + CONFIG_BUSYBOX_CUSTOM=y + CONFIG_BUSYBOX_CONFIG_STTY=y From 4d569ed907b0de8bb69caeff3248da8c039affc8 Mon Sep 17 00:00:00 2001 From: pratibha Date: Mon, 7 Apr 2025 15:44:14 +0530 Subject: [PATCH 2/2] WIFI-14454: Add support for Indio 525AXM wifi6 AP Based on IPQ5018 platform. Signed-off-by: Pratibha Kuril --- feeds/indio/indio/Makefile | 33 + feeds/indio/indio/files/bin/hwwatchdog.sh | 8 + feeds/indio/indio/files/bin/sys_led.sh | 69 ++ feeds/indio/indio/files/etc/rc.local | 5 + feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-indio-um-525axm.bin.IPQ5018 | Bin 0 -> 131073 bytes .../board-indio-um-525axm.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 5 +- .../ipq50xx/base-files/etc/board.d/02_network | 6 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 7 +- .../base-files/lib/upgrade/platform.sh | 4 +- .../dts/qcom/qcom-ipq5018-indio-um-525axm.dts | 940 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 9 + profiles/indio_um-525axm.yml | 20 + 14 files changed, 1103 insertions(+), 5 deletions(-) create mode 100644 feeds/indio/indio/Makefile create mode 100755 feeds/indio/indio/files/bin/hwwatchdog.sh create mode 100755 feeds/indio/indio/files/bin/sys_led.sh create mode 100755 feeds/indio/indio/files/etc/rc.local create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts create mode 100644 profiles/indio_um-525axm.yml diff --git a/feeds/indio/indio/Makefile b/feeds/indio/indio/Makefile new file mode 100644 index 000000000..992d98919 --- /dev/null +++ b/feeds/indio/indio/Makefile @@ -0,0 +1,33 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=indio +PKG_VERSION:=1.0 +PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/indio + SECTION:=base + CATEGORY:=Utilities + TITLE:=indio Package + DEPENDS:=+base-files +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Compile/Default + +endef + +Build/Compile = $(Build/Compile/Default) + +define Package/indio/install + cp -rf ./files/* $(1) + $(INSTALL_DIR) $(1)/etc + $(INSTALL_DATA) ./files/rc.local $(1)/etc/rc.local + $(INSTALL_DATA) ./files/sys_led.sh $(1)/bin/sys_led.sh + $(INSTALL_DATA) ./files/hwwatchdog.sh $(1)/bin/hwwatchdog.sh +endef + $(eval $(call BuildPackage,indio)) diff --git a/feeds/indio/indio/files/bin/hwwatchdog.sh b/feeds/indio/indio/files/bin/hwwatchdog.sh new file mode 100755 index 000000000..cf3e46feb --- /dev/null +++ b/feeds/indio/indio/files/bin/hwwatchdog.sh @@ -0,0 +1,8 @@ +#!/bin/sh +while [ 1 ]; do + echo 1 > /sys/class/leds/hwwatchdog/brightness + sleep 1 + echo 0 > /sys/class/leds/hwwatchdog/brightness + sleep 1 +done + diff --git a/feeds/indio/indio/files/bin/sys_led.sh b/feeds/indio/indio/files/bin/sys_led.sh new file mode 100755 index 000000000..2ebd3fdf0 --- /dev/null +++ b/feeds/indio/indio/files/bin/sys_led.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# Maximum number of retries +max_retries=5 + +# Delay between retries (in seconds) +retry_delay=1 + +# Function to turn on the LED (green) +turn_on_green_led() +{ + echo "1" > /sys/class/leds/led_2g/brightness + echo "0" > /sys/class/leds/led_5g/brightness + echo "0" > /sys/class/leds/led_sys/brightness + +} + +# Function to turn on the LED (red) +turn_on_blue_led() +{ + echo "1" > /sys/class/leds/led_2g/brightness + echo "1" > /sys/class/leds/led_5g/brightness + echo "0" > /sys/class/leds/led_sys/brightness +} + +turn_on_pink_led() +{ + + echo "0" > /sys/class/leds/led_2g/brightness + echo "1" > /sys/class/leds/led_5g/brightness + echo "1" > /sys/class/leds/led_sys/brightness +} + +# Function to check internet connectivity +check_internet() +{ + if ping -q -c 1 -W 1 8.8.8.8 > /dev/null; then +# echo "Internet is working" + return 0 + else +# echo "Internet is not working" + return 1 + fi +} + +# Main loop to continuously check internet connectivity +while true; do + # Attempt to check internet connectivity with retries + attempt=1 + while [ $attempt -le $max_retries ]; do + #echo "Attempt $attempt:" + if check_internet; then + turn_on_green_led + break # Exit the retry loop if internet is working + fi + attempt=$(( attempt + 1 )) + sleep $retry_delay + + done + + # If all attempts fail, turn on red LED and continue loop + if [ $attempt -gt $max_retries ]; then + turn_on_blue_led + fi + + # Sleep before the next iteration + sleep 10 +done + diff --git a/feeds/indio/indio/files/etc/rc.local b/feeds/indio/indio/files/etc/rc.local new file mode 100755 index 000000000..9d7f9c287 --- /dev/null +++ b/feeds/indio/indio/files/etc/rc.local @@ -0,0 +1,5 @@ +# Put your custom commands here that should be executed once +# the system init finished. By default this file does nothing. +/bin/sh /bin/hwwatchdog.sh & +/bin/sh /bin/sys_led.sh & +exit 0 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index 840139021..502c0a89c 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -45,6 +45,7 @@ ALLWIFIBOARDS:= \ indio-um-310ax-v1 \ indio-um-510axp-v1 \ indio-um-510axm-v1 \ + indio-um-525axm \ muxi-ap3220l \ plasmacloud-pax1800 \ wallys-dr5018 \ @@ -404,6 +405,7 @@ $(eval $(call generate-ath11k-wifi-package,edgecore-oap102,Edgecore OAP102)) $(eval $(call generate-ath11k-wifi-package,edgecore-eap104,Edgecore EAP104)) $(eval $(call generate-ath11k-wifi-package,liteon-wpx8324,Liteon WPX8324)) $(eval $(call generate-ath11k-wifi-package,indio-um-310ax-v1,Indio UM-310AX V1)) +$(eval $(call generate-ath11k-wifi-package,indio-um-525axm,Indio UM-525AXM)) $(eval $(call generate-ath11k-wifi-package,indio-um-510axp-v1,Indio UM-510AXP V1)) $(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)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-indio-um-525axm.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..9eaf360448a0dd088921a22b389550576b7090c6 GIT binary patch literal 131073 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 Q0cAiLPzIENNn+st0po*d)c^nh literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds index 0b53c4358..c0cd6ee6d 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds +++ b/feeds/ipq807x_v5.4/ipq50xx/base-files/etc/board.d/01_leds @@ -10,11 +10,12 @@ case "$board" in wallys,dr5018) ucidef_set_led_netdev "wan" "wan" "green:uplink" "eth0" ;; -edgecore,eap104) +edgecore,eap104|\ +indio,um-525axm) ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "phy1tpt" ucidef_set_led_netdev "wan" "wan" "yellow:uplink" "eth0" - ucidef_set_led_default "power" "POWER" "green:power" "on" + # ucidef_set_led_default "power" "POWER" "green:power" "on" ;; cig,wf186h|\ cig,wf186w) 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 2f5b1a1d7..56546a943 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 @@ -48,6 +48,12 @@ qcom_setup_interfaces() ucidef_add_switch "switch1" \ "6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" ;; + indio,um-525axm) + ucidef_set_interface_wan "eth1" + ucidef_set_interface_lan "eth0" + ucidef_add_switch "switch1" \ + "6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" + ;; hfcl,ion4x_w|\ hfcl,ion4xi_w) ucidef_set_interface_wan "eth0" 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 49c17f14a..bcb4fadc6 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 @@ -131,6 +131,7 @@ ath11k/IPQ5018/hw1.0/caldata.bin) edgecore,oap101e-6e|\ hfcl,ion4x_w|\ hfcl,ion4xi_w|\ + indio,um-525xm|\ optimcloud,d60|\ optimcloud,d60-5g|\ optimcloud,d50|\ @@ -171,7 +172,8 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) wallys,dr5018|\ edgecore,eap104|\ edgecore,oap101-6e|\ - edgecore,oap101e-6e) + edgecore,oap101e-6e|\ + indio,um-525axm) caldata_extract "0:ART" 0x4c000 0x20000 ;; sonicfi,rap630c-311g|\ @@ -220,7 +222,8 @@ ath11k-macs) optimcloud,d50|\ optimcloud,d50-5g|\ cybertan,rap630w-312g|\ - yuncore,fap655) + yuncore,fap655|\ + indio,um-525axm) ath11k_generate_macs ;; hfcl,ion4x_w|\ 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 461772f31..a158cde43 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 @@ -79,6 +79,7 @@ platform_check_image() { wallys,dr5018|\ hfcl,ion4x_w|\ hfcl,ion4xi_w|\ + indio,um-525axm|\ optimcloud,d60|\ optimcloud,d60-5g|\ optimcloud,d50|\ @@ -109,7 +110,8 @@ platform_do_upgrade() { edgecore,oap101-6e|\ edgecore,oap101e|\ edgecore,oap101e-6e|\ - edgecore,eap104) + edgecore,eap104|\ + indio,um-525axm) CI_UBIPART="rootfs1" [ "$(find_mtd_chardev rootfs)" ] && CI_UBIPART="rootfs" nand_upgrade_tar "$1" diff --git a/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts new file mode 100644 index 000000000..acd47eb92 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-indio-um-525axm.dts @@ -0,0 +1,940 @@ +/dts-v1/; +/* Copyright (c) 2018-2020, The Linux Foundation. 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 = "Indio UM-525axm"; + compatible = "indio,um-525axm", "qcom,ipq5018-mp03.5-c1", "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"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + bootargs-append = " swiotlb=1"; + #else + bootargs-append = " swiotlb=1 coherent_pool=2M"; + #endif + 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 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E400000 | 15MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F400000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4500000>; + }; + + 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 0xF00000>; + }; + + 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_data2: q6_qcn6122_data2@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0xF00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F300000 { + no-map; + reg = <0x0 0x4F300000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F400000 { + no-map; + reg = <0x0 0x4F400000 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 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"; + }; + }; + ess-switch1@1 { + compatible = "qcom,ess-switch-qca83xx"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio1>; + reset_gpio = <0x28>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap */ + switch_lan_bmp = <0x1e>; /* 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 = <28>; + }; + }; + }; + }; + + 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"; + }; + + 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,test@0 { + status = "ok"; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + + 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 &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_0 { + pins = "gpio7"; + function = "qspi0"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_1 { + pins = "gpio6"; + function = "qspi1"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_2 { + pins = "gpio5"; + function = "qspi2"; + drive-strength = <8>; + bias-disable; + }; + qspi_data_3 { + pins = "gpio4"; + function = "qspi3"; + 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"; + + led@33 { + label = "led_5g"; + gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_5g"; + default-state = "off"; + }; + led@34 { + label = "led_2g"; + gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_2g"; + default-state = "off"; + }; + led@26 { + label = "led_sys"; + gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_sys"; + default-state = "on"; + }; + hwwatchdog { + label = "hwwatchdog"; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,default-trigger = "hwwatchdog"; + default-state = "on"; + }; + 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"; + 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 = <0x4D400000 0x4D400000 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_userpd2"; + qcom,rproc = <&q6_wcss_pd2>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x50>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>; + qcom,caldb-addr = <0x4E800000 0x4E800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data1>; +#else + memory-region = <&q6_qcn6122_data1>; +#endif + status = "disabled"; +}; + +&wifi2 { + /* QCN6122 6G */ + 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 = <0xb0>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + + +&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 { + #status = "disabled"; + #perst-gpio = <&tlmm 18 1>; + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + #status = "disabled"; + #perst-gpio = <&tlmm 15 1>; + 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 c3ce88a47..3ad71cc04 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -82,6 +82,15 @@ define Device/edgecore_eap104 endef TARGET_DEVICES += edgecore_eap104 +define Device/indio_um-525axm + DEVICE_TITLE := Indio UM-525axm + DEVICE_DTS := qcom-ipq5018-indio-um-525axm + SUPPORTED_DEVICES := indio,um-525axm + DEVICE_PACKAGES := ath11k-wifi-indio-um-525axm ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 +endef +TARGET_DEVICES += indio_um-525axm + define Device/udaya_a6_id2 DEVICE_TITLE := Udaya A6 - ID2 DEVICE_DTS := qcom-ipq5018-udaya-a6-id2 diff --git a/profiles/indio_um-525axm.yml b/profiles/indio_um-525axm.yml new file mode 100644 index 000000000..66b8bac55 --- /dev/null +++ b/profiles/indio_um-525axm.yml @@ -0,0 +1,20 @@ +--- +profile: indio_um-525axm +target: ipq50xx +subtarget: generic +description: Build image for the Indio UM-525axm +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-indio_um-525axm-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 + - name: indio + path: ../../feeds/indio +include: + - ucentral-ap +packages: + - ipq50xx + - indio +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 + CONFIG_BUSYBOX_CUSTOM=y + CONFIG_BUSYBOX_CONFIG_STTY=y