diff --git a/include/toplevel.mk b/include/toplevel.mk index 48ea44aa24..f5a2593a10 100644 --- a/include/toplevel.mk +++ b/include/toplevel.mk @@ -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)),) diff --git a/package/boot/tfa-layerscape/Makefile b/package/boot/tfa-layerscape/Makefile index d5a1664278..6285da6a15 100644 --- a/package/boot/tfa-layerscape/Makefile +++ b/package/boot/tfa-layerscape/Makefile @@ -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 diff --git a/package/firmware/layerscape/ls-ddr-phy/Makefile b/package/firmware/layerscape/ls-ddr-phy/Makefile index ea2ec311b8..bd861962e7 100644 --- a/package/firmware/layerscape/ls-ddr-phy/Makefile +++ b/package/firmware/layerscape/ls-ddr-phy/Makefile @@ -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 \ diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk index bc94e54ae1..2e5a56df1a 100644 --- a/package/kernel/linux/modules/leds.mk +++ b/package/kernel/linux/modules/leds.mk @@ -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 diff --git a/package/libs/wolfssl/Config.in b/package/libs/wolfssl/Config.in index c2f66589e6..5d1f119ac4 100644 --- a/package/libs/wolfssl/Config.in +++ b/package/libs/wolfssl/Config.in @@ -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 diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 62f74923f0..bd2a7c96ad 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -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 diff --git a/package/network/services/hostapd/patches/020-ignore-4addr-mode-enabling-error.patch b/package/network/services/hostapd/patches/020-ignore-4addr-mode-enabling-error.patch new file mode 100644 index 0000000000..3431ac0949 --- /dev/null +++ b/package/network/services/hostapd/patches/020-ignore-4addr-mode-enabling-error.patch @@ -0,0 +1,78 @@ +From c7cca9b08f3e1e49c4a4a59ec66c47d91448e6ae Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +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 +--- + 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 + diff --git a/package/network/services/hostapd/patches/130-wpa_supplicant-multi_ap_roam.patch b/package/network/services/hostapd/patches/130-wpa_supplicant-multi_ap_roam.patch deleted file mode 100644 index fd3017af92..0000000000 --- a/package/network/services/hostapd/patches/130-wpa_supplicant-multi_ap_roam.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8a4893dd06eb236460db4937f3c54e246739ad28 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Rapha=C3=ABl=20M=C3=A9lotte?= -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 ---- - 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: diff --git a/package/system/openwrt-keyring/Makefile b/package/system/openwrt-keyring/Makefile index 7779e0c5a4..6f3aa65622 100644 --- a/package/system/openwrt-keyring/Makefile +++ b/package/system/openwrt-keyring/Makefile @@ -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 PKG_LICENSE:=GPL-2.0 diff --git a/target/linux/bcm27xx/Makefile b/target/linux/bcm27xx/Makefile index c68592a9d4..a6dfcecb35 100644 --- a/target/linux/bcm27xx/Makefile +++ b/target/linux/bcm27xx/Makefile @@ -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 \ diff --git a/target/linux/bcm27xx/bcm2709/config-5.4 b/target/linux/bcm27xx/bcm2709/config-5.4 index 98ac433752..a4f6b3c0b4 100644 --- a/target/linux/bcm27xx/bcm2709/config-5.4 +++ b/target/linux/bcm27xx/bcm2709/config-5.4 @@ -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 diff --git a/target/linux/bcm27xx/bcm2711/config-5.4 b/target/linux/bcm27xx/bcm2711/config-5.4 index 2ba8bfba3d..df6237f51e 100644 --- a/target/linux/bcm27xx/bcm2711/config-5.4 +++ b/target/linux/bcm27xx/bcm2711/config-5.4 @@ -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 diff --git a/target/linux/bcm27xx/patches-5.4/960-hwrng-iproc-set-quality-to-1000.patch b/target/linux/bcm27xx/patches-5.4/960-hwrng-iproc-set-quality-to-1000.patch new file mode 100644 index 0000000000..0ceec49d7b --- /dev/null +++ b/target/linux/bcm27xx/patches-5.4/960-hwrng-iproc-set-quality-to-1000.patch @@ -0,0 +1,25 @@ +From d3e5e7f3a4e6f61e8c380b9a610212267ee72dbd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +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 +--- + 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; diff --git a/target/linux/generic/pending-5.10/840-hwrng-bcm2835-set-quality-to-1000.patch b/target/linux/generic/pending-5.10/840-hwrng-bcm2835-set-quality-to-1000.patch new file mode 100644 index 0000000000..247c6d8364 --- /dev/null +++ b/target/linux/generic/pending-5.10/840-hwrng-bcm2835-set-quality-to-1000.patch @@ -0,0 +1,26 @@ +From d6988cf1d16faac56899918bb2b1be8d85155e3f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +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 +--- + 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); diff --git a/target/linux/generic/pending-5.4/840-hwrng-bcm2835-set-quality-to-1000.patch b/target/linux/generic/pending-5.4/840-hwrng-bcm2835-set-quality-to-1000.patch new file mode 100644 index 0000000000..247c6d8364 --- /dev/null +++ b/target/linux/generic/pending-5.4/840-hwrng-bcm2835-set-quality-to-1000.patch @@ -0,0 +1,26 @@ +From d6988cf1d16faac56899918bb2b1be8d85155e3f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +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 +--- + 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); diff --git a/target/linux/x86/base-files/etc/board.d/01_leds b/target/linux/x86/base-files/etc/board.d/01_leds index 25dc4aeeb1..e9133e8877 100755 --- a/target/linux/x86/base-files/etc/board.d/01_leds +++ b/target/linux/x86/base-files/etc/board.d/01_leds @@ -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" diff --git a/target/linux/x86/base-files/etc/board.d/02_network b/target/linux/x86/base-files/etc/board.d/02_network index c6e381b946..05a68967bc 100755 --- a/target/linux/x86/base-files/etc/board.d/02_network +++ b/target/linux/x86/base-files/etc/board.d/02_network @@ -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) diff --git a/target/linux/x86/base-files/lib/preinit/01_sysinfo b/target/linux/x86/base-files/lib/preinit/01_sysinfo index 466c831e7e..b608d4edab 100644 --- a/target/linux/x86/base-files/lib/preinit/01_sysinfo +++ b/target/linux/x86/base-files/lib/preinit/01_sysinfo @@ -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 ;; diff --git a/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch b/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch new file mode 100644 index 0000000000..9d1e4ab9c2 --- /dev/null +++ b/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch @@ -0,0 +1,41 @@ +From: Andreas Eberlein +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 +--- +--- 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; + }