Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2024-09-23 16:03:08 +08:00
commit e197182f1e
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
112 changed files with 2384 additions and 763 deletions

View File

@ -233,7 +233,7 @@ menu "Global build settings"
config STRIP_KERNEL_EXPORTS config STRIP_KERNEL_EXPORTS
bool "Strip unnecessary exports from the kernel image" bool "Strip unnecessary exports from the kernel image"
depends on !LINUX_6_6 depends on BROKEN
help help
Reduces kernel size by stripping unused kernel exports from the kernel Reduces kernel size by stripping unused kernel exports from the kernel
image. Note that this might make the kernel incompatible with any kernel image. Note that this might make the kernel incompatible with any kernel

View File

@ -1,2 +0,0 @@
LINUX_VERSION-6.1 = .109
LINUX_KERNEL_HASH-6.1.109 = 732ff40ac63642c5ddbb7d65c24c90ed08b95af0e8c92df4739e9703eec01ac1

View File

@ -53,7 +53,6 @@ ac_cv_have_control_in_msghdr=yes
ac_cv_have_decl_sys_siglist=no ac_cv_have_decl_sys_siglist=no
ac_cv_have_openpty_ctty_bug=yes ac_cv_have_openpty_ctty_bug=yes
ac_cv_have_space_d_name_in_struct_dirent=yes ac_cv_have_space_d_name_in_struct_dirent=yes
ac_cv_header_netinet_sctp_h=no
ac_cv_header_netinet_sctp_uio_h=no ac_cv_header_netinet_sctp_uio_h=no
ac_cv_int64_t=yes ac_cv_int64_t=yes
ac_cv_lbl_unaligned_fail=no ac_cv_lbl_unaligned_fail=no

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=tfa-layerscape PKG_NAME:=tfa-layerscape
PKG_VERSION:=6.6.3.1.0.0 PKG_VERSION:=6.6.23.2.0.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/nxp-qoriq/atf PKG_SOURCE_URL:=https://github.com/nxp-qoriq/atf
PKG_SOURCE_VERSION:=lf-6.6.3-1.0.0 PKG_SOURCE_VERSION:=lf-6.6.23-2.0.0
PKG_MIRROR_HASH:=28b731c1c4cc3226ccaef2142c61127f213c03cbd219df556c1d191e95f8470c PKG_MIRROR_HASH:=628a95ba60a593ae0575ee9ede1154445ec3a86a07b18e4947e06e13c2b67859
PKG_BUILD_DEPENDS:=tfa-layerscape/host PKG_BUILD_DEPENDS:=tfa-layerscape/host
include $(INCLUDE_DIR)/host-build.mk include $(INCLUDE_DIR)/host-build.mk

View File

@ -1,6 +1,6 @@
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -953,10 +953,6 @@ CRTTOOL ?= ${CRTTOOLPATH}/cert_create$ @@ -128,10 +128,6 @@ CRTTOOL ?= ${CRTTOOLPATH}/cert_create$
ENCTOOLPATH ?= tools/encrypt_fw ENCTOOLPATH ?= tools/encrypt_fw
ENCTOOL ?= ${ENCTOOLPATH}/encrypt_fw${BIN_EXT} ENCTOOL ?= ${ENCTOOLPATH}/encrypt_fw${BIN_EXT}
@ -11,7 +11,7 @@
# Variables for use with sptool # Variables for use with sptool
SPTOOLPATH ?= tools/sptool SPTOOLPATH ?= tools/sptool
SPTOOL ?= ${SPTOOLPATH}/sptool.py SPTOOL ?= ${SPTOOLPATH}/sptool.py
@@ -1409,13 +1405,6 @@ endif @@ -1597,13 +1593,6 @@ endif #(CHECKPATCH)
clean: clean:
@echo " CLEAN" @echo " CLEAN"
$(call SHELL_REMOVE_DIR,${BUILD_PLAT}) $(call SHELL_REMOVE_DIR,${BUILD_PLAT})
@ -21,11 +21,11 @@
-# Clear the MAKEFLAGS as we do not want -# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake. -# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) clean - ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) clean
-endif -endif #(UNIX_MK)
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} clean
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} clean ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} clean
${Q}${MAKE} --no-print-directory -C ${ROMLIBPATH} clean ${Q}${MAKE} --no-print-directory -C ${ROMLIBPATH} clean
@@ -1424,13 +1413,6 @@ realclean distclean: @@ -1612,13 +1601,6 @@ realclean distclean:
@echo " REALCLEAN" @echo " REALCLEAN"
$(call SHELL_REMOVE_DIR,${BUILD_BASE}) $(call SHELL_REMOVE_DIR,${BUILD_BASE})
$(call SHELL_DELETE_ALL, ${CURDIR}/cscope.*) $(call SHELL_DELETE_ALL, ${CURDIR}/cscope.*)
@ -35,29 +35,29 @@
-# Clear the MAKEFLAGS as we do not want -# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake. -# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) realclean - ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) realclean
-endif -endif #(UNIX_MK)
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} realclean ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${CRTTOOLPATH} realclean
${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} realclean ${Q}${MAKE} PLAT=${PLAT} --no-print-directory -C ${ENCTOOLPATH} realclean
${Q}${MAKE} --no-print-directory -C ${ROMLIBPATH} clean ${Q}${MAKE} --no-print-directory -C ${ROMLIBPATH} clean
@@ -1486,7 +1468,7 @@ certificates: ${CRT_DEPS} ${CRTTOOL} @@ -1674,7 +1656,7 @@ certificates: ${CRT_DEPS} ${CRTTOOL}
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
endif endif #(GENERATE_COT)
-${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS} ${FIPTOOL} -${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS} ${FIPTOOL}
+${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS} +${BUILD_PLAT}/${FIP_NAME}: ${FIP_DEPS}
$(eval ${CHECK_FIP_CMD}) $(eval ${CHECK_FIP_CMD})
${Q}${FIPTOOL} create ${FIP_ARGS} $@ ${Q}${FIPTOOL} create ${FIP_ARGS} $@
${Q}${FIPTOOL} info $@ ${Q}${FIPTOOL} info $@
@@ -1503,7 +1485,7 @@ fwu_certificates: ${FWU_CRT_DEPS} ${CRTT @@ -1691,7 +1673,7 @@ fwu_certificates: ${FWU_CRT_DEPS} ${CRTT
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
endif endif #(GENERATE_COT)
-${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS} ${FIPTOOL} -${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS} ${FIPTOOL}
+${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS} +${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP_DEPS}
$(eval ${CHECK_FWU_FIP_CMD}) $(eval ${CHECK_FWU_FIP_CMD})
${Q}${FIPTOOL} create ${FWU_FIP_ARGS} $@ ${Q}${FIPTOOL} create ${FWU_FIP_ARGS} $@
${Q}${FIPTOOL} info $@ ${Q}${FIPTOOL} info $@
@@ -1511,19 +1493,9 @@ ${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP @@ -1699,19 +1681,9 @@ ${BUILD_PLAT}/${FWU_FIP_NAME}: ${FWU_FIP
@echo "Built $@ successfully" @echo "Built $@ successfully"
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
@ -72,26 +72,26 @@
-# Clear the MAKEFLAGS as we do not want -# Clear the MAKEFLAGS as we do not want
-# to pass the gnumake flags to nmake. -# to pass the gnumake flags to nmake.
- ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL)) - ${Q}set MAKEFLAGS= && ${MSVC_NMAKE} /nologo /f ${FIPTOOLPATH}/Makefile.msvc FIPTOOLPATH=$(subst /,\,$(FIPTOOLPATH)) FIPTOOL=$(subst /,\,$(FIPTOOL))
-endif -endif #(UNIX_MK)
- -
romlib.bin: libraries FORCE romlib.bin: libraries FORCE
${Q}${MAKE} PLAT_DIR=${PLAT_DIR} BUILD_PLAT=${BUILD_PLAT} ENABLE_BTI=${ENABLE_BTI} ARM_ARCH_MINOR=${ARM_ARCH_MINOR} INCLUDES='${INCLUDES}' DEFINES='${DEFINES}' --no-print-directory -C ${ROMLIBPATH} all ${Q}${MAKE} PLAT_DIR=${PLAT_DIR} BUILD_PLAT=${BUILD_PLAT} ENABLE_BTI=${ENABLE_BTI} ARM_ARCH_MINOR=${ARM_ARCH_MINOR} INCLUDES='${INCLUDES}' DEFINES='${DEFINES}' --no-print-directory -C ${ROMLIBPATH} all
--- a/tools/fiptool/Makefile --- a/tools/fiptool/Makefile
+++ b/tools/fiptool/Makefile +++ b/tools/fiptool/Makefile
@@ -67,7 +67,7 @@ all: ${PROJECT} @@ -81,7 +81,7 @@ all: --openssl ${PROJECT}
${PROJECT}: --openssl ${OBJECTS} Makefile ${PROJECT}: ${OBJECTS} Makefile
@echo " HOSTLD $@" @echo " HOSTLD $@"
- ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} - ${Q}${HOSTCC} ${OBJECTS} -o $@ $(LDOPTS)
+ ${Q}${HOSTCC} ${OBJECTS} -o $@ ${LDLIBS} $(LDFLAGS) + ${Q}${HOSTCC} ${OBJECTS} -o $@ $(LDOPTS) $(LDFLAGS)
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
@echo "Built $@ successfully" @echo "Built $@ successfully"
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
--- a/tools/nxp/plat_fiptool/plat_fiptool.mk --- a/tools/fiptool/plat_fiptool/nxp/plat_fiptool.mk
+++ b/tools/nxp/plat_fiptool/plat_fiptool.mk +++ b/tools/fiptool/plat_fiptool/nxp/plat_fiptool.mk
@@ -22,11 +22,11 @@ INCLUDE_PATHS += -I${PLAT_DEF_UUID_OID_C @@ -21,11 +21,11 @@ INCLUDE_PATHS += -I${PLAT_DEF_UUID_OID_C
$(shell rm ${PLAT_DEF_UUID_CONFIG_FILE_PATH}/${PLAT_DEF_UUID_CONFIG_FILE_NAME}.o) -I./
ifeq (${PLAT_DEF_OID},yes) ifeq (${PLAT_DEF_OID},yes)
-HOSTCCFLAGS += -DPLAT_DEF_OID -HOSTCCFLAGS += -DPLAT_DEF_OID

View File

@ -92,6 +92,8 @@ comfast,cf-e393ax)
dlink,aquila-pro-ai-m30-a1) dlink,aquila-pro-ai-m30-a1)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000" ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x40000"
;; ;;
glinet,gl-x3000|\
glinet,gl-xe3000|\
glinet,gl-mt2500|\ glinet,gl-mt2500|\
glinet,gl-mt6000) glinet,gl-mt6000)
local envdev=$(find_mmc_part "u-boot-env") local envdev=$(find_mmc_part "u-boot-env")

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=uboot-layerscape PKG_NAME:=uboot-layerscape
PKG_VERSION:=6.6.3.1.0.0 PKG_VERSION:=6.6.23.2.0.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/nxp-qoriq/u-boot PKG_SOURCE_URL:=https://github.com/nxp-qoriq/u-boot
PKG_SOURCE_VERSION:=lf-6.6.3-1.0.0 PKG_SOURCE_VERSION:=lf-6.6.23-2.0.0
PKG_MIRROR_HASH:=dec5b6e4fe328b930f201fbf06a0a7b71a9dd72f38f16c9570188c0a7fea916a PKG_MIRROR_HASH:=41e089fde1d0b3b0998e6af33d5f4c2b62860bda6cd1e6a0e8d47dfd5749005d
include $(INCLUDE_DIR)/u-boot.mk include $(INCLUDE_DIR)/u-boot.mk
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View File

@ -17,16 +17,16 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
--- a/configs/ls1021aiot_sdcard_defconfig --- a/configs/ls1021aiot_sdcard_defconfig
+++ b/configs/ls1021aiot_sdcard_defconfig +++ b/configs/ls1021aiot_sdcard_defconfig
@@ -24,7 +24,7 @@ CONFIG_AHCI=y @@ -14,7 +14,7 @@ CONFIG_SYS_I2C_MXC_I2C3=y
CONFIG_LAYERSCAPE_NS_ACCESS=y CONFIG_DM_GPIO=y
CONFIG_PCIE1=y CONFIG_DEFAULT_DEVICE_TREE="ls1021a-iot-duart"
CONFIG_PCIE2=y CONFIG_SPL_TEXT_BASE=0x10000000
-CONFIG_SYS_MONITOR_LEN=524288 -CONFIG_SYS_MONITOR_LEN=524288
+CONFIG_SYS_MONITOR_LEN=786432 +CONFIG_SYS_MONITOR_LEN=786432
CONFIG_OF_BOARD_SETUP=y CONFIG_SPL_MMC=y
CONFIG_OF_STDOUT_VIA_ALIAS=y CONFIG_SPL_SERIAL=y
CONFIG_RAMBOOT_PBL=y CONFIG_SPL_STACK=0x1001d000
@@ -40,7 +40,7 @@ CONFIG_SPL_MAX_SIZE=0x1a000 @@ -43,7 +43,7 @@ CONFIG_SPL_MAX_SIZE=0x1a000
CONFIG_SPL_PAD_TO=0x1c000 CONFIG_SPL_PAD_TO=0x1c000
CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
CONFIG_SPL_BSS_START_ADDR=0x80100000 CONFIG_SPL_BSS_START_ADDR=0x80100000
@ -34,8 +34,8 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
+CONFIG_SPL_BSS_MAX_SIZE=0xc0000 +CONFIG_SPL_BSS_MAX_SIZE=0xc0000
CONFIG_SPL_FSL_PBL=y CONFIG_SPL_FSL_PBL=y
# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set # CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
CONFIG_SYS_SPL_MALLOC=y CONFIG_SPL_SYS_MALLOC=y
@@ -66,8 +66,11 @@ CONFIG_CMD_MII=y @@ -67,8 +67,11 @@ CONFIG_CMD_MII=y
# CONFIG_CMD_MDIO is not set # CONFIG_CMD_MDIO is not set
CONFIG_CMD_PING=y CONFIG_CMD_PING=y
CONFIG_CMD_EXT2=y CONFIG_CMD_EXT2=y

View File

@ -279,6 +279,30 @@ define U-Boot/mt7981_cmcc_rax3000m-nand
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr4 DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr4
endef endef
define U-Boot/mt7981_glinet_gl-x3000
NAME:=GL.iNet GL-X3000
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=glinet_gl-x3000
UBOOT_CONFIG:=mt7981_glinet_gl-x3000
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=emmc
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr4
DEPENDS:=+trusted-firmware-a-mt7981-emmc-ddr4
endef
define U-Boot/mt7981_glinet_gl-xe3000
NAME:=GL.iNet GL-XE3000
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=glinet_gl-xe3000
UBOOT_CONFIG:=mt7981_glinet_gl-x3000
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=emmc
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr4
DEPENDS:=+trusted-firmware-a-mt7981-emmc-ddr4
endef
define U-Boot/mt7981_h3c_magic-nx30-pro define U-Boot/mt7981_h3c_magic-nx30-pro
NAME:=H3C Magic NX30 Pro NAME:=H3C Magic NX30 Pro
BUILD_SUBTARGET:=filogic BUILD_SUBTARGET:=filogic
@ -823,6 +847,8 @@ UBOOT_TARGETS := \
mt7981_cmcc_a10 \ mt7981_cmcc_a10 \
mt7981_cmcc_rax3000m-emmc \ mt7981_cmcc_rax3000m-emmc \
mt7981_cmcc_rax3000m-nand \ mt7981_cmcc_rax3000m-nand \
mt7981_glinet_gl-x3000 \
mt7981_glinet_gl-xe3000 \
mt7981_h3c_magic-nx30-pro \ mt7981_h3c_magic-nx30-pro \
mt7981_imou_lc-hx3001 \ mt7981_imou_lc-hx3001 \
mt7981_jcg_q30-pro \ mt7981_jcg_q30-pro \

View File

@ -0,0 +1,288 @@
diff --git a/arch/arm/dts/mt7981-glinet-gl-x3000.dts b/arch/arm/dts/mt7981-glinet-gl-x3000.dts
new file mode 100644
index 0000000..911a702
--- /dev/null
+++ b/arch/arm/dts/mt7981-glinet-gl-x3000.dts
@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/dts-v1/;
+#include "mt7981.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ model = "GL.iNet GL-X3000";
+ compatible = "glinet,gl-x3000", "mediatek,mt7981";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x20000000>;
+ };
+
+ reg_3p3v: regulator-3p3v {
+ compatible = "regulator-fixed";
+ regulator-name = "fixed-3.3V";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ wifi2g {
+ label = "green:wifi2g";
+ gpios = <&gpio 30 GPIO_ACTIVE_LOW>;
+ };
+
+ wifi5g {
+ label = "green:wifi5g";
+ gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
+ };
+
+ 5g_led1 {
+ label = "green:5g:led1";
+ gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+ };
+
+ 5g_led2 {
+ label = "green:5g:led2";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ };
+
+ 5g_led3 {
+ label = "green:5g:led3";
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+ };
+
+ 5g_led4 {
+ label = "green:5g:led4";
+ gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ power {
+ label = "green:power";
+ gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+ };
+
+ wan {
+ label = "green:wan";
+ gpios = <&gpio 31 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <1>;
+ phy-mode = "gmii";
+ phy-handle = <&phy0>;
+
+ mdio {
+ phy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-id03a2.9461";
+ reg = <0x0>;
+ phy-mode = "gmii";
+ };
+ };
+};
+
+&mmc0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins_default>;
+ max-frequency = <52000000>;
+ bus-width = <8>;
+ cap-mmc-hw-highspeed;
+ cap-mmc-hw-reset;
+ vmmc-supply = <&reg_3p3v>;
+ non-removable;
+ status = "okay";
+};
+
+&pinctrl {
+ mmc0_pins_default: mmc0-pins-default {
+ mux {
+ function = "flash";
+ groups = "emmc_45";
+ };
+ conf-cmd-dat {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO",
+ "SPI0_CS", "SPI0_HOLD", "SPI0_WP",
+ "SPI1_CLK", "SPI1_MOSI", "SPI1_MISO";
+ input-enable;
+ drive-strength = <MTK_DRIVE_4mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+ };
+ conf-clk {
+ pins = "SPI1_CS";
+ drive-strength = <MTK_DRIVE_6mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+ };
+ conf-rst {
+ pins = "GPIO_WPS";
+ drive-strength = <MTK_DRIVE_4mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+ };
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
diff --git a/configs/mt7981_glinet_gl-x3000_defconfig b/configs/mt7981_glinet_gl-x3000_defconfig
new file mode 100644
index 0000000..96ad96f
--- /dev/null
+++ b/configs/mt7981_glinet_gl-x3000_defconfig
@@ -0,0 +1,100 @@
+CONFIG_ARM=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x80000
+CONFIG_ENV_OFFSET=0x400000
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-glinet-gl-x3000"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_TARGET_MT7981=y
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_DEBUG_UART=y
+CONFIG_ENV_VARS_UBOOT_CONFIG=y
+# CONFIG_EXPERT is not set
+CONFIG_FIT=y
+# CONFIG_BOOTSTD is not set
+# CONFIG_LEGACY_IMAGE_FORMAT is not set
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-glinet-gl-x3000.dtb"
+CONFIG_LOGLEVEL=7
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=1049
+CONFIG_CMD_CPU=y
+CONFIG_CMD_LICENSE=y
+# CONFIG_BOOTM_NETBSD is not set
+# CONFIG_BOOTM_PLAN9 is not set
+# CONFIG_BOOTM_RTEMS is not set
+# CONFIG_BOOTM_VXWORKS is not set
+CONFIG_CMD_BOOTMENU=y
+# CONFIG_CMD_ELF is not set
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_STRINGS=y
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_GPT_RENAME=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_READ=y
+CONFIG_CMD_WRITE=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_LINK_LOCAL=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_UUID=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_SMC=y
+CONFIG_PARTITION_TYPE_GUID=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_DEFAULT_ENV_FILE="glinet_gl-x3000_env"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_CLK=y
+CONFIG_GPIO_HOG=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_MMC_HS200_SUPPORT=y
+CONFIG_MMC_MTK=y
+CONFIG_PHY_FIXED=y
+CONFIG_MEDIATEK_ETH=y
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_SERIAL=y
+CONFIG_MTK_SERIAL=y
+CONFIG_HEXDUMP=y
+# CONFIG_EFI_LOADER is not set
+CONFIG_LMB_MAX_REGIONS=64
+# CONFIG_TOOLS_LIBCRYPTO is not set
diff --git a/glinet_gl-x3000_env b/glinet_gl-x3000_env
new file mode 100644
index 0000000..e624e41
--- /dev/null
+++ b/glinet_gl-x3000_env
@@ -0,0 +1,26 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+bootdelay=3
+bootfile_bl2=openwrt-mediatek-filogic-glinet_gl-x3000-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-glinet_gl-x3000-bl31-uboot.fip
+bootfile_firmware=openwrt-mediatek-filogic-glinet_gl-x3000-squashfs-factory.bin
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_title= *** U-Boot Boot Menu for GL-iNet GL-X3000 ***
+bootmenu_0=Startup system (Default).=run boot_system
+bootmenu_1=Load Firmware via TFTP then write to eMMC.=run boot_tftp_firmware ; run bootmenu_confirm_return
+bootmenu_2=Load BL31+U-Boot FIP via TFTP then write to eMMC.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_3=Load BL2 preloader via TFTP then write to eMMC.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_4=Reboot.=reset
+bootmenu_5=Reset all settings to factory defaults.=run reset_factory ; reset
+filesize_to_blk=setexpr cnt $filesize + 0x1ff && setexpr cnt $cnt / 0x200
+mmc_read_kernel=mmc read $loadaddr $part_addr 0x100 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr $part_addr $image_size
+boot_system=run init_modem && part start mmc 0 kernel part_addr && part size mmc 0 kernel part_size && run mmc_read_kernel && bootm
+boot_tftp_firmware=tftpboot $loadaddr $bootfile_firmware && run emmc_write_firmware
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run emmc_write_fip
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run emmc_write_bl2
+emmc_write_firmware=part start mmc 0 kernel part_addr && run filesize_to_blk && mmc write $loadaddr $part_addr $cnt
+emmc_write_bl2=run filesize_to_blk && test 0x$cnt -le 0x800 && mmc partconf 0 1 1 1 && mmc write $loadaddr 0x0 0x800 ; mmc partconf 0 1 1 0
+emmc_write_fip=part start mmc 0 fip part_addr && part size mmc 0 fip part_size && run filesize_to_blk && test 0x$cnt -le 0x$part_size && mmc write $loadaddr $part_addr $cnt
+init_modem=gpio set 10; gpio set 5; gpio set 9; gpio set 11; sleep 0.1; gpio clear 10; sleep 1
+reset_factory=eraseenv && reset

View File

@ -1,3 +1,15 @@
From 6bb92fcf7d2fea2314d616e5e2391a8bf2b0fdfa Mon Sep 17 00:00:00 2001
From: Tom Rini <trini@konsulko.com>
Date: Mon, 20 May 2024 09:54:58 -0600
Subject: [PATCH] Squashed 'dts/upstream/' changes from
b35b9bd1d4ee..7e08733c96c8
---
.../src/arm64/rockchip/rk3588s-nanopi-r6c.dts | 14 +
.../src/arm64/rockchip/rk3588s-nanopi-r6s.dts | 764 ++++++++++++++++++
2 files changed, 778 insertions(+)
create mode 100644 dts/upstream/src/arm64/rockchip/rk3588s-nanopi-r6c.dts
create mode 100644 dts/upstream/src/arm64/rockchip/rk3588s-nanopi-r6s.dts
--- /dev/null --- /dev/null
+++ b/dts/upstream/src/arm64/rockchip/rk3588-armsom-sige7.dts +++ b/dts/upstream/src/arm64/rockchip/rk3588-armsom-sige7.dts
@@ -0,0 +1,691 @@ @@ -0,0 +1,691 @@

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ls-dpl PKG_NAME:=ls-dpl
PKG_VERSION:=10.38.0 PKG_VERSION:=10.39.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/nxp-qoriq/mc-utils PKG_SOURCE_URL:=https://github.com/nxp-qoriq/mc-utils
PKG_SOURCE_VERSION:=mc_release_10.38.0 PKG_SOURCE_VERSION:=mc_release_10.39.0
PKG_MIRROR_HASH:=9ada83ac4cc259cdf2ea2ebfc2328292f7dace701bfac2b5514749bd9f8315f0 PKG_MIRROR_HASH:=48e0ad66f536689bf8cfd115420422a1c746cd609816bd9b07ef8ef358a85cf4
PKG_FLAGS:=nonshared PKG_FLAGS:=nonshared

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ls-mc PKG_NAME:=ls-mc
PKG_VERSION:=10.38.0 PKG_VERSION:=10.39.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/NXP/qoriq-mc-binary.git PKG_SOURCE_URL:=https://github.com/NXP/qoriq-mc-binary.git
PKG_SOURCE_VERSION:=mc_release_10.38.0 PKG_SOURCE_VERSION:=mc_release_10.39.0
PKG_MIRROR_HASH:=4bd0eab4b600d6dee67b4c5b32624a92fd84e6c93f506e46a4fe52217e2d1593 PKG_MIRROR_HASH:=0676072ec3fcb7ad3ec101ea279f5e7b41b292b44426563aba9062668f9855ab
PKG_FLAGS:=nonshared PKG_FLAGS:=nonshared

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ls-rcw PKG_NAME:=ls-rcw
PKG_VERSION:=6.6.3.1.0.0 PKG_VERSION:=6.6.23.2.0.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/nxp-qoriq/rcw PKG_SOURCE_URL:=https://github.com/nxp-qoriq/rcw
PKG_SOURCE_VERSION:=lf-6.6.3-1.0.0 PKG_SOURCE_VERSION:=lf-6.6.23-2.0.0
PKG_MIRROR_HASH:=da45ce99a0ff85375673fa8c05110c3bda36dedca4ac66190809328f79878a0a PKG_MIRROR_HASH:=f5e62ac040564eb97f4d1c58496a1586a470008469cb4daee6d7c70be7fdfa07
PKG_FLAGS:=nonshared PKG_FLAGS:=nonshared

View File

@ -0,0 +1,7 @@
Package/ath12k-firmware-wcn7850 = $(call Package/firmware-default,WCN7850 ath12k firmware)
define Package/ath12k-firmware-wcn7850/install
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/WCN7850/hw2.0
$(INSTALL_DATA) \
$(PKG_BUILD_DIR)/ath12k/WCN7850/hw2.0/* $(1)/lib/firmware/ath12k/WCN7850/hw2.0/
endef
$(eval $(call BuildPackage,ath12k-firmware-wcn7850))

View File

@ -109,7 +109,8 @@ define KernelPackage/gpio-pca953x
SUBMENU:=$(GPIO_MENU) SUBMENU:=$(GPIO_MENU)
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
KCONFIG:=CONFIG_GPIO_PCA953X KCONFIG:=CONFIG_GPIO_PCA953X \
CONFIG_GPIO_PCA953X_IRQ=y
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x) AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
endef endef

View File

@ -33,6 +33,33 @@ endef
$(eval $(call KernelPackage,skge)) $(eval $(call KernelPackage,skge))
define KernelPackage/ag71xx
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Atheros AR7XXX/AR9XXX ethernet mac support
DEPENDS:=@PCI_SUPPORT||TARGET_ath79 +kmod-phylink +kmod-mdio-devres +kmod-net-selftests
KCONFIG:=CONFIG_AG71XX
FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/ag71xx.ko
AUTOLOAD:=$(call AutoLoad,50,ag71xx,1)
endef
$(eval $(call KernelPackage,ag71xx))
define KernelPackage/ag71xx-legacy
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Downstream Atheros AR7XXX/AR9XXX ethernet mac support
DEPENDS:=@TARGET_ath79 +kmod-libphy +kmod-mdio-devres
KCONFIG:=CONFIG_AG71XX_LEGACY \
CONFIG_AG71XX_LEGACY_DEBUG=n \
CONFIG_AG71XX_LEGACY_DEBUG_FS=y
FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/ag71xx/ag71xx_legacy.ko \
$(LINUX_DIR)/drivers/net/ethernet/atheros/ag71xx/ag71xx_legacy_mdio.ko
AUTOLOAD:=$(call AutoLoad,50,ag71xx-legacy ag71xx-legacy-mdio,1)
endef
$(eval $(call KernelPackage,ag71xx-legacy))
define KernelPackage/alx define KernelPackage/alx
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Qualcomm Atheros AR816x/AR817x PCI-E Ethernet Network Driver TITLE:=Qualcomm Atheros AR816x/AR817x PCI-E Ethernet Network Driver
@ -96,7 +123,8 @@ $(eval $(call KernelPackage,atl1e))
define KernelPackage/libphy define KernelPackage/libphy
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=PHY library TITLE:=PHY library
KCONFIG:=CONFIG_PHYLIB KCONFIG:=CONFIG_PHYLIB \
CONFIG_PHYLIB_LEDS=y
FILES:=$(LINUX_DIR)/drivers/net/phy/libphy.ko FILES:=$(LINUX_DIR)/drivers/net/phy/libphy.ko
AUTOLOAD:=$(call AutoLoad,15,libphy,1) AUTOLOAD:=$(call AutoLoad,15,libphy,1)
endef endef
@ -224,6 +252,19 @@ endef
$(eval $(call KernelPackage,phylib-broadcom)) $(eval $(call KernelPackage,phylib-broadcom))
define KernelPackage/phylib-qcom
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Qualcomm Ethernet PHY library
KCONFIG:=CONFIG_QCOM_NET_PHYLIB
HIDDEN:=1
DEPENDS:=+kmod-libphy
FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/qcom-phy-lib.ko
AUTOLOAD:=$(call AutoLoad,17,qcom-phy-lib)
endef
$(eval $(call KernelPackage,phylib-qcom))
define KernelPackage/phy-amd define KernelPackage/phy-amd
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=AMD PHY driver TITLE:=AMD PHY driver
@ -240,6 +281,18 @@ endef
$(eval $(call KernelPackage,phy-amd)) $(eval $(call KernelPackage,phy-amd))
define KernelPackage/phy-at803x
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Qualcomm Atheros 8337 internal PHY
KCONFIG:=CONFIG_AT803X_PHY
DEPENDS:=+kmod-phylib-qcom
FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/at803x.ko
AUTOLOAD:=$(call AutoLoad,18,at803x,1)
endef
$(eval $(call KernelPackage,phy-at803x))
define KernelPackage/phy-ax88796b define KernelPackage/phy-ax88796b
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Asix PHY driver TITLE:=Asix PHY driver
@ -290,6 +343,37 @@ endef
$(eval $(call KernelPackage,phy-bcm84881)) $(eval $(call KernelPackage,phy-bcm84881))
define KernelPackage/phy-intel-xway
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Intel XWAY PHYs
KCONFIG:=CONFIG_INTEL_XWAY_PHY
DEPENDS:=+kmod-libphy
FILES:=$(LINUX_DIR)/drivers/net/phy/intel-xway.ko
AUTOLOAD:=$(call AutoLoad,18,intel-xway,1)
endef
define KernelPackage/phy-intel-xway/description
Supports the Intel XWAY (former Lantiq) 11G and 22E PHYs.
These PHYs are marked as standalone chips under the names
PEF 7061, PEF 7071 and PEF 7072 or integrated into the Intel
SoCs xRX200, xRX300, xRX330, xRX350 and xRX550.
endef
$(eval $(call KernelPackage,phy-intel-xway))
define KernelPackage/phy-qca83xx
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Qualcomm Atheros QCA833x PHY driver
KCONFIG:=CONFIG_QCA83XX_PHY
DEPENDS:=+kmod-phylib-qcom
FILES:=$(LINUX_DIR)/drivers/net/phy/qcom/qca83xx.ko
AUTOLOAD:=$(call AutoLoad,18,qca83xx,1)
endef
$(eval $(call KernelPackage,phy-qca83xx))
define KernelPackage/phy-marvell define KernelPackage/phy-marvell
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Marvell Gigabit Ethernet PHY driver TITLE:=Marvell Gigabit Ethernet PHY driver
@ -343,6 +427,23 @@ endef
$(eval $(call KernelPackage,phy-marvell-10g)) $(eval $(call KernelPackage,phy-marvell-10g))
define KernelPackage/phy-micrel
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Micrel PHYs
KCONFIG:=CONFIG_MICREL_PHY
DEPENDS:=+kmod-libphy +kmod-ptp
FILES:=$(LINUX_DIR)/drivers/net/phy/micrel.ko
AUTOLOAD:=$(call AutoLoad,18,micrel,1)
endef
define KernelPackage/phy-micrel/description
Supports the KSZ9021, VSC8201, KS8001 PHYs.
endef
$(eval $(call KernelPackage,phy-micrel))
define KernelPackage/phy-realtek define KernelPackage/phy-realtek
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Realtek Ethernet PHY driver TITLE:=Realtek Ethernet PHY driver
@ -375,6 +476,22 @@ endef
$(eval $(call KernelPackage,phy-smsc)) $(eval $(call KernelPackage,phy-smsc))
define KernelPackage/phy-vitesse
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Vitesse PHYs
KCONFIG:=CONFIG_VITESSE_PHY
DEPENDS:=+kmod-libphy
FILES:=$(LINUX_DIR)/drivers/net/phy/vitesse.ko
AUTOLOAD:=$(call AutoLoad,18,vitesse,1)
endef
define KernelPackage/phy-vitesse/description
Currently supports the vsc8244
endef
$(eval $(call KernelPackage,phy-vitesse))
define KernelPackage/phy-airoha-en8811h define KernelPackage/phy-airoha-en8811h
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Airoha EN8811H 2.5G Ethernet PHY TITLE:=Airoha EN8811H 2.5G Ethernet PHY
@ -407,13 +524,27 @@ endef
$(eval $(call KernelPackage,phy-aquantia)) $(eval $(call KernelPackage,phy-aquantia))
define KernelPackage/dsa
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Distributed Switch Architecture support
DEPENDS:=+kmod-mdio-devres +kmod-net-selftests +kmod-phylink
KCONFIG:=CONFIG_NET_DSA
FILES:=$(LINUX_DIR)/net/dsa/dsa_core.ko
endef
define KernelPackage/dsa/description
Kernel module support for Distributed Switch Architecture
endef
$(eval $(call KernelPackage,dsa))
define KernelPackage/dsa-tag-dsa define KernelPackage/dsa-tag-dsa
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Marvell DSA type DSA and EDSA taggers TITLE:=Marvell DSA type DSA and EDSA taggers
DEPENDS:=+kmod-dsa
KCONFIG:= CONFIG_NET_DSA_TAG_DSA_COMMON \ KCONFIG:= CONFIG_NET_DSA_TAG_DSA_COMMON \
CONFIG_NET_DSA_TAG_DSA \ CONFIG_NET_DSA_TAG_DSA \
CONFIG_NET_DSA_TAG_EDSA \ CONFIG_NET_DSA_TAG_EDSA
CONFIG_NET_DSA=y
FILES:=$(LINUX_DIR)/net/dsa/tag_dsa.ko FILES:=$(LINUX_DIR)/net/dsa/tag_dsa.ko
AUTOLOAD:=$(call AutoLoad,40,tag_dsa,1) AUTOLOAD:=$(call AutoLoad,40,tag_dsa,1)
endef endef
@ -427,10 +558,9 @@ $(eval $(call KernelPackage,dsa-tag-dsa))
define KernelPackage/dsa-mv88e6xxx define KernelPackage/dsa-mv88e6xxx
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Marvell MV88E6XXX DSA Switch TITLE:=Marvell MV88E6XXX DSA Switch
DEPENDS:=+kmod-ptp +kmod-phy-marvell +kmod-dsa-tag-dsa DEPENDS:=+kmod-dsa +kmod-ptp +kmod-phy-marvell +kmod-dsa-tag-dsa
KCONFIG:=CONFIG_NET_DSA_MV88E6XXX \ KCONFIG:=CONFIG_NET_DSA_MV88E6XXX \
CONFIG_NET_DSA_MV88E6XXX_PTP=y \ CONFIG_NET_DSA_MV88E6XXX_PTP=y
CONFIG_NET_DSA=y
FILES:=$(LINUX_DIR)/drivers/net/dsa/mv88e6xxx/mv88e6xxx.ko FILES:=$(LINUX_DIR)/drivers/net/dsa/mv88e6xxx/mv88e6xxx.ko
AUTOLOAD:=$(call AutoLoad,41,mv88e6xxx,1) AUTOLOAD:=$(call AutoLoad,41,mv88e6xxx,1)
endef endef
@ -441,12 +571,32 @@ endef
$(eval $(call KernelPackage,dsa-mv88e6xxx)) $(eval $(call KernelPackage,dsa-mv88e6xxx))
define KernelPackage/dsa-qca8k
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Qualcomm Atheros QCA8xxx switch family DSA support
DEPENDS:=+kmod-dsa +kmod-regmap-core
KCONFIG:= \
CONFIG_NET_DSA_QCA8K \
CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT=y \
CONFIG_NET_DSA_TAG_QCA
FILES:= \
$(LINUX_DIR)/drivers/net/dsa/qca/qca8k.ko \
$(LINUX_DIR)/net/dsa/tag_qca.ko
AUTOLOAD:=$(call AutoLoad,42,qca8k,1)
endef
define KernelPackage/dsa-qca8k/description
DSA based kernel modules for the Qualcomm Atheros QCA8xxx switch family
endef
$(eval $(call KernelPackage,dsa-qca8k))
define KernelPackage/swconfig define KernelPackage/swconfig
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=switch configuration API TITLE:=switch configuration API
DEPENDS:=+kmod-libphy DEPENDS:=+kmod-libphy
KCONFIG:=CONFIG_SWCONFIG KCONFIG:=CONFIG_SWCONFIG \
CONFIG_SWCONFIG_LEDS=y
FILES:=$(LINUX_DIR)/drivers/net/phy/swconfig.ko FILES:=$(LINUX_DIR)/drivers/net/phy/swconfig.ko
AUTOLOAD:=$(call AutoLoad,41,swconfig) AUTOLOAD:=$(call AutoLoad,41,swconfig)
endef endef
@ -604,7 +754,8 @@ define KernelPackage/switch-ar8xxx
SUBMENU:=$(NETWORK_DEVICES_MENU) SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Atheros AR8216/8327 switch support TITLE:=Atheros AR8216/8327 switch support
DEPENDS:=+kmod-swconfig +kmod-mdio-devres DEPENDS:=+kmod-swconfig +kmod-mdio-devres
KCONFIG:=CONFIG_AR8216_PHY KCONFIG:=CONFIG_AR8216_PHY \
CONFIG_AR8216_PHY_LEDS=y
FILES:=$(LINUX_DIR)/drivers/net/phy/ar8xxx.ko FILES:=$(LINUX_DIR)/drivers/net/phy/ar8xxx.ko
AUTOLOAD:=$(call AutoLoad,43,ar8xxx,1) AUTOLOAD:=$(call AutoLoad,43,ar8xxx,1)
endef endef

View File

@ -272,13 +272,13 @@ $(eval $(call KernelPackage,usb-uhci,1))
define KernelPackage/usb-ohci define KernelPackage/usb-ohci
TITLE:=Support for OHCI controllers TITLE:=Support for OHCI controllers
DEPENDS:= \ DEPENDS:= \
+TARGET_ath79:kmod-phy-ath79-usb \
+TARGET_bcm53xx:kmod-usb-bcma \ +TARGET_bcm53xx:kmod-usb-bcma \
+TARGET_bcm47xx:kmod-usb-bcma \ +TARGET_bcm47xx:kmod-usb-bcma \
+TARGET_bcm47xx:kmod-usb-ssb +TARGET_bcm47xx:kmod-usb-ssb
KCONFIG:= \ KCONFIG:= \
CONFIG_USB_OHCI \ CONFIG_USB_OHCI \
CONFIG_USB_OHCI_HCD \ CONFIG_USB_OHCI_HCD \
CONFIG_USB_OHCI_ATH79=y \
CONFIG_USB_OHCI_HCD_AT91=y \ CONFIG_USB_OHCI_HCD_AT91=y \
CONFIG_USB_OHCI_BCM63XX=y \ CONFIG_USB_OHCI_BCM63XX=y \
CONFIG_USB_OCTEON_OHCI=y \ CONFIG_USB_OCTEON_OHCI=y \

View File

@ -348,6 +348,7 @@ define Build/Patch
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath12k,ath12k/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/) $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
@ -364,6 +365,7 @@ define Quilt/Refresh/Package
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath9k,ath9k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath10k,ath10k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath11k,ath11k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/ath12k,ath12k/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mt7601u,mt7601u/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/) $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)

View File

@ -1,6 +1,6 @@
PKG_DRIVERS += \ PKG_DRIVERS += \
ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k ath10k-sdio ath10k-smallbuffers \ ath ath5k ath6kl ath6kl-sdio ath6kl-usb ath9k ath9k-common ath9k-htc ath10k ath10k-sdio ath10k-smallbuffers \
ath11k ath11k-ahb ath11k-pci carl9170 owl-loader ar5523 wil6210 ath11k ath11k-ahb ath11k-pci ath12k carl9170 owl-loader ar5523 wil6210 qcom-qmi-helpers
PKG_CONFIG_DEPENDS += \ PKG_CONFIG_DEPENDS += \
CONFIG_PACKAGE_ATH_DEBUG \ CONFIG_PACKAGE_ATH_DEBUG \
@ -21,6 +21,7 @@ ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
ATH9K_HTC_DEBUGFS \ ATH9K_HTC_DEBUGFS \
ATH10K_DEBUGFS \ ATH10K_DEBUGFS \
ATH11K_DEBUGFS \ ATH11K_DEBUGFS \
ATH12K_DEBUGFS \
CARL9170_DEBUGFS \ CARL9170_DEBUGFS \
ATH5K_DEBUG \ ATH5K_DEBUG \
ATH6KL_DEBUG \ ATH6KL_DEBUG \
@ -31,14 +32,16 @@ ifdef CONFIG_PACKAGE_MAC80211_TRACING
config-y += \ config-y += \
ATH10K_TRACING \ ATH10K_TRACING \
ATH11K_TRACING \ ATH11K_TRACING \
ATH12K_TRACING \
ATH6KL_TRACING \ ATH6KL_TRACING \
ATH_TRACEPOINTS \ ATH_TRACEPOINTS \
ATH5K_TRACER \ ATH5K_TRACER \
WIL6210_TRACING WIL6210_TRACING
endif endif
config-$(call config_package,qcom-qmi-helpers) += QCOM_QMI_HELPERS
config-$(call config_package,ath,regular sdio smallbuffers) += ATH_CARDS ATH_COMMON config-$(call config_package,ath,regular sdio smallbuffers) += ATH_CARDS ATH_COMMON
config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH9K_STATION_STATISTICS config-$(CONFIG_PACKAGE_ATH_DEBUG) += ATH_DEBUG ATH10K_DEBUG ATH11K_DEBUG ATH12K_DEBUG ATH9K_STATION_STATISTICS
config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED config-$(CONFIG_PACKAGE_ATH_DFS) += ATH9K_DFS_CERTIFIED ATH10K_DFS_CERTIFIED
config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL ATH11K_SPECTRAL config-$(CONFIG_PACKAGE_ATH_SPECTRAL) += ATH9K_COMMON_SPECTRAL ATH10K_SPECTRAL ATH11K_SPECTRAL
config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK config-$(CONFIG_PACKAGE_ATH_DYNACK) += ATH9K_DYNACK
@ -64,6 +67,7 @@ config-$(call config_package,ath10k-smallbuffers,smallbuffers) += ATH10K ATH10K_
config-$(call config_package,ath11k) += ATH11K config-$(call config_package,ath11k) += ATH11K
config-$(call config_package,ath11k-ahb) += ATH11K_AHB config-$(call config_package,ath11k-ahb) += ATH11K_AHB
config-$(call config_package,ath11k-pci) += ATH11K_PCI config-$(call config_package,ath11k-pci) += ATH11K_PCI
config-$(call config_package,ath12k) += ATH12K
config-$(call config_package,ath5k) += ATH5K ATH5K_PCI config-$(call config_package,ath5k) += ATH5K ATH5K_PCI
@ -126,6 +130,14 @@ define KernelPackage/ath/config
endif endif
endef endef
define KernelPackage/qcom-qmi-helpers
$(call KernelPackage/mac80211/Default)
TITLE:=Qualcomm QMI backports helpers
HIDDEN:=1
FILES:=$(PKG_BUILD_DIR)/drivers/soc/qcom/qmi_helpers.ko
AUTOLOAD:=$(call AutoProbe,qmi_helpers)
endef
define KernelPackage/ath define KernelPackage/ath
$(call KernelPackage/mac80211/Default) $(call KernelPackage/mac80211/Default)
TITLE:=Atheros common driver part TITLE:=Atheros common driver part
@ -318,9 +330,9 @@ define KernelPackage/ath11k
TITLE:=Qualcomm 802.11ax wireless chipset support (common code) TITLE:=Qualcomm 802.11ax wireless chipset support (common code)
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k
DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \ DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \
+kmod-crypto-michael-mic +ATH11K_THERMAL:kmod-hwmon-core +ATH11K_THERMAL:kmod-thermal +kmod-crypto-michael-mic +ATH11K_THERMAL:kmod-hwmon-core \
FILES:=$(PKG_BUILD_DIR)/drivers/soc/qcom/qmi_helpers.ko \ +ATH11K_THERMAL:kmod-thermal +kmod-qcom-qmi-helpers
$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko
endef endef
define KernelPackage/ath11k/description define KernelPackage/ath11k/description
@ -365,6 +377,22 @@ This module adds support for Qualcomm Technologies 802.11ax family of
chipsets with PCI bus. chipsets with PCI bus.
endef endef
define KernelPackage/ath12k
$(call KernelPackage/mac80211/Default)
TITLE:=Qualcomm 802.11be wireless chipset support
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath12k
DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \
+kmod-crypto-michael-mic +kmod-qrtr-mhi \
+kmod-qcom-qmi-helpers
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath12k/ath12k.ko
AUTOLOAD:=$(call AutoProbe,ath12k)
endef
define KernelPackage/ath12k/description
This module adds support for Qualcomm Technologies 802.11be family of
chipsets with PCI bus.
endef
define KernelPackage/carl9170 define KernelPackage/carl9170
$(call KernelPackage/mac80211/Default) $(call KernelPackage/mac80211/Default)
TITLE:=Driver for Atheros AR9170 USB sticks TITLE:=Driver for Atheros AR9170 USB sticks

View File

@ -0,0 +1,17 @@
Fix ltssm crashes on BPI-Rx boards.
Seems read32/write32 using wrong address which
is not a problem on x86/64 PCI controllers.
But have issues on BPI-Rx boards.
--- a/drivers/net/wireless/ath/ath12k/pci.c
+++ b/drivers/net/wireless/ath/ath12k/pci.c
@@ -277,6 +277,9 @@ static void ath12k_pci_enable_ltssm(stru
u32 val;
int i;
+ /* Prevent startup crash on BPI-Rx */
+ return;
+
val = ath12k_pci_read32(ab, PCIE_PCIE_PARF_LTSSM);
/* PCIE link seems very unstable after the Hot Reset*/

View File

@ -198,11 +198,23 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_SOC); rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_SOC);
retval = rt2x00soc_alloc_reg(rt2x00dev); retval = rt2x00soc_alloc_reg(rt2x00dev);
--- a/drivers/net/wireless/ralink/rt2x00/rt2x00soc.h --- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00soc.h +++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
@@ -26,4 +26,13 @@ int rt2x00soc_resume(struct platform_dev @@ -278,6 +278,9 @@ static int rt2800pci_read_eeprom(struct
#define rt2x00soc_resume NULL {
#endif /* CONFIG_PM */ int retval;
+ if (!rt2x00lib_read_eeprom(rt2x00dev))
+ return 0;
+
if (rt2800pci_efuse_detect(rt2x00dev))
retval = rt2800pci_read_eeprom_efuse(rt2x00dev);
else
--- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
@@ -270,4 +270,13 @@ void rt2800_get_txwi_rxwi_size(struct rt
unsigned short *rxwi_size);
void rt2800_pre_reset_hw(struct rt2x00_dev *rt2x00dev);
+/* +/*
+ * EEPROM file handlers. + * EEPROM file handlers.
@ -213,4 +225,4 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
+#define rt2x00lib_read_eeprom NULL +#define rt2x00lib_read_eeprom NULL
+#endif /* CPTCFG_RT2X00_LIB_EEPROM */ +#endif /* CPTCFG_RT2X00_LIB_EEPROM */
+ +
#endif /* RT2X00SOC_H */ #endif /* RT2800LIB_H */

View File

@ -40,7 +40,7 @@
const u8 arg0, const u8 arg1); const u8 arg0, const u8 arg1);
--- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c --- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
+++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
@@ -286,6 +286,10 @@ static int rt2800pci_read_eeprom(struct @@ -289,6 +289,10 @@ static int rt2800pci_read_eeprom(struct
return retval; return retval;
} }
@ -51,7 +51,7 @@
static const struct ieee80211_ops rt2800pci_mac80211_ops = { static const struct ieee80211_ops rt2800pci_mac80211_ops = {
.add_chanctx = ieee80211_emulate_add_chanctx, .add_chanctx = ieee80211_emulate_add_chanctx,
.remove_chanctx = ieee80211_emulate_remove_chanctx, .remove_chanctx = ieee80211_emulate_remove_chanctx,
@@ -333,6 +337,9 @@ static const struct rt2800_ops rt2800pci @@ -336,6 +340,9 @@ static const struct rt2800_ops rt2800pci
.drv_init_registers = rt2800mmio_init_registers, .drv_init_registers = rt2800mmio_init_registers,
.drv_get_txwi = rt2800mmio_get_txwi, .drv_get_txwi = rt2800mmio_get_txwi,
.drv_get_dma_done = rt2800mmio_get_dma_done, .drv_get_dma_done = rt2800mmio_get_dma_done,

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libpcap PKG_NAME:=libpcap
PKG_VERSION:=1.10.4 PKG_VERSION:=1.10.5
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.tcpdump.org/release/ PKG_SOURCE_URL:=https://www.tcpdump.org/release/
PKG_HASH:=ed19a0383fad72e3ad435fd239d7cd80d64916b87269550159d20e47160ebe5f PKG_HASH:=37ced90a19a302a7f32e458224a00c365c117905c2cd35ac544b6880a81488f0
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=BSD-3-Clause

View File

@ -1,6 +1,6 @@
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -1325,7 +1325,6 @@ endif() @@ -1441,7 +1441,6 @@ if(ENABLE_REMOTE)
# #
# OpenSSL/libressl. # OpenSSL/libressl.
# #

View File

@ -9,7 +9,7 @@ Subject: [PATCH] skip manpages
--- a/CMakeLists.txt --- a/CMakeLists.txt
+++ b/CMakeLists.txt +++ b/CMakeLists.txt
@@ -3325,57 +3325,6 @@ if(NOT MSVC) @@ -3548,57 +3548,6 @@ if(NOT MSVC)
if(MINGW) if(MINGW)
find_program(LINK_EXECUTABLE ln) find_program(LINK_EXECUTABLE ln)
endif(MINGW) endif(MINGW)

View File

@ -36,7 +36,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
--- a/Makefile.in --- a/Makefile.in
+++ b/Makefile.in +++ b/Makefile.in
@@ -133,6 +133,8 @@ PUBHDR = \ @@ -130,6 +130,8 @@ PUBHDR = \
HDR = $(PUBHDR) \ HDR = $(PUBHDR) \
arcnet.h \ arcnet.h \
atmuni31.h \ atmuni31.h \
@ -220,7 +220,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
#endif #endif
--- a/gencode.c --- a/gencode.c
+++ b/gencode.c +++ b/gencode.c
@@ -60,6 +60,8 @@ @@ -58,6 +58,8 @@
#include "sunatmpos.h" #include "sunatmpos.h"
#include "pflog.h" #include "pflog.h"
#include "ppp.h" #include "ppp.h"
@ -229,7 +229,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
#include "pcap/sll.h" #include "pcap/sll.h"
#include "pcap/ipnet.h" #include "pcap/ipnet.h"
#include "arcnet.h" #include "arcnet.h"
@@ -9436,6 +9438,168 @@ gen_geneve(compiler_state_t *cstate, bpf @@ -9704,6 +9706,168 @@ gen_geneve(compiler_state_t *cstate, bpf
return b1; return b1;
} }
@ -412,7 +412,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
struct block *gen_atmtype_abbrev(compiler_state_t *, int); struct block *gen_atmtype_abbrev(compiler_state_t *, int);
--- a/grammar.y.in --- a/grammar.y.in
+++ b/grammar.y.in +++ b/grammar.y.in
@@ -375,6 +375,7 @@ DIAG_OFF_BISON_BYACC @@ -383,6 +383,7 @@ DIAG_OFF_BISON_BYACC
%type <i> mtp2type %type <i> mtp2type
%type <blk> mtp3field %type <blk> mtp3field
%type <blk> mtp3fieldvalue mtp3value mtp3listvalue %type <blk> mtp3fieldvalue mtp3value mtp3listvalue
@ -420,7 +420,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
%token DST SRC HOST GATEWAY %token DST SRC HOST GATEWAY
@@ -393,7 +394,7 @@ DIAG_OFF_BISON_BYACC @@ -401,7 +402,7 @@ DIAG_OFF_BISON_BYACC
%token LEN %token LEN
%token IPV6 ICMPV6 AH ESP %token IPV6 ICMPV6 AH ESP
%token VLAN MPLS %token VLAN MPLS
@ -429,7 +429,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
%token ISO ESIS CLNP ISIS L1 L2 IIH LSP SNP CSNP PSNP %token ISO ESIS CLNP ISIS L1 L2 IIH LSP SNP CSNP PSNP
%token STP %token STP
%token IPX %token IPX
@@ -620,11 +621,40 @@ other: pqual TK_BROADCAST { CHECK_PTR_ @@ -698,11 +699,40 @@ other: pqual TK_BROADCAST { CHECK_PTR_
| PPPOES { CHECK_PTR_VAL(($$ = gen_pppoes(cstate, 0, 0))); } | PPPOES { CHECK_PTR_VAL(($$ = gen_pppoes(cstate, 0, 0))); }
| GENEVE pnum { CHECK_PTR_VAL(($$ = gen_geneve(cstate, $2, 1))); } | GENEVE pnum { CHECK_PTR_VAL(($$ = gen_geneve(cstate, $2, 1))); }
| GENEVE { CHECK_PTR_VAL(($$ = gen_geneve(cstate, 0, 0))); } | GENEVE { CHECK_PTR_VAL(($$ = gen_geneve(cstate, 0, 0))); }
@ -472,7 +472,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
| PF_RNR NUM { CHECK_PTR_VAL(($$ = gen_pf_rnr(cstate, $2))); } | PF_RNR NUM { CHECK_PTR_VAL(($$ = gen_pf_rnr(cstate, $2))); }
--- a/nametoaddr.c --- a/nametoaddr.c
+++ b/nametoaddr.c +++ b/nametoaddr.c
@@ -136,8 +136,12 @@ @@ -134,8 +134,12 @@
#include "diag-control.h" #include "diag-control.h"
@ -484,8 +484,8 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
+ +
#include "nametoaddr.h" #include "nametoaddr.h"
#ifdef HAVE_OS_PROTO_H #include "thread-local.h"
@@ -604,6 +608,7 @@ PCAP_API_DEF struct eproto eproto_db[] = @@ -597,6 +601,7 @@ PCAP_API_DEF struct eproto eproto_db[] =
{ "moprc", ETHERTYPE_MOPRC }, { "moprc", ETHERTYPE_MOPRC },
{ "rarp", ETHERTYPE_REVARP }, { "rarp", ETHERTYPE_REVARP },
{ "sca", ETHERTYPE_SCA }, { "sca", ETHERTYPE_SCA },
@ -493,7 +493,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
{ (char *)0, 0 } { (char *)0, 0 }
}; };
@@ -638,6 +643,60 @@ pcap_nametollc(const char *s) @@ -631,6 +636,60 @@ pcap_nametollc(const char *s)
while (p->s != 0) { while (p->s != 0) {
if (strcmp(p->s, s) == 0) if (strcmp(p->s, s) == 0)
@ -582,7 +582,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Abbreviations for: Abbreviations for:
.in +.5i .in +.5i
.nf .nf
@@ -792,6 +793,36 @@ For example: @@ -795,6 +796,36 @@ For example:
filters IPv4 protocol encapsulated in Geneve with VNI 0xb. This will filters IPv4 protocol encapsulated in Geneve with VNI 0xb. This will
match both IPv4 directly encapsulated in Geneve as well as IPv4 contained match both IPv4 directly encapsulated in Geneve as well as IPv4 contained
inside an Ethernet frame. inside an Ethernet frame.
@ -621,18 +621,18 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
\fIProtocol\fP can be a number or one of the names \fIProtocol\fP can be a number or one of the names
--- a/pcap/namedb.h --- a/pcap/namedb.h
+++ b/pcap/namedb.h +++ b/pcap/namedb.h
@@ -70,6 +70,8 @@ PCAP_API int pcap_nametoportrange(const @@ -94,6 +94,8 @@ PCAP_API int pcap_nametoeproto(const cha
PCAP_API int pcap_nametoproto(const char *);
PCAP_API int pcap_nametoeproto(const char *); PCAP_AVAILABLE_0_9
PCAP_API int pcap_nametollc(const char *); PCAP_API int pcap_nametollc(const char *);
+PCAP_API int pcap_nametobatadvtype_v14(const char *); +PCAP_API int pcap_nametobatadvtype_v14(const char *);
+PCAP_API int pcap_nametobatadvtype_v15(const char *); +PCAP_API int pcap_nametobatadvtype_v15(const char *);
/* /*
* If a protocol is unknown, PROTO_UNDEF is returned. * If a protocol is unknown, PROTO_UNDEF is returned.
* Also, pcap_nametoport() returns the protocol along with the port number.
--- a/scanner.l --- a/scanner.l
+++ b/scanner.l +++ b/scanner.l
@@ -347,6 +347,7 @@ mpls return MPLS; @@ -365,6 +365,7 @@ mpls return MPLS;
pppoed return PPPOED; pppoed return PPPOED;
pppoes return PPPOES; pppoes return PPPOES;
geneve return GENEVE; geneve return GENEVE;

View File

@ -8,14 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libusb PKG_NAME:=libusb
PKG_VERSION:=1.0.26 PKG_VERSION:=1.0.27
PKG_RELEASE:=3 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=\ PKG_SOURCE_URL:=https://github.com/libusb/libusb/releases/download/v$(PKG_VERSION)
https://github.com/libusb/libusb/releases/download/v$(PKG_VERSION) \ PKG_HASH:=ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575
@SF/$(PKG_NAME)
PKG_HASH:=12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5
PKG_MAINTAINER:= Felix Fietkau <nbd@nbd.name> PKG_MAINTAINER:= Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=LGPL-2.1-or-later PKG_LICENSE:=LGPL-2.1-or-later
@ -32,7 +30,7 @@ define Package/libusb-1.0
CATEGORY:=Libraries CATEGORY:=Libraries
TITLE:=A library for accessing Linux USB devices TITLE:=A library for accessing Linux USB devices
DEPENDS:=+libpthread +librt +libatomic DEPENDS:=+libpthread +librt +libatomic
URL:=http://libusb.info/ URL:=https://libusb.info/
ABI_VERSION:=0 ABI_VERSION:=0
endef endef
@ -45,7 +43,7 @@ define Package/fxload
SECTION:=utils SECTION:=utils
CATEGORY:=Utilities CATEGORY:=Utilities
TITLE:=fxload firmware loader TITLE:=fxload firmware loader
URL:=http://linux-hotplug.sourceforge.net URL:=https://linux-hotplug.sourceforge.net
DEPENDS:=+libusb-1.0 DEPENDS:=+libusb-1.0
endef endef

View File

@ -8,17 +8,16 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=mbedtls PKG_NAME:=mbedtls
PKG_VERSION:=3.6.0 PKG_VERSION:=3.6.1
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto
PKG_SOURCE_PROTO:=git PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL=https://github.com/Mbed-TLS/mbedtls.git PKG_SOURCE_URL=https://github.com/Mbed-TLS/$(PKG_NAME)/releases/download/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=2ca6c285a0dd3f33982dd57299012dacab1ff206 PKG_HASH:=fc8bef0991b43629b7e5319de6f34f13359011105e08e3e16eed3a9fe6ffd3a3
PKG_MIRROR_HASH:=a684012126590b4e0b6ab41e244cc2af0d2bcfc4b6c94bf42fc37d2d08f0553e
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=gpl-2.0.txt PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:arm:mbed_tls PKG_CPE_ID:=cpe:/a:arm:mbed_tls
MBEDTLS_BUILD_OPTS_CURVES= \ MBEDTLS_BUILD_OPTS_CURVES= \
@ -90,7 +89,7 @@ include $(INCLUDE_DIR)/cmake.mk
define Package/mbedtls/Default define Package/mbedtls/Default
TITLE:=Embedded SSL TITLE:=Embedded SSL
URL:=https://tls.mbed.org URL:=https://www.trustedfirmware.org/projects/mbed-tls/
endef endef
define Package/mbedtls/Default/description define Package/mbedtls/Default/description

View File

@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
PKG_SOURCE_DATE:=2024-09-12 PKG_SOURCE_DATE:=2024-09-21
PKG_SOURCE_VERSION:=02aa43d82d587d87523231be5a5e0bf956435725 PKG_SOURCE_VERSION:=24f9a93a9559c93cf1e794fdfcd87a38d27a8e0e
PKG_MIRROR_HASH:=a0e997ed9b0191417e65aaf43fbfd3a51b734ce1ea83f87e2d71b904b5a368ca PKG_MIRROR_HASH:=a3baa049b86f65cf9709d57bb5a9ea7a5b7405f63c77e2bd641fe9b59865838c
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0

View File

@ -378,8 +378,8 @@ hostapd_common_add_bss_config() {
config_add_array radius_auth_req_attr config_add_array radius_auth_req_attr
config_add_array radius_acct_req_attr config_add_array radius_acct_req_attr
config_add_int eap_server config_add_int eap_server radius_server_auth_port
config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id config_add_string eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients
config_add_boolean fils config_add_boolean fils
config_add_string fils_dhcp config_add_string fils_dhcp
@ -573,7 +573,7 @@ hostapd_set_bss_options() {
multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \ multi_ap multi_ap_backhaul_ssid multi_ap_backhaul_key skip_inactivity_poll \
ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \ ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \
multicast_to_unicast_all proxy_arp per_sta_vif \ multicast_to_unicast_all proxy_arp per_sta_vif \
eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id \ eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \
vendor_elements fils ocv apup vendor_elements fils ocv apup
set_default fils 0 set_default fils 0
@ -1153,6 +1153,8 @@ hostapd_set_bss_options() {
[ -n "$private_key" ] && append bss_conf "private_key=$private_key" "$N" [ -n "$private_key" ] && append bss_conf "private_key=$private_key" "$N"
[ -n "$private_key_passwd" ] && append bss_conf "private_key_passwd=$private_key_passwd" "$N" [ -n "$private_key_passwd" ] && append bss_conf "private_key_passwd=$private_key_passwd" "$N"
[ -n "$server_id" ] && append bss_conf "server_id=$server_id" "$N" [ -n "$server_id" ] && append bss_conf "server_id=$server_id" "$N"
[ -n "$radius_server_clients" ] && append bss_conf "radius_server_clients=$radius_server_clients" "$N"
[ -n "$radius_server_auth_port" ] && append bss_conf "radius_server_auth_port=$radius_server_auth_port" "$N"
fi fi
set_default multicast_to_unicast_all 0 set_default multicast_to_unicast_all 0

View File

@ -896,6 +896,7 @@ wpa_supplicant_set_config() {
json_set_namespace wpa_supp prev json_set_namespace wpa_supp prev
json_close_array json_close_array
json_add_string phy "$phy" json_add_string phy "$phy"
json_add_int num_global_macaddr "$num_global_macaddr"
json_add_boolean defer 1 json_add_boolean defer 1
local data="$(json_dump)" local data="$(json_dump)"
@ -938,7 +939,7 @@ wpa_supplicant_start() {
[ -n "$wpa_supp_init" ] || return 0 [ -n "$wpa_supp_init" ] || return 0
ubus_call wpa_supplicant config_set '{ "phy": "'"$phy"'" }' > /dev/null ubus_call wpa_supplicant config_set '{ "phy": "'"$phy"'", "num_global_macaddr": '"$num_global_macaddr"' }' > /dev/null
} }
mac80211_setup_supplicant() { mac80211_setup_supplicant() {

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=6in4 PKG_NAME:=6in4
PKG_RELEASE:=28 PKG_RELEASE:=29
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/6in4 define Package/6in4
SECTION:=net SECTION:=net
CATEGORY:=Network CATEGORY:=Network
DEPENDS:=@IPV6 +kmod-sit +uclient-fetch DEPENDS:=@IPV6 +kmod-sit +uclient-fetch +resolveip
TITLE:=IPv6-in-IPv4 configuration support TITLE:=IPv6-in-IPv4 configuration support
MAINTAINER:=Jo-Philipp Wich <jo@mein.io> MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKGARCH:=all PKGARCH:=all

View File

@ -44,18 +44,35 @@ proto_6in4_setup() {
local cfg="$1" local cfg="$1"
local iface="$2" local iface="$2"
local link="6in4-$cfg" local link="6in4-$cfg"
local remoteip
local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey device nohostroute
json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey device nohostroute
json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes
[ -n "$device" ] && link="$device"
[ -z "$peeraddr" ] && { [ -z "$peeraddr" ] && {
proto_notify_error "$cfg" "MISSING_ADDRESS" proto_notify_error "$cfg" "MISSING_PEER_ADDRESS"
proto_block_restart "$cfg" proto_block_restart "$cfg"
return return
} }
remoteip=$(resolveip -t 10 -4 "$peeraddr")
if [ -z "$remoteip" ]; then
proto_notify_error "$cfg" "PEER_RESOLVE_FAIL"
return
fi
for ip in $remoteip; do
peeraddr=$ip
break
done
if [ "${nohostroute}" != "1" ]; then
( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" ) ( proto_add_host_dependency "$cfg" "$peeraddr" "$tunlink" )
fi
[ -z "$ipaddr" ] && { [ -z "$ipaddr" ] && {
local wanif="$tunlink" local wanif="$tunlink"
@ -156,6 +173,8 @@ proto_6in4_init_config() {
proto_config_add_int "mtu" proto_config_add_int "mtu"
proto_config_add_int "ttl" proto_config_add_int "ttl"
proto_config_add_string "tos" proto_config_add_string "tos"
proto_config_add_string "device"
proto_config_add_boolean "nohostroute"
} }
[ -n "$INCLUDE_ONLY" ] || { [ -n "$INCLUDE_ONLY" ] || {

View File

@ -229,6 +229,16 @@ function iface_pending_init(phydev, config)
pending.next(); pending.next();
} }
function iface_macaddr_init(phydev, config, macaddr_list)
{
let macaddr_data = {
num_global: config.num_global_macaddr ?? 1,
mbssid: config.mbssid ?? 0,
};
return phydev.macaddr_init(macaddr_list, macaddr_data);
}
function iface_restart(phydev, config, old_config) function iface_restart(phydev, config, old_config)
{ {
let phy = phydev.name; let phy = phydev.name;
@ -246,7 +256,7 @@ function iface_restart(phydev, config, old_config)
return; return;
} }
phydev.macaddr_init(iface_config_macaddr_list(config)); iface_macaddr_init(phydev, config, iface_config_macaddr_list(config));
for (let i = 0; i < length(config.bss); i++) { for (let i = 0; i < length(config.bss); i++) {
let bss = config.bss[i]; let bss = config.bss[i];
if (bss.default_macaddr) if (bss.default_macaddr)
@ -500,11 +510,7 @@ function iface_reload_config(phydev, config, old_config)
} }
// Step 6: assign BSSID for newly created interfaces // Step 6: assign BSSID for newly created interfaces
let macaddr_data = { macaddr_list = iface_macaddr_init(phydev, config, macaddr_list);
num_global: config.num_global_macaddr ?? 1,
mbssid: config.mbssid ?? 0,
};
macaddr_list = phydev.macaddr_init(macaddr_list, macaddr_data);
for (let i = 0; i < length(config.bss); i++) { for (let i = 0; i < length(config.bss); i++) {
if (bss_list[i]) if (bss_list[i])
continue; continue;
@ -675,7 +681,7 @@ function iface_load_config(filename)
if (val[0] == "#num_global_macaddr" || if (val[0] == "#num_global_macaddr" ||
val[0] == "mbssid") val[0] == "mbssid")
config[val[0]] = int(val[1]); config[substr(val[0], 1)] = int(val[1]);
push(config.radio.data, line); push(config.radio.data, line);
} }
@ -889,13 +895,13 @@ return {
hostapd.udebug_set(null); hostapd.udebug_set(null);
hostapd.ubus.disconnect(); hostapd.ubus.disconnect();
}, },
bss_add: function(name, obj) { bss_add: function(phy, name, obj) {
bss_event("add", name); bss_event("add", name);
}, },
bss_reload: function(name, obj, reconf) { bss_reload: function(phy, name, obj, reconf) {
bss_event("reload", name, { reconf: reconf != 0 }); bss_event("reload", name, { reconf: reconf != 0 });
}, },
bss_remove: function(name, obj) { bss_remove: function(phy, name, obj) {
bss_event("remove", name); bss_event("remove", name);
} }
}; };

View File

@ -68,7 +68,7 @@ function prepare_config(config)
return { config: config }; return { config: config };
} }
function set_config(phy_name, config_list) function set_config(phy_name, num_global_macaddr, config_list)
{ {
let phy = wpas.data.config[phy_name]; let phy = wpas.data.config[phy_name];
@ -77,6 +77,8 @@ function set_config(phy_name, config_list)
wpas.data.config[phy_name] = phy; wpas.data.config[phy_name] = phy;
} }
phy.num_global_macaddr = num_global_macaddr;
let values = []; let values = [];
for (let config in config_list) for (let config in config_list)
push(values, [ config.iface, prepare_config(config) ]); push(values, [ config.iface, prepare_config(config) ]);
@ -99,7 +101,7 @@ function start_pending(phy_name)
} }
let macaddr_list = wpas.data.macaddr_list[phy_name]; let macaddr_list = wpas.data.macaddr_list[phy_name];
phydev.macaddr_init(macaddr_list); phydev.macaddr_init(macaddr_list, { num_global: phy.num_global_macaddr });
for (let ifname in phy.data) for (let ifname in phy.data)
iface_start(phydev, phy.data[ifname]); iface_start(phydev, phy.data[ifname]);
@ -185,6 +187,7 @@ let main_obj = {
config_set: { config_set: {
args: { args: {
phy: "", phy: "",
num_global_macaddr: 0,
config: [], config: [],
defer: true, defer: true,
}, },
@ -195,7 +198,7 @@ let main_obj = {
wpas.printf(`Set new config for phy ${req.args.phy}`); wpas.printf(`Set new config for phy ${req.args.phy}`);
try { try {
if (req.args.config) if (req.args.config)
set_config(req.args.phy, req.args.config); set_config(req.args.phy, req.args.num_global_macaddr, req.args.config);
if (!req.args.defer) if (!req.args.defer)
start_pending(req.args.phy); start_pending(req.args.phy);

View File

@ -0,0 +1,26 @@
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -2420,7 +2420,11 @@ static int hostapd_owe_iface_iter(struct
if (!bss->conf->ssid.ssid_set || !bss->conf->ssid.ssid_len ||
is_zero_ether_addr(bss->own_addr))
continue;
-
+ if (!os_memcmp(hapd->conf->owe_transition_bssid, bss->own_addr, ETH_ALEN) &&
+ hapd->conf->owe_transition_ssid_len == bss->conf->ssid.ssid_len &&
+ !os_memcmp(hapd->conf->owe_transition_ssid, bss->conf->ssid.ssid,
+ bss->conf->ssid.ssid_len))
+ return 0;
os_memcpy(hapd->conf->owe_transition_bssid, bss->own_addr,
ETH_ALEN);
os_memcpy(hapd->conf->owe_transition_ssid,
@@ -2437,10 +2441,6 @@ static int hostapd_owe_iface_iter(struct
int hostapd_owe_trans_get_info(struct hostapd_data *hapd)
{
- if (hapd->conf->owe_transition_ssid_len > 0 &&
- !is_zero_ether_addr(hapd->conf->owe_transition_bssid))
- return 0;
-
/* Find transition mode SSID/BSSID information from a BSS operated by
* this hostapd instance. */
if (!hapd->iface->interfaces ||

View File

@ -139,7 +139,25 @@ as adding/removing interfaces.
{ {
struct hostapd_bss_config *conf = hapd->conf; struct hostapd_bss_config *conf = hapd->conf;
u8 ssid[SSID_MAX_LEN + 1]; u8 ssid[SSID_MAX_LEN + 1];
@@ -2954,7 +2958,7 @@ hostapd_alloc_bss_data(struct hostapd_if @@ -1510,6 +1514,8 @@ setup_mld:
}
#endif /* CONFIG_IEEE80211BE */
+ hostapd_ucode_create_bss(hapd);
+
if (conf->wmm_enabled < 0)
conf->wmm_enabled = hapd->iconf->ieee80211n |
hapd->iconf->ieee80211ax;
@@ -2487,7 +2493,7 @@ static int hostapd_owe_iface_iter2(struc
#endif /* CONFIG_OWE */
-static void hostapd_owe_update_trans(struct hostapd_iface *iface)
+void hostapd_owe_update_trans(struct hostapd_iface *iface)
{
#ifdef CONFIG_OWE
/* Check whether the enabled BSS can complete OWE transition mode
@@ -2954,7 +2960,7 @@ hostapd_alloc_bss_data(struct hostapd_if
} }
@ -148,7 +166,7 @@ as adding/removing interfaces.
{ {
if (!hapd) if (!hapd)
return; return;
@@ -4015,7 +4019,8 @@ int hostapd_remove_iface(struct hapd_int @@ -4015,7 +4021,8 @@ int hostapd_remove_iface(struct hapd_int
hapd_iface = interfaces->iface[i]; hapd_iface = interfaces->iface[i];
if (hapd_iface == NULL) if (hapd_iface == NULL)
return -1; return -1;
@ -204,6 +222,14 @@ as adding/removing interfaces.
void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta,
int reassoc); int reassoc);
void hostapd_interface_deinit_free(struct hostapd_iface *iface); void hostapd_interface_deinit_free(struct hostapd_iface *iface);
@@ -815,6 +824,7 @@ hostapd_switch_channel_fallback(struct h
void hostapd_cleanup_cs_params(struct hostapd_data *hapd);
void hostapd_periodic_iface(struct hostapd_iface *iface);
int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
+void hostapd_owe_update_trans(struct hostapd_iface *iface);;
void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx);
void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
--- a/src/drivers/driver.h --- a/src/drivers/driver.h
+++ b/src/drivers/driver.h +++ b/src/drivers/driver.h
@@ -3928,6 +3928,25 @@ struct wpa_driver_ops { @@ -3928,6 +3928,25 @@ struct wpa_driver_ops {

View File

@ -79,9 +79,9 @@ full device, e.g. in order to deal with hardware/driver limitations
{ {
--- a/src/ap/hostapd.h --- a/src/ap/hostapd.h
+++ b/src/ap/hostapd.h +++ b/src/ap/hostapd.h
@@ -825,6 +825,7 @@ void hostapd_cleanup_cs_params(struct ho @@ -826,6 +826,7 @@ void hostapd_periodic_iface(struct hosta
void hostapd_periodic_iface(struct hostapd_iface *iface);
int hostapd_owe_trans_get_info(struct hostapd_data *hapd); int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
void hostapd_owe_update_trans(struct hostapd_iface *iface);;
void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx); void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx);
+int hostapd_check_max_sta(struct hostapd_data *hapd); +int hostapd_check_max_sta(struct hostapd_data *hapd);

View File

@ -29,7 +29,7 @@ a VLAN interface on top of the bridge, instead of using the bridge directly
int bridge_hairpin; /* hairpin_mode on bridge members */ int bridge_hairpin; /* hairpin_mode on bridge members */
--- a/src/ap/wpa_auth_glue.c --- a/src/ap/wpa_auth_glue.c
+++ b/src/ap/wpa_auth_glue.c +++ b/src/ap/wpa_auth_glue.c
@@ -1815,8 +1815,12 @@ int hostapd_setup_wpa(struct hostapd_dat @@ -1821,8 +1821,12 @@ int hostapd_setup_wpa(struct hostapd_dat
wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) {
const char *ft_iface; const char *ft_iface;

View File

@ -164,7 +164,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
int hostapd_sta_add(struct hostapd_data *hapd, int hostapd_sta_add(struct hostapd_data *hapd,
--- /dev/null --- /dev/null
+++ b/src/ap/apup.c +++ b/src/ap/apup.c
@@ -0,0 +1,152 @@ @@ -0,0 +1,168 @@
+/* +/*
+ * hostapd / APuP Access Point Micro Peering + * hostapd / APuP Access Point Micro Peering
+ * + *
@ -190,6 +190,14 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
+#include "ap_drv_ops.h" +#include "ap_drv_ops.h"
+#include "sta_info.h" +#include "sta_info.h"
+ +
+#ifdef UBUS_SUPPORT
+# include "ubus.h"
+#endif
+
+#ifdef UCODE_SUPPORT
+# include "ucode.h"
+#endif
+
+void apup_process_beacon(struct hostapd_data *hapd, +void apup_process_beacon(struct hostapd_data *hapd,
+ const struct ieee80211_mgmt *mgmt, size_t len, + const struct ieee80211_mgmt *mgmt, size_t len,
+ const struct ieee802_11_elems *elems ) + const struct ieee802_11_elems *elems )
@ -316,6 +324,14 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
+ "apup_process_beacon(...) Added APuP peer at %s with flags: %d," + "apup_process_beacon(...) Added APuP peer at %s with flags: %d,"
+ " capabilities %d", + " capabilities %d",
+ mIfname, sta_ret->flags, sta_ret->capability); + mIfname, sta_ret->flags, sta_ret->capability);
+
+#ifdef UBUS_SUPPORT
+ hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
+#endif
+
+#ifdef UCODE_SUPPORT
+ hostapd_ucode_apup_newpeer(hapd, mIfname);
+#endif
+} +}
--- /dev/null --- /dev/null
+++ b/src/ap/apup.h +++ b/src/ap/apup.h
@ -356,7 +372,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
#ifdef CONFIG_FILS #ifdef CONFIG_FILS
static struct wpabuf * static struct wpabuf *
@@ -3588,8 +3591,8 @@ static u16 check_multi_ap(struct hostapd @@ -3615,8 +3618,8 @@ static u16 check_multi_ap(struct hostapd
} }
@ -367,7 +383,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
{ {
/* Supported rates not used in IEEE 802.11ad/DMG */ /* Supported rates not used in IEEE 802.11ad/DMG */
if (hapd->iface->current_mode && if (hapd->iface->current_mode &&
@@ -3976,7 +3979,7 @@ static int __check_assoc_ies(struct host @@ -4003,7 +4006,7 @@ static int __check_assoc_ies(struct host
elems->ext_capab_len); elems->ext_capab_len);
if (resp != WLAN_STATUS_SUCCESS) if (resp != WLAN_STATUS_SUCCESS)
return resp; return resp;
@ -376,7 +392,7 @@ Hotfix-by: Sebastian Gottschall https://github.com/mirror/dd-wrt/commit/0c3001a6
if (resp != WLAN_STATUS_SUCCESS) if (resp != WLAN_STATUS_SUCCESS)
return resp; return resp;
@@ -6031,6 +6034,11 @@ static void handle_beacon(struct hostapd @@ -6058,6 +6061,11 @@ static void handle_beacon(struct hostapd
0); 0);
ap_list_process_beacon(hapd->iface, mgmt, &elems, fi); ap_list_process_beacon(hapd->iface, mgmt, &elems, fi);

View File

@ -1,72 +0,0 @@
From 9a265f70b5e4e048c568564aed5f9ac4a4fd76b0 Mon Sep 17 00:00:00 2001
From: Gioacchino Mazzurco <gio@polymathes.cc>
Date: Tue, 7 May 2024 10:37:54 +0200
Subject: [PATCH 2/3] APuP add ubus notification when a peer comes up
The notification ones get looks like
{ "apup-newpeer": {"address":"02:0a:ab:45:5a:ab","ifname":"wlan0.peer1"} }
Signed-off-by: Gioacchino Mazzurco <gio@polymathes.cc>
---
src/ap/apup.c | 8 ++++++++
src/ap/ubus.c | 15 +++++++++++++++
src/ap/ubus.h | 5 +++++
3 files changed, 28 insertions(+)
--- a/src/ap/apup.c
+++ b/src/ap/apup.c
@@ -23,6 +23,10 @@
#include "ap_drv_ops.h"
#include "sta_info.h"
+#ifdef UBUS_SUPPORT
+# include "ubus.h"
+#endif
+
void apup_process_beacon(struct hostapd_data *hapd,
const struct ieee80211_mgmt *mgmt, size_t len,
const struct ieee802_11_elems *elems )
@@ -149,4 +153,8 @@ void apup_process_beacon(struct hostapd_
"apup_process_beacon(...) Added APuP peer at %s with flags: %d,"
" capabilities %d",
mIfname, sta_ret->flags, sta_ret->capability);
+
+#ifdef UBUS_SUPPORT
+ hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
+#endif
}
--- a/src/ap/ubus.c
+++ b/src/ap/ubus.c
@@ -2004,3 +2004,18 @@ int hostapd_ubus_notify_bss_transition_q
return ureq.resp;
#endif
}
+
+#ifdef CONFIG_APUP
+void hostapd_ubus_notify_apup_newpeer(
+ struct hostapd_data *hapd, const u8 *addr, const char *ifname)
+{
+ if (!hapd->ubus.obj.has_subscribers)
+ return;
+
+ blob_buf_init(&b, 0);
+ blobmsg_add_macaddr(&b, "address", addr);
+ blobmsg_add_string(&b, "ifname", ifname);
+
+ ubus_notify(ctx, &hapd->ubus.obj, "apup-newpeer", b.head, -1);
+}
+#endif // def CONFIG_APUP
--- a/src/ap/ubus.h
+++ b/src/ap/ubus.h
@@ -71,6 +71,11 @@ int hostapd_ubus_notify_bss_transition_q
void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta,
const char *auth_alg);
+#ifdef CONFIG_APUP
+void hostapd_ubus_notify_apup_newpeer(
+ struct hostapd_data *hapd, const u8 *addr, const char *ifname);
+#endif // def CONFIG_APUP
+
#else
struct hostapd_ubus_bss {};

View File

@ -1,70 +0,0 @@
From aaeb60b39a72774c651187208ec47efd0daeb75b Mon Sep 17 00:00:00 2001
From: Gioacchino Mazzurco <gio@polymathes.cc>
Date: Tue, 7 May 2024 11:54:23 +0200
Subject: [PATCH 3/3] APuP add ucode hook for when a peer comes up
Signed-off-by: Gioacchino Mazzurco <gio@polymathes.cc>
---
src/ap/apup.c | 8 ++++++++
src/ap/ucode.c | 17 +++++++++++++++++
src/ap/ucode.h | 4 ++++
3 files changed, 29 insertions(+)
--- a/src/ap/apup.c
+++ b/src/ap/apup.c
@@ -27,6 +27,10 @@
# include "ubus.h"
#endif
+#ifdef UCODE_SUPPORT
+# include "ucode.h"
+#endif
+
void apup_process_beacon(struct hostapd_data *hapd,
const struct ieee80211_mgmt *mgmt, size_t len,
const struct ieee802_11_elems *elems )
@@ -157,4 +161,8 @@ void apup_process_beacon(struct hostapd_
#ifdef UBUS_SUPPORT
hostapd_ubus_notify_apup_newpeer(hapd, mgmt->bssid, mIfname);
#endif
+
+#ifdef UCODE_SUPPORT
+ hostapd_ucode_apup_newpeer(hapd, mIfname);
+#endif
}
--- a/src/ap/ucode.c
+++ b/src/ap/ucode.c
@@ -815,3 +815,20 @@ void hostapd_ucode_free_bss(struct hosta
ucv_put(wpa_ucode_call(2));
ucv_gc(vm);
}
+
+#ifdef CONFIG_APUP
+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname)
+{
+ uc_value_t *val;
+
+ if (wpa_ucode_call_prepare("apup_newpeer"))
+ return;
+
+ val = hostapd_ucode_bss_get_uval(hapd);
+ uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface))); // BSS ifname
+ uc_value_push(ucv_get(val));
+ uc_value_push(ucv_get(ucv_string_new(ifname))); // APuP peer ifname
+ ucv_put(wpa_ucode_call(2));
+ ucv_gc(vm);
+}
+#endif // def CONFIG_APUP
--- a/src/ap/ucode.h
+++ b/src/ap/ucode.h
@@ -27,6 +27,10 @@ void hostapd_ucode_add_bss(struct hostap
void hostapd_ucode_free_bss(struct hostapd_data *hapd);
void hostapd_ucode_reload_bss(struct hostapd_data *hapd);
+#ifdef CONFIG_APUP
+void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname);
+#endif // def CONFIG_APUP
+
#else
static inline int hostapd_ucode_init(struct hapd_interfaces *ifaces)

View File

@ -2004,3 +2004,18 @@ int hostapd_ubus_notify_bss_transition_query(
return ureq.resp; return ureq.resp;
#endif #endif
} }
#ifdef CONFIG_APUP
void hostapd_ubus_notify_apup_newpeer(
struct hostapd_data *hapd, const u8 *addr, const char *ifname)
{
if (!hapd->ubus.obj.has_subscribers)
return;
blob_buf_init(&b, 0);
blobmsg_add_macaddr(&b, "address", addr);
blobmsg_add_string(&b, "ifname", ifname);
ubus_notify(ctx, &hapd->ubus.obj, "apup-newpeer", b.head, -1);
}
#endif // def CONFIG_APUP

View File

@ -69,6 +69,11 @@ int hostapd_ubus_notify_bss_transition_query(
void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta, void hostapd_ubus_notify_authorized(struct hostapd_data *hapd, struct sta_info *sta,
const char *auth_alg); const char *auth_alg);
#ifdef CONFIG_APUP
void hostapd_ubus_notify_apup_newpeer(
struct hostapd_data *hapd, const u8 *addr, const char *ifname);
#endif // def CONFIG_APUP
#else #else
struct hostapd_ubus_bss {}; struct hostapd_ubus_bss {};

View File

@ -259,6 +259,7 @@ uc_hostapd_bss_set_config(uc_vm_t *vm, size_t nargs)
hostapd_setup_bss(hapd, hapd == iface->bss[0], true); hostapd_setup_bss(hapd, hapd == iface->bss[0], true);
hostapd_ucode_update_interfaces(); hostapd_ucode_update_interfaces();
hostapd_owe_update_trans(iface);
done: done:
ret = 0; ret = 0;
@ -379,6 +380,7 @@ uc_hostapd_iface_add_bss(uc_vm_t *vm, size_t nargs)
conf->bss[idx] = NULL; conf->bss[idx] = NULL;
ret = hostapd_ucode_bss_get_uval(hapd); ret = hostapd_ucode_bss_get_uval(hapd);
hostapd_ucode_update_interfaces(); hostapd_ucode_update_interfaces();
hostapd_owe_update_trans(iface);
goto out; goto out;
deinit_ctrl: deinit_ctrl:
@ -531,10 +533,12 @@ uc_hostapd_iface_start(uc_vm_t *vm, size_t nargs)
return NULL; return NULL;
#define UPDATE_VAL(field, name) \ #define UPDATE_VAL(field, name) \
if ((intval = ucv_int64_get(ucv_object_get(info, name, NULL))) && \ do { \
!errno && intval != conf->field) do { \ intval = ucv_int64_get(ucv_object_get(info, name, NULL)); \
if (!errno && intval != conf->field) { \
conf->field = intval; \ conf->field = intval; \
changed = true; \ changed = true; \
} \
} while(0) } while(0)
conf = iface->conf; conf = iface->conf;
@ -607,6 +611,7 @@ out:
ieee802_11_set_beacon(hapd); ieee802_11_set_beacon(hapd);
} }
hostapd_owe_update_trans(iface);
return ucv_boolean_new(true); return ucv_boolean_new(true);
} }
@ -698,6 +703,7 @@ uc_hostapd_bss_rename(uc_vm_t *vm, size_t nargs)
hostapd_ubus_add_bss(hapd); hostapd_ubus_add_bss(hapd);
hostapd_ucode_update_interfaces(); hostapd_ucode_update_interfaces();
hostapd_owe_update_trans(hapd->iface);
out: out:
if (interfaces->ctrl_iface_init) if (interfaces->ctrl_iface_init)
interfaces->ctrl_iface_init(hapd); interfaces->ctrl_iface_init(hapd);
@ -770,31 +776,18 @@ void hostapd_ucode_free_iface(struct hostapd_iface *iface)
wpa_ucode_registry_remove(iface_registry, iface->ucode.idx); wpa_ucode_registry_remove(iface_registry, iface->ucode.idx);
} }
void hostapd_ucode_add_bss(struct hostapd_data *hapd) void hostapd_ucode_bss_cb(struct hostapd_data *hapd, const char *type)
{ {
uc_value_t *val; uc_value_t *val;
if (wpa_ucode_call_prepare("bss_add")) if (wpa_ucode_call_prepare(type))
return; return;
val = hostapd_ucode_bss_get_uval(hapd); val = hostapd_ucode_bss_get_uval(hapd);
uc_value_push(ucv_get(ucv_string_new(hapd->iface->phy)));
uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface))); uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface)));
uc_value_push(ucv_get(val)); uc_value_push(ucv_get(val));
ucv_put(wpa_ucode_call(2)); ucv_put(wpa_ucode_call(3));
ucv_gc(vm);
}
void hostapd_ucode_reload_bss(struct hostapd_data *hapd)
{
uc_value_t *val;
if (wpa_ucode_call_prepare("bss_reload"))
return;
val = hostapd_ucode_bss_get_uval(hapd);
uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface)));
uc_value_push(ucv_get(val));
ucv_put(wpa_ucode_call(2));
ucv_gc(vm); ucv_gc(vm);
} }
@ -815,3 +808,20 @@ void hostapd_ucode_free_bss(struct hostapd_data *hapd)
ucv_put(wpa_ucode_call(2)); ucv_put(wpa_ucode_call(2));
ucv_gc(vm); ucv_gc(vm);
} }
#ifdef CONFIG_APUP
void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname)
{
uc_value_t *val;
if (wpa_ucode_call_prepare("apup_newpeer"))
return;
val = hostapd_ucode_bss_get_uval(hapd);
uc_value_push(ucv_get(ucv_string_new(hapd->conf->iface))); // BSS ifname
uc_value_push(ucv_get(val));
uc_value_push(ucv_get(ucv_string_new(ifname))); // APuP peer ifname
ucv_put(wpa_ucode_call(2));
ucv_gc(vm);
}
#endif // def CONFIG_APUP

