From 2b8e68551eac8b9196bbc784f21bd9efebea3365 Mon Sep 17 00:00:00 2001 From: "wingate.chi" Date: Thu, 26 Oct 2023 16:03:54 +0800 Subject: [PATCH] ipq5018: Update EWW631-B1 to support 512M Memory Signed-off-by: wingate.chi --- .../ipq807x/base-files/etc/board.d/02_network | 21 +- .../etc/hotplug.d/firmware/10-ath11k-caldata | 31 +- .../boot/dts/qcom/qcom-ipq5018-eww631-b1.dts | 622 +++++++++++------- feeds/ipq807x/ipq807x/image/ipq50xx.mk | 2 +- .../src/ipq-thermald-cybertan-eww631-a1.conf | 12 +- .../src/ipq-thermald-cybertan-eww631-b1.conf | 16 +- .../board-cybertan-eww631-a1.bin.IPQ5018 | Bin 131072 -> 131072 bytes .../board-cybertan-eww631-a1.bin.QCN6122 | Bin 131072 -> 131072 bytes .../board-cybertan-eww631-b1.bin.IPQ5018 | Bin 131072 -> 131072 bytes .../board-cybertan-eww631-b1.bin.QCN6122 | Bin 131072 -> 131072 bytes profiles/cybertan_eww631-b1.yml | 3 - 11 files changed, 454 insertions(+), 253 deletions(-) mode change 100644 => 100755 feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-eww631-b1.dts mode change 100644 => 100755 feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.IPQ5018 mode change 100644 => 100755 feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.QCN6122 diff --git a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network index ad5f0f46b..c667adccb 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network @@ -127,17 +127,10 @@ qcom_setup_interfaces() ;; cybertan,eww631-a1) ucidef_set_interface_wan "eth0" - ucidef_add_switch "switch1" - ucidef_add_switch_attr "switch1" "enable" "false" - ucidef_add_switch_attr "switch1" "reset" "true" + ucidef_set_interface_lan "" ;; cybertan,eww631-b1) - ucidef_add_switch "switch0" - ucidef_set_interface_wan "eth0" - ucidef_set_interface_lan "" - ucidef_add_switch "switch1" - ucidef_add_switch_attr "switch1" "enable" "false" - ucidef_add_switch_attr "switch1" "reset" "true" + ucidef_add_switch "switch1" "5:wan" "2:lan" "3:lan" "4:lan" "6@eth0" ;; wallys,dr5018) ucidef_set_interface_lan "eth0 eth1" @@ -195,10 +188,14 @@ qcom_setup_macs() ;; cybertan,eww631-a1|\ cybertan,eww631-b1) - mac=$(grep -i -m 1 BaseMacAddress= /dev/`cat /proc/mtd | grep APPSBLENV | cut -d: -f1` | cut -d= -f2) - [ -z "$mac"] && mac="00:11:22:33:44:00" + mtd=$(find_mtd_chardev "0:APPSBLENV") + [ -z "$mtd" ] && return; + mac=$(grep BaseMacAddress= $mtd | cut -d '=' -f2) + [ -z "$mac" ] && return; wan_mac=$(macaddr_canonicalize $mac) + lan_mac=$(macaddr_add "$wan_mac" 1) ucidef_set_network_device_mac eth0 $wan_mac + ip link set eth0 address $wan_mac ucidef_set_label_macaddr $wan_mac ;; cig,wf188n|\ @@ -227,7 +224,7 @@ qcom_setup_macs() ;; cybertan,eww622-a1) mac=$(grep -i -m 1 mac_addr_base= /dev/`cat /proc/mtd | grep devinfo | cut -d: -f1` | cut -d= -f2) - [ -z "$mac"] && mac="00:11:22:33:44:55" + [ -z "$mac" ] && mac="00:11:22:33:44:55" wan_mac=$(macaddr_canonicalize $mac) lan_mac=$(macaddr_add "$wan_mac" 1) ucidef_set_network_device_mac eth0 $wan_mac diff --git a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata index 24186dba7..9c8fbc736 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata +++ b/feeds/ipq807x/ipq807x/base-files/etc/hotplug.d/firmware/10-ath11k-caldata @@ -99,6 +99,27 @@ ath11k_generate_macs_wf186h() { echo -ne \\x${mac3//:/\\x} >> /lib/firmware/ath11k-macs } +ath11k_generate_macs_eww631_a1() { + touch /lib/firmware/ath11k-macs + local dev=$(find_mtd_chardev "0:APPSBLENV") + mac=$(grep BaseMacAddress= $dev | cut -d '=' -f2) + eth=$(macaddr_canonicalize $mac) + mac1=$(macaddr_add $eth 1) + mac2=$(macaddr_add $eth 2) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} + +ath11k_generate_macs_eww631_b1() { + touch /lib/firmware/ath11k-macs + local dev=$(find_mtd_chardev "0:APPSBLENV") + mac=$(grep BaseMacAddress= $dev | cut -d '=' -f2) + eth=$(macaddr_canonicalize $mac) + mac1=$(macaddr_add $eth 2) + mac2=$(macaddr_add $eth 3) + echo -ne \\x${mac1//:/\\x} >> /lib/firmware/ath11k-macs + echo -ne \\x${mac2//:/\\x} >> /lib/firmware/ath11k-macs +} caldata_die() { echo "caldata: " "$*" @@ -213,12 +234,12 @@ ath11k/qcn6122/hw1.0/caldata_2.bin) case "$board" in motorola,q14|\ wallys,dr5018|\ - cybertan,eww631-a1|\ - cybertan,eww631-b1|\ edgecore,eap104|\ liteon,wpx8324) caldata_extract "0:ART" 0x4c000 0x20000 ;; + cybertan,eww631-a1|\ + cybertan,eww631-b1|\ muxi,ap3220l) caldata_extract "0:ART" 0x26800 0x20000 ;; @@ -290,6 +311,12 @@ ath11k-macs) cig,wf186h) ath11k_generate_macs_wf186h ;; + cybertan,eww631-a1) + ath11k_generate_macs_eww631_a1 + ;; + cybertan,eww631-b1) + ath11k_generate_macs_eww631_b1 + ;; esac ;; *) diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-eww631-b1.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-eww631-b1.dts old mode 100644 new mode 100755 index d36a19d73..032d0e705 --- a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-eww631-b1.dts +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-eww631-b1.dts @@ -19,104 +19,84 @@ / { #address-cells = <0x2>; #size-cells = <0x2>; - model = "Qualcomm Technologies, Inc. IPQ5018/AP-MP02.1"; - compatible = "qcom,ipq5018-mp02.1", "qcom,ipq5018"; + model = "Qualcomm Technologies, Inc. IPQ5018/AP-MP03.5-C1"; + compatible = "qcom,ipq5018-mp03.5-c1", "qcom,ipq5018"; interrupt-parent = <&intc>; - MP_256; - /delete-property/ MP_512; - aliases { sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ serial0 = &blsp1_uart1; - //serial1 = &blsp1_uart2; + 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"; }; - /* 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 | 0x4B000000 | 20MB | - * | code/ | | | - * | data | | | - * +--------+--------------+-------------------------+ - * | | | | - * |IPQ5018 | 0x4C400000 | 13MB | - * | data | | | - * +--------+--------------+-------------------------+ - * | M3 Dump| 0x4D100000 | 1MB | - * +--------+--------------+-------------------------+ - * | QDSS | 0x4D200000 | 1MB | - * +--------+--------------+-------------------------+ - * |QCN6122 | 0x4D300000 | 15MB | - * | data | | | - * +--------+--------------+-------------------------+ - * | M3 Dump| 0x4E200000 | 1MB | - * +--------+--------------+-------------------------+ - * | QDSS | 0x4E300000 | 1MB | - * +--------+--------------+-------------------------+ - * |QCN6122 | 0x4E400000 | 15MB | - * | data | | | - * +--------+--------------+-------------------------+ - * | M3 Dump| 0x4F300000 | 1MB | - * +--------+--------------+-------------------------+ - * | QDSS | 0x4F400000 | 1MB | - * +--------+--------------+-------------------------+ - * | | - * | Rest of the memory for Linux | - * | | - * +=================================================+ - */ reserved-memory { - /delete-node/ nss@40000000; - - nss@40000000 { - no-map; - reg = <0x0 0x40000000 0x0 0x0800000>; - }; - + #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>; @@ -171,20 +151,153 @@ 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"; }; @@ -258,7 +371,6 @@ port@0 { port_id = <1>; phy_address = <7>; - // mdiobus = <&mdio0>; }; port@1 { port_id = <2>; @@ -271,10 +383,9 @@ mode = "normal"; speed = "all"; blink_en = "enable"; - active = "low"; + active = "high"; }; }; - ess-switch1@1 { compatible = "qcom,ess-switch-qca83xx"; device_id = <1>; @@ -282,7 +393,7 @@ mdio-bus = <&mdio1>; reset_gpio = <0x26>; switch_cpu_bmp = <0x40>; /* cpu port bitmap (Port 6 GMAC) */ - switch_lan_bmp = <0x1e>; /* lan port bitmap */ + switch_lan_bmp = <0x3c>; /* lan port bitmap */ switch_wan_bmp = <0x0>; /* wan port bitmap */ qca,ar8327-initvals = < 0x00004 0x7600000 /* PAD0_MODE */ @@ -311,15 +422,13 @@ port_id = <4>; phy_address = <3>; }; + port@4 { + port_id = <5>; + phy_address = <4>; + }; }; }; }; - - qcom_q6v5_wcss@CD00000 { - memory-region = <&q6_mem_regions>; - }; - - dp1 { device_type = "network"; compatible = "qcom,nss-dp"; @@ -333,9 +442,41 @@ phy-mode = "sgmii"; }; + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <1>; + reg = <0x39C00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <7>; + mdio-bus = <&mdio0>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + }; + qcom,test@0 { status = "ok"; }; + +/* + lpass: lpass@0xA000000{ + status = "disabled"; + }; + + pcm: pcm@0xA3C0000{ + pinctrl-0 = <&audio_pins>; + pinctrl-names = "default"; + status = "disabled"; + }; + + pcm_lb: pcm_lb@0 { + status = "disabled"; + }; +*/ }; thermal-zones { @@ -343,12 +484,8 @@ }; }; -&sdhc_1 { - status = "disabled"; -}; - &tlmm { - pinctrl-0 = <&blsp0_uart_pins>; + pinctrl-0 = <&blsp0_uart_pins>; //<&blsp0_uart_pins &phy_led_pins>; pinctrl-names = "default"; blsp0_uart_pins: blsp0_uart_pins { @@ -358,44 +495,15 @@ bias-disable; }; }; - - /* +/* blsp1_uart_pins: blsp1_uart_pins { - blsp1_uart_rx { - pins = "gpio23"; + blsp1_uart_rx_tx { + pins = "gpio23", "gpio25", "gpio24", "gpio26"; function = "blsp1_uart2"; - drive-strength = <8>; - input-enable; bias-disable; - bias-pull-up; - }; - blsp1_uart_tx { - pins = "gpio25"; - function = "blsp1_uart2"; - drive-strength = <8>; - bias-disable; - output-high; - bias-pull-up; - }; - blsp1_uart_rfr { - pins = "gpio24"; - function = "blsp1_uart2"; - drive-strength = <8>; - bias-disable; - output-high; - bias-pull-up; - }; - blsp1_uart_cts { - pins = "gpio26"; - function = "blsp1_uart2"; - drive-strength = <8>; - bias-disable; - input-enable; - bias-pull-up; }; }; - */ - +*/ blsp0_spi_pins: blsp0_spi_pins { mux { pins = "gpio10", "gpio11", "gpio12", "gpio13"; @@ -405,56 +513,6 @@ }; }; - /* - phy_pins: phy_pins { - phy_intr { - pins = "gpio25"; - function = "gpio"; - drive-strength = <8>; - bias-disable; - }; - phy_reset { - pins = "gpio26"; - function = "gpio"; - drive-strength = <8>; - bias-pull-down; - output-low; - }; - }; - */ - - 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; - }; - }; - - 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; - }; - }; - qspi_nand_pins: qspi_nand_pins { qspi_clock { pins = "gpio9"; @@ -494,6 +552,47 @@ }; }; + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +/* + phy_led_pins: phy_led_pins { + gephy_led_pin { + pins = "gpio46"; + function = "led0"; + drive-strength = <8>; + bias-pull-down; + }; + }; +*/ + i2c_pins: i2c_pins { + i2c_scl { + pins = "gpio25"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + + i2c_sda { + pins = "gpio26"; + function = "blsp2_i2c1"; + drive-strength = <8>; + bias-disable; + }; + }; + button_pins: button_pins { reset_button { pins = "gpio28"; @@ -502,13 +601,64 @@ bias-pull-up; }; }; +/* + audio_pins: audio_pinmux { + mux_1 { + pins = "gpio24"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-down; + }; + mux_2 { + pins = "gpio25"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_3 { + pins = "gpio26"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_4 { + pins = "gpio27"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_5 { + pins = "gpio28"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_6 { + pins = "gpio29"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-down; + }; + + mux_7 { + pins = "gpio30"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-down; + }; + }; +*/ poe_pins: poe_pinmux { /* LAN port PoE output enable H --> enable; L --> disable (Default setting to H) */ - mux_0 { + mux_0 { /* PoE_OUT_EN */ pins = "gpio24"; function = "gpio"; drive-strength = <2>; @@ -531,14 +681,12 @@ drive-strength = <8>; bias-disable; }; - sys_blue { pins = "gpio30"; function = "gpio"; drive-strength = <8>; bias-pull-up; }; - sys_red { pins = "gpio46"; function = "gpio"; @@ -572,36 +720,23 @@ label = "sys:green"; gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; /* GPIO_1/ATST_QP0 */ default-state="off"; - /* linux,default-trigger = "timer"; - active-delay = <700>; - inactive-delay = <700>; - default-state="on"; */ }; - led@30 { label = "sys:blue"; gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; /* GPIO_30 */ default-state="on"; - /* linux,default-trigger = "timer"; - active-delay = <700>; - inactive-delay = <700>; - default-state="on"; */ }; - led@46 { label = "sys:red"; gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; /* GPIO_46 */ default-state="off"; - /* linux,default-trigger = "timer"; - active-delay = <700>; - inactive-delay = <700>; - default-state="on"; */ }; }; }; &usb3 { status = "disabled"; + device-power-gpio = <&tlmm 24 1>; }; &eud { @@ -610,7 +745,7 @@ &pcie_x1 { status = "disabled"; - perst-gpio = <&tlmm 27 1>; + perst-gpio = <&tlmm 18 1>; }; &pcie_x2 { @@ -618,6 +753,10 @@ perst-gpio = <&tlmm 15 1>; }; +&bt { + status = "disabled"; +}; + &dwc_0 { /delete-property/ #phy-cells; /delete-property/ phys; @@ -637,7 +776,7 @@ }; &pcie_x1_rp { - status = "disabled"; + status = "disabled"; mhi_0: qcom,mhi@0 { reg = <0 0 0 0 0 >; @@ -645,10 +784,11 @@ }; &pcie_x2_rp { - status = "disabled"; + status = "disabled"; mhi_1: qcom,mhi@1 { reg = <0 0 0 0 0 >; + }; }; @@ -662,12 +802,11 @@ &qcom_q6v5_wcss { qcom,multipd_arch; + memory-region = <&q6_mem_regions>; qcom,share_bootargs; qcom,bootargs_smem = <507>; - /* Please refer the IPQ50xx SoC Software doc to define pcie reset pin */ boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>, - <0x2 0x4 0x2 0x0F 0x0 0x0>; - + <0x2 0x4 0x2 0x12 0x0 0x0>; /* IPQ5018 */ q6v5_wcss_userpd1 { m3_firmware = "IPQ5018/m3_fw.mdt"; @@ -688,8 +827,13 @@ qca,asid = <1>; qca,auto-restart; qca,int_radio; + #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 }; /* QCN6122 6G */ @@ -711,8 +855,13 @@ "spawn"; qca,asid = <2>; qca,auto-restart; + #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 }; /* QCN6122 5G */ @@ -734,8 +883,13 @@ "spawn"; qca,asid = <3>; qca,auto-restart; + #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 }; }; @@ -753,39 +907,65 @@ status = "ok"; }; - &wifi0 { - /* IPQ5018 24G*/ + /* IPQ5018 */ qcom,multipd_arch; 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>; qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>; +#ifdef __CNSS2__ + qcom,caldb-addr = <0x4D400000 0x4D400000 0 0 0>; +#else qcom,caldb-addr = <0x4D400000>; - qcom,caldb-size = <0x200000>; - nss-radio-priority = <0>; m3-dump-addr = <0x4D200000>; - mem-region = <&q6_ipq5018_data>; - +#endif + qcom,caldb-size = <0x200000>; status = "ok"; }; &wifi1 { - /* QCN6122 5G */ + /* QCN6122 6G */ qcom,multipd_arch; - qcom,userpd-subsys-name = "q6v5_wcss_userpd2"; + 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 = <0x4D600000 0x4D600000 0x4D300000 0x0 0x0>; - qcom,caldb-addr = <0x4E800000>; - m3-dump-addr = <0x4E600000>; - nss-radio-priority = <1>; - mem-region = <&q6_qcn6122_data1>; + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; +#ifdef __CNSS2__ + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; +#else + qcom,caldb-addr = <0x4FF00000>; + m3-dump-addr = <0x4FD00000>; +#endif qcom,caldb-size = <0x500000>; status = "ok"; }; &wifi2 { + /* QCN6122 6G */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd3"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0xb0>; + qcom,bdf-addr = <0x4ED00000 0x4ED00000 0x4E400000 0x0 0x0>; +#ifdef __CNSS2__ + qcom,caldb-addr = <0x4FF00000 0x4FF00000 0 0 0>; +#else + qcom,caldb-addr = <0x4FF00000>; + m3-dump-addr = <0x4FD00000>; +#endif + qcom,caldb-size = <0x500000>; status = "disabled"; }; - diff --git a/feeds/ipq807x/ipq807x/image/ipq50xx.mk b/feeds/ipq807x/ipq807x/image/ipq50xx.mk index fd9d721fb..da7c77725 100644 --- a/feeds/ipq807x/ipq807x/image/ipq50xx.mk +++ b/feeds/ipq807x/ipq807x/image/ipq50xx.mk @@ -69,7 +69,7 @@ define Device/cybertan_eww631_b1 DEVICE_DTS := qcom-ipq5018-eww631-b1 SUPPORTED_DEVICES := cybertan,eww631-b1 DEVICE_PACKAGES := ath11k-wifi-cybertan-eww631-b1 ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 - DEVICE_DTS_CONFIG := config@mp02.1 + DEVICE_DTS_CONFIG := config@mp03.5-c1 endef TARGET_DEVICES += cybertan_eww631_b1 diff --git a/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-a1.conf b/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-a1.conf index 6f50e8389..9328b5cfe 100755 --- a/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-a1.conf +++ b/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-a1.conf @@ -3,13 +3,13 @@ sampling 5000 [tsens_tz_sensor1] sampling 5000 thresholds 105 110 115 119 120 -thresholds_clr 0 100 105 110 115 +thresholds_clr 0 100 105 110 115 actions cooling cooling cooling cooling shutdown -action_info 35 35 50 70 800000 +action_info 0 35 50 70 800000 [tsens_tz_sensor4] sampling 5000 -thresholds 105 107 112 119 120 -thresholds_clr 0 100 105 110 115 -actions cooling cooling cooling cooling shutdown -action_info 0 20 30 50 800000 \ No newline at end of file +thresholds 105 110 115 119 120 +thresholds_clr 0 100 105 110 115 +actions cooling cooling cooling cooling shutdown +action_info 0 20 30 50 800000 \ No newline at end of file diff --git a/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-b1.conf b/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-b1.conf index b130b03b1..afe15a3bc 100755 --- a/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-b1.conf +++ b/feeds/ipq807x/qca-thermald-10.4/src/ipq-thermald-cybertan-eww631-b1.conf @@ -2,14 +2,14 @@ sampling 5000 [tsens_tz_sensor1] sampling 5000 -thresholds 70 80 90 105 115 120 -thresholds_clr 0 75 85 100 110 113 -actions cooling cooling cooling cooling cooling shutdown -action_info 0 25 45 65 90 800000 +thresholds 105 115 119 125 +thresholds_clr 0 105 110 120 +actions cooling cooling cooling cooling +action_info 0 20 50 70 [tsens_tz_sensor4] sampling 5000 -thresholds 70 80 90 105 115 120 -thresholds_clr 0 75 85 100 110 113 -actions cooling cooling cooling cooling cooling shutdown -action_info 0 15 25 45 60 800000 \ No newline at end of file +thresholds 105 115 119 125 +thresholds_clr 0 105 110 120 +actions cooling cooling cooling cooling +action_info 0 20 50 70 \ No newline at end of file diff --git a/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-a1.bin.IPQ5018 b/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-a1.bin.IPQ5018 index 2d45b8c16545cc5098b3f8fe9c90fd7ec7b0e910..d2809f880cc0b123e56f89d3597f8676f3565553 100644 GIT binary patch delta 3921 zcmds4U1%d!6wb_CW~V>oXET{5+D^2YOwu&{-MWMjY?K;mky2}|A-KEj;)A=$VnOg> z7gBxj2Nu>f;DaDU6n`ERZB`aUarIFY6qLRxNR@r)!-|ih_?>$*lgXrIU34ir?Y;M$ z@1A?l`Odxflx}Wno15C86kses-{!T?J{;V-uYO#7fk*Mxs%xv%udl5v`^TlF#l>>j zK^?8SzPh@+v{WgVOC|rD*yje8^;@y&9(#5N)6otQCwz@xwcqO`AO$OH;Ivp-DEr4! zp-`BdbWlfIs=%~Vn46xqZU3Cu=Wklp`98wMzqaX3>{%xo2j_mF?z-h#D!Ak&M0`QX6;3NPifq(2IB+Ie_KN5Osjc1~#L$V49zGU!3BWzICfWf8Q zCoA|{@B~rQZ60nuM?nkOwh($#?Ij+;h?qP% ziDZ#`mJkmG*n; zs(Cm%l}I3?vyAm81_mI_F{PhFcQL1i@3M9chp>-}Ij@UCr;-*`E1sB2Cb99y3JWJA z5lEjXN|-~RDo)AYW$ls=VILQk*G0DDBB$oeqiSF&Po=xbTzH7vJE eKOKEf!4J1BRxrjQ%YBaNA$z!QE8= literal 131072 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 diff --git a/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-a1.bin.QCN6122 b/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-a1.bin.QCN6122 index 225344646ce966a75cc5f36c497221416fd6f696..c4b904c725cd065c1b75d07d40672f750674deea 100644 GIT binary patch delta 3817 zcmds2U1%It6yBM8olLSJyX($Qb~TyR?Ck6&*(94Zm87if24YAmWuNB9t9MSksJ6(Ggui58doI%| zDIgW%CY}MOf>Vimb0uTnUYYK&tRh-2N26ug^GnA%5(#3GNgAV3Au^T zmZbo!1>h#D!b<>N0`QVm;UoYjfq(2IB+D{`9|i3W5L0Yd}~5imr6E+Sxv zfFT0rMxdU|caT@|PqXlSMkJR~8;#byo@pbmlvLC?g)?w+u_C){LDBqH`W6OXuiBJQ3@lRfdc*yBw0=BX|FET2$4$N%J&v#s76 zAb8Iu0I#+dv`gBuzOLV~w^xfT1?@s?UEc;hVc$GA-D^FXa&97>hG@A=uX8J1K~d;b zuaqxJ*{=TX?z&tMso_+rQKF|iJE8rGl&@cl#eY!8l~m`~er3nHa|bdq;=I>= zpq*A{=RQXi?ZW;)S*F|TOem#BMjDl&or7|ON9j$X)2sA6j9a0D4`Zj@_b_%NQ`)L_ zReL%1QOwe3_4E2~xCBEjQ;?k3-v&Ky|8cQ&+_21^v|-lMFGLNLwE=_Yh6OVg&(#OtAEagv(KP^sD-e4h)d~hU$BP-~r3OgZ=O2JVn zI4T7?$=W$81xKaePNmp=psZcie+2M;P_M@>6J>vJHJ{lBUo7qeMXjhOMbHTIeK~`G z>+u6zod&Qv4IQEUuosi*Ic5jTr*cRE7V+T#7Nv$o0Tu;V6ktIYSQKDUfJJe!yrg{* zy8#4I`@~yu>aj<9dJuq>&0=(DjCg8KNt!W0p_xZ$jAv*x2C%Xyb$C~VtSnLCscuD8 zsk(W(ORjE~zZD|;r{HZ@GU-a*gX9y5hn(`Z=ax|rPI=o4IuCVS|4!7S$Ni5~F&>N# zB@)Qi2!^ubl)J?|1 zLi9OvOY$DCm1GdjEvG$}dto`R^cl&abQ<=)l({H=^J`zpOc$cBq%?Y(gnPmJr&FCp|S@tfH`s z2Sq3}GEl)&$*G71?F#YWp*`$L5B2Cpir}TEf=3nnW@lgQrn5;&(QwU=NBMoTS+AG1wc7{0+4(;@ z9ndphp7Y$ER6aczA6XSxENF~c9^ z{h#*e=h!bA{TxNqDc@p;AHL+xDxWH^zw!@I((#x#_nY%*+mkDh@Bh*wJN)p6e{)o3 z5Iy7i_p-P3eD9y;hc>PmBLc=4pL<`v+<4u*aLfb*0Z#)OCb^$<4g6yW2>2q;)?i1Q151_1$;VzA{@7!3pztS~YVlfdX8pi)?nfCdOCSV0MhNk9t(R0_Ri zH|O5w2iHvM;|C01Q?Nc_K+Lk@2LkFlKOa93P_RCJKuiLDAfUeU^YH@#1?%Gn#3bMc z0_r6^wk7wV= z?pRfUo z`Dku={&v3dXC}@ipUy6@@~>upe|9!MVsrEDpm+9%qnaw88w3C8>8$>5KvB} z{9x~=%B}2cIOL&!0b$y|R5OYi=LUg*l*Z`FVl$?jE;h_@q5} zl0BGyG<-Caxh?)qZW=I+G? z8x}~#bGe^ZJeNse3Kh=fJySTKKq?;F{j}n-O#=EAj_p1A3%g$+(Q=?a`f={xH8i|1Y$tZq)z) diff --git a/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.IPQ5018 b/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.IPQ5018 old mode 100644 new mode 100755 index 2d45b8c16545cc5098b3f8fe9c90fd7ec7b0e910..523964f96009eb7dd01ae0a596b7577c90c5d4d4 GIT binary patch delta 3768 zcmds2U5Fc16waM{cbtSU*`k{J<(k)$lup*0s zZ!0AFpeSOg1A>AOsZXpQl}$@Nr15ce>!dR!|*2$wp*=MbGuRBbfyjeeCABGS}wa z4BwvZj&JgFcd~5PH>WlIJC-B-!z94G6)=C1erxaI*=aQ!&Q$l$TU)hSwd!i!)lQ4Y ztyZg4%4Pqa<*q)ZWxLs!*7RSoY#%LrqdjCl9yaf)$sd$00)5w0)kf-vpK#Z*I=#>T zWd6O$8L$4ooT@hOy(3J(|2_YAN>y+7r;jA_v4`b*1VZp5<~NUKf<%NU^3{E3v68To z`0A~*8T0mqs;p@xJh>cyYnu5`qbMg5_JY3?i9b;V1A;&T@D>1!E&(L~lmJk42_ON0 z1pYBdSP%pX9D+ABf0mwz2qHuP2_T7KK6~s!SdgFto)EN+CiA+YjPn|@>pFxpnW5@R z7^sv27%v-`0+<4r0vN*rrU0e@rY^9wb3DWY%EM^|b5AymQpp|j^9bhSp=7dD;$X=n zmV3SKxh?SHC{MG9=n9f8a4tfj0K=<-EPEz4>zDFZ@Ra=>3$?+C@(7&^(pmt)jZEmF+=%+3l-5&o{4UA@${0e zE$TXt_3+8(mh<`HiVK!a?^5#xqSZ;ceGHhV{A~}ZQ zA{cz)1;z)``VQExO{g=jFZye35H^%eFJog8;|)#M(&Lm5YjXKqcKquP+t`{O>EEI! zrwfaZJNo%D>9YxO$`lGdTOKFUpJV=B7(@>Df*l-RKMdq`Wlwocc|NMC`|7Ve`6t-A za+wQ;xDNdW7mJy+zOcC9iBC4aw7lerg|m;Zd7Yl{^Y#~me;=hm`mfN1Z{+{jYibpB(uw&gk(% zDg|esQl_L71=44f$`<73)V*{Mm~-hunCM^g`qxMPvorZrLD%8+rodu)EC%UIfhrc{ lSAreRS)phAu=c(k!rA`YjH`QJ*RIneRvo{V`jLDW`vZQvEl~gf literal 131072 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 diff --git a/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.QCN6122 b/feeds/wifi-ax/ath11k-wifi/board-cybertan-eww631-b1.bin.QCN6122 old mode 100644 new mode 100755 index 225344646ce966a75cc5f36c497221416fd6f696..0edab9349bb0c3f9ce98da757b44e4d0dc634c1f GIT binary patch delta 3698 zcmds1U1%d!6rQ>Fb~@R{Ny|l5JXzu`XrZlp-adEBj(6IGvI0`!+}tzZRB$Ti z-e1YscUR`Mbh?Z$o8|xMv|W38T8qaWhX2Roe<2D%5TWW(OfbX z-*|)Zg|hz8qsO*`J=Pg0>1TZbp7IBHCT*ru-4X7WWOLbxZfE!FIFfd)afcTFUKRqO zVtlXG8mvcJGKE4wm#3xH7-GTJ??m>u{&qOf`kni#`l^0Ke|hk~I7%N;yN@oSB@>1bkVsw<{oj5vqldo;{2 z+zdr$&Tw}k48zSZ+zi8wg)Z0*GYmJwa5HDPJE6M%?(m)AOU6%#Dnsk~CF~E{pIosX zNR924dt!30tU?aRHtA|&e?0zJL>wQJ5q}*17##nQUxEJ${8!*VmhfMJ z{|fw9T>t57`UX56wiiCQpD!&XW^h8xUCP8r)a9N}Bu(kR4YNaYE}w3w!W$}_4O28aUl-ohQ`zJ(xqnSI!2_7UEfeP*nXOv1)j zl<7%b2lX|jnn3!7de7w!bDv8Pz078OX2)UH>dPeyrU_#=35%N1D5zV6>H_IDanm+P d+NEDke(GfExyFagm2c7`7Fip~U*#X8e*yrc(8vG) delta 4100 zcmc(gL1-LR7=Y*f^JnssEY3_iNs7fH9s+hQJ@ueVs7A{cc0(yamJr&FCp|S@tfH`s z2Sq3}Fi^o$$*G8i+7;r#LwlH$9`q=P6v2z9g5Ff{o1LAto6aT~ige)HnSb8=?|t*; z{cn3c+w0kyaa5h`=>7EdSGBvZcRTsv49^o!?e_Y5qfsUvDwbwyt&7vSYK|euKGdHV096JRC)v+0kCV zu-0sF927m78snF}Q;F$FZM^Luwehx6(QfJRC6BUvi@TG~WiL`ZJE@KD|5Rt7J7M_4 zy#Lc4{~QNJ;n@^;iA@N;;nKUPQ`MwQn#)yD1#^u_T&$eDQ&mA)!fyZ5shH0*+iw6E!jHSWSFvIms z-jFg2tioX`HP=+vQ8hfbZ6 zPGg}{5KypO5N8Ma3<3fw`CzSB7!3pztS~YVlfdX8ppsjVfCdOCSV0MhNk9t(RC2vm z@y`A2_pX`P#Sa+1reIyffS75;4+PXL{9OD%K*75B0Wk^qfq=S&pNk&|C|DOiASMAn z5Ky=9vzJcyzrXvI>EFD3(Y#nQK6;>Fee{6X7#}?lP`}Xg(E|Ym>!Sz6B%lWZ>KA%G zdLW=+ee{5s1oS{a{X%cJWb)|?m_86tumOHRY)pV32xw6F1^9u0f(`HkViNEJ0SyYj z06!2=umOHROagu&ph2l$h#v?j*bqM;HYUUm1T-xCLi|8L!G`z&F$wsAfQE%%h#v?j z*bqM;CILSX(6G!exq10svaPSoqghgVYZFRuZ9?g_X6wn;k3L*@ zExCVnHTm}HpwRbruA81#t;)1&Rg%E8RH(}INanj<=Kt;?5=;MWDX8z^m?@!KVTWn^&>-Eom^NhyI=LP`<%g#tF#KtJA5(JbT zDcji7SXq@IpkS3%3B)9@DnURsUzH@F4+08SS(QLc0;>`PRP$At&Td3sMAsL$mhNZz z%ic!x`NHoDT%Jn4ym9&w|D7u