Merge Official Source

This commit is contained in:
AmadeusGhost 2021-02-21 12:00:33 +08:00
commit 5d81a51580
19 changed files with 239 additions and 51 deletions

View File

@ -258,7 +258,7 @@ help:
cat README.md
distclean:
rm -rf bin build_dir .ccache .config* dl feeds key-build* logs package/feeds package/openwrt-packages staging_dir tmp
rm -rf bin build_dir .ccache .config* dl feeds key-build* logs package/feeds staging_dir tmp
@$(_SINGLE)$(SUBMAKE) -C scripts/config clean
ifeq ($(findstring v,$(DEBUG)),)

View File

@ -15,19 +15,24 @@ PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://source.codeaurora.org/external/qoriq/qoriq-components/atf
PKG_SOURCE_VERSION:=7d748e6f0ec652ba7c43733dc67a3d0b0217390a
PKG_MIRROR_HASH:=d209c9ad18aac9f18375450b98b8dab00f0382ccb485df14623bf9b72ea1dd9b
PKG_BUILD_DEPENDS:=arm-trusted-firmware-tools/host tfa-layerscape/host
PKG_BUILD_DEPENDS:=tfa-layerscape/host
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
HOST_CFLAGS += -Wall -Werror -pedantic -std=c99
define Host/Compile
$(MAKE) -C \
$(HOST_BUILD_DIR)/tools/fiptool \
CFLAGS="$(HOST_CFLAGS)" \
LDFLAGS="$(HOST_LDFLAGS)"
$(MAKE) -C \
$(HOST_BUILD_DIR)/plat/nxp/tools \
CFLAGS="$(HOST_CFLAGS)"
endef
define Host/Install
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/fiptool/fiptool $(STAGING_DIR_HOST)/bin/fiptool-layerscape
$(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/create_pbl $(STAGING_DIR_HOST)/bin/tfa-create-pbl
$(INSTALL_BIN) $(HOST_BUILD_DIR)/plat/nxp/tools/byte_swap $(STAGING_DIR_HOST)/bin/tfa-byte-swap
endef
@ -151,7 +156,7 @@ define Build/Compile
fip pbl PLAT=$(PLAT) BOOT_MODE=$(BOOT_MODE) \
RCW=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-rcw.bin \
BL33=$(STAGING_DIR_IMAGE)/fsl_$(BUILD_VARIANT)-uboot.bin \
FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool \
FIPTOOL=$(STAGING_DIR_HOST)/bin/fiptool-layerscape \
CREATE_PBL=$(STAGING_DIR_HOST)/bin/tfa-create-pbl \
BYTE_SWAP=$(STAGING_DIR_HOST)/bin/tfa-byte-swap
endef

View File

@ -29,7 +29,7 @@ endef
define Build/Compile
cd $(PKG_BUILD_DIR)/lx2160a/ && \
tfa-fiptool create \
fiptool-layerscape create \
--ddr-immem-udimm-1d ddr4_pmu_train_imem.bin \
--ddr-immem-udimm-2d ddr4_2d_pmu_train_imem.bin \
--ddr-dmmem-udimm-1d ddr4_pmu_train_dmem.bin \

View File

@ -84,6 +84,22 @@ endef
$(eval $(call KernelPackage,ledtrig-oneshot))
define KernelPackage/leds-apu
SUBMENU:=$(LEDS_MENU)
TITLE:=PC Engines APU1 LED support
DEPENDS:= @GPIO_SUPPORT @TARGET_x86
KCONFIG:=CONFIG_LEDS_APU
FILES:=$(LINUX_DIR)/drivers/leds/leds-apu.ko
AUTOLOAD:=$(call AutoLoad,60,leds-apu,1)
endef
define KernelPackage/leds-apu/description
Driver for the PC Engines APU1 LEDs.
endef
$(eval $(call KernelPackage,leds-apu))
define KernelPackage/leds-pca963x
SUBMENU:=$(LEDS_MENU)
TITLE:=PCA963x LED support

View File

@ -48,7 +48,7 @@ config WOLFSSL_HAS_WPAS
default y
config WOLFSSL_HAS_ECC25519
bool "Include ECC Curve 22519 support"
bool "Include ECC Curve 25519 support"
default n
config WOLFSSL_HAS_DEVCRYPTO

View File

@ -7,7 +7,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=hostapd
PKG_RELEASE:=31
PKG_RELEASE:=32
PKG_SOURCE_URL:=http://w1.fi/hostap.git
PKG_SOURCE_PROTO:=git

View File

@ -0,0 +1,78 @@
From c7cca9b08f3e1e49c4a4a59ec66c47d91448e6ae Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 13 Feb 2021 23:59:28 +0200
Subject: [PATCH] nl80211: Ignore 4addr mode enabling error if it was already
enabled
nl80211_set_4addr_mode() could fail when trying to enable 4addr mode on
an interface that is in a bridge and has 4addr mode already enabled.
This operation would not have been necessary in the first place and this
failure results in disconnecting, e.g., when roaming from one backhaul
BSS to another BSS with Multi AP.
Avoid this issue by ignoring the nl80211 command failure in the case
where 4addr mode is being enabled while it has already been enabled.
Signed-off-by: Jouni Malinen <j@w1.fi>
---
src/drivers/driver_nl80211.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 72189da24..011a15e68 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -617,6 +617,7 @@ struct wiphy_idx_data {
int wiphy_idx;
enum nl80211_iftype nlmode;
u8 *macaddr;
+ u8 use_4addr;
};
@@ -639,6 +640,9 @@ static int netdev_info_handler(struct nl_msg *msg, void *arg)
os_memcpy(info->macaddr, nla_data(tb[NL80211_ATTR_MAC]),
ETH_ALEN);
+ if (tb[NL80211_ATTR_4ADDR])
+ info->use_4addr = nla_get_u8(tb[NL80211_ATTR_4ADDR]);
+
return NL_SKIP;
}
@@ -691,6 +695,20 @@ static int nl80211_get_macaddr(struct i802_bss *bss)
}
+static int nl80211_get_4addr(struct i802_bss *bss)
+{
+ struct nl_msg *msg;
+ struct wiphy_idx_data data = {
+ .use_4addr = 0,
+ };
+
+ if (!(msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_GET_INTERFACE)) ||
+ send_and_recv_msgs(bss->drv, msg, netdev_info_handler, &data))
+ return -1;
+ return data.use_4addr;
+}
+
+
static int nl80211_register_beacons(struct wpa_driver_nl80211_data *drv,
struct nl80211_wiphy_data *w)
{
@@ -11482,6 +11500,11 @@ static int nl80211_set_4addr_mode(void *priv, const char *bridge_ifname,
ret = send_and_recv_msgs(drv, msg, NULL, NULL);
msg = NULL;
+ if (ret && val && nl80211_get_4addr(bss) == 1) {
+ wpa_printf(MSG_DEBUG,
+ "nl80211: 4addr mode was already enabled");
+ ret = 0;
+ }
if (!ret) {
if (bridge_ifname[0] && val &&
i802_check_bridge(drv, bss, bridge_ifname, bss->ifname) < 0)
--
2.29.2

View File

@ -1,37 +0,0 @@
From 8a4893dd06eb236460db4937f3c54e246739ad28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= <raphael.melotte@mind.be>
Date: Wed, 3 Feb 2021 14:23:17 +0100
Subject: [PATCH] wpa_supplicant: multi_ap: only enable 4addr mode if not
already enabled
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If 4addr mode is already enabled, the call to enable it a second time
may fail. If this happens when roaming, it leads to deauthentication.
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
---
wpa_supplicant/events.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2589,11 +2589,13 @@ static void multi_ap_set_4addr_mode(stru
goto fail;
}
- if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
- wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
- goto fail;
+ if (wpa_s->enabled_4addr_mode == 0) {
+ if (wpa_drv_set_4addr_mode(wpa_s, 1) < 0) {
+ wpa_printf(MSG_ERROR, "Failed to set 4addr mode");
+ goto fail;
+ }
+ wpa_s->enabled_4addr_mode = 1;
}
- wpa_s->enabled_4addr_mode = 1;
return;
fail:

View File

@ -7,9 +7,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/keyring.git
PKG_SOURCE_DATE:=2019-07-25
PKG_SOURCE_VERSION:=8080ef341b4180e40c4ae8ab63511ac6496f0ad1
PKG_MIRROR_HASH:=000882364b953691bf02f7ac41462badb68f452f0317cdfd51cfd617c9b1e364
PKG_SOURCE_DATE:=2021-02-20
PKG_SOURCE_VERSION:=49283916005d7868923d34ab34f14188cf74812d
PKG_MIRROR_HASH:=7b58592bb49e4b37c8e80904c8f457ce3f0f2e6b1d2c473ccfe9204a8b7be831
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=GPL-2.0

View File

@ -19,6 +19,8 @@ define Target/Description
endef
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES := $(filter-out urngd,$(DEFAULT_PACKAGES))
DEFAULT_PACKAGES += \
bcm27xx-gpu-fw \
kmod-usb-hid \

View File

@ -246,6 +246,7 @@ CONFIG_HOTPLUG_CPU=y
CONFIG_HW_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_BCM2835=y
CONFIG_HW_RANDOM_IPROC_RNG200=y
CONFIG_HZ=100
CONFIG_HZ_100=y
CONFIG_HZ_FIXED=0

View File

@ -258,6 +258,7 @@ CONFIG_HOTPLUG_CPU=y
CONFIG_HW_CONSOLE=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_BCM2835=y
CONFIG_HW_RANDOM_IPROC_RNG200=y
CONFIG_HZ=250
CONFIG_HZ_250=y
CONFIG_I2C=y

View File

@ -0,0 +1,25 @@
From d3e5e7f3a4e6f61e8c380b9a610212267ee72dbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Sat, 20 Feb 2021 19:24:50 +0100
Subject: [PATCH] hwrng: iproc: set quality to 1000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows khwrngd to make use of iproc-rng200.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/char/hw_random/iproc-rng200.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/char/hw_random/iproc-rng200.c
+++ b/drivers/char/hw_random/iproc-rng200.c
@@ -270,6 +270,7 @@ static int iproc_rng200_probe(struct pla
priv->rng.name = pdev->name;
priv->rng.cleanup = iproc_rng200_cleanup;
+ priv->rng.quality = 1000;
if (of_device_is_compatible(dev->of_node, "brcm,bcm2711-rng200")) {
priv->rng.init = bcm2711_rng200_init;

View File

@ -0,0 +1,26 @@
From d6988cf1d16faac56899918bb2b1be8d85155e3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Sat, 20 Feb 2021 18:36:38 +0100
Subject: [PATCH] hwrng: bcm2835: set quality to 1000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows devices without a high precission timer to reduce boot from >100s
to <30s.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/char/hw_random/bcm2835-rng.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
@@ -167,6 +167,7 @@ static int bcm2835_rng_probe(struct plat
priv->rng.init = bcm2835_rng_init;
priv->rng.read = bcm2835_rng_read;
priv->rng.cleanup = bcm2835_rng_cleanup;
+ priv->rng.quality = 1000;
if (dev_of_node(dev)) {
rng_id = of_match_node(bcm2835_rng_of_match, np);

View File

@ -0,0 +1,26 @@
From d6988cf1d16faac56899918bb2b1be8d85155e3f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Sat, 20 Feb 2021 18:36:38 +0100
Subject: [PATCH] hwrng: bcm2835: set quality to 1000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This allows devices without a high precission timer to reduce boot from >100s
to <30s.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/char/hw_random/bcm2835-rng.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
@@ -167,6 +167,7 @@ static int bcm2835_rng_probe(struct plat
priv->rng.init = bcm2835_rng_init;
priv->rng.read = bcm2835_rng_read;
priv->rng.cleanup = bcm2835_rng_cleanup;
+ priv->rng.quality = 1000;
if (dev_of_node(dev)) {
rng_id = of_match_node(bcm2835_rng_of_match, np);

View File

@ -8,10 +8,10 @@
board_config_update
case "$(board_name)" in
pc-engines-apu|pc-engines-apu2|pc-engines-apu3)
ucidef_set_led_netdev "wan" "WAN" "apu2:green:led3" "eth0"
ucidef_set_led_netdev "lan" "LAN" "apu2:green:led2" "br-lan"
ucidef_set_led_default "diag" "DIAG" "apu2:green:power" "1"
pc-engines-apu1|pc-engines-apu2|pc-engines-apu3)
ucidef_set_led_netdev "wan" "WAN" "apu:green:3" "eth0"
ucidef_set_led_netdev "lan" "LAN" "apu:green:2" "br-lan"
ucidef_set_led_default "diag" "DIAG" "apu:green:1" "1"
;;
traverse-technologies-geos)
ucidef_set_led_netdev "lan" "LAN" "geos:1" "br-lan" "tx rx"

View File

@ -9,7 +9,7 @@
board_config_update
case "$(board_name)" in
pc-engines-apu|pc-engines-apu2|pc-engines-apu3)
pc-engines-apu1|pc-engines-apu2|pc-engines-apu3)
ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0"
;;
traverse-technologies-geos)

View File

@ -18,6 +18,10 @@ do_sysinfo_x86() {
for file in product_name board_name; do
product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
case "$vendor:$product" in
"PC Engines:APU")
product="apu1"
break
;;
"Supermicro:Super Server")
continue
;;

View File

@ -0,0 +1,41 @@
From: Andreas Eberlein <foodeas@aeberlein.de>
Subject: x86: add LED support for PC Engines APU1 with mainline bios
This adds support for the LEDs on PC Engines APU1 with the mainline bios.
Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de>
---
--- a/drivers/leds/leds-apu.c
+++ b/drivers/leds/leds-apu.c
@@ -83,6 +83,7 @@ static const struct apu_led_profile apu1
};
static const struct dmi_system_id apu_led_dmi_table[] __initconst = {
+ /* PC Engines APU with "Legacy" bios < 4.0.8 */
{
.ident = "apu",
.matches = {
@@ -90,6 +91,14 @@ static const struct dmi_system_id apu_le
DMI_MATCH(DMI_PRODUCT_NAME, "APU")
}
},
+ /* PC Engines APU with "Mainline" bios >= 4.0.8 */
+ {
+ .ident = "apu",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "PC Engines"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "apu1")
+ }
+ },
{}
};
MODULE_DEVICE_TABLE(dmi, apu_led_dmi_table);
@@ -173,7 +182,7 @@ static int __init apu_led_init(void)
int err;
if (!(dmi_match(DMI_SYS_VENDOR, "PC Engines") &&
- dmi_match(DMI_PRODUCT_NAME, "APU"))) {
+ (dmi_match(DMI_PRODUCT_NAME, "APU") || dmi_match(DMI_PRODUCT_NAME, "apu1")))) {
pr_err("No PC Engines APUv1 board detected. For APUv2,3 support, enable CONFIG_PCENGINES_APU2\n");
return -ENODEV;
}