View File

@ -23,9 +23,12 @@ int hostapd_ucode_init(struct hapd_interfaces *ifaces);
void hostapd_ucode_free(void); void hostapd_ucode_free(void);
void hostapd_ucode_free_iface(struct hostapd_iface *iface); void hostapd_ucode_free_iface(struct hostapd_iface *iface);
void hostapd_ucode_add_bss(struct hostapd_data *hapd);
void hostapd_ucode_free_bss(struct hostapd_data *hapd); void hostapd_ucode_free_bss(struct hostapd_data *hapd);
void hostapd_ucode_reload_bss(struct hostapd_data *hapd); void hostapd_ucode_bss_cb(struct hostapd_data *hapd, const char *type);
#ifdef CONFIG_APUP
void hostapd_ucode_apup_newpeer(struct hostapd_data *hapd, const char *ifname);
#endif // def CONFIG_APUP
#else #else
@ -39,10 +42,7 @@ static inline void hostapd_ucode_free(void)
static inline void hostapd_ucode_free_iface(struct hostapd_iface *iface) static inline void hostapd_ucode_free_iface(struct hostapd_iface *iface)
{ {
} }
static inline void hostapd_ucode_reload_bss(struct hostapd_data *hapd) static inline void hostapd_ucode_bss_cb(struct hostapd_data *hapd, const char *type)
{
}
static inline void hostapd_ucode_add_bss(struct hostapd_data *hapd)
{ {
} }
static inline void hostapd_ucode_free_bss(struct hostapd_data *hapd) static inline void hostapd_ucode_free_bss(struct hostapd_data *hapd)
@ -51,4 +51,19 @@ static inline void hostapd_ucode_free_bss(struct hostapd_data *hapd)
#endif #endif
static inline void hostapd_ucode_create_bss(struct hostapd_data *hapd)
{
hostapd_ucode_bss_cb(hapd, "bss_create");
}
static inline void hostapd_ucode_add_bss(struct hostapd_data *hapd)
{
hostapd_ucode_bss_cb(hapd, "bss_add");
}
static inline void hostapd_ucode_reload_bss(struct hostapd_data *hapd)
{
hostapd_ucode_bss_cb(hapd, "bss_reload");
}
#endif #endif

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ppp PKG_NAME:=ppp
PKG_RELEASE:=8 PKG_RELEASE:=9
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp PKG_SOURCE_URL:=https://github.com/paulusmack/ppp

