From 0f999a54c1d19cc624f0cd2fd7d5a0baf8266dab Mon Sep 17 00:00:00 2001 From: HaiBac Date: Wed, 3 Jul 2024 11:00:49 +0000 Subject: [PATCH] ipq807x: add wallys DR5018 support Signed-off-by: HaiBac --- .github/workflows/build-dev.yml | 2 +- feeds/ipq807x_v5.4/ath11k-wifi/Makefile | 2 + .../board-wallys-dr5018.bin.IPQ5018 | Bin 0 -> 131072 bytes .../board-wallys-dr5018.bin.QCN6122 | Bin 0 -> 131072 bytes .../ipq50xx/base-files/etc/board.d/01_leds | 3 + .../ipq50xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/10-ath11k-caldata | 3 + .../base-files/lib/upgrade/platform.sh | 2 + .../dts/qcom/qcom-ipq5018-wallys-dr5018.dts | 915 ++++++++++++++++++ feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk | 9 + .../patches/401-add-GD5Fx-nand-support.patch | 17 + profiles/wallys_dr5018.yml | 15 + 12 files changed, 968 insertions(+), 1 deletion(-) create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-wallys-dr5018.bin.IPQ5018 create mode 100644 feeds/ipq807x_v5.4/ath11k-wifi/board-wallys-dr5018.bin.QCN6122 create mode 100755 feeds/ipq807x_v5.4/ipq50xx/files/arch/arm64/boot/dts/qcom/qcom-ipq5018-wallys-dr5018.dts create mode 100644 feeds/ipq807x_v5.4/ipq50xx/patches/401-add-GD5Fx-nand-support.patch create mode 100644 profiles/wallys_dr5018.yml diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index 97490a2f5..dbc7fc457 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf196', 'cig_wf189', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_ecw5211', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'hfcl_ion4', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'sercomm_ap72tip', 'udaya_a5-id2', 'udaya_a6-id2', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018-v4', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] + target: [ 'cig_wf186h', 'cig_wf186w', 'cig_wf188n', 'cig_wf196', 'cig_wf189', 'cybertan_eww631-a1', 'cybertan_eww631-b1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'edgecore_eap105', 'edgecore_eap111', 'edgecore_ecw5211', 'edgecore_oap101', 'edgecore_oap101-6e', 'edgecore_oap101e', 'edgecore_oap101e-6e', 'hfcl_ion4', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'hfcl_ion4x_3', 'hfcl_ion4xi_w', 'hfcl_ion4x_w', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'sercomm_ap72tip', 'udaya_a5-id2', 'udaya_a6-id2', 'wallys_dr5018', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018-v4', 'yuncore_ax820', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650', 'yuncore_fap655' ] steps: - uses: actions/checkout@v3 diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile index e9d4d0a38..250e1ee75 100644 --- a/feeds/ipq807x_v5.4/ath11k-wifi/Makefile +++ b/feeds/ipq807x_v5.4/ath11k-wifi/Makefile @@ -45,6 +45,7 @@ ALLWIFIBOARDS:= \ indio-um-510axm-v1 \ muxi-ap3220l \ plasmacloud-pax1800 \ + wallys-dr5018 \ wallys-dr6018 \ wallys-dr6018-v4 \ tplink-ex227 \ @@ -395,6 +396,7 @@ $(eval $(call generate-ath11k-wifi-package,muxi-ap3220l,MUXI AP3220L)) $(eval $(call generate-ath11k-wifi-package,yuncore-fap650,YunCore FAP650)) $(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,wallys-dr5018,Wallys DR5018)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) $(eval $(call BuildPackage,ath11k-wifi-qcom-ipq5018)) diff --git a/feeds/ipq807x_v5.4/ath11k-wifi/board-wallys-dr5018.bin.IPQ5018 b/feeds/ipq807x_v5.4/ath11k-wifi/board-wallys-dr5018.bin.IPQ5018 new file mode 100644 index 0000000000000000000000000000000000000000..57228b42525b5fb1b2a0ce6e08a192db0fad4d77 GIT binary patch literal 131072 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 + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Wallys DR5018"; + compatible = "wallys,dr5018", "qcom,ipq5018-mp03.5", "qcom,ipq5018"; + interrupt-parent = <&intc>; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart1; + serial1 = &blsp1_uart2; + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + chosen { + bootargs = "console=ttyMSM0,115200,n8 rw init=/init"; + bootargs-append = " swiotlb=1 coherent_pool=2M"; + stdout-path = "serial0"; + }; + + reserved-memory { + #ifdef __IPQ_MEM_PROFILE_256_MB__ + /* 256 MB Profile + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 8MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x40800000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D300000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E000000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E100000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E200000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4EF00000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F000000 | 1MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4100000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x1400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E000000 { + no-map; + reg = <0x0 0x4E000000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E100000 { + no-map; + reg = <0x0 0x4E100000 0x0 0x100000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4EF00000 { + no-map; + reg = <0x0 0x4EF00000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F000000 { + no-map; + reg = <0x0 0x4F000000 0x0 0x100000>; + }; + #else + /* 512MB/1GB Profiles + * +==========+==============+=========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +----------+--------------+-------------------------+ + * | NSS | 0x40000000 | 16MB | + * +----------+--------------+-------------------------+ + * | Linux | 0x41000000 | Depends on total memory | + * +----------+--------------+-------------------------+ + * | uboot | 0x4A600000 | 4MB | + * +----------+--------------+-------------------------+ + * | SBL | 0x4AA00000 | 1MB | + * +----------+--------------+-------------------------+ + * | smem | 0x4AB00000 | 1MB | + * +----------+--------------+-------------------------+ + * | TZ | 0x4AC00000 | 4MB | + * +----------+--------------+-------------------------+ + * | Q6 | | | + * | code/ | 0x4B000000 | 20MB | + * | data | | | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | data | 0x4C400000 | 13MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | M3 Dump | 0x4D100000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | QDSS | 0x4D200000 | 1MB | + * +----------+--------------+-------------------------+ + * | IPQ5018 | | | + * | Caldb | 0x4D300000 | 2MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | data | 0x4D500000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | M3 Dump | 0x4E200000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | QDSS | 0x4E300000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_1| | | + * | Caldb | 0x4E400000 | 5MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | data | 0x4E900000 | 13MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | M3 Dump | 0x4F600000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | QDSS | 0x4F700000 | 1MB | + * +----------+--------------+-------------------------+ + * | QCN6122_2| | | + * | Caldb | 0x4F800000 | 5MB | + * +----------+--------------+-------------------------+ + * | | + * | Rest of the memory for Linux | + * | | + * +===================================================+ + */ + q6_mem_regions: q6_mem_regions@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 0x4D00000>; + }; + + q6_code_data: q6_code_data@4B000000 { + no-map; + reg = <0x0 0x4B000000 0x0 01400000>; + }; + + q6_ipq5018_data: q6_ipq5018_data@4C400000 { + no-map; + reg = <0x0 0x4C400000 0x0 0xD00000>; + }; + + m3_dump: m3_dump@4D100000 { + no-map; + reg = <0x0 0x4D100000 0x0 0x100000>; + }; + + q6_etr_region: q6_etr_dump@4D200000 { + no-map; + reg = <0x0 0x4D200000 0x0 0x100000>; + }; + + q6_caldb_region: q6_caldb_region@4D300000 { + no-map; + reg = <0x0 0x4D300000 0x0 0x200000>; + }; + + q6_qcn6122_data1: q6_qcn6122_data1@4D500000 { + no-map; + reg = <0x0 0x4D500000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_1: m3_dump_qcn6122_1@4E200000 { + no-map; + reg = <0x0 0x4E200000 0x0 0x100000>; + }; + + q6_qcn6122_etr_1: q6_qcn6122_etr_1@4E300000 { + no-map; + reg = <0x0 0x4E300000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_1: q6_qcn6122_caldb_1@4E400000 { + no-map; + reg = <0x0 0x4E400000 0x0 0x500000>; + }; + + q6_qcn6122_data2: q6_qcn6122_data2@4E900000 { + no-map; + reg = <0x0 0x4E900000 0x0 0xD00000>; + }; + + m3_dump_qcn6122_2: m3_dump_qcn6122_2@4F600000 { + no-map; + reg = <0x0 0x4F600000 0x0 0x100000>; + }; + + q6_qcn6122_etr_2: q6_qcn6122_etr_2@4F700000 { + no-map; + reg = <0x0 0x4F700000 0x0 0x100000>; + }; + + q6_qcn6122_caldb_2: q6_qcn6122_caldb_2@4F800000 { + no-map; + reg = <0x0 0x4F800000 0x0 0x500000>; + }; + + #endif + }; + + soc { + serial@78af000 { + status = "ok"; + }; + + blsp1_uart2: serial@78b0000 { + pinctrl-0 = <&blsp1_uart_pins>; + pinctrl-names = "default"; + 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>; + }; + }; + + 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 = <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 = <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>; + }; + }; + }; + }; + + 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>; + }; + + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio1>; + }; + }; + + qcom,test@0 { + status = "ok"; + }; + + thermal-zones { + status = "ok"; + }; +}; + +&tlmm { + pinctrl-0 = <&blsp0_uart_pins &mcu_pins>; + pinctrl-names = "default"; + + mcu_pins: mcu_pins { + mcu_rst { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-low; + }; + + mcu_sbl { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-low; + }; + }; + + 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 = "gpio23", "gpio25", "gpio24", "gpio26"; + function = "blsp1_uart2"; + bias-disable; + }; + }; + + blsp0_spi_pins: blsp0_spi_pins { + mux { + pins = "gpio10", "gpio11", "gpio12", "gpio13"; + function = "blsp0_spi"; + drive-strength = <2>; + bias-disable; + }; + }; + + qspi_nand_pins: qspi_nand_pins { + qspi_clock { + pins = "gpio9"; + function = "qspi_clk"; + drive-strength = <8>; + bias-disable; + }; + + qspi_cs { + pins = "gpio8"; + function = "qspi_cs"; + drive-strength = <8>; + bias-disable; + }; + + qspi_data { + pins = "gpio4", "gpio5", "gpio6", "gpio7"; + function = "qspi_data"; + drive-strength = <8>; + bias-disable; + }; + }; + + mdio1_pins: mdio_pinmux { + mux_0 { + pins = "gpio36"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_1 { + pins = "gpio37"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + leds_pins: leds_pins { + led_power { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_uplink { + pins = "gpio46"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + i2c_pins: i2c_pins { + i2c_scl { + pins = "gpio33"; + function = "blsp2_i2c0"; + drive-strength = <8>; + bias-pull-up; + }; + + i2c_sda { + pins = "gpio34"; + function = "blsp2_i2c0"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + button_pins: button_pins { + wps_button { + pins = "gpio38"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +}; + +&soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + mcu-bootloader { + gpio-export,name = "mcu-bootloader"; + gpio-export,output = <0>; + gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; + }; + + mcu-enable { + gpio-export,name = "mcu-enable"; + gpio-export,output = <0>; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + wps { + label = "reset"; + linux,code = ; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_power: led@30 { + label = "green:power"; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + led@46 { + label = "green:uplink"; + gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; +}; + +&q6v5_wcss { + compatible = "qcom,ipq5018-q6-mpd"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + firmware = "IPQ5018/q6_fw.mdt"; + reg = <0x0cd00000 0x4040>, + <0x1938000 0x8>, + <0x193d204 0x4>; + reg-names = "qdsp6", + "tcsr-msip", + "tcsr-q6"; + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_Q6_BCR>; + + reset-names = "wcss_aon_reset", + "wcss_q6_reset"; + + clocks = <&gcc GCC_Q6_AXIS_CLK>, + <&gcc GCC_WCSS_ECAHB_CLK>, + <&gcc GCC_Q6_AXIM_CLK>, + <&gcc GCC_Q6_AXIM2_CLK>, + <&gcc GCC_Q6_AHB_CLK>, + <&gcc GCC_Q6_AHB_S_CLK>, + <&gcc GCC_WCSS_AXI_S_CLK>; + clock-names = "gcc_q6_axis_clk", + "gcc_wcss_ecahb_clk", + "gcc_q6_axim_clk", + "gcc_q6_axim2_clk", + "gcc_q6_ahb_clk", + "gcc_q6_ahb_s_clk", + "gcc_wcss_axi_s_clk"; + + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_mem_regions>, <&q6_etr_region>; + #else + memory-region = <&q6_mem_regions>, <&q6_etr_region>, + <&q6_caldb_region>; + #endif + + qcom,rproc = <&q6v5_wcss>; + qcom,bootargs_smem = <507>; + boot-args = <0x1 0x4 0x3 0x0F 0x0 0x0>, + <0x2 0x4 0x2 0x12 0x0 0x0>; + status = "ok"; + q6_wcss_pd1: remoteproc_pd1@4ab000 { + compatible = "qcom,ipq5018-wcss-ahb-mpd"; + reg = <0x4ab000 0x20>; + reg-names = "rmb"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "IPQ5018/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 8 0>, + <&wcss_smp2p_in 9 0>, + <&wcss_smp2p_in 12 0>, + <&wcss_smp2p_in 11 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + resets = <&gcc GCC_WCSSAON_RESET>, + <&gcc GCC_WCSS_BCR>, + <&gcc GCC_CE_BCR>; + reset-names = "wcss_aon_reset", + "wcss_reset", + "ce_reset"; + + clocks = <&gcc GCC_WCSS_AHB_S_CLK>, + <&gcc GCC_WCSS_ACMT_CLK>, + <&gcc GCC_WCSS_AXI_M_CLK>; + clock-names = "gcc_wcss_ahb_s_clk", + "gcc_wcss_acmt_clk", + "gcc_wcss_axi_m_clk"; + + qcom,halt-regs = <&tcsr_q6_block 0xa000 0xd000 0x0>; + + qcom,smem-states = <&wcss_smp2p_out 8>, + <&wcss_smp2p_out 9>, + <&wcss_smp2p_out 10>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>; + #else + memory-region = <&q6_ipq5018_data>, <&m3_dump>, + <&q6_etr_region>, <&q6_caldb_region>; + #endif + + }; + + q6_wcss_pd2: remoteproc_pd2 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + m3_firmware = "qcn6122/m3_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 16 0>, + <&wcss_smp2p_in 17 0>, + <&wcss_smp2p_in 20 0>, + <&wcss_smp2p_in 19 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 16>, + <&wcss_smp2p_out 17>, + <&wcss_smp2p_out 18>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>; + #else + memory-region = <&q6_qcn6122_data1>, <&m3_dump_qcn6122_1>, + <&q6_qcn6122_etr_1>, <&q6_qcn6122_caldb_1>; + #endif + + }; + + q6_wcss_pd3: remoteproc_pd3 { + compatible = "qcom,ipq5018-wcss-pcie-mpd"; + firmware = "IPQ5018/q6_fw.mdt"; + interrupts-extended = <&wcss_smp2p_in 24 0>, + <&wcss_smp2p_in 25 0>, + <&wcss_smp2p_in 28 0>, + <&wcss_smp2p_in 27 0>; + interrupt-names = "fatal", + "ready", + "spawn-ack", + "stop-ack"; + + qcom,smem-states = <&wcss_smp2p_out 24>, + <&wcss_smp2p_out 25>, + <&wcss_smp2p_out 26>; + qcom,smem-state-names = "shutdown", + "stop", + "spawn"; + #ifdef __IPQ_MEM_PROFILE_256_MB__ + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>; + #else + memory-region = <&q6_qcn6122_data2>, <&m3_dump_qcn6122_2>, + <&q6_qcn6122_etr_2>, <&q6_qcn6122_caldb_2>; + #endif + }; +}; + +&i2c_0 { + pinctrl-0 = <&i2c_pins>; + pinctrl-names = "default"; +}; + +&wifi0 { + /* IPQ5018 */ + qcom,multipd_arch; + qcom,rproc = <&q6_wcss_pd1>; + qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + qcom,tgt-mem-mode = <2>; +#else + qcom,tgt-mem-mode = <1>; +#endif + qcom,board_id = <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 = <0x60>; +#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 = "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 = <0x4E900000 0x4E900000 0x4E200000 0x0 0x0>; + qcom,caldb-addr = <0x4F800000 0x4F800000 0 0 0>; + qcom,caldb-size = <0x500000>; + mem-region = <&q6_qcn6122_data2>; +#else + memory-region = <&q6_qcn6122_data2>; +#endif + status = "ok"; +}; + +&usb3 { + status = "ok"; + device-power-gpio = <&tlmm 24 1>; +}; + +&dwc_0 { + /delete-property/ #phy-cells; + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&hs_m31phy_0 { + status = "ok"; +}; + +&eud { + status = "ok"; +}; + +&pcie_x1 { + perst-gpio = <&tlmm 18 GPIO_ACTIVE_LOW>; +}; + +&pcie_x2 { + perst-gpio = <&tlmm 15 GPIO_ACTIVE_LOW>; +}; + +&pcie_x1_rp { + status = "disabled"; + + mhi_0: qcom,mhi@0 { + reg = <0 0 0 0 0 >; + }; +}; + +&pcie_x2_rp { + status = "disabled"; + + mhi_1: qcom,mhi@1 { + reg = <0 0 0 0 0 >; + + }; +}; diff --git a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk index 5fed289b1..dda83d716 100644 --- a/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk +++ b/feeds/ipq807x_v5.4/ipq50xx/image/ipq50xx.mk @@ -58,6 +58,15 @@ define Device/udaya_a6_id2 endef TARGET_DEVICES += udaya_a6_id2 +define Device/wallys_dr5018 + DEVICE_TITLE := Wallys DR5018 + DEVICE_DTS := qcom-ipq5018-wallys-dr5018 + SUPPORTED_DEVICES := wallys,dr5018 + DEVICE_PACKAGES := ath11k-wifi-wallys-dr5018 uboot-envtools ath11k-firmware-ipq50xx-spruce ath11k-firmware-qcn6122 + DEVICE_DTS_CONFIG := config@mp03.5-c1 +endef +TARGET_DEVICES += wallys_dr5018 + define Device/yuncore_fap655 DEVICE_TITLE := Yuncore FAP650 DEVICE_DTS := qcom-ipq5018-yuncore-fap655 diff --git a/feeds/ipq807x_v5.4/ipq50xx/patches/401-add-GD5Fx-nand-support.patch b/feeds/ipq807x_v5.4/ipq50xx/patches/401-add-GD5Fx-nand-support.patch new file mode 100644 index 000000000..9e0a6aab9 --- /dev/null +++ b/feeds/ipq807x_v5.4/ipq50xx/patches/401-add-GD5Fx-nand-support.patch @@ -0,0 +1,17 @@ +Index: linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/drivers/mtd/nand/raw/nand_ids.c +=================================================================== +--- linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d.orig/drivers/mtd/nand/raw/nand_ids.c ++++ linux-5.4.164-qsdk-26349818b464f8c7b52d59ce73579d9f3dd6bd5d/drivers/mtd/nand/raw/nand_ids.c +@@ -86,6 +86,12 @@ struct nand_flash_dev nand_flash_ids[] = + {"GD5F1GQ5REYIH SPI NAND 1G 1.8V", + { .id = {0xc8, 0x21} }, + SZ_2K, SZ_128, SZ_128K, 0, 2, 64, NAND_ECC_INFO(4, SZ_512), 0}, ++ {"GD5F1GM7REYIG SPI NAND 1G-BIT", ++ {.id = {0xc8, 0x81}}, ++ SZ_2K, SZ_128, SZ_128K, 0, 2, 128, NAND_ECC_INFO(8,SZ_512), 0}, ++ {"GD5F2GM7REYIG SPI NAND 2G 8-bit", ++ {.id = {0xc8, 0x82}}, ++ SZ_2K, SZ_256, SZ_128K, 0, 2, 128, NAND_ECC_INFO(8,SZ_512), 0}, + {"W25N01JW SPI NAND 1.8V 1G-BIT", + { .id = {0xef, 0xbc} }, + SZ_2K, SZ_128, SZ_128K, 0, 2, 64, NAND_ECC_INFO(4, SZ_512), 0}, diff --git a/profiles/wallys_dr5018.yml b/profiles/wallys_dr5018.yml new file mode 100644 index 000000000..bff1033f2 --- /dev/null +++ b/profiles/wallys_dr5018.yml @@ -0,0 +1,15 @@ +--- +profile: wallys_dr5018 +target: ipq50xx +subtarget: generic +description: Build image for Wallys DR5018 +image: bin/targets/ipq50xx/generic/openwrt-ipq50xx-wallys_dr5018-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x_v5.4 +include: + - ucentral-ap +packages: + - ipq50xx +diffconfig: | + CONFIG_KERNEL_IPQ_MEM_PROFILE=512