Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen
2024-12-27 13:31:34 +08:00
15 changed files with 681 additions and 5 deletions

View File

@@ -1257,6 +1257,13 @@ config KERNEL_MPTCP_IPV6
default KERNEL_MPTCP
endif
config KERNEL_NF_CONNTRACK_TIMEOUT
bool "Per-connection connection tracking timeout"
default y if !SMALL_FLASH
help
Select this option to enable support for per-connection conntrack timeouts.
Increases the (uncompressed) size of nf_conntrack.ko by ~8kB.
#
# NFS related symbols
#

View File

@@ -28,6 +28,7 @@ asus,rt-ac59u-v2|\
asus,zenwifi-cd6n|\
asus,zenwifi-cd6r|\
buffalo,bhr-4grv2|\
buffalo,wzr-450hp2|\
devolo,magic-2-wifi|\
engenius,eap300-v2|\
engenius,eap350-v1|\

View File

@@ -101,7 +101,8 @@ zbtlink,zbt-z8103ax)
comfast,cf-e393ax)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x80000"
;;
dlink,aquila-pro-ai-m30-a1)
dlink,aquila-pro-ai-m30-a1|\
dlink,aquila-pro-ai-m60-a1)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
;;
gatonetworks,gdsp)

View File

@@ -1048,6 +1048,40 @@ endef
$(eval $(call KernelPackage,nfnetlink-queue))
define KernelPackage/nfnetlink-cthelper
TITLE:=Netfilter User space conntrack helpers
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cthelper.ko
KCONFIG:=CONFIG_NF_CT_NETLINK_HELPER
AUTOLOAD:=$(call AutoProbe,nfnetlink_cthelper)
$(call AddDepends/nfnetlink,+kmod-nfnetlink-queue +kmod-nf-conntrack-netlink)
endef
define KernelPackage/nfnetlink-cthelper/description
Kernel modules support for a netlink-based connection tracking
userspace helpers interface
endef
$(eval $(call KernelPackage,nfnetlink-cthelper))
define KernelPackage/nfnetlink-cttimeout
TITLE:=Netfilter conntrack expectation timeout
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cttimeout.ko
KCONFIG:=CONFIG_NF_CT_NETLINK_TIMEOUT
AUTOLOAD:=$(call AutoProbe,nfnetlink_cttimeout)
$(call AddDepends/nfnetlink,+kmod-nf-conntrack +kmod-nf-conntrack-timeout @KERNEL_NF_CONNTRACK_TIMEOUT)
endef
define KernelPackage/nfnetlink-cttimeout/description
Kernel modules support for a netlink-based connection tracking
userspace timeout interface
Requires CONFIG_NF_CONNTRACK_TIMEOUT (only enabled for non-small flash devices)
endef
$(eval $(call KernelPackage,nfnetlink-cttimeout))
define KernelPackage/nf-conntrack-netlink
TITLE:=Connection tracking netlink interface
FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko

View File

@@ -430,9 +430,36 @@ hostapd_set_psk() {
local ifname="$1"
rm -f /var/run/hostapd-${ifname}.psk
case "$auth_type" in
psk|psk-sae) ;;
*) return ;;
esac
for_each_station hostapd_set_psk_file ${ifname}
}
hostapd_set_sae_file() {
local ifname="$1"
local vlan="$2"
local vlan_id=""
json_get_vars mac vid key
set_default mac "ff:ff:ff:ff:ff:ff"
[ -n "$mac" ] && mac="|mac=$mac"
[ -n "$vid" ] && vlan_id="|vlanid=$vid"
printf '%s%s%s\n' "${key}" "${mac}" "${vlan_id}" >> /var/run/hostapd-${ifname}.sae
}
hostapd_set_sae() {
local ifname="$1"
rm -f /var/run/hostapd-${ifname}.sae
case "$auth_type" in
sae|psk-sae) ;;
*) return ;;
esac
for_each_station hostapd_set_sae_file ${ifname}
}
append_iw_roaming_consortium() {
[ -n "$1" ] && append bss_conf "roaming_consortium=$1" "$N"
}
@@ -688,7 +715,7 @@ hostapd_set_bss_options() {
wps_not_configured=1
;;
psk|sae|psk-sae)
json_get_vars key wpa_psk_file
json_get_vars key wpa_psk_file sae_password_file
if [ "$ppsk" -ne 0 ]; then
json_get_vars auth_secret auth_port
set_default auth_port 1812
@@ -704,10 +731,15 @@ hostapd_set_bss_options() {
return 1
fi
[ -z "$wpa_psk_file" ] && set_default wpa_psk_file /var/run/hostapd-$ifname.psk
[ -n "$wpa_psk_file" ] && {
[ -n "$wpa_psk_file" ] && [ "$auth_type" = "psk" -o "$auth_type" = "psk-sae" ] && {
[ -e "$wpa_psk_file" ] || touch "$wpa_psk_file"
append bss_conf "wpa_psk_file=$wpa_psk_file" "$N"
}
[ -z "$sae_password_file" ] && set_default sae_password_file /var/run/hostapd-$ifname.sae
[ -n "$sae_password_file" ] && [ "$auth_type" = "sae" -o "$auth_type" = "psk-sae" ] && {
[ -e "$sae_password_file" ] || touch "$sae_password_file"
append bss_conf "sae_password_file=$sae_password_file" "$N"
}
[ "$eapol_version" -ge "1" -a "$eapol_version" -le "2" ] && append bss_conf "eapol_version=$eapol_version" "$N"
set_default dynamic_vlan 0

View File

@@ -668,7 +668,7 @@ mac80211_set_ifname() {
mac80211_prepare_vif() {
json_select config
json_get_vars ifname mode ssid wds powersave macaddr enable wpa_psk_file vlan_file
json_get_vars ifname mode ssid wds powersave macaddr enable wpa_psk_file sae_password_file vlan_file
[ -n "$ifname" ] || {
local prefix;
@@ -701,7 +701,12 @@ mac80211_prepare_vif() {
[ "$mode" == "ap" ] && {
json_select config
wireless_vif_parse_encryption
json_select ..
[ -z "$wpa_psk_file" ] && hostapd_set_psk "$ifname"
[ -z "$sae_password_file" ] && hostapd_set_sae "$ifname"
[ -z "$vlan_file" ] && hostapd_set_vlan "$ifname"
}

View File

@@ -10,6 +10,7 @@ hostapd.data.pending_config = {};
hostapd.data.file_fields = {
vlan_file: true,
wpa_psk_file: true,
sae_password_file: true,
accept_mac_file: true,
deny_mac_file: true,
eap_user_file: true,
@@ -364,6 +365,7 @@ function bss_remove_file_fields(config)
for (let key in config.hash)
new_cfg.hash[key] = config.hash[key];
delete new_cfg.hash.wpa_psk_file;
delete new_cfg.hash.sae_password_file;
delete new_cfg.hash.vlan_file;
return new_cfg;

View File

@@ -11,6 +11,7 @@ PKG_SOURCE_VERSION:=38439f8a53d33b14744bc8f938662670b9d3e361
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=LICENSE
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

View File

@@ -0,0 +1,179 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca955x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
compatible = "buffalo,wzr-450hp2", "qca,qca9558";
model = "Buffalo WZR-450HP2/WZR-450HP2D";
aliases {
led-boot = &led_status_green;
led-failsafe = &led_status_green;
led-running = &led_status_green;
led-upgrade = &led_status_green;
label-mac-device = &eth0;
};
leds {
compatible = "gpio-leds";
led_status_green: status_green {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
default-state = "on";
};
led_wlan_green: wlan_green {
function = LED_FUNCTION_WLAN;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
led_wps_green: wps_green {
function = LED_FUNCTION_WPS;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "Reset button";
linux,code = <KEY_RESTART>;
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
rfkill {
label = "RFKILL button";
linux,code = <KEY_RFKILL>;
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
};
&spi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x40000>;
read-only;
};
partition@40000 {
reg = <0x40000 0x10000>;
label = "u-boot-env";
};
partition@50000 {
compatible = "denx,uimage";
reg = <0x50000 0xf90000>;
label = "firmware";
};
partition@fe0000 {
reg = <0xfe0000 0x10000>;
label = "user_property";
read-only;
};
art: partition@ff0000 {
label = "art";
reg = <0xff0000 0x10000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr_wan: macaddr@0 {
reg = <0x0 0x6>;
};
macaddr_lan: macaddr@6 {
reg = <0x6 0x6>;
};
cal_ath9k: cal_ath9k@1000 {
reg = <0x1000 0x440>;
};
};
};
};
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
qca,ar8327-initvals = <
0x04 0x07600000 /* PORT0 PAD MODE CTRL: RGMII, to eth0 */
0x0c 0x00080080 /* PORT6 PAD MODE CTRL: SGMII, to eth1 */
0x10 0x81000080 /* POWER ON STRAP */
0x50 0xcc35cc35 /* LED_CTRL0 */
0x54 0xca35ca35 /* LED_CTRL1 */
0x58 0xc935c935 /* LED_CTRL2 */
0x5c 0x03ffff00 /* LED_CTRL3 */
0x7c 0x0000007e /* PORT0_STATUS */
0x94 0x0000007e /* PORT6_STATUS */
>;
};
};
&eth0 {
status = "okay";
nvmem-cells = <&macaddr_wan>;
nvmem-cell-names = "mac-address";
phy-handle = <&phy0>;
pll-data = <0x56000000 0x00000101 0x00001616>;
gmac-config {
device = <&gmac>;
rgmii-enabled = <1>;
};
};
&eth1 {
status = "okay";
nvmem-cells = <&macaddr_lan>;
nvmem-cell-names = "mac-address";
pll-data = <0x03000101 0x00000101 0x00001616>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&wmac {
status = "okay";
nvmem-cells = <&cal_ath9k>;
nvmem-cell-names = "calibration";
};

View File

@@ -213,6 +213,10 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth0"
;;
buffalo,wzr-450hp2)
ucidef_add_switch "switch0" \
"6@eth1" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "0@eth0"
;;
buffalo,wzr-600dhp|\
buffalo,wzr-hp-ag300h|\
tplink,archer-c25-v1|\

View File

@@ -760,6 +760,18 @@ define Device/buffalo_wzr-hp-g450h
endef
TARGET_DEVICES += buffalo_wzr-hp-g450h
define Device/buffalo_wzr-450hp2
$(Device/buffalo_common)
SOC := qca9558
DEVICE_MODEL := WZR-450HP2
DEVICE_ALT0_VENDOR := Buffalo
DEVICE_ALT0_MODEL := WZR-450HP2D
BUFFALO_PRODUCT := WZR-450HP2
IMAGE_SIZE := 15936k
SUPPORTED_DEVICES += wzr-450hp2
endef
TARGET_DEVICES += buffalo_wzr-450hp2
define Device/comfast_cf-e110n-v2
SOC := qca9533
DEVICE_VENDOR := COMFAST

View File

@@ -0,0 +1,377 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include "mt7986a.dtsi"
/ {
model = "D-Link AQUILA PRO AI M60 A1";
compatible = "dlink,aquila-pro-ai-m60-a1", "mediatek,mt7986a";
aliases {
serial0 = &uart0;
led-boot = &led_status_white;
led-failsafe = &led_status_red;
led-running = &led_status_white;
led-upgrade = &led_status_blue;
};
chosen {
stdout-path = "serial0:115200n8";
};
memory@40000000 {
reg = <0 0x40000000 0 0x20000000>;
};
gpio-keys {
compatible = "gpio-keys";
button-reset {
label = "reset";
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
button-wps {
label = "wps";
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
button-leds-on-off {
label = "leds-on-off";
linux,code = <KEY_LIGHTS_TOGGLE>;
gpios = <&pio 47 GPIO_ACTIVE_LOW>;
};
};
};
&eth {
status = "okay";
gmac0: mac@0 {
compatible = "mediatek,eth-mac";
reg = <0>;
phy-mode = "2500base-x";
nvmem-cells = <&macaddr_odm 1>;
nvmem-cell-names = "mac-address";
fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-mode = "2500base-x";
phy-handle = <&phy6>;
nvmem-cells = <&macaddr_odm 0>;
nvmem-cell-names = "mac-address";
label = "internet";
};
mdio: mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
reset-delay-us = <1500000>;
reset-post-delay-us = <1000000>;
phy6: phy@6 {
compatible = "maxlinear,gpy211", "ethernet-phy-ieee802.3-c45";
reg = <6>;
phy-mode = "2500base-x";
};
switch@1f {
compatible = "mediatek,mt7531";
reg = <31>;
reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <66 IRQ_TYPE_LEVEL_HIGH>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
label = "lan1";
};
port@1 {
reg = <1>;
label = "lan2";
};
port@2 {
reg = <2>;
label = "lan3";
};
port@3 {
reg = <3>;
label = "lan4";
};
port@6 {
reg = <6>;
label = "cpu";
ethernet = <&gmac0>;
phy-mode = "2500base-x";
fixed-link {
speed = <2500>;
full-duplex;
pause;
};
};
};
};
};
};
&pio {
spi_flash_pins: spi-flash-pins-33-to-38 {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
conf-pu {
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};
conf-pd {
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
drive-strength = <8>;
mediatek,pull-down-adv = <0>; /* bias-disable */
};
};
wf_2g_5g_pins: wf_2g_5g-pins {
mux {
function = "wifi";
groups = "wf_2g", "wf_5g";
};
conf {
pins =
"WF0_HB2",
"WF0_HB3",
"WF0_HB4",
"WF0_HB0",
"WF0_HB0_B",
"WF0_HB5",
"WF0_HB6",
"WF0_HB7",
"WF0_HB8",
"WF0_HB9",
"WF0_HB10",
"WF0_TOP_CLK",
"WF0_TOP_DATA",
"WF1_HB1",
"WF1_HB2",
"WF1_HB3",
"WF1_HB4",
"WF1_HB0",
"WF1_HB5",
"WF1_HB6",
"WF1_HB7",
"WF1_HB8",
"WF1_TOP_CLK",
"WF1_TOP_DATA";
drive-strength = <4>;
};
};
i2c_pins_3_4: i2c-pins-3-4 {
mux {
function = "i2c";
groups = "i2c";
};
};
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi_flash_pins>;
status = "okay";
flash@0 {
compatible = "spi-nand";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <20000000>;
spi-tx-bus-width = <4>;
spi-rx-bus-width = <4>;
mediatek,nmbm;
mediatek,bmt-max-ratio = <1>;
mediatek,bmt-max-reserved-blocks = <64>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "BL2";
reg = <0x000000 0x100000>;
read-only;
};
partition@100000 {
label = "u-boot-env";
reg = <0x100000 0x80000>;
};
partition@180000 {
label = "Factory";
reg = <0x180000 0x200000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0x1000>;
};
};
};
partition@380000 {
label = "FIP";
reg = <0x380000 0x200000>;
read-only;
};
partition@580000 {
label = "ubi";
reg = <0x580000 0x3200000>;
};
partition@3780000 {
label = "ubi1";
reg = <0x3780000 0x3200000>;
read-only;
};
partition@6980000 {
label = "Odm";
reg = <0x6980000 0x40000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr_odm: macaddr@81 {
compatible = "mac-base";
reg = <0x81 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
partition@69c0000 {
label = "Config1";
reg = <0x69c0000 0x80000>;
read-only;
};
partition@6a40000 {
label = "Config2";
reg = <0x6a40000 0x80000>;
read-only;
};
partition@6ac0000 {
label = "Storage";
reg = <0x6ac0000 0xA00000>;
read-only;
};
};
};
};
&wifi {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&wf_2g_5g_pins>;
nvmem-cells = <&eeprom_factory_0>;
nvmem-cell-names = "eeprom";
band@0 {
/* 2.4 GHz */
reg = <0>;
nvmem-cells = <&macaddr_odm 2>;
nvmem-cell-names = "mac-address";
};
band@1 {
/* 5 GHz */
reg = <1>;
nvmem-cells = <&macaddr_odm 5>;
nvmem-cell-names = "mac-address";
};
};
&uart0 {
status = "okay";
};
&watchdog {
status = "okay";
};
&i2c0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c_pins_3_4>;
gca230718@40 {
compatible = "unknown,gca230718";
reg = <0x40>;
led_status_red: led@0 {
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_STATUS;
reg = <0>;
};
led@1 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_STATUS;
reg = <1>;
};
led_status_blue: led@2 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
reg = <2>;
};
led_status_white: led@3 {
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_STATUS;
reg = <3>;
};
};
};

