Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen
2024-01-09 20:21:38 +08:00
208 changed files with 3774 additions and 917 deletions

View File

@@ -151,17 +151,13 @@ endif
# Disable noisy checks by default as in upstream
DTC_WARN_FLAGS := \
-Wno-interrupt_provider \
-Wno-unique_unit_address \
-Wno-unit_address_vs_reg \
-Wno-simple_bus_reg \
-Wno-unit_address_format \
-Wno-pci_bridge \
-Wno-pci_device_bus_num \
-Wno-pci_device_reg \
-Wno-avoid_unnecessary_addr_size \
-Wno-alias_paths \
-Wno-graph_child_address \
-Wno-graph_port \
-Wno-unique_unit_address
-Wno-simple_bus_reg
DTC_FLAGS += $(DTC_WARN_FLAGS)
DTCO_FLAGS += $(DTC_WARN_FLAGS)

View File

@@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .145
LINUX_KERNEL_HASH-5.15.145 = b2a49d87605f3a9491581150315e22337c1afb599efc1e2737481be3a2d6d620
LINUX_VERSION-5.15 = .146
LINUX_KERNEL_HASH-5.15.146 = 5a807a5fa2a80ada957d8079681dfb5cc196ec26f43244d1c8a4fd7af592d192

View File

@@ -1,2 +1,2 @@
LINUX_VERSION-6.1 = .70
LINUX_KERNEL_HASH-6.1.70 = ed1365266456c07696a7499581aec5d851ca2296f4f6f90f23d189ea5a56afef
LINUX_VERSION-6.1 = .71
LINUX_KERNEL_HASH-6.1.71 = 2df774dd53f9ffd4e57ebf804cf597709295df6a304fe261d25220a134b7f041

View File

