From f1fc99ccbec3b868ae6d8710fede9bbdbdb88bdf Mon Sep 17 00:00:00 2001 From: cpchangemplu Date: Mon, 23 Jun 2025 09:36:42 +0800 Subject: [PATCH] ipq50xx: Add back emplus,wap385c Signed-off-by: cpchangemplu --- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 4 +- .../board-emplus-wap581.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-emplus-wap581.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/02_network | 2 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 2 + .../base-files/lib/upgrade/platform.sh | 2 + .../dts/qcom/qcom-ipq5018-emplus-wap581.dts | 831 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 13 + .../certificates/files/usr/bin/mount_certs | 1 + profiles/emplus_wap581.yml | 27 + 10 files changed, 881 insertions(+), 1 deletion(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.QCN6122 create mode 100644 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-emplus-wap581.dts create mode 100644 profiles/emplus_wap581.yml diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index bf890ed51..65a6ba0bc 100755 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -64,7 +64,8 @@ ALLWIFIBOARDS:= \ yuncore-fap655 \ udaya-a6-id2 \ udaya-a6-od2 \ - meshpp-s618 + meshpp-s618 \ + emplus-wap581 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD)) @@ -428,6 +429,7 @@ $(eval $(call generate-ath11k-wifi-package,yuncore-fap655,YunCore FAP655)) $(eval $(call generate-ath11k-wifi-package,udaya-a6-id2,Udaya A6-ID2)) $(eval $(call generate-ath11k-wifi-package,udaya-a6-od2,Udaya A6-OD2)) $(eval $(call generate-ath11k-wifi-package,wallys-dr5018,Wallys DR5018)) +$(eval $(call generate-ath11k-wifi-package,emplus-wap581,emplus-wap581)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) $(eval $(call BuildPackage,ath11k-wifi-qcom-ipq5018)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..208b6fb0f24cc6ae116e5a4bb4df8ce69f8abb78 GIT binary patch literal 131072 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 literal 0 HcmV?d00001 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.QCN6122 b/feeds/ipq807x_v5.4/ath11k-wifi/board-emplus-wap581.bin.QCN6122 new file mode 100644 index 0000000000000000000000000000000000000000..f571c14af7c4e1565366cc8fba689461a8a6f751 GIT binary patch literal 131072 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 + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Emplus WAP581"; + compatible = "emplus,wap581", "qcom,ipq5018-mp03.3", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + serial0 = &blsp1_uart1; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0"; + }; + + reserved-memory { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + /* 256 MB Profile + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 8MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x40800000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D300000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E000000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E100000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E200000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4EF00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F000000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4100000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x1400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 { + no-map; + reg = <0x0 0x4E000000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 { + no-map; + reg = <0x0 0x4E100000 0x0 0x100000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 { + no-map; + reg = <0x0 0x4EF00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 { + no-map; + reg = <0x0 0x4F000000 0x0 0x100000>; + }; + #else + /* 512MB/1GB Profiles + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 16MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x41000000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D300000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D500000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E400000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E900000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4F800000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4D00000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 01400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D500000 { + no-map; + reg = <0x0 0x4D500000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 { + no-map; + reg = <0x0 0x4E300000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0x500000>; + }; + #endif + }; + + soc { + serial@78af000 { + status = "ok"; + }; + + 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 = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + + ethernet-phy@4 { + reg = <4>; + }; + }; + + ess-instance { + num_devices = <0x2>; + ess-switch@0x39c00000 { + compatible = "qcom,ess-switch-ipq50xx"; + device_id = <0>; + switch_mac_mode = <0xf>; /* mac mode for uniphy instance*/ + cmnblk_clk = "internal_96MHz"; /* cmnblk clk*/ + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <7>; + }; + port@1 { + port_id = <2>; + forced-speed = <1000>; + forced-duplex = <1>; + }; + }; + led_source@0 { + source = <0>; + mode = "normal"; + speed = "all"; + blink_en = "enable"; + active = "high"; + }; + }; + + ess-switch1@1 { + compatible = "qcom,ess-switch-qca83xx"; + device_id = <1>; + switch_access_mode = "mdio"; + mdio-bus = <&mdio1>; + reset_gpio = <&tlmm 0x27 0>; + switch_cpu_bmp = <0x40>; /* cpu port bitmap */ + switch_lan_bmp = <0x3e>; /* lan port bitmap */ + switch_wan_bmp = <0x0>; /* wan port bitmap */ + qca,ar8327-initvals = < + 0x00004 0x7600000 /* PAD0_MODE */ + 0x00008 0x1000000 /* PAD5_MODE */ + 0x0000c 0x80 /* PAD6_MODE */ + 0x00010 0x2613a0 /* PORT6 FORCE MODE*/ + 0x000e4 0xaa545 /* MAC_POWER_SEL */ + 0x000e0 0xc74164de /* SGMII_CTRL */ + 0x0007c 0x4e /* PORT0_STATUS */ + 0x00094 0x4e /* PORT6_STATUS */ + >; + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + port@4 { + port_id = <5>; + phy_address = <4>; + }; + }; + }; + }; + + wifi0: wifi@c000000 { + status = "ok"; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC0_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <1>; + reg = <0x39C00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <7>; + mdio-bus = <&mdio0>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + clocks = <&gcc GCC_SNOC_GMAC1_AXI_CLK>; + clock-names = "nss-snoc-gmac-axi-clk"; + qcom,id = <2>; + reg = <0x39D00000 0x10000>; + interrupts = ; + qcom,mactype = <2>; + local-mac-address = [000000000000]; + phy-mode = "sgmii"; + qcom,rx-page-mode = <0>; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@28 { + label = "led_blue"; + gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led@38 { + label = "led_red"; + gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led@46 { + label = "led_green"; + gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; + + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + + lpass: lpass@0xA000000{ + status = "disabled"; + }; + + pcm_lb: pcm_lb@0 { + status = "disabled"; + }; + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + button@1 { + label = "reset"; + linux,code = ; + gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins>; + pinctrl-names = "default"; + + blsp0_uart_pins: uart_pins { + blsp0_uart_rx_tx { + pins = "gpio20", "gpio21"; + function = "blsp0_uart0"; + bias-disable; + }; + }; + + blsp0_spi_pins: blsp0_spi_pins { + mux { + pins = "gpio10", "gpio11", "gpio12", "gpio13"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-disable; + }; + }; + + qspi_nand_pins: qspi_nand_pins { + qspi_clock { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + + qspi_cs { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + + qspi_data { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + 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 = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pins { + led_blue { + pins = "gpio28"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_red { /* POWER_LED */ + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_green { /* 2G_LED */ + pins = "gpio46"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + + +}; + +&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 + + }; +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&wifi0 { + /* IPQ5018 */ + qcom,multipd_arch; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; + qcom,rproc = <&q6_wcss_pd1>; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <0x23>; +#ifdef __CNSS2__ + qcom,bdf-addr = <0x4C400000 0x4C400000 0x4C400000 0x0 0x0>; + qcom,caldb-addr = <0x4D300000 0x4D300000 0 0 0>; + qcom,caldb-size = <0x200000>; + mem-region = <&q6_ipq5018_data>; +#else + memory-region = <&q6_ipq5018_data>; +#endif + 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 = <0x4D500000 0x4D500000 0x4D300000 0x0 0x0>; + qcom,caldb-addr = <0x4E400000 0x4E400000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data1>; +#else + memory-region = <&q6_qcn6122_data1>; +#endif + status = "ok"; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; +&pcie_x2 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; + status = "disabled"; +}; + +&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 >; + }; +}; + +&qfprom { + status = "ok"; +}; + +&tsens { + status = "ok"; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index e891f00a4..fd4791d65 100755 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -239,3 +239,16 @@ define Device/glinet_b3000 IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand endef TARGET_DEVICES += glinet_b3000 + +define Device/emplus_wap581 + DEVICE_TITLE := Emplus WAP581 + DEVICE_DTS := qcom-ipq5018-emplus-wap581 + SUPPORTED_DEVICES := emplus,wap581 + DEVICE_PACKAGES := ath11k-wifi-emplus-wap581 ath11k-firmware-ipq50xx-map-spruce + DEVICE_DTS_CONFIG := config@mp03.3 + IMAGES := sysupgrade.tar nand-factory.bin + IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata + IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand +endef +TARGET_DEVICES += emplus_wap581 + diff --git a/feeds/tip/certificates/files/usr/bin/mount_certs b/feeds/tip/certificates/files/usr/bin/mount_certs index ff11b035e..4a0124e5f 100755 --- a/feeds/tip/certificates/files/usr/bin/mount_certs +++ b/feeds/tip/certificates/files/usr/bin/mount_certs @@ -106,6 +106,7 @@ cig,wf186h|\ cig,wf196|\ cig,wf188n|\ emplus,wap385c|\ +emplus,wap581|\ emplus,wap386v2|\ yuncore,ax840|\ yuncore,fap655) diff --git a/profiles/emplus_wap581.yml b/profiles/emplus_wap581.yml new file mode 100644 index 000000000..30617a234 --- /dev/null +++ b/profiles/emplus_wap581.yml @@ -0,0 +1,27 @@ +--- +profile: emplus_wap581 +target: ipq50xx +subtarget: generic +description: Build image for Emplus WAP581 +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-emplus_wap581-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq50xx + - iperf3 + - lscpu + - tree +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512 + CONFIG_BUSYBOX_CUSTOM=y + CONFIG_BUSYBOX_CONFIG_TFTP=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_GET=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_PUT=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_BLOCKSIZE=y + CONFIG_BUSYBOX_CONFIG_FEATURE_TFTP_PROGRESS_BAR=y + CONFIG_BUSYBOX_CONFIG_MPSTAT=y + CONFIG_BUSYBOX_CONFIG_PSTREE=y +