From 097d6890ba78b2395add2b2d5d0d6ea54fef91fa Mon Sep 17 00:00:00 2001 From: John Audia Date: Wed, 16 Aug 2023 15:15:17 -0400 Subject: [PATCH 01/18] kernel: bump 5.15 to 5.15.127 Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.127 All patches automatically rebased. Build system: x86_64 Build-tested: ramips/tplink_archer-a6-v3 Run-tested: ramips/tplink_archer-a6-v3 Signed-off-by: John Audia (cherry picked from commit 973c5d4a1d5d732f46b577384f39da2336a80fb1) --- include/kernel-5.15 | 4 ++-- ...x-add-support-for-qca-8327-internal-phy.patch | 4 ++-- ...803x-add-support-for-qca-8327-A-variant.patch | 4 ++-- ...x-add-resume-suspend-function-to-qca83x.patch | 6 +++--- ...x-fix-spacing-and-improve-name-for-83xx.patch | 2 +- ...t-phy-at803x-fix-resume-for-QCA8327-phy.patch | 6 +++--- ...803x-add-DAC-amplitude-fix-for-8327-phy.patch | 6 +++--- ...-NULL-pointer-dereference-on-AR9331-PHY.patch | 2 +- .../pending-5.15/630-packet_socket_type.patch | 16 ++++++++-------- ..._flow_offload-handle-netdevice-events-f.patch | 2 +- 10 files changed, 26 insertions(+), 26 deletions(-) diff --git a/include/kernel-5.15 b/include/kernel-5.15 index 7687c40aa8..c1c1e791f7 100644 --- a/include/kernel-5.15 +++ b/include/kernel-5.15 @@ -1,2 +1,2 @@ -LINUX_VERSION-5.15 = .126 -LINUX_KERNEL_HASH-5.15.126 = adf4aab9840f89ee151b837defbe16e9f388e8eef20df7ee94bf63be33b3ed6f +LINUX_VERSION-5.15 = .127 +LINUX_KERNEL_HASH-5.15.127 = add0a575341b263a06e93599fc220a5dd34cb4ca5b9d05097a5db2a061928f26 diff --git a/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch b/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch index 8f000ba918..03171d72cc 100644 --- a/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch +++ b/target/linux/generic/backport-5.15/742-v5.16-net-phy-at803x-add-support-for-qca-8327-internal-phy.patch @@ -17,7 +17,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c -@@ -1412,6 +1412,19 @@ static struct phy_driver at803x_driver[] +@@ -1410,6 +1410,19 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, @@ -37,7 +37,7 @@ Signed-off-by: David S. Miller }, }; module_phy_driver(at803x_driver); -@@ -1422,6 +1435,8 @@ static struct mdio_device_id __maybe_unu +@@ -1420,6 +1433,8 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, diff --git a/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch b/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch index 99d91dfa76..7e4e9462e8 100644 --- a/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch +++ b/target/linux/generic/backport-5.15/745-v5.16-01-net-phy-at803x-add-support-for-qca-8327-A-variant.patch @@ -26,7 +26,7 @@ Signed-off-by: David S. Miller #define QCA8337_PHY_ID 0x004dd036 #define QCA8K_PHY_ID_MASK 0xffffffff -@@ -1413,10 +1414,23 @@ static struct phy_driver at803x_driver[] +@@ -1411,10 +1412,23 @@ static struct phy_driver at803x_driver[] .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, }, { @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller /* PHY_GBIT_FEATURES */ .probe = at803x_probe, .flags = PHY_IS_INTERNAL, -@@ -1436,7 +1450,8 @@ static struct mdio_device_id __maybe_unu +@@ -1434,7 +1448,8 @@ static struct mdio_device_id __maybe_unu { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) }, diff --git a/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch b/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch index cd83fac83c..89aca23194 100644 --- a/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch +++ b/target/linux/generic/backport-5.15/745-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch @@ -16,7 +16,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c -@@ -1413,6 +1413,8 @@ static struct phy_driver at803x_driver[] +@@ -1411,6 +1411,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, @@ -25,7 +25,7 @@ Signed-off-by: David S. Miller }, { /* QCA8327-A from switch QCA8327-AL1A */ .phy_id = QCA8327_A_PHY_ID, -@@ -1426,6 +1428,8 @@ static struct phy_driver at803x_driver[] +@@ -1424,6 +1426,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, @@ -34,7 +34,7 @@ Signed-off-by: David S. Miller }, { /* QCA8327-B from switch QCA8327-BL1A */ .phy_id = QCA8327_B_PHY_ID, -@@ -1439,6 +1443,8 @@ static struct phy_driver at803x_driver[] +@@ -1437,6 +1441,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, diff --git a/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch b/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch index 586d8953b2..920bef24fd 100644 --- a/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch +++ b/target/linux/generic/backport-5.15/745-v5.16-03-net-phy-at803x-fix-spacing-and-improve-name-for-83xx.patch @@ -15,7 +15,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c -@@ -1402,47 +1402,47 @@ static struct phy_driver at803x_driver[] +@@ -1400,47 +1400,47 @@ static struct phy_driver at803x_driver[] .config_aneg = at803x_config_aneg, }, { /* QCA8337 */ diff --git a/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch b/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch index 09797ae83b..1029420ea9 100644 --- a/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch +++ b/target/linux/generic/backport-5.15/746-v5.16-01-net-phy-at803x-fix-resume-for-QCA8327-phy.patch @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller static struct phy_driver at803x_driver[] = { { /* Qualcomm Atheros AR8035 */ -@@ -1413,8 +1470,8 @@ static struct phy_driver at803x_driver[] +@@ -1411,8 +1468,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, @@ -107,7 +107,7 @@ Signed-off-by: David S. Miller }, { /* QCA8327-A from switch QCA8327-AL1A */ .phy_id = QCA8327_A_PHY_ID, -@@ -1428,8 +1485,8 @@ static struct phy_driver at803x_driver[] +@@ -1426,8 +1483,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, @@ -118,7 +118,7 @@ Signed-off-by: David S. Miller }, { /* QCA8327-B from switch QCA8327-BL1A */ .phy_id = QCA8327_B_PHY_ID, -@@ -1443,8 +1500,8 @@ static struct phy_driver at803x_driver[] +@@ -1441,8 +1498,8 @@ static struct phy_driver at803x_driver[] .get_sset_count = at803x_get_sset_count, .get_strings = at803x_get_strings, .get_stats = at803x_get_stats, diff --git a/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch b/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch index c504c37c84..5813619c5c 100644 --- a/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch +++ b/target/linux/generic/backport-5.15/746-v5.16-02-net-phy-at803x-add-DAC-amplitude-fix-for-8327-phy.patch @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller static int qca83xx_resume(struct phy_device *phydev) { int ret, val; -@@ -1463,6 +1493,7 @@ static struct phy_driver at803x_driver[] +@@ -1461,6 +1491,7 @@ static struct phy_driver at803x_driver[] .phy_id_mask = QCA8K_PHY_ID_MASK, .name = "Qualcomm Atheros 8337 internal PHY", /* PHY_GBIT_FEATURES */ @@ -73,7 +73,7 @@ Signed-off-by: David S. Miller .probe = at803x_probe, .flags = PHY_IS_INTERNAL, .config_init = qca83xx_config_init, -@@ -1478,6 +1509,7 @@ static struct phy_driver at803x_driver[] +@@ -1476,6 +1507,7 @@ static struct phy_driver at803x_driver[] .phy_id_mask = QCA8K_PHY_ID_MASK, .name = "Qualcomm Atheros 8327-A internal PHY", /* PHY_GBIT_FEATURES */ @@ -81,7 +81,7 @@ Signed-off-by: David S. Miller .probe = at803x_probe, .flags = PHY_IS_INTERNAL, .config_init = qca83xx_config_init, -@@ -1493,6 +1525,7 @@ static struct phy_driver at803x_driver[] +@@ -1491,6 +1523,7 @@ static struct phy_driver at803x_driver[] .phy_id_mask = QCA8K_PHY_ID_MASK, .name = "Qualcomm Atheros 8327-B internal PHY", /* PHY_GBIT_FEATURES */ diff --git a/target/linux/generic/backport-5.15/778-v5.18-03-net-phy-at803x-fix-NULL-pointer-dereference-on-AR9331-PHY.patch b/target/linux/generic/backport-5.15/778-v5.18-03-net-phy-at803x-fix-NULL-pointer-dereference-on-AR9331-PHY.patch index de8951db10..53d6325c49 100644 --- a/target/linux/generic/backport-5.15/778-v5.18-03-net-phy-at803x-fix-NULL-pointer-dereference-on-AR9331-PHY.patch +++ b/target/linux/generic/backport-5.15/778-v5.18-03-net-phy-at803x-fix-NULL-pointer-dereference-on-AR9331-PHY.patch @@ -45,7 +45,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c -@@ -1594,6 +1594,8 @@ static struct phy_driver at803x_driver[] +@@ -1592,6 +1592,8 @@ static struct phy_driver at803x_driver[] /* ATHEROS AR9331 */ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID), .name = "Qualcomm Atheros AR9331 built-in PHY", diff --git a/target/linux/generic/pending-5.15/630-packet_socket_type.patch b/target/linux/generic/pending-5.15/630-packet_socket_type.patch index ee13ce2a5c..c36e9e9fbb 100644 --- a/target/linux/generic/pending-5.15/630-packet_socket_type.patch +++ b/target/linux/generic/pending-5.15/630-packet_socket_type.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau #define PACKET_FANOUT_LB 1 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c -@@ -1826,6 +1826,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1830,6 +1830,7 @@ static int packet_rcv_spkt(struct sk_buf { struct sock *sk; struct sockaddr_pkt *spkt; @@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau /* * When we registered the protocol we saved the socket in the data -@@ -1833,6 +1834,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1837,6 +1838,7 @@ static int packet_rcv_spkt(struct sk_buf */ sk = pt->af_packet_priv; @@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau /* * Yank back the headers [hope the device set this -@@ -1845,7 +1847,7 @@ static int packet_rcv_spkt(struct sk_buf +@@ -1849,7 +1851,7 @@ static int packet_rcv_spkt(struct sk_buf * so that this procedure is noop. */ @@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau goto out; if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2091,12 +2093,12 @@ static int packet_rcv(struct sk_buff *sk +@@ -2095,12 +2097,12 @@ static int packet_rcv(struct sk_buff *sk unsigned int snaplen, res; bool is_drop_n_account = false; @@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -2222,12 +2224,12 @@ static int tpacket_rcv(struct sk_buff *s +@@ -2226,12 +2228,12 @@ static int tpacket_rcv(struct sk_buff *s BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); @@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau if (!net_eq(dev_net(dev), sock_net(sk))) goto drop; -@@ -3342,6 +3344,7 @@ static int packet_create(struct net *net +@@ -3346,6 +3348,7 @@ static int packet_create(struct net *net mutex_init(&po->pg_vec_lock); po->rollover = NULL; po->prot_hook.func = packet_rcv; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau if (sock->type == SOCK_PACKET) po->prot_hook.func = packet_rcv_spkt; -@@ -3979,6 +3982,16 @@ packet_setsockopt(struct socket *sock, i +@@ -3983,6 +3986,16 @@ packet_setsockopt(struct socket *sock, i WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit); return 0; } @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau default: return -ENOPROTOOPT; } -@@ -4035,6 +4048,13 @@ static int packet_getsockopt(struct sock +@@ -4039,6 +4052,13 @@ static int packet_getsockopt(struct sock case PACKET_VNET_HDR: val = po->has_vnet_hdr; break; diff --git a/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch b/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch index 488c6a8d92..606e053513 100644 --- a/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch +++ b/target/linux/generic/pending-5.15/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch @@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso --- a/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c -@@ -444,47 +444,14 @@ static struct nft_expr_type nft_flow_off +@@ -446,47 +446,14 @@ static struct nft_expr_type nft_flow_off .owner = THIS_MODULE, }; From 6eb6a75b8d78ae70b3c9f2de70a38352c5de3714 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 23 May 2023 15:43:14 +0800 Subject: [PATCH 02/18] kernel: modules: add xdp-sockets-diag support Support for PF_XDP sockets monitoring interface used by the ss tool. Signed-off-by: Tianling Shen (cherry picked from commit 06e64f9b364abe15c27bf0a7225fcac740819668) --- config/Config-kernel.in | 6 ++++++ package/kernel/linux/modules/netsupport.mk | 16 ++++++++++++++++ .../hack-5.15/901-debloat_sock_diag.patch | 10 ++++++++++ 3 files changed, 32 insertions(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 32524f5aed..fbcd008f2f 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -1097,6 +1097,12 @@ config KERNEL_NET_L3_MASTER_DEV This module provides glue between core networking code and device drivers to support L3 master devices like VRF. +config KERNEL_XDP_SOCKETS + bool "XDP sockets support" + help + XDP sockets allows a channel between XDP programs and + userspace applications. + config KERNEL_WIRELESS_EXT def_bool n diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk index 97556e459d..27268ee043 100644 --- a/package/kernel/linux/modules/netsupport.mk +++ b/package/kernel/linux/modules/netsupport.mk @@ -1443,6 +1443,22 @@ endef $(eval $(call KernelPackage,inet-diag)) +define KernelPackage/xdp-sockets-diag + SUBMENU:=$(NETWORK_SUPPORT_MENU) + TITLE:=PF_XDP sockets monitoring interface support for ss utility + DEPENDS:=@KERNEL_XDP_SOCKETS + KCONFIG:=CONFIG_XDP_SOCKETS_DIAG + FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko + AUTOLOAD:=$(call AutoLoad,31,xsk_diag) +endef + +define KernelPackage/xdp-sockets-diag/description + Support for PF_XDP sockets monitoring interface used by the ss tool +endef + +$(eval $(call KernelPackage,xdp-sockets-diag)) + + define KernelPackage/wireguard SUBMENU:=$(NETWORK_SUPPORT_MENU) TITLE:=WireGuard secure network tunnel diff --git a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch index ac53bd0281..5c1ce01a2c 100644 --- a/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch +++ b/target/linux/generic/hack-5.15/901-debloat_sock_diag.patch @@ -160,3 +160,13 @@ Signed-off-by: Felix Fietkau default n help Support for UNIX socket monitoring interface used by the ss tool. +--- a/net/xdp/Kconfig ++++ b/net/xdp/Kconfig +@@ -10,6 +10,7 @@ config XDP_SOCKETS + config XDP_SOCKETS_DIAG + tristate "XDP sockets: monitoring interface" + depends on XDP_SOCKETS ++ select SOCK_DIAG + default n + help + Support for PF_XDP sockets monitoring interface used by the ss tool. From e306e46a8d334ea829df176468f7262f36427dc4 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 7 Jun 2023 01:04:03 +0000 Subject: [PATCH 03/18] armsr: armv8: sync Arm64 erratum options with kernel defconfig To reduce differences with the Linux arm64 defconfig, sync the enabled erratum items with defconfig. There are still some options not selected due to CONFIG_KVM or other options not enabled in OpenWrt by default. Signed-off-by: Mathew McBride (23.05/5.15 version of commit 5c4239ac3f189352698de706599bc32a6e457532) --- target/linux/armsr/armv8/config-5.15 | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 6b8b735059..a6ec43e3f1 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -24,14 +24,30 @@ CONFIG_ARM64_4K_PAGES=y CONFIG_ARM64_CNP=y CONFIG_ARM64_CRYPTO=y CONFIG_ARM64_EPAN=y +CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1286807=y +CONFIG_ARM64_ERRATUM_1319367=y +CONFIG_ARM64_ERRATUM_1418040=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_1508412=y +CONFIG_ARM64_ERRATUM_1530923=y +CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_1742098=y +CONFIG_ARM64_ERRATUM_2051678=y +CONFIG_ARM64_ERRATUM_2054223=y +CONFIG_ARM64_ERRATUM_2067961=y +CONFIG_ARM64_ERRATUM_2077057=y +CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=y +CONFIG_ARM64_ERRATUM_2658417=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_832075=y CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y CONFIG_ARM64_PAGE_SHIFT=12 @@ -47,6 +63,7 @@ CONFIG_ARM64_VA_BITS_48=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y +CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y # CONFIG_ARMADA_37XX_RWTM_MBOX is not set CONFIG_ARMADA_37XX_WATCHDOG=y CONFIG_ARMADA_THERMAL=y @@ -68,6 +85,11 @@ CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y # CONFIG_AXI_DMAC is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BLK_PM=y +CONFIG_CAVIUM_ERRATUM_22375=y +CONFIG_CAVIUM_ERRATUM_23144=y +CONFIG_CAVIUM_ERRATUM_23154=y +CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CAVIUM_ERRATUM_30115=y CONFIG_CAVIUM_TX2_ERRATUM_219=y CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y CONFIG_CLK_IMX8MM=y @@ -191,6 +213,7 @@ CONFIG_GPIO_ZYNQ=y CONFIG_HDMI=y CONFIG_HI3660_MBOX=y CONFIG_HI6220_MBOX=y +CONFIG_HISILICON_ERRATUM_161600802=y CONFIG_HISILICON_LPC=y CONFIG_HISI_PMU=y CONFIG_HISI_THERMAL=y @@ -369,6 +392,10 @@ CONFIG_POWER_RESET=y CONFIG_POWER_RESET_HISI=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_SUPPLY=y +CONFIG_QCOM_FALKOR_ERRATUM_1003=y +CONFIG_QCOM_FALKOR_ERRATUM_1009=y +CONFIG_QCOM_FALKOR_ERRATUM_E1041=y +CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QORIQ_THERMAL=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y @@ -413,6 +440,7 @@ CONFIG_SERIAL_SAMSUNG_CONSOLE=y # CONFIG_SND_SUN8I_CODEC is not set # CONFIG_SND_SUN8I_CODEC_ANALOG is not set # CONFIG_SNI_NETSEC is not set +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y CONFIG_SOC_IMX8M=y CONFIG_SPARSEMEM=y CONFIG_SPARSEMEM_EXTREME=y From 2c69d3e69252c6adac139be8f153c0eb6fc5625f Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 15 Aug 2023 03:47:23 +0000 Subject: [PATCH 04/18] kernel: default ARM_PMU on for armsr/armv8 CONFIG_ARM_PMU (Arm Performance Monitor Unit) is a requirement to use KVM (virtualization) from Linux 5.11+, as the virtualised guest has virtualized PMU access. Signed-off-by: Mathew McBride (cherry picked from commit 76d4a7c84a97a5555b1962ddb9fc694b7e1f6ba8) --- config/Config-kernel.in | 1 + 1 file changed, 1 insertion(+) diff --git a/config/Config-kernel.in b/config/Config-kernel.in index fbcd008f2f..c1bc7984f7 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -47,6 +47,7 @@ config KERNEL_MIPS_FP_SUPPORT config KERNEL_ARM_PMU bool + default y if TARGET_armsr_armv8 depends on (arm || aarch64) config KERNEL_X86_VSYSCALL_EMULATION From 88e7fe874124c7c6daf99b7716205cd91fbe6bc3 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 20 Jun 2023 01:23:17 +0000 Subject: [PATCH 05/18] armsr: armv8: enable KVM host x86/64 enables support for KVM so I can't see a reason why not on armsr/armv8 as well. Arm CPU errata workaround items related to virtualization are also enabled by this change. Signed-off-by: Mathew McBride (23.05/5.15 version of commit e505873e65f72b5e89c136dbb61d992a2219b6eb) --- target/linux/armsr/armv8/config-5.15 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index a6ec43e3f1..61641e1d3f 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -1,4 +1,5 @@ CONFIG_64BIT=y +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARCH_HISI=y CONFIG_ARCH_INTEL_SOCFPGA=y CONFIG_ARCH_LAYERSCAPE=y @@ -38,6 +39,7 @@ CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2077057=y +CONFIG_ARM64_ERRATUM_2441007=y CONFIG_ARM64_ERRATUM_2441009=y CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_2658417=y @@ -46,6 +48,7 @@ CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_834220=y CONFIG_ARM64_ERRATUM_843419=y CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_HW_AFDBM=y @@ -260,6 +263,7 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_K3_DMA is not set CONFIG_KCMP=y # CONFIG_KEYBOARD_SUN4I_LRADC is not set +CONFIG_KVM=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_PLATFORM is not set # CONFIG_MAILBOX_TEST is not set @@ -306,6 +310,7 @@ CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_NR_CPUS=64 +# CONFIG_NVHE_EL2_DEBUG is not set CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y # CONFIG_NVMEM_IMX_IIM is not set CONFIG_NVMEM_IMX_OCOTP=y @@ -518,6 +523,7 @@ CONFIG_VIDEOMODE_HELPERS=y # CONFIG_VIDEO_SUN6I_CSI is not set CONFIG_VIRTIO_DMA_SHARED_BUFFER=y # CONFIG_VIRTIO_IOMMU is not set +CONFIG_VIRTUALIZATION=y CONFIG_VMAP_STACK=y CONFIG_WDAT_WDT=y # CONFIG_XILINX_AMS is not set From f517d8a518e7d4a31ffe4a99fe12289ef149852c Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 20 Jun 2023 01:31:12 +0000 Subject: [PATCH 06/18] armsr: armv8: sync CPU features, EFI, CMA and scheduler options with Linux defconfig To bring the armsr/armv8 kernel configuration closer to the Linux arm64 defconfig, synchronize options related to CPU features (especially more recent Armv8.X variants), scheduler, EFI vars, CMA and scheduler options. Signed-off-by: Mathew McBride (23.05/5.15 version commit 22e0c7be47ca55b7366dc569926724271d51cb77) --- target/linux/armsr/armv8/config-5.15 | 45 +++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 61641e1d3f..0f0c634f1f 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -1,4 +1,5 @@ CONFIG_64BIT=y +CONFIG_ACPI_HMAT=y CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARCH_HISI=y CONFIG_ARCH_INTEL_SOCFPGA=y @@ -22,8 +23,11 @@ CONFIG_ARCH_WANTS_NO_INSTR=y CONFIG_ARCH_ZYNQMP=y CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y +CONFIG_ARM64_AMU_EXTN=y +CONFIG_ARM64_BTI=y CONFIG_ARM64_CNP=y CONFIG_ARM64_CRYPTO=y +CONFIG_ARM64_E0PD=y CONFIG_ARM64_EPAN=y CONFIG_ARM64_ERRATUM_1024718=y CONFIG_ARM64_ERRATUM_1165522=y @@ -53,14 +57,17 @@ CONFIG_ARM64_ERRATUM_843419=y CONFIG_ARM64_ERRATUM_845719=y CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y +CONFIG_ARM64_MTE=y CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_PAN=y CONFIG_ARM64_PA_BITS=48 CONFIG_ARM64_PA_BITS_48=y CONFIG_ARM64_PTR_AUTH=y CONFIG_ARM64_PTR_AUTH_KERNEL=y +CONFIG_ARM64_RAS_EXTN=y CONFIG_ARM64_SVE=y CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_ARM64_TLB_RANGE=y CONFIG_ARM64_VA_BITS=48 CONFIG_ARM64_VA_BITS_48=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y @@ -73,7 +80,12 @@ CONFIG_ARMADA_THERMAL=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y # CONFIG_ARM_DMC620_PMU is not set # CONFIG_ARM_MHU_V2 is not set +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y CONFIG_ARM_SBSA_WATCHDOG=y +CONFIG_ARM_SCPI_POWER_DOMAIN=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_ARM_SMCCC_SOC_ID=y CONFIG_ARM_SMC_WATCHDOG=y CONFIG_ARM_SMMU=y # CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is not set @@ -116,6 +128,17 @@ CONFIG_CLK_SUNXI_CLOCKS=y # CONFIG_CLK_SUNXI_PRCM_SUN8I is not set # CONFIG_CLK_SUNXI_PRCM_SUN9I is not set CONFIG_CLK_VEXPRESS_OSC=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=19 +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_SIZE_MBYTES=32 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SYSFS is not set # CONFIG_COMMON_CLK_FSL_FLEXSPI is not set # CONFIG_COMMON_CLK_FSL_SAI is not set CONFIG_COMMON_CLK_HI3516CV300=y @@ -164,6 +187,8 @@ CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA512_ARM64=y CONFIG_CRYPTO_SIMD=y +# CONFIG_DEV_DAX_HMEM is not set +CONFIG_DMA_CMA=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_SUN6I=y @@ -184,6 +209,11 @@ CONFIG_DRM_VRAM_HELPER=y # CONFIG_DWMAC_SUN8I is not set # CONFIG_DWMAC_SUNXI is not set CONFIG_DW_WATCHDOG=y +CONFIG_EFI_CAPSULE_LOADER=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +CONFIG_EFI_SOFT_RESERVE=y +CONFIG_EFI_VARS_PSTORE=y +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set CONFIG_ENA_ETHERNET=y CONFIG_FB=y CONFIG_FB_ARMCLCD=y @@ -263,6 +293,7 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_K3_DMA is not set CONFIG_KCMP=y # CONFIG_KEYBOARD_SUN4I_LRADC is not set +CONFIG_KSM=y CONFIG_KVM=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_PLATFORM is not set @@ -306,10 +337,14 @@ CONFIG_MODULES_USE_ELF_RELA=y CONFIG_MXS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y # CONFIG_NET_VENDOR_ALLWINNER is not set +CONFIG_NODES_SHIFT=4 CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=64 +CONFIG_NR_CPUS=256 +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y # CONFIG_NVHE_EL2_DEBUG is not set CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y # CONFIG_NVMEM_IMX_IIM is not set @@ -429,6 +464,10 @@ CONFIG_RTC_I2C_AND_SPI=y CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_SATA_HOST=y +# CONFIG_SCHED_CORE is not set +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +# CONFIG_SENSORS_ARM_SCPI is not set # CONFIG_SERIAL_8250_EXAR is not set CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_IMX=y @@ -486,6 +525,10 @@ CONFIG_SYNC_FILE=y CONFIG_SYSCTL_EXCEPTION_TRACE=y # CONFIG_TCG_TIS_SYNQUACER is not set CONFIG_THREAD_INFO_IN_TASK=y +# CONFIG_THUNDERX2_PMU is not set +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set # CONFIG_TURRIS_MOX_RWTM is not set CONFIG_TYPEC=y # CONFIG_TYPEC_DP_ALTMODE is not set From 14f7254a6a43ad448fa43d1b4d73b114ee4c37ee Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Mon, 14 Aug 2023 06:31:14 +0000 Subject: [PATCH 07/18] armsr: enable ACPI_BUTTON A review of the generated OpenWrt kernel .config vs the Linux arm64 defconfig showed that this option was not being enabled, as it is disabled in OpenWrt's generic config. ACPI_BUTTON is needed to report and respond to power button events, so it should be enabled. Signed-off-by: Mathew McBride (23.05/5.15 version of commit c4c60e4b192180288aab577e166091c2d4c470af) --- target/linux/armsr/config-5.15 | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/armsr/config-5.15 b/target/linux/armsr/config-5.15 index 530a4d5bd7..a9273e6489 100644 --- a/target/linux/armsr/config-5.15 +++ b/target/linux/armsr/config-5.15 @@ -12,6 +12,7 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y CONFIG_ACPI_APEI_PCIEAER=y CONFIG_ACPI_BATTERY=y # CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_BUTTON=y CONFIG_ACPI_CCA_REQUIRED=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_CPPC_CPUFREQ=y From cb0534d2ed4e980df7db643b7de9f24bdc3b614c Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 20 Jun 2023 01:53:23 +0000 Subject: [PATCH 08/18] armsr: armv8: enable CONFIG_ARCH_RENESAS Renesas markets several embedded Arm64 SoCs in the RZ series (RZ/G, RZ/V), so should be enabled in a general purpose target. Automotive (R-Car) SoC's are not enabled by this change. Signed-off-by: Mathew McBride (23.05/5.15 version of commit 1ff4f4df230166994c660ad77479f248223ce45b) --- target/linux/armsr/armv8/config-5.15 | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 0f0c634f1f..6642fb86b7 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -12,6 +12,27 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 CONFIG_ARCH_MVEBU=y CONFIG_ARCH_MXC=y CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ARCH_R8A774A1=y +CONFIG_ARCH_R8A774B1=y +CONFIG_ARCH_R8A774C0=y +CONFIG_ARCH_R8A774E1=y +# CONFIG_ARCH_R8A77950 is not set +# CONFIG_ARCH_R8A77951 is not set +# CONFIG_ARCH_R8A77960 is not set +# CONFIG_ARCH_R8A77961 is not set +# CONFIG_ARCH_R8A77965 is not set +# CONFIG_ARCH_R8A77970 is not set +# CONFIG_ARCH_R8A77980 is not set +# CONFIG_ARCH_R8A77990 is not set +# CONFIG_ARCH_R8A77995 is not set +# CONFIG_ARCH_R8A779A0 is not set +# CONFIG_ARCH_R8A779F0 is not set +# CONFIG_ARCH_R8A779G0 is not set +CONFIG_ARCH_R9A07G043=y +CONFIG_ARCH_R9A07G044=y +CONFIG_ARCH_R9A07G054=y +CONFIG_ARCH_R9A09G011=y +CONFIG_ARCH_RENESAS=y CONFIG_ARCH_ROCKCHIP=y CONFIG_ARCH_STACKWALK=y CONFIG_ARCH_SUNXI=y @@ -116,6 +137,8 @@ CONFIG_CLK_INTEL_SOCFPGA64=y CONFIG_CLK_LS1028A_PLLDIG=y CONFIG_CLK_PX30=y CONFIG_CLK_QORIQ=y +CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y +CONFIG_CLK_RENESAS=y CONFIG_CLK_RK3308=y CONFIG_CLK_RK3328=y CONFIG_CLK_RK3368=y @@ -202,6 +225,7 @@ CONFIG_DRM_PANEL=y CONFIG_DRM_PANEL_BRIDGE=y CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_QXL=y +# CONFIG_DRM_RCAR_DU is not set CONFIG_DRM_TTM=y CONFIG_DRM_TTM_HELPER=y CONFIG_DRM_VIRTIO_GPU=y @@ -223,6 +247,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CMDLINE=y CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_MX3 is not set +# CONFIG_FB_SH_MOBILE_LCDC is not set # CONFIG_FB_XILINX is not set CONFIG_FRAME_POINTER=y # CONFIG_FSL_DPAA is not set @@ -261,6 +286,8 @@ CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_HIX5HD2 is not set CONFIG_I2C_IMX=y CONFIG_I2C_IMX_LPI2C=y +CONFIG_I2C_RIIC=y +# CONFIG_I2C_RZV2M is not set CONFIG_I2C_SYNQUACER=y CONFIG_I2C_THUNDERX=y # CONFIG_I2C_XLP9XX is not set @@ -290,6 +317,7 @@ CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y # CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set CONFIG_IOMMU_SUPPORT=y +# CONFIG_IPMMU_VMSA is not set # CONFIG_K3_DMA is not set CONFIG_KCMP=y # CONFIG_KEYBOARD_SUN4I_LRADC is not set @@ -330,6 +358,10 @@ CONFIG_MMC_SDHCI_ESDHC_IMX=y CONFIG_MMC_SDHCI_OF_ESDHC=y CONFIG_MMC_SDHCI_PCI=y CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHI=y +CONFIG_MMC_SDHI_INTERNAL_DMAC=y +# CONFIG_MMC_SDHI_SYS_DMAC is not set +# CONFIG_MMC_SH_MMCIF is not set CONFIG_MMC_SUNXI=y CONFIG_MODULES_USE_ELF_RELA=y # CONFIG_MV_XOR is not set @@ -361,6 +393,8 @@ CONFIG_PCC=y CONFIG_PCIE_HISI_STB=y CONFIG_PCIE_LAYERSCAPE=y CONFIG_PCIE_MOBIVEIL_PLAT=y +# CONFIG_PCIE_RCAR_EP is not set +CONFIG_PCIE_RCAR_HOST=y CONFIG_PCIE_ROCKCHIP=y # CONFIG_PCIE_ROCKCHIP_DW_HOST is not set CONFIG_PCIE_ROCKCHIP_HOST=y @@ -369,6 +403,7 @@ CONFIG_PCIE_XILINX_NWL=y CONFIG_PCI_AARDVARK=y CONFIG_PCI_IMX6=y CONFIG_PCI_LAYERSCAPE=y +# CONFIG_PCI_RCAR_GEN2 is not set CONFIG_PHY_FSL_IMX8MQ_USB=y CONFIG_PHY_HI3660_USB=y CONFIG_PHY_HI3670_USB=y @@ -379,6 +414,10 @@ CONFIG_PHY_MVEBU_A3700_COMPHY=y CONFIG_PHY_MVEBU_A3700_UTMI=y CONFIG_PHY_MVEBU_A38X_COMPHY=y CONFIG_PHY_MVEBU_CP110_COMPHY=y +# CONFIG_PHY_RCAR_GEN2 is not set +CONFIG_PHY_RCAR_GEN3_PCIE=y +CONFIG_PHY_RCAR_GEN3_USB2=y +CONFIG_PHY_RCAR_GEN3_USB3=y # CONFIG_PHY_ROCKCHIP_DP is not set # CONFIG_PHY_ROCKCHIP_DPHY_RX0 is not set CONFIG_PHY_ROCKCHIP_EMMC=y @@ -439,6 +478,10 @@ CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QORIQ_THERMAL=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y +# CONFIG_RAVB is not set +CONFIG_RCAR_DMAC=y +# CONFIG_RCAR_GEN3_THERMAL is not set +# CONFIG_RCAR_THERMAL is not set CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_REGULATOR=y @@ -447,7 +490,14 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_HI655X=y CONFIG_REGULATOR_PFUZE100=y # CONFIG_REGULATOR_VEXPRESS is not set +CONFIG_RENESAS_OSTM=y +# CONFIG_RENESAS_RZAWDT is not set +# CONFIG_RENESAS_RZG2LWDT is not set +# CONFIG_RENESAS_RZN1WDT is not set +CONFIG_RENESAS_USB_DMAC=y +# CONFIG_RENESAS_WDT is not set CONFIG_RESET_IMX7=y +CONFIG_RESET_RZG2L_USBPHY_CTRL=y CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_IOMMU=y # CONFIG_ROCKCHIP_MBOX is not set @@ -460,7 +510,11 @@ CONFIG_RODATA_FULL_DEFAULT_ENABLED=y CONFIG_RTC_DRV_MV=y # CONFIG_RTC_DRV_MXC is not set # CONFIG_RTC_DRV_MXC_V2 is not set +# CONFIG_RTC_DRV_SH is not set CONFIG_RTC_I2C_AND_SPI=y +# CONFIG_RZG2L_ADC is not set +# CONFIG_RZG2L_THERMAL is not set +CONFIG_RZ_DMAC=y CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_SATA_HOST=y @@ -478,6 +532,9 @@ CONFIG_SERIAL_MVEBU_UART=y CONFIG_SERIAL_SAMSUNG=y CONFIG_SERIAL_SAMSUNG_CONSOLE=y # CONFIG_SMC91X is not set +# CONFIG_SND_SOC_RCAR is not set +# CONFIG_SND_SOC_RZ is not set +# CONFIG_SND_SOC_SH4_FSI is not set # CONFIG_SND_SUN4I_I2S is not set # CONFIG_SND_SUN50I_CODEC_ANALOG is not set # CONFIG_SND_SUN50I_DMIC is not set @@ -498,6 +555,9 @@ CONFIG_SPI_ARMADA_3700=y # CONFIG_SPI_HISI_SFC_V3XX is not set # CONFIG_SPI_IMX is not set # CONFIG_SPI_ROCKCHIP_SFC is not set +# CONFIG_SPI_RSPI is not set +# CONFIG_SPI_SH_HSPI is not set +# CONFIG_SPI_SH_MSIOF is not set # CONFIG_SPI_SUN4I is not set # CONFIG_SPI_SUN6I is not set # CONFIG_SPI_SYNQUACER is not set @@ -555,13 +615,20 @@ CONFIG_USB_DWC3_OF_SIMPLE=y CONFIG_USB_DWC3_XILINX=y CONFIG_USB_EHCI_FSL=y # CONFIG_USB_EHCI_HCD_ORION is not set +# CONFIG_USB_EMXX is not set CONFIG_USB_MXS_PHY=y +CONFIG_USB_RENESAS_USB3=y +CONFIG_USB_RENESAS_USBHS=y +CONFIG_USB_RENESAS_USBHS_HCD=y +CONFIG_USB_RENESAS_USBHS_UDC=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_HISTB=y CONFIG_USB_XHCI_MVEBU=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_VEXPRESS_CONFIG=y CONFIG_VIDEOMODE_HELPERS=y +# CONFIG_VIDEO_RCAR_CSI2 is not set +# CONFIG_VIDEO_RCAR_VIN is not set # CONFIG_VIDEO_SUN4I_CSI is not set # CONFIG_VIDEO_SUN6I_CSI is not set CONFIG_VIRTIO_DMA_SHARED_BUFFER=y From 24b35fdce9b5f2878f40801c742173a0aa3b01a9 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 20 Jun 2023 03:30:51 +0000 Subject: [PATCH 09/18] armsr: armv8: enable Broadcom arch'es This is part of an effort to reduce differences between the OpenWrt armsr/armv8 config and Linux arm64 defconfig. This enables CONFIG_ARCH_BCM and downstream CONFIG_ARCH_BCM2835 (= BCM2711 like Raspberry Pi 4) and CONFIG_ARCH_BCM_IPROC (Broadcom iProc packet processors). The broadband specific SoC's (ARCH_BCMBCA) are left out as it is assumed these will not be doing EFI boot. Signed-off-by: Mathew McBride (23.5/5.15 version of commit df23eed17925b8cadccec53a784a12468a8a2e85) --- target/linux/armsr/armv8/config-5.15 | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 6642fb86b7..48ab3763bd 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -1,6 +1,11 @@ CONFIG_64BIT=y CONFIG_ACPI_HMAT=y CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y +CONFIG_ARCH_BCM=y +CONFIG_ARCH_BCM2835=y +# CONFIG_ARCH_BCMBCA is not set +CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BRCMSTB=y CONFIG_ARCH_HISI=y CONFIG_ARCH_INTEL_SOCFPGA=y CONFIG_ARCH_LAYERSCAPE=y @@ -120,7 +125,24 @@ CONFIG_ATOMIC64_SELFTEST=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y # CONFIG_AXI_DMAC is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BCM2711_THERMAL is not set +CONFIG_BCM2835_MBOX=y +CONFIG_BCM2835_POWER=y +# CONFIG_BCM2835_THERMAL is not set +# CONFIG_BCM2835_VCHIQ is not set +CONFIG_BCM2835_WDT=y +# CONFIG_BCMGENET is not set +# CONFIG_BCM_CYGNUS_PHY is not set +# CONFIG_BCM_FLEXRM_MBOX is not set +# CONFIG_BCM_NS_THERMAL is not set +# CONFIG_BCM_PDC_MBOX is not set +# CONFIG_BCM_SR_THERMAL is not set +CONFIG_BCM_VIDEOCORE=y +# CONFIG_BGMAC_PLATFORM is not set CONFIG_BLK_PM=y +# CONFIG_BRCMSTB_PM is not set +# CONFIG_BRCMSTB_THERMAL is not set +CONFIG_BRCM_USB_PINMAP=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23144=y CONFIG_CAVIUM_ERRATUM_23154=y @@ -128,6 +150,10 @@ CONFIG_CAVIUM_ERRATUM_27456=y CONFIG_CAVIUM_ERRATUM_30115=y CONFIG_CAVIUM_TX2_ERRATUM_219=y CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y +CONFIG_CLK_BCM2711_DVP=y +CONFIG_CLK_BCM2835=y +CONFIG_CLK_BCM_NS2=y +CONFIG_CLK_BCM_SR=y CONFIG_CLK_IMX8MM=y CONFIG_CLK_IMX8MN=y CONFIG_CLK_IMX8MP=y @@ -137,6 +163,7 @@ CONFIG_CLK_INTEL_SOCFPGA64=y CONFIG_CLK_LS1028A_PLLDIG=y CONFIG_CLK_PX30=y CONFIG_CLK_QORIQ=y +CONFIG_CLK_RASPBERRYPI=y CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y CONFIG_CLK_RENESAS=y CONFIG_CLK_RK3308=y @@ -194,6 +221,7 @@ CONFIG_CRYPTO_CHACHA20=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_CRYPTD=y # CONFIG_CRYPTO_DEV_ALLWINNER is not set +# CONFIG_CRYPTO_DEV_BCM_SPU is not set # CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM is not set # CONFIG_CRYPTO_DEV_HISI_HPRE is not set # CONFIG_CRYPTO_DEV_HISI_SEC2 is not set @@ -211,6 +239,7 @@ CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA512_ARM64=y CONFIG_CRYPTO_SIMD=y # CONFIG_DEV_DAX_HMEM is not set +CONFIG_DMA_BCM2835=y CONFIG_DMA_CMA=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_SHARED_BUFFER=y @@ -228,6 +257,7 @@ CONFIG_DRM_QXL=y # CONFIG_DRM_RCAR_DU is not set CONFIG_DRM_TTM=y CONFIG_DRM_TTM_HELPER=y +# CONFIG_DRM_V3D is not set CONFIG_DRM_VIRTIO_GPU=y CONFIG_DRM_VRAM_HELPER=y # CONFIG_DWMAC_SUN8I is not set @@ -260,10 +290,13 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_FIND_FIRST_BIT=y # CONFIG_GIANFAR is not set +CONFIG_GPIO_BCM_XGS_IPROC=y +CONFIG_GPIO_BRCMSTB=y CONFIG_GPIO_GENERIC=y CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_MXC=y +CONFIG_GPIO_RASPBERRYPI_EXP=y CONFIG_GPIO_ROCKCHIP=y CONFIG_GPIO_THUNDERX=y CONFIG_GPIO_XLP=y @@ -282,6 +315,7 @@ CONFIG_HW_RANDOM_VIRTIO=y CONFIG_I2C=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALTERA=y +# CONFIG_I2C_BCM2835 is not set CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_HIX5HD2 is not set CONFIG_I2C_IMX=y @@ -326,6 +360,8 @@ CONFIG_KVM=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_PLATFORM is not set # CONFIG_MAILBOX_TEST is not set +CONFIG_MDIO_BCM_IPROC=y +CONFIG_MDIO_BUS_MUX_BCM_IPROC=y CONFIG_MDIO_SUN4I=y # CONFIG_MFD_ALTERA_A10SR is not set CONFIG_MFD_ALTERA_SYSMGR=y @@ -339,6 +375,7 @@ CONFIG_MFD_SYSCON=y CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MMC=y CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_BCM2835=y CONFIG_MMC_BLOCK=y CONFIG_MMC_CAVIUM_THUNDERX=y CONFIG_MMC_DW=y @@ -355,6 +392,7 @@ CONFIG_MMC_SDHCI=y CONFIG_MMC_SDHCI_ACPI=y CONFIG_MMC_SDHCI_CADENCE=y CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_IPROC=y CONFIG_MMC_SDHCI_OF_ESDHC=y CONFIG_MMC_SDHCI_PCI=y CONFIG_MMC_SDHCI_PLTFM=y @@ -390,7 +428,10 @@ CONFIG_NVMEM_ROCKCHIP_EFUSE=y # CONFIG_NVMEM_SUNXI_SID is not set # CONFIG_NVMEM_ZYNQMP is not set CONFIG_PCC=y +CONFIG_PCIE_BRCMSTB=y CONFIG_PCIE_HISI_STB=y +CONFIG_PCIE_IPROC_MSI=y +CONFIG_PCIE_IPROC_PLATFORM=y CONFIG_PCIE_LAYERSCAPE=y CONFIG_PCIE_MOBIVEIL_PLAT=y # CONFIG_PCIE_RCAR_EP is not set @@ -404,6 +445,10 @@ CONFIG_PCI_AARDVARK=y CONFIG_PCI_IMX6=y CONFIG_PCI_LAYERSCAPE=y # CONFIG_PCI_RCAR_GEN2 is not set +CONFIG_PHY_BCM_SR_PCIE=y +CONFIG_PHY_BCM_SR_USB=y +CONFIG_PHY_BRCM_SATA=y +CONFIG_PHY_BRCM_USB=y CONFIG_PHY_FSL_IMX8MQ_USB=y CONFIG_PHY_HI3660_USB=y CONFIG_PHY_HI3670_USB=y @@ -414,6 +459,8 @@ CONFIG_PHY_MVEBU_A3700_COMPHY=y CONFIG_PHY_MVEBU_A3700_UTMI=y CONFIG_PHY_MVEBU_A38X_COMPHY=y CONFIG_PHY_MVEBU_CP110_COMPHY=y +CONFIG_PHY_NS2_PCIE=y +CONFIG_PHY_NS2_USB_DRD=y # CONFIG_PHY_RCAR_GEN2 is not set CONFIG_PHY_RCAR_GEN3_PCIE=y CONFIG_PHY_RCAR_GEN3_USB2=y @@ -438,6 +485,8 @@ CONFIG_PINCTRL_IMX8MN=y CONFIG_PINCTRL_IMX8MP=y CONFIG_PINCTRL_IMX8MQ=y CONFIG_PINCTRL_IMX8ULP=y +CONFIG_PINCTRL_IPROC_GPIO=y +CONFIG_PINCTRL_NS2_MUX=y CONFIG_PINCTRL_ROCKCHIP=y CONFIG_PINCTRL_SUN4I_A10=y CONFIG_PINCTRL_SUN50I_A100=y @@ -471,6 +520,8 @@ CONFIG_POWER_RESET=y CONFIG_POWER_RESET_HISI=y CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_SUPPLY=y +# CONFIG_PTP_1588_CLOCK_DTE is not set +# CONFIG_PWM_BCM2835 is not set CONFIG_QCOM_FALKOR_ERRATUM_1003=y CONFIG_QCOM_FALKOR_ERRATUM_1009=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y @@ -478,6 +529,8 @@ CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QORIQ_THERMAL=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_RASPBERRYPI_POWER=y # CONFIG_RAVB is not set CONFIG_RCAR_DMAC=y # CONFIG_RCAR_GEN3_THERMAL is not set @@ -496,7 +549,9 @@ CONFIG_RENESAS_OSTM=y # CONFIG_RENESAS_RZN1WDT is not set CONFIG_RENESAS_USB_DMAC=y # CONFIG_RENESAS_WDT is not set +# CONFIG_RESET_BRCMSTB is not set CONFIG_RESET_IMX7=y +# CONFIG_RESET_RASPBERRYPI is not set CONFIG_RESET_RZG2L_USBPHY_CTRL=y CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_IOMMU=y @@ -505,6 +560,7 @@ CONFIG_ROCKCHIP_PM_DOMAINS=y # CONFIG_ROCKCHIP_SARADC is not set # CONFIG_ROCKCHIP_THERMAL is not set CONFIG_RODATA_FULL_DEFAULT_ENABLED=y +# CONFIG_RTC_DRV_BRCMSTB is not set # CONFIG_RTC_DRV_FSL_FTM_ALARM is not set # CONFIG_RTC_DRV_IMXDI is not set CONFIG_RTC_DRV_MV=y @@ -522,6 +578,8 @@ CONFIG_SATA_HOST=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y # CONFIG_SENSORS_ARM_SCPI is not set +CONFIG_SERIAL_8250_BCM2835AUX=y +CONFIG_SERIAL_8250_BCM7271=y # CONFIG_SERIAL_8250_EXAR is not set CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_IMX=y @@ -548,6 +606,7 @@ CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPI_ARMADA_3700=y +# CONFIG_SPI_BCM2835 is not set # CONFIG_SPI_FSL_LPSPI is not set # CONFIG_SPI_FSL_QUADSPI is not set # CONFIG_SPI_HISI_KUNPENG is not set @@ -602,6 +661,7 @@ CONFIG_TYPEC_TCPCI=y CONFIG_TYPEC_TCPM=y # CONFIG_TYPEC_TPS6598X is not set CONFIG_UNMAP_KERNEL_AT_EL0=y +# CONFIG_USB_BRCMSTB is not set CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_CHIPIDEA_IMX=y From daf99a12e18f29b5b2f60ef2cdbd9ac4528acafd Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Thu, 10 Aug 2023 02:05:43 +0000 Subject: [PATCH 10/18] armsr: armv8: synchronize PCIE related options with arm64 defconfig This turns on various PCI related options which are enabled in the Linux kernel arch/arm64/configs/defconfig but not yet in the OpenWrt config. Signed-off-by: Mathew McBride (23.05/5.15 version of commit 15d3536c9deb2927c9a39350c6fa2e59f859df2a) --- target/linux/armsr/armv8/config-5.15 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 48ab3763bd..2ebc77cf8f 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -1,4 +1,5 @@ CONFIG_64BIT=y +CONFIG_ACPI_APEI=y CONFIG_ACPI_HMAT=y CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARCH_BCM=y @@ -308,6 +309,12 @@ CONFIG_HISILICON_ERRATUM_161600802=y CONFIG_HISILICON_LPC=y CONFIG_HISI_PMU=y CONFIG_HISI_THERMAL=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_PCIE is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y # CONFIG_HW_RANDOM_HISI is not set @@ -428,6 +435,14 @@ CONFIG_NVMEM_ROCKCHIP_EFUSE=y # CONFIG_NVMEM_SUNXI_SID is not set # CONFIG_NVMEM_ZYNQMP is not set CONFIG_PCC=y +CONFIG_PCIEAER=y +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +CONFIG_PCIEPORTBUS=y +CONFIG_PCIE_ARMADA_8K=y CONFIG_PCIE_BRCMSTB=y CONFIG_PCIE_HISI_STB=y CONFIG_PCIE_IPROC_MSI=y @@ -442,8 +457,13 @@ CONFIG_PCIE_ROCKCHIP_HOST=y CONFIG_PCIE_XILINX_CPM=y CONFIG_PCIE_XILINX_NWL=y CONFIG_PCI_AARDVARK=y +CONFIG_PCI_HISI=y +CONFIG_PCI_HOST_THUNDER_ECAM=y +CONFIG_PCI_HOST_THUNDER_PEM=y CONFIG_PCI_IMX6=y +CONFIG_PCI_IOV=y CONFIG_PCI_LAYERSCAPE=y +CONFIG_PCI_PASID=y # CONFIG_PCI_RCAR_GEN2 is not set CONFIG_PHY_BCM_SR_PCIE=y CONFIG_PHY_BCM_SR_USB=y From dfb159c04b3011ca1b6059430e7790fb0e2b2bc4 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Thu, 10 Aug 2023 04:01:20 +0000 Subject: [PATCH 11/18] armsr: armv8: enable AHCI/SATA controllers for mvebu,qoriq,juno When comparing the generated OpenWrt .config to the Linux arm64 defconfig, I noticed these SATA controllers were not included. As they may be used as a boot drive, they should be built into the kernel. CONFIG_SATA_MVEBU is for Marvell platforms. CONFIG_SATA_QORIQ is for NXP Layerscape. CONFIG_SATA_SIL24 is for Arm's Juno development board, see Linux kernel commit d7c38ff1cd86 ("arm64: defconfig: Add Juno SATA controller"). Signed-off-by: Mathew McBride (23.05/5.15 version of commit 9cb173e9f18da2530c3570479567d8130b05e5f8) --- target/linux/armsr/armv8/config-5.15 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/linux/armsr/armv8/config-5.15 b/target/linux/armsr/armv8/config-5.15 index 2ebc77cf8f..20389f5f88 100644 --- a/target/linux/armsr/armv8/config-5.15 +++ b/target/linux/armsr/armv8/config-5.15 @@ -1,6 +1,8 @@ CONFIG_64BIT=y CONFIG_ACPI_APEI=y CONFIG_ACPI_HMAT=y +CONFIG_AHCI_MVEBU=y +CONFIG_AHCI_QORIQ=y CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM2835=y @@ -594,6 +596,7 @@ CONFIG_RZ_DMAC=y CONFIG_SATA_AHCI=y CONFIG_SATA_AHCI_PLATFORM=y CONFIG_SATA_HOST=y +CONFIG_SATA_SIL24=y # CONFIG_SCHED_CORE is not set CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y From 80d1eb4c2a4b57fb24fbb3119c40fa6f7a0f156d Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 23 Jun 2023 05:46:41 +0000 Subject: [PATCH 12/18] armsr: armv8: add Broadcom GENET and MDIO modules These are used by common Broadcom SoC's like the BCM2711 (RPi4) and iProc network processor. Tested on the RPi4B using the Raspberry Pi UEFI+ACPI firmware[1]. Signed-off-by: Mathew McBride [1] - https://github.com/pftf/RPi4 (cherry picked from commit 27ca83c6270a4cc6922cdae82bb5c01e4e2d1d22) --- target/linux/armsr/modules.mk | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/target/linux/armsr/modules.mk b/target/linux/armsr/modules.mk index 8b026093ee..6e3450bf88 100644 --- a/target/linux/armsr/modules.mk +++ b/target/linux/armsr/modules.mk @@ -13,6 +13,28 @@ endef $(eval $(call KernelPackage,acpi-mdio)) +define KernelPackage/bcmgenet + SUBMENU=$(NETWORK_DEVICES_MENU) + DEPENDS:=@(TARGET_armsr_armv8) +kmod-mdio-bcm-unimac + TITLE:=Broadcom GENET internal MAC (Raspberry Pi 4) + KCONFIG:=CONFIG_BCMGENET + FILES=$(LINUX_DIR)/drivers/net/ethernet/broadcom/genet/genet.ko + AUTOLOAD=$(call AutoLoad,30,genet) +endef + +$(eval $(call KernelPackage,bcmgenet)) + +define KernelPackage/mdio-bcm-unimac + SUBMENU=$(NETWORK_DEVICES_MENU) + DEPENDS:=@(TARGET_armsr_armv8) +kmod-of-mdio + TITLE:=Broadcom UniMAC MDIO bus controller + KCONFIG:=CONFIG_MDIO_BCM_UNIMAC + FILES=$(LINUX_DIR)/drivers/net/mdio/mdio-bcm-unimac.ko + AUTOLOAD=$(call AutoLoad,30,mdio-bcm-unimac) +endef + +$(eval $(call KernelPackage,mdio-bcm-unimac)) + define KernelPackage/fsl-pcs-lynx SUBMENU=$(NETWORK_DEVICES_MENU) DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-phylink From 3477c79c6bb4aa23cdaaf426666265d2b773d709 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Mon, 7 Aug 2023 05:06:43 +0000 Subject: [PATCH 13/18] armsr: armv8: add bcmgenet (Raspberry Pi 4 GENET) to profile kmod-bcmgenet is needed for Ethernet support on the Raspberry Pi 4. Signed-off-by: Mathew McBride (cherry picked from commit 911ee97774d2542300916f0e2763aa54c2a4dff1) --- target/linux/armsr/image/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/armsr/image/Makefile b/target/linux/armsr/image/Makefile index e4ba7988ec..9c33fd898d 100644 --- a/target/linux/armsr/image/Makefile +++ b/target/linux/armsr/image/Makefile @@ -111,7 +111,8 @@ define Device/generic kmod-mvneta kmod-mvpp2 kmod-fsl-dpaa1-net kmod-fsl-dpaa2-net \ kmod-fsl-enetc-net kmod-dwmac-imx kmod-fsl-fec kmod-thunderx-net \ kmod-dwmac-rockchip kmod-dwmac-sun8i kmod-phy-aquantia kmod-phy-broadcom \ - kmod-phy-marvell kmod-phy-marvell-10g kmod-atlantic + kmod-phy-marvell kmod-phy-marvell-10g kmod-atlantic \ + kmod-bcmgenet endef TARGET_DEVICES += generic From 2a46bd9a01cf19fc4b0cc8f95c38e95cb608c92d Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 9 Aug 2023 06:36:39 +0000 Subject: [PATCH 14/18] armsr: add Marvell (Cavium) ThunderX2 network driver The initial armv8 module incorrectly labelled the Thunder(v1) as supporting the ThunderX2, when they have different drivers. Add kmod-octeon-tx2 to support the newer devices. Signed-off-by: Mathew McBride (cherry picked from commit 7c5bdff9c472a3f008ac15cc1ccb81cd23b20e1f) --- target/linux/armsr/image/Makefile | 2 +- target/linux/armsr/modules.mk | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/target/linux/armsr/image/Makefile b/target/linux/armsr/image/Makefile index 9c33fd898d..2548f40330 100644 --- a/target/linux/armsr/image/Makefile +++ b/target/linux/armsr/image/Makefile @@ -112,7 +112,7 @@ define Device/generic kmod-fsl-enetc-net kmod-dwmac-imx kmod-fsl-fec kmod-thunderx-net \ kmod-dwmac-rockchip kmod-dwmac-sun8i kmod-phy-aquantia kmod-phy-broadcom \ kmod-phy-marvell kmod-phy-marvell-10g kmod-atlantic \ - kmod-bcmgenet + kmod-bcmgenet kmod-octeontx2-net endef TARGET_DEVICES += generic diff --git a/target/linux/armsr/modules.mk b/target/linux/armsr/modules.mk index 6e3450bf88..96f03470fb 100644 --- a/target/linux/armsr/modules.mk +++ b/target/linux/armsr/modules.mk @@ -268,8 +268,8 @@ $(eval $(call KernelPackage,dwmac-rockchip)) define KernelPackage/thunderx-net SUBMENU:=$(NETWORK_DEVICES_MENU) - TITLE:=Marvell (Cavium) ThunderX/2 network drivers - DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink + TITLE:=Marvell (Cavium) Thunder network drivers + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-of-mdio KCONFIG:=CONFIG_NET_VENDOR_CAVIUM \ CONFIG_THUNDER_NIC_PF \ CONFIG_THUNDER_NIC_VF \ @@ -284,6 +284,24 @@ endef $(eval $(call KernelPackage,thunderx-net)) +define KernelPackage/octeontx2-net + SUBMENU:=$(NETWORK_DEVICES_MENU) + TITLE:=Marvell (Cavium) ThunderX2 network drivers + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-of-mdio +kmod-macsec \ + +kmod-ptp + KCONFIG:=CONFIG_OCTEONTX2_MBOX \ + CONFIG_OCTEONTX2_AF \ + CONFIG_OCTEONTX2_PF \ + CONFIG_OCTEONTX2_VF \ + CONFIG_NDC_DIS_DYNAMIC_CACHING=n + FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox.ko \ + $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_af.ko \ + $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf.ko \ + $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicvf.ko + AUTOLOAD=$(call AutoLoad,40,rvu_af rvu_mbox rvu_nicpf rvu_nicvf) +endef +$(eval $(call KernelPackage,octeontx2-net)) + define KernelPackage/wdt-sp805 SUBMENU:=$(OTHER_MENU) TITLE:=ARM SP805 Watchdog From 3c316f3e24458eb00c25fc610444186b21c8cf65 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 9 Aug 2023 07:20:07 +0000 Subject: [PATCH 15/18] armsr: armv8: package and select MDIO driver for Thunder SoC's This MDIO driver was already being built, but not installed due to being selected by the ThunderX Ethernet driver. Signed-off-by: Mathew McBride (cherry picked from commit 0018b335313ec7d866bf9e22273b620759e29598) --- target/linux/armsr/modules.mk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/target/linux/armsr/modules.mk b/target/linux/armsr/modules.mk index 96f03470fb..c594017ec0 100644 --- a/target/linux/armsr/modules.mk +++ b/target/linux/armsr/modules.mk @@ -266,10 +266,22 @@ endef $(eval $(call KernelPackage,dwmac-rockchip)) +define KernelPackage/mdio-thunder + SUBMENU:=$(NETWORK_DEVICES_MENU) + TITLE:=Marvell (Cavium) Thunder MDIO controller + DEPENDS:=@(TARGET_armsr_armv8) +kmod-of-mdio + KCONFIG:=CONFIG_MDIO_THUNDER + FILES=$(LINUX_DIR)/drivers/net/mdio/mdio-cavium.ko \ + $(LINUX_DIR)/drivers/net/mdio/mdio-thunder.ko + AUTOLOAD=$(call AutoLoad,30,mdio-cavium mdio-thunder) +endef + +$(eval $(call KernelPackage,mdio-thunder)) + define KernelPackage/thunderx-net SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell (Cavium) Thunder network drivers - DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-of-mdio + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-mdio-thunder KCONFIG:=CONFIG_NET_VENDOR_CAVIUM \ CONFIG_THUNDER_NIC_PF \ CONFIG_THUNDER_NIC_VF \ From cebed31c1f632f7fbab142574ea1fb9065917fdb Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Mon, 14 Aug 2023 06:13:28 +0000 Subject: [PATCH 16/18] armsr: armv8: fix invalid symbol value for FSL_ENETC_QOS The kernel FSL_ENETC_QOS option is only a compile time option, it does not result in a separate module being built. Set it to 'y' to resolve a warning from the kernel compile: .config:2654:warning: symbol value 'm' invalid for FSL_ENETC_QOS Signed-off-by: Mathew McBride Fixes: c3151b6f045 ("armvirt: 64: add support for other SystemReady-compatible vendors") (cherry picked from commit 7770d08e2bd28c9c0dc0b3dc0aaf74074ad5772a) --- target/linux/armsr/modules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/armsr/modules.mk b/target/linux/armsr/modules.mk index c594017ec0..9c7fe0c04f 100644 --- a/target/linux/armsr/modules.mk +++ b/target/linux/armsr/modules.mk @@ -100,7 +100,7 @@ define KernelPackage/fsl-enetc-net KCONFIG:= \ CONFIG_FSL_ENETC \ CONFIG_FSL_ENETC_VF \ - CONFIG_FSL_ENETC_QOS + CONFIG_FSL_ENETC_QOS=y FILES:= \ $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc.ko \ $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-vf.ko \ From a506859f60d2a7d5756987602a550d920f17da4d Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 16 Aug 2023 06:43:18 +0000 Subject: [PATCH 17/18] armsr: add kmod-sfp to default device profile This brings the 23.05 branch into parity with the main. kmod-sfp was in the main branch profile but not the 23.05 version. Signed-off-by: Mathew McBride --- target/linux/armsr/image/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/armsr/image/Makefile b/target/linux/armsr/image/Makefile index 2548f40330..1df9657385 100644 --- a/target/linux/armsr/image/Makefile +++ b/target/linux/armsr/image/Makefile @@ -111,7 +111,7 @@ define Device/generic kmod-mvneta kmod-mvpp2 kmod-fsl-dpaa1-net kmod-fsl-dpaa2-net \ kmod-fsl-enetc-net kmod-dwmac-imx kmod-fsl-fec kmod-thunderx-net \ kmod-dwmac-rockchip kmod-dwmac-sun8i kmod-phy-aquantia kmod-phy-broadcom \ - kmod-phy-marvell kmod-phy-marvell-10g kmod-atlantic \ + kmod-phy-marvell kmod-phy-marvell-10g kmod-sfp kmod-atlantic \ kmod-bcmgenet kmod-octeontx2-net endef TARGET_DEVICES += generic From 5deed175a5a3fb7a550eae60f5bfdc15180def6c Mon Sep 17 00:00:00 2001 From: Stijn Tintel Date: Fri, 4 Aug 2023 10:03:10 +0300 Subject: [PATCH 18/18] hostapd: revert upstream commit to fix #13156 Commit e978072baaca ("Do prune_association only after the STA is authorized") causes issues when an STA roams from one interface to another interface on the same PHY. The mt7915 driver is not able to handle this properly. While the commits fixes a DoS, there are other devices and drivers with the same limitation, so revert to the orginal behavior for now, until we have a better solution in place. Fixes: #13156 Signed-off-by: Stijn Tintel (cherry picked from commit 324673914d42f5fb9b70cc73e955117828b99f3b) --- .../patches/991-Fix-OpenWrt-13156.patch | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch diff --git a/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch b/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch new file mode 100644 index 0000000000..99d800858f --- /dev/null +++ b/package/network/services/hostapd/patches/991-Fix-OpenWrt-13156.patch @@ -0,0 +1,63 @@ +From 26cd9bafc1d25e602952ee86cd2a5b8c3a995490 Mon Sep 17 00:00:00 2001 +From: Stijn Tintel +Date: Fri, 28 Jul 2023 16:27:47 +0300 +Subject: [PATCH] Revert "Do prune_association only after the STA is + authorized" + +Commit e978072baaca ("Do prune_association only after the STA is +authorized") causes issues when an STA roams from one interface to +another interface on the same PHY. The mt7915 driver is not able to +handle this properly. While the commits fixes a DoS, there are other +devices and drivers with the same limitation, so revert to the orginal +behavior for now, until we have a better solution in place. + +Ref: https://github.com/openwrt/openwrt/issues/13156 +Signed-off-by: Stijn Tintel +--- + src/ap/hostapd.c | 14 +++++++++++--- + src/ap/sta_info.c | 3 --- + 2 files changed, 11 insertions(+), 6 deletions(-) + +--- a/src/ap/hostapd.c ++++ b/src/ap/hostapd.c +@@ -3615,6 +3615,8 @@ int hostapd_remove_iface(struct hapd_int + void hostapd_new_assoc_sta(struct hostapd_data *hapd, struct sta_info *sta, + int reassoc) + { ++ int mld_assoc_link_id = -1; ++ + if (hapd->tkip_countermeasures) { + hostapd_drv_sta_deauth(hapd, sta->addr, + WLAN_REASON_MICHAEL_MIC_FAILURE); +@@ -3622,10 +3624,16 @@ void hostapd_new_assoc_sta(struct hostap + } + + #ifdef CONFIG_IEEE80211BE +- if (hapd->conf->mld_ap && sta->mld_info.mld_sta && +- sta->mld_assoc_link_id != hapd->mld_link_id) +- return; ++ if (hapd->conf->mld_ap && sta->mld_info.mld_sta) { ++ if (sta->mld_assoc_link_id == hapd->mld_link_id) { ++ mld_assoc_link_id = sta->mld_assoc_link_id; ++ } else { ++ return; ++ } ++ } + #endif /* CONFIG_IEEE80211BE */ ++ if (mld_assoc_link_id != -2) ++ hostapd_prune_associations(hapd, sta->addr, mld_assoc_link_id); + + ap_sta_clear_disconnect_timeouts(hapd, sta); + sta->post_csa_sa_query = 0; +--- a/src/ap/sta_info.c ++++ b/src/ap/sta_info.c +@@ -1318,9 +1318,6 @@ void ap_sta_set_authorized(struct hostap + mld_assoc_link_id = -2; + } + #endif /* CONFIG_IEEE80211BE */ +- if (mld_assoc_link_id != -2) +- hostapd_prune_associations(hapd, sta->addr, +- mld_assoc_link_id); + sta->flags |= WLAN_STA_AUTHORIZED; + } else { + sta->flags &= ~WLAN_STA_AUTHORIZED;