@@ -63,7 +63,7 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG
mkdir -p $(KERNEL_BUILD_DIR)/debug/modules
$(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/
-$(CP) \
$(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \
$(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/*.ko \
$(KERNEL_BUILD_DIR)/debug/modules/
$(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
$(TAR) c -C $(KERNEL_BUILD_DIR) debug \

View File

@@ -49,7 +49,7 @@ define Package/Default
KCONFIG:=
BUILDONLY:=
HIDDEN:=
URL:=
URL:=$(PKG_URL)
VARIANT:=
DEFAULT_VARIANT:=
USERID:=

View File

@@ -37,14 +37,14 @@ $(if $(USERID),Require-User: $(USERID)
$(if $(LICENSE),License: $(LICENSE)
)$(if $(LICENSE_FILES),LicenseFiles: $(LICENSE_FILES)
)$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID)
)$(if $(URL),URL: $(URL)
)$(if $(ABI_VERSION),ABI-Version: $(ABI_VERSION)
)Type: $(if $(Package/$(1)/targets),$(Package/$(1)/targets),$(if $(PKG_TARGETS),$(PKG_TARGETS),ipkg))
$(if $(KCONFIG),Kernel-Config: $(KCONFIG)
)$(if $(BUILDONLY),Build-Only: $(BUILDONLY)
)$(if $(HIDDEN),Hidden: $(HIDDEN)
)Description: $(if $(Package/$(1)/description),$(Package/$(1)/description),$(TITLE))
$(if $(URL),$(URL)
)$(MAINTAINER)
$(MAINTAINER)
@@
$(if $(Package/$(1)/config),Config:
$(Package/$(1)/config)

View File

@@ -185,6 +185,7 @@ $$(call addfield,Depends,$$(Package/$(1)/DEPENDS)
)$$(call addfield,Section,$(SECTION)
)$$(call addfield,Require-User,$(USERID)
)$$(call addfield,SourceDateEpoch,$(PKG_SOURCE_DATE_EPOCH)
)$$(call addfield,URL,$(URL)
)$$(if $$(ABIV_$(1)),ABIVersion: $$(ABIV_$(1))
)$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID)
)$(if $(filter hold,$(PKG_FLAGS)),Status: unknown hold not-installed

View File

@@ -212,7 +212,7 @@ prereq:: prepare-tmpinfo .config
check: .config FORCE
@+$(NO_TRACE_MAKE) -r -s $@ QUIET= V=s
val.%: FORCE
val.% var.%: FORCE
@+$(NO_TRACE_MAKE) -r -s $@ QUIET= V=s
WARN_PARALLEL_ERROR = $(if $(BUILD_LOG),,$(and $(filter -j,$(MAKEFLAGS)),$(findstring s,$(OPENWRT_VERBOSE))))

View File

@@ -30,12 +30,18 @@ ifeq ($(IS_TTY),1)
endif
define ERROR_MESSAGE
printf "$(_R)%s$(_N)\n" "$(1)" >&8
{ \
printf "$(_R)%s$(_N)\n" "$(1)" >&9 || \
printf "$(_R)%s$(_N)\n" "$(1)"; \
} >&2 2>/dev/null
endef
ifeq ($(findstring s,$(OPENWRT_VERBOSE)),)
define MESSAGE
printf "$(_Y)%s$(_N)\n" "$(1)" >&8
{ \
printf "$(_Y)%s$(_N)\n" "$(1)" >&8 || \
printf "$(_Y)%s$(_N)\n" "$(1)"; \
} 2>/dev/null
endef
ifeq ($(QUIET),1)
@@ -44,9 +50,12 @@ ifeq ($(findstring s,$(OPENWRT_VERBOSE)),)
else
_DIR:=
endif
_NULL:=$(if $(MAKECMDGOALS),$(shell \
_MESSAGE:=$(if $(MAKECMDGOALS),$(shell \
$(call MESSAGE, make[$(MAKELEVEL)]$(if $(_DIR), -C $(_DIR)) $(MAKECMDGOALS)); \
))
ifneq ($(strip $(_MESSAGE)),)
$(info $(_MESSAGE))
endif
SUBMAKE=$(MAKE)
else
SILENT:=>/dev/null $(if $(findstring w,$(OPENWRT_VERBOSE)),,2>&1)

View File

@@ -80,6 +80,7 @@ qihoo,360t7|\
tplink,tl-xdr4288|\
tplink,tl-xdr6086|\
tplink,tl-xdr6088|\
xiaomi,mi-router-ax3000t-ubootmod|\
xiaomi,mi-router-wr30u-ubootmod|\
xiaomi,redmi-router-ax6000-ubootmod|\
zyxel,ex5601-t0-ubootmod)
@@ -111,6 +112,7 @@ routerich,ax3000)
ubnt,unifi-6-plus)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x10000"
;;
xiaomi,mi-router-ax3000t|\
xiaomi,mi-router-wr30u-112m-nmbm|\
xiaomi,mi-router-wr30u-stock|\
xiaomi,redmi-router-ax6000|\

View File

@@ -30,6 +30,12 @@ zte,mf269)
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000"
;;
linksys,mx4200v1|\
linksys,mx4200v2)
idx="$(find_mtd_index u_env)"
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2"
;;
redmi,ax6|\
redmi,ax6-stock|\
xiaomi,ax3600|\

View File

@@ -322,6 +322,18 @@ define U-Boot/mt7981_qihoo_360t7
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_xiaomi_mi-router-ax3000t
NAME:=Xiaomi Router AX3000T
BUILD_SUBTARGET:=filogic
BUILD_DEVICES:=xiaomi_mi-router-ax3000t-ubootmod
UBOOT_CONFIG:=mt7981_xiaomi_mi-router-ax3000t
UBOOT_IMAGE:=u-boot.fip
BL2_BOOTDEV:=spim-nand
BL2_SOC:=mt7981
BL2_DDRTYPE:=ddr3
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
endef
define U-Boot/mt7981_xiaomi_mi-router-wr30u
NAME:=Xiaomi Router WR30U
BUILD_SUBTARGET:=filogic
@@ -592,6 +604,7 @@ UBOOT_TARGETS := \
mt7981_rfb-sd \
mt7981_rfb-snfi \
mt7981_qihoo_360t7 \
mt7981_xiaomi_mi-router-ax3000t \
mt7981_xiaomi_mi-router-wr30u \
mt7986_bananapi_bpi-r3-emmc \
mt7986_bananapi_bpi-r3-sdmmc \

View File

@@ -0,0 +1,414 @@
--- /dev/null
+++ b/configs/mt7981_xiaomi_mi-router-ax3000t_defconfig
@@ -0,0 +1,163 @@
+CONFIG_ARM=y
+CONFIG_POSITION_INDEPENDENT=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_TARGET_MT7981=y
+CONFIG_TEXT_BASE=0x41e00000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_NR_DRAM_BANKS=1
+CONFIG_DEFAULT_DEVICE_TREE="mt7981_xiaomi_mi-router-ax3000t"
+CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-ax3000t_env"
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-ax3000t.dtb"
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_DEBUG_UART_BASE=0x11002000
+CONFIG_DEBUG_UART_CLOCK=40000000
+CONFIG_DEBUG_UART=y
+CONFIG_SYS_LOAD_ADDR=0x46000000
+CONFIG_SMBIOS_PRODUCT_NAME=""
+CONFIG_AUTOBOOT_KEYED=y
+CONFIG_BOOTDELAY=30
+CONFIG_AUTOBOOT_MENU_SHOW=y
+CONFIG_CFB_CONSOLE_ANSI=y
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_BUTTON=y
+CONFIG_BUTTON_GPIO=y
+CONFIG_GPIO_HOG=y
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_FIT=y
+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_LOGLEVEL=7
+CONFIG_LOG=y
+CONFIG_SYS_PROMPT="MT7981> "
+CONFIG_CMD_BOOTMENU=y
+CONFIG_CMD_BOOTP=y
+CONFIG_CMD_BUTTON=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_CDP=y
+CONFIG_CMD_CPU=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_ECHO=y
+CONFIG_CMD_ENV_READMEM=y
+CONFIG_CMD_ERASEENV=y
+# CONFIG_CMD_EXT4 is not set
+# CONFIG_CMD_FAT is not set
+CONFIG_CMD_FDT=y
+# CONFIG_CMD_FS_GENERIC is not set
+# CONFIG_CMD_FS_UUID is not set
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_ITEST=y
+CONFIG_CMD_LED=y
+CONFIG_CMD_LICENSE=y
+CONFIG_CMD_LINK_LOCAL=y
+# CONFIG_CMD_MBR is not set
+CONFIG_CMD_MTD=y
+# CONFIG_CMD_PCI is not set
+CONFIG_CMD_PSTORE=y
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
+CONFIG_CMD_SF_TEST=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_PWM is not set
+CONFIG_CMD_SMC=y
+CONFIG_CMD_TFTPBOOT=y
+CONFIG_CMD_TFTPSRV=y
+CONFIG_CMD_UBI=y
+CONFIG_CMD_UBI_RENAME=y
+CONFIG_CMD_UBIFS=y
+CONFIG_CMD_ASKENV=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_RARP=y
+CONFIG_CMD_SETEXPR=y
+CONFIG_CMD_SLEEP=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_SOURCE=y
+CONFIG_CMD_STRINGS=y
+# CONFIG_CMD_USB is not set
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_UUID=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_DM_MTD=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+# CONFIG_DM_USB is not set
+# CONFIG_DM_PWM is not set
+# CONFIG_PWM_MTK is not set
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_VERSION_VARIABLE=y
+CONFIG_PARTITION_UUIDS=y
+CONFIG_NETCONSOLE=y
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_CLK=y
+CONFIG_DM_GPIO=y
+# CONFIG_DM_SCSI is not set
+# CONFIG_AHCI is not set
+CONFIG_PHY=y
+# CONFIG_PHY_MTK_TPHY is not set
+CONFIG_PHY_FIXED=y
+CONFIG_MTK_AHCI=y
+CONFIG_DM_ETH=y
+CONFIG_MEDIATEK_ETH=y
+# CONFIG_PCI is not set
+# CONFIG_MMC is not set
+# CONFIG_DM_MMC is not set
+CONFIG_MTD=y
+CONFIG_MTD_UBI_FASTMAP=y
+# CONFIG_DM_PCI is not set
+# CONFIG_PCIE_MEDIATEK is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCONF=y
+CONFIG_PINCTRL_MT7981=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00
+CONFIG_MTK_POWER_DOMAIN=y
+CONFIG_RAM=y
+CONFIG_DM_SERIAL=y
+CONFIG_MTK_SERIAL=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_MTK_SPI_NAND=y
+CONFIG_MTK_SPI_NAND_MTD=y
+CONFIG_SYSRESET_WATCHDOG=y
+CONFIG_WDT_MTK=y
+CONFIG_LZO=y
+CONFIG_ZSTD=y
+CONFIG_HEXDUMP=y
+CONFIG_RANDOM_UUID=y
+CONFIG_REGEX=y
+# CONFIG_USB is not set
+# CONFIG_USB_HOST is not set
+# CONFIG_USB_XHCI_HCD is not set
+# CONFIG_USB_XHCI_MTK is not set
+# CONFIG_USB_STORAGE is not set
+CONFIG_OF_EMBED=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_IN_UBI=y
+CONFIG_ENV_UBI_PART="ubi"
+CONFIG_ENV_SIZE=0x1f000
+CONFIG_ENV_SIZE_REDUND=0x1f000
+CONFIG_ENV_UBI_VOLUME="ubootenv"
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_USE_DEFAULT_ENV_FILE=y
+CONFIG_MTD_SPI_NAND=y
+CONFIG_MTK_SPIM=y
+CONFIG_CMD_NAND=y
+CONFIG_CMD_NAND_TRIMFFS=y
+CONFIG_LMB_MAX_REGIONS=64
+CONFIG_USE_IPADDR=y
+CONFIG_IPADDR="192.168.1.1"
+CONFIG_USE_SERVERIP=y
+CONFIG_SERVERIP="192.168.1.254"
--- /dev/null
+++ b/arch/arm/dts/mt7981_xiaomi_mi-router-ax3000t.dts
@@ -0,0 +1,187 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2022 MediaTek Inc.
+ * Author: Sam Shih <sam.shih@mediatek.com>
+ */
+
+/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 = "Xiaomi Router AX3000T";
+ compatible = "mediatek,mt7981", "mediatek,mt7981-rfb";
+
+ chosen {
+ stdout-path = &uart0;
+ tick-timer = &timer0;
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x40000000 0x10000000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ mesh {
+ label = "mesh";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_9>;
+ linux,input-type = <EV_SW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_status_blue {
+ label = "blue:status";
+ gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
+ };
+
+ led_status_yellow {
+ label = "yellow:status";
+ gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&uart0 {
+ mediatek,force-highspeed;
+ status = "okay";
+};
+
+&eth {
+ status = "okay";
+ mediatek,gmac-id = <0>;
+ phy-mode = "2500base-x";
+ mediatek,switch = "mt7531";
+ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
+
+ fixed-link {
+ speed = <2500>;
+ full-duplex;
+ };
+};
+
+&pinctrl {
+ spic_pins: spi1-pins-func-1 {
+ mux {
+ function = "spi";
+ groups = "spi1_1";
+ };
+ };
+
+ uart1_pins: spi1-pins-func-3 {
+ mux {
+ function = "uart";
+ groups = "uart1_2";
+ };
+ };
+
+ spi_flash_pins: spi0-pins-func-1 {
+ mux {
+ function = "flash";
+ groups = "spi0", "spi0_wp_hold";
+ };
+
+ conf-pu {
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
+ };
+
+ conf-pd {
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
+ drive-strength = <MTK_DRIVE_8mA>;
+ bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
+ };
+ };
+};
+
+&spi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi_flash_pins>;
+ status = "okay";
+ must_tx;
+ enhance_timing;
+ dma_ext;
+ ipm_design;
+ support_quad;
+ tick_dly = <2>;
+ sample_sel = <0>;
+
+ spi_nand@0 {
+ compatible = "spi-nand";
+ reg = <0>;
+ spi-max-frequency = <52000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "bl2";
+ reg = <0x00 0x100000>;
+ };
+
+ partition@100000 {
+ label = "Nvram";
+ reg = <0x100000 0x40000>;
+ };
+
+ partition@140000 {
+ label = "Bdata";
+ reg = <0x140000 0x40000>;
+ };
+
+ partition@180000 {
+ label = "factory";
+ reg = <0x180000 0x200000>;
+ };
+
+ partition@380000 {
+ label = "fip";
+ reg = <0x380000 0x200000>;
+ };
+
+ partition@580000 {
+ label = "crash";
+ reg = <0x580000 0x40000>;
+ };
+
+ partition@5c0000 {
+ label = "crash_log";
+ reg = <0x5c0000 0x40000>;
+ };
+
+ partition@600000 {
+ label = "ubi";
+ reg = <0x600000 0x7000000>;
+ };
+
+ partition@7600000 {
+ label = "KF";
+ reg = <0x7600000 0x40000>;
+ };
+ };
+ };
+};
+
+&watchdog {
+ status = "disabled";
+};
--- /dev/null
+++ b/xiaomi_mi-router-ax3000t_env
@@ -0,0 +1,55 @@
+ipaddr=192.168.1.1
+serverip=192.168.1.254
+loadaddr=0x46000000
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
+bootargs=console=ttyS0,115200n8 console_msg_format=syslog
+bootcmd=if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
+bootconf=config-1
+bootdelay=0
+bootfile=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-initramfs-recovery.itb
+bootfile_bl2=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-preloader.bin
+bootfile_fip=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-bl31-uboot.fip
+bootfile_upg=openwrt-mediatek-filogic-xiaomi_mi-router-ax3000t-ubootmod-squashfs-sysupgrade.itb
+bootled_pwr=yellow:status
+bootled_rec=blue:status
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
+bootmenu_default=0
+bootmenu_delay=0
+bootmenu_title= ( ( ( OpenWrt ) ) )
+bootmenu_0=Initialize environment.=run _firstboot
+bootmenu_0d=Run default boot command.=run boot_default
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
+bootmenu_6=Load BL31+U-Boot FIP via TFTP then write to NAND.=run boot_tftp_write_fip ; run bootmenu_confirm_return
+bootmenu_7=Load BL2 preloader via TFTP then write to NAND.=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
+bootmenu_8=Reboot.=reset
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
+boot_first=if button reset ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
+boot_production=led $bootled_pwr on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led $bootled_pwr off
+boot_recovery=led $bootled_rec on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led $bootled_rec off
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
+boot_tftp_forever=led $bootled_rec on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
+mtd_write_fip=mtd erase fip && mtd write fip $loadaddr
+mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
+_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver"

View File

@@ -6,9 +6,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
PKG_SOURCE_DATE:=2023-11-10
PKG_SOURCE_VERSION:=0c2e810e71ed0a59fb00246c7fa2c236ff67a0ee
PKG_MIRROR_HASH:=fc6016540bd2c67484952d0e4432d740f0e022d9b688e851bb6321def8d36844
PKG_SOURCE_DATE:=2024-01-06
PKG_SOURCE_VERSION:=71f45cff8944405b7cc2bf5c19df2bd8fe7f2421
PKG_MIRROR_HASH:=90c3c1659c54cdb4685d0a71633746c1000230e459801eb8ce12c805a994cc37
PKG_FLAGS:=nonshared
@@ -34,6 +34,7 @@ ALLWIFIBOARDS:= \
dynalink_dl-wrx36 \
edgecore_eap102 \
edimax_cax1800 \
linksys_mx4200 \
netgear_rax120v2 \
netgear_wax218 \
netgear_wax620 \
@@ -83,7 +84,7 @@ define ipq-wifi-install-one
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA99X0 .qca99x0),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA99X0/hw2.0),\
$(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074),\
$(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074 .ipq8174),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ8074/hw2.0),\
$(if $(filter $(suffix $(1)),.QCN9074 .qcn9074),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),QCN9074/hw1.0),\
@@ -144,6 +145,7 @@ $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873))
$(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36))
$(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102))
$(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800))
$(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200))
$(eval $(call generate-ipq-wifi-package,netgear_rax120v2,Netgear RAX120v2))
$(eval $(call generate-ipq-wifi-package,netgear_wax218,Netgear WAX218))
$(eval $(call generate-ipq-wifi-package,netgear_wax620,Netgear WAX620))