View File

@ -28,6 +28,7 @@ if [ -n "$AUTOIPV6" ]; then
[ -n "$IP6TABLE" ] && json_add_string ip6table $IP6TABLE [ -n "$IP6TABLE" ] && json_add_string ip6table $IP6TABLE
[ -n "$PEERDNS" ] && json_add_boolean peerdns $PEERDNS [ -n "$PEERDNS" ] && json_add_boolean peerdns $PEERDNS
[ "$NOSOURCEFILTER" = "1" ] && json_add_boolean sourcefilter "0" [ "$NOSOURCEFILTER" = "1" ] && json_add_boolean sourcefilter "0"
[ "$DELEGATE" = "0" ] && json_add_boolean delegate "0"
json_close_object json_close_object
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"
fi fi

View File

@ -83,13 +83,14 @@ ppp_generic_init_config() {
proto_config_add_int maxfail proto_config_add_int maxfail
proto_config_add_int holdoff proto_config_add_int holdoff
proto_config_add_boolean sourcefilter proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
} }
ppp_generic_setup() { ppp_generic_setup() {
local config="$1"; shift local config="$1"; shift
local localip local localip
json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns sourcefilter json_get_vars ipv6 ip6table demand keepalive keepalive_adaptive username password pppd_options pppname unnumbered persist maxfail holdoff peerdns sourcefilter delegate
if [ "$ipv6" = 0 ]; then if [ "$ipv6" = 0 ]; then
ipv6="" ipv6=""
@ -133,6 +134,7 @@ ppp_generic_setup() {
[ -n "$connect" ] || json_get_var connect connect [ -n "$connect" ] || json_get_var connect connect
[ -n "$disconnect" ] || json_get_var disconnect disconnect [ -n "$disconnect" ] || json_get_var disconnect disconnect
[ "$sourcefilter" = "0" ] || sourcefilter="" [ "$sourcefilter" = "0" ] || sourcefilter=""
[ "$delegate" != "0" ] && delegate=""
proto_run_command "$config" /usr/sbin/pppd \ proto_run_command "$config" /usr/sbin/pppd \
nodetach ipparam "$config" \ nodetach ipparam "$config" \
@ -144,6 +146,7 @@ ppp_generic_setup() {
${ip6table:+set IP6TABLE=$ip6table} \ ${ip6table:+set IP6TABLE=$ip6table} \
${peerdns:+set PEERDNS=$peerdns} \ ${peerdns:+set PEERDNS=$peerdns} \
${sourcefilter:+set NOSOURCEFILTER=1} \ ${sourcefilter:+set NOSOURCEFILTER=1} \
${delegate:+set DELEGATE=0} \
nodefaultroute \ nodefaultroute \
usepeerdns \ usepeerdns \
$demand $persist maxfail $maxfail \ $demand $persist maxfail $maxfail \

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=comgt PKG_NAME:=comgt
PKG_VERSION:=0.32 PKG_VERSION:=0.32
PKG_RELEASE:=35 PKG_RELEASE:=36
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/comgt PKG_SOURCE_URL:=@SF/comgt

View File

@ -15,6 +15,8 @@ proto_directip_init_config() {
proto_config_add_string "auth" proto_config_add_string "auth"
proto_config_add_string "username" proto_config_add_string "username"
proto_config_add_string "password" proto_config_add_string "password"
proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
proto_config_add_defaults proto_config_add_defaults
} }
@ -22,8 +24,8 @@ proto_directip_setup() {
local interface="$1" local interface="$1"
local chat devpath devname local chat devpath devname
local device apn pincode ifname auth username password $PROTO_DEFAULT_OPTIONS local device apn pincode ifname auth username password sourcefilter delegate $PROTO_DEFAULT_OPTIONS
json_get_vars device apn pincode auth username password $PROTO_DEFAULT_OPTIONS json_get_vars device apn pincode auth username password sourcefilter delegate $PROTO_DEFAULT_OPTIONS
[ -n "$ctl_device" ] && device=$ctl_device [ -n "$ctl_device" ] && device=$ctl_device
@ -89,6 +91,8 @@ proto_directip_setup() {
json_add_string ifname "@$interface" json_add_string ifname "@$interface"
json_add_string proto "dhcpv6" json_add_string proto "dhcpv6"
json_add_string extendprefix 1 json_add_string extendprefix 1
[ "$delegate" = "0" ] && json_add_boolean delegate "0"
[ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
proto_add_dynamic_defaults proto_add_dynamic_defaults
ubus call network add_dynamic "$(json_dump)" ubus call network add_dynamic "$(json_dump)"

View File

@ -20,6 +20,7 @@ proto_ncm_init_config() {
proto_config_add_string mode proto_config_add_string mode
proto_config_add_string pdptype proto_config_add_string pdptype
proto_config_add_boolean sourcefilter proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
proto_config_add_int profile proto_config_add_int profile
proto_config_add_defaults proto_config_add_defaults
} }
@ -30,7 +31,7 @@ proto_ncm_setup() {
local manufacturer initialize setmode connect finalize devname devpath ifpath local manufacturer initialize setmode connect finalize devname devpath ifpath
local device ifname apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS local device ifname apn auth username password pincode delay mode pdptype profile $PROTO_DEFAULT_OPTIONS
json_get_vars device ifname apn auth username password pincode delay mode pdptype sourcefilter profile $PROTO_DEFAULT_OPTIONS json_get_vars device ifname apn auth username password pincode delay mode pdptype sourcefilter delegate profile $PROTO_DEFAULT_OPTIONS
local context_type local context_type
@ -203,6 +204,7 @@ proto_ncm_setup() {
json_add_string ifname "@$interface" json_add_string ifname "@$interface"
json_add_string proto "dhcpv6" json_add_string proto "dhcpv6"
json_add_string extendprefix 1 json_add_string extendprefix 1
[ "$delegate" = "0" ] && json_add_boolean delegate "0"
[ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0" [ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
proto_add_dynamic_defaults proto_add_dynamic_defaults
[ -n "$zone" ] && { [ -n "$zone" ] && {

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=restool PKG_NAME:=restool
PKG_VERSION:=21.08 PKG_VERSION:=6.6.23.2.0.0
PKG_RELEASE:=4 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/nxp-qoriq/restool PKG_SOURCE_URL:=https://github.com/nxp-qoriq/restool
PKG_SOURCE_VERSION:=LSDK-21.08 PKG_SOURCE_VERSION:=lf-6.6.23-2.0.0
PKG_MIRROR_HASH:=3c289e6c9adc2c61445473ecd8b1b1a7b6dfd19a66d3c65f3b83b669e4c3e25b PKG_MIRROR_HASH:=e669c9faf5a00e36d763dbbd6dd866d878b0101df086582c38908d281fa3b465
PKG_FLAGS:=nonshared PKG_FLAGS:=nonshared

View File

@ -1,6 +1,6 @@
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -53,14 +53,13 @@ restool: $(OBJ) @@ -55,14 +55,13 @@ restool: $(OBJ)
%.1: %.md %.1: %.md
pandoc --standalone --to man $^ -o $@ pandoc --standalone --to man $^ -o $@

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=tcpdump PKG_NAME:=tcpdump
PKG_VERSION:=4.99.4 PKG_VERSION:=4.99.5
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.tcpdump.org/release/ PKG_SOURCE_URL:=https://www.tcpdump.org/release/
PKG_HASH:=0232231bb2f29d6bf2426e70a08a7e0c63a0d59a9b44863b7f5e2357a6e49fea PKG_HASH:=8c75856e00addeeadf70dad67c9ff3dd368536b2b8563abf6854d7c764cd3adb
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name> PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=BSD-3-Clause PKG_LICENSE:=BSD-3-Clause

View File

@ -1,35 +1,31 @@
--- a/configure --- a/configure
+++ b/configure +++ b/configure
@@ -6568,97 +6568,6 @@ fi @@ -7346,97 +7346,6 @@ esac
fi
-# -#
-# Check for special debugging functions -# Check for special debugging functions
-# -#
-for ac_func in pcap_set_parser_debug
-do :
-ac_fn_c_check_func "$LINENO" "pcap_set_parser_debug" "ac_cv_func_pcap_set_parser_debug" -ac_fn_c_check_func "$LINENO" "pcap_set_parser_debug" "ac_cv_func_pcap_set_parser_debug"
-if test "x$ac_cv_func_pcap_set_parser_debug" = xyes; then : -if test "x$ac_cv_func_pcap_set_parser_debug" = xyes
- cat >>confdefs.h <<_ACEOF -then :
-#define HAVE_PCAP_SET_PARSER_DEBUG 1 - printf "%s\n" "#define HAVE_PCAP_SET_PARSER_DEBUG 1" >>confdefs.h
-_ACEOF
- -
-fi -fi
-done
- -
-if test "$ac_cv_func_pcap_set_parser_debug" = "no" ; then -if test "$ac_cv_func_pcap_set_parser_debug" = "no" ; then
- # - #
- # OK, we don't have pcap_set_parser_debug() to set the libpcap - # OK, we don't have pcap_set_parser_debug() to set the libpcap
- # filter expression parser debug flag; can we directly set the - # filter expression parser debug flag; can we directly set the
- # flag? - # flag?
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pcap_debug is defined by libpcap" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pcap_debug is defined by libpcap" >&5
-$as_echo_n "checking whether pcap_debug is defined by libpcap... " >&6; } -printf %s "checking whether pcap_debug is defined by libpcap... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */ -/* end confdefs.h. */
- -
-int -int
-main () -main (void)
-{ -{
- -
- extern int pcap_debug; - extern int pcap_debug;
@ -39,33 +35,35 @@
- ; - ;
- return 0; - return 0;
-} -}
-
-_ACEOF -_ACEOF
-if ac_fn_c_try_link "$LINENO"; then : -if ac_fn_c_try_link "$LINENO"
-then :
- ac_lbl_cv_pcap_debug_defined=yes - ac_lbl_cv_pcap_debug_defined=yes
-else -else $as_nop
- ac_lbl_cv_pcap_debug_defined=no - ac_lbl_cv_pcap_debug_defined=no
-fi -fi
-rm -f core conftest.err conftest.$ac_objext \ -rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext - conftest$ac_exeext conftest.$ac_ext
- if test "$ac_lbl_cv_pcap_debug_defined" = yes ; then - if test "$ac_lbl_cv_pcap_debug_defined" = yes ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; } -printf "%s\n" "yes" >&6; }
- -
-$as_echo "#define HAVE_PCAP_DEBUG 1" >>confdefs.h -printf "%s\n" "#define HAVE_PCAP_DEBUG 1" >>confdefs.h
- -
- else - else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; } -printf "%s\n" "no" >&6; }
- # - #
- # OK, what about "yydebug"? - # OK, what about "yydebug"?
- # - #
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yydebug is defined by libpcap" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether yydebug is defined by libpcap" >&5
-$as_echo_n "checking whether yydebug is defined by libpcap... " >&6; } -printf %s "checking whether yydebug is defined by libpcap... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */ -/* end confdefs.h. */
- -
-int -int
-main () -main (void)
-{ -{
- -
- extern int yydebug; - extern int yydebug;
@ -75,26 +73,28 @@
- ; - ;
- return 0; - return 0;
-} -}
-
-_ACEOF -_ACEOF
-if ac_fn_c_try_link "$LINENO"; then : -if ac_fn_c_try_link "$LINENO"
-then :
- ac_lbl_cv_yydebug_defined=yes - ac_lbl_cv_yydebug_defined=yes
-else -else $as_nop
- ac_lbl_cv_yydebug_defined=no - ac_lbl_cv_yydebug_defined=no
-fi -fi
-rm -f core conftest.err conftest.$ac_objext \ -rm -f core conftest.err conftest.$ac_objext conftest.beam \
- conftest$ac_exeext conftest.$ac_ext - conftest$ac_exeext conftest.$ac_ext
- if test "$ac_lbl_cv_yydebug_defined" = yes ; then - if test "$ac_lbl_cv_yydebug_defined" = yes ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; } -printf "%s\n" "yes" >&6; }
- -
-$as_echo "#define HAVE_YYDEBUG 1" >>confdefs.h -printf "%s\n" "#define HAVE_YYDEBUG 1" >>confdefs.h
- -
- else - else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; } -printf "%s\n" "no" >&6; }
- fi - fi
- fi - fi
-fi -fi
for ac_func in pcap_set_optimizer_debug
do :
ac_fn_c_check_func "$LINENO" "pcap_set_optimizer_debug" "ac_cv_func_pcap_set_optimizer_debug" ac_fn_c_check_func "$LINENO" "pcap_set_optimizer_debug" "ac_cv_func_pcap_set_optimizer_debug"
if test "x$ac_cv_func_pcap_set_optimizer_debug" = xyes
then :