View File

@@ -94,7 +94,8 @@ mediatek_setup_interfaces()
openwrt,one)
ucidef_set_interfaces_lan_wan eth1 eth0
;;
dlink,aquila-pro-ai-m30-a1)
dlink,aquila-pro-ai-m30-a1|\
dlink,aquila-pro-ai-m60-a1)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet
;;
mediatek,mt7986a-rfb)

View File

@@ -128,6 +128,10 @@ platform_do_upgrade() {
yuncore,ax835)
default_do_upgrade "$1"
;;
dlink,aquila-pro-ai-m60-a1)
fw_setenv sw_tryactive 0
nand_do_upgrade "$1"
;;
mercusys,mr90x-v1|\
tplink,re6000xd)
CI_UBIPART="ubi0"

View File

@@ -592,6 +592,8 @@ TARGET_DEVICES += cmcc_rax3000m
define Device/comfast_cf-e393ax
DEVICE_VENDOR := COMFAST
DEVICE_MODEL := CF-E393AX
DEVICE_ALT0_VENDOR := COMFAST
DEVICE_ALT0_MODEL := CF-E395AX
DEVICE_DTS := mt7981a-comfast-cf-e393ax
DEVICE_DTS_DIR := ../dts
DEVICE_DTC_FLAGS := --pad 4096
@@ -756,6 +758,20 @@ define Device/dlink_aquila-pro-ai-m30-a1
endef
TARGET_DEVICES += dlink_aquila-pro-ai-m30-a1
define Device/dlink_aquila-pro-ai-m60-a1
DEVICE_VENDOR := D-Link
DEVICE_MODEL := AQUILA PRO AI M60
DEVICE_VARIANT := A1
DEVICE_DTS := mt7986a-dlink-aquila-pro-ai-m60-a1
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-leds-gca230718 kmod-mt7915e kmod-mt7986-firmware mt7986-wo-firmware
IMAGES += recovery.bin
IMAGE_SIZE := 51200k
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
IMAGE/recovery.bin := sysupgrade-tar | pad-to $$(IMAGE_SIZE) | dlink-ai-recovery-header DLK6E8202001 \x30\x6C\x19\x0C \x00\x00\x2C\x00 \x00\x00\x20\x03 \x82\x6E
endef
TARGET_DEVICES += dlink_aquila-pro-ai-m60-a1
define Device/edgecore_eap111
DEVICE_VENDOR := Edgecore
DEVICE_MODEL := EAP111