View File

@@ -58,7 +58,12 @@ define Package/kernel
endef
define Package/kernel/install
# nothing to do
$(INSTALL_DIR) $(1)/$(MODULES_SUBDIR)
$(INSTALL_DATA) $(LINUX_DIR)/modules.builtin $(1)/$(MODULES_SUBDIR)
$(SED) 's,.*/,,' $(1)/$(MODULES_SUBDIR)/modules.builtin
strings $(LINUX_DIR)/modules.builtin.modinfo | \
grep -E -v "\.(file$(if CONFIG_MODULE_STRIPPED,|parmtype))=" | \
tr '\n' '\0' > $(1)/$(MODULES_SUBDIR)/modules.builtin.modinfo
endef
define Package/kernel/extra_provides

View File

@@ -145,7 +145,7 @@ mac80211_hostapd_setup_base() {
[ "$auto_channel" = 0 ] && [ -z "$channel_list" ] && \
channel_list="$channel"
[ "$min_tx_power" -gt 0 ] && append base_cfg "min_tx_power=$min_tx_power"
[ "$min_tx_power" -gt 0 ] && append base_cfg "min_tx_power=$min_tx_power" "$N"
set_default noscan 0

View File

@@ -0,0 +1,34 @@
From: David Bauer <mail@david-bauer.net>
Date: Thu, 30 Nov 2023 07:32:52 +0100
Subject: [PATCH] mac80211: avoid crashing on invalid band info
Frequent crashes have been observed on MT7916 based platforms. While the
root of these crashes are currently unknown, they happen when decoding
rate information of connected STAs in AP mode. The rate-information is
associated with a band which is not available on the PHY.
Check for this condition in order to avoid crashing the whole system.
This patch should be removed once the roout cause has been found and
fixed.
Link: https://github.com/freifunk-gluon/gluon/issues/2980
Signed-off-by: David Bauer <mail@david-bauer.net>
---
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -2422,6 +2422,13 @@ static void sta_stats_decode_rate(struct
sband = local->hw.wiphy->bands[band];
+ if (!sband) {
+ wiphy_warn(local->hw.wiphy,
+ "Invalid band %d\n",
+ band);
+ break;
+ }
+
if (WARN_ON_ONCE(!sband->bitrates))
break;

View File

@@ -105,6 +105,14 @@ CMAKE_HOST_OPTIONS += \
-DCMAKE_MACOSX_RPATH=1 \
-DCMAKE_INSTALL_RPATH="${STAGING_DIR_HOST}/lib" \
ifeq ($(HOST_OS),Darwin)
define Host/Install
$(Host/Install/Default)
$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/lib
cd "$(STAGING_DIR_HOSTPKG)/lib" && ln -sf ../../host/lib/libubox.* .
endef
endif
$(eval $(call BuildPackage,libubox))
$(eval $(call BuildPackage,libblobmsg-json))
$(eval $(call BuildPackage,jshn))

View File

@@ -1907,6 +1907,9 @@ void hostapd_ubus_notify_radar_detected(struct hostapd_iface *iface, int frequen
struct hostapd_data *hapd;
int i;
if (!ctx)
return;
blob_buf_init(&b, 0);
blobmsg_add_u16(&b, "frequency", frequency);
blobmsg_add_u16(&b, "width", chan_width);

View File

@@ -20,6 +20,7 @@ obj.mvebu = linksys_bootcount.o
obj.kirkwood = linksys_bootcount.o
obj.ipq806x = linksys_bootcount.o
obj.ipq40xx = linksys_bootcount.o
obj.qualcommax = linksys_bootcount.o
ifdef FIS_SUPPORT
obj += fis.o

View File

@@ -181,7 +181,7 @@ for file_mode in $file_modes; do
done
$TAR -X "$tmp_dir"/tarX --format=gnu --numeric-owner --sort=name -cpf - --mtime="$TIMESTAMP" . | gzip -n - > "$tmp_dir"/data.tar.gz
installed_size=$(stat -c "%s" "$tmp_dir"/data.tar.gz)
installed_size=$(zcat < "$tmp_dir"/data.tar.gz | wc -c)
sed -i -e "s/^Installed-Size: .*/Installed-Size: $installed_size/" \
"$pkg_dir"/$CONTROL/control

View File

@@ -55,9 +55,9 @@ if output:
"target/linux/",
"val.DEFAULT_PACKAGES",
"val.ARCH_PACKAGES",
"V=s",
],
stdout=PIPE,
stderr=PIPE,
check=True,
env=environ.copy().update({"TOPDIR": Path().cwd()}),
universal_newlines=True,

View File

@@ -257,6 +257,7 @@ sub parse_package_metadata($) {
/^License: \s*(.+)\s*$/ and $pkg->{license} = $1;
/^LicenseFiles: \s*(.+)\s*$/ and $pkg->{licensefiles} = $1;
/^CPE-ID: \s*(.+)\s*$/ and $pkg->{cpe_id} = $1;
/^URL: \s*(.+)\s*$/ and $pkg->{url} = $1;
/^ABI-Version: \s*(.+)\s*$/ and $pkg->{abi_version} = $1;
/^Default: \s*(.+)\s*$/ and $pkg->{default} = $1;
/^Provides: \s*(.+)\s*$/ and do {
@@ -344,6 +345,7 @@ sub parse_package_manifest_metadata($) {
/^Section:\s*(.+)\s*$/ and $pkg->{section} = $1;
/^SourceDateEpoch: \s*(.+)\s*$/ and $pkg->{sourcedateepoch} = $1;
/^CPE-ID:\s*(.+)\s*$/ and $pkg->{cpe_id} = $1;
/^URL:\s*(.+)\s*$/ and $pkg->{url} = $1;
/^Architecture:\s*(.+)\s*$/ and $pkg->{architecture} = $1;
/^Installed-Size:\s*(.+)\s*$/ and $pkg->{installedsize} = $1;
/^Filename:\s*(.+)\s*$/ and $pkg->{filename} = $1;

View File

@@ -113,7 +113,7 @@
#reset-cells = <1>;
};
pcie0: pcie-controller@17010000 {
pcie0: pcie@17010000 {
compatible = "qca,ar7100-pci";
#address-cells = <3>;
#size-cells = <2>;

View File

@@ -94,7 +94,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 { /* 2.4 GHz */
ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 1>;
nvmem-cell-names = "mac-address";
@@ -103,7 +103,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 { /* 5 GHz */
ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 2>;
nvmem-cell-names = "mac-address";

View File

@@ -120,7 +120,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 1>;
nvmem-cell-names = "mac-address";
@@ -129,7 +129,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 {
ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
nvmem-cells = <&macaddr_hwinfo_1c 2>;
nvmem-cell-names = "mac-address";

View File

@@ -196,7 +196,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
@@ -204,7 +204,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 {
ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;

View File

@@ -136,7 +136,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_lan 0>, <&cal_art_1000>;
@@ -145,7 +145,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 {
ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_wan 1>, <&cal_art_5000>;

View File

@@ -95,7 +95,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 { /* 2.4 GHz */
ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000>;
@@ -105,7 +105,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 { /* 5 GHz */
ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000 4900000 5990000>;

View File

@@ -70,7 +70,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 { /* 2.4 GHz */
ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
@@ -80,7 +80,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 { /* 5 GHz */
ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;

View File

@@ -147,7 +147,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_art_120c>, <&calibration_art_1000>;
@@ -156,7 +156,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 {
ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_art_520c 1>, <&calibration_art_5000>;

View File

@@ -126,7 +126,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 {
ath9k0: wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
@@ -153,7 +153,7 @@
};
};
ath9k1: wifi@0,12 {
ath9k1: wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;

View File

@@ -131,7 +131,7 @@
&pcie0 {
status = "okay";
ath9k0: wifi@0,11 { /* 2.4 GHz */
ath9k0: wifi@11,0 { /* 2.4 GHz */
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
nvmem-cells = <&macaddr_bdata_60>;
@@ -140,7 +140,7 @@
gpio-controller;
};
ath9k1: wifi@0,12 { /* 5 GHz */
ath9k1: wifi@12,0 { /* 5 GHz */
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
nvmem-cells = <&macaddr_bdata_76>;

View File

@@ -92,13 +92,13 @@
&pcie0 {
status = "okay";
wifi@0,11 {
wifi@11,0 {
compatible = "pci168c,0029";
reg = <0x8800 0 0 0 0>;
qca,no-eeprom;
};
wifi@0,12 {
wifi@12,0 {
compatible = "pci168c,0029";
reg = <0x9000 0 0 0 0>;
qca,no-eeprom;

View File

@@ -85,7 +85,7 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio 11 GPIO_ACTIVE_LOW>;
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
startup-delay-us = <300000>;
enable-active-high;

View File

@@ -75,7 +75,7 @@
&pcie {
status = "okay";
ath9k: wifi@0,0,0 {
ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 1>;

View File

@@ -75,7 +75,7 @@
&pcie {
status = "okay";
ath9k: wifi@0,0,0 {
ath9k: wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 (-1)>;

View File

@@ -70,7 +70,7 @@
&pcie {
status = "okay";
wifi@0,0,0 {
wifi@0,0 {
compatible = "pci168c,002a";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;

View File

@@ -121,7 +121,7 @@
#reset-cells = <1>;
};
pcie: pcie-controller@180c0000 {
pcie: pcie@180c0000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;

View File

@@ -54,7 +54,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 6 GPIO_ACTIVE_LOW>;
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
};
gpio-export {

View File

@@ -52,7 +52,7 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio 20 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
};
};

View File

@@ -43,7 +43,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -41,7 +41,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -101,7 +101,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 19 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -8,5 +8,5 @@
};
&reg_usb_vbus {
gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
};

View File

@@ -76,7 +76,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -72,7 +72,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 18 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -8,5 +8,5 @@
};
&reg_usb_vbus {
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
};

View File

@@ -38,7 +38,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 8 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -0,0 +1,11 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "ar9342_mikrotik_routerboard-911g.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "mikrotik,routerboard-911g-xhpnd", "qca,ar9342";
model = "MikroTik RouterBOARD 911G-(2,5)HPnD";
};

View File

@@ -0,0 +1,224 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "ar9344.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
gpio_key: gpio_key {
compatible = "mikrotik,gpio-rb91x-key";
gpio-controller;
#gpio-cells = <2>;
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
gpio_latch: gpio_latch {
compatible = "gpio-latch";
gpio-controller;
#gpio-cells = <2>;
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>,
<&gpio 1 GPIO_ACTIVE_HIGH>,
<&gpio 2 GPIO_ACTIVE_HIGH>,
<&gpio 3 GPIO_ACTIVE_HIGH>,
<0>, /* Not connected */
<&gpio 13 GPIO_ACTIVE_HIGH>,
<&gpio 14 GPIO_ACTIVE_HIGH>,
<&gpio_key 0 GPIO_ACTIVE_HIGH>,
<&gpio 11 GPIO_ACTIVE_LOW>; /* Latch Enable */
};
nand_gpio {
compatible = "mikrotik,rb91x-nand";
gpios = <&gpio_latch 3 GPIO_ACTIVE_HIGH>, /* Read */
<&gpio 4 GPIO_ACTIVE_HIGH>, /* Ready (RDY) */
<&gpio_latch 5 GPIO_ACTIVE_LOW>, /* Chip Enable (nCE) */
<&gpio_latch 6 GPIO_ACTIVE_HIGH>, /* Command Latch Enable (CLE) */
<&gpio_latch 7 GPIO_ACTIVE_HIGH>, /* Address Latch Enable (ALE) */
<&gpio 12 GPIO_ACTIVE_LOW>, /* Read/Write Enable (nRW) */
<&gpio_latch 8 GPIO_ACTIVE_LOW>, /* Latch Enable (nLE) */
<&gpio_key 2 GPIO_ACTIVE_HIGH>; /* Key poll disable */
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "booter";
reg = <0x0 0x0040000>;
read-only;
};
partition@40000 {
label = "kernel";
reg = <0x0040000 0x03c0000>;
};
partition@400000 {
label = "ubi";
reg = <0x0400000 0x7c00000>;
};
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
button-reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio_key 1 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "green:power";
gpios = <&gpio_latch 1 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
user {
label = "green:user";
gpios = <&gpio_latch 2 GPIO_ACTIVE_HIGH>;
};
led1 {
label = "green:led1";
gpios = <&ssr 0 GPIO_ACTIVE_HIGH>;
};
led2 {
label = "green:led2";
gpios = <&ssr 1 GPIO_ACTIVE_HIGH>;
};
led3 {
label = "green:led3";
gpios = <&ssr 2 GPIO_ACTIVE_HIGH>;
};
led4 {
label = "green:led4";
gpios = <&ssr 3 GPIO_ACTIVE_HIGH>;
};
led5 {
label = "green:led5";
gpios = <&ssr 4 GPIO_ACTIVE_HIGH>;
};
};
gpio-export {
compatible = "gpio-export";
beeper {
gpio-export,name = "beeper";
gpio-export,output = <1>; /* Must be 1 to avoid EMI induced clicking noise */
gpios = <&ssr 5 GPIO_ACTIVE_HIGH>;
};
usb_power {
gpio-export,name = "power-usb";
gpio-export,output = <1>;
gpios = <&ssr 6 GPIO_ACTIVE_HIGH>;
};
pcie_power {
gpio-export,name = "power-pcie";
gpio-export,output = <0>;
gpios = <&ssr 7 GPIO_ACTIVE_HIGH>;
};
};
};
&ref {
clock-frequency = <40000000>;
};
&spi {
status = "okay";
compatible = "qca,ar7100-spi";
cs-gpios = <0>, <&gpio_latch 0 GPIO_ACTIVE_LOW>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "routerboot";
reg = <0x0 0x0>;
read-only;
};
hard_config {
read-only;
};
bios {
size = <0x1000>;
read-only;
};
soft_config {
};
};
};
ssr: ssr@1 {
compatible = "fairchild,74hc595";
gpio-controller;
#gpio-cells = <2>;
registers-number = <1>;
reg = <1>;
spi-max-frequency = <50000000>;
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
pll-data = <0x02000000 0x00000101 0x00001313>;
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
rxd-delay = <1>;
txd-delay = <1>;
};
};
&wmac {
status = "okay";
qca,no-eeprom;
};

View File

@@ -1,229 +1,13 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "ar9344.dtsi"
#include "ar9342_mikrotik_routerboard-911g.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "mikrotik,routerboard-912uag-2hpnd", "qca,ar9342";
model = "MikroTik RouterBOARD 912UAG-2HPnD";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
gpio_key: gpio_key {
compatible = "mikrotik,gpio-rb91x-key";
gpio-controller;
#gpio-cells = <2>;
gpio = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
gpio_latch: gpio_latch {
compatible = "gpio-latch";
gpio-controller;
#gpio-cells = <2>;
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>,
<&gpio 1 GPIO_ACTIVE_HIGH>,
<&gpio 2 GPIO_ACTIVE_HIGH>,
<&gpio 3 GPIO_ACTIVE_HIGH>,
<0>, /* Not connected */
<&gpio 13 GPIO_ACTIVE_HIGH>,
<&gpio 14 GPIO_ACTIVE_HIGH>,
<&gpio_key 0 GPIO_ACTIVE_HIGH>,
<&gpio 11 GPIO_ACTIVE_LOW>; /* Latch Enable */
};
nand_gpio {
compatible = "mikrotik,rb91x-nand";
gpios = <&gpio_latch 3 GPIO_ACTIVE_HIGH>, /* Read */
<&gpio 4 GPIO_ACTIVE_HIGH>, /* Ready (RDY) */
<&gpio_latch 5 GPIO_ACTIVE_LOW>, /* Chip Enable (nCE) */
<&gpio_latch 6 GPIO_ACTIVE_HIGH>, /* Command Latch Enable (CLE) */
<&gpio_latch 7 GPIO_ACTIVE_HIGH>, /* Address Latch Enable (ALE) */
<&gpio 12 GPIO_ACTIVE_LOW>, /* Read/Write Enable (nRW) */
<&gpio_latch 8 GPIO_ACTIVE_LOW>, /* Latch Enable (nLE) */
<&gpio_key 2 GPIO_ACTIVE_HIGH>; /* Key poll disable */
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "booter";
reg = <0x0 0x0040000>;
read-only;
};
partition@40000 {
label = "kernel";
reg = <0x0040000 0x03c0000>;
};
partition@400000 {
label = "ubi";
reg = <0x0400000 0x7c00000>;
};
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
button@0 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio_key 1 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "green:power";
gpios = <&gpio_latch 1 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
user {
label = "green:user";
gpios = <&gpio_latch 2 GPIO_ACTIVE_HIGH>;
};
led1 {
label = "green:led1";
gpios = <&ssr 0 GPIO_ACTIVE_HIGH>;
};
led2 {
label = "green:led2";
gpios = <&ssr 1 GPIO_ACTIVE_HIGH>;
};
led3 {
label = "green:led3";
gpios = <&ssr 2 GPIO_ACTIVE_HIGH>;
};
led4 {
label = "green:led4";
gpios = <&ssr 3 GPIO_ACTIVE_HIGH>;
};
led5 {
label = "green:led5";
gpios = <&ssr 4 GPIO_ACTIVE_HIGH>;
};
};
gpio-export {
compatible = "gpio-export";
beeper {
gpio-export,name = "beeper";
gpio-export,output = <1>; /* Must be 1 to avoid EMI induced clicking noise */
gpios = <&ssr 5 GPIO_ACTIVE_HIGH>;
};
usb_power {
gpio-export,name = "power-usb";
gpio-export,output = <1>;
gpios = <&ssr 6 GPIO_ACTIVE_HIGH>;
};
pcie_power {
gpio-export,name = "power-pcie";
gpio-export,output = <0>;
gpios = <&ssr 7 GPIO_ACTIVE_HIGH>;
};
};
};
&ref {
clock-frequency = <40000000>;
};
&spi {
status = "okay";
compatible = "qca,ar7100-spi";
cs-gpios = <0>, <&gpio_latch 0 GPIO_ACTIVE_LOW>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "routerboot";
reg = <0x0 0x0>;
read-only;
};
hard_config {
read-only;
};
bios {
size = <0x1000>;
read-only;
};
soft_config {
};
};
};
ssr: ssr@1 {
compatible = "fairchild,74hc595";
gpio-controller;
#gpio-cells = <2>;
registers-number = <1>;
reg = <1>;
spi-max-frequency = <50000000>;
};
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
pll-data = <0x02000000 0x00000101 0x00001313>;
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
rxd-delay = <1>;
txd-delay = <1>;
};
};
&wmac {
status = "okay";
qca,no-eeprom;
model = "MikroTik RouterBOARD 912UAG-(2,5)HPnD";
};
&pcie {

View File

@@ -32,7 +32,7 @@
};
&ahb {
pcie: pcie-controller@180c0000 {
pcie: pcie@180c0000 {
compatible = "qcom,ar9340-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;

View File

@@ -84,7 +84,7 @@
&pcie {
status = "okay";
ath9k: wifi@0,0,0 {
ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
nvmem-cells = <&macaddr_art_0 1>, <&calibration_art_5000>;

View File

@@ -34,7 +34,7 @@
};
&pcie {
wifi@0,0,0 {
wifi@0,0 {
nvmem-cells = <&macaddr_art_0 0>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};

View File

@@ -29,7 +29,7 @@
};
&pcie {
wifi@0,0,0 {
wifi@0,0 {
nvmem-cells = <&macaddr_art_0 (-2)>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};

View File

@@ -56,7 +56,7 @@
&pcie {
status = "okay";
ath9k: wifi@0,0,0 {
ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
};

View File

@@ -203,7 +203,7 @@
&pcie {
status = "okay";
wifi@0,0,0 {
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0000 0 0 0 0>;

View File

@@ -90,7 +90,7 @@
#address-cells = <1>;
#size-cells = <1>;
ubi@ac0000 {
ubi@0 {
label = "ubi";
reg = <0x0 0x7500000>;
};
@@ -171,22 +171,23 @@
reg = <0x3c0000 0x300000>;
};
kernel@6c0000 {
label = "kernel";
reg = <0x6c0000 0x400000>;
};
ubiconcat0: partition@ac0000 {
label = "ubiconcat0";
reg = <0xac0000 0x1500000>;
};
partition@6c0000 {
label = "firmware";
reg = <0x6c0000 0x1900000>;
compatible = "openwrt,uimage", "denx,uimage";
openwrt,ih-magic = <0x33373033>;
openwrt,ih-type = <IH_TYPE_FILESYSTEM>;
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
kernel@0 {
label = "kernel";
reg = <0x0 0x400000>;
};
ubiconcat0: partition@400000 {
label = "ubiconcat0";
reg = <0x400000 0x1500000>;
};
};
partition@1fc0000 {

View File

@@ -48,7 +48,7 @@
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
gpio = <&gpio 18 GPIO_ACTIVE_LOW>;
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
usb_vbus: reg_usb_vbus {
@@ -57,7 +57,7 @@
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-active-high;
gpio = <&gpio 19 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 19 GPIO_ACTIVE_HIGH>;
};
};
@@ -103,8 +103,6 @@
pinctrl-0 = <&pmx_spi_cs1>;
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
@@ -164,8 +162,6 @@
};
flash@1 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <25000000>;

View File

@@ -59,7 +59,7 @@
&pcie {
status = "okay";
ath9k: wifi@0,0,0 {
ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0 0 0 0 0>;
ieee80211-freq-limit = <2402000 2482000>;

View File

@@ -63,7 +63,7 @@
&pcie {
status = "disabled";
wifi@0,0,0 {
wifi@0,0 {
nvmem-cells = <&calibration_art_5000>;
nvmem-cell-names = "calibration";
};

View File

@@ -61,7 +61,7 @@
};
&pcie {
wifi@0,0,0 {
wifi@0,0 {
nvmem-cells = <&macaddr_art_0 (-1)>, <&calibration_art_5000>;
nvmem-cell-names = "mac-address", "calibration";
};

View File

@@ -197,9 +197,6 @@
nand-ecc-mode = "hw";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};

View File

@@ -72,7 +72,6 @@
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
device_type = "pci";
};
};

View File

@@ -11,7 +11,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 11 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};

View File

@@ -53,8 +53,6 @@
status = "okay";
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;

View File

@@ -95,8 +95,6 @@
status = "okay";
flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;

View File

@@ -150,7 +150,7 @@
reg = <0x18070000 0x4>;
};
pcie0: pcie-controller@180c0000 {
pcie0: pcie@180c0000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;

View File

@@ -75,7 +75,7 @@
&pcie0 {
status = "okay";
wifi@0,0,0 {
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};

View File

@@ -83,7 +83,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};

View File

@@ -76,7 +76,7 @@
&pcie0 {
status = "okay";
wifi@0,0,0 {
wifi@0,0 {
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
nvmem-cells = <&calibration_art_5000>;

View File

@@ -109,7 +109,7 @@
&mdio0 {
status = "okay";
switch {
switch@0 {
compatible = "qca,ar8327";
reg = <0>;

View File

@@ -0,0 +1,29 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca9558_mikrotik_routerboard-92x.dtsi"
/ {
compatible = "mikrotik,routerboard-911g-5hpacd", "qca,qca9558";
model = "MikroTik RouterBOARD 911G-5HPacD";
ath10k-leds {
compatible = "gpio-leds";
wlan5g {
label = "green:wlan5g";
gpios = <&ath10k 0 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&pcie1 {
status = "okay";
ath10k: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
#gpio-cells = <2>;
gpio-controller;
};
};

View File

@@ -17,6 +17,14 @@
};
};
&mdio1 {
status = "okay";
};
&eth1 {
status = "okay";
};
&pcie1 {
status = "okay";

View File

@@ -25,6 +25,14 @@
};
};
&mdio1 {
status = "okay";
};
&eth1 {
status = "okay";
};
&pcie0 {
status = "okay";

View File

@@ -86,8 +86,6 @@
};
&mdio1 {
status = "okay";
phy_sfp: ethernet-phy@0 {
reg = <0>;
phy-mode = "sgmii";
@@ -96,8 +94,6 @@
};
&eth1 {
status = "okay";
phy-handle = <&phy_sfp>;
pll-data = <0x03000000 0x00000101 0x00001616>;
qca955x-sgmii-fixup;

View File

@@ -62,7 +62,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 11 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
status = "disabled";

View File

@@ -72,7 +72,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 21 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
@@ -81,7 +81,7 @@
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 22 GPIO_ACTIVE_HIGH>;
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
enable-active-high;
};
};

View File

@@ -143,16 +143,20 @@
firmware@500000 {
label = "firmware";
reg = <0x500000 0x7b00000>;
};
partition@500000 {
label = "kernel";
reg = <0x500000 0x400000>;
};
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@900000 {
label = "ubi";
reg = <0x900000 0x7700000>;
partition@0 {
label = "kernel";
reg = <0x0 0x400000>;
};
partition@400000 {
label = "ubi";
reg = <0x400000 0x7700000>;
};
};
};
};

View File

@@ -185,7 +185,7 @@
reg = <0x18070000 0x58>;
};
pcie0: pcie-controller@180c0000 {
pcie0: pcie@180c0000 {
compatible = "qcom,qca9550-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
@@ -222,7 +222,7 @@
status = "disabled";
};
pcie1: pcie-controller@18250000 {
pcie1: pcie@18250000 {
compatible = "qcom,qca9550-pci", "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;
@@ -313,9 +313,6 @@
nand-ecc-mode = "hw";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};

View File

@@ -119,7 +119,7 @@
&pcie0 {
status = "okay";
wifi@0,0,0 {
wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
qca,no-eeprom;

View File

@@ -26,16 +26,16 @@
};
&pcie0 {
ath10k_0: wifi@0,0,0 {
ath10k_0: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 0 0 0 0>;
};
};
&pcie1 {
ath10k_1: wifi@0,1,0 {
ath10k_1: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0 1 0 0 0>;
reg = <0x0 0 0 0 0>;
};
};

View File

@@ -43,7 +43,7 @@
&pcie0 {
status = "okay";
ath10k_0: wifi@0,0,0 {
ath10k_0: wifi@0,0 {
compatible = "qcom,ath10k";
reg = <0x0000 0 0 0 0>;
};

View File

@@ -86,9 +86,9 @@
#address-cells = <1>;
#size-cells = <1>;
macaddr_uboot_0fc00: macaddr@0fc00 {
macaddr_uboot_fc00: macaddr@fc00 {
compatible = "mac-base";
reg = <0x0fc00 0x6>;
reg = <0xfc00 0x6>;
#nvmem-cell-cells = <1>;
};
};
@@ -134,7 +134,7 @@
compatible = "qcom,ath10k";
reg = <0 0 0 0 0>;
nvmem-cells = <&macaddr_uboot_0fc00 (-2)>, <&calibration_ath10k>;
nvmem-cells = <&macaddr_uboot_fc00 (-2)>, <&calibration_ath10k>;
nvmem-cell-names = "mac-address", "calibration";
};
};
@@ -148,21 +148,21 @@
phy-handle = <&swphy4>;
nvmem-cells = <&macaddr_uboot_0fc00 1>;
nvmem-cells = <&macaddr_uboot_fc00 1>;
nvmem-cell-names = "mac-address";
};
&eth1 {
status = "okay";
nvmem-cells = <&macaddr_uboot_0fc00 0>;
nvmem-cells = <&macaddr_uboot_fc00 0>;
nvmem-cell-names = "mac-address";
};
&wmac {
status = "okay";
nvmem-cells = <&macaddr_uboot_0fc00 (-1)>, <&calibration_ath9k>;
nvmem-cells = <&macaddr_uboot_fc00 (-1)>, <&calibration_ath9k>;
nvmem-cell-names = "mac-address", "calibration";
};

View File

@@ -0,0 +1,35 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca9563_ubnt_unifiac-lite.dtsi"
/ {
compatible = "ubnt,uk-ultra", "qca,qca9563";
model = "Ubiquiti UniFi Swiss Army Knife Ultra";
};
&leds {
led-rssi0 {
label = "white:rssi0";
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
};
led-rssi1 {
label = "white:rssi1";
gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
};
led-rssi2 {
label = "white:rssi2";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
};
led-rssi3 {
label = "white:rssi3";
gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
};
};
/**
* Antenna selection on GPIO5 and GPIO6
* High = Internal ; Low = External
*/

View File

@@ -13,7 +13,7 @@
led-upgrade = &led_blue;
};
leds {
leds: leds {
compatible = "gpio-leds";
led_white: led_white {

View File

@@ -157,7 +157,7 @@
status = "disabled";
};
pcie: pcie-controller@18250000 {
pcie: pcie@18250000 {
compatible = "qcom,ar7240-pci";
#address-cells = <3>;
#size-cells = <2>;

View File

@@ -310,11 +310,11 @@ ag71xx_ring_size_order(int size)
#define FIFO_CFG4_MC BIT(8) /* Multicast Packet */
#define FIFO_CFG4_BC BIT(9) /* Broadcast Packet */
#define FIFO_CFG4_DR BIT(10) /* Dribble */
#define FIFO_CFG4_LE BIT(11) /* Long Event */
#define FIFO_CFG4_CF BIT(12) /* Control Frame */
#define FIFO_CFG4_PF BIT(13) /* Pause Frame */
#define FIFO_CFG4_UO BIT(14) /* Unsupported Opcode */
#define FIFO_CFG4_VT BIT(15) /* VLAN tag detected */
#define FIFO_CFG4_CF BIT(11) /* Control Frame */
#define FIFO_CFG4_PF BIT(12) /* Pause Frame */
#define FIFO_CFG4_UO BIT(13) /* Unsupported Opcode */
#define FIFO_CFG4_VT BIT(14) /* VLAN tag detected */
#define FIFO_CFG4_LE BIT(15) /* Long Event */
#define FIFO_CFG4_FT BIT(16) /* Frame Truncated */
#define FIFO_CFG4_UC BIT(17) /* Unicast Packet */
@@ -322,20 +322,20 @@ ag71xx_ring_size_order(int size)
#define FIFO_CFG5_DV BIT(1) /* RX_DV Event */
#define FIFO_CFG5_FC BIT(2) /* False Carrier */
#define FIFO_CFG5_CE BIT(3) /* Code Error */
#define FIFO_CFG5_LM BIT(4) /* Length Mismatch */
#define FIFO_CFG5_LO BIT(5) /* Length Out of Range */
#define FIFO_CFG5_OK BIT(6) /* Packet is OK */
#define FIFO_CFG5_MC BIT(7) /* Multicast Packet */
#define FIFO_CFG5_BC BIT(8) /* Broadcast Packet */
#define FIFO_CFG5_DR BIT(9) /* Dribble */
#define FIFO_CFG5_CF BIT(10) /* Control Frame */
#define FIFO_CFG5_PF BIT(11) /* Pause Frame */
#define FIFO_CFG5_UO BIT(12) /* Unsupported Opcode */
#define FIFO_CFG5_VT BIT(13) /* VLAN tag detected */
#define FIFO_CFG5_LE BIT(14) /* Long Event */
#define FIFO_CFG5_FT BIT(15) /* Frame Truncated */
#define FIFO_CFG5_16 BIT(16) /* unknown */
#define FIFO_CFG5_17 BIT(17) /* unknown */
#define FIFO_CFG5_CR BIT(4) /* CRC error */
#define FIFO_CFG5_LM BIT(5) /* Length Mismatch */
#define FIFO_CFG5_LO BIT(6) /* Length out of range */
#define FIFO_CFG5_OK BIT(7) /* Packet is OK */
#define FIFO_CFG5_MC BIT(8) /* Multicast Packet */
#define FIFO_CFG5_BC BIT(9) /* Broadcast Packet */
#define FIFO_CFG5_DR BIT(10) /* Dribble */
#define FIFO_CFG5_CF BIT(11) /* Control Frame */
#define FIFO_CFG5_PF BIT(12) /* Pause Frame */
#define FIFO_CFG5_UO BIT(13) /* Unsupported Opcode */
#define FIFO_CFG5_VT BIT(14) /* VLAN tag detected */
#define FIFO_CFG5_LE BIT(15) /* Long Event */
#define FIFO_CFG5_FT BIT(16) /* Frame Truncated */
#define FIFO_CFG5_UC BIT(17) /* Unicast Packet */
#define FIFO_CFG5_SF BIT(18) /* Short Frame */
#define FIFO_CFG5_BM BIT(19) /* Byte Mode */

View File

@@ -169,8 +169,7 @@ static void ag71xx_ethtool_get_strings(struct net_device *netdev, u32 sset,
int i;
for (i = 0; i < ARRAY_SIZE(ag71xx_statistics); i++)
memcpy(data + i * ETH_GSTRING_LEN,
ag71xx_statistics[i].name, ETH_GSTRING_LEN);
ethtool_puts(&data, ag71xx_statistics[i].name);
}
}

View File

@@ -407,11 +407,11 @@ static void ag71xx_dma_reset(struct ag71xx *ag)
FIFO_CFG4_VT)
#define FIFO_CFG5_INIT (FIFO_CFG5_DE | FIFO_CFG5_DV | FIFO_CFG5_FC | \
FIFO_CFG5_CE | FIFO_CFG5_LO | FIFO_CFG5_OK | \
FIFO_CFG5_MC | FIFO_CFG5_BC | FIFO_CFG5_DR | \
FIFO_CFG5_CF | FIFO_CFG5_PF | FIFO_CFG5_VT | \
FIFO_CFG5_LE | FIFO_CFG5_FT | FIFO_CFG5_16 | \
FIFO_CFG5_17 | FIFO_CFG5_SF)
FIFO_CFG5_CE | FIFO_CFG5_LM | FIFO_CFG5_LO | \
FIFO_CFG5_OK | FIFO_CFG5_MC | FIFO_CFG5_BC | \
FIFO_CFG5_DR | FIFO_CFG5_CF | FIFO_CFG5_UO | \
FIFO_CFG5_VT | FIFO_CFG5_LE | FIFO_CFG5_FT | \
FIFO_CFG5_UC | FIFO_CFG5_SF)
static void ag71xx_hw_stop(struct ag71xx *ag)
{

View File

@@ -516,6 +516,13 @@ ubnt,rocket-m)
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:link3" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:link4" "wlan0" "76" "100"
;;
ubnt,uk-ultra)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "RSSILOW" "white:rssi0" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "white:rssi1" "wlan0" "26" "100"
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "white:rssi2" "wlan0" "51" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "white:rssi3" "wlan0" "76" "100"
;;
wallys,dr531)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth0"
ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x2"

View File

@@ -116,6 +116,7 @@ ath79_setup_interfaces()
ubnt,powerbridge-m|\
ubnt,rocket-5ac-lite|\
ubnt,rocket-m|\
ubnt,uk-ultra|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\

View File

@@ -92,6 +92,10 @@ ubnt,nanostation-m)
ubnt,nanostation-m-xw)
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "2"
;;
ubnt,uk-ultra)
ucidef_add_gpio_switch "ant0_internal" "ANT0 Internal" "5" "1"
ucidef_add_gpio_switch "ant1_internal" "ANT1 Internal" "6" "1"
;;
zbtlink,zbt-wd323)
ucidef_add_gpio_switch "io0" "IO#0" "0"
ucidef_add_gpio_switch "io1" "IO#1" "1"

View File

@@ -37,6 +37,7 @@ case "$FIRMWARE" in
sophos,ap100|\
sophos,ap100c|\
ubnt,bullet-ac|\
ubnt,uk-ultra|\
ubnt,unifiac-lite|\
ubnt,unifiac-lr|\
ubnt,unifiac-mesh|\

View File

@@ -121,6 +121,13 @@ define Device/ubnt-xw
UBNT_VERSION := 6.0.4
endef
define Device/ubnt_unifiac
DEVICE_VENDOR := Ubiquiti
SOC := qca9563
IMAGE_SIZE := 15488k
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
endef
define Device/ubnt-unifi-jffs2
$(Device/ubnt)
KERNEL_SIZE := 3072k

View File

@@ -229,6 +229,13 @@ define Device/ubnt_routerstation-pro
endef
TARGET_DEVICES += ubnt_routerstation-pro
define Device/ubnt_uk-ultra
$(Device/ubnt_unifiac)
DEVICE_MODEL := UniFi Swiss Army Knife Ultra
DEVICE_PACKAGES += rssileds -swconfig
endef
TARGET_DEVICES += ubnt_uk-ultra
define Device/ubnt_unifi-ap
$(Device/ubnt-bz)
DEVICE_MODEL := UniFi AP
@@ -244,13 +251,6 @@ define Device/ubnt_unifi-ap-lr
endef
TARGET_DEVICES += ubnt_unifi-ap-lr
define Device/ubnt_unifiac
DEVICE_VENDOR := Ubiquiti
SOC := qca9563
IMAGE_SIZE := 15488k
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
endef
define Device/ubnt_unifiac-lite
$(Device/ubnt_unifiac)
DEVICE_MODEL := UniFi AC Lite

View File

@@ -28,15 +28,37 @@ define Device/mikrotik_routerboard-911-lite
endef
TARGET_DEVICES += mikrotik_routerboard-911-lite
define Device/mikrotik_routerboard-911g-xhpnd
$(Device/mikrotik_nand)
SOC := ar9342
DEVICE_MODEL := RouterBOARD 911G-2HPnD
DEVICE_ALT0_VENDOR := Mikrotik
DEVICE_ALT0_MODEL := RouterBOARD 911G-5HPnD
DEVICE_PACKAGES += rssileds
SUPPORTED_DEVICES += rb-912uag-2hpnd
endef
TARGET_DEVICES += mikrotik_routerboard-911g-xhpnd
define Device/mikrotik_routerboard-912uag-2hpnd
$(Device/mikrotik_nand)
SOC := ar9342
DEVICE_MODEL := RouterBOARD 912UAG-2HPnD
DEVICE_PACKAGES += kmod-usb-ehci kmod-usb2
DEVICE_ALT0_VENDOR := Mikrotik
DEVICE_ALT0_MODEL := RouterBOARD 912UAG-5HPnD
DEVICE_PACKAGES += kmod-usb-ehci kmod-usb2 rssileds
SUPPORTED_DEVICES += rb-912uag-2hpnd
endef
TARGET_DEVICES += mikrotik_routerboard-912uag-2hpnd
define Device/mikrotik_routerboard-911g-5hpacd
$(Device/mikrotik_nand)
SOC := qca9558
DEVICE_MODEL := RouterBOARD 911G-5HPacD
DEVICE_PACKAGES += kmod-ath10k-ct ath10k-firmware-qca988x-ct
SUPPORTED_DEVICES += rb-921gs-5hpacd-r2
endef
TARGET_DEVICES += mikrotik_routerboard-911g-5hpacd
define Device/mikrotik_routerboard-921gs-5hpacd-15s
$(Device/mikrotik_nand)
SOC := qca9558

View File

@@ -16,6 +16,15 @@ mikrotik,routerboard-lhg-5nd)
ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:rssimediumhigh" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "rssihigh" "green:rssihigh" "wlan0" "80" "100"
;;
mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "rssilow" "green:led1" "wlan0" "1" "100"
ucidef_set_led_rssi "rssimediumlow" "rssimediumlow" "green:led2" "wlan0" "20" "100"
ucidef_set_led_rssi "rssimedium" "rssimedium" "green:led3" "wlan0" "40" "100"
ucidef_set_led_rssi "rssimediumhigh" "rssimediumhigh" "green:led4" "wlan0" "60" "100"
ucidef_set_led_rssi "rssihigh" "rssihigh" "green:led5" "wlan0" "80" "100"
;;
mikrotik,routerboard-750-r2|\
mikrotik,routerboard-951ui-2hnd|\
mikrotik,routerboard-951ui-2nd|\

View File

@@ -20,6 +20,7 @@ ath79_setup_interfaces()
"0@eth0" "1:lan:4" "2:lan:1" "3:lan:3" "4:lan:2"
;;
mikrotik,routerboard-911-lite|\
mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-lhg-5nd|\
@@ -61,6 +62,8 @@ ath79_setup_macs()
case "$board" in
mikrotik,routerboard-911-lite|\
mikrotik,routerboard-911g-5hpacd|\
mikrotik,routerboard-911g-xhpnd|\
mikrotik,routerboard-912uag-2hpnd|\
mikrotik,routerboard-lhg-2nd|\
mikrotik,routerboard-lhg-5nd|\

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