diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index de8e2dac1..cc2b0ce4a 100644 --- a/.github/workflows/build-dev.yml +++ b/.github/workflows/build-dev.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - target: ['actiontec_web7200', 'cig_wf188n', 'cig_wf196', 'cig_wf610d', 'cig_wf808', 'cybertan_eww622-a1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'liteon_wpx8324', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_ssw2ac2600', 'edgecore_spw2ac1200', 'edgecore_spw2ac1200-lan-poe', 'hfcl_ion4', 'hfcl_ion4xe', 'hfcl_ion4xi', 'indio_um-305ac', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'linksys_ea6350-v4', 'linksys_e8450-ubi', 'linksys_ea8300', 'meshpp_s618_cp03', 'meshpp_s618_cp01', 'udaya_a5-id2', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018_v4', 'x64_vm' ] + target: ['actiontec_web7200', 'cig_wf188n', 'cig_wf196', 'cig_wf610d', 'cig_wf808', 'cybertan_eww622-a1', 'edgecore_eap101', 'edgecore_eap102', 'edgecore_eap104', 'liteon_wpx8324', 'edgecore_ecs4100-12ph', 'edgecore_ecw5211', 'edgecore_ecw5410', 'edgecore_oap100', 'edgecore_ssw2ac2600', 'edgecore_spw2ac1200', 'edgecore_spw2ac1200-lan-poe', 'hfcl_ion4', 'hfcl_ion4xe', 'hfcl_ion4xi', 'hfcl_ion4x', 'hfcl_ion4x_2', 'indio_um-305ac', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'linksys_ea6350-v4', 'linksys_e8450-ubi', 'linksys_ea8300', 'meshpp_s618_cp03', 'meshpp_s618_cp01', 'udaya_a5-id2', 'wallys_dr40x9', 'wallys_dr6018', 'wallys_dr6018_v4', 'x64_vm' ] steps: - uses: actions/checkout@v2 diff --git a/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds b/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds index 1fb1873e1..900220c7a 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds @@ -40,6 +40,8 @@ liteon,wpx8324) ucidef_set_led_netdev "wan" "wan" "blue:uplink" "eth0" ;; hfcl,ion4xi|\ +hfcl,ion4x|\ +hfcl,ion4x_2|\ hfcl,ion4xe) ucidef_set_led_wlan "wlan5g" "WLAN5G" "blue:wifi5" "phy0tpt" ucidef_set_led_wlan "wlan2g" "WLAN2G" "blue:wifi2" "phy1tpt" 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 af11ddf8d..bebb40c6d 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network @@ -13,6 +13,8 @@ qcom_setup_interfaces() case $board in hfcl,ion4xi|\ + hfcl,ion4x|\ + hfcl,ion4x_2|\ hfcl,ion4xe) ucidef_set_interface_wan "eth0 eth1" ucidef_set_interface_lan "" 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 5ac153510..4fd4d5002 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 @@ -104,6 +104,8 @@ case "$FIRMWARE" in cig,wf188n|\ edgecore,eap101|\ hfcl,ion4xi|\ + hfcl,ion4x_2|\ + hfcl,ion4x|\ hfcl,ion4xe|\ wallys,dr6018|\ wallys,dr6018-v4|\ @@ -169,6 +171,8 @@ ath11k/QCN9074/hw1.0/caldata_2.bin) ath11k-macs) case "$board" in hfcl,ion4xi|\ + hfcl,ion4x|\ + hfcl,ion4x_2|\ hfcl,ion4xe) ath11k_generate_macs_ion4x ;; diff --git a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh index 9cfc3584d..eb98cbf66 100755 --- a/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh +++ b/feeds/ipq807x/ipq807x/base-files/lib/upgrade/platform.sh @@ -87,6 +87,8 @@ platform_check_image() { liteon,wpx8324|\ edgecore,eap106|\ hfcl,ion4xi|\ + hfcl,ion4x|\ + hfcl,ion4x_2|\ hfcl,ion4xe|\ plasmacloud,pax1800-v1|\ plasmacloud,pax1800-v2|\ @@ -141,6 +143,8 @@ platform_do_upgrade() { nand_upgrade_tar "$1" ;; hfcl,ion4xi|\ + hfcl,ion4x|\ + hfcl,ion4x_2|\ hfcl,ion4xe) if grep -q rootfs_1 /proc/cmdline; then CI_UBIPART="rootfs" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x.dts new file mode 100644 index 000000000..099234c46 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, 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 "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x_2.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x_2.dts new file mode 100644 index 000000000..a0744e0c0 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-hfcl-ion4x_2.dts @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2019, 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 "../../../arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x_2.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts new file mode 100644 index 000000000..685dfccf1 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x.dts @@ -0,0 +1,155 @@ +/dts-v1/; +/* + * Copyright (c) 2019, 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 "qcom-ipq6018-cp01-hfcl.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" + +/ { + model = "HFCL ION4X"; + compatible = "hfcl,ion4x", "qcom,ipq6018-cp01", "qcom,ipq6018"; + + /* + * +=========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | | | | + * | | | | + * | | | | + * | Linux | 0x41000000 | 139MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | TZ App | 0x49B00000 | 6MB | + * +--------+--------------+-------------------------+ + * + * From the available 145 MB for Linux in the first 256 MB, + * we are reserving 6 MB for TZAPP. + * + * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi + * for memory layout. + */ + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + i2c_1_pins: i2c_1_pins { + mux { + pins = "gpio42", "gpio43"; + function = "blsp2_i2c"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + i2c_2_pins: i2c_2_pins { + mux { + pins = "gpio55", "gpio56"; + function = "blsp4_i2c"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&i2c_1 { + pinctrl-0 = <&i2c_1_pins>; + pinctrl-names = "default"; + status = "ok"; + + lm75@48 { + compatible = "lm75"; + reg = <0x48>; + status = "okay"; + }; +}; + +&i2c_2 { + pinctrl-0 = <&i2c_2_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&sdhc_2 { + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 62 1>; + sd-ldo-gpios = <&tlmm 66 0>; + vqmmc-supply = <&ipq6018_l2_corner>; + status = "ok"; +}; + +&soc { + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@60 { + label = "blue:wifi5"; + gpios = <&tlmm 60 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_5g"; + default-state = "off"; + }; + led@61 { + label = "blue:wifi2"; + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_2g"; + default-state = "off"; + }; + }; +}; + +&tlmm { + leds_pins: leds_pins { + led_5g { + pins = "gpio60"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_2g { + pins = "gpio61"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x_2.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x_2.dts new file mode 100644 index 000000000..72bf7d0e2 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-hfcl-ion4x_2.dts @@ -0,0 +1,155 @@ +/dts-v1/; +/* + * Copyright (c) 2019, 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 "qcom-ipq6018-cp01-hfcl.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" + +/ { + model = "HFCL ION4X_2"; + compatible = "hfcl,ion4x_2", "qcom,ipq6018-cp01", "qcom,ipq6018"; + + /* + * +=========+==============+========================+ + * | | | | + * | Region | Start Offset | Size | + * | | | | + * +--------+--------------+-------------------------+ + * | | | | + * | | | | + * | | | | + * | | | | + * | Linux | 0x41000000 | 139MB | + * | | | | + * | | | | + * | | | | + * +--------+--------------+-------------------------+ + * | TZ App | 0x49B00000 | 6MB | + * +--------+--------------+-------------------------+ + * + * From the available 145 MB for Linux in the first 256 MB, + * we are reserving 6 MB for TZAPP. + * + * Refer arch/arm64/boot/dts/qcom/qcom-ipq6018-memory.dtsi + * for memory layout. + */ + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) + reserved-memory { + tzapp:tzapp@49B00000 { /* TZAPPS */ + no-map; + reg = <0x0 0x49B00000 0x0 0x00600000>; + }; + }; +#endif +}; + +&tlmm { + i2c_1_pins: i2c_1_pins { + mux { + pins = "gpio42", "gpio43"; + function = "blsp2_i2c"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + i2c_2_pins: i2c_2_pins { + mux { + pins = "gpio55", "gpio56"; + function = "blsp4_i2c"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&i2c_1 { + pinctrl-0 = <&i2c_1_pins>; + pinctrl-names = "default"; + status = "ok"; + + lm75@48 { + compatible = "lm75"; + reg = <0x48>; + status = "okay"; + }; +}; + +&i2c_2 { + pinctrl-0 = <&i2c_2_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&sdhc_2 { + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 62 1>; + sd-ldo-gpios = <&tlmm 66 0>; + vqmmc-supply = <&ipq6018_l2_corner>; + status = "ok"; +}; + +&soc { + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led@60 { + label = "blue:wifi5"; + gpios = <&tlmm 60 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_5g"; + default-state = "off"; + }; + led@61 { + label = "blue:wifi2"; + gpios = <&tlmm 61 GPIO_ACTIVE_LOW>; + linux,default-trigger = "led_2g"; + default-state = "off"; + }; + }; +}; + +&tlmm { + leds_pins: leds_pins { + led_5g { + pins = "gpio60"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + led_2g { + pins = "gpio61"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +/* TZAPP is enabled in default memory profile only */ +#if !defined(__IPQ_MEM_PROFILE_256_MB__) && !defined(__IPQ_MEM_PROFILE_512_MB__) +&qseecom { + mem-start = <0x49B00000>; + mem-size = <0x600000>; + status = "ok"; +}; +#endif diff --git a/feeds/ipq807x/ipq807x/image/ipq60xx.mk b/feeds/ipq807x/ipq807x/image/ipq60xx.mk index ff4fbd6e9..422fb853d 100644 --- a/feeds/ipq807x/ipq807x/image/ipq60xx.mk +++ b/feeds/ipq807x/ipq807x/image/ipq60xx.mk @@ -20,6 +20,24 @@ define Device/hfcl_ion4xe endef TARGET_DEVICES += hfcl_ion4xe +define Device/hfcl_ion4x + DEVICE_TITLE := HFCL ION4X + DEVICE_DTS := qcom-ipq6018-hfcl-ion4x + DEVICE_DTS_CONFIG := config@cp01-c1 + SUPPORTED_DEVICES := hfcl,ion4x + DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018 uboot-envtools +endef +TARGET_DEVICES += hfcl_ion4x + +define Device/hfcl_ion4x_2 + DEVICE_TITLE := HFCL ION4X_2 + DEVICE_DTS := qcom-ipq6018-hfcl-ion4x_2 + DEVICE_DTS_CONFIG := config@cp01-c1 + SUPPORTED_DEVICES := hfcl,ion4x_2 + DEVICE_PACKAGES := ath11k-wifi-qcom-ipq6018 uboot-envtools +endef +TARGET_DEVICES += hfcl_ion4x_2 + define Device/hfcl_ion4xi DEVICE_TITLE := HFCL ION4Xi DEVICE_DTS := qcom-ipq6018-hfcl-ion4xi diff --git a/profiles/hfcl_ion4x.yml b/profiles/hfcl_ion4x.yml new file mode 100644 index 000000000..d49b20d27 --- /dev/null +++ b/profiles/hfcl_ion4x.yml @@ -0,0 +1,12 @@ +--- +profile: hfcl_ion4x +target: ipq807x +subtarget: ipq60xx +description: Build image for the HFCL ION 4X +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-hfcl_ion4x-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap diff --git a/profiles/hfcl_ion4x_2.yml b/profiles/hfcl_ion4x_2.yml new file mode 100644 index 000000000..d392e0c95 --- /dev/null +++ b/profiles/hfcl_ion4x_2.yml @@ -0,0 +1,12 @@ +--- +profile: hfcl_ion4x_2 +target: ipq807x +subtarget: ipq60xx +description: Build image for the HFCL ION 4X_2 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-hfcl_ion4x_2-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap