Merge Official Source
This commit is contained in:
commit
1bb251a7e9
@ -6,11 +6,11 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
||||
endif
|
||||
|
||||
LINUX_VERSION-5.4 = .128
|
||||
LINUX_VERSION-5.10 = .46
|
||||
LINUX_VERSION-5.4 = .132
|
||||
LINUX_VERSION-5.10 = .51
|
||||
|
||||
LINUX_KERNEL_HASH-5.4.128 = 3b54aebb816b9e628cb9ba3055a6aca58ce0ddeec49366c0da86ced9a7be39ab
|
||||
LINUX_KERNEL_HASH-5.10.46 = 569122a39c6b325befb9ac1c07da0c53e6363b3baacd82081d131b06c1dc1415
|
||||
LINUX_KERNEL_HASH-5.4.132 = 8466adbfb3579e751ede683496df7bb20f258b5f882250f3dd82be63736d00ef
|
||||
LINUX_KERNEL_HASH-5.10.51 = 95bae893c274ccc3a8a6271f377bcc7fd3badcb7990ecd41b05b2731f1d67ae2
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||
|
||||
25
package/boot/uboot-envtools/files/mediatek_mt7623
Normal file
25
package/boot/uboot-envtools/files/mediatek_mt7623
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Copyright (C) 2021 OpenWrt.org
|
||||
#
|
||||
|
||||
[ -e /etc/config/ubootenv ] && exit 0
|
||||
|
||||
touch /etc/config/ubootenv
|
||||
|
||||
. /lib/uboot-envtools.sh
|
||||
. /lib/functions.sh
|
||||
|
||||
board=$(board_name)
|
||||
|
||||
case "$board" in
|
||||
bananapi,bpi-r2)
|
||||
. /lib/upgrade/common.sh
|
||||
export_bootdevice
|
||||
export_partdevice ubootpart 1
|
||||
ubootenv_add_uci_config "/dev/$ubootpart" "0xb0000" "0x10000" "0x10000" "1"
|
||||
esac
|
||||
|
||||
config_load ubootenv
|
||||
config_foreach ubootenv_add_app_config ubootenv
|
||||
|
||||
exit 0
|
||||
@ -39,3 +39,14 @@
|
||||
env_relocate();
|
||||
return 0;
|
||||
}
|
||||
--- a/board/mediatek/mt7622/Kconfig
|
||||
+++ b/board/mediatek/mt7622/Kconfig
|
||||
@@ -14,4 +14,8 @@ config MTK_BROM_HEADER_INFO
|
||||
string
|
||||
default "media=nor"
|
||||
|
||||
+config RESET_BUTTON_LABEL
|
||||
+ string "Button to trigger factory reset"
|
||||
+ default "reset"
|
||||
+
|
||||
endif
|
||||
|
||||
@ -1,19 +1,296 @@
|
||||
--- a/configs/mt7623n_bpir2_defconfig
|
||||
+++ b/configs/mt7623n_bpir2_defconfig
|
||||
@@ -51,6 +51,16 @@ CONFIG_SYSRESET=y
|
||||
@@ -4,53 +4,137 @@ CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_SYS_TEXT_BASE=0x81e00000
|
||||
CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||
CONFIG_NR_DRAM_BANKS=1
|
||||
-CONFIG_ENV_SIZE=0x1000
|
||||
+CONFIG_ENV_SIZE=0x10000
|
||||
CONFIG_ENV_OFFSET=0x100000
|
||||
CONFIG_TARGET_MT7623=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="mt7623n-bananapi-bpi-r2"
|
||||
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||
CONFIG_DISTRO_DEFAULTS=y
|
||||
CONFIG_FIT=y
|
||||
-CONFIG_FIT_VERBOSE=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_AUTOBOOT_KEYED=y
|
||||
+CONFIG_AUTOBOOT_MENU_SHOW=y
|
||||
+CONFIG_BOARD_LATE_INIT=y
|
||||
CONFIG_BOOTDELAY=3
|
||||
+CONFIG_BOOTP_SEND_HOSTNAME=y
|
||||
CONFIG_DEFAULT_FDT_FILE="mt7623n-bananapi-bpi-r2.dtb"
|
||||
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
||||
+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r2_env"
|
||||
+CONFIG_BUTTON=y
|
||||
+CONFIG_BUTTON_GPIO=y
|
||||
+CONFIG_RESET_BUTTON_LABEL="factory"
|
||||
+CONFIG_CFB_CONSOLE_ANSI=y
|
||||
+CONFIG_CMD_ENV_FLAGS=y
|
||||
# CONFIG_DISPLAY_BOARDINFO is not set
|
||||
-CONFIG_SYS_PROMPT="U-Boot> "
|
||||
+CONFIG_SYS_PROMPT="MT7623> "
|
||||
CONFIG_CMD_BOOTMENU=y
|
||||
+CONFIG_CMD_BOOTP=y
|
||||
+CONFIG_CMD_BUTTON=y
|
||||
+CONFIG_CMD_CACHE=y
|
||||
+CONFIG_CMD_CDP=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=y
|
||||
+CONFIG_CMD_FAT=y
|
||||
+CONFIG_CMD_FS_GENERIC=y
|
||||
+CONFIG_CMD_FS_UUID=y
|
||||
# CONFIG_CMD_ELF is not set
|
||||
# CONFIG_CMD_XIMG is not set
|
||||
CONFIG_CMD_GPIO=y
|
||||
-CONFIG_CMD_GPT=y
|
||||
+# CONFIG_CMD_GPT is not set
|
||||
+CONFIG_CMD_HASH=y
|
||||
+CONFIG_CMD_ITEST=y
|
||||
+CONFIG_CMD_LED=y
|
||||
+CONFIG_CMD_LICENSE=y
|
||||
+CONFIG_CMD_LINK_LOCAL=y
|
||||
+CONFIG_CMD_MBR=y
|
||||
CONFIG_CMD_MMC=y
|
||||
-CONFIG_CMD_READ=y
|
||||
-# CONFIG_CMD_SETEXPR is not set
|
||||
+CONFIG_CMD_MTD=y
|
||||
# CONFIG_CMD_NFS is not set
|
||||
+CONFIG_CMD_PCI=y
|
||||
+CONFIG_CMD_SF_TEST=y
|
||||
+CONFIG_CMD_PING=y
|
||||
+CONFIG_CMD_PXE=y
|
||||
+CONFIG_CMD_PWM=y
|
||||
+CONFIG_CMD_SMC=y
|
||||
+CONFIG_CMD_TFTPBOOT=y
|
||||
+CONFIG_CMD_TFTPSRV=y
|
||||
+CONFIG_CMD_ASKENV=y
|
||||
+CONFIG_CMD_PART=y
|
||||
+CONFIG_CMD_RARP=y
|
||||
+CONFIG_CMD_SATA=y
|
||||
+CONFIG_CMD_SETEXPR=y
|
||||
+CONFIG_CMD_SLEEP=y
|
||||
+CONFIG_CMD_SNTP=y
|
||||
+CONFIG_CMD_SOURCE=y
|
||||
+CONFIG_CMD_STRINGS=y
|
||||
+CONFIG_CMD_USB=y
|
||||
+CONFIG_CMD_UUID=y
|
||||
+CONFIG_CMD_MMC=y
|
||||
+CONFIG_CMD_READ=y
|
||||
+CONFIG_CMD_SCSI=y
|
||||
+CONFIG_DISPLAY_CPUINFO=y
|
||||
+CONFIG_DM_ETH=y
|
||||
+CONFIG_DM_GPIO=y
|
||||
+CONFIG_DM_SCSI=y
|
||||
+CONFIG_DM_MMC=y
|
||||
+CONFIG_DM_MTD=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_DM_SERIAL=y
|
||||
+CONFIG_DM_REGULATOR_GPIO=y
|
||||
+CONFIG_DM_USB=y
|
||||
+CONFIG_DM_PCI=y
|
||||
+CONFIG_DM_PWM=y
|
||||
+CONFIG_AHCI=y
|
||||
+CONFIG_AHCI_PCI=y
|
||||
+CONFIG_SCSI_AHCI=y
|
||||
+CONFIG_SCSI=y
|
||||
+CONFIG_PWM_MTK=y
|
||||
+CONFIG_HUSH_PARSER=y
|
||||
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
CONFIG_ENV_IS_IN_MMC=y
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_NET_RANDOM_ETHADDR=y
|
||||
+CONFIG_NETCONSOLE=y
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_SYSCON=y
|
||||
CONFIG_CLK=y
|
||||
-CONFIG_DM_MMC=y
|
||||
+CONFIG_LZMA=y
|
||||
+CONFIG_MEDIATEK_ETH=y
|
||||
# CONFIG_MMC_QUIRKS is not set
|
||||
CONFIG_SUPPORT_EMMC_BOOT=y
|
||||
CONFIG_MMC_HS400_SUPPORT=y
|
||||
CONFIG_MMC_MTK=y
|
||||
+CONFIG_MTK_AHCI=y
|
||||
+CONFIG_MTK_POWER_DOMAIN=y
|
||||
+CONFIG_MTK_SERIAL=y
|
||||
+CONFIG_MTK_TIMER=y
|
||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
+CONFIG_PARTITION_UUIDS=y
|
||||
+CONFIG_PCI=y
|
||||
+CONFIG_PCIE_MEDIATEK=y
|
||||
+CONFIG_PHY=y
|
||||
CONFIG_PHY_FIXED=y
|
||||
-CONFIG_DM_ETH=y
|
||||
-CONFIG_MEDIATEK_ETH=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCONF=y
|
||||
CONFIG_PINCTRL_MT7623=y
|
||||
CONFIG_POWER_DOMAIN=y
|
||||
-CONFIG_MTK_POWER_DOMAIN=y
|
||||
-CONFIG_DM_SERIAL=y
|
||||
-CONFIG_MTK_SERIAL=y
|
||||
+CONFIG_RANDOM_UUID=y
|
||||
+CONFIG_REGEX=y
|
||||
CONFIG_SYSRESET=y
|
||||
CONFIG_SYSRESET_WATCHDOG=y
|
||||
CONFIG_TIMER=y
|
||||
CONFIG_MTK_TIMER=y
|
||||
+CONFIG_CMD_BOOTZ=y
|
||||
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
+#enables savenenv-command
|
||||
+CONFIG_ENV_IS_IN_FAT=y
|
||||
+CONFIG_ENV_FAT_INTERFACE="mmc"
|
||||
+CONFIG_ENV_FAT_DEVICE_AND_PART=":2"
|
||||
+CONFIG_ENV_FAT_FILE="uboot.env"
|
||||
+CONFIG_CMD_ASKENV=y
|
||||
+CONFIG_ENV_SIZE=0x2000
|
||||
+CONFIG_CMD_SETEXPR=y
|
||||
-CONFIG_MTK_TIMER=y
|
||||
+CONFIG_VERSION_VARIABLE=y
|
||||
CONFIG_WDT_MTK=y
|
||||
CONFIG_LZMA=y
|
||||
-CONFIG_LZMA=y
|
||||
# CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set
|
||||
--- /dev/null
|
||||
+++ b/bananapi_bpi-r2_env
|
||||
@@ -0,0 +1,64 @@
|
||||
+ipaddr=192.168.1.1
|
||||
+serverip=192.168.1.254
|
||||
+loadaddr=0x88000000
|
||||
+dtaddr=0x83f00000
|
||||
+console=earlycon=uart8250,mmio32,0x11004000 console=ttyS2,115200
|
||||
+initrd_high=0xafffffff
|
||||
+part_default=3
|
||||
+part_recovery=2
|
||||
+bootcmd=run boot_mmc
|
||||
+bootdelay=0
|
||||
+bootfile=openwrt-mediatek-mt7623-bananapi_bpi-r2-initramfs-recovery.itb
|
||||
+bootfile_upg=openwrt-mediatek-mt7623-bananapi_bpi-r2-squashfs-sysupgrade.itb
|
||||
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
|
||||
+bootmenu_default=0
|
||||
+bootmenu_delay=0
|
||||
+bootmenu_title= [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )
|
||||
+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
|
||||
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
|
||||
+boot_first=if button factory ; then led $bootled_rec on ; run boot_tftp_recovery ; setenv flag_recover 1 ; run boot_default ; fi ; bootmenu
|
||||
+boot_tftp_forever=led bpi-r64:pio:blue on ; while true ; do run boot_tftp_recovery ; sleep 1 ; done
|
||||
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run mmc_write_production ; if env exists noboot ; then else bootm $loadaddr ; fi
|
||||
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run mmc_write_recovery ; if env exists noboot ; then else bootm $loadaddr ; fi
|
||||
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr
|
||||
+boot_mmc=run boot_production ; run boot_recovery
|
||||
+emmc_init=run emmc_init_bl && run emmc_init_openwrt ; env default bootcmd ; saveenv
|
||||
+emmc_init_bl=run sdmmc_read_emmc_hdr && run emmc_write_hdr && run sdmmc_read_preloader && run emmc_write_preloader && run sdmmc_read_uboot && run emmc_write_uboot
|
||||
+emmc_init_openwrt=run sdmmc_read_recovery && run emmc_write_recovery ; run sdmmc_read_production && run emmc_write_production
|
||||
+emmc_write_hdr=mmc dev 0 0 ; mmc erase 0x0 0x2000 ; mmc write $loadaddr 0x0 0x4 ; mmc dev 0 1 ; mmc partconf 0 1 1 1 ; mmc erase 0x0 0x400 ; mmc write $loadaddr 0x0 0x4 ; mmc partconf 0 1 1 0
|
||||
+emmc_write_preloader=mmc dev 0 1 ; mmc partconf 0 1 1 1 ; mmc write $loadaddr 0x4 0x100 ; mmc partconf 0 1 1 0
|
||||
+emmc_write_uboot=mmc dev 0 0 ; part size mmc 0 1 part_size && part start mmc 0 1 part_addr && mmc write $loadaddr $part_addr 0x400
|
||||
+emmc_write_production=mmc dev 0 0 ; iminfo $loadaddr && part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol
|
||||
+emmc_write_recovery=mmc dev 0 0 ; iminfo $loadaddr && part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol
|
||||
+emmc_read_production=mmc dev 0 0 ; part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_read_vol
|
||||
+emmc_read_recovery=mmc dev 0 0 ; part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_read_vol
|
||||
+mmc_write_production=if test "$bootedfrom" = "SD" ; then run sdmmc_write_production ; else run emmc_write_production ; fi
|
||||
+mmc_write_recovery=if test "$bootedfrom" = "SD" ; run sdmmc_write_recovery ; else run emmc_write_recovery ; fi
|
||||
+mmc_write_vol=imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc erase 0x$part_addr 0x$part_size && mmc write $loadaddr 0x$part_addr 0x$image_size
|
||||
+mmc_read_vol=mmc read $loadaddr $part_addr 0x8 && imszb $loadaddr image_size && test 0x$image_size -le 0x$part_size && mmc read $loadaddr 0x$part_addr 0x$image_size && setexpr filesize $image_size * 0x200
|
||||
+reset_factory=eraseenv && reset
|
||||
+sdmmc_read_emmc_hdr=mmc dev 1 && mmc read $loadaddr 0x1ff8 0x8
|
||||
+sdmmc_read_preloader=mmc dev 1 && mmc read $loadaddr 0x4 0x100
|
||||
+sdmmc_read_uboot=mmc dev 1 ; part start mmc 1 1 part_addr && part size mmc 1 1 part_size && mmc read $loadaddr $part_addr $part_size
|
||||
+sdmmc_read_production=mmc dev 1 ; part start mmc 1 $part_default part_addr && part size mmc 1 $part_default part_size && run mmc_read_vol
|
||||
+sdmmc_read_recovery=mmc dev 1 ; part start mmc 1 $part_recovery part_addr && part size mmc 1 $part_recovery part_size && run mmc_read_vol
|
||||
+sdmmc_write_production=iminfo $fileaddr && mmc dev 1 && part start mmc 1 $part_default part_addr && part size mmc 1 $part_default part_size && run mmc_write_vol
|
||||
+sdmmc_write_recovery=iminfo $fileaddr && mmc dev 1 && part start mmc 1 $part_recovery part_addr && part size mmc 1 $part_recovery part_size && run mmc_write_vol
|
||||
+_checkbootedfrom=setenv _checkbootedfrom ; if itest.l *81dffff0 == 434d4d65 ; then setenv bootedfrom eMMC ; else setenv bootedfrom SD ; fi
|
||||
+_init_env=setenv _init_env ; setenv _create_env ; saveenv ; saveenv
|
||||
+_firstboot=setenv _firstboot ; led bpi-r64:pio:blue on ; run _checkbootedfrom _switch_to_menu _update_bootdev _update_bootcmd _update_bootcmd2 _init_env boot_first
|
||||
+_update_bootcmd=setenv _update_bootcmd ; if test "$bootedfrom" = "SD" ; then setenv boot_production "run sdmmc_read_production && bootm $loadaddr" ; else setenv boot_production "run emmc_read_production && bootm $loadaddr" ; fi
|
||||
+_update_bootcmd2=setenv _update_bootcmd2 ; if test "$bootedfrom" = "SD" ; then setenv boot_recovery "run sdmmc_read_recovery && bootm $loadaddr" ; else setenv boot_recovery "run emmc_read_recovery && bootm $loadaddr" ; fi
|
||||
+_update_bootdev=setenv _update_bootdev ; if test "$bootedfrom" = "SD" ; then setenv bootargs "$console root=/dev/mmcblk1p65" ; else setenv bootargs "$console root=/dev/mmcblk0p65" ; fi
|
||||
+_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 [0;36m[$bootedfrom][0m [33m$ver[0m" ; run _set_bm2
|
||||
+_set_bm2=setenv _set_bm2 ; setenv bootmenu_2 "Boot production system from $bootedfrom.=run boot_production ; run bootmenu_confirm_return" ; run _set_bm3
|
||||
+_set_bm3=setenv _set_bm3 ; setenv bootmenu_3 "Boot recovery system from $bootedfrom.=run boot_recovery ; run bootmenu_confirm_return" ; run _set_bm4
|
||||
+_set_bm4=setenv _set_bm4 ; setenv bootmenu_4 "Load production system via TFTP then write to $bootedfrom.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return" ; run _set_bm5
|
||||
+_set_bm5=setenv _set_bm5 ; setenv bootmenu_5 "Load recovery system via TFTP then write to $bootedfrom.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return" ; run _set_bm5a
|
||||
+_set_bm5a=setenv _set_bm5a ; if test "$bootedfrom" = "SD" ; then run _set_bm6 ; else setenv _set_bm6 ; setenv _menu_next 6 ; fi ; run _set_bmr
|
||||
+_set_bm6=setenv _set_bm6 ; setenv bootmenu_6 "[31mInstall bootloader, recovery and production to eMMC.[0m=run emmc_init ; run bootmenu_confirm_return" ; setenv _menu_next 7
|
||||
+_set_bmr=setenv _set_bmr ; setenv bootmenu_${_menu_next} "Reboot.=reset" ; setexpr _menu_next ${_menu_next} + 1 ; run _set_bmf
|
||||
+_set_bmf=setenv _set_bmf ; setenv bootmenu_${_menu_next} "Reset all settings to factory defaults.=run reset_factory ; reset" ; setenv _menu_next
|
||||
--- a/arch/arm/dts/mt7623n-bananapi-bpi-r2.dts
|
||||
+++ b/arch/arm/dts/mt7623n-bananapi-bpi-r2.dts
|
||||
@@ -66,6 +66,15 @@
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
+
|
||||
+ gpio-keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+
|
||||
+ factory {
|
||||
+ label = "factory";
|
||||
+ gpios = <&gpio 256 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
ð {
|
||||
--- a/board/mediatek/mt7623/mt7623_rfb.c
|
||||
+++ b/board/mediatek/mt7623/mt7623_rfb.c
|
||||
@@ -6,6 +6,17 @@
|
||||
#include <common.h>
|
||||
#include <mmc.h>
|
||||
#include <asm/global_data.h>
|
||||
+#include <config.h>
|
||||
+#include <dm.h>
|
||||
+#include <button.h>
|
||||
+#include <env.h>
|
||||
+#include <init.h>
|
||||
+#include <asm/global_data.h>
|
||||
+#include <linux/delay.h>
|
||||
+
|
||||
+#ifndef CONFIG_RESET_BUTTON_LABEL
|
||||
+#define CONFIG_RESET_BUTTON_LABEL "reset"
|
||||
+#endif
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
@@ -17,6 +28,25 @@ int board_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int board_late_init(void)
|
||||
+{
|
||||
+ struct udevice *dev;
|
||||
+
|
||||
+ if (!button_get_by_label(CONFIG_RESET_BUTTON_LABEL, &dev)) {
|
||||
+ puts("reset button found\n");
|
||||
+#ifdef CONFIG_RESET_BUTTON_SETTLE_DELAY
|
||||
+ mdelay(CONFIG_RESET_BUTTON_SETTLE_DELAY);
|
||||
+#endif
|
||||
+ if (button_get_state(dev) == BUTTON_ON) {
|
||||
+ puts("button pushed, resetting environment\n");
|
||||
+ gd->env_valid = ENV_INVALID;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ env_relocate();
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
#ifdef CONFIG_MMC
|
||||
int mmc_get_boot_dev(void)
|
||||
{
|
||||
--- a/board/mediatek/mt7623/Kconfig
|
||||
+++ b/board/mediatek/mt7623/Kconfig
|
||||
@@ -10,4 +10,8 @@ config MTK_BROM_HEADER_INFO
|
||||
string
|
||||
default "lk=1"
|
||||
|
||||
+config RESET_BUTTON_LABEL
|
||||
+ string "Button to trigger factory reset"
|
||||
+ default "reset"
|
||||
+
|
||||
endif
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
From 22fb5991a44c78ff18ec0082dc90c809356eb893 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Sun, 27 Sep 2020 19:23:35 +0200
|
||||
Subject: [PATCH 1/2] ath10k: Try to get mac-address from dts
|
||||
|
||||
Most of embedded device that have the ath10k wifi integrated store the
|
||||
mac-address in nvmem partitions. Try to fetch the mac-address using the
|
||||
standard 'of_get_mac_address' than in all the check also try to fetch the
|
||||
address using the nvmem api searching for a defined 'mac-address' cell.
|
||||
Mac-address defined in the dts have priority than any other address found.
|
||||
|
||||
Tested-on: QCA9984 hw1.0 PCI 10.4
|
||||
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
---
|
||||
ath10k-5.10/core.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/ath10k-5.10/core.c b/ath10k-5.10/core.c
|
||||
index 5f4e12196..9ed7b9883 100644
|
||||
--- a/ath10k-5.10/core.c
|
||||
+++ b/ath10k-5.10/core.c
|
||||
@@ -8,6 +8,9 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/of.h>
|
||||
+#include <linux/of_net.h>
|
||||
+#include <linux/of_platform.h>
|
||||
+#include <linux/property.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/ctype.h>
|
||||
@@ -2961,8 +2963,14 @@ EXPORT_SYMBOL(ath10k_core_stop);
|
||||
static int ath10k_core_probe_fw(struct ath10k *ar)
|
||||
{
|
||||
struct bmi_target_info target_info;
|
||||
+ const char *mac;
|
||||
int ret = 0;
|
||||
|
||||
+#ifdef CONFIG_OF
|
||||
+ /* register the platform to be found by the of api */
|
||||
+ of_platform_device_create(ar->dev->of_node, NULL, NULL);
|
||||
+#endif
|
||||
+
|
||||
ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "could not power on hif bus (%d)\n", ret);
|
||||
@@ -3062,6 +3068,10 @@ static int ath10k_core_probe_fw(struct ath10k *ar)
|
||||
|
||||
device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr));
|
||||
|
||||
+ mac = of_get_mac_address(ar->dev->of_node);
|
||||
+ if (!IS_ERR(mac))
|
||||
+ ether_addr_copy(ar->mac_addr, mac);
|
||||
+
|
||||
ret = ath10k_core_init_firmware_features(ar);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "fatal problem with firmware features: %d\n",
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -0,0 +1,61 @@
|
||||
From 22fb5991a44c78ff18ec0082dc90c809356eb893 Mon Sep 17 00:00:00 2001
|
||||
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
Date: Sun, 27 Sep 2020 19:23:35 +0200
|
||||
Subject: [PATCH 1/2] ath10k: Try to get mac-address from dts
|
||||
|
||||
Most of embedded device that have the ath10k wifi integrated store the
|
||||
mac-address in nvmem partitions. Try to fetch the mac-address using the
|
||||
standard 'of_get_mac_address' than in all the check also try to fetch the
|
||||
address using the nvmem api searching for a defined 'mac-address' cell.
|
||||
Mac-address defined in the dts have priority than any other address found.
|
||||
|
||||
Tested-on: QCA9984 hw1.0 PCI 10.4
|
||||
|
||||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||||
---
|
||||
drivers/net/wireless/ath/ath10k/core.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
||||
index 5f4e12196..9ed7b9883 100644
|
||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
||||
@@ -8,6 +8,9 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/of.h>
|
||||
+#include <linux/of_net.h>
|
||||
+#include <linux/of_platform.h>
|
||||
+#include <linux/property.h>
|
||||
#include <linux/property.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/ctype.h>
|
||||
@@ -2961,8 +2963,14 @@ EXPORT_SYMBOL(ath10k_core_stop);
|
||||
static int ath10k_core_probe_fw(struct ath10k *ar)
|
||||
{
|
||||
struct bmi_target_info target_info;
|
||||
+ const char *mac;
|
||||
int ret = 0;
|
||||
|
||||
+#ifdef CONFIG_OF
|
||||
+ /* register the platform to be found by the of api */
|
||||
+ of_platform_device_create(ar->dev->of_node, NULL, NULL);
|
||||
+#endif
|
||||
+
|
||||
ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "could not power on hif bus (%d)\n", ret);
|
||||
@@ -3062,6 +3068,10 @@ static int ath10k_core_probe_fw(struct ath10k *ar)
|
||||
|
||||
device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr));
|
||||
|
||||
+ mac = of_get_mac_address(ar->dev->of_node);
|
||||
+ if (!IS_ERR(mac))
|
||||
+ ether_addr_copy(ar->mac_addr, mac);
|
||||
+
|
||||
ret = ath10k_core_init_firmware_features(ar);
|
||||
if (ret) {
|
||||
ath10k_err(ar, "fatal problem with firmware features: %d\n",
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -0,0 +1,111 @@
|
||||
From: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Date: Sat, 9 Jan 2021 18:57:51 +0100
|
||||
Subject: [PATCH] mac80211: introduce aql_enable node in debugfs
|
||||
|
||||
Introduce aql_enable node in debugfs in order to enable/disable aql.
|
||||
This is useful for debugging purpose.
|
||||
|
||||
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/e7a934d5d84e4796c4f97ea5de4e66c824296b07.1610214851.git.lorenzo@kernel.org
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/debugfs.c
|
||||
+++ b/net/mac80211/debugfs.c
|
||||
@@ -281,6 +281,56 @@ static const struct file_operations aql_
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
+static ssize_t aql_enable_read(struct file *file, char __user *user_buf,
|
||||
+ size_t count, loff_t *ppos)
|
||||
+{
|
||||
+ char buf[3];
|
||||
+ int len;
|
||||
+
|
||||
+ len = scnprintf(buf, sizeof(buf), "%d\n",
|
||||
+ !static_key_false(&aql_disable.key));
|
||||
+
|
||||
+ return simple_read_from_buffer(user_buf, count, ppos, buf, len);
|
||||
+}
|
||||
+
|
||||
+static ssize_t aql_enable_write(struct file *file, const char __user *user_buf,
|
||||
+ size_t count, loff_t *ppos)
|
||||
+{
|
||||
+ bool aql_disabled = static_key_false(&aql_disable.key);
|
||||
+ char buf[3];
|
||||
+ size_t len;
|
||||
+
|
||||
+ if (count > sizeof(buf))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ if (copy_from_user(buf, user_buf, count))
|
||||
+ return -EFAULT;
|
||||
+
|
||||
+ buf[sizeof(buf) - 1] = '\0';
|
||||
+ len = strlen(buf);
|
||||
+ if (len > 0 && buf[len - 1] == '\n')
|
||||
+ buf[len - 1] = 0;
|
||||
+
|
||||
+ if (buf[0] == '0' && buf[1] == '\0') {
|
||||
+ if (!aql_disabled)
|
||||
+ static_branch_inc(&aql_disable);
|
||||
+ } else if (buf[0] == '1' && buf[1] == '\0') {
|
||||
+ if (aql_disabled)
|
||||
+ static_branch_dec(&aql_disable);
|
||||
+ } else {
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ return count;
|
||||
+}
|
||||
+
|
||||
+static const struct file_operations aql_enable_ops = {
|
||||
+ .write = aql_enable_write,
|
||||
+ .read = aql_enable_read,
|
||||
+ .open = simple_open,
|
||||
+ .llseek = default_llseek,
|
||||
+};
|
||||
+
|
||||
static ssize_t force_tx_status_read(struct file *file,
|
||||
char __user *user_buf,
|
||||
size_t count,
|
||||
@@ -569,6 +619,7 @@ void debugfs_hw_add(struct ieee80211_loc
|
||||
DEBUGFS_ADD(power);
|
||||
DEBUGFS_ADD(hw_conf);
|
||||
DEBUGFS_ADD_MODE(force_tx_status, 0600);
|
||||
+ DEBUGFS_ADD_MODE(aql_enable, 0600);
|
||||
|
||||
if (local->ops->wake_tx_queue)
|
||||
DEBUGFS_ADD_MODE(aqm, 0600);
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1140,6 +1140,8 @@ enum mac80211_scan_state {
|
||||
SCAN_ABORT,
|
||||
};
|
||||
|
||||
+DECLARE_STATIC_KEY_FALSE(aql_disable);
|
||||
+
|
||||
struct ieee80211_local {
|
||||
/* embed the driver visible part.
|
||||
* don't cast (use the static inlines below), but we keep
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -3887,6 +3887,8 @@ void __ieee80211_schedule_txq(struct iee
|
||||
}
|
||||
EXPORT_SYMBOL(__ieee80211_schedule_txq);
|
||||
|
||||
+DEFINE_STATIC_KEY_FALSE(aql_disable);
|
||||
+
|
||||
bool ieee80211_txq_airtime_check(struct ieee80211_hw *hw,
|
||||
struct ieee80211_txq *txq)
|
||||
{
|
||||
@@ -3896,6 +3898,9 @@ bool ieee80211_txq_airtime_check(struct
|
||||
if (!wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL))
|
||||
return true;
|
||||
|
||||
+ if (static_branch_unlikely(&aql_disable))
|
||||
+ return true;
|
||||
+
|
||||
if (!txq->sta)
|
||||
return true;
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
From: Johannes Berg <johannes.berg@intel.com>
|
||||
Date: Fri, 18 Jun 2021 13:41:44 +0300
|
||||
Subject: [PATCH] mac80211: rearrange struct txq_info for fewer holes
|
||||
|
||||
We can slightly decrease the size of struct txq_info by
|
||||
rearranging some fields for fewer holes, so do that.
|
||||
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
|
||||
Link: https://lore.kernel.org/r/iwlwifi.20210618133832.1bf019a1fe2e.Ib54622b8d6dc1a9a7dc484e573c073119450538b@changeid
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -5,7 +5,7 @@
|
||||
* Copyright 2006-2007 Jiri Benc <jbenc@suse.cz>
|
||||
* Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
|
||||
* Copyright 2013-2015 Intel Mobile Communications GmbH
|
||||
- * Copyright (C) 2018-2020 Intel Corporation
|
||||
+ * Copyright (C) 2018-2021 Intel Corporation
|
||||
*/
|
||||
|
||||
#ifndef IEEE80211_I_H
|
||||
@@ -848,9 +848,12 @@ struct txq_info {
|
||||
struct fq_tin tin;
|
||||
struct codel_vars def_cvars;
|
||||
struct codel_stats cstats;
|
||||
- struct sk_buff_head frags;
|
||||
- struct list_head schedule_order;
|
||||
+
|
||||
u16 schedule_round;
|
||||
+ struct list_head schedule_order;
|
||||
+
|
||||
+ struct sk_buff_head frags;
|
||||
+
|
||||
unsigned long flags;
|
||||
|
||||
/* keep last! */
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,72 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 2 Jul 2021 06:57:53 +0200
|
||||
Subject: [PATCH] mac80211: fix enabling 4-address mode on a sta vif after
|
||||
assoc
|
||||
|
||||
Notify the driver about the 4-address mode change and also send a nulldata
|
||||
packet to the AP to notify it about the change
|
||||
|
||||
Fixes: 1ff4e8f2dec8 ("mac80211: notify the driver when a sta uses 4-address mode")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -152,6 +152,8 @@ static int ieee80211_change_iface(struct
|
||||
struct vif_params *params)
|
||||
{
|
||||
struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
|
||||
+ struct ieee80211_local *local = sdata->local;
|
||||
+ struct sta_info *sta;
|
||||
int ret;
|
||||
|
||||
ret = ieee80211_if_change_type(sdata, type);
|
||||
@@ -162,7 +164,24 @@ static int ieee80211_change_iface(struct
|
||||
RCU_INIT_POINTER(sdata->u.vlan.sta, NULL);
|
||||
ieee80211_check_fast_rx_iface(sdata);
|
||||
} else if (type == NL80211_IFTYPE_STATION && params->use_4addr >= 0) {
|
||||
+ struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
+
|
||||
+ if (params->use_4addr == ifmgd->use_4addr)
|
||||
+ return 0;
|
||||
+
|
||||
sdata->u.mgd.use_4addr = params->use_4addr;
|
||||
+ if (!ifmgd->associated)
|
||||
+ return 0;
|
||||
+
|
||||
+ mutex_lock(&local->sta_mtx);
|
||||
+ sta = sta_info_get(sdata, ifmgd->bssid);
|
||||
+ if (sta)
|
||||
+ drv_sta_set_4addr(local, sdata, &sta->sta,
|
||||
+ params->use_4addr);
|
||||
+ mutex_unlock(&local->sta_mtx);
|
||||
+
|
||||
+ if (params->use_4addr)
|
||||
+ ieee80211_send_4addr_nullfunc(local, sdata);
|
||||
}
|
||||
|
||||
if (sdata->vif.type == NL80211_IFTYPE_MONITOR) {
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2224,6 +2224,8 @@ void ieee80211_dynamic_ps_timer(struct t
|
||||
void ieee80211_send_nullfunc(struct ieee80211_local *local,
|
||||
struct ieee80211_sub_if_data *sdata,
|
||||
bool powersave);
|
||||
+void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
|
||||
+ struct ieee80211_sub_if_data *sdata);
|
||||
void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_hdr *hdr, bool ack, u16 tx_time);
|
||||
|
||||
--- a/net/mac80211/mlme.c
|
||||
+++ b/net/mac80211/mlme.c
|
||||
@@ -1115,8 +1115,8 @@ void ieee80211_send_nullfunc(struct ieee
|
||||
ieee80211_tx_skb(sdata, skb);
|
||||
}
|
||||
|
||||
-static void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
|
||||
- struct ieee80211_sub_if_data *sdata)
|
||||
+void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
|
||||
+ struct ieee80211_sub_if_data *sdata)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
struct ieee80211_hdr *nullfunc;
|
||||
@ -0,0 +1,398 @@
|
||||
From: Carl Huang <cjhuang@codeaurora.org>
|
||||
Date: Thu, 3 Dec 2020 05:37:26 -0500
|
||||
Subject: [PATCH] nl80211: add common API to configure SAR power limitations
|
||||
|
||||
NL80211_CMD_SET_SAR_SPECS is added to configure SAR from
|
||||
user space. NL80211_ATTR_SAR_SPEC is used to pass the SAR
|
||||
power specification when used with NL80211_CMD_SET_SAR_SPECS.
|
||||
|
||||
Wireless driver needs to register SAR type, supported frequency
|
||||
ranges to wiphy, so user space can query it. The index in
|
||||
frequency range is used to specify which sub band the power
|
||||
limitation applies to. The SAR type is for compatibility, so later
|
||||
other SAR mechanism can be implemented without breaking the user
|
||||
space SAR applications.
|
||||
|
||||
Normal process is user space queries the SAR capability, and
|
||||
gets the index of supported frequency ranges and associates the
|
||||
power limitation with this index and sends to kernel.
|
||||
|
||||
Here is an example of message send to kernel:
|
||||
8c 00 00 00 08 00 01 00 00 00 00 00 38 00 2b 81
|
||||
08 00 01 00 00 00 00 00 2c 00 02 80 14 00 00 80
|
||||
08 00 02 00 00 00 00 00 08 00 01 00 38 00 00 00
|
||||
14 00 01 80 08 00 02 00 01 00 00 00 08 00 01 00
|
||||
48 00 00 00
|
||||
|
||||
NL80211_CMD_SET_SAR_SPECS: 0x8c
|
||||
NL80211_ATTR_WIPHY: 0x01(phy idx is 0)
|
||||
NL80211_ATTR_SAR_SPEC: 0x812b (NLA_NESTED)
|
||||
NL80211_SAR_ATTR_TYPE: 0x00 (NL80211_SAR_TYPE_POWER)
|
||||
NL80211_SAR_ATTR_SPECS: 0x8002 (NLA_NESTED)
|
||||
freq range 0 power: 0x38 in 0.25dbm unit (14dbm)
|
||||
freq range 1 power: 0x48 in 0.25dbm unit (18dbm)
|
||||
|
||||
Signed-off-by: Carl Huang <cjhuang@codeaurora.org>
|
||||
Reviewed-by: Brian Norris <briannorris@chromium.org>
|
||||
Reviewed-by: Abhishek Kumar <kuabhs@chromium.org>
|
||||
Link: https://lore.kernel.org/r/20201203103728.3034-2-cjhuang@codeaurora.org
|
||||
[minor edits, NLA parse cleanups]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -1737,6 +1737,54 @@ struct station_info {
|
||||
u8 connected_to_as;
|
||||
};
|
||||
|
||||
+/**
|
||||
+ * struct cfg80211_sar_sub_specs - sub specs limit
|
||||
+ * @power: power limitation in 0.25dbm
|
||||
+ * @freq_range_index: index the power limitation applies to
|
||||
+ */
|
||||
+struct cfg80211_sar_sub_specs {
|
||||
+ s32 power;
|
||||
+ u32 freq_range_index;
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * struct cfg80211_sar_specs - sar limit specs
|
||||
+ * @type: it's set with power in 0.25dbm or other types
|
||||
+ * @num_sub_specs: number of sar sub specs
|
||||
+ * @sub_specs: memory to hold the sar sub specs
|
||||
+ */
|
||||
+struct cfg80211_sar_specs {
|
||||
+ enum nl80211_sar_type type;
|
||||
+ u32 num_sub_specs;
|
||||
+ struct cfg80211_sar_sub_specs sub_specs[];
|
||||
+};
|
||||
+
|
||||
+
|
||||
+/**
|
||||
+ * @struct cfg80211_sar_chan_ranges - sar frequency ranges
|
||||
+ * @start_freq: start range edge frequency
|
||||
+ * @end_freq: end range edge frequency
|
||||
+ */
|
||||
+struct cfg80211_sar_freq_ranges {
|
||||
+ u32 start_freq;
|
||||
+ u32 end_freq;
|
||||
+};
|
||||
+
|
||||
+/**
|
||||
+ * struct cfg80211_sar_capa - sar limit capability
|
||||
+ * @type: it's set via power in 0.25dbm or other types
|
||||
+ * @num_freq_ranges: number of frequency ranges
|
||||
+ * @freq_ranges: memory to hold the freq ranges.
|
||||
+ *
|
||||
+ * Note: WLAN driver may append new ranges or split an existing
|
||||
+ * range to small ones and then append them.
|
||||
+ */
|
||||
+struct cfg80211_sar_capa {
|
||||
+ enum nl80211_sar_type type;
|
||||
+ u32 num_freq_ranges;
|
||||
+ const struct cfg80211_sar_freq_ranges *freq_ranges;
|
||||
+};
|
||||
+
|
||||
#if IS_ENABLED(CPTCFG_CFG80211)
|
||||
/**
|
||||
* cfg80211_get_station - retrieve information about a given station
|
||||
@@ -4259,6 +4307,8 @@ struct cfg80211_ops {
|
||||
struct cfg80211_tid_config *tid_conf);
|
||||
int (*reset_tid_config)(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *peer, u8 tids);
|
||||
+ int (*set_sar_specs)(struct wiphy *wiphy,
|
||||
+ struct cfg80211_sar_specs *sar);
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -5030,6 +5080,8 @@ struct wiphy {
|
||||
|
||||
u8 max_data_retry_count;
|
||||
|
||||
+ const struct cfg80211_sar_capa *sar_capa;
|
||||
+
|
||||
char priv[] __aligned(NETDEV_ALIGN);
|
||||
};
|
||||
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -405,6 +405,18 @@ nl80211_unsol_bcast_probe_resp_policy[NL
|
||||
.len = IEEE80211_MAX_DATA_LEN }
|
||||
};
|
||||
|
||||
+static const struct nla_policy
|
||||
+sar_specs_policy[NL80211_SAR_ATTR_SPECS_MAX + 1] = {
|
||||
+ [NL80211_SAR_ATTR_SPECS_POWER] = { .type = NLA_S32 },
|
||||
+ [NL80211_SAR_ATTR_SPECS_RANGE_INDEX] = {.type = NLA_U32 },
|
||||
+};
|
||||
+
|
||||
+static const struct nla_policy
|
||||
+sar_policy[NL80211_SAR_ATTR_MAX + 1] = {
|
||||
+ [NL80211_SAR_ATTR_TYPE] = NLA_POLICY_MAX(NLA_U32, NUM_NL80211_SAR_TYPE),
|
||||
+ [NL80211_SAR_ATTR_SPECS] = NLA_POLICY_NESTED_ARRAY(sar_specs_policy),
|
||||
+};
|
||||
+
|
||||
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
||||
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
|
||||
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
|
||||
@@ -739,6 +751,7 @@ static const struct nla_policy nl80211_p
|
||||
[NL80211_ATTR_SAE_PWE] =
|
||||
NLA_POLICY_RANGE(NLA_U8, NL80211_SAE_PWE_HUNT_AND_PECK,
|
||||
NL80211_SAE_PWE_BOTH),
|
||||
+ [NL80211_ATTR_SAR_SPEC] = NLA_POLICY_NESTED(sar_policy),
|
||||
[NL80211_ATTR_RECONNECT_REQUESTED] = { .type = NLA_REJECT },
|
||||
};
|
||||
|
||||
@@ -2117,6 +2130,56 @@ fail:
|
||||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
+static int
|
||||
+nl80211_put_sar_specs(struct cfg80211_registered_device *rdev,
|
||||
+ struct sk_buff *msg)
|
||||
+{
|
||||
+ struct nlattr *sar_capa, *specs, *sub_freq_range;
|
||||
+ u8 num_freq_ranges;
|
||||
+ int i;
|
||||
+
|
||||
+ if (!rdev->wiphy.sar_capa)
|
||||
+ return 0;
|
||||
+
|
||||
+ num_freq_ranges = rdev->wiphy.sar_capa->num_freq_ranges;
|
||||
+
|
||||
+ sar_capa = nla_nest_start(msg, NL80211_ATTR_SAR_SPEC);
|
||||
+ if (!sar_capa)
|
||||
+ return -ENOSPC;
|
||||
+
|
||||
+ if (nla_put_u32(msg, NL80211_SAR_ATTR_TYPE, rdev->wiphy.sar_capa->type))
|
||||
+ goto fail;
|
||||
+
|
||||
+ specs = nla_nest_start(msg, NL80211_SAR_ATTR_SPECS);
|
||||
+ if (!specs)
|
||||
+ goto fail;
|
||||
+
|
||||
+ /* report supported freq_ranges */
|
||||
+ for (i = 0; i < num_freq_ranges; i++) {
|
||||
+ sub_freq_range = nla_nest_start(msg, i + 1);
|
||||
+ if (!sub_freq_range)
|
||||
+ goto fail;
|
||||
+
|
||||
+ if (nla_put_u32(msg, NL80211_SAR_ATTR_SPECS_START_FREQ,
|
||||
+ rdev->wiphy.sar_capa->freq_ranges[i].start_freq))
|
||||
+ goto fail;
|
||||
+
|
||||
+ if (nla_put_u32(msg, NL80211_SAR_ATTR_SPECS_END_FREQ,
|
||||
+ rdev->wiphy.sar_capa->freq_ranges[i].end_freq))
|
||||
+ goto fail;
|
||||
+
|
||||
+ nla_nest_end(msg, sub_freq_range);
|
||||
+ }
|
||||
+
|
||||
+ nla_nest_end(msg, specs);
|
||||
+ nla_nest_end(msg, sar_capa);
|
||||
+
|
||||
+ return 0;
|
||||
+fail:
|
||||
+ nla_nest_cancel(msg, sar_capa);
|
||||
+ return -ENOBUFS;
|
||||
+}
|
||||
+
|
||||
struct nl80211_dump_wiphy_state {
|
||||
s64 filter_wiphy;
|
||||
long start;
|
||||
@@ -2366,6 +2429,8 @@ static int nl80211_send_wiphy(struct cfg
|
||||
CMD(set_multicast_to_unicast, SET_MULTICAST_TO_UNICAST);
|
||||
CMD(update_connect_params, UPDATE_CONNECT_PARAMS);
|
||||
CMD(update_ft_ies, UPDATE_FT_IES);
|
||||
+ if (rdev->wiphy.sar_capa)
|
||||
+ CMD(set_sar_specs, SET_SAR_SPECS);
|
||||
}
|
||||
#undef CMD
|
||||
|
||||
@@ -2691,6 +2756,11 @@ static int nl80211_send_wiphy(struct cfg
|
||||
|
||||
if (nl80211_put_tid_config_support(rdev, msg))
|
||||
goto nla_put_failure;
|
||||
+ state->split_start++;
|
||||
+ break;
|
||||
+ case 16:
|
||||
+ if (nl80211_put_sar_specs(rdev, msg))
|
||||
+ goto nla_put_failure;
|
||||
|
||||
/* done */
|
||||
state->split_start = 0;
|
||||
@@ -14713,6 +14783,111 @@ static void nl80211_post_doit(__genl_con
|
||||
}
|
||||
}
|
||||
|
||||
+static int nl80211_set_sar_sub_specs(struct cfg80211_registered_device *rdev,
|
||||
+ struct cfg80211_sar_specs *sar_specs,
|
||||
+ struct nlattr *spec[], int index)
|
||||
+{
|
||||
+ u32 range_index, i;
|
||||
+
|
||||
+ if (!sar_specs || !spec)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ if (!spec[NL80211_SAR_ATTR_SPECS_POWER] ||
|
||||
+ !spec[NL80211_SAR_ATTR_SPECS_RANGE_INDEX])
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ range_index = nla_get_u32(spec[NL80211_SAR_ATTR_SPECS_RANGE_INDEX]);
|
||||
+
|
||||
+ /* check if range_index exceeds num_freq_ranges */
|
||||
+ if (range_index >= rdev->wiphy.sar_capa->num_freq_ranges)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ /* check if range_index duplicates */
|
||||
+ for (i = 0; i < index; i++) {
|
||||
+ if (sar_specs->sub_specs[i].freq_range_index == range_index)
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ sar_specs->sub_specs[index].power =
|
||||
+ nla_get_s32(spec[NL80211_SAR_ATTR_SPECS_POWER]);
|
||||
+
|
||||
+ sar_specs->sub_specs[index].freq_range_index = range_index;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info)
|
||||
+{
|
||||
+ struct cfg80211_registered_device *rdev = info->user_ptr[0];
|
||||
+ struct nlattr *spec[NL80211_SAR_ATTR_SPECS_MAX + 1];
|
||||
+ struct nlattr *tb[NL80211_SAR_ATTR_MAX + 1];
|
||||
+ struct cfg80211_sar_specs *sar_spec;
|
||||
+ enum nl80211_sar_type type;
|
||||
+ struct nlattr *spec_list;
|
||||
+ u32 specs;
|
||||
+ int rem, err;
|
||||
+
|
||||
+ if (!rdev->wiphy.sar_capa || !rdev->ops->set_sar_specs)
|
||||
+ return -EOPNOTSUPP;
|
||||
+
|
||||
+ if (!info->attrs[NL80211_ATTR_SAR_SPEC])
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ nla_parse_nested(tb, NL80211_SAR_ATTR_MAX,
|
||||
+ info->attrs[NL80211_ATTR_SAR_SPEC],
|
||||
+ NULL, NULL);
|
||||
+
|
||||
+ if (!tb[NL80211_SAR_ATTR_TYPE] || !tb[NL80211_SAR_ATTR_SPECS])
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ type = nla_get_u32(tb[NL80211_SAR_ATTR_TYPE]);
|
||||
+ if (type != rdev->wiphy.sar_capa->type)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ specs = 0;
|
||||
+ nla_for_each_nested(spec_list, tb[NL80211_SAR_ATTR_SPECS], rem)
|
||||
+ specs++;
|
||||
+
|
||||
+ if (specs > rdev->wiphy.sar_capa->num_freq_ranges)
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ sar_spec = kzalloc(sizeof(*sar_spec) +
|
||||
+ specs * sizeof(struct cfg80211_sar_sub_specs),
|
||||
+ GFP_KERNEL);
|
||||
+ if (!sar_spec)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ sar_spec->type = type;
|
||||
+ specs = 0;
|
||||
+ nla_for_each_nested(spec_list, tb[NL80211_SAR_ATTR_SPECS], rem) {
|
||||
+ nla_parse_nested(spec, NL80211_SAR_ATTR_SPECS_MAX,
|
||||
+ spec_list, NULL, NULL);
|
||||
+
|
||||
+ switch (type) {
|
||||
+ case NL80211_SAR_TYPE_POWER:
|
||||
+ if (nl80211_set_sar_sub_specs(rdev, sar_spec,
|
||||
+ spec, specs)) {
|
||||
+ err = -EINVAL;
|
||||
+ goto error;
|
||||
+ }
|
||||
+ break;
|
||||
+ default:
|
||||
+ err = -EINVAL;
|
||||
+ goto error;
|
||||
+ }
|
||||
+ specs++;
|
||||
+ }
|
||||
+
|
||||
+ sar_spec->num_sub_specs = specs;
|
||||
+
|
||||
+ rdev->cur_cmd_info = info;
|
||||
+ err = rdev_set_sar_specs(rdev, sar_spec);
|
||||
+ rdev->cur_cmd_info = NULL;
|
||||
+error:
|
||||
+ kfree(sar_spec);
|
||||
+ return err;
|
||||
+}
|
||||
+
|
||||
static __genl_const struct genl_ops nl80211_ops[] = {
|
||||
{
|
||||
.cmd = NL80211_CMD_GET_WIPHY,
|
||||
@@ -15576,6 +15751,14 @@ static const struct genl_small_ops nl802
|
||||
.internal_flags = NL80211_FLAG_NEED_NETDEV |
|
||||
NL80211_FLAG_NEED_RTNL,
|
||||
},
|
||||
+ {
|
||||
+ .cmd = NL80211_CMD_SET_SAR_SPECS,
|
||||
+ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP,
|
||||
+ .doit = nl80211_set_sar_specs,
|
||||
+ .flags = GENL_UNS_ADMIN_PERM,
|
||||
+ .internal_flags = NL80211_FLAG_NEED_WIPHY |
|
||||
+ NL80211_FLAG_NEED_RTNL,
|
||||
+ },
|
||||
};
|
||||
|
||||
static struct genl_family nl80211_fam __genl_ro_after_init = {
|
||||
--- a/net/wireless/rdev-ops.h
|
||||
+++ b/net/wireless/rdev-ops.h
|
||||
@@ -1356,4 +1356,16 @@ static inline int rdev_reset_tid_config(
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static inline int rdev_set_sar_specs(struct cfg80211_registered_device *rdev,
|
||||
+ struct cfg80211_sar_specs *sar)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ trace_rdev_set_sar_specs(&rdev->wiphy, sar);
|
||||
+ ret = rdev->ops->set_sar_specs(&rdev->wiphy, sar);
|
||||
+ trace_rdev_return_int(&rdev->wiphy, ret);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
#endif /* __CFG80211_RDEV_OPS */
|
||||
--- a/net/wireless/trace.h
|
||||
+++ b/net/wireless/trace.h
|
||||
@@ -3551,6 +3551,25 @@ TRACE_EVENT(rdev_reset_tid_config,
|
||||
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x",
|
||||
WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids)
|
||||
);
|
||||
+
|
||||
+TRACE_EVENT(rdev_set_sar_specs,
|
||||
+ TP_PROTO(struct wiphy *wiphy, struct cfg80211_sar_specs *sar),
|
||||
+ TP_ARGS(wiphy, sar),
|
||||
+ TP_STRUCT__entry(
|
||||
+ WIPHY_ENTRY
|
||||
+ __field(u16, type)
|
||||
+ __field(u16, num)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ WIPHY_ASSIGN;
|
||||
+ __entry->type = sar->type;
|
||||
+ __entry->num = sar->num_sub_specs;
|
||||
+
|
||||
+ ),
|
||||
+ TP_printk(WIPHY_PR_FMT ", Set type:%d, num_specs:%d",
|
||||
+ WIPHY_PR_ARG, __entry->type, __entry->num)
|
||||
+);
|
||||
+
|
||||
#endif /* !__RDEV_OPS_TRACE || TRACE_HEADER_MULTI_READ */
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
@ -0,0 +1,51 @@
|
||||
From: Carl Huang <cjhuang@codeaurora.org>
|
||||
Date: Thu, 3 Dec 2020 05:37:27 -0500
|
||||
Subject: [PATCH] mac80211: add ieee80211_set_sar_specs
|
||||
|
||||
This change registers ieee80211_set_sar_specs to
|
||||
mac80211_config_ops, so cfg80211 can call it.
|
||||
|
||||
Signed-off-by: Carl Huang <cjhuang@codeaurora.org>
|
||||
Reviewed-by: Brian Norris <briannorris@chromium.org>
|
||||
Reviewed-by: Abhishek Kumar <kuabhs@chromium.org>
|
||||
Link: https://lore.kernel.org/r/20201203103728.3034-3-cjhuang@codeaurora.org
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -4207,6 +4207,8 @@ struct ieee80211_ops {
|
||||
struct ieee80211_vif *vif);
|
||||
void (*sta_set_4addr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, bool enabled);
|
||||
+ int (*set_sar_specs)(struct ieee80211_hw *hw,
|
||||
+ const struct cfg80211_sar_specs *sar);
|
||||
void (*sta_set_decap_offload)(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta, bool enabled);
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -4136,6 +4136,17 @@ static int ieee80211_reset_tid_config(st
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static int ieee80211_set_sar_specs(struct wiphy *wiphy,
|
||||
+ struct cfg80211_sar_specs *sar)
|
||||
+{
|
||||
+ struct ieee80211_local *local = wiphy_priv(wiphy);
|
||||
+
|
||||
+ if (!local->ops->set_sar_specs)
|
||||
+ return -EOPNOTSUPP;
|
||||
+
|
||||
+ return local->ops->set_sar_specs(&local->hw, sar);
|
||||
+}
|
||||
+
|
||||
const struct cfg80211_ops mac80211_config_ops = {
|
||||
.add_virtual_intf = ieee80211_add_iface,
|
||||
.del_virtual_intf = ieee80211_del_iface,
|
||||
@@ -4239,4 +4250,5 @@ const struct cfg80211_ops mac80211_confi
|
||||
.probe_mesh_link = ieee80211_probe_mesh_link,
|
||||
.set_tid_config = ieee80211_set_tid_config,
|
||||
.reset_tid_config = ieee80211_reset_tid_config,
|
||||
+ .set_sar_specs = ieee80211_set_sar_specs,
|
||||
};
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/include/net/cfg80211.h
|
||||
+++ b/include/net/cfg80211.h
|
||||
@@ -3745,6 +3745,7 @@ struct mgmt_frame_regs {
|
||||
@@ -3793,6 +3793,7 @@ struct mgmt_frame_regs {
|
||||
* (as advertised by the nl80211 feature flag.)
|
||||
* @get_tx_power: store the current TX power into the dbm variable;
|
||||
* return 0 if successful
|
||||
@ -8,7 +8,7 @@
|
||||
*
|
||||
* @set_wds_peer: set the WDS peer for a WDS interface
|
||||
*
|
||||
@@ -4067,6 +4068,7 @@ struct cfg80211_ops {
|
||||
@@ -4115,6 +4116,7 @@ struct cfg80211_ops {
|
||||
enum nl80211_tx_power_setting type, int mbm);
|
||||
int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
|
||||
int *dbm);
|
||||
@ -57,7 +57,7 @@
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -2709,6 +2709,19 @@ static int ieee80211_get_tx_power(struct
|
||||
@@ -2761,6 +2761,19 @@ static int ieee80211_get_tx_power(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
|
||||
const u8 *addr)
|
||||
{
|
||||
@@ -4139,6 +4152,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
@@ -4202,6 +4215,7 @@ const struct cfg80211_ops mac80211_confi
|
||||
.set_wiphy_params = ieee80211_set_wiphy_params,
|
||||
.set_tx_power = ieee80211_set_tx_power,
|
||||
.get_tx_power = ieee80211_get_tx_power,
|
||||
@ -87,7 +87,7 @@
|
||||
CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -1390,6 +1390,7 @@ struct ieee80211_local {
|
||||
@@ -1426,6 +1426,7 @@ struct ieee80211_local {
|
||||
int dynamic_ps_forced_timeout;
|
||||
|
||||
int user_power_level; /* in dBm, for all interfaces */
|
||||
@ -129,15 +129,15 @@
|
||||
local->hw.max_mtu = IEEE80211_MAX_DATA_LEN;
|
||||
--- a/net/wireless/nl80211.c
|
||||
+++ b/net/wireless/nl80211.c
|
||||
@@ -740,6 +740,7 @@ static const struct nla_policy nl80211_p
|
||||
NLA_POLICY_RANGE(NLA_U8, NL80211_SAE_PWE_HUNT_AND_PECK,
|
||||
@@ -753,6 +753,7 @@ static const struct nla_policy nl80211_p
|
||||
NL80211_SAE_PWE_BOTH),
|
||||
[NL80211_ATTR_SAR_SPEC] = NLA_POLICY_NESTED(sar_policy),
|
||||
[NL80211_ATTR_RECONNECT_REQUESTED] = { .type = NLA_REJECT },
|
||||
+ [NL80211_ATTR_WIPHY_ANTENNA_GAIN] = { .type = NLA_U32 },
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -3248,6 +3249,20 @@ static int nl80211_set_wiphy(struct sk_b
|
||||
@@ -3318,6 +3319,20 @@ static int nl80211_set_wiphy(struct sk_b
|
||||
if (result)
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2021-06-06
|
||||
PKG_SOURCE_VERSION:=22b690334c0f49b11534cc2e331c9d5e17c4a0bc
|
||||
PKG_MIRROR_HASH:=ff5e563935919d2e40c1e7254ef3bc06f7ecc5e69f8ddd12903e8f5de942d630
|
||||
PKG_SOURCE_DATE:=2021-07-15
|
||||
PKG_SOURCE_VERSION:=bbebea7d6dc64313132226adc3f7369d36e9359d
|
||||
PKG_MIRROR_HASH:=17cd74e72c1f6c8742b698bf6772afacc6fba71b233af8c4d59530600cf44d5b
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
|
||||
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
|
||||
PKG_SOURCE_DATE:=2021-07-13
|
||||
PKG_SOURCE_VERSION:=1f283c654aeb1f8983e0a81b7a81cc4784fffe3f
|
||||
PKG_MIRROR_HASH:=a65bb00f376eec5006c6efa1bc3298687054c3936de9c61997496969c93f9ccc
|
||||
PKG_SOURCE_DATE:=2021-07-14
|
||||
PKG_SOURCE_VERSION:=7f24a063475e1e2be4e0c516a5b62c3fae5ec542
|
||||
PKG_MIRROR_HASH:=3fad25b8655e01e20f54b6c6decad6a660a34ab3ca2de97fe3c9b7db5aa485fe
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -1123,7 +1123,7 @@ dnsmasq_start()
|
||||
procd_set_param respawn
|
||||
|
||||
procd_add_jail dnsmasq ubus log
|
||||
procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE $RFC6761FILE $DHCPBOGUSHOSTNAMEFILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript /etc/hosts /etc/ethers /sbin/hotplug-call $EXTRA_MOUNT $DHCPSCRIPT
|
||||
procd_add_jail_mount $CONFIGFILE $TRUSTANCHORSFILE $HOSTFILE $RFC6761FILE $DHCPBOGUSHOSTNAMEFILE /etc/passwd /etc/group /etc/TZ /dev/null /dev/urandom $dnsmasqconffile $dnsmasqconfdir $resolvdir $user_dhcpscript /etc/hosts /etc/ethers /sbin/hotplug-call $EXTRA_MOUNT $DHCPSCRIPT /tmp/hosts/
|
||||
procd_add_jail_mount_rw /var/run/dnsmasq/ $leasefile
|
||||
|
||||
procd_close_instance
|
||||
|
||||
@ -744,6 +744,7 @@ enum {
|
||||
CSA_VHT,
|
||||
CSA_HE,
|
||||
CSA_BLOCK_TX,
|
||||
CSA_FORCE,
|
||||
__CSA_MAX
|
||||
};
|
||||
|
||||
@ -758,8 +759,18 @@ static const struct blobmsg_policy csa_policy[__CSA_MAX] = {
|
||||
[CSA_VHT] = { "vht", BLOBMSG_TYPE_BOOL },
|
||||
[CSA_HE] = { "he", BLOBMSG_TYPE_BOOL },
|
||||
[CSA_BLOCK_TX] = { "block_tx", BLOBMSG_TYPE_BOOL },
|
||||
[CSA_FORCE] = { "force", BLOBMSG_TYPE_BOOL },
|
||||
};
|
||||
|
||||
|
||||
static void switch_chan_fallback_cb(void *eloop_data, void *user_ctx)
|
||||
{
|
||||
struct hostapd_iface *iface = eloop_data;
|
||||
struct hostapd_freq_params *freq_params = user_ctx;
|
||||
|
||||
hostapd_switch_channel_fallback(iface, freq_params);
|
||||
}
|
||||
|
||||
#ifdef NEED_AP_MLME
|
||||
static int
|
||||
hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
@ -769,6 +780,7 @@ hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
struct blob_attr *tb[__CSA_MAX];
|
||||
struct hostapd_data *hapd = get_hapd_from_object(obj);
|
||||
struct hostapd_config *iconf = hapd->iface->conf;
|
||||
struct hostapd_freq_params *freq_params;
|
||||
struct csa_settings css = {
|
||||
.freq_params = {
|
||||
.ht_enabled = iconf->ieee80211n,
|
||||
@ -825,7 +837,15 @@ hostapd_switch_chan(struct ubus_context *ctx, struct ubus_object *obj,
|
||||
ret = UBUS_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
return ret;
|
||||
if (!ret || !tb[CSA_FORCE] || !blobmsg_get_bool(tb[CSA_FORCE]))
|
||||
return ret;
|
||||
|
||||
freq_params = malloc(sizeof(*freq_params));
|
||||
memcpy(freq_params, &css.freq_params, sizeof(*freq_params));
|
||||
eloop_register_timeout(0, 1, switch_chan_fallback_cb,
|
||||
hapd->iface, freq_params);
|
||||
|
||||
return 0;
|
||||
#undef SET_CSA_SETTING
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
|
||||
PKG_SOURCE_DATE:=2021-06-19
|
||||
PKG_SOURCE_VERSION:=564d25e53fad925fa3ed56e3004c107d40925fa4
|
||||
PKG_MIRROR_HASH:=a0644d31f99f20e5c2cee74153b81a0c2eae9ebeb644662cc76b0984b44dd490
|
||||
PKG_SOURCE_DATE:=2021-07-18
|
||||
PKG_SOURCE_VERSION:=bc9d317f2921ae6b529f2c9f8de79b75992e206f
|
||||
PKG_MIRROR_HASH:=be96c4984821b8af95bfee1a29c082bb9eaa052cd3e03d8632ff02afd2debc81
|
||||
|
||||
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git
|
||||
PKG_MIRROR_HASH:=41c9c51d193f5150db67fcd898b6ea904b88476c94cdfd021d81e2711441b430
|
||||
PKG_SOURCE_DATE:=2021-05-16
|
||||
PKG_SOURCE_VERSION:=3d40a1b591cd569f95891116cd033b496de0f92b
|
||||
PKG_MIRROR_HASH:=c57f21db30349f30d70b6169ad9d9c905733069fe14ea6b4ffdfbd82a355dd61
|
||||
PKG_SOURCE_DATE:=2021-07-15
|
||||
PKG_SOURCE_VERSION:=cdc9939b071427cf2b35134481df27b4bd76dbfc
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
||||
@ -16,6 +16,7 @@ reload_service() {
|
||||
start_service() {
|
||||
procd_open_instance
|
||||
procd_set_param command "$PROG"
|
||||
procd_set_param watch block
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
}
|
||||
|
||||
@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2021-07-10
|
||||
PKG_SOURCE_VERSION:=2dcefbd6094681dcbd2d7ff608590e74425a9220
|
||||
PKG_MIRROR_HASH:=6f2615230a1db09740e8125517488a53b62baef0731b9adbd377765cad130289
|
||||
PKG_SOURCE_DATE:=2021-07-18
|
||||
PKG_SOURCE_VERSION:=9bd1b7f0951ec2bcf56674fa729af3872b276057
|
||||
PKG_MIRROR_HASH:=87681b3f320af1392bfdecfe6e3c69a32a95169af0ca243e44bad78f22b34e3d
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
@ -90,7 +90,7 @@ endef
|
||||
define Package/uxc
|
||||
SECTION:=base
|
||||
CATEGORY:=Base system
|
||||
DEPENDS:=+procd-ujail +libubus +libubox +libblobmsg-json
|
||||
DEPENDS:=+procd-ujail +libubus +libubox +libblobmsg-json +blockd
|
||||
TITLE:=OpenWrt container management
|
||||
MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
|
||||
endef
|
||||
|
||||
@ -16,3 +16,7 @@ boot() {
|
||||
__BOOT_UXC=1
|
||||
start
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_raw_trigger "mount.add" 3000 /etc/init.d/uxc boot
|
||||
}
|
||||
|
||||
@ -12,10 +12,10 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git
|
||||
PKG_SOURCE_DATE:=2021-05-05
|
||||
PKG_SOURCE_VERSION:=7a560a1a5769146ab072f8e0165940459d3e16f7
|
||||
PKG_SOURCE_DATE:=2021-07-13
|
||||
PKG_SOURCE_VERSION:=1fa35765ddf64976aa48950cac53d501fb71dda0
|
||||
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
|
||||
PKG_MIRROR_HASH:=69d9588a5a910676252eabcd2815af318806cae8316777e8b6eb00b26bdc42cb
|
||||
PKG_MIRROR_HASH:=be116e2616b3ae1b5fb9c4c338d6908f8cc9e5de239a2c83aa21b7a69b5c1c93
|
||||
|
||||
PKG_LICENSE:=ISC
|
||||
PKG_LICENSE_FILES:=
|
||||
|
||||
@ -46,7 +46,7 @@ LOADABLES=
|
||||
DTOVERLAY=
|
||||
DTADDR=
|
||||
|
||||
while getopts ":A:a:c:C:D:d:e:f:i:k:n:o:O:v:r:S" OPTION
|
||||
while getopts ":A:a:c:C:D:d:e:f:i:k:n:o:O:v:r:H:" OPTION
|
||||
do
|
||||
case $OPTION in
|
||||
A ) ARCH=$OPTARG;;
|
||||
@ -63,7 +63,7 @@ do
|
||||
o ) OUTPUT=$OPTARG;;
|
||||
O ) DTOVERLAY="$DTOVERLAY ${OPTARG}";;
|
||||
r ) ROOTFS=$OPTARG;;
|
||||
S ) HASH=$OPTARG;;
|
||||
H ) HASH=$OPTARG;;
|
||||
v ) VERSION=$OPTARG;;
|
||||
* ) echo "Invalid option passed to '$0' (options:$*)"
|
||||
usage;;
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
struct fis_image_desc {
|
||||
unsigned char name[16]; // Null terminated name
|
||||
uint32_t flash_base; // Address within FLASH of image
|
||||
@@ -67,6 +69,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -72,6 +74,7 @@ static int parse_redboot_partitions(stru
|
||||
const struct mtd_partition **pparts,
|
||||
struct mtd_part_parser_data *data)
|
||||
{
|
||||
@ -17,7 +17,7 @@
|
||||
int nrparts = 0;
|
||||
struct fis_image_desc *buf;
|
||||
struct mtd_partition *parts;
|
||||
@@ -234,14 +237,15 @@ static int parse_redboot_partitions(stru
|
||||
@@ -239,14 +242,15 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -35,7 +35,7 @@
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
||||
if (nulllen > 0) {
|
||||
strcpy(nullname, nullstring);
|
||||
@@ -260,6 +264,8 @@ static int parse_redboot_partitions(stru
|
||||
@@ -265,6 +269,8 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
#endif
|
||||
for ( ; i<nrparts; i++) {
|
||||
@ -44,7 +44,7 @@
|
||||
parts[i].size = fl->img->size;
|
||||
parts[i].offset = fl->img->flash_base;
|
||||
parts[i].name = names;
|
||||
@@ -293,6 +299,13 @@ static int parse_redboot_partitions(stru
|
||||
@@ -298,6 +304,13 @@ static int parse_redboot_partitions(stru
|
||||
fl = fl->next;
|
||||
kfree(tmp_fl);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -88,12 +88,18 @@ static int parse_redboot_partitions(stru
|
||||
@@ -93,12 +93,18 @@ static int parse_redboot_partitions(stru
|
||||
|
||||
parse_redboot_of(master);
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
return -EIO;
|
||||
}
|
||||
offset -= master->erasesize;
|
||||
@@ -106,10 +112,6 @@ static int parse_redboot_partitions(stru
|
||||
@@ -111,10 +117,6 @@ static int parse_redboot_partitions(stru
|
||||
goto nogood;
|
||||
}
|
||||
}
|
||||
@ -30,7 +30,7 @@
|
||||
|
||||
printk(KERN_NOTICE "Searching for RedBoot partition table in %s at offset 0x%lx\n",
|
||||
master->name, offset);
|
||||
@@ -182,6 +184,11 @@ static int parse_redboot_partitions(stru
|
||||
@@ -187,6 +189,11 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
if (i == numslots) {
|
||||
/* Didn't find it */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
--- a/drivers/mtd/parsers/redboot.c
|
||||
+++ b/drivers/mtd/parsers/redboot.c
|
||||
@@ -65,6 +65,22 @@ static void parse_redboot_of(struct mtd_
|
||||
@@ -70,6 +70,22 @@ static void parse_redboot_of(struct mtd_
|
||||
directory = dirblock;
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
static int parse_redboot_partitions(struct mtd_info *master,
|
||||
const struct mtd_partition **pparts,
|
||||
struct mtd_part_parser_data *data)
|
||||
@@ -81,6 +97,7 @@ static int parse_redboot_partitions(stru
|
||||
@@ -86,6 +102,7 @@ static int parse_redboot_partitions(stru
|
||||
int namelen = 0;
|
||||
int nulllen = 0;
|
||||
int numslots;
|
||||
@ -31,7 +31,7 @@
|
||||
unsigned long offset;
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
|
||||
static char nullstring[] = "unallocated";
|
||||
@@ -195,7 +212,10 @@ static int parse_redboot_partitions(stru
|
||||
@@ -200,7 +217,10 @@ static int parse_redboot_partitions(stru
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
struct fis_list *new_fl, **prev;
|
||||
|
||||
if (buf[i].name[0] == 0xff) {
|
||||
@@ -271,12 +291,13 @@ static int parse_redboot_partitions(stru
|
||||
@@ -276,12 +296,13 @@ static int parse_redboot_partitions(stru
|
||||
}
|
||||
#endif
|
||||
for ( ; i<nrparts; i++) {
|
||||
@ -59,7 +59,7 @@
|
||||
strcpy(names, fl->img->name);
|
||||
#ifdef CONFIG_MTD_REDBOOT_PARTS_READONLY
|
||||
if (!memcmp(names, "RedBoot", 8) ||
|
||||
@@ -306,7 +327,9 @@ static int parse_redboot_partitions(stru
|
||||
@@ -311,7 +332,9 @@ static int parse_redboot_partitions(stru
|
||||
fl = fl->next;
|
||||
kfree(tmp_fl);
|
||||
}
|
||||
|
||||
@ -103,8 +103,9 @@
|
||||
|
||||
ath9k0: wifi@0,11 { /* 2.4 GHz */
|
||||
compatible = "pci168c,0029";
|
||||
mtd-mac-address = <&hwinfo 0x1c>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_hwinfo_1c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
reg = <0x8800 0 0 0 0>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -112,8 +113,9 @@
|
||||
|
||||
ath9k1: wifi@0,12 { /* 5 GHz */
|
||||
compatible = "pci168c,0029";
|
||||
mtd-mac-address = <&hwinfo 0x1c>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_hwinfo_1c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
reg = <0x9000 0 0 0 0>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -132,7 +134,8 @@
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&hwinfo 0x1c>;
|
||||
nvmem-cells = <&macaddr_hwinfo_1c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
pll-data = <0x00110000 0x00001099 0x00991099>;
|
||||
|
||||
@ -179,3 +182,13 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&hwinfo {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_hwinfo_1c: macaddr@1c {
|
||||
reg = <0x1c 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -247,7 +247,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
@ -258,8 +259,23 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x520c>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_520c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
|
||||
phy-handle = <&phy4>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_120c: macaddr@120c {
|
||||
reg = <0x120c 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_520c: macaddr@520c {
|
||||
reg = <0x520c 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -81,8 +81,9 @@
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x8800 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
@ -91,8 +92,9 @@
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x9000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
@ -114,7 +116,8 @@
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
pll-data = <0x00110000 0x00001099 0x00991099>;
|
||||
|
||||
@ -167,3 +170,13 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&config {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_config_66: macaddr@66 {
|
||||
reg = <0x66 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -153,7 +153,7 @@
|
||||
ath9k0: wifi@0,11 {
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x8800 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address = <&art 0xc>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -181,7 +181,7 @@
|
||||
ath9k1: wifi@0,12 {
|
||||
compatible = "pci168c,0029";
|
||||
reg = <0x9000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0xc>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
|
||||
@ -153,14 +153,16 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -170,7 +172,8 @@
|
||||
compatible = "pci168c,002a";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
@ -181,3 +184,13 @@
|
||||
pinctrl-single,bits = <0x0 0x0 0xf8>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_120c: macaddr@120c {
|
||||
reg = <0x120c 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -72,13 +72,15 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -92,3 +94,13 @@
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -174,13 +174,15 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -189,10 +191,25 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,002b";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -107,13 +107,15 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -122,10 +124,25 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,002b";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -104,7 +104,8 @@
|
||||
ath9k: wifi@0,0 {
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
@ -115,3 +116,13 @@
|
||||
pinctrl-single,bits = <0x0 0x0 0xf8>;
|
||||
};
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -14,9 +14,20 @@
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
compatible = "pci168c,002a";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -30,15 +30,27 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
compatible = "pci168c,002b";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -179,13 +179,15 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
compatible = "qca,ar7241-eth", "syscon", "simple-mfd";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -194,10 +196,25 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,002e";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -171,7 +171,7 @@
|
||||
compatible = "pci168c,002e";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
mac-address-increment = <1>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
|
||||
@ -89,18 +89,31 @@
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -135,18 +135,31 @@
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -94,9 +94,20 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wifi {
|
||||
ubnt,hsr;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -45,4 +45,3 @@
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
};
|
||||
|
||||
|
||||
@ -15,5 +15,16 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -192,7 +192,8 @@
|
||||
|
||||
pll-data = <0x1c000000 0x00000101 0x00001616>;
|
||||
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
@ -204,7 +205,8 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,002a";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x120c>;
|
||||
nvmem-cells = <&macaddr_art_120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -229,3 +231,13 @@
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_120c: macaddr@120c {
|
||||
reg = <0x120c 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -64,7 +64,8 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
nvmem-cells = <&macaddr_art_1002>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -73,9 +74,20 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,0030";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
nvmem-cells = <&macaddr_art_1002>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_1002: macaddr@1002 {
|
||||
reg = <0x1002 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -63,7 +63,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-handle = <&phy4>;
|
||||
phy-mode = "rgmii-id";
|
||||
@ -77,10 +78,21 @@
|
||||
ath9k: wifi@0,0,0 {
|
||||
compatible = "pci168c,002a";
|
||||
reg = <0x0 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -63,7 +63,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-handle = <&phy4>;
|
||||
phy-mode = "rgmii-id";
|
||||
@ -77,10 +78,21 @@
|
||||
ath9k: wifi@0,0,0 {
|
||||
compatible = "pci168c,002a";
|
||||
reg = <0x0 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -81,8 +81,9 @@
|
||||
compatible = "pci168c,002a";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -101,7 +102,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
pll-data = <0x02000000 0x00000101 0x00001313>;
|
||||
|
||||
@ -116,7 +118,8 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&config 0x66>;
|
||||
nvmem-cells = <&macaddr_config_66>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&spi {
|
||||
@ -164,3 +167,13 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&config {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_config_66: macaddr@66 {
|
||||
reg = <0x66 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -157,7 +157,8 @@
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
qca,no-eeprom;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
|
||||
@ -165,7 +166,8 @@
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-handle = <&phy0>;
|
||||
fixed-link {
|
||||
@ -173,3 +175,13 @@
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -67,10 +67,21 @@
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "rgmii";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -179,7 +179,8 @@
|
||||
|
||||
phy-mode = "rgmii-rxid";
|
||||
pll-data = <0x16000000 0x00000101 0x00001313>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-handle = <&phy0>;
|
||||
fixed-link {
|
||||
@ -187,3 +188,13 @@
|
||||
full-duplex;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -131,5 +131,16 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -79,11 +79,27 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -188,7 +188,8 @@
|
||||
status = "disabled";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
mtd-mac-address = <&art 0x1120c>;
|
||||
nvmem-cells = <&macaddr_art_1120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
@ -215,7 +216,8 @@
|
||||
resets = <&rst 13>;
|
||||
reset-names = "mac";
|
||||
qca,mac-idx = <1>;
|
||||
mtd-mac-address = <&art 0x1120c>;
|
||||
nvmem-cells = <&macaddr_art_1120c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -247,3 +249,13 @@
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_1120c: macaddr@1120c {
|
||||
reg = <0x1120c 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -118,7 +118,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-handle = <&phy12>;
|
||||
};
|
||||
@ -127,5 +128,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -137,7 +137,8 @@
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
fixed-link {
|
||||
speed = <1000>;
|
||||
@ -149,5 +150,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -144,7 +144,8 @@
|
||||
status = "okay";
|
||||
|
||||
phy-mode = "rmii";
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
fixed-link {
|
||||
speed = <100>;
|
||||
@ -155,5 +156,16 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -113,13 +113,15 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -133,5 +135,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -130,13 +130,15 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -144,3 +146,17 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -112,7 +112,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
nvmem-cells = <&macaddr_art_1002>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -132,5 +133,20 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&art 0x2>;
|
||||
nvmem-cells = <&macaddr_art_2>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_2: macaddr@2 {
|
||||
reg = <0x2 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_1002: macaddr@1002 {
|
||||
reg = <0x1002 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -86,14 +86,16 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -101,3 +103,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -103,7 +103,8 @@
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -115,10 +116,25 @@
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -55,7 +55,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -123,3 +124,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -93,9 +93,10 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
mtd-mac-address-increment-byte = <3>;
|
||||
mtd-mac-address-increment = <0x40>;
|
||||
nvmem-cells = <&macaddr_art_1002>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment-byte = <3>;
|
||||
mac-address-increment = <0x40>;
|
||||
};
|
||||
|
||||
&mdio1 {
|
||||
@ -107,3 +108,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_1002: macaddr@1002 {
|
||||
reg = <0x1002 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -63,7 +63,8 @@
|
||||
|
||||
ð0 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -117,3 +118,13 @@
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -121,7 +121,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -134,7 +135,8 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -142,3 +144,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -58,7 +58,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -117,3 +118,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -24,8 +24,9 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -38,8 +39,9 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&pinmux {
|
||||
@ -90,3 +92,13 @@
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -62,7 +62,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
@ -119,3 +120,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -75,7 +75,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -102,5 +103,16 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -83,7 +83,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -111,5 +112,16 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -109,14 +109,16 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
nvmem-cells = <&macaddr_config_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_config_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&spi {
|
||||
@ -188,6 +190,17 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&config 0x0>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_config_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
};
|
||||
|
||||
&config {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_config_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -146,7 +146,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
|
||||
@ -165,5 +166,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -135,7 +135,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
|
||||
@ -154,5 +155,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -80,7 +80,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -110,5 +111,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&usb {
|
||||
|
||||
@ -121,8 +121,9 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -135,13 +136,25 @@
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -46,7 +46,8 @@
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -54,3 +55,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -65,13 +65,15 @@
|
||||
|
||||
phy-handle = <&swphy0>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -84,3 +86,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -142,11 +142,13 @@
|
||||
|
||||
phy-handle = <&swphy4>;
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
@ -154,3 +156,17 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -133,18 +133,30 @@
|
||||
status = "okay";
|
||||
|
||||
phy-handle = <&swphy0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
phy-handle = <&swphy4>;
|
||||
pll-data = <0x06000000 0x00000101 0x00001616>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
switch-phy-swap = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -188,7 +188,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
phy-handle = <&swphy4>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
@ -213,3 +214,13 @@
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -82,7 +82,7 @@
|
||||
phy-handle = <&swphy0>;
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
|
||||
@ -54,7 +54,8 @@
|
||||
|
||||
phy-handle = <&swphy0>;
|
||||
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -71,5 +72,16 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&uboot 0x1fc00>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -96,7 +96,8 @@
|
||||
/* default for ar934x, except for 1000M and 10M */
|
||||
pll-data = <0x06000000 0x00000101 0x00001313>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
@ -111,3 +112,13 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -18,7 +18,8 @@
|
||||
/* default for ar934x, except for 1000M and 10M */
|
||||
pll-data = <0x02000000 0x00000101 0x00001313>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&phy4>;
|
||||
@ -29,3 +30,13 @@
|
||||
rxdv-delay = <3>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -26,7 +26,8 @@
|
||||
/* default for ar934x, except for 1000M and 10M */
|
||||
pll-data = <0x06000000 0x00000101 0x00001313>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
@ -37,3 +38,13 @@
|
||||
rxdv-delay = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -110,5 +110,16 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -106,8 +106,9 @@
|
||||
compatible = "pci168c,0030";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
|
||||
mtd-mac-address = <&hw_info 0x0>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_hw_info_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -160,8 +161,9 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&hw_info 0x0>;
|
||||
mtd-mac-address-increment = <1>;
|
||||
nvmem-cells = <&macaddr_hw_info_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&nand {
|
||||
@ -215,7 +217,8 @@
|
||||
|
||||
pll-data = <0x06000000 0x00000101 0x00001313>;
|
||||
|
||||
mtd-mac-address = <&hw_info 0x0>;
|
||||
nvmem-cells = <&macaddr_hw_info_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&phy0>;
|
||||
@ -227,3 +230,13 @@
|
||||
rxdv-delay = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
&hw_info {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_hw_info_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -90,14 +90,16 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
phy-handle = <&swphy4>;
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&ref {
|
||||
@ -149,3 +151,17 @@
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -120,7 +120,8 @@
|
||||
ð0 {
|
||||
status = "okay";
|
||||
phy-handle = <&swphy0>;
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
gmac-config {
|
||||
device = <&gmac>;
|
||||
@ -130,10 +131,25 @@
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -139,8 +139,19 @@
|
||||
|
||||
pll-data = <0x06000000 0x00000101 0x00001616>;
|
||||
|
||||
mtd-mac-address = <&uboot 0x2e010>;
|
||||
nvmem-cells = <&macaddr_uboot_2e010>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_2e010: macaddr@2e010 {
|
||||
reg = <0x2e010 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -130,8 +130,9 @@
|
||||
|
||||
pll-data = <0x02000000 0x00000101 0x00001616>;
|
||||
|
||||
mtd-mac-address = <&art 0x1002>;
|
||||
mtd-mac-address-increment = <2>;
|
||||
nvmem-cells = <&macaddr_art_1002>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
@ -168,3 +169,13 @@
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_1002: macaddr@1002 {
|
||||
reg = <0x1002 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -29,17 +29,30 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <(-2)>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-2)>;
|
||||
};
|
||||
|
||||
&pcie {
|
||||
wifi@0,0,0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
|
||||
&wmac {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -24,17 +24,30 @@
|
||||
};
|
||||
|
||||
ð0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
wifi@0,0,0 {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <(-2)>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-2)>;
|
||||
};
|
||||
};
|
||||
|
||||
&wmac {
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
mtd-mac-address-increment = <(-1)>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -219,7 +219,8 @@
|
||||
/* default for ar934x, except for 1000M */
|
||||
pll-data = <0x06000000 0x00000101 0x00001616>;
|
||||
|
||||
mtd-mac-address = <&caldata 0x0>;
|
||||
nvmem-cells = <&macaddr_caldata_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
@ -244,7 +245,8 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-mac-address = <&caldata 0x0>;
|
||||
nvmem-cells = <&macaddr_caldata_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
};
|
||||
|
||||
@ -254,9 +256,24 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,0033";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&caldata 0xc>;
|
||||
nvmem-cells = <&macaddr_caldata_c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
};
|
||||
|
||||
&caldata {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_caldata_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_caldata_c: macaddr@c {
|
||||
reg = <0xc 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -129,7 +129,8 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,0030";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mtd-mac-address = <&art 0xc>;
|
||||
nvmem-cells = <&macaddr_art_c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -140,7 +141,8 @@
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
mtd-mac-address = <&art 0x6>;
|
||||
nvmem-cells = <&macaddr_art_6>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&mdio0 {
|
||||
@ -158,8 +160,27 @@
|
||||
|
||||
pll-data = <0x06000000 0x00000101 0x00001313>;
|
||||
|
||||
mtd-mac-address = <&art 0x0>;
|
||||
nvmem-cells = <&macaddr_art_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
|
||||
phy-mode = "rgmii-id";
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_art_0: macaddr@0 {
|
||||
reg = <0x0 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_6: macaddr@6 {
|
||||
reg = <0x6 0x6>;
|
||||
};
|
||||
|
||||
macaddr_art_c: macaddr@c {
|
||||
reg = <0xc 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user