View File

@ -98,7 +98,7 @@
--- a/addrtoname.c --- a/addrtoname.c
+++ b/addrtoname.c +++ b/addrtoname.c
@@ -680,8 +680,10 @@ linkaddr_string(netdissect_options *ndo, @@ -677,8 +677,10 @@ linkaddr_string(netdissect_options *ndo,
if (type == LINKADDR_ETHER && len == MAC_ADDR_LEN) if (type == LINKADDR_ETHER && len == MAC_ADDR_LEN)
return (etheraddr_string(ndo, ep)); return (etheraddr_string(ndo, ep));
@ -109,7 +109,7 @@
tp = lookup_bytestring(ndo, ep, len); tp = lookup_bytestring(ndo, ep, len);
if (tp->bs_name) if (tp->bs_name)
@@ -1260,6 +1262,7 @@ init_addrtoname(netdissect_options *ndo, @@ -1257,6 +1259,7 @@ init_addrtoname(netdissect_options *ndo,
init_ipxsaparray(ndo); init_ipxsaparray(ndo);
} }
@ -117,7 +117,7 @@
const char * const char *
dnaddr_string(netdissect_options *ndo, u_short dnaddr) dnaddr_string(netdissect_options *ndo, u_short dnaddr)
{ {
@@ -1276,6 +1279,7 @@ dnaddr_string(netdissect_options *ndo, u @@ -1273,6 +1276,7 @@ dnaddr_string(netdissect_options *ndo, u
return(tp->name); return(tp->name);
} }
@ -127,7 +127,7 @@
struct hnamemem * struct hnamemem *
--- a/print-ether.c --- a/print-ether.c
+++ b/print-ether.c +++ b/print-ether.c
@@ -545,6 +545,7 @@ ethertype_print(netdissect_options *ndo, @@ -543,6 +543,7 @@ ethertype_print(netdissect_options *ndo,
arp_print(ndo, p, length, caplen); arp_print(ndo, p, length, caplen);
return (1); return (1);
@ -135,7 +135,7 @@
case ETHERTYPE_DN: case ETHERTYPE_DN:
decnet_print(ndo, p, length, caplen); decnet_print(ndo, p, length, caplen);
return (1); return (1);
@@ -575,6 +576,7 @@ ethertype_print(netdissect_options *ndo, @@ -573,6 +574,7 @@ ethertype_print(netdissect_options *ndo,
ND_TCHECK_LEN(p, 1); ND_TCHECK_LEN(p, 1);
isoclns_print(ndo, p + 1, length - 1); isoclns_print(ndo, p + 1, length - 1);
return(1); return(1);
@ -143,7 +143,7 @@
case ETHERTYPE_PPPOED: case ETHERTYPE_PPPOED:
case ETHERTYPE_PPPOES: case ETHERTYPE_PPPOES:
@@ -587,9 +589,11 @@ ethertype_print(netdissect_options *ndo, @@ -585,9 +587,11 @@ ethertype_print(netdissect_options *ndo,
eapol_print(ndo, p); eapol_print(ndo, p);
return (1); return (1);
@ -155,7 +155,7 @@
case ETHERTYPE_PPP: case ETHERTYPE_PPP:
if (length) { if (length) {
@@ -598,6 +602,7 @@ ethertype_print(netdissect_options *ndo, @@ -596,6 +600,7 @@ ethertype_print(netdissect_options *ndo,
} }
return (1); return (1);
@ -163,7 +163,7 @@
case ETHERTYPE_MPCP: case ETHERTYPE_MPCP:
mpcp_print(ndo, p, length); mpcp_print(ndo, p, length);
return (1); return (1);
@@ -610,19 +615,23 @@ ethertype_print(netdissect_options *ndo, @@ -608,19 +613,23 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_CFM_OLD: case ETHERTYPE_CFM_OLD:
cfm_print(ndo, p, length); cfm_print(ndo, p, length);
return (1); return (1);
@ -187,7 +187,7 @@
case ETHERTYPE_MPLS: case ETHERTYPE_MPLS:
case ETHERTYPE_MPLS_MULTI: case ETHERTYPE_MPLS_MULTI:
mpls_print(ndo, p, length); mpls_print(ndo, p, length);
@@ -652,6 +661,7 @@ ethertype_print(netdissect_options *ndo, @@ -650,6 +659,7 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_PTP: case ETHERTYPE_PTP:
ptp_print(ndo, p, length); ptp_print(ndo, p, length);
return (1); return (1);
@ -197,7 +197,7 @@
case ETHERTYPE_SCA: case ETHERTYPE_SCA:
--- a/print-gre.c --- a/print-gre.c
+++ b/print-gre.c +++ b/print-gre.c
@@ -207,6 +207,7 @@ gre_print_0(netdissect_options *ndo, con @@ -205,6 +205,7 @@ gre_print_0(netdissect_options *ndo, con
case ETHERTYPE_IPV6: case ETHERTYPE_IPV6:
ip6_print(ndo, bp, len); ip6_print(ndo, bp, len);
break; break;
@ -205,7 +205,7 @@
case ETHERTYPE_MPLS: case ETHERTYPE_MPLS:
mpls_print(ndo, bp, len); mpls_print(ndo, bp, len);
break; break;
@@ -219,6 +220,7 @@ gre_print_0(netdissect_options *ndo, con @@ -217,6 +218,7 @@ gre_print_0(netdissect_options *ndo, con
case ETHERTYPE_GRE_ISO: case ETHERTYPE_GRE_ISO:
isoclns_print(ndo, bp, len); isoclns_print(ndo, bp, len);
break; break;
@ -215,7 +215,7 @@
break; break;
--- a/print-icmp6.c --- a/print-icmp6.c
+++ b/print-icmp6.c +++ b/print-icmp6.c
@@ -1371,7 +1371,7 @@ get_upperlayer(netdissect_options *ndo, @@ -1369,7 +1369,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(fragh->ip6f_nxt); nh = GET_U_1(fragh->ip6f_nxt);
hlen = sizeof(struct ip6_frag); hlen = sizeof(struct ip6_frag);
break; break;
@ -224,7 +224,7 @@
case IPPROTO_AH: case IPPROTO_AH:
ah = (const struct ah *)bp; ah = (const struct ah *)bp;
if (!ND_TTEST_1(ah->ah_len)) if (!ND_TTEST_1(ah->ah_len))
@@ -1379,7 +1379,7 @@ get_upperlayer(netdissect_options *ndo, @@ -1377,7 +1377,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(ah->ah_nxt); nh = GET_U_1(ah->ah_nxt);
hlen = (GET_U_1(ah->ah_len) + 2) << 2; hlen = (GET_U_1(ah->ah_len) + 2) << 2;
break; break;
@ -235,7 +235,7 @@
return(NULL); return(NULL);
--- a/print-igmp.c --- a/print-igmp.c
+++ b/print-igmp.c +++ b/print-igmp.c
@@ -269,6 +269,7 @@ igmp_print(netdissect_options *ndo, @@ -267,6 +267,7 @@ igmp_print(netdissect_options *ndo,
case 0x17: case 0x17:
ND_PRINT("igmp leave %s", GET_IPADDR_STRING(bp + 4)); ND_PRINT("igmp leave %s", GET_IPADDR_STRING(bp + 4));
break; break;
@ -243,7 +243,7 @@
case 0x13: case 0x13:
ND_PRINT("igmp dvmrp"); ND_PRINT("igmp dvmrp");
if (len < 8) if (len < 8)
@@ -280,6 +281,7 @@ igmp_print(netdissect_options *ndo, @@ -278,6 +279,7 @@ igmp_print(netdissect_options *ndo,
ND_PRINT("igmp pimv1"); ND_PRINT("igmp pimv1");
pimv1_print(ndo, bp, len); pimv1_print(ndo, bp, len);
break; break;
@ -253,7 +253,7 @@
break; break;
--- a/print-ip-demux.c --- a/print-ip-demux.c
+++ b/print-ip-demux.c +++ b/print-ip-demux.c
@@ -48,6 +48,7 @@ ip_demux_print(netdissect_options *ndo, @@ -46,6 +46,7 @@ ip_demux_print(netdissect_options *ndo,
again: again:
switch (nh) { switch (nh) {
@ -261,7 +261,7 @@
case IPPROTO_AH: case IPPROTO_AH:
if (!ND_TTEST_1(bp)) { if (!ND_TTEST_1(bp)) {
ndo->ndo_protocol = "ah"; ndo->ndo_protocol = "ah";
@@ -85,7 +86,9 @@ again: @@ -83,7 +84,9 @@ again:
*/ */
break; break;
} }
@ -271,7 +271,7 @@
case IPPROTO_SCTP: case IPPROTO_SCTP:
sctp_print(ndo, bp, iph, length); sctp_print(ndo, bp, iph, length);
break; break;
@@ -93,7 +96,7 @@ again: @@ -91,7 +94,7 @@ again:
case IPPROTO_DCCP: case IPPROTO_DCCP:
dccp_print(ndo, bp, iph, length); dccp_print(ndo, bp, iph, length);
break; break;
@ -280,7 +280,7 @@
case IPPROTO_TCP: case IPPROTO_TCP:
tcp_print(ndo, bp, length, iph, fragmented); tcp_print(ndo, bp, length, iph, fragmented);
break; break;
@@ -122,6 +125,7 @@ again: @@ -120,6 +123,7 @@ again:
} }
break; break;
@ -288,7 +288,7 @@
case IPPROTO_PIGP: case IPPROTO_PIGP:
/* /*
* XXX - the current IANA protocol number assignments * XXX - the current IANA protocol number assignments
@@ -142,14 +146,17 @@ again: @@ -140,14 +144,17 @@ again:
case IPPROTO_EIGRP: case IPPROTO_EIGRP:
eigrp_print(ndo, bp, length); eigrp_print(ndo, bp, length);
break; break;
@ -306,7 +306,7 @@
case IPPROTO_OSPF: case IPPROTO_OSPF:
if (ver == 6) if (ver == 6)
@@ -186,6 +193,7 @@ again: @@ -184,6 +191,7 @@ again:
gre_print(ndo, bp, length); gre_print(ndo, bp, length);
break; break;
@ -314,7 +314,7 @@
case IPPROTO_MOBILE: case IPPROTO_MOBILE:
mobile_print(ndo, bp, length); mobile_print(ndo, bp, length);
break; break;
@@ -205,6 +213,7 @@ again: @@ -203,6 +211,7 @@ again:
case IPPROTO_PGM: case IPPROTO_PGM:
pgm_print(ndo, bp, length, iph); pgm_print(ndo, bp, length, iph);
break; break;
@ -324,7 +324,7 @@
if (ver == 6) if (ver == 6)
--- a/print-ip6.c --- a/print-ip6.c
+++ b/print-ip6.c +++ b/print-ip6.c
@@ -135,10 +135,11 @@ ip6_finddst(netdissect_options *ndo, nd_ @@ -133,10 +133,11 @@ ip6_finddst(netdissect_options *ndo, nd_
* Only one routing header to a customer. * Only one routing header to a customer.
*/ */
goto done; goto done;
@ -337,7 +337,7 @@
default: default:
/* /*
* AH and ESP are, in the RFCs that describe them, * AH and ESP are, in the RFCs that describe them,
@@ -375,6 +376,7 @@ ip6_print(netdissect_options *ndo, const @@ -371,6 +372,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp); nh = GET_U_1(cp);
break; break;
@ -345,7 +345,7 @@
case IPPROTO_FRAGMENT: case IPPROTO_FRAGMENT:
advance = frag6_print(ndo, cp, (const u_char *)ip6); advance = frag6_print(ndo, cp, (const u_char *)ip6);
if (advance < 0 || ndo->ndo_snapend <= cp + advance) { if (advance < 0 || ndo->ndo_snapend <= cp + advance) {
@@ -405,7 +407,7 @@ ip6_print(netdissect_options *ndo, const @@ -401,7 +403,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp); nh = GET_U_1(cp);
nd_pop_packet_info(ndo); nd_pop_packet_info(ndo);
return; return;
@ -356,7 +356,7 @@
advance = rt6_print(ndo, cp, (const u_char *)ip6); advance = rt6_print(ndo, cp, (const u_char *)ip6);
--- a/print-llc.c --- a/print-llc.c
+++ b/print-llc.c +++ b/print-llc.c
@@ -207,6 +207,7 @@ llc_print(netdissect_options *ndo, const @@ -205,6 +205,7 @@ llc_print(netdissect_options *ndo, const
hdrlen = 4; /* DSAP, SSAP, 2-byte control field */ hdrlen = 4; /* DSAP, SSAP, 2-byte control field */
} }
@ -364,7 +364,7 @@
if (ssap_field == LLCSAP_GLOBAL && dsap_field == LLCSAP_GLOBAL) { if (ssap_field == LLCSAP_GLOBAL && dsap_field == LLCSAP_GLOBAL) {
/* /*
* This is an Ethernet_802.3 IPX frame; it has an * This is an Ethernet_802.3 IPX frame; it has an
@@ -229,6 +230,7 @@ llc_print(netdissect_options *ndo, const @@ -227,6 +228,7 @@ llc_print(netdissect_options *ndo, const
ipx_print(ndo, p, length); ipx_print(ndo, p, length);
return (0); /* no LLC header */ return (0); /* no LLC header */
} }
@ -372,7 +372,7 @@
dsap = dsap_field & ~LLC_IG; dsap = dsap_field & ~LLC_IG;
ssap = ssap_field & ~LLC_GSAP; ssap = ssap_field & ~LLC_GSAP;
@@ -292,6 +294,7 @@ llc_print(netdissect_options *ndo, const @@ -290,6 +292,7 @@ llc_print(netdissect_options *ndo, const
return (hdrlen); return (hdrlen);
} }
@ -380,7 +380,7 @@
if (ssap == LLCSAP_IPX && dsap == LLCSAP_IPX && if (ssap == LLCSAP_IPX && dsap == LLCSAP_IPX &&
control == LLC_UI) { control == LLC_UI) {
/* /*
@@ -305,6 +308,7 @@ llc_print(netdissect_options *ndo, const @@ -303,6 +306,7 @@ llc_print(netdissect_options *ndo, const
ipx_print(ndo, p, length); ipx_print(ndo, p, length);
return (hdrlen); return (hdrlen);
} }
@ -388,7 +388,7 @@
#ifdef ENABLE_SMB #ifdef ENABLE_SMB
if (ssap == LLCSAP_NETBEUI && dsap == LLCSAP_NETBEUI if (ssap == LLCSAP_NETBEUI && dsap == LLCSAP_NETBEUI
@@ -323,12 +327,13 @@ llc_print(netdissect_options *ndo, const @@ -321,12 +325,13 @@ llc_print(netdissect_options *ndo, const
return (hdrlen); return (hdrlen);
} }
#endif #endif
@ -403,7 +403,7 @@
if (!ndo->ndo_eflag) { if (!ndo->ndo_eflag) {
if (ssap == dsap) { if (ssap == dsap) {
if (src == NULL || dst == NULL) if (src == NULL || dst == NULL)
@@ -484,6 +489,7 @@ snap_print(netdissect_options *ndo, cons @@ -482,6 +487,7 @@ snap_print(netdissect_options *ndo, cons
case OUI_CISCO: case OUI_CISCO:
switch (et) { switch (et) {
@ -411,7 +411,7 @@
case PID_CISCO_CDP: case PID_CISCO_CDP:
cdp_print(ndo, p, length); cdp_print(ndo, p, length);
return (1); return (1);
@@ -496,6 +502,7 @@ snap_print(netdissect_options *ndo, cons @@ -494,6 +500,7 @@ snap_print(netdissect_options *ndo, cons
case PID_CISCO_VTP: case PID_CISCO_VTP:
vtp_print(ndo, p, length); vtp_print(ndo, p, length);
return (1); return (1);
@ -419,7 +419,7 @@
case PID_CISCO_PVST: case PID_CISCO_PVST:
case PID_CISCO_VLANBRIDGE: case PID_CISCO_VLANBRIDGE:
stp_print(ndo, p, length); stp_print(ndo, p, length);
@@ -508,6 +515,7 @@ snap_print(netdissect_options *ndo, cons @@ -506,6 +513,7 @@ snap_print(netdissect_options *ndo, cons
case OUI_RFC2684: case OUI_RFC2684:
switch (et) { switch (et) {
@ -427,7 +427,7 @@
case PID_RFC2684_ETH_FCS: case PID_RFC2684_ETH_FCS:
case PID_RFC2684_ETH_NOFCS: case PID_RFC2684_ETH_NOFCS:
/* /*
@@ -569,6 +577,7 @@ snap_print(netdissect_options *ndo, cons @@ -567,6 +575,7 @@ snap_print(netdissect_options *ndo, cons
*/ */
fddi_print(ndo, p, length, caplen); fddi_print(ndo, p, length, caplen);
return (1); return (1);
@ -437,7 +437,7 @@
stp_print(ndo, p, length); stp_print(ndo, p, length);
--- a/print-null.c --- a/print-null.c
+++ b/print-null.c +++ b/print-null.c
@@ -116,6 +116,7 @@ null_if_print(netdissect_options *ndo, c @@ -114,6 +114,7 @@ null_if_print(netdissect_options *ndo, c
ip6_print(ndo, p, length); ip6_print(ndo, p, length);
break; break;
@ -445,7 +445,7 @@
case BSD_AFNUM_ISO: case BSD_AFNUM_ISO:
isoclns_print(ndo, p, length); isoclns_print(ndo, p, length);
break; break;
@@ -127,6 +128,7 @@ null_if_print(netdissect_options *ndo, c @@ -125,6 +126,7 @@ null_if_print(netdissect_options *ndo, c
case BSD_AFNUM_IPX: case BSD_AFNUM_IPX:
ipx_print(ndo, p, length); ipx_print(ndo, p, length);
break; break;
@ -455,7 +455,7 @@
/* unknown AF_ value */ /* unknown AF_ value */
--- a/print-ppp.c --- a/print-ppp.c
+++ b/print-ppp.c +++ b/print-ppp.c
@@ -1355,6 +1355,7 @@ trunc: @@ -1354,6 +1354,7 @@ trunc:
* The length argument is the on-the-wire length, not the captured * The length argument is the on-the-wire length, not the captured
* length; we can only un-escape the captured part. * length; we can only un-escape the captured part.
*/ */
@ -464,7 +464,7 @@
ppp_hdlc(netdissect_options *ndo, ppp_hdlc(netdissect_options *ndo,
const u_char *p, u_int length) const u_char *p, u_int length)
@@ -1451,17 +1452,19 @@ trunc: @@ -1451,17 +1452,19 @@ trunc:
ndo->ndo_snapend = se; nd_pop_packet_info(ndo);
nd_print_trunc(ndo); nd_print_trunc(ndo);
} }
- -
@ -515,7 +515,7 @@
+#endif +#endif
--- a/print-sll.c --- a/print-sll.c
+++ b/print-sll.c +++ b/print-sll.c
@@ -465,12 +465,14 @@ recurse: @@ -463,12 +463,14 @@ recurse:
*/ */
switch (ether_type) { switch (ether_type) {
@ -532,7 +532,7 @@
/* /*
--- a/print-tcp.c --- a/print-tcp.c
+++ b/print-tcp.c +++ b/print-tcp.c
@@ -614,6 +614,7 @@ tcp_print(netdissect_options *ndo, @@ -612,6 +612,7 @@ tcp_print(netdissect_options *ndo,
ND_PRINT(" %u", utoval); ND_PRINT(" %u", utoval);
break; break;
@ -540,7 +540,7 @@
case TCPOPT_MPTCP: case TCPOPT_MPTCP:
{ {
const u_char *snapend_save; const u_char *snapend_save;
@@ -637,7 +638,7 @@ tcp_print(netdissect_options *ndo, @@ -635,7 +636,7 @@ tcp_print(netdissect_options *ndo,
goto bad; goto bad;
break; break;
} }
@ -549,7 +549,7 @@
case TCPOPT_FASTOPEN: case TCPOPT_FASTOPEN:
datalen = len - 2; datalen = len - 2;
LENCHECK(datalen); LENCHECK(datalen);
@@ -722,6 +723,7 @@ tcp_print(netdissect_options *ndo, @@ -720,6 +721,7 @@ tcp_print(netdissect_options *ndo,
return; return;
} }
@ -557,65 +557,64 @@
if (ndo->ndo_packettype) { if (ndo->ndo_packettype) {
switch (ndo->ndo_packettype) { switch (ndo->ndo_packettype) {
case PT_ZMTP1: case PT_ZMTP1:
@@ -737,6 +739,7 @@ tcp_print(netdissect_options *ndo, @@ -735,12 +737,15 @@ tcp_print(netdissect_options *ndo,
} }
return; return;
} }
+#endif +#endif
if (IS_SRC_OR_DST_PORT(TELNET_PORT)) { if (IS_SRC_OR_DST_PORT(FTP_PORT)) {
telnet_print(ndo, bp, length);
@@ -746,24 +749,31 @@ tcp_print(netdissect_options *ndo,
} else if (IS_SRC_OR_DST_PORT(WHOIS_PORT)) {
ND_PRINT(": ");
whois_print(ndo, bp, length);
- } else if (IS_SRC_OR_DST_PORT(BGP_PORT))
+ }
+#ifndef TCPDUMP_MINI
+ else if (IS_SRC_OR_DST_PORT(BGP_PORT))
bgp_print(ndo, bp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(PPTP_PORT))
pptp_print(ndo, bp);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(REDIS_PORT))
resp_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(SSH_PORT))
ssh_print(ndo, bp, length);
+#endif
#ifdef ENABLE_SMB
else if (IS_SRC_OR_DST_PORT(NETBIOS_SSN_PORT))
nbt_tcp_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(SMB_PORT))
smb_tcp_print(ndo, bp, length);
#endif
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(BEEP_PORT))
beep_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(OPENFLOW_PORT_OLD) || IS_SRC_OR_DST_PORT(OPENFLOW_PORT_IANA))
openflow_print(ndo, bp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(FTP_PORT)) {
ND_PRINT(": "); ND_PRINT(": ");
ftp_print(ndo, bp, length); ftp_print(ndo, bp, length);
@@ -776,12 +786,14 @@ tcp_print(netdissect_options *ndo, +#ifndef TCPDUMP_MINI
} else if (IS_SRC_OR_DST_PORT(NAMESERVER_PORT)) { } else if (IS_SRC_OR_DST_PORT(SSH_PORT)) {
/* over_tcp: TRUE, is_mdns: FALSE */ ssh_print(ndo, bp, length);
domain_print(ndo, bp, length, TRUE, FALSE); +#endif
} else if (IS_SRC_OR_DST_PORT(TELNET_PORT)) {
telnet_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(SMTP_PORT)) {
@@ -759,10 +764,12 @@ tcp_print(netdissect_options *ndo,
} else if (IS_SRC_OR_DST_PORT(NETBIOS_SSN_PORT)) {
nbt_tcp_print(ndo, bp, length);
#endif
+#ifndef TCPDUMP_MINI
} else if (IS_SRC_OR_DST_PORT(BGP_PORT)) {
- bgp_print(ndo, bp, length);
+ bgp_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(RPKI_RTR_PORT)) {
rpki_rtr_print(ndo, bp, length);
+#endif
#ifdef ENABLE_SMB
} else if (IS_SRC_OR_DST_PORT(SMB_PORT)) {
smb_tcp_print(ndo, bp, length);
@@ -770,18 +777,22 @@ tcp_print(netdissect_options *ndo,
} else if (IS_SRC_OR_DST_PORT(RTSP_PORT)) {
ND_PRINT(": ");
rtsp_print(ndo, bp, length);
+#ifndef TCPDUMP_MINI +#ifndef TCPDUMP_MINI
} else if (IS_SRC_OR_DST_PORT(MSDP_PORT)) { } else if (IS_SRC_OR_DST_PORT(MSDP_PORT)) {
msdp_print(ndo, bp, length); msdp_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(RPKI_RTR_PORT)) {
rpki_rtr_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(LDP_PORT)) { } else if (IS_SRC_OR_DST_PORT(LDP_PORT)) {
ldp_print(ndo, bp, length); ldp_print(ndo, bp, length);
- } else if (IS_SRC_OR_DST_PORT(PPTP_PORT))
+#endif +#endif
} else if ((IS_SRC_OR_DST_PORT(NFS_PORT)) && + } else if (IS_SRC_OR_DST_PORT(PPTP_PORT)) {
length >= 4 && ND_TTEST_4(bp)) { pptp_print(ndo, bp);
/* - else if (IS_SRC_OR_DST_PORT(REDIS_PORT))
+#ifndef TCPDUMP_MINI
+ } else if (IS_SRC_OR_DST_PORT(REDIS_PORT))
resp_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(BEEP_PORT))
beep_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(OPENFLOW_PORT_OLD) || IS_SRC_OR_DST_PORT(OPENFLOW_PORT_IANA)) {
openflow_print(ndo, bp, length);
+#endif
} else if (IS_SRC_OR_DST_PORT(HTTP_PORT_ALT)) {
ND_PRINT(": ");
http_print(ndo, bp, length);
--- a/print-udp.c --- a/print-udp.c
+++ b/print-udp.c +++ b/print-udp.c
@@ -435,10 +435,12 @@ udp_print(netdissect_options *ndo, const @@ -433,10 +433,12 @@ udp_print(netdissect_options *ndo, const
vat_print(ndo, cp, length); vat_print(ndo, cp, length);
break; break;
@ -628,7 +627,7 @@
case PT_RPC: case PT_RPC:
rp = (const struct sunrpc_msg *)cp; rp = (const struct sunrpc_msg *)cp;
@@ -467,10 +469,12 @@ udp_print(netdissect_options *ndo, const @@ -465,10 +467,12 @@ udp_print(netdissect_options *ndo, const
snmp_print(ndo, cp, length); snmp_print(ndo, cp, length);
break; break;
@ -641,7 +640,7 @@
case PT_TFTP: case PT_TFTP:
udpipaddr_print(ndo, ip, sport, dport); udpipaddr_print(ndo, ip, sport, dport);
@@ -488,6 +492,7 @@ udp_print(netdissect_options *ndo, const @@ -485,6 +489,7 @@ udp_print(netdissect_options *ndo, const
radius_print(ndo, cp, length); radius_print(ndo, cp, length);
break; break;
@ -649,7 +648,7 @@
case PT_VXLAN: case PT_VXLAN:
udpipaddr_print(ndo, ip, sport, dport); udpipaddr_print(ndo, ip, sport, dport);
vxlan_print(ndo, cp, length); vxlan_print(ndo, cp, length);
@@ -510,6 +515,7 @@ udp_print(netdissect_options *ndo, const @@ -507,6 +512,7 @@ udp_print(netdissect_options *ndo, const
udpipaddr_print(ndo, ip, sport, dport); udpipaddr_print(ndo, ip, sport, dport);
someip_print(ndo, cp, length); someip_print(ndo, cp, length);
break; break;
@ -657,115 +656,116 @@
case PT_DOMAIN: case PT_DOMAIN:
udpipaddr_print(ndo, ip, sport, dport); udpipaddr_print(ndo, ip, sport, dport);
/* over_tcp: FALSE, is_mdns: FALSE */ /* over_tcp: FALSE, is_mdns: FALSE */
@@ -596,29 +602,37 @@ udp_print(netdissect_options *ndo, const @@ -594,8 +600,12 @@ udp_print(netdissect_options *ndo, const
else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT)) bootp_print(ndo, cp, length);
/* over_tcp: FALSE, is_mdns: TRUE */
domain_print(ndo, cp, length, FALSE, TRUE);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
timed_print(ndo, (const u_char *)cp);
+#endif
else if (IS_SRC_OR_DST_PORT(TFTP_PORT)) else if (IS_SRC_OR_DST_PORT(TFTP_PORT))
tftp_print(ndo, cp, length); tftp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(BOOTPC_PORT) || IS_SRC_OR_DST_PORT(BOOTPS_PORT)) +#ifndef TCPDUMP_MINI
bootp_print(ndo, cp, length); +#ifdef ENABLE_SMB
else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT))
krb_print(ndo, (const u_char *)cp);
+#endif
+#endif
else if (IS_SRC_OR_DST_PORT(NTP_PORT))
ntp_print(ndo, cp, length);
#ifdef ENABLE_SMB
@@ -607,6 +617,7 @@ udp_print(netdissect_options *ndo, const
else if (IS_SRC_OR_DST_PORT(SNMP_PORT) ||
IS_SRC_OR_DST_PORT(SNMPTRAP_PORT))
snmp_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(PTP_EVENT_PORT) ||
IS_SRC_OR_DST_PORT(PTP_GENERAL_PORT))
ptp_print(ndo, cp, length);
@@ -614,38 +625,50 @@ udp_print(netdissect_options *ndo, const
cisco_autorp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
isakmp_print(ndo, cp, length, bp2);
+#endif
else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
syslog_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI +#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(RIP_PORT)) else if (IS_SRC_OR_DST_PORT(RIP_PORT))
rip_print(ndo, cp, length); rip_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
ripng_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
timed_print(ndo, (const u_char *)cp);
+#endif +#endif
else if (IS_SRC_OR_DST_PORT(AODV_PORT)) else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) ||
aodv_print(ndo, cp, length, IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
ip6 != NULL); dhcp6_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI +#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT)) else if (IS_SRC_OR_DST_PORT(LDP_PORT))
isakmp_print(ndo, cp, length, bp2); ldp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(AODV_PORT))
aodv_print(ndo, cp, length, IP_V(ip) == 6);
+#endif
else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
olsr_print(ndo, cp, length, IP_V(ip) == 6);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(LMP_PORT))
lmp_print(ndo, cp, length);
+#ifdef ENABLE_SMB
else if (IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
krb_print(ndo, (const u_char *)cp);
+#endif
else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
lwres_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT))
/* over_tcp: FALSE, is_mdns: TRUE */
domain_print(ndo, cp, length, FALSE, TRUE);
+#ifdef ENABLE_SMB
else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_NATT)) else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_NATT))
isakmp_rfc3948_print(ndo, cp, length, bp2, IP_V(ip), fragmented, ttl_hl); isakmp_rfc3948_print(ndo, cp, length, bp2, IP_V(ip), fragmented, ttl_hl);
else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER1) || IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER2)) else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER1) || IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER2))
isakmp_print(ndo, cp, length, bp2); isakmp_print(ndo, cp, length, bp2);
+#endif +#endif
else if (IS_SRC_OR_DST_PORT(SNMP_PORT) || IS_SRC_OR_DST_PORT(SNMPTRAP_PORT))
snmp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(NTP_PORT))
ntp_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT) || IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
krb_print(ndo, (const u_char *)cp);
+#endif +#endif
else if (IS_SRC_OR_DST_PORT(L2TP_PORT)) else if (IS_SRC_OR_DST_PORT(L2TP_PORT))
l2tp_print(ndo, cp, length); l2tp_print(ndo, cp, length);
#ifdef ENABLE_SMB +#ifndef TCPDUMP_MINI
@@ -629,6 +643,7 @@ udp_print(netdissect_options *ndo, const
#endif
else if (dport == VAT_PORT) else if (dport == VAT_PORT)
vat_print(ndo, cp, length); vat_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(ZEPHYR_SRV_PORT) || IS_SRC_OR_DST_PORT(ZEPHYR_CLT_PORT)) else if (IS_SRC_OR_DST_PORT(ZEPHYR_SRV_PORT) || IS_SRC_OR_DST_PORT(ZEPHYR_CLT_PORT))
zephyr_print(ndo, cp, length); @@ -669,6 +692,7 @@ udp_print(netdissect_options *ndo, const
/* */
@@ -641,8 +656,11 @@ udp_print(netdissect_options *ndo, const else if (dport == WB_PORT)
(const u_char *) ip);
else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
ripng_print(ndo, cp, length);
+#endif
+
else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) || IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
dhcp6_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(AHCP_PORT))
ahcp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(BABEL_PORT) || IS_SRC_OR_DST_PORT(BABEL_PORT_OLD))
@@ -656,6 +674,7 @@ udp_print(netdissect_options *ndo, const
wb_print(ndo, cp, length); wb_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(CISCO_AUTORP_PORT))
cisco_autorp_print(ndo, cp, length);
+#endif +#endif
else if (IS_SRC_OR_DST_PORT(RADIUS_PORT) || else if (IS_SRC_OR_DST_PORT(RADIUS_PORT) ||
IS_SRC_OR_DST_PORT(RADIUS_NEW_PORT) || IS_SRC_OR_DST_PORT(RADIUS_NEW_PORT) ||
IS_SRC_OR_DST_PORT(RADIUS_ACCOUNTING_PORT) || IS_SRC_OR_DST_PORT(RADIUS_ACCOUNTING_PORT) ||
@@ -663,15 +682,18 @@ udp_print(netdissect_options *ndo, const @@ -676,6 +700,7 @@ udp_print(netdissect_options *ndo, const
IS_SRC_OR_DST_PORT(RADIUS_CISCO_COA_PORT) || IS_SRC_OR_DST_PORT(RADIUS_CISCO_COA_PORT) ||
IS_SRC_OR_DST_PORT(RADIUS_COA_PORT) ) IS_SRC_OR_DST_PORT(RADIUS_COA_PORT) )
radius_print(ndo, cp, length); radius_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI +#ifndef TCPDUMP_MINI
else if (dport == HSRP_PORT) else if (dport == HSRP_PORT)
hsrp_print(ndo, cp, length); hsrp_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
lwres_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(LDP_PORT))
ldp_print(ndo, cp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
olsr_print(ndo, cp, length,
(IP_V(ip) == 6) ? 1 : 0);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(MPLS_LSP_PING_PORT)) else if (IS_SRC_OR_DST_PORT(MPLS_LSP_PING_PORT))
lspping_print(ndo, cp, length); @@ -695,8 +720,10 @@ udp_print(netdissect_options *ndo, const
else if (sport == BCM_LI_PORT)
@@ -693,10 +715,12 @@ udp_print(netdissect_options *ndo, const
lwapp_control_print(ndo, cp, length, 0); lwapp_control_print(ndo, cp, length, 0);
else if (IS_SRC_OR_DST_PORT(LWAPP_DATA_PORT)) else if (IS_SRC_OR_DST_PORT(LWAPP_DATA_PORT))
lwapp_data_print(ndo, cp, length); lwapp_data_print(ndo, cp, length);
+#endif +#endif
else if (IS_SRC_OR_DST_PORT(SIP_PORT)) else if (IS_SRC_OR_DST_PORT(SIP_PORT))
sip_print(ndo, cp, length); sip_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
syslog_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI +#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(OTV_PORT)) else if (IS_SRC_OR_DST_PORT(OTV_PORT))
otv_print(ndo, cp, length); otv_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(VXLAN_PORT)) else if (IS_SRC_OR_DST_PORT(VXLAN_PORT))
@@ -722,6 +746,7 @@ udp_print(netdissect_options *ndo, const @@ -721,6 +748,7 @@ udp_print(netdissect_options *ndo, const
ptp_print(ndo, cp, length);
} else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
someip_print(ndo, cp, length); someip_print(ndo, cp, length);
else if (sport == BCM_LI_PORT)
bcm_li_print(ndo, cp, length);
+#endif +#endif
else { else {
if (ulen > length && !fragmented) if (ulen > length && !fragmented)
ND_PRINT("UDP, bad length %u > %u", ND_PRINT("UDP, bad length %u > %u",
--- a/print.c --- a/print.c
+++ b/print.c +++ b/print.c
@@ -48,6 +48,7 @@ struct printer { @@ -46,6 +46,7 @@ struct printer {
}; };
static const struct printer printers[] = { static const struct printer printers[] = {
@ -773,7 +773,7 @@
#ifdef DLT_APPLE_IP_OVER_IEEE1394 #ifdef DLT_APPLE_IP_OVER_IEEE1394
{ ap1394_if_print, DLT_APPLE_IP_OVER_IEEE1394 }, { ap1394_if_print, DLT_APPLE_IP_OVER_IEEE1394 },
#endif #endif
@@ -86,7 +87,9 @@ static const struct printer printers[] = @@ -84,7 +85,9 @@ static const struct printer printers[] =
#ifdef DLT_ENC #ifdef DLT_ENC
{ enc_if_print, DLT_ENC }, { enc_if_print, DLT_ENC },
#endif #endif
@ -783,7 +783,7 @@
{ fddi_if_print, DLT_FDDI }, { fddi_if_print, DLT_FDDI },
#ifdef DLT_FR #ifdef DLT_FR
{ fr_if_print, DLT_FR }, { fr_if_print, DLT_FR },
@@ -94,6 +97,7 @@ static const struct printer printers[] = @@ -92,6 +95,7 @@ static const struct printer printers[] =
#ifdef DLT_FRELAY #ifdef DLT_FRELAY
{ fr_if_print, DLT_FRELAY }, { fr_if_print, DLT_FRELAY },
#endif #endif
@ -791,7 +791,7 @@
#ifdef DLT_IEEE802_11 #ifdef DLT_IEEE802_11
{ ieee802_11_if_print, DLT_IEEE802_11}, { ieee802_11_if_print, DLT_IEEE802_11},
#endif #endif
@@ -103,6 +107,7 @@ static const struct printer printers[] = @@ -101,6 +105,7 @@ static const struct printer printers[] =
#ifdef DLT_IEEE802_11_RADIO #ifdef DLT_IEEE802_11_RADIO
{ ieee802_11_radio_if_print, DLT_IEEE802_11_RADIO }, { ieee802_11_radio_if_print, DLT_IEEE802_11_RADIO },
#endif #endif
@ -799,7 +799,7 @@
#ifdef DLT_IEEE802_15_4 #ifdef DLT_IEEE802_15_4
{ ieee802_15_4_if_print, DLT_IEEE802_15_4 }, { ieee802_15_4_if_print, DLT_IEEE802_15_4 },
#endif #endif
@@ -115,9 +120,11 @@ static const struct printer printers[] = @@ -113,9 +118,11 @@ static const struct printer printers[] =
#ifdef DLT_IP_OVER_FC #ifdef DLT_IP_OVER_FC
{ ipfc_if_print, DLT_IP_OVER_FC }, { ipfc_if_print, DLT_IP_OVER_FC },
#endif #endif
@ -811,7 +811,7 @@
#ifdef DLT_IPOIB #ifdef DLT_IPOIB
{ ipoib_if_print, DLT_IPOIB }, { ipoib_if_print, DLT_IPOIB },
#endif #endif
@@ -172,19 +179,23 @@ static const struct printer printers[] = @@ -170,19 +177,23 @@ static const struct printer printers[] =
#ifdef DLT_MFR #ifdef DLT_MFR
{ mfr_if_print, DLT_MFR }, { mfr_if_print, DLT_MFR },
#endif #endif
@ -835,7 +835,7 @@
#ifdef DLT_PFLOG #ifdef DLT_PFLOG
{ pflog_if_print, DLT_PFLOG }, { pflog_if_print, DLT_PFLOG },
#endif #endif
@@ -200,6 +211,7 @@ static const struct printer printers[] = @@ -198,6 +209,7 @@ static const struct printer printers[] =
#ifdef DLT_PPP_SERIAL #ifdef DLT_PPP_SERIAL
{ ppp_hdlc_if_print, DLT_PPP_SERIAL }, { ppp_hdlc_if_print, DLT_PPP_SERIAL },
#endif #endif
@ -843,7 +843,7 @@
{ ppp_if_print, DLT_PPP }, { ppp_if_print, DLT_PPP },
#ifdef DLT_PPP_PPPD #ifdef DLT_PPP_PPPD
{ ppp_if_print, DLT_PPP_PPPD }, { ppp_if_print, DLT_PPP_PPPD },
@@ -211,6 +223,7 @@ static const struct printer printers[] = @@ -209,6 +221,7 @@ static const struct printer printers[] =
{ prism_if_print, DLT_PRISM_HEADER }, { prism_if_print, DLT_PRISM_HEADER },
#endif #endif
{ raw_if_print, DLT_RAW }, { raw_if_print, DLT_RAW },
@ -851,7 +851,7 @@
#ifdef DLT_IPV4 #ifdef DLT_IPV4
{ raw_if_print, DLT_IPV4 }, { raw_if_print, DLT_IPV4 },
#endif #endif
@@ -243,6 +256,7 @@ static const struct printer printers[] = @@ -241,6 +254,7 @@ static const struct printer printers[] =
#ifdef DLT_VSOCK #ifdef DLT_VSOCK
{ vsock_if_print, DLT_VSOCK }, { vsock_if_print, DLT_VSOCK },
#endif #endif

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=umbim PKG_NAME:=umbim
PKG_RELEASE:=24 PKG_RELEASE:=25
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/umbim.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/umbim.git

View File

@ -23,6 +23,7 @@ proto_mbim_init_config() {
proto_config_add_string dhcp proto_config_add_string dhcp
proto_config_add_string dhcpv6 proto_config_add_string dhcpv6
proto_config_add_boolean sourcefilter proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
proto_config_add_string pdptype proto_config_add_string pdptype
proto_config_add_int mtu proto_config_add_int mtu
proto_config_add_defaults proto_config_add_defaults
@ -48,7 +49,7 @@ _proto_mbim_setup() {
local device apn pincode delay auth username password allow_roaming allow_partner local device apn pincode delay auth username password allow_roaming allow_partner
local dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS local dhcp dhcpv6 pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
json_get_vars device apn pincode delay auth username password allow_roaming allow_partner json_get_vars device apn pincode delay auth username password allow_roaming allow_partner
json_get_vars dhcp dhcpv6 sourcefilter pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS json_get_vars dhcp dhcpv6 sourcefilter delegate pdptype ip4table ip6table mtu $PROTO_DEFAULT_OPTIONS
[ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6 [ ! -e /proc/sys/net/ipv6 ] && ipv6=0 || json_get_var ipv6 ipv6
@ -264,6 +265,7 @@ _proto_mbim_setup() {
echo "mbim[$$]" "Starting DHCPv6 on $ifname" echo "mbim[$$]" "Starting DHCPv6 on $ifname"
json_add_string proto "dhcpv6" json_add_string proto "dhcpv6"
json_add_string extendprefix 1 json_add_string extendprefix 1
[ "$delegate" = "0" ] && json_add_boolean delegate "0"
[ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0" [ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
fi fi

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=uqmi PKG_NAME:=uqmi
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git

View File

@ -24,6 +24,7 @@ proto_qmi_init_config() {
proto_config_add_boolean dhcp proto_config_add_boolean dhcp
proto_config_add_boolean dhcpv6 proto_config_add_boolean dhcpv6
proto_config_add_boolean sourcefilter proto_config_add_boolean sourcefilter
proto_config_add_boolean delegate
proto_config_add_boolean autoconnect proto_config_add_boolean autoconnect
proto_config_add_int plmn proto_config_add_int plmn
proto_config_add_int timeout proto_config_add_int timeout
@ -42,7 +43,7 @@ proto_qmi_setup() {
local profile_pdptype local profile_pdptype
json_get_vars device apn v6apn auth username password pincode delay modes json_get_vars device apn v6apn auth username password pincode delay modes
json_get_vars pdptype profile v6profile dhcp dhcpv6 sourcefilter autoconnect plmn ip4table json_get_vars pdptype profile v6profile dhcp dhcpv6 sourcefilter delegate autoconnect plmn ip4table
json_get_vars ip6table timeout mtu $PROTO_DEFAULT_OPTIONS json_get_vars ip6table timeout mtu $PROTO_DEFAULT_OPTIONS
[ "$timeout" = "" ] && timeout="10" [ "$timeout" = "" ] && timeout="10"
@ -442,6 +443,7 @@ proto_qmi_setup() {
proto_add_dynamic_defaults proto_add_dynamic_defaults
# RFC 7278: Extend an IPv6 /64 Prefix to LAN # RFC 7278: Extend an IPv6 /64 Prefix to LAN
json_add_string extendprefix 1 json_add_string extendprefix 1
[ "$delegate" = "0" ] && json_add_boolean delegate "0"
[ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0" [ "$sourcefilter" = "0" ] && json_add_boolean sourcefilter "0"
[ -n "$zone" ] && json_add_string zone "$zone" [ -n "$zone" ] && json_add_string zone "$zone"
json_close_object json_close_object

View File

@ -1,6 +1,7 @@
CONFIG_AG71XX=y # CONFIG_AG71XX is not set
# CONFIG_AG71XX_DEBUG is not set CONFIG_AG71XX_LEGACY=y
CONFIG_AG71XX_DEBUG_FS=y # CONFIG_AG71XX_LEGACY_DEBUG is not set
CONFIG_AG71XX_LEGACY_DEBUG_FS=y
CONFIG_AR8216_PHY=y CONFIG_AR8216_PHY=y
CONFIG_AR8216_PHY_LEDS=y CONFIG_AR8216_PHY_LEDS=y
CONFIG_ARCH_32BIT_OFF_T=y CONFIG_ARCH_32BIT_OFF_T=y
@ -51,6 +52,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ETHERNET_PACKET_MANGLE=y CONFIG_ETHERNET_PACKET_MANGLE=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_FIXED_PHY=y CONFIG_FIXED_PHY=y
CONFIG_FORCE_NR_CPUS=y
CONFIG_FS_IOMAP=y CONFIG_FS_IOMAP=y
CONFIG_FUNCTION_ALIGNMENT=0 CONFIG_FUNCTION_ALIGNMENT=0
CONFIG_FWNODE_MDIO=y CONFIG_FWNODE_MDIO=y

View File

@ -63,8 +63,8 @@
i2c { i2c {
compatible = "i2c-gpio"; compatible = "i2c-gpio";
sda-gpios = <&gpio 17 GPIO_ACTIVE_LOW>; sda-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
scl-gpios = <&gpio 16 GPIO_ACTIVE_LOW>; scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
}; };
}; };

View File

@ -362,6 +362,8 @@
resets = <&rst 9>, <&rst 22>; resets = <&rst 9>, <&rst 22>;
reset-names = "mac", "mdio"; reset-names = "mac", "mdio";
clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_REF>;
clock-names = "eth", "mdio";
}; };
&mdio1 { &mdio1 {
@ -379,4 +381,6 @@
resets = <&rst 13>, <&rst 23>; resets = <&rst 13>, <&rst 23>;
reset-names = "mac", "mdio"; reset-names = "mac", "mdio";
clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_REF>;
clock-names = "eth", "mdio";
}; };

View File

@ -284,13 +284,8 @@ static int rb91x_nand_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, drvdata); platform_set_drvdata(pdev, drvdata);
gpios = gpiod_get_array(dev, NULL, GPIOD_OUT_LOW); gpios = gpiod_get_array(dev, NULL, GPIOD_OUT_LOW);
if (IS_ERR(gpios)) { if (IS_ERR(gpios))
if (PTR_ERR(gpios) != -EPROBE_DEFER) { return dev_err_probe(dev, PTR_ERR(gpios), "failed to get gpios");
dev_err(dev, "failed to get gpios: %ld\n",
PTR_ERR(gpios));
}
return PTR_ERR(gpios);
}
if (gpios->ndescs != RB91X_NAND_GPIOS) { if (gpios->ndescs != RB91X_NAND_GPIOS) {
dev_err(dev, "expected %d gpios\n", RB91X_NAND_GPIOS); dev_err(dev, "expected %d gpios\n", RB91X_NAND_GPIOS);
@ -333,16 +328,11 @@ static int rb91x_nand_probe(struct platform_device *pdev)
r = mtd_device_register(mtd, NULL, 0); r = mtd_device_register(mtd, NULL, 0);
if (r) { if (r) {
dev_err(dev, "mtd_device_register() failed: %d\n", rb91x_nand_release(drvdata);
r); return dev_err_probe(dev, r, "mtd_device_register() failed");
goto err_release_nand;
} }
return 0; return 0;
err_release_nand:
rb91x_nand_release(drvdata);
return r;
} }
static int rb91x_nand_remove(struct platform_device *pdev) static int rb91x_nand_remove(struct platform_device *pdev)

View File

@ -1,4 +1,4 @@
config AG71XX config AG71XX_LEGACY
tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support" tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support"
depends on ATH79 depends on ATH79
select PHYLIB select PHYLIB
@ -6,14 +6,14 @@ config AG71XX
If you wish to compile a kernel for AR7XXX/91XXX and enable If you wish to compile a kernel for AR7XXX/91XXX and enable
ethernet support, then you should always answer Y to this. ethernet support, then you should always answer Y to this.
if AG71XX if AG71XX_LEGACY
config AG71XX_DEBUG config AG71XX_LEGACY_DEBUG
bool "Atheros AR71xx built-in ethernet driver debugging" bool "Atheros AR71xx built-in ethernet driver debugging"
help help
Atheros AR71xx built-in ethernet driver debugging messages. Atheros AR71xx built-in ethernet driver debugging messages.
config AG71XX_DEBUG_FS config AG71XX_LEGACY_DEBUG_FS
bool "Atheros AR71xx built-in ethernet driver debugfs support" bool "Atheros AR71xx built-in ethernet driver debugfs support"
depends on DEBUG_FS depends on DEBUG_FS
help help

View File

@ -2,12 +2,12 @@
# Makefile for the Atheros AR71xx built-in ethernet macs # Makefile for the Atheros AR71xx built-in ethernet macs
# #
ag71xx-y += ag71xx_main.o ag71xx_legacy-y += ag71xx_main.o
ag71xx-y += ag71xx_gmac.o ag71xx_legacy-y += ag71xx_gmac.o
ag71xx-y += ag71xx_ethtool.o ag71xx_legacy-y += ag71xx_ethtool.o
ag71xx-y += ag71xx_phy.o ag71xx_legacy-y += ag71xx_phy.o
ag71xx-$(CONFIG_AG71XX_DEBUG_FS) += ag71xx_debugfs.o ag71xx_legacy-$(CONFIG_AG71XX_LEGACY_DEBUG_FS) += ag71xx_legacy_debugfs.o
obj-$(CONFIG_AG71XX) += ag71xx_mdio.o obj-$(CONFIG_AG71XX_LEGACY) += ag71xx_legacy_mdio.o
obj-$(CONFIG_AG71XX) += ag71xx.o obj-$(CONFIG_AG71XX_LEGACY) += ag71xx_legacy.o

View File

@ -40,7 +40,7 @@
#include <asm/mach-ath79/ar71xx_regs.h> #include <asm/mach-ath79/ar71xx_regs.h>
#include <asm/mach-ath79/ath79.h> #include <asm/mach-ath79/ath79.h>
#define AG71XX_DRV_NAME "ag71xx" #define AG71XX_DRV_NAME "ag71xx-legacy"
/* /*
* For our NAPI weight bigger does *NOT* mean better - it means more * For our NAPI weight bigger does *NOT* mean better - it means more
@ -68,7 +68,7 @@
#define AG71XX_TX_RING_SIZE_MAX 256 #define AG71XX_TX_RING_SIZE_MAX 256
#define AG71XX_RX_RING_SIZE_MAX 256 #define AG71XX_RX_RING_SIZE_MAX 256
#ifdef CONFIG_AG71XX_DEBUG #ifdef CONFIG_AG71XX_LEGACY_DEBUG
#define DBG(fmt, args...) pr_debug(fmt, ## args) #define DBG(fmt, args...) pr_debug(fmt, ## args)
#else #else
#define DBG(fmt, args...) do {} while (0) #define DBG(fmt, args...) do {} while (0)
@ -195,7 +195,7 @@ struct ag71xx {
u32 pllreg[3]; u32 pllreg[3];
struct regmap *pllregmap; struct regmap *pllregmap;
#ifdef CONFIG_AG71XX_DEBUG_FS #ifdef CONFIG_AG71XX_LEGACY_DEBUG_FS
struct ag71xx_debug debug; struct ag71xx_debug debug;
#endif #endif
}; };
@ -425,7 +425,7 @@ static inline void ag71xx_int_disable(struct ag71xx *ag, u32 ints)
ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints); ag71xx_cb(ag, AG71XX_REG_INT_ENABLE, ints);
} }
#ifdef CONFIG_AG71XX_DEBUG_FS #ifdef CONFIG_AG71XX_LEGACY_DEBUG_FS
int ag71xx_debugfs_root_init(void); int ag71xx_debugfs_root_init(void);
void ag71xx_debugfs_root_exit(void); void ag71xx_debugfs_root_exit(void);
int ag71xx_debugfs_init(struct ag71xx *ag); int ag71xx_debugfs_init(struct ag71xx *ag);
@ -441,7 +441,7 @@ static inline void ag71xx_debugfs_update_int_stats(struct ag71xx *ag,
u32 status) {} u32 status) {}
static inline void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag, static inline void ag71xx_debugfs_update_napi_stats(struct ag71xx *ag,
int rx, int tx) {} int rx, int tx) {}
#endif /* CONFIG_AG71XX_DEBUG_FS */ #endif /* CONFIG_AG71XX_LEGACY_DEBUG_FS */
int ag71xx_ar7240_init(struct ag71xx *ag, struct device_node *np); int ag71xx_ar7240_init(struct ag71xx *ag, struct device_node *np);
void ag71xx_ar7240_cleanup(struct ag71xx *ag); void ag71xx_ar7240_cleanup(struct ag71xx *ag);

View File

@ -241,7 +241,7 @@ static struct platform_driver ag71xx_mdio_driver = {
.probe = ag71xx_mdio_probe, .probe = ag71xx_mdio_probe,
.remove = ag71xx_mdio_remove, .remove = ag71xx_mdio_remove,
.driver = { .driver = {
.name = "ag71xx-mdio", .name = "ag71xx-legacy-mdio",
.of_match_table = ag71xx_mdio_match, .of_match_table = ag71xx_mdio_match,
} }
}; };

View File

@ -20,8 +20,6 @@ CONFIG_MTD_SPI_NOR_USE_VARIABLE_ERASE=y
CONFIG_MTD_SPLIT_EVA_FW=y CONFIG_MTD_SPLIT_EVA_FW=y
CONFIG_NVMEM_SYSFS=y CONFIG_NVMEM_SYSFS=y
CONFIG_NVMEM_U_BOOT_ENV=y CONFIG_NVMEM_U_BOOT_ENV=y
CONFIG_PHY_AR7100_USB=y
CONFIG_PHY_AR7200_USB=y
CONFIG_REALTEK_PHY=y CONFIG_REALTEK_PHY=y
CONFIG_REGMAP_I2C=y CONFIG_REGMAP_I2C=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_FIXED_VOLTAGE=y

View File

@ -35,8 +35,6 @@ CONFIG_NET_DSA=y
CONFIG_NET_SWITCHDEV=y CONFIG_NET_SWITCHDEV=y
# CONFIG_NVMEM_LAYOUT_MIKROTIK is not set # CONFIG_NVMEM_LAYOUT_MIKROTIK is not set
CONFIG_PHYLINK=y CONFIG_PHYLINK=y
CONFIG_PHY_AR7100_USB=y
CONFIG_PHY_AR7200_USB=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_SGL_ALLOC=y CONFIG_SGL_ALLOC=y
CONFIG_SPI_RB4XX=y CONFIG_SPI_RB4XX=y

View File

@ -18,7 +18,6 @@ CONFIG_MTD_UBI_BEB_LIMIT=20
CONFIG_MTD_UBI_BLOCK=y CONFIG_MTD_UBI_BLOCK=y
CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_WL_THRESHOLD=4096
# CONFIG_PCI_AR71XX is not set # CONFIG_PCI_AR71XX is not set
CONFIG_PHY_AR7200_USB=y
CONFIG_POWER_RESET=y CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO_RESTART=y CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_SGL_ALLOC=y CONFIG_SGL_ALLOC=y

View File

@ -13,30 +13,22 @@ Submitted-by: John Crispin <john@phrozen.org>
--- a/drivers/net/ethernet/atheros/Kconfig --- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig +++ b/drivers/net/ethernet/atheros/Kconfig
@@ -17,14 +17,7 @@ config NET_VENDOR_ATHEROS @@ -26,6 +26,8 @@ config AG71XX
If you wish to compile a kernel for AR7XXX/91XXX and enable
ethernet support, then you should always answer Y to this.
if NET_VENDOR_ATHEROS
-config AG71XX
- tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support"
- depends on ATH79
- select PHYLINK
- imply NET_SELFTESTS
- help
- If you wish to compile a kernel for AR7XXX/91XXX and enable
- ethernet support, then you should always answer Y to this.
+source "drivers/net/ethernet/atheros/ag71xx/Kconfig" +source "drivers/net/ethernet/atheros/ag71xx/Kconfig"
+
config ATL2 config ATL2
tristate "Atheros L2 Fast Ethernet support" tristate "Atheros L2 Fast Ethernet support"
depends on PCI
--- a/drivers/net/ethernet/atheros/Makefile --- a/drivers/net/ethernet/atheros/Makefile
+++ b/drivers/net/ethernet/atheros/Makefile +++ b/drivers/net/ethernet/atheros/Makefile
@@ -3,7 +3,7 @@ @@ -4,6 +4,7 @@
# Makefile for the Atheros network device drivers.
# #
-obj-$(CONFIG_AG71XX) += ag71xx.o obj-$(CONFIG_AG71XX) += ag71xx.o
+obj-$(CONFIG_AG71XX) += ag71xx/ +obj-$(CONFIG_AG71XX_LEGACY) += ag71xx/
obj-$(CONFIG_ATL1) += atlx/ obj-$(CONFIG_ATL1) += atlx/
obj-$(CONFIG_ATL2) += atlx/ obj-$(CONFIG_ATL2) += atlx/
obj-$(CONFIG_ATL1E) += atl1e/ obj-$(CONFIG_ATL1E) += atl1e/

View File

@ -8,6 +8,4 @@ CONFIG_NET_SWITCHDEV=y
CONFIG_NVMEM_SYSFS=y CONFIG_NVMEM_SYSFS=y
CONFIG_NVMEM_U_BOOT_ENV=y CONFIG_NVMEM_U_BOOT_ENV=y
CONFIG_PHYLINK=y CONFIG_PHYLINK=y
CONFIG_PHY_AR7100_USB=y
CONFIG_PHY_AR7200_USB=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_FIXED_VOLTAGE=y

View File

@ -0,0 +1,75 @@
From 6a804fb72de56d6a99b799f565ae45f2cec7cd55 Mon Sep 17 00:00:00 2001
From: Sridharan S N <quic_sridsn@quicinc.com>
Date: Thu, 12 Oct 2023 12:11:34 +0530
Subject: mtd: spinand: winbond: add support for serial NAND flash
Add support for W25N01JW, W25N02JWZEIF, W25N512GW,
W25N02KWZEIR and W25N01GWZEIG.
W25N02KWZEIR has 8b/512b on-die ECC capability and other
four has 4b/512b on-die ECC capability.
Signed-off-by: Sridharan S N <quic_sridsn@quicinc.com>
Signed-off-by: Md Sadre Alam <quic_mdalam@quicinc.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20231012064134.4068621-1-quic_sridsn@quicinc.com
---
drivers/mtd/nand/spi/winbond.c | 45 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
(limited to 'drivers/mtd/nand/spi/winbond.c')
--- a/drivers/mtd/nand/spi/winbond.c
+++ b/drivers/mtd/nand/spi/winbond.c
@@ -169,6 +169,51 @@ static const struct spinand_info winbond
&update_cache_variants),
0,
SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N01JW",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbc, 0x21),
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
+ NAND_ECCREQ(4, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N02JWZEIF",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xbf, 0x22),
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 2, 1),
+ NAND_ECCREQ(4, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N512GW",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x20),
+ NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1),
+ NAND_ECCREQ(4, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N02KWZEIR",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x22),
+ NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
+ NAND_ECCREQ(8, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N01GWZEIG",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xba, 0x21),
+ NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
+ NAND_ECCREQ(4, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
};
static int winbond_spinand_init(struct spinand_device *spinand)

View File

@ -0,0 +1,53 @@
From e0ccf861b80698a5cc6f97c89bf8d5761f465fce Mon Sep 17 00:00:00 2001
From: Zhi-Jun You <hujy652@gmail.com>
Date: Sun, 7 Jan 2024 14:41:20 +0000
Subject: mtd: spinand: winbond: add support for W25N04KV
Add support for W25N04KV.
W25N04KV has 8-bit on-die ECC.
Signed-off-by: Zhi-Jun You <hujy652@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20240107144120.532-1-hujy652@gmail.com
---
drivers/mtd/nand/spi/winbond.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
(limited to 'drivers/mtd/nand/spi/winbond.c')
--- a/drivers/mtd/nand/spi/winbond.c
+++ b/drivers/mtd/nand/spi/winbond.c
@@ -15,6 +15,8 @@
#define WINBOND_CFG_BUF_READ BIT(3)
+#define W25N04KV_STATUS_ECC_5_8_BITFLIPS (3 << 4)
+
static SPINAND_OP_VARIANTS(read_cache_variants,
SPINAND_PAGE_READ_FROM_CACHE_QUADIO_OP(0, 2, NULL, 0),
SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
@@ -118,6 +120,7 @@ static int w25n02kv_ecc_get_status(struc
return -EBADMSG;
case STATUS_ECC_HAS_BITFLIPS:
+ case W25N04KV_STATUS_ECC_5_8_BITFLIPS:
/*
* Let's try to retrieve the real maximum number of bitflips
* in order to avoid forcing the wear-leveling layer to move
@@ -214,6 +217,15 @@ static const struct spinand_info winbond
&update_cache_variants),
0,
SPINAND_ECCINFO(&w25m02gv_ooblayout, w25n02kv_ecc_get_status)),
+ SPINAND_INFO("W25N04KV",
+ SPINAND_ID(SPINAND_READID_METHOD_OPCODE_DUMMY, 0xaa, 0x23),
+ NAND_MEMORG(1, 2048, 128, 64, 4096, 40, 2, 1, 1),
+ NAND_ECCREQ(8, 512),
+ SPINAND_INFO_OP_VARIANTS(&read_cache_variants,
+ &write_cache_variants,
+ &update_cache_variants),
+ 0,
+ SPINAND_ECCINFO(&w25n02kv_ooblayout, w25n02kv_ecc_get_status)),
};
static int winbond_spinand_init(struct spinand_device *spinand)

View File

@ -14,7 +14,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
--- a/drivers/mtd/nand/spi/winbond.c --- a/drivers/mtd/nand/spi/winbond.c
+++ b/drivers/mtd/nand/spi/winbond.c +++ b/drivers/mtd/nand/spi/winbond.c
@@ -74,6 +74,18 @@ static int w25m02gv_select_target(struct @@ -76,6 +76,18 @@ static int w25m02gv_select_target(struct
return spi_mem_exec_op(spinand->spimem, &op); return spi_mem_exec_op(spinand->spimem, &op);
} }
@ -33,7 +33,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
static int w25n02kv_ooblayout_ecc(struct mtd_info *mtd, int section, static int w25n02kv_ooblayout_ecc(struct mtd_info *mtd, int section,
struct mtd_oob_region *region) struct mtd_oob_region *region)
{ {
@@ -98,6 +110,11 @@ static int w25n02kv_ooblayout_free(struc @@ -100,6 +112,11 @@ static int w25n02kv_ooblayout_free(struc
return 0; return 0;
} }
@ -45,7 +45,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
static const struct mtd_ooblayout_ops w25n02kv_ooblayout = { static const struct mtd_ooblayout_ops w25n02kv_ooblayout = {
.ecc = w25n02kv_ooblayout_ecc, .ecc = w25n02kv_ooblayout_ecc,
.free = w25n02kv_ooblayout_free, .free = w25n02kv_ooblayout_free,
@@ -160,6 +177,15 @@ static const struct spinand_info winbond @@ -163,6 +180,15 @@ static const struct spinand_info winbond
&update_cache_variants), &update_cache_variants),
0, 0,
SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)), SPINAND_ECCINFO(&w25m02gv_ooblayout, NULL)),

View File

@ -0,0 +1,25 @@
From 440415703692af4548e836832ef0434e87fbc357 Mon Sep 17 00:00:00 2001
From: Oskari Lemmela <oskari@lemmela.net>
Date: Sat, 13 Jul 2024 18:56:59 +0300
Subject: [PATCH] net: ag71xx: fix qca9530 and qca9550 mdio probe
Newer QCA9530 and QCA9550 devices should use same div table as AR933X.
Fixes: d51b6ce441d3 ("net: ethernet: add ag71xx driver")
Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
---
drivers/net/ethernet/atheros/ag71xx.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/drivers/net/ethernet/atheros/ag71xx.c
+++ b/drivers/net/ethernet/atheros/ag71xx.c
@@ -638,7 +638,8 @@ static int ag71xx_mdio_get_divider(struc
if (!ref_clock)
return -EINVAL;
- if (ag71xx_is(ag, AR9330) || ag71xx_is(ag, AR9340)) {
+ if (ag71xx_is(ag, AR9330) || ag71xx_is(ag, AR9340) ||
+ ag71xx_is(ag, QCA9530) || ag71xx_is(ag, QCA9550)) {
table = ar933x_mdio_div_table;
ndivs = ARRAY_SIZE(ar933x_mdio_div_table);
} else if (ag71xx_is(ag, AR7240)) {

View File

@ -751,7 +751,11 @@ define Device/glinet_gl-x3000-xe3000-common
DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware mkf2fs \ DEVICE_PACKAGES := kmod-mt7915e kmod-mt7981-firmware mt7981-wo-firmware mkf2fs \
kmod-fs-f2fs kmod-hwmon-pwmfan kmod-usb3 kmod-usb-serial-option \ kmod-fs-f2fs kmod-hwmon-pwmfan kmod-usb3 kmod-usb-serial-option \
kmod-usb-storage kmod-usb-net-qmi-wwan uqmi automount kmod-usb-storage kmod-usb-net-qmi-wwan uqmi automount
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to 32M | append-rootfs
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
ARTIFACTS := preloader.bin bl31-uboot.fip
ARTIFACT/preloader.bin := mt7981-bl2 emmc-ddr4
endef endef
define Device/glinet_gl-x3000 define Device/glinet_gl-x3000
@ -759,6 +763,7 @@ define Device/glinet_gl-x3000
DEVICE_DTS := mt7981a-glinet-gl-x3000 DEVICE_DTS := mt7981a-glinet-gl-x3000
SUPPORTED_DEVICES := glinet,gl-x3000 SUPPORTED_DEVICES := glinet,gl-x3000
$(call Device/glinet_gl-x3000-xe3000-common) $(call Device/glinet_gl-x3000-xe3000-common)
ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot glinet_gl-x3000
endef endef
TARGET_DEVICES += glinet_gl-x3000 TARGET_DEVICES += glinet_gl-x3000
@ -767,6 +772,7 @@ define Device/glinet_gl-xe3000
DEVICE_DTS := mt7981a-glinet-gl-xe3000 DEVICE_DTS := mt7981a-glinet-gl-xe3000
SUPPORTED_DEVICES := glinet,gl-xe3000 SUPPORTED_DEVICES := glinet,gl-xe3000
$(call Device/glinet_gl-x3000-xe3000-common) $(call Device/glinet_gl-x3000-xe3000-common)
ARTIFACT/bl31-uboot.fip := mt7981-bl31-uboot glinet_gl-xe3000
endef endef
TARGET_DEVICES += glinet_gl-xe3000 TARGET_DEVICES += glinet_gl-xe3000

View File

@ -1,31 +1,129 @@
. /lib/functions.sh . /lib/functions.sh
fortinet_fwinfo_blocks() { fortinet_bswap32() {
local val="$(printf %08x $(($1)))"
# swap and print in hex
echo "0x${val:6:2}${val:4:2}${val:2:2}${val:0:2}"
}
fortinet_by2bl() {
local blks="$(($1 / 0x200))"
[ $(($1 % 0x200)) -gt 0 ] && blks=$((blks + 1))
printf "0x%08x" $blks
}
fortinet_bl2by() {
printf "0x%08x" $(($1 * 0x200))
}
fortinet_build_partmap() {
local new="$1" old="$2"
local len="${old%%@*}" ofs="${old##*@}"
case "$new" in
@*) ofs="$(fortinet_by2bl ${new##@})" ;; # "@<offset>"
*@*) len="$(fortinet_by2bl ${new%%@*})" # "<length>@<offset>"
ofs="$(fortinet_by2bl ${new##*@})" ;;
"") ;; # "" (empty)
*) len="$(fortinet_by2bl ${new%%@*})" ;; # "<length>"
esac
# print N blocks of length/offset in dec
echo "${len}@${ofs}"
}
# Update firmware information in "firmware-info" partition
#
# parameters:
# $1: image index (0/1)
# $2: new image name (up to 32 characters)
# $3: length and/or offset for kernel (bytes)
# $4: length and/or offset for rootfs (bytes)
#
# Note: $3 and $4 support multiple formats:
#
# - <length>@<offset>: set <length> and <rootfs>
# - <length> : set <length> and keep the current offset
# - @<offset> : set <offset> and keep the current length
# - "" (empty) : keep the current length and offset
fortinet_update_fwinfo() {
local fwinfo_mtd="$(find_mtd_part firmware-info)" local fwinfo_mtd="$(find_mtd_part firmware-info)"
local offset="$1" local index="$1"
local len="$2" local name="$2"
local blks local offset
local old_kr
local old new tmp part pos
local output
if [ -z "$fwinfo_mtd" ]; then if [ -z "$fwinfo_mtd" ]; then
echo "WARN: MTD device \"firmware-info\" not found" echo "ERROR: MTD device \"firmware-info\" not found"
return 1 return 1
fi fi
blks=$((len / 0x200)) # Image Name
[ $((len % 0x200)) -gt 0 ] && blks=$((blks + 1)) case "$index" in
blks=$(printf "%04x" $blks) 0) offset=0x10 ;;
printf "fwinfo: offset-> 0x%x, blocks-> 0x%s (len: 0x%08x)\n" \ 1) offset=0x30 ;;
$offset $blks $len *) echo "ERROR: invalid image index specified!"; return 1 ;;
esac
printf "\x${blks:2:2}\x${blks:0:2}" | \ printf "Image Index: %d\n" $index
dd bs=2 count=1 seek=$((offset / 2)) conv=notrunc of=${fwinfo_mtd}
old="$(dd bs=16 count=2 skip=$((offset / 16)) if=$fwinfo_mtd 2>/dev/null)"
printf "Image Name : \"%s\"\n" "$old"
if [ -n "$name" ]; then
echo -n "$name" | \
dd bs=32 count=1 oflag=seek_bytes seek=$((offset)) \
conv=sync,notrunc of=$fwinfo_mtd 2>/dev/null
printf " --> \"%s\"\n\n" "$name"
else
printf "\n"
fi
# length/offset values of kernel/rootfs
case "$index" in
0) offset=0x180 ;;
1) offset=0x190 ;;
esac
# <kernel offset:4><kernel length:4><rootfs offset:4><rootfs length:4>
old_kr="$(hexdump -n 16 -v -s $((offset)) -e '1/4 "%08x"' $fwinfo_mtd)"
pos=0
for part in kernel rootfs; do
old="0x${old_kr:$((8 + pos)):8}@0x${old_kr:$((0 + pos)):8}"
new="$(fortinet_build_partmap "$3" "$old")"
shift
printf " %s:\n" $part
printf " old: 0x%08x@0x%08x\n" \
$(fortinet_bl2by ${old%%@*}) $(fortinet_bl2by ${old##*@})
printf " new: 0x%08x@0x%08x\n\n" \
$(fortinet_bl2by ${new%%@*}) $(fortinet_bl2by ${new##*@})
tmp="$(fortinet_bswap32 ${new%%@*})@$(fortinet_bswap32 ${new##*@})"
new="$(echo $tmp | sed 's/0x\([0-9a-f]\{8\}\)@0x\([0-9a-f]\{8\}\)/\2\1/')"
output="${output}${new}"
pos=$((pos + 16))
done
data_2bin "$output" | \
dd bs=16 count=1 seek=$((offset / 16)) conv=notrunc \
of=$fwinfo_mtd 2>/dev/null
} }
fortinet_do_upgrade() { fortinet_do_upgrade() {
local board_dir="$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')" local board_dir="$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')"
local kern_mtd="$(find_mtd_part kernel)" local kern_mtd="$(find_mtd_part kernel)"
local root_mtd="$(find_mtd_part rootfs)" local root_mtd="$(find_mtd_part rootfs)"
local kern_len root_len local kern_len kern_ofs root_len root_ofs
local imgname
board_dir="${board_dir%/}" board_dir="${board_dir%/}"
@ -34,6 +132,14 @@ fortinet_do_upgrade() {
umount -a umount -a
reboot -f reboot -f
fi fi
kern_ofs=$(cat /sys/class/mtd/${kern_mtd//\/dev\/mtdblock/mtd}/offset)
root_ofs=$(cat /sys/class/mtd/${root_mtd//\/dev\/mtdblock/mtd}/offset)
if [ -z "$kern_ofs" ] || [ -z "$root_ofs" ]; then
echo "ERROR: failed to get offset of kernel or rootfs"
umount -a
reboot -f
fi
kern_len=$( (tar xOf "$1" "$board_dir/kernel" | wc -c) 2> /dev/null) kern_len=$( (tar xOf "$1" "$board_dir/kernel" | wc -c) 2> /dev/null)
root_len=$( (tar xOf "$1" "$board_dir/root" | wc -c) 2> /dev/null) root_len=$( (tar xOf "$1" "$board_dir/root" | wc -c) 2> /dev/null)
@ -44,8 +150,34 @@ fortinet_do_upgrade() {
reboot -f reboot -f
fi fi
fortinet_fwinfo_blocks "0x184" "$kern_len" # try to load and parse /tmp/sysupgrade.meta for image name
fortinet_fwinfo_blocks "0x18c" "$root_len" if [ -r "/tmp/sysupgrade.meta" ]; then
local key value
sed -e 's/, \{1,2\}\"/\n"/g' \
-e 's/{ \{1,2\}/\n/g' \
-e 's/ \{1,2\}}/\n/g' < /tmp/sysupgrade.meta \
> /tmp/sysupgrade.meta.tmp
while read key value; do
key="${key//\"/}"
value="${value//\"/}"
[ -z "$value" ] && continue
case "$key" in
dist:|\
version:|\
revision:) imgname="${imgname}$value " ;;
esac
done < /tmp/sysupgrade.meta.tmp
else
imgname="OpenWrt"
fi
fortinet_update_fwinfo 0 "${imgname%% }" \
"${kern_len}@${kern_ofs}" "${root_len}@${root_ofs}" || {
umount -a
reboot -f
}
tar xOf "$1" "$board_dir/kernel" | \ tar xOf "$1" "$board_dir/kernel" | \
mtd write - "kernel" mtd write - "kernel"

View File

@ -3,7 +3,7 @@
# Copyright (C) 2016 LEDE-Project.org # Copyright (C) 2016 LEDE-Project.org
# #
RAMFS_COPY_BIN='fw_printenv fw_setenv strings' RAMFS_COPY_BIN='fw_printenv fw_setenv seq strings'
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
PART_NAME=firmware PART_NAME=firmware

View File

@ -14,14 +14,14 @@
gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_WAN; function = LED_FUNCTION_SPEED_WAN;
linux,default-trigger = "mv88e6xxx-1:00:100Mbps"; linux,default-trigger = "mv88e6xxx-0:00:100Mbps";
}; };
led-15 { led-15 {
gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_WAN; function = LED_FUNCTION_SPEED_WAN;
linux,default-trigger = "mv88e6xxx-1:00:1Gbps"; linux,default-trigger = "mv88e6xxx-0:00:1Gbps";
}; };
}; };

View File

@ -31,7 +31,7 @@
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <5>; function-enumerator = <5>;
linux,default-trigger = "mv88e6xxx-1:00:100Mbps"; linux,default-trigger = "mv88e6xxx-0:00:100Mbps";
}; };
led-17 { led-17 {
@ -39,7 +39,7 @@
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <5>; function-enumerator = <5>;
linux,default-trigger = "mv88e6xxx-1:00:1Gbps"; linux,default-trigger = "mv88e6xxx-0:00:1Gbps";
}; };
}; };

View File

@ -86,7 +86,7 @@
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <4>; function-enumerator = <4>;
linux,default-trigger = "mv88e6xxx-1:01:1Gbps"; linux,default-trigger = "mv88e6xxx-0:01:1Gbps";
}; };
led-7 { led-7 {
@ -94,7 +94,7 @@
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <4>; function-enumerator = <4>;
linux,default-trigger = "mv88e6xxx-1:01:100Mbps"; linux,default-trigger = "mv88e6xxx-0:01:100Mbps";
}; };
led-8 { led-8 {
@ -102,7 +102,7 @@
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <3>; function-enumerator = <3>;
linux,default-trigger = "mv88e6xxx-1:02:100Mbps"; linux,default-trigger = "mv88e6xxx-0:02:100Mbps";
}; };
led-9 { led-9 {
@ -110,7 +110,7 @@
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <3>; function-enumerator = <3>;
linux,default-trigger = "mv88e6xxx-1:02:1Gbps"; linux,default-trigger = "mv88e6xxx-0:02:1Gbps";
}; };
led-10 { led-10 {
@ -118,7 +118,7 @@
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <1>; function-enumerator = <1>;
linux,default-trigger = "mv88e6xxx-1:04:1Gbps"; linux,default-trigger = "mv88e6xxx-0:04:1Gbps";
}; };
led-11 { led-11 {
@ -126,7 +126,7 @@
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <1>; function-enumerator = <1>;
linux,default-trigger = "mv88e6xxx-1:04:100Mbps"; linux,default-trigger = "mv88e6xxx-0:04:100Mbps";
}; };
led-12 { led-12 {
@ -134,7 +134,7 @@
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <2>; function-enumerator = <2>;
linux,default-trigger = "mv88e6xxx-1:03:1Gbps"; linux,default-trigger = "mv88e6xxx-0:03:1Gbps";
}; };
led-13 { led-13 {
@ -142,12 +142,12 @@
color = <LED_COLOR_ID_AMBER>; color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_SPEED_LAN; function = LED_FUNCTION_SPEED_LAN;
function-enumerator = <2>; function-enumerator = <2>;
linux,default-trigger = "mv88e6xxx-1:03:100Mbps"; linux,default-trigger = "mv88e6xxx-0:03:100Mbps";
}; };
}; };
reg_usb_vbus: regulator-usb-vbus { reg_usb_vbus: regulator-usb-vbus {
compatible = "fixed-regulator"; compatible = "regulator-fixed";
regulator-name = "usb-vbus"; regulator-name = "usb-vbus";
regulator-min-microvolt = <5000000>; regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>; regulator-max-microvolt = <5000000>;

View File

@ -47,14 +47,14 @@
function = LED_FUNCTION_WLAN_2GHZ; function = LED_FUNCTION_WLAN_2GHZ;
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt"; linux,default-trigger = "phy1tpt";
}; };
led-5 { led-5 {
function = LED_FUNCTION_WLAN_5GHZ; function = LED_FUNCTION_WLAN_5GHZ;
color = <LED_COLOR_ID_GREEN>; color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt"; linux,default-trigger = "phy0tpt";
}; };
led-6 { led-6 {

View File

@ -0,0 +1,199 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
compatible = "dlink,dir-2150-r1", "mediatek,mt7621-soc";
model = "D-Link DIR-2150 R1";
aliases {
label-mac-device = &gmac1;
led-boot = &led_power_orange;
led-failsafe = &led_power_white;
led-running = &led_power_white;
led-upgrade = &led_net_orange;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
leds {
compatible = "gpio-leds";
led_power_orange: led-0 {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_ORANGE>;
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
};
led_power_white: led-1 {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
};
led_net_orange: led-2 {
function = LED_FUNCTION_WAN;
color = <LED_COLOR_ID_ORANGE>;
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
led-3 {
function = LED_FUNCTION_WAN;
color = <LED_COLOR_ID_WHITE>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};
};
&nand {
status = "okay";
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "Bootloader";
reg = <0x0 0x80000>;
read-only;
};
partition@80000 {
label = "config";
reg = <0x80000 0x80000>;
read-only;
};
partition@100000 {
label = "factory";
reg = <0x100000 0x40000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0x400>;
};
eeprom_factory_8000: eeprom@8000 {
reg = <0x8000 0x4da8>;
};
macaddr_factory_e006: macaddr@e006 {
compatible = "mac-base";
reg = <0xe006 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
partition@140000 {
label = "firmware";
compatible = "denx,uimage";
reg = <0x140000 0x7E80000>;
};
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&eeprom_factory_0>, <&macaddr_factory_e006 2>;
nvmem-cell-names = "eeprom", "mac-address";
ieee80211-freq-limit = <2400000 2500000>;
led {
led-active-low;
};
};
};
&pcie1 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&eeprom_factory_8000>, <&macaddr_factory_e006 4>;
nvmem-cell-names = "eeprom", "mac-address";
ieee80211-freq-limit = <5000000 6000000>;
led {
led-active-low;
};
};
};
&gmac0 {
nvmem-cells = <&macaddr_factory_e006 1>;
nvmem-cell-names = "mac-address";
};
&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy4>;
nvmem-cells = <&macaddr_factory_e006 0>;
nvmem-cell-names = "mac-address";
};
&ethphy4 {
/delete-property/ interrupts;
};
&switch0 {
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";
};
};
};
&state_default {
gpio {
groups = "i2c", "uart3", "jtag", "wdt";
function = "gpio";
};
};

View File

@ -0,0 +1,69 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_elecom_wxc-x1800gsx.dtsi"
/ {
compatible = "elecom,wmc-x1800gst", "mediatek,mt7621-soc";
model = "ELECOM WMC-X1800GST";
aliases {
label-mac-device = &gmac1;
};
};
&keys {
switch-ap {
label = "ap";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
linux,input-type = <EV_SW>;
};
switch-router {
label = "router";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
linux,input-type = <EV_SW>;
};
switch-extender {
label = "extender";
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
linux,code = <BTN_2>;
linux,input-type = <EV_SW>;
};
};
&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy0>;
nvmem-cells = <&macaddr_factory_3fffa>;
nvmem-cell-names = "mac-address";
};
&ethphy0 {
/delete-property/ interrupts;
};
&state_default {
gpio {
groups = "i2c", "uart3", "uart2", "jtag", "wdt";
function = "gpio";
};
};
&wifi {
band@0 {
reg = <0>;
nvmem-cells = <&macaddr_factory_4 0>;
nvmem-cell-names = "mac-address";
};
band@1 {
reg = <1>;
nvmem-cells = <&macaddr_factory_4 1>;
nvmem-cell-names = "mac-address";
};
};

View File

@ -0,0 +1,33 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_elecom_wxc-x1800gsx.dtsi"
/ {
compatible = "elecom,wsc-x1800gs", "mediatek,mt7621-soc";
model = "ELECOM WSC-X1800GS";
aliases {
label-mac-device = &wifi_band1;
};
};
&state_default {
gpio {
groups = "uart3", "uart2", "jtag", "wdt";
function = "gpio";
};
};
&wifi {
band@0 {
reg = <0>;
nvmem-cells = <&macaddr_factory_4 (-1)>;
nvmem-cell-names = "mac-address";
};
wifi_band1: band@1 {
reg = <1>;
nvmem-cells = <&macaddr_factory_4 0>;
nvmem-cell-names = "mac-address";
};
};

View File

@ -0,0 +1,235 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_red;
led-running = &led_power_green;
led-upgrade = &led_power_green;
};
chosen {
bootargs-override = "console=ttyS0,115200n8";
};
leds {
compatible = "gpio-leds";
led-0 {
gpios = <&gpio 5 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN_5GHZ;
};
led-1 {
gpios = <&gpio 6 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_5GHZ;
linux,default-trigger = "phy1tpt";
};
led_power_green: led-2 {
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
};
led-3 {
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_POWER;
};
led-4 {
gpios = <&gpio 9 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_WLAN_5GHZ;
};
led-5 {
gpios = <&gpio 10 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN_2GHZ;
};
led-6 {
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_WLAN_2GHZ;
};
led-7 {
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_2GHZ;
linux,default-trigger = "phy0tpt";
};
led_power_red: led-8 {
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_POWER;
};
};
keys: keys {
compatible = "gpio-keys";
button-reset {
label = "reset";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
button-wps {
label = "wps";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
};
&gmac0 {
nvmem-cells = <&macaddr_factory_3fff4>;
nvmem-cell-names = "mac-address";
};
&nand {
status = "okay";
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x80000>;
read-only;
};
partition@80000 {
label = "u-boot-env";
reg = <0x80000 0x80000>;
read-only;
};
partition@100000 {
label = "factory";
reg = <0x100000 0x80000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0xe00>;
};
precal_factory_e10: precal@e10 {
reg = <0xe10 0x19c10>;
};
macaddr_factory_4: mac-address@4 {
compatible = "mac-base";
reg = <0x4 0x6>;
#nvmem-cell-cells = <1>;
};
macaddr_factory_3fff4: mac-address@3fff4 {
reg = <0x3fff4 0x6>;
};
macaddr_factory_3fffa: mac-address@3fffa {
reg = <0x3fffa 0x6>;
};
};
};
/* stock: "firmware" */
partition@180000 {
reg = <0x180000 0xf00000>;
label = "kernel";
};
partition@1080000 {
label = "user_data";
reg = <0x1080000 0x500000>;
read-only;
};
partition@1580000 {
label = "tm_pattern";
reg = <0x1580000 0x500000>;
read-only;
};
partition@1a80000 {
label = "tm_key";
reg = <0x1a80000 0x100000>;
read-only;
};
/* stock: (unused) */
partition@1b80000 {
label = "ubi";
reg = <0x1b80000 0x6480000>;
};
};
};
&pcie {
status = "okay";
};
&pcie1 {
wifi: wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&eeprom_factory_0>, <&precal_factory_e10>;
nvmem-cell-names = "eeprom", "precal";
mediatek,disable-radar-background;
#address-cells = <1>;
#size-cells = <0>;
};
};
&switch0 {
ports {
port@1 {
status = "okay";
label = "lan2";
};
port@2 {
status = "okay";
label = "lan1";
};
};
};
&state_default {
gpio {
groups = "i2c", "uart3", "uart2", "jtag", "wdt";
function = "gpio";
};
};
&uartlite {
pinctrl-0 = <&uart1_pins>;
pinctrl-names = "default";
};
&xhci {
status = "disabled";
};

View File

@ -0,0 +1,142 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
compatible = "ruijie,rg-ew1200g-pro-v1.1", "mediatek,mt7621-soc";
model = "Ruijie RG-EW1200G PRO v.1.1";
aliases {
led-boot = &led_power_blue;
led-failsafe = &led_power_blue;
led-running = &led_power_blue;
led-upgrade = &led_power_blue;
};
chosen {
bootargs = "console=ttyS0,57600n8";
};
leds {
compatible = "gpio-leds";
led_power_blue: power_blue {
function = LED_FUNCTION_POWER;
color = <LED_COLOR_ID_BLUE>;
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
partition@0 {
label = "u-boot";
reg = <0x000000 0x50000>;
read-only;
};
partition@50000 {
label = "u-boot-env";
reg = <0x50000 0x10000>;
read-only;
};
partition@60000 {
label = "factory";
reg = <0x60000 0x10000>;
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
eeprom_factory_0: eeprom@0 {
reg = <0x0 0x4da8>;
};
};
};
partition@70000 {
label = "product_info";
reg = <0x70000 0x10000>;
read-only;
};
partition@80000 {
label = "kdump";
reg = <0x80000 0x10000>;
read-only;
};
partition@90000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x90000 0xf70000>;
};
};
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&eeprom_factory_0>;
nvmem-cell-names = "eeprom";
};
};
&switch0 {
ports {
port@0 {
status = "okay";
label = "wan";
};
port@1 {
status = "okay";
label = "lan3";
};
port@2 {
status = "okay";
label = "lan2";
};
port@3 {
status = "okay";
label = "lan1";
};
};
};

Some files were not shown because too many files have changed in this diff Show More