diff --git a/.github/workflows/build-dev.yml b/.github/workflows/build-dev.yml index cf8cb7d86..411289238 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', 'hfcl_ion4x', 'hfcl_ion4x_2', 'indio_um-305ac', 'indio_um-305ax', 'indio_um-325ac', 'indio_um-510ac-v3', 'indio_um-550ac', 'indio_um-310ax-v1', 'indio_um-510axp-v1', 'indio_um-510axm-v1', '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', 'indio_um-310ax-v1', 'indio_um-510axp-v1', 'indio_um-510axm-v1', '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', 'yuncore_ax840', 'yuncore_fap640', 'yuncore_fap650' ] steps: - uses: actions/checkout@v3 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 6fade4d55..1eeee4328 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/01_leds @@ -50,6 +50,7 @@ glinet,ax1800|\ glinet,axt1800) ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth0" "tx rx link" ;; +yuncore,fap650|\ muxi,ap3220l) ucidef_set_led_wlan "wlan2g" "WLAN2G" "green:wifi2" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "green:wifi5" "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 b2b81ccb2..e8bf0d09a 100755 --- a/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network +++ b/feeds/ipq807x/ipq807x/base-files/etc/board.d/02_network @@ -59,6 +59,10 @@ qcom_setup_interfaces() ucidef_set_interface_lan "eth1" ucidef_set_interface_wan "eth0" ;; + yuncore,fap650) + ucidef_set_interface_lan "eth3 eth2 eth1 eth0" + ucidef_set_interface_wan "eth4" + ;; qcom,ipq807x-hk14) ucidef_set_interface_lan "eth0 eth1 eth2 eth3" ucidef_set_interface_wan "eth4" 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 6413da3e8..6e46264a5 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 @@ -116,6 +116,7 @@ case "$FIRMWARE" in xiaomi,ax1800|\ glinet,ax1800|\ yuncore,ax840|\ + yuncore,fap650|\ plasmacloud,pax1800-v1|\ plasmacloud,pax1800-v2) caldata_extract "0:ART" 0x1000 0x20000 diff --git a/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-yuncore-fap650.dts b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-yuncore-fap650.dts new file mode 100644 index 000000000..491fc1298 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm/boot/dts/qcom-ipq6018-yuncore-fap650.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-yuncore-fap650.dts" +#include "qcom-ipq6018.dtsi" diff --git a/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-yuncore-fap650.dts b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-yuncore-fap650.dts new file mode 100755 index 000000000..6b44f2bb5 --- /dev/null +++ b/feeds/ipq807x/ipq807x/files/arch/arm64/boot/dts/qcom/qcom-ipq6018-yuncore-fap650.dts @@ -0,0 +1,423 @@ +/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.dtsi" +#include "qcom-ipq6018-rpm-regulator.dtsi" +#include "qcom-ipq6018-cpr-regulator.dtsi" +#include "qcom-ipq6018-cp-cpu.dtsi" +#include +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "Qualcomm Technologies, Inc. IPQ6018/AP-CP03-C1"; + compatible = "yuncore,fap650", "qcom,ipq6018-cp03", "qcom,ipq6018"; + interrupt-parent = <&intc>; + qcom,msm-id = <0x1A5 0x0>; + + aliases { + /* + * Aliases as required by u-boot + * to patch MAC addresses + */ + ethernet0 = "/soc/dp1"; + ethernet1 = "/soc/dp2"; + ethernet2 = "/soc/dp3"; + ethernet3 = "/soc/dp4"; + ethernet4 = "/soc/dp5"; + + 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"; +#ifdef __IPQ_MEM_PROFILE_256_MB__ + bootargs-append = " swiotlb=1"; +#else + bootargs-append = " swiotlb=1 coherent_pool=2M"; +#endif + }; + + /* + * +=========+==============+========================+ + * | | | | + * | 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 only in default memory profile */ +#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 { + uart_pins: uart_pins { + mux { + pins = "gpio44", "gpio45"; + function = "blsp2_uart"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + spi_0_pins: spi_0_pins { + mux { + pins = "gpio38", "gpio39", "gpio40", "gpio41"; + function = "blsp0_spi"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + qpic_pins: qpic_pins { + data_0 { + pins = "gpio15"; + function = "qpic_pad0"; + drive-strength = <8>; + bias-pull-down; + }; + data_1 { + pins = "gpio12"; + function = "qpic_pad1"; + drive-strength = <8>; + bias-pull-down; + }; + data_2 { + pins = "gpio13"; + function = "qpic_pad2"; + drive-strength = <8>; + bias-pull-down; + }; + data_3 { + pins = "gpio14"; + function = "qpic_pad3"; + drive-strength = <8>; + bias-pull-down; + }; + data_4 { + pins = "gpio5"; + function = "qpic_pad4"; + drive-strength = <8>; + bias-pull-down; + }; + data_5 { + pins = "gpio6"; + function = "qpic_pad5"; + drive-strength = <8>; + bias-pull-down; + }; + data_6 { + pins = "gpio7"; + function = "qpic_pad6"; + drive-strength = <8>; + bias-pull-down; + }; + data_7 { + pins = "gpio8"; + function = "qpic_pad7"; + drive-strength = <8>; + bias-pull-down; + }; + qpic_pad { + pins = "gpio1", "gpio3", "gpio4", + "gpio10", "gpio11", "gpio17"; + function = "qpic_pad"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + button_pins: button_pins { + wps_button { + pins = "gpio19"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio75"; + function = "gpio"; + bias-pull-up; + }; + }; + + leds_pins: leds_pins { + led_sys { + pins = "gpio32"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_5g { + pins = "gpio35"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + + led_2g { + pins = "gpio37"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + mdio@90000 { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 75 0>; + status = "ok"; + phy0: ethernet-phy@0 { + reg = <0>; + }; + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <4>; + }; + }; + + ess-switch@3a000000 { + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x1e>; /* lan port bitmap */ + switch_wan_bmp = <0x20>; /* wan port bitmap */ + switch_inner_bmp = <0xc0>; /*inner port bitmap*/ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ + qcom,port_phyinfo { + port@3 { + port_id = <3>; + phy_address = <4>; + }; + port@4 { + port_id = <4>; + phy_address = <3>; + }; + }; + }; + + dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <1>; + reg = <0x3a001000 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <0>; + phy-mode = "sgmii"; + }; + + dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <2>; + reg = <0x3a001200 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <1>; + phy-mode = "sgmii"; + }; + + dp3 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <3>; + reg = <0x3a001400 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <2>; + phy-mode = "sgmii"; + }; + + dp4 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <4>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <3>; + phy-mode = "sgmii"; + }; + + dp5 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <4>; + phy-mode = "sgmii"; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&leds_pins>; + pinctrl-names = "default"; + + led_power: led@32 { + label = "green:power"; + gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + default-state = "on"; + }; + + led@35 { + label = "green:wifi5"; + gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + + led@37 { + label = "green:wifi2"; + gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>; + default-state = "off"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + wps { + label = "reset"; + linux,code = ; + gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; + linux,input-type = <1>; + debounce-interval = <60>; + }; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&uart_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&spi_0 { + pinctrl-0 = <&spi_0_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; + }; +}; + +&qpic_bam { + status = "ok"; +}; + +&nand { + pinctrl-0 = <&qpic_pins>; + pinctrl-names = "default"; + status = "ok"; +}; + +&ssphy_0 { + status = "ok"; +}; + +&qusb_phy_0 { + status = "ok"; +}; + +&usb3 { + status = "ok"; +}; + +&nss_crypto { + status = "ok"; +}; + +/* 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 422fb853d..c7588ebde 100644 --- a/feeds/ipq807x/ipq807x/image/ipq60xx.mk +++ b/feeds/ipq807x/ipq807x/image/ipq60xx.mk @@ -185,3 +185,13 @@ define Device/meshpp_s618_cp01 DEVICE_PACKAGES := ath11k-wifi-meshpp-s618 -kmod-usb-dwc3-of-simple kmod-usb-dwc3-qcom kmod-usb3 endef TARGET_DEVICES += meshpp_s618_cp01 + +define Device/yuncore_fap650 + DEVICE_TITLE := YunCore FAP 650 + DEVICE_DTS := qcom-ipq6018-yuncore-fap650 + SUPPORTED_DEVICES := yuncore,fap650 + DEVICE_DTS_CONFIG := config@cp03-c1 + DEVICE_PACKAGES := ath11k-wifi-yuncore-fap650 +endef +TARGET_DEVICES += yuncore_fap650 + diff --git a/feeds/ucentral/ucentral-schema/Makefile b/feeds/ucentral/ucentral-schema/Makefile index 2dfdbc9e9..ba6cb4fbc 100644 --- a/feeds/ucentral/ucentral-schema/Makefile +++ b/feeds/ucentral/ucentral-schema/Makefile @@ -4,9 +4,10 @@ PKG_NAME:=ucentral-schema PKG_RELEASE:=1 PKG_SOURCE_URL=https://github.com/Telecominfraproject/wlan-ucentral-schema.git +PKG_MIRROR_HASH:=8820ade9a13093dfab1178b3049db734d87e5ae0d509cd5248b0858277b0c8fe PKG_SOURCE_PROTO:=git PKG_SOURCE_DATE:=2022-05-29 -PKG_SOURCE_VERSION:=084fa1a01d0acbdd8fc8e110b9519efb6e32ee8f +PKG_SOURCE_VERSION:=f3c99724dc985ed08834b5fa04bee696b0fccf0b PKG_MAINTAINER:=John Crispin PKG_LICENSE:=BSD-3-Clause diff --git a/feeds/wifi-ax/ath11k-wifi/Makefile b/feeds/wifi-ax/ath11k-wifi/Makefile index ee3cbe177..2c85bd9d4 100644 --- a/feeds/wifi-ax/ath11k-wifi/Makefile +++ b/feeds/wifi-ax/ath11k-wifi/Makefile @@ -47,6 +47,7 @@ ALLWIFIBOARDS:= \ tplink-ex227 \ tplink-ex447 \ yuncore-ax840 \ + yuncore-fap650 \ meshpp-s618 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ath11k-wifi-$(BOARD)) @@ -254,6 +255,7 @@ $(eval $(call generate-ath11k-wifi-package,tplink-ex447,TP-Link EX447)) $(eval $(call generate-ath11k-wifi-package,yuncore-ax840,YunCore AX840)) $(eval $(call generate-ath11k-wifi-package,meshpp-s618,Mesh++ S618)) $(eval $(call generate-ath11k-wifi-package,muxi-ap3220l,MUXI AP3220L)) +$(eval $(call generate-ath11k-wifi-package,yuncore-fap650,YunCore FAP650)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) $(eval $(call BuildPackage,ath11k-wifi-qcom-ipq5018)) diff --git a/feeds/wifi-ax/ath11k-wifi/board-yuncore-fap650.bin.IPQ6018 b/feeds/wifi-ax/ath11k-wifi/board-yuncore-fap650.bin.IPQ6018 new file mode 100644 index 000000000..06dd7ad30 Binary files /dev/null and b/feeds/wifi-ax/ath11k-wifi/board-yuncore-fap650.bin.IPQ6018 differ diff --git a/patches/ipq807x/0004-ipq807x-add-the-Qualcomm-AX-target-support.patch b/patches/ipq807x/0004-ipq807x-add-the-Qualcomm-AX-target-support.patch index 347329ddb..1949dc217 100644 --- a/patches/ipq807x/0004-ipq807x-add-the-Qualcomm-AX-target-support.patch +++ b/patches/ipq807x/0004-ipq807x-add-the-Qualcomm-AX-target-support.patch @@ -1,16 +1,16 @@ -From 1749748819caa03e249e8a5df1311498550cbd3b Mon Sep 17 00:00:00 2001 +From c931a11e400ddf501f6796c62ba512195a1561ce Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sat, 18 Jul 2020 08:53:44 +0200 -Subject: [PATCH 68/83] ipq807x: add the Qualcomm AX target support +Subject: [PATCH] ipq807x: add the Qualcomm AX target support Signed-off-by: John Crispin --- config/Config-kernel.in | 9 ++++++ include/image.mk | 6 +++- include/kernel-version.mk | 2 +- + package/boot/uboot-envtools/Makefile | 5 --- package/boot/uboot-envtools/files/ipq807x | 37 +++++++++++++++++++++++ - toolchain/kernel-headers/Makefile | 8 +++++ - 5 files changed, 60 insertions(+), 2 deletions(-) + 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 package/boot/uboot-envtools/files/ipq807x diff --git a/config/Config-kernel.in b/config/Config-kernel.in @@ -70,13 +70,29 @@ index c7aba61cd7..efecf2f919 100644 LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03 LINUX_KERNEL_HASH-5.4.158 = 6e018fecdc8fc24553756e582d83b82d65b10a6b03ef36262a24911f839b8d59 LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 +diff --git a/package/boot/uboot-envtools/Makefile b/package/boot/uboot-envtools/Makefile +index a9eccec0ce..0696c81bea 100644 +--- a/package/boot/uboot-envtools/Makefile ++++ b/package/boot/uboot-envtools/Makefile +@@ -58,11 +58,6 @@ MAKE_FLAGS += \ + no-dot-config-targets=envtools \ + envtools + +-define Package/uboot-envtools/conffiles +-/etc/config/ubootenv +-/etc/fw_env.config +-endef +- + define Package/uboot-envtools/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/env/fw_printenv $(1)/usr/sbin diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x new file mode 100644 -index 0000000000..6c429f1852 +index 0000000000..84ed73f288 --- /dev/null +++ b/package/boot/uboot-envtools/files/ipq807x @@ -0,0 +1,37 @@ -+[ -e /etc/config/ubootenv ] && exit 0 ++[ -e /etc/config/ubootenv ] && rm /etc/config/ubootenv + +touch /etc/config/ubootenv + diff --git a/patches/ramips/0017-ramips-add-support-for-YunCore-FAP640.patch b/patches/ramips/0017-ramips-add-support-for-YunCore-FAP640.patch new file mode 100644 index 000000000..16f14a3ed --- /dev/null +++ b/patches/ramips/0017-ramips-add-support-for-YunCore-FAP640.patch @@ -0,0 +1,301 @@ +From dbd1fbf93aa42f4bd69ec6af4c4741229f5d7005 Mon Sep 17 00:00:00 2001 +From: Volodymyr Puiul +Date: Thu, 8 Dec 2022 15:20:40 +0100 +Subject: [PATCH] ramips: add support for YunCore FAP640 + +It is an in-wall 802.11ax (Wi-Fi 6) router, based on MediaTek MT7621A. + +Specifications: +- SoC: MT7621AT (880MHz, 2 Cores) +- RAM: 128 MB +- Flash: 16 MB SPI +- Wi-Fi: + - MT7915DN + MT7905DAN: 2.4/5 GHz +- Ethernet: 5x1GiE via MT7530, 1xWAN with POE and 4xLAN +- UART: J4 (115200 baud) + - Pinout: [3V3] (TXD) (RXD) (GND) +- Power: 802.11af/at PoE; + +- Bootloader: U-Boot +- Buttons: + - Reset +- LEDs: + - Status - RGB controlled by + - GPIO 14 LOW - green color + - GPIO 15 LOW- red color + - GPIO 16 LOW - blue color + - WAN - gren color, controlled by switch GPIO 12 LOW + - LAN1 - gren color, controlled by switch GPIO 9 HIGH + - LAN2 - gren color, controlled by switch GPIO 6 LOW + - LAN3 - gren color, controlled by switch GPIO 3 LOW + - LAN4 - gren color, controlled by switch GPIO 0 LOW + +Installation: +OEM firmware is based on LEDE with custom UI and support standard sysupgrade +variant of firmware. However it requires "*.ubin" extension for sysupgrade file. +Always select "Factory reset" switch on upgrade to OpenWRT, otherwise +router will not boot. + +MAC addresses with OEM firmware: +vendor source +lan factory 0x4 (label) +5g factory 0x4 (label) +2g label with flipped bits bit in 1-st byte and bits 5, 6, 7 in + 4-th byte + +Example +label: 44:xx:xx:b7:xx:xx +lan: 44:xx:xx:b7:xx:xx +2g 46:xx:xx:c7:xx:xx +5g 44:xx:xx:b7:xx:xx + +Signed-off-by: Volodymyr Puiul +--- + .../ramips/dts/mt7621_yuncore_fap640.dts | 198 ++++++++++++++++++ + target/linux/ramips/image/mt7621.mk | 10 + + .../etc/hotplug.d/ieee80211/10_fix_wifi_mac | 5 + + 3 files changed, 213 insertions(+) + create mode 100644 target/linux/ramips/dts/mt7621_yuncore_fap640.dts + +diff --git a/target/linux/ramips/dts/mt7621_yuncore_fap640.dts b/target/linux/ramips/dts/mt7621_yuncore_fap640.dts +new file mode 100644 +index 0000000000..b48546d825 +--- /dev/null ++++ b/target/linux/ramips/dts/mt7621_yuncore_fap640.dts +@@ -0,0 +1,198 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later OR MIT ++ ++#include "mt7621.dtsi" ++ ++#include ++#include ++ ++/ { ++ compatible = "yuncore,fap640", "mediatek,mt7621-soc"; ++ model = "YunCore FAP640"; ++ ++ aliases { ++ led-boot = &led_status_blue; ++ led-failsafe = &led_status_red; ++ led-running = &led_status_green; ++ led-upgrade = &led_status_red; ++ label-mac-device = &gmac0; ++ }; ++ ++ chosen { ++ bootargs = "console=ttyS0,115200"; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ led_status_green: status_green { ++ label = "green:status"; ++ gpios = <&gpio 14 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_status_red: status_red { ++ label = "red:status"; ++ gpios = <&gpio 15 GPIO_ACTIVE_LOW>; ++ }; ++ ++ led_status_blue: status_blue { ++ label = "blue:status"; ++ gpios = <&gpio 16 GPIO_ACTIVE_LOW>; ++ }; ++ ++ wan { ++ label = "green:wan"; ++ gpios = <&switch0 12 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "mt7530-0:04:link"; ++ }; ++ ++ lan1 { ++ label = "green:lan1"; ++ gpios = <&switch0 9 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "mt7530-0:03:link"; ++ }; ++ ++ lan2 { ++ label = "green:lan2"; ++ gpios = <&switch0 6 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "mt7530-0:02:link"; ++ }; ++ ++ lan3 { ++ label = "green:lan3"; ++ gpios = <&switch0 3 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "mt7530-0:01:link"; ++ }; ++ ++ lan4 { ++ label = "green:lan4"; ++ gpios = <&switch0 0 GPIO_ACTIVE_LOW>; ++ linux,default-trigger = "mt7530-0:00:link"; ++ }; ++ }; ++ ++ watchdog { ++ compatible = "linux,wdt-gpio"; ++ gpios = <&gpio 0 GPIO_ACTIVE_LOW>; ++ hw_algo = "toggle"; ++ hw_margin_ms = <200>; ++ always-running; ++ }; ++ ++ keys { ++ compatible = "gpio-keys"; ++ ++ reset { ++ label = "reset"; ++ gpios = <&gpio 18 GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ }; ++}; ++ ++&spi0 { ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <80000000>; ++ m25p,fast-read; ++ ++ partitions { ++ compatible = "fixed-partitions"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ partition@0 { ++ label = "Bootloader"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "Config"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ /* range 0x40000 to 0x50000 is empty in vendor ++ * firmware, so we do not use it either ++ */ ++ ++ factory: partition@50000 { ++ label = "Factory"; ++ reg = <0x50000 0x40000>; ++ read-only; ++ }; ++ ++ partition@90000 { ++ compatible = "denx,uimage"; ++ label = "firmware"; ++ reg = <0x90000 0xf60000>; ++ }; ++ ++ partition@ff0000 { ++ label = "certificates"; ++ reg = <0xff0000 0x10000>; ++ }; ++ }; ++ }; ++}; ++ ++&pcie { ++ status = "okay"; ++}; ++ ++&pcie1 { ++ wifi@0,0 { ++ compatible = "mediatek,mt76"; ++ reg = <0x0000 0 0 0 0>; ++ mediatek,mtd-eeprom = <&factory 0x0>; ++ mediatek,disable-radar-background; ++ }; ++}; ++ ++&gmac0 { ++ mtd-mac-address = <&factory 0x4>; ++}; ++ ++&switch0 { ++ gpio-controller; ++ #gpio-cells = <2>; ++ ++ ports { ++ port@0 { ++ status = "okay"; ++ label = "lan4"; ++ }; ++ ++ port@1 { ++ status = "okay"; ++ label = "lan3"; ++ }; ++ ++ port@2 { ++ status = "okay"; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ status = "okay"; ++ label = "lan1"; ++ }; ++ ++ port@4 { ++ status = "okay"; ++ label = "wan"; ++ mtd-mac-address = <&factory 0x4>; ++ mtd-mac-address-increment = <1>; ++ }; ++ }; ++}; ++ ++&state_default { ++ gpio { ++ groups = "jtag", "wdt"; ++ function = "gpio"; ++ }; ++}; +diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk +index 9e1eed024b..a528a257d4 100644 +--- a/target/linux/ramips/image/mt7621.mk ++++ b/target/linux/ramips/image/mt7621.mk +@@ -1637,6 +1637,16 @@ define Device/youku_yk-l2 + endef + TARGET_DEVICES += youku_yk-l2 + ++define Device/yuncore_fap640 ++ $(Device/dsa-migration) ++ $(Device/uimage-lzma-loader) ++ IMAGE_SIZE := 15808k ++ DEVICE_VENDOR := YunCore ++ DEVICE_MODEL := FAP640 ++ DEVICE_PACKAGES := kmod-mt7915e ++endef ++TARGET_DEVICES += yuncore_fap640 ++ + define Device/zbtlink_zbt-we1326 + $(Device/dsa-migration) + $(Device/uimage-lzma-loader) +diff --git a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +index 157e706534..be7b226c32 100644 +--- a/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac ++++ b/target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac +@@ -38,4 +38,9 @@ case "$board" in + [ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 1 > /sys${DEVPATH}/macaddress + [ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress + ;; ++ yuncore,fap640) ++ hw_mac_addr="$(mtd_get_mac_binary Factory 0x4)" ++ [ "$PHYNBR" = "0" ] && macaddr_setbit_la "$hw_mac_addr" > /sys${DEVPATH}/macaddress ++ [ "$PHYNBR" = "1" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress ++ ;; + esac +-- +2.25.1 + diff --git a/profiles/yuncore_fap640.yml b/profiles/yuncore_fap640.yml new file mode 100644 index 000000000..39b2de7a3 --- /dev/null +++ b/profiles/yuncore_fap640.yml @@ -0,0 +1,8 @@ +--- +profile: yuncore_fap640 +target: ramips +subtarget: mt7621 +description: Build image for the Yuncore FAP640 +image: bin/targets/ramips/mt7621/openwrt-ramips-mt7621-yuncore_fap640-squashfs-sysupgrade.bin +include: + - ucentral-ap diff --git a/profiles/yuncore_fap650.yml b/profiles/yuncore_fap650.yml new file mode 100644 index 000000000..50840f272 --- /dev/null +++ b/profiles/yuncore_fap650.yml @@ -0,0 +1,12 @@ +--- +profile: yuncore_fap650 +target: ipq807x +subtarget: ipq60xx +description: Build image for the YunCore FAP650 +image: bin/targets/ipq807x/ipq60xx/openwrt-ipq807x-yuncore_fap650-squashfs-sysupgrade.tar +feeds: + - name: ipq807x + path: ../../feeds/ipq807x +include: + - wifi-ax + - ucentral-ap