From 9bc6662deab04689a556455ac65c8752f27024e0 Mon Sep 17 00:00:00 2001 From: Hans Dedecker Date: Mon, 29 Mar 2021 21:04:06 +0200 Subject: [PATCH 01/50] firewall: update to latest git HEAD a4355a6 firewall3: clean up the flow table detection logic edd0dc5 firewall3: create a common helper to find strings in files Signed-off-by: Hans Dedecker --- package/network/config/firewall/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/firewall/Makefile b/package/network/config/firewall/Makefile index 2c0ae5b86a..5b1e23af8c 100644 --- a/package/network/config/firewall/Makefile +++ b/package/network/config/firewall/Makefile @@ -13,9 +13,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall3.git -PKG_SOURCE_DATE:=2021-03-23 -PKG_SOURCE_VERSION:=61db17edddb1f05e8107f0dbef6f7d060ce67483 -PKG_MIRROR_HASH:=b2eb09816640e14e2dae21fb54ea05c33858fe0004844fe8d99e541a2e19e9c0 +PKG_SOURCE_DATE:=2021-03-29 +PKG_SOURCE_VERSION:=a4355a6faea2c4d59c90cd52851fa9aab4ccee5c +PKG_MIRROR_HASH:=747db79b11010bbfb708aae1793857c8d959d9270c7392f8c78d2d2110cf2fe7 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC From 4b2e4518acaf1bed9c06fbd44a7f175e7fdb0a29 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Tue, 30 Mar 2021 23:59:48 +0100 Subject: [PATCH 02/50] ramips/mt7621: drop the weak reordering patch In order to fix random hangs on MT7621, we've been selecting WEAK_REORDERING_BEYOND_LLSC for years [1]. However, these random hangs have been most likely caused by an oversight in the MIPS implementation of the kernel memory consistency model, which has already been fixed for some time (and backported to stable) [2]. Manually refreshed: 321-mt7621-timer.patch [1] https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=5c971cd6fdd7298a2017bdb6bea870088eddb8b9 [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/arch/mips?h=linux-5.4.y&id=42344113ba7a1ed7b5654cd5270af0d5698d8521 Suggested-by: Ilya Lipnitskiy Tested-by: Donald Hoskins Signed-off-by: Rui Salvaterra --- .../ramips/patches-5.10/202-weak_reordering.patch | 10 ---------- .../linux/ramips/patches-5.10/321-mt7621-timer.patch | 4 ++-- 2 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 target/linux/ramips/patches-5.10/202-weak_reordering.patch diff --git a/target/linux/ramips/patches-5.10/202-weak_reordering.patch b/target/linux/ramips/patches-5.10/202-weak_reordering.patch deleted file mode 100644 index 074e16642f..0000000000 --- a/target/linux/ramips/patches-5.10/202-weak_reordering.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/arch/mips/ralink/Kconfig -+++ b/arch/mips/ralink/Kconfig -@@ -57,6 +57,7 @@ choice - select CLKSRC_MIPS_GIC - select HAVE_PCI if PCI_MT7621 - select SOC_BUS -+ select WEAK_REORDERING_BEYOND_LLSC - endchoice - - choice diff --git a/target/linux/ramips/patches-5.10/321-mt7621-timer.patch b/target/linux/ramips/patches-5.10/321-mt7621-timer.patch index 91e14ad63b..08d5935eb0 100644 --- a/target/linux/ramips/patches-5.10/321-mt7621-timer.patch +++ b/target/linux/ramips/patches-5.10/321-mt7621-timer.patch @@ -77,10 +77,10 @@ void __iomem *sysc = (void __iomem *) KSEG1ADDR(MT7621_SYSC_BASE); --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig -@@ -63,6 +63,7 @@ choice +@@ -62,6 +62,7 @@ choice + select CLKSRC_MIPS_GIC select HAVE_PCI if PCI_MT7621 select SOC_BUS - select WEAK_REORDERING_BEYOND_LLSC + select GENERIC_CLOCKEVENTS_BROADCAST endchoice From 9c3b2d7ff755216a93d0ffa7d0375007cb7d3294 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Tue, 30 Mar 2021 23:59:49 +0100 Subject: [PATCH 03/50] ramips/mt7621: drop the timer recalibration patch We've been carrying this patch for many years [1], in order to fix a timer calibration issue on MT7621. Turns out, after retesting with a recent kernel (Linux 5.10), the system works perfectly fine without it (no rcu_sched stalls or inconsistent BogoMIPS values across CPUs). Manually refreshed: 322-mt7621-fix-cpu-clk-add-clkdev.patch 323-mt7621-memory-detect.patch [1] https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=6f4a903533361a2906a4d94ac6f597cd9c6c47bc Suggested-by: Ilya Lipnitskiy Tested-by: Donald Hoskins Signed-off-by: Rui Salvaterra --- .../patches-5.10/321-mt7621-timer.patch | 87 ------------------- .../322-mt7621-fix-cpu-clk-add-clkdev.patch | 10 +-- .../323-mt7621-memory-detect.patch | 10 +-- 3 files changed, 10 insertions(+), 97 deletions(-) delete mode 100644 target/linux/ramips/patches-5.10/321-mt7621-timer.patch diff --git a/target/linux/ramips/patches-5.10/321-mt7621-timer.patch b/target/linux/ramips/patches-5.10/321-mt7621-timer.patch deleted file mode 100644 index 08d5935eb0..0000000000 --- a/target/linux/ramips/patches-5.10/321-mt7621-timer.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/arch/mips/ralink/mt7621.c -+++ b/arch/mips/ralink/mt7621.c -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -16,6 +17,7 @@ - #include - #include - #include -+#include - - #include - -@@ -161,6 +163,58 @@ bool plat_cpu_core_present(int core) - return true; - } - -+#define LPS_PREC 8 -+/* -+* Re-calibration lpj(loop-per-jiffy). -+* (derived from kernel/calibrate.c) -+*/ -+static int udelay_recal(void) -+{ -+ unsigned int i, lpj = 0; -+ unsigned long ticks, loopbit; -+ int lps_precision = LPS_PREC; -+ -+ lpj = (1<<12); -+ -+ while ((lpj <<= 1) != 0) { -+ /* wait for "start of" clock tick */ -+ ticks = jiffies; -+ while (ticks == jiffies) -+ /* nothing */; -+ -+ /* Go .. */ -+ ticks = jiffies; -+ __delay(lpj); -+ ticks = jiffies - ticks; -+ if (ticks) -+ break; -+ } -+ -+ /* -+ * Do a binary approximation to get lpj set to -+ * equal one clock (up to lps_precision bits) -+ */ -+ lpj >>= 1; -+ loopbit = lpj; -+ while (lps_precision-- && (loopbit >>= 1)) { -+ lpj |= loopbit; -+ ticks = jiffies; -+ while (ticks == jiffies) -+ /* nothing */; -+ ticks = jiffies; -+ __delay(lpj); -+ if (jiffies != ticks) /* longer than 1 tick */ -+ lpj &= ~loopbit; -+ } -+ printk(KERN_INFO "%d CPUs re-calibrate udelay(lpj = %d)\n", NR_CPUS, lpj); -+ -+ for(i=0; i< NR_CPUS; i++) -+ cpu_data[i].udelay_val = lpj; -+ -+ return 0; -+} -+device_initcall(udelay_recal); -+ - void prom_soc_init(struct ralink_soc_info *soc_info) - { - void __iomem *sysc = (void __iomem *) KSEG1ADDR(MT7621_SYSC_BASE); ---- a/arch/mips/ralink/Kconfig -+++ b/arch/mips/ralink/Kconfig -@@ -62,6 +62,7 @@ choice - select CLKSRC_MIPS_GIC - select HAVE_PCI if PCI_MT7621 - select SOC_BUS -+ select GENERIC_CLOCKEVENTS_BROADCAST - endchoice - - choice diff --git a/target/linux/ramips/patches-5.10/322-mt7621-fix-cpu-clk-add-clkdev.patch b/target/linux/ramips/patches-5.10/322-mt7621-fix-cpu-clk-add-clkdev.patch index 723c628790..be5fee54b2 100644 --- a/target/linux/ramips/patches-5.10/322-mt7621-fix-cpu-clk-add-clkdev.patch +++ b/target/linux/ramips/patches-5.10/322-mt7621-fix-cpu-clk-add-clkdev.patch @@ -36,10 +36,10 @@ #define MT7621_DDR2_SIZE_MAX 256 --- a/arch/mips/ralink/mt7621.c +++ b/arch/mips/ralink/mt7621.c -@@ -10,6 +10,10 @@ +@@ -9,6 +9,10 @@ + #include #include #include - #include +#include +#include +#include @@ -47,15 +47,15 @@ #include #include -@@ -18,6 +22,7 @@ +@@ -16,6 +20,7 @@ + #include #include #include - #include +#include #include -@@ -108,11 +113,89 @@ static struct rt2880_pmx_group mt7621_pi +@@ -106,11 +111,89 @@ static struct rt2880_pmx_group mt7621_pi { 0 } }; diff --git a/target/linux/ramips/patches-5.10/323-mt7621-memory-detect.patch b/target/linux/ramips/patches-5.10/323-mt7621-memory-detect.patch index 07c7588661..9f80d02638 100644 --- a/target/linux/ramips/patches-5.10/323-mt7621-memory-detect.patch +++ b/target/linux/ramips/patches-5.10/323-mt7621-memory-detect.patch @@ -44,10 +44,10 @@ Signed-off-by: Chuanhong Guo #define MT7621_CHIP_NAME1 0x20203132 --- a/arch/mips/ralink/mt7621.c +++ b/arch/mips/ralink/mt7621.c -@@ -10,11 +10,13 @@ +@@ -9,11 +9,13 @@ + #include #include #include - #include +#include #include #include @@ -58,7 +58,7 @@ Signed-off-by: Chuanhong Guo #include #include #include -@@ -57,6 +59,8 @@ +@@ -55,6 +57,8 @@ #define MT7621_GPIO_MODE_SDHCI_SHIFT 18 #define MT7621_GPIO_MODE_SDHCI_GPIO 1 @@ -67,7 +67,7 @@ Signed-off-by: Chuanhong Guo static struct rt2880_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) }; static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) }; static struct rt2880_pmx_func uart3_grp[] = { -@@ -141,6 +145,26 @@ static struct clk *__init mt7621_add_sys +@@ -139,6 +143,26 @@ static struct clk *__init mt7621_add_sys return clk; } @@ -94,7 +94,7 @@ Signed-off-by: Chuanhong Guo void __init ralink_clk_init(void) { u32 syscfg, xtal_sel, clkcfg, clk_sel, curclk, ffiv, ffrac; -@@ -346,10 +370,7 @@ void prom_soc_init(struct ralink_soc_inf +@@ -292,10 +316,7 @@ void prom_soc_init(struct ralink_soc_inf (rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK, (rev & CHIP_REV_ECO_MASK)); From 070ead4d4aaf30f5c6017054b822c3c6d649b071 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Tue, 30 Mar 2021 23:59:50 +0100 Subject: [PATCH 04/50] ramips/mt7621: enable support for cpuidle MIPS Coherent Processor Systems (CPS), which include the MT7621 SoC, support deep sleep idle states and have a specific cpuidle driver for them. Enable support for it, while also switching from constant timer ticks to the idle dynticks model, with the TEO governor. Run-tested on a Redmi AC2100. Signed-off-by: Rui Salvaterra --- target/linux/ramips/mt7621/config-5.10 | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/mt7621/config-5.10 b/target/linux/ramips/mt7621/config-5.10 index 430ea9513c..adbd0c8c6c 100644 --- a/target/linux/ramips/mt7621/config-5.10 +++ b/target/linux/ramips/mt7621/config-5.10 @@ -2,6 +2,7 @@ CONFIG_ARCH_32BIT_OFF_T=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_MMAP_RND_BITS_MAX=15 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15 +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_AT803X_PHY=y CONFIG_BLK_MQ_PCI=y @@ -23,6 +24,9 @@ CONFIG_CPU_HAS_DIEI=y CONFIG_CPU_HAS_PREFETCH=y CONFIG_CPU_HAS_RIXI=y CONFIG_CPU_HAS_SYNC=y +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_CPU_IDLE_GOV_TEO=y CONFIG_CPU_MIPS32=y # CONFIG_CPU_MIPS32_R1 is not set CONFIG_CPU_MIPS32_R2=y @@ -30,6 +34,7 @@ CONFIG_CPU_MIPSR2=y CONFIG_CPU_MIPSR2_IRQ_EI=y CONFIG_CPU_MIPSR2_IRQ_VI=y CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y +CONFIG_CPU_PM=y CONFIG_CPU_R4K_CACHE_TLB=y CONFIG_CPU_RMAP=y CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y @@ -97,7 +102,6 @@ CONFIG_HAS_IOPORT_MAP=y CONFIG_HIGHMEM=y CONFIG_HZ=250 CONFIG_HZ_250=y -CONFIG_HZ_PERIODIC=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_MT7621=y @@ -134,7 +138,9 @@ CONFIG_MIPS_CM=y CONFIG_MIPS_CMDLINE_FROM_DTB=y CONFIG_MIPS_CPC=y CONFIG_MIPS_CPS=y +CONFIG_MIPS_CPS_CPUIDLE=y # CONFIG_MIPS_CPS_NS16550_BOOL is not set +CONFIG_MIPS_CPS_PM=y CONFIG_MIPS_CPU_SCACHE=y # CONFIG_MIPS_ELF_APPENDED_DTB is not set CONFIG_MIPS_GIC=y @@ -182,6 +188,8 @@ CONFIG_NET_MEDIATEK_SOC=y CONFIG_NET_SWITCHDEV=y CONFIG_NET_VENDOR_MEDIATEK=y # CONFIG_NET_VENDOR_RALINK is not set +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y CONFIG_NR_CPUS=4 CONFIG_OF=y CONFIG_OF_ADDRESS=y From a86c3fd800c703e67ad9b633aa4353b5f222d0e3 Mon Sep 17 00:00:00 2001 From: Ilya Lipnitskiy Date: Thu, 25 Mar 2021 23:23:01 -0700 Subject: [PATCH 05/50] ramips: mt7620: ralink-i2s: fix modpost error Fixes the following error when building without CONFIG_MODULE_STRIPPED: FATAL: modpost: sound/soc/ralink/snd-soc-ralink-i2s: struct of_device_id is not terminated with a NULL entry! Signed-off-by: Ilya Lipnitskiy --- .../ramips/patches-5.10/835-asoc-add-mt7620-support.patch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/patches-5.10/835-asoc-add-mt7620-support.patch b/target/linux/ramips/patches-5.10/835-asoc-add-mt7620-support.patch index f625d41449..0393c23f65 100644 --- a/target/linux/ramips/patches-5.10/835-asoc-add-mt7620-support.patch +++ b/target/linux/ramips/patches-5.10/835-asoc-add-mt7620-support.patch @@ -78,7 +78,7 @@ Signed-off-by: John Crispin +obj-$(CONFIG_SND_RALINK_SOC_I2S) += snd-soc-ralink-i2s.o --- /dev/null +++ b/sound/soc/ralink/ralink-i2s.c -@@ -0,0 +1,965 @@ +@@ -0,0 +1,966 @@ +/* + * Copyright (C) 2010, Lars-Peter Clausen + * Copyright (C) 2016 Michael Lee @@ -881,6 +881,7 @@ Signed-off-by: John Crispin + .data = (void *)&mt7621_i2s_data }, + { .compatible = "mediatek,mt7628-i2s", + .data = (void *)&mt7628_i2s_data }, ++ {}, +}; +MODULE_DEVICE_TABLE(of, ralink_i2s_match_table); + From e62ace0ecf228f3a8bc86cea2252539ac7fd988c Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 31 Mar 2021 01:32:51 +0100 Subject: [PATCH 06/50] netifd: update to git HEAD 09632d4 device: remove left-over comment b22f83d handler: add mechanism to generate external device handler stubs 80bf9d7 extdev: add support for external device handlers 44c0f40 system-linux: reorder sysctl functions c84f3b0 system-linux: add device options used by wpad Signed-off-by: Daniel Golle --- package/network/config/netifd/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index 3052f43ceb..b5f76362ba 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2021-01-09 -PKG_SOURCE_VERSION:=c00c8335d6188daa326ecfe5a62da15a9b9987e1 -PKG_MIRROR_HASH:=c740e51e0cec13eec336ba1c7a643db3b64a9a2235f8c1b73a566cb89e841190 +PKG_SOURCE_DATE:=2021-03-31 +PKG_SOURCE_VERSION:=c84f3b02fced9dd6752a90ca466ada0aabb38224 +PKG_MIRROR_HASH:=d50f1a7983e1e7c0cddfa0642778dfc58a8e62a36f58211928c293d74bd0883b PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 From 0bc5ecf2d0fdc47ccbc60a840e595937e79689c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Wed, 31 Mar 2021 17:13:36 +0200 Subject: [PATCH 07/50] bmips: backport pinctrl fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport some minor upstream fixes for the pinctrl drivers. Signed-off-by: Álvaro Fernández Rojas --- ...5.13-pinctrl-bcm-bcm6362-fix-warning.patch | 44 +++++++++++++++++++ ....13-pinctrl-bcm63xx-Fix-dependencies.patch | 38 ++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 target/linux/bmips/patches-5.10/074-v5.13-pinctrl-bcm-bcm6362-fix-warning.patch create mode 100644 target/linux/bmips/patches-5.10/075-v5.13-pinctrl-bcm63xx-Fix-dependencies.patch diff --git a/target/linux/bmips/patches-5.10/074-v5.13-pinctrl-bcm-bcm6362-fix-warning.patch b/target/linux/bmips/patches-5.10/074-v5.13-pinctrl-bcm-bcm6362-fix-warning.patch new file mode 100644 index 0000000000..92da534af9 --- /dev/null +++ b/target/linux/bmips/patches-5.10/074-v5.13-pinctrl-bcm-bcm6362-fix-warning.patch @@ -0,0 +1,44 @@ +From 1978d88cdc8eb0986d36cac0e9541220fa71d87d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= +Date: Tue, 30 Mar 2021 12:32:25 +0200 +Subject: [PATCH] pinctrl: bcm: bcm6362: fix warning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The current implementation of bcm6362_set_gpio() produces the following +warning on x86_64: +drivers/pinctrl/bcm/pinctrl-bcm6362.c: In function 'bcm6362_set_gpio': +drivers/pinctrl/bcm/pinctrl-bcm6362.c:503:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] + 503 | (uint32_t) desc->drv_data, 0); + | ^ + +Modify the code to make it similar to bcm63268_set_gpio() in order to fix +the warning. + +Fixes: 705791e23ecd ("pinctrl: add a pincontrol driver for BCM6362") +Signed-off-by: Álvaro Fernández Rojas +Link: https://lore.kernel.org/r/20210330103225.3949-1-noltari@gmail.com +Reviewed-by: Andy Shevchenko +Signed-off-by: Linus Walleij +--- + drivers/pinctrl/bcm/pinctrl-bcm6362.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/pinctrl/bcm/pinctrl-bcm6362.c ++++ b/drivers/pinctrl/bcm/pinctrl-bcm6362.c +@@ -496,11 +496,11 @@ static int bcm6362_pinctrl_get_groups(st + static void bcm6362_set_gpio(struct bcm63xx_pinctrl *pc, unsigned pin) + { + const struct pinctrl_pin_desc *desc = &bcm6362_pins[pin]; ++ unsigned int basemode = (uintptr_t)desc->drv_data; + unsigned int mask = bcm63xx_bank_pin(pin); + +- if (desc->drv_data) +- regmap_update_bits(pc->regs, BCM6362_BASEMODE_REG, +- (uint32_t) desc->drv_data, 0); ++ if (basemode) ++ regmap_update_bits(pc->regs, BCM6362_BASEMODE_REG, basemode, 0); + + if (pin < BCM63XX_BANK_GPIOS) { + /* base mode 0 => gpio 1 => mux function */ diff --git a/target/linux/bmips/patches-5.10/075-v5.13-pinctrl-bcm63xx-Fix-dependencies.patch b/target/linux/bmips/patches-5.10/075-v5.13-pinctrl-bcm63xx-Fix-dependencies.patch new file mode 100644 index 0000000000..bf27683438 --- /dev/null +++ b/target/linux/bmips/patches-5.10/075-v5.13-pinctrl-bcm63xx-Fix-dependencies.patch @@ -0,0 +1,38 @@ +From 26ea7ac92836ba616f75a1ab57e64ffc21da7758 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Wed, 31 Mar 2021 14:45:05 +0200 +Subject: [PATCH] pinctrl: bcm63xx: Fix dependencies +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add depends on OF so we don't get weird build errors on +randconfig. + +Also order selects the same as the other drivers for +pure aestetic reasons. + +Reported-by: Randy Dunlap +Cc: Álvaro Fernández Rojas +Signed-off-by: Linus Walleij +--- + drivers/pinctrl/bcm/Kconfig | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/pinctrl/bcm/Kconfig ++++ b/drivers/pinctrl/bcm/Kconfig +@@ -31,10 +31,12 @@ config PINCTRL_BCM2835 + + config PINCTRL_BCM63XX + bool ++ depends on OF ++ select PINMUX ++ select PINCONF + select GENERIC_PINCONF ++ select GPIOLIB + select GPIO_REGMAP +- select PINCONF +- select PINMUX + + config PINCTRL_BCM6318 + bool "Broadcom BCM6318 GPIO driver" From bb107ad9c13d244bf4aed255da913d6000c28833 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 31 Mar 2021 13:47:35 +0100 Subject: [PATCH 08/50] base-files: functions: introduce new helper functions Introduce cmdline_get_var() to /lib/function.sh and make use of it in export_rootdev() in /lib/upgrade/common.sh, making the code more simple and removing one level of indentation. Introduce get_partition_by_name() to /lib/upgrade/common.sh which is useful on non-EFI GPT platforms like mt7622. Remove some dead-code while at it. Signed-off-by: Daniel Golle --- package/base-files/files/lib/functions.sh | 10 ++ .../base-files/files/lib/upgrade/common.sh | 119 +++++++++--------- 2 files changed, 67 insertions(+), 62 deletions(-) diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh index 2bad45324f..d8604415cc 100644 --- a/package/base-files/files/lib/functions.sh +++ b/package/base-files/files/lib/functions.sh @@ -384,4 +384,14 @@ board_name() { [ -e /tmp/sysinfo/board_name ] && cat /tmp/sysinfo/board_name || echo "generic" } +cmdline_get_var() { + local var=$1 + local cmdlinevar tmp + + for cmdlinevar in $(cat /proc/cmdline); do + tmp=${cmdlinevar##${var}} + [ "=" = "${tmp:0:1}" ] && echo ${tmp:1} + done +} + [ -z "$IPKG_INSTROOT" ] && [ -f /lib/config/uci.sh ] && . /lib/config/uci.sh diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index 968893e226..b0a482821d 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -147,71 +147,57 @@ part_magic_fat() { } export_bootdevice() { - local cmdline bootdisk rootpart uuid blockdev uevent line class + local cmdline uuid blockdev uevent line class local MAJOR MINOR DEVNAME DEVTYPE + local rootpart="$(cmdline_get_var root)" - if read cmdline < /proc/cmdline; then - case "$cmdline" in - *root=*) - rootpart="${cmdline##*root=}" - rootpart="${rootpart%% *}" - ;; - esac + case "$rootpart" in + PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9]) + uuid="${rootpart#PARTUUID=}" + uuid="${uuid%-[a-f0-9][a-f0-9]}" + for blockdev in $(find /dev -type b); do + set -- $(dd if=$blockdev bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "') + if [ "$4$3$2$1" = "$uuid" ]; then + uevent="/sys/class/block/${blockdev##*/}/uevent" + break + fi + done + ;; + PARTUUID=????????-????-????-????-??????????02) + uuid="${rootpart#PARTUUID=}" + uuid="${uuid%02}00" + for disk in $(find /dev -type b); do + set -- $(dd if=$disk bs=1 skip=568 count=16 2>/dev/null | hexdump -v -e '8/1 "%02x "" "2/1 "%02x""-"6/1 "%02x"') + if [ "$4$3$2$1-$6$5-$8$7-$9" = "$uuid" ]; then + uevent="/sys/class/block/${disk##*/}/uevent" + break + fi + done + ;; + /dev/*) + uevent="/sys/class/block/${rootpart##*/}/../uevent" + ;; + 0x[a-f0-9][a-f0-9][a-f0-9] | 0x[a-f0-9][a-f0-9][a-f0-9][a-f0-9] | \ + [a-f0-9][a-f0-9][a-f0-9] | [a-f0-9][a-f0-9][a-f0-9][a-f0-9]) + rootpart=0x${rootpart#0x} + for class in /sys/class/block/*; do + while read line; do + export -n "$line" + done < "$class/uevent" + if [ $((rootpart/256)) = $MAJOR -a $((rootpart%256)) = $MINOR ]; then + uevent="$class/../uevent" + fi + done + ;; + esac - case "$bootdisk" in - /dev/*) - uevent="/sys/class/block/${bootdisk##*/}/uevent" - ;; - esac - - case "$rootpart" in - PARTUUID=[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]-[a-f0-9][a-f0-9]) - uuid="${rootpart#PARTUUID=}" - uuid="${uuid%-[a-f0-9][a-f0-9]}" - for blockdev in $(find /dev -type b); do - set -- $(dd if=$blockdev bs=1 skip=440 count=4 2>/dev/null | hexdump -v -e '4/1 "%02x "') - if [ "$4$3$2$1" = "$uuid" ]; then - uevent="/sys/class/block/${blockdev##*/}/uevent" - break - fi - done - ;; - PARTUUID=????????-????-????-????-??????????02) - uuid="${rootpart#PARTUUID=}" - uuid="${uuid%02}00" - for disk in $(find /dev -type b); do - set -- $(dd if=$disk bs=1 skip=568 count=16 2>/dev/null | hexdump -v -e '8/1 "%02x "" "2/1 "%02x""-"6/1 "%02x"') - if [ "$4$3$2$1-$6$5-$8$7-$9" = "$uuid" ]; then - uevent="/sys/class/block/${disk##*/}/uevent" - break - fi - done - ;; - /dev/*) - uevent="/sys/class/block/${rootpart##*/}/../uevent" - ;; - 0x[a-f0-9][a-f0-9][a-f0-9] | 0x[a-f0-9][a-f0-9][a-f0-9][a-f0-9] | \ - [a-f0-9][a-f0-9][a-f0-9] | [a-f0-9][a-f0-9][a-f0-9][a-f0-9]) - rootpart=0x${rootpart#0x} - for class in /sys/class/block/*; do - while read line; do - export -n "$line" - done < "$class/uevent" - if [ $((rootpart/256)) = $MAJOR -a $((rootpart%256)) = $MINOR ]; then - uevent="$class/../uevent" - fi - done - ;; - esac - - if [ -e "$uevent" ]; then - while read line; do - export -n "$line" - done < "$uevent" - export BOOTDEV_MAJOR=$MAJOR - export BOOTDEV_MINOR=$MINOR - return 0 - fi + if [ -e "$uevent" ]; then + while read line; do + export -n "$line" + done < "$uevent" + export BOOTDEV_MAJOR=$MAJOR + export BOOTDEV_MINOR=$MINOR + return 0 fi return 1 @@ -242,6 +228,15 @@ hex_le32_to_cpu() { echo "$@" } +get_partition_by_name() { + for partname in /sys/class/block/$1/*/name; do + [ "$(cat ${partname})" = "$2" ] && { + basename ${partname%%/name} + break + } + done +} + get_partitions() { # local disk="$1" local filename="$2" From 7043e4334f0e751143b128dd695dc196d044fc1f Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 31 Mar 2021 14:19:16 +0100 Subject: [PATCH 09/50] mediatek: mt7622: improve sysupgrade on MMC Use generic functions to acquire rootdev. Make sure to wipe rootfs_data in case of '-n'. Signed-off-by: Daniel Golle --- .../mt7622/base-files/lib/upgrade/platform.sh | 61 ++++--------------- 1 file changed, 12 insertions(+), 49 deletions(-) diff --git a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh index 97a492c7fb..2c1460650f 100755 --- a/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/mt7622/base-files/lib/upgrade/platform.sh @@ -2,59 +2,24 @@ REQUIRE_IMAGE_METADATA=1 RAMFS_COPY_BIN='fw_printenv fw_setenv blockdev' RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock' -get_cmdline_var() { - local var=$1 - local cmdlinevar tmp - local cmdline="$(cat /proc/cmdline)" - - for cmdlinevar in $cmdline; do - tmp=${cmdlinevar##${var}} - [ "=" = "${tmp:0:1}" ] && echo ${tmp:1} - done -} - -get_rootdev() { - local rootvol rootdev - rootvol=$(get_cmdline_var root) - rootvol=$(basename $rootvol) - [ -e /sys/class/block/$rootvol ] || { - rootvol=${rootvol%%[0-9]} - [ -e /sys/class/block/$rootvol ] && echo $rootvol - rootvol=${rootvol%%p} - [ -e /sys/class/block/$rootvol ] && echo $rootvol - return - } - [ -e /sys/class/block/$rootvol/partition ] || { - echo $rootvol - return - } - rootdev=$(busybox readlink -f /sys/class/block/$rootvol) - rootdev=$(basename ${rootdev%%/${rootvol}}) - [ -e /sys/class/block/$rootdev ] && echo $rootdev -} - -get_partition() { - for partname in /sys/class/block/$1/*/name; do - [ "$(cat ${partname})" = "$2" ] && { - basename ${partname%%/name} - break - } - done -} - platform_do_upgrade() { local board=$(board_name) local file_type=$(identify $1) case "$board" in bananapi,bpi-r64) - local rootdev=$(get_rootdev) - local fitpart=$(get_partition $rootdev production) - [ "$fitpart" ] || exit 1 + export_bootdevice + export_partdevice rootdev 0 + local fitpart=$(get_partition_by_name $rootdev "production") + [ "$fitpart" ] || return 1 dd if=/dev/zero of=/dev/$fitpart bs=4096 count=1 2>/dev/null blockdev --rereadpt /dev/$rootdev get_image "$1" | dd of=/dev/$fitpart - echo $rootdev > /tmp/sysupgrade.rootdev + blockdev --rereadpt /dev/$rootdev + local datapart=$(get_partition_by_name $rootdev "rootfs_data") + [ "$datapart" ] || return 0 + dd if=/dev/zero of=/dev/$datapart bs=4096 count=1 2>/dev/null + echo $datapart > /tmp/sysupgrade.datapart ;; buffalo,wsr-2533dhp2) local magic="$(get_magic_long "$1")" @@ -113,11 +78,9 @@ platform_check_image() { platform_copy_config_mmc() { [ -e "$UPGRADE_BACKUP" ] || return - local rootdev=$(cat /tmp/sysupgrade.rootdev) - blockdev --rereadpt /dev/$rootdev - local datadev=$(get_partition $rootdev rootfs_data) - [ "$datadev" ] || echo "no rootfs_data partition, cannot keep configuration." >&2 - dd if="$UPGRADE_BACKUP" of=/dev/$datadev + local datapart=$(cat /tmp/sysupgrade.datapart) + [ "$datapart" ] || echo "no rootfs_data partition, cannot keep configuration." >&2 + dd if="$UPGRADE_BACKUP" of=/dev/$datapart sync } From 1cc5eb45d5192b41d97d5da58c34353f4c3240f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 31 Mar 2021 23:14:24 +0200 Subject: [PATCH 10/50] bcm4908: backport DT patch adding Ethernet MAC address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This tells OS (Linux) where from MAC should be read (bootloader MTD partition). Signed-off-by: Rafał Miłecki --- ...oadcom-bcm4908-add-Ethernet-MAC-addr.patch | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 target/linux/bcm4908/patches-5.4/032-v5.13-0011-arm64-dts-broadcom-bcm4908-add-Ethernet-MAC-addr.patch diff --git a/target/linux/bcm4908/patches-5.4/032-v5.13-0011-arm64-dts-broadcom-bcm4908-add-Ethernet-MAC-addr.patch b/target/linux/bcm4908/patches-5.4/032-v5.13-0011-arm64-dts-broadcom-bcm4908-add-Ethernet-MAC-addr.patch new file mode 100644 index 0000000000..67f30c8213 --- /dev/null +++ b/target/linux/bcm4908/patches-5.4/032-v5.13-0011-arm64-dts-broadcom-bcm4908-add-Ethernet-MAC-addr.patch @@ -0,0 +1,82 @@ +From 9f01f5cdb548352418b34ce77db02a560fe2913b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 29 Mar 2021 17:45:14 +0200 +Subject: [PATCH] arm64: dts: broadcom: bcm4908: add Ethernet MAC addr +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On most BCM4908 devices MAC address can be read from the bootloader +binary section containing device settings. Use NVMEM to describe that. + +Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli +--- + .../broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 14 ++++++++++++++ + .../broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 14 ++++++++++++++ + 2 files changed, 28 insertions(+) + +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts +@@ -74,6 +74,11 @@ + }; + }; + ++&enet { ++ nvmem-cells = <&base_mac_addr>; ++ nvmem-cell-names = "mac-address"; ++}; ++ + &usb_phy { + brcm,ioc = <1>; + status = "okay"; +@@ -130,8 +135,17 @@ + #size-cells = <1>; + + partition@0 { ++ compatible = "nvmem-cells"; + label = "cferom"; + reg = <0x0 0x100000>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0x0 0x100000>; ++ ++ base_mac_addr: mac@106a0 { ++ reg = <0x106a0 0x6>; ++ }; + }; + + partition@100000 { +--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts ++++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts +@@ -44,6 +44,11 @@ + }; + }; + ++&enet { ++ nvmem-cells = <&base_mac_addr>; ++ nvmem-cell-names = "mac-address"; ++}; ++ + &usb_phy { + brcm,ioc = <1>; + status = "okay"; +@@ -128,8 +133,17 @@ + #size-cells = <1>; + + partition@0 { ++ compatible = "nvmem-cells"; + label = "cferom"; + reg = <0x0 0x100000>; ++ ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges = <0 0x0 0x100000>; ++ ++ base_mac_addr: mac@106a0 { ++ reg = <0x106a0 0x6>; ++ }; + }; + + partition@100000 { From aa0adc8e3c2015d28b7cb56e53017a2dc9fda02d Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 31 Mar 2021 21:29:26 +0100 Subject: [PATCH 11/50] kernel: fix FIT partition parser compatibility issues The uImage.FIT partition parser used to squeeze in FIT partitions in the range where partition editor tools (fdisk and such) expect the regular partition. This is confusing people and tools when adding additional partitions on top of the partition used for OpenWrt's uImage.FIT. Instead of squeezing in the additional partitions, rather start with all uImage.FIT partitions at offset 64. Signed-off-by: Daniel Golle --- .../400-block-fit-partition-parser.patch | 41 ++++-------------- .../400-block-fit-partition-parser.patch | 42 ++++--------------- 2 files changed, 18 insertions(+), 65 deletions(-) diff --git a/target/linux/generic/hack-5.10/400-block-fit-partition-parser.patch b/target/linux/generic/hack-5.10/400-block-fit-partition-parser.patch index c703000c0a..a414be6e84 100644 --- a/target/linux/generic/hack-5.10/400-block-fit-partition-parser.patch +++ b/target/linux/generic/hack-5.10/400-block-fit-partition-parser.patch @@ -141,47 +141,24 @@ dev->gd = gd; --- a/block/partitions/efi.c +++ b/block/partitions/efi.c -@@ -704,7 +704,7 @@ int efi_partition(struct parsed_partitio - { - gpt_header *gpt = NULL; +@@ -706,6 +706,9 @@ int efi_partition(struct parsed_partitio gpt_entry *ptes = NULL; -- u32 i; -+ u32 i, slot = 0; + u32 i; unsigned ssz = bdev_logical_block_size(state->bdev) / 512; ++#ifdef CONFIG_FIT_PARTITION ++ u32 extra_slot = 64; ++#endif if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { -@@ -722,23 +722,30 @@ int efi_partition(struct parsed_partitio - u64 size = le64_to_cpu(ptes[i].ending_lba) - - le64_to_cpu(ptes[i].starting_lba) + 1ULL; - -- if (!is_pte_valid(&ptes[i], last_lba(state->bdev))) -+ if (!is_pte_valid(&ptes[i], last_lba(state->bdev))) { -+ ++slot; - continue; -+ } - -- put_partition(state, i+1, start * ssz, size * ssz); -+ put_partition(state, ++slot, start * ssz, size * ssz); - - /* If this is a RAID volume, tell md */ - if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_RAID_GUID)) -- state->parts[i + 1].flags = ADDPART_FLAG_RAID; -+ state->parts[slot].flags = ADDPART_FLAG_RAID; - -- info = &state->parts[i + 1].info; -+ info = &state->parts[slot].info; - efi_guid_to_str(&ptes[i].unique_partition_guid, info->uuid); - - /* Naively convert UTF16-LE to 7 bits. */ - label_max = min(ARRAY_SIZE(info->volname) - 1, + kfree(gpt); +@@ -739,6 +742,11 @@ int efi_partition(struct parsed_partitio ARRAY_SIZE(ptes[i].partition_name)); utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname); -- state->parts[i + 1].has_info = true; -+ state->parts[slot].has_info = true; + state->parts[i + 1].has_info = true; +#ifdef CONFIG_FIT_PARTITION + /* If this is a U-Boot FIT volume it may have subpartitions */ + if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_FIT_GUID)) -+ (void) parse_fit_partitions(state, start * ssz, size * ssz, &slot, 1); ++ (void) parse_fit_partitions(state, start * ssz, size * ssz, &extra_slot, 1); +#endif } kfree(ptes); diff --git a/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch b/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch index 1f756fac9b..6b3267ef80 100644 --- a/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch +++ b/target/linux/generic/hack-5.4/400-block-fit-partition-parser.patch @@ -140,48 +140,24 @@ +int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); --- a/block/partitions/efi.c +++ b/block/partitions/efi.c -@@ -679,7 +679,7 @@ int efi_partition(struct parsed_partitio - { - gpt_header *gpt = NULL; +@@ -681,6 +681,9 @@ int efi_partition(struct parsed_partitio gpt_entry *ptes = NULL; -- u32 i; -+ u32 i, slot = 0; + u32 i; unsigned ssz = bdev_logical_block_size(state->bdev) / 512; ++#ifdef CONFIG_FIT_PARTITION ++ u32 extra_slot = 64; ++#endif if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { -@@ -698,16 +698,18 @@ int efi_partition(struct parsed_partitio - u64 size = le64_to_cpu(ptes[i].ending_lba) - - le64_to_cpu(ptes[i].starting_lba) + 1ULL; - -- if (!is_pte_valid(&ptes[i], last_lba(state->bdev))) -+ if (!is_pte_valid(&ptes[i], last_lba(state->bdev))) { -+ ++slot; - continue; -+ } - -- put_partition(state, i+1, start * ssz, size * ssz); -+ put_partition(state, ++slot, start * ssz, size * ssz); - - /* If this is a RAID volume, tell md */ - if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_RAID_GUID)) -- state->parts[i + 1].flags = ADDPART_FLAG_RAID; -+ state->parts[slot].flags = ADDPART_FLAG_RAID; - -- info = &state->parts[i + 1].info; -+ info = &state->parts[slot].info; - efi_guid_to_str(&ptes[i].unique_partition_guid, info->uuid); - - /* Naively convert UTF16-LE to 7 bits. */ -@@ -721,7 +723,12 @@ int efi_partition(struct parsed_partitio - info->volname[label_count] = c; + kfree(gpt); +@@ -722,6 +725,11 @@ int efi_partition(struct parsed_partitio label_count++; } -- state->parts[i + 1].has_info = true; -+ state->parts[slot].has_info = true; + state->parts[i + 1].has_info = true; +#ifdef CONFIG_FIT_PARTITION + /* If this is a U-Boot FIT volume it may have subpartitions */ + if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_FIT_GUID)) -+ (void) parse_fit_partitions(state, start * ssz, size * ssz, &slot, 1); ++ (void) parse_fit_partitions(state, start * ssz, size * ssz, &extra_slot, 1); +#endif } kfree(ptes); From 5ea7fabdb33fb69e2d21d2c04fe0ea67eb0f3142 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 31 Mar 2021 21:32:23 +0100 Subject: [PATCH 12/50] uboot-mediatek: adapt root= cmdline arg for bpi-r64 Adapt to FIT partition parser changes. Signed-off-by: Daniel Golle --- .../patches/403-add-bananapi_bpi-r64_defconfigs.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch index d79095a0a7..a030b4ce3f 100644 --- a/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch @@ -152,7 +152,7 @@ +serverip=192.168.1.254 +loadaddr=0x4007ff28 +bootcmd=run boot_sdmmc -+bootargs=root=/dev/mmcblk1p6 ++bootargs=root=/dev/mmcblk1p65 +bootconf=config-mt7622-bananapi-bpi-r64-pcie1 +bootconf_pcie=config-mt7622-bananapi-bpi-r64-pcie1 +bootconf_sata=config-mt7622-bananapi-bpi-r64-sata @@ -362,7 +362,7 @@ +serverip=192.168.1.254 +loadaddr=0x4007ff28 +bootcmd=run boot_emmc -+bootargs=root=/dev/mmcblk0p5 ++bootargs=root=/dev/mmcblk0p65 +bootconf=config-mt7622-bananapi-bpi-r64-pcie1 +bootconf_pcie=config-mt7622-bananapi-bpi-r64-pcie1 +bootconf_sata=config-mt7622-bananapi-bpi-r64-sata From fd3d2d3190f3a9e324a015340cd02a5f12395e2e Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 1 Apr 2021 00:07:56 +0200 Subject: [PATCH 13/50] ucode: update to latest Git HEAD 973cc6c compiler: actually expand block scope fix to for/while alt syntax 97bf297 compiler: ensure that alternative if/for/while syntax has own block scope f0e2a64 tests: add missing test case for fixed switch codegen Signed-off-by: Jo-Philipp Wich --- package/utils/ucode/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile index 8ecfef01c5..7c8907a716 100644 --- a/package/utils/ucode/Makefile +++ b/package/utils/ucode/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/jow-/ucode.git -PKG_SOURCE_DATE:=2021-03-29 -PKG_SOURCE_VERSION:=aa9621db401e881ffcdea03be272c94149484ccf -PKG_MIRROR_HASH:=11b7de10e6ab91742d8a633a0030dde86118ffe73031cdf9c192cb3fded97a20 +PKG_SOURCE_DATE:=2021-03-31 +PKG_SOURCE_VERSION:=973cc6c865dcf6075c493125313058b650b08234 +PKG_MIRROR_HASH:=fb4d3e231c79a9122743f0ced7fd4fdcf81903de5c721d3c18d5779e44d50bdf PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC From 3a6b187e03e18db99bbedd74fe7b822b9533a08b Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 1 Apr 2021 00:21:55 +0200 Subject: [PATCH 14/50] firewall4: update to latest Git HEAD 29fba84 tests: expand testing 6bf82a8 fw4.uc: fix family test functions 25b2c7d fw4.uc: fix parsing boolean "0" values 694d428 rule.uc: fix redundant whitespace in rules without target 7f69fbb ruleset.uc: reduce empty lines in output 8f8e42c fw4.uc: gracefully handle missing defaults section 25287af treewide: remove ucode module preloading 802b685 fw4.uc: remove upvalue caching Signed-off-by: Jo-Philipp Wich --- package/network/config/firewall4/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/firewall4/Makefile b/package/network/config/firewall4/Makefile index cdc3ab9c56..bfe10cfb8f 100644 --- a/package/network/config/firewall4/Makefile +++ b/package/network/config/firewall4/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git -PKG_SOURCE_DATE:=2021-03-19 -PKG_SOURCE_VERSION:=59dbb982b7fefa480196dec03ba51c4f8c4dd7ae -PKG_MIRROR_HASH:=3f37bea16fa553539d820cc49be92e23d3e1fd9b52db57dcbd06e78070044930 +PKG_SOURCE_DATE:=2021-03-31 +PKG_SOURCE_VERSION:=29fba840201287b9265888adba6298779b750af5 +PKG_MIRROR_HASH:=1d26a611aeecdf37f09e4cdee6b192e5da087abf6e0fc7a9ca97a80e58d14222 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC From 22369ad7887e98bdb9d1999f221dfcd5fbb2f389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Thu, 1 Apr 2021 07:00:06 +0200 Subject: [PATCH 15/50] bcm53xx: use upstream Linksys EA9500 fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One fix was accepted, one was added. Signed-off-by: Rafał Miłecki --- ...5301X-Fix-Linksys-EA9500-partitions.patch} | 4 ++- ...CM5301X-Set-Linksys-EA9500-power-LED.patch | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) rename target/linux/bcm53xx/patches-5.4/{130-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch => 035-v5.13-0003-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch} (91%) create mode 100644 target/linux/bcm53xx/patches-5.4/035-v5.13-0004-ARM-dts-BCM5301X-Set-Linksys-EA9500-power-LED.patch diff --git a/target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch b/target/linux/bcm53xx/patches-5.4/035-v5.13-0003-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch similarity index 91% rename from target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch rename to target/linux/bcm53xx/patches-5.4/035-v5.13-0003-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch index 964773c377..d52f46f979 100644 --- a/target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch +++ b/target/linux/bcm53xx/patches-5.4/035-v5.13-0003-ARM-dts-BCM5301X-Fix-Linksys-EA9500-partitions.patch @@ -1,5 +1,6 @@ +From 1d3352aeed164ef73f05cf80ca001f11d2f3312d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Mon, 29 Mar 2021 07:32:29 +0200 +Date: Mon, 29 Mar 2021 07:54:30 +0200 Subject: [PATCH] ARM: dts: BCM5301X: Fix Linksys EA9500 partitions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -14,6 +15,7 @@ arch/arm/boot/dts/bcm47094-linksys-panamera.dt.yaml: partitions: 'partition@1F00 From schema: Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli --- arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/target/linux/bcm53xx/patches-5.4/035-v5.13-0004-ARM-dts-BCM5301X-Set-Linksys-EA9500-power-LED.patch b/target/linux/bcm53xx/patches-5.4/035-v5.13-0004-ARM-dts-BCM5301X-Set-Linksys-EA9500-power-LED.patch new file mode 100644 index 0000000000..76cb296422 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/035-v5.13-0004-ARM-dts-BCM5301X-Set-Linksys-EA9500-power-LED.patch @@ -0,0 +1,27 @@ +From dcb56d61d5a8acca0a357cc603397bc0272ce4cb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 29 Mar 2021 10:04:09 +0200 +Subject: [PATCH] ARM: dts: BCM5301X: Set Linksys EA9500 power LED +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Set Linux default trigger to default on, just like it's normally done +for power LEDs. + +Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm47094-linksys-panamera.dts | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts ++++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts +@@ -75,6 +75,7 @@ + power { + label = "bcm53xx:white:power"; + gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; ++ linux,default-trigger = "default-on"; + }; + + wifi-disabled { From 209c5918b511d9e406a094ba246a985b640e519f Mon Sep 17 00:00:00 2001 From: Vivek Unune Date: Fri, 13 Nov 2020 08:43:00 -0500 Subject: [PATCH 16/50] bcm53xx: enhance support for Linksys EA9500 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Add leds and configs 2. Add network configs 3. Add script to clear partial boot flag 4. Hack to use port 5 as cpu port as port 8 connected to eth2 wont pass any frames 5. Enable EA9500 image generation Hardware Info: - Processor - Broadcom BCM4709C0KFEBG dual-core @ 1.4 GHz - Switch - BCM53012 in BCM4709C0KFEBG & external BCM53125 - DDR3 RAM - 256 MB - Flash - 128 MB (Toshiba TC58BVG0S3HTA00) - 2.4GHz - BCM4366 4×4 2.4/5G single chip 802.11ac SoC - Power Amp - Skyworks SE2623L 2.4 GHz power amp (x4) - 5GHz x 2 - BCM4366 4×4 2.4/5G single chip 802.11ac SoC - Power Amp - PLX Technology PEX8603 3-lane, 3-port PCIe switch - Ports - 8 Ports, 1 WAN Ports - Antennas - 8 Antennas - Serial Port - @j6 [GND,TX,RX] (VCC NC) 115200 8n1 Flashing Instructions: 1. Connect a USB-TTL table to J6 on the router as well as a ethernet cable to a lan port and your PC. 2. Power-on the router. 3. Use putty or a serial port program to view the terminal. Hit Ctrl+C and interrupt the CFE terminal terminal. 4. Setup a TFTP server on your local machine at setup you local IP to 192.168.1.2 5. Start the TFTP Server 6. Run following commands at the CFE terminal flash -noheader 192.168.1.2:/openwrt.trx nflash0.trx flash -noheader 192.168.1.2:/openwrt.trx nflash0.trx2 nvram set bootpartition=0 && nvram set partialboots=0 && nvram commit 7. Reboot router to be presented by OpenWrt Note: Only installation method via serial cable is supported at the moment. The trx firmware has to be flashed to both the partitions using following commands from CFE prompt. This will cover US and Non-US variants. Signed-off-by: Vivek Unune Signed-off-by: Rafał Miłecki --- .../linux/bcm53xx/base-files/etc/board.d/02_network | 6 ++++++ .../bcm53xx/base-files/etc/init.d/clear_partialboot | 13 +++++++++++++ target/linux/bcm53xx/image/Makefile | 1 - ...cky-CPU-port-fixes-for-devices-not-using-p.patch | 5 +++-- 4 files changed, 22 insertions(+), 3 deletions(-) create mode 100755 target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot diff --git a/target/linux/bcm53xx/base-files/etc/board.d/02_network b/target/linux/bcm53xx/base-files/etc/board.d/02_network index e37ae20340..d26b2c69f2 100644 --- a/target/linux/bcm53xx/base-files/etc/board.d/02_network +++ b/target/linux/bcm53xx/base-files/etc/board.d/02_network @@ -30,6 +30,10 @@ bcm53xx_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5t@eth0" ;; + linksys,panamera) + ucidef_add_switch "switch1" \ + "0:lan" "1:lan:7" "2:lan:4" "3:lan:8" "4:wan" "5t@eth0" + ;; luxul,abr-4500-v1|\ luxul,xbr-4500-v1) ucidef_add_switch "switch0" \ @@ -83,6 +87,7 @@ bcm53xx_setup_macs() case "$board" in dlink,dir-885l | \ + linksys,panamera | \ netgear,r7900 | \ netgear,r8000 | \ netgear,r8500) @@ -104,6 +109,7 @@ bcm53xx_setup_macs() offset=1 ;; dlink,dir-885l | \ + linksys,panamera | \ netgear,r7900 | \ netgear,r8000 | \ netgear,r8500) diff --git a/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot b/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot new file mode 100755 index 0000000000..b3eddf4af0 --- /dev/null +++ b/target/linux/bcm53xx/base-files/etc/init.d/clear_partialboot @@ -0,0 +1,13 @@ +#!/bin/sh /etc/rc.common + +START=97 +boot() { + . /lib/functions.sh + + case $(board_name) in + linksys,panamera) + # clear partialboots + nvram set partialboots=0 && nvram commit + ;; + esac +} diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index 86d241f57f..b2a7da80c5 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -274,7 +274,6 @@ define Device/linksys_ea9500 DEVICE_MODEL := EA9500 DEVICE_PACKAGES := $(BRCMFMAC_4366C0) $(USB3_PACKAGES) DEVICE_DTS := bcm47094-linksys-panamera - BROKEN := y endef TARGET_DEVICES += linksys_ea9500 diff --git a/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch b/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch index a5f13afe02..a6d0f119ec 100644 --- a/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch +++ b/target/linux/bcm53xx/patches-5.4/700-b53-add-hacky-CPU-port-fixes-for-devices-not-using-p.patch @@ -21,7 +21,7 @@ Signed-off-by: Rafał Miłecki #include "b53_regs.h" #include "b53_priv.h" -@@ -1587,6 +1588,28 @@ static int b53_switch_init(struct b53_de +@@ -1587,6 +1588,29 @@ static int b53_switch_init(struct b53_de return ret; } @@ -44,7 +44,8 @@ Signed-off-by: Rafał Miłecki + * For some reason it doesn't work (no packets on eth2). + */ + if (of_machine_is_compatible("netgear,r7900") || -+ of_machine_is_compatible("netgear,r8000")) ++ of_machine_is_compatible("netgear,r8000") || ++ (of_machine_is_compatible("linksys,panamera") && dev->chip_id == BCM53012_DEVICE_ID)) + sw_dev->cpu_port = 5; + dev->enabled_ports |= BIT(sw_dev->cpu_port); From ec6293febc244d187e71a6e54f44920be679cde4 Mon Sep 17 00:00:00 2001 From: John Audia Date: Tue, 30 Mar 2021 10:52:07 -0400 Subject: [PATCH 17/50] kernel: bump 5.4 to 5.4.109 Ran update_kernel.sh in a fresh clone without any existing toolchains. Manually rebased: pending-5.4/611-netfilter_match_bypass_default_table.patch The upstream change affecting this patch is the revert of an earlier kernel commit. Therefore, we just revert our corresponding changes in [1]. Build system: x86_64 Build-tested: ipq806x/R7800 [1] 9b1b89229f0e ("kernel: bump 5.4 to 5.4.86") Signed-off-by: John Audia [adjust manually rebased patch, add explanation] Signed-off-by: Adrian Schmutzler --- include/kernel-version.mk | 4 ++-- ...-support-BCM4908-s-integrated-switch.patch | 8 +++---- ..._sf2-setup-BCM4908-internal-crossbar.patch | 10 ++++----- ...-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch | 2 +- ...-add-function-finding-RGMII-register.patch | 10 ++++----- ...-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch | 2 +- ...m_sf2-enable-GPHY-for-switch-probing.patch | 2 +- ...sf2-keep-GPHY-enabled-on-the-BCM4908.patch | 2 +- ...etfilter_match_bypass_default_checks.patch | 2 +- ...netfilter_match_bypass_default_table.patch | 4 ++-- ...mem-Add-support-for-krait-based-socs.patch | 2 +- ...a-accumulated-change-for-ls1012a-boa.patch | 8 +++---- ...a-accumulated-change-for-ls1043a-boa.patch | 22 +++++++++---------- ...a-accumulated-change-to-ls1046a-boar.patch | 16 +++++++------- ...04x-add-iommu-map-to-pci-controllers.patch | 12 +++++----- ...-make-dma-coherent-global-to-the-SoC.patch | 8 +++---- ...-use-a-pseudo-bus-to-constrain-usb-d.patch | 4 ++-- ...ts-nxp-add-more-thermal-zone-support.patch | 6 ++--- ...104x-constrain-sata-dma-address-size.patch | 8 +++---- ...dts-ls1012a-reorganize-pfe_mac-nodes.patch | 2 +- ...C3-IP-VBUS-glitch-issue-on-Layerscap.patch | 14 ++++++------ ...yerscape-fix-warnings-when-compiling.patch | 2 +- ...m64-dts-fsl-remove-backplane-support.patch | 2 +- ...a-ls1043a-ls1046a-ls1088a-ls208xa-re.patch | 12 +++++----- ...ts-layerscape-add-chip-specific-comp.patch | 14 ++++++------ ...-fsl-Add-clock-names-mclk0-for-SAI-n.patch | 4 ++-- ...cape-apply-dma-coherent-for-dwc3-nod.patch | 14 ++++++------ ...s-ls1012ardb-Update-qspi-node-dts-pr.patch | 4 ++-- ...ls1012ardb-Update-qspi-node-property.patch | 2 +- ...46a-fix-ippdexpcr-offset-not-correct.patch | 2 +- ...a-update-USB-nodes-status-to-match-b.patch | 6 ++--- ...1043a-remove-thermal-zone-5-from-dts.patch | 2 +- ...x-offload-Prepare-for-CAN-FD-support.patch | 10 ++++----- ...devm_platform_ioremap_resource-to-si.patch | 4 ++-- ...can_irq_state-only-read-timestamp-if.patch | 4 ++-- ...me-macro-FLEXCAN_IFLAG_MB-FLEXCAN_IF.patch | 8 +++---- ...can_irq-rename-variable-reg_iflag-re.patch | 2 +- ...me-struct-flexcan_priv-reg_imask-1-2.patch | 8 +++---- ...ve-TX-mailbox-bit-from-struct-flexca.patch | 8 +++---- ...ert-struct-flexcan_priv-rx_mask-1-2-.patch | 8 +++---- ...oduce-struct-flexcan_priv-tx_mask-an.patch | 10 ++++----- ...can_read_reg_iflag_rx-optimize-readi.patch | 4 ++-- ...can_irq-add-support-for-TX-mailbox-i.patch | 6 ++--- ...can_mailbox_read-make-use-of-flexcan.patch | 2 +- ...struct-canfd_frame-for-CAN-classic-f.patch | 10 ++++----- ...-can-flexcan-add-CAN-FD-mode-support.patch | 22 +++++++++---------- ...0-can-flexcan-add-CAN-FD-BRS-support.patch | 4 ++-- ...excan-add-ISO-CAN-FD-feature-support.patch | 6 ++--- ...Transceiver-Delay-Compensation-suopp.patch | 6 ++--- ...-0023-can-flexcan-add-imx8qm-support.patch | 2 +- ...24-can-flexcan-add-lx2160ar1-support.patch | 2 +- ...can-add-LPSR-mode-support-for-i.MX7D.patch | 4 ++-- ...-fix-deadlock-when-using-self-wakeup.patch | 2 +- ...an-add-CAN-wakeup-function-for-i.MX8.patch | 6 ++--- ...dd-S32V234-support-to-FlexCAN-driver.patch | 2 +- ...e-resolved-link-config-via-mac_link_.patch | 4 ++-- ...-r8152-add-LED-configuration-from-OF.patch | 8 +++---- 57 files changed, 182 insertions(+), 182 deletions(-) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index c5301eafef..4100d90b3b 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-5.4 = .108 +LINUX_VERSION-5.4 = .109 LINUX_VERSION-5.10 = .26 -LINUX_KERNEL_HASH-5.4.108 = f212ac07c21bd33e6898fdbb2ddba2a454f74578bbe7bef8fe4dbbbc0ec52172 +LINUX_KERNEL_HASH-5.4.109 = ac6af4562717d030266fcddb0a3c44598610ca8c9c3a654725f58b9cbd61b7ee LINUX_KERNEL_HASH-5.10.26 = fc532833f1ac167f363f1b9de85db39d2d635ab516f66dc381bdd70804601482 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch b/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch index 5c57bf2b93..a75898bf0c 100644 --- a/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch +++ b/target/linux/bcm4908/patches-5.4/071-v5.12-0001-net-dsa-bcm_sf2-support-BCM4908-s-integrated-switch.patch @@ -23,7 +23,7 @@ Signed-off-by: Jakub Kicinski --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -2278,6 +2278,22 @@ static const struct b53_chip_data b53_sw +@@ -2271,6 +2271,22 @@ static const struct b53_chip_data b53_sw .jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_size_reg = B53_JUMBO_MAX_SIZE, }, @@ -68,7 +68,7 @@ Signed-off-by: Jakub Kicinski offset = CORE_STS_OVERRIDE_IMP; else offset = CORE_STS_OVERRIDE_IMP2; -@@ -541,7 +542,8 @@ static void bcm_sf2_sw_mac_config(struct +@@ -543,7 +544,8 @@ static void bcm_sf2_sw_mac_config(struct if (port == core_readl(priv, CORE_IMP0_PRT_ID)) return; @@ -78,7 +78,7 @@ Signed-off-by: Jakub Kicinski offset = CORE_STS_OVERRIDE_GMIIP_PORT(port); else offset = CORE_STS_OVERRIDE_GMIIP2_PORT(port); -@@ -983,6 +985,30 @@ struct bcm_sf2_of_data { +@@ -985,6 +987,30 @@ struct bcm_sf2_of_data { unsigned int num_cfp_rules; }; @@ -109,7 +109,7 @@ Signed-off-by: Jakub Kicinski /* Register offsets for the SWITCH_REG_* block */ static const u16 bcm_sf2_7445_reg_offsets[] = { [REG_SWITCH_CNTRL] = 0x00, -@@ -1031,6 +1057,9 @@ static const struct bcm_sf2_of_data bcm_ +@@ -1033,6 +1059,9 @@ static const struct bcm_sf2_of_data bcm_ }; static const struct of_device_id bcm_sf2_of_match[] = { diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch index 55a26ce443..b0626ba71e 100644 --- a/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch +++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0002-net-dsa-bcm_sf2-setup-BCM4908-internal-crossbar.patch @@ -82,7 +82,7 @@ Signed-off-by: David S. Miller static void bcm_sf2_intr_disable(struct bcm_sf2_priv *priv) { intrl2_0_mask_set(priv, 0xffffffff); -@@ -732,6 +770,8 @@ static int bcm_sf2_sw_resume(struct dsa_ +@@ -734,6 +772,8 @@ static int bcm_sf2_sw_resume(struct dsa_ return ret; } @@ -91,7 +91,7 @@ Signed-off-by: David S. Miller ret = bcm_sf2_cfp_resume(ds); if (ret) return ret; -@@ -994,6 +1034,7 @@ struct bcm_sf2_of_data { +@@ -996,6 +1036,7 @@ struct bcm_sf2_of_data { const u16 *reg_offsets; unsigned int core_reg_align; unsigned int num_cfp_rules; @@ -99,7 +99,7 @@ Signed-off-by: David S. Miller }; static const u16 bcm_sf2_4908_reg_offsets[] = { -@@ -1018,6 +1059,7 @@ static const struct bcm_sf2_of_data bcm_ +@@ -1020,6 +1061,7 @@ static const struct bcm_sf2_of_data bcm_ .core_reg_align = 0, .reg_offsets = bcm_sf2_4908_reg_offsets, .num_cfp_rules = 0, /* FIXME */ @@ -107,7 +107,7 @@ Signed-off-by: David S. Miller }; /* Register offsets for the SWITCH_REG_* block */ -@@ -1128,6 +1170,7 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1130,6 +1172,7 @@ static int bcm_sf2_sw_probe(struct platf priv->reg_offsets = data->reg_offsets; priv->core_reg_align = data->core_reg_align; priv->num_cfp_rules = data->num_cfp_rules; @@ -115,7 +115,7 @@ Signed-off-by: David S. Miller /* Auto-detection using standard registers will not work, so * provide an indication of what kind of device we are for -@@ -1182,6 +1225,8 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1184,6 +1227,8 @@ static int bcm_sf2_sw_probe(struct platf return ret; } diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch index 8971cdae39..06d631f691 100644 --- a/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch +++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0003-net-dsa-bcm_sf2-Fill-in-BCM4908-CFP-entries.patch @@ -14,7 +14,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1058,7 +1058,7 @@ static const struct bcm_sf2_of_data bcm_ +@@ -1060,7 +1060,7 @@ static const struct bcm_sf2_of_data bcm_ .type = BCM4908_DEVICE_ID, .core_reg_align = 0, .reg_offsets = bcm_sf2_4908_reg_offsets, diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch index 9e40b321e0..c46fd1d3b5 100644 --- a/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch +++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0004-net-dsa-bcm_sf2-add-function-finding-RGMII-register.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller static void bcm_sf2_imp_setup(struct dsa_switch *ds, int port) { struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds); -@@ -586,6 +611,7 @@ static void bcm_sf2_sw_mac_config(struct +@@ -588,6 +613,7 @@ static void bcm_sf2_sw_mac_config(struct { struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds); u32 id_mode_dis = 0, port_mode; @@ -65,7 +65,7 @@ Signed-off-by: David S. Miller u32 reg, offset; if (port == core_readl(priv, CORE_IMP0_PRT_ID)) -@@ -615,10 +641,12 @@ static void bcm_sf2_sw_mac_config(struct +@@ -617,10 +643,12 @@ static void bcm_sf2_sw_mac_config(struct goto force_link; } @@ -79,7 +79,7 @@ Signed-off-by: David S. Miller reg &= ~ID_MODE_DIS; reg &= ~(PORT_MODE_MASK << PORT_MODE_SHIFT); reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN); -@@ -633,7 +661,7 @@ static void bcm_sf2_sw_mac_config(struct +@@ -635,7 +663,7 @@ static void bcm_sf2_sw_mac_config(struct reg |= RX_PAUSE_EN; } @@ -88,7 +88,7 @@ Signed-off-by: David S. Miller force_link: /* Force link settings detected from the PHY */ -@@ -659,6 +687,7 @@ static void bcm_sf2_sw_mac_link_set(stru +@@ -661,6 +689,7 @@ static void bcm_sf2_sw_mac_link_set(stru phy_interface_t interface, bool link) { struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds); @@ -96,7 +96,7 @@ Signed-off-by: David S. Miller u32 reg; if (!phy_interface_mode_is_rgmii(interface) && -@@ -666,13 +695,15 @@ static void bcm_sf2_sw_mac_link_set(stru +@@ -668,13 +697,15 @@ static void bcm_sf2_sw_mac_link_set(stru interface != PHY_INTERFACE_MODE_REVMII) return; diff --git a/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch b/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch index ccb18c7d51..d0783ea5e7 100644 --- a/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch +++ b/target/linux/bcm4908/patches-5.4/075-v5.13-0005-net-dsa-bcm_sf2-fix-BCM4908-RGMII-reg-s.patch @@ -33,7 +33,7 @@ Signed-off-by: David S. Miller break; default: switch (port) { -@@ -1077,9 +1082,7 @@ static const u16 bcm_sf2_4908_reg_offset +@@ -1079,9 +1084,7 @@ static const u16 bcm_sf2_4908_reg_offset [REG_PHY_REVISION] = 0x14, [REG_SPHY_CNTRL] = 0x24, [REG_CROSSBAR] = 0xc8, diff --git a/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch b/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch index 2087559262..c9e4c67376 100644 --- a/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch +++ b/target/linux/bcm4908/patches-5.4/700-net-dsa-bcm_sf2-enable-GPHY-for-switch-probing.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1319,10 +1319,14 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1321,10 +1321,14 @@ static int bcm_sf2_sw_probe(struct platf rev = reg_readl(priv, REG_PHY_REVISION); priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK; diff --git a/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch b/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch index 2d08cd83c2..5bc5bff2e9 100644 --- a/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch +++ b/target/linux/bcm4908/patches-5.4/701-net-dsa-bcm_sf2-keep-GPHY-enabled-on-the-BCM4908.patch @@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -1333,6 +1333,12 @@ static int bcm_sf2_sw_probe(struct platf +@@ -1335,6 +1335,12 @@ static int bcm_sf2_sw_probe(struct platf priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff, priv->irq0, priv->irq1); diff --git a/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch index 7a49ce0c39..703ac8215e 100644 --- a/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-5.4/610-netfilter_match_bypass_default_checks.patch @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; @@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_ - const struct xt_table_info *private = xt_table_get_private_protected(table); + const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; + u8 flags; diff --git a/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch b/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch index 1792534835..baf738a8d2 100644 --- a/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch +++ b/target/linux/generic/pending-5.4/611-netfilter_match_bypass_default_table.patch @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau /* Initialization */ + WARN_ON(!(table->valid_hooks & (1 << hook))); + local_bh_disable(); -+ private = rcu_access_pointer(table->private); ++ private = READ_ONCE(table->private); /* Address dependency. */ + cpu = smp_processor_id(); + table_base = private->entries; + @@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau - WARN_ON(!(table->valid_hooks & (1 << hook))); - local_bh_disable(); addend = xt_write_recseq_begin(); -- private = rcu_access_pointer(table->private); +- private = READ_ONCE(table->private); /* Address dependency. */ - cpu = smp_processor_id(); - table_base = private->entries; jumpstack = (struct ipt_entry **)private->jumpstack[cpu]; diff --git a/target/linux/ipq806x/patches-5.4/092-1-v5.7-qcom-cpufreq-nvmem-Add-support-for-krait-based-socs.patch b/target/linux/ipq806x/patches-5.4/092-1-v5.7-qcom-cpufreq-nvmem-Add-support-for-krait-based-socs.patch index be20756a10..bdf0f8f2b9 100644 --- a/target/linux/ipq806x/patches-5.4/092-1-v5.7-qcom-cpufreq-nvmem-Add-support-for-krait-based-socs.patch +++ b/target/linux/ipq806x/patches-5.4/092-1-v5.7-qcom-cpufreq-nvmem-Add-support-for-krait-based-socs.patch @@ -46,7 +46,7 @@ Signed-off-by: Viresh Kumar select PM_OPP --- a/drivers/cpufreq/cpufreq-dt-platdev.c +++ b/drivers/cpufreq/cpufreq-dt-platdev.c -@@ -138,6 +138,11 @@ static const struct of_device_id blackli +@@ -140,6 +140,11 @@ static const struct of_device_id blackli { .compatible = "ti,am43", }, { .compatible = "ti,dra7", }, diff --git a/target/linux/layerscape/patches-5.4/302-dts-0006-arm64-dts-ls1012a-accumulated-change-for-ls1012a-boa.patch b/target/linux/layerscape/patches-5.4/302-dts-0006-arm64-dts-ls1012a-accumulated-change-for-ls1012a-boa.patch index 9c7626ae0b..413fcaf120 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0006-arm64-dts-ls1012a-accumulated-change-for-ls1012a-boa.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0006-arm64-dts-ls1012a-accumulated-change-for-ls1012a-boa.patch @@ -357,7 +357,7 @@ Date: Fri May 5 17:45:15 2017 +0800 +}; --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -260,7 +260,7 @@ +@@ -261,7 +261,7 @@ dcfg: dcfg@1ee0000 { compatible = "fsl,ls1012a-dcfg", "syscon"; @@ -366,7 +366,7 @@ Date: Fri May 5 17:45:15 2017 +0800 big-endian; }; -@@ -317,13 +317,23 @@ +@@ -318,13 +318,23 @@ #thermal-sensor-cells = <1>; }; @@ -391,7 +391,7 @@ Date: Fri May 5 17:45:15 2017 +0800 status = "disabled"; }; -@@ -395,6 +405,20 @@ +@@ -396,6 +406,20 @@ big-endian; }; @@ -412,7 +412,7 @@ Date: Fri May 5 17:45:15 2017 +0800 sai1: sai@2b50000 { #sound-dai-cells = <0>; compatible = "fsl,vf610-sai"; -@@ -499,6 +523,46 @@ +@@ -500,6 +524,46 @@ <0000 0 0 4 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0007-arm64-dts-ls1043a-accumulated-change-for-ls1043a-boa.patch b/target/linux/layerscape/patches-5.4/302-dts-0007-arm64-dts-ls1043a-accumulated-change-for-ls1043a-boa.patch index 3455811c26..91f789af13 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0007-arm64-dts-ls1043a-accumulated-change-for-ls1043a-boa.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0007-arm64-dts-ls1043a-accumulated-change-for-ls1043a-boa.patch @@ -384,7 +384,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 &duart0 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -277,7 +277,7 @@ +@@ -278,7 +278,7 @@ dcfg: dcfg@1ee0000 { compatible = "fsl,ls1043a-dcfg", "syscon"; @@ -393,7 +393,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 big-endian; }; -@@ -411,7 +411,7 @@ +@@ -412,7 +412,7 @@ }; i2c0: i2c@2180000 { @@ -402,7 +402,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x2180000 0x0 0x10000>; -@@ -421,6 +421,7 @@ +@@ -422,6 +422,7 @@ dmas = <&edma0 1 39>, <&edma0 1 38>; dma-names = "tx", "rx"; @@ -410,7 +410,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 status = "disabled"; }; -@@ -525,6 +526,72 @@ +@@ -526,6 +527,72 @@ #interrupt-cells = <2>; }; @@ -483,7 +483,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 lpuart0: serial@2950000 { compatible = "fsl,ls1021a-lpuart"; reg = <0x0 0x2950000 0x0 0x1000>; -@@ -579,6 +646,16 @@ +@@ -580,6 +647,16 @@ status = "disabled"; }; @@ -500,7 +500,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 wdog0: wdog@2ad0000 { compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt"; reg = <0x0 0x2ad0000 0x0 0x10000>; -@@ -611,7 +688,10 @@ +@@ -612,7 +689,10 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -511,7 +511,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 }; usb1: usb3@3000000 { -@@ -621,7 +701,10 @@ +@@ -622,7 +702,10 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -522,7 +522,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 }; usb2: usb3@3100000 { -@@ -631,7 +714,10 @@ +@@ -632,7 +715,10 @@ dr_mode = "host"; snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; @@ -533,7 +533,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 }; sata: sata@3200000 { -@@ -670,9 +756,9 @@ +@@ -671,9 +757,9 @@ reg = <0x00 0x03400000 0x0 0x00100000 /* controller registers */ 0x40 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -546,7 +546,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 #address-cells = <3>; #size-cells = <2>; device_type = "pci"; -@@ -696,9 +782,9 @@ +@@ -697,9 +783,9 @@ reg = <0x00 0x03500000 0x0 0x00100000 /* controller registers */ 0x48 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; @@ -559,7 +559,7 @@ Date: Sun Jun 12 15:44:11 2016 +0800 #address-cells = <3>; #size-cells = <2>; device_type = "pci"; -@@ -722,9 +808,9 @@ +@@ -723,9 +809,9 @@ reg = <0x00 0x03600000 0x0 0x00100000 /* controller registers */ 0x50 0x00000000 0x0 0x00002000>; /* configuration space */ reg-names = "regs", "config"; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch b/target/linux/layerscape/patches-5.4/302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch index 5079a815c2..8ef6d031ef 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0008-arm64-dts-ls1046a-accumulated-change-to-ls1046a-boar.patch @@ -277,7 +277,7 @@ Date: Fri May 5 17:53:27 2017 +0800 compatible = "spansion,m25p80"; --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -376,7 +376,7 @@ +@@ -377,7 +377,7 @@ }; i2c0: i2c@2180000 { @@ -286,7 +286,7 @@ Date: Fri May 5 17:53:27 2017 +0800 #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x2180000 0x0 0x10000>; -@@ -385,6 +385,7 @@ +@@ -386,6 +386,7 @@ dmas = <&edma0 1 39>, <&edma0 1 38>; dma-names = "tx", "rx"; @@ -294,7 +294,7 @@ Date: Fri May 5 17:53:27 2017 +0800 status = "disabled"; }; -@@ -409,12 +410,13 @@ +@@ -410,12 +411,13 @@ }; i2c3: i2c@21b0000 { @@ -309,7 +309,7 @@ Date: Fri May 5 17:53:27 2017 +0800 status = "disabled"; }; -@@ -544,6 +546,15 @@ +@@ -545,6 +547,15 @@ status = "disabled"; }; @@ -325,7 +325,7 @@ Date: Fri May 5 17:53:27 2017 +0800 wdog0: watchdog@2ad0000 { compatible = "fsl,imx21-wdt"; reg = <0x0 0x2ad0000 0x0 0x10000>; -@@ -576,6 +587,8 @@ +@@ -577,6 +588,8 @@ snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -334,7 +334,7 @@ Date: Fri May 5 17:53:27 2017 +0800 }; usb1: usb@3000000 { -@@ -586,6 +599,8 @@ +@@ -587,6 +600,8 @@ snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -343,7 +343,7 @@ Date: Fri May 5 17:53:27 2017 +0800 }; usb2: usb@3100000 { -@@ -596,6 +611,8 @@ +@@ -597,6 +612,8 @@ snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -352,7 +352,7 @@ Date: Fri May 5 17:53:27 2017 +0800 }; sata: sata@3200000 { -@@ -637,6 +654,11 @@ +@@ -638,6 +655,11 @@ ; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0016-arm64-dts-ls104x-add-iommu-map-to-pci-controllers.patch b/target/linux/layerscape/patches-5.4/302-dts-0016-arm64-dts-ls104x-add-iommu-map-to-pci-controllers.patch index 7f6e4c6144..4ca5a87884 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0016-arm64-dts-ls104x-add-iommu-map-to-pci-controllers.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0016-arm64-dts-ls104x-add-iommu-map-to-pci-controllers.patch @@ -15,7 +15,7 @@ Signed-off-by: Laurentiu Tudor --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -807,6 +807,7 @@ +@@ -808,6 +808,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; @@ -23,7 +23,7 @@ Signed-off-by: Laurentiu Tudor num-viewport = <6>; bus-range = <0x0 0xff>; ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ -@@ -833,6 +834,7 @@ +@@ -834,6 +835,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; @@ -31,7 +31,7 @@ Signed-off-by: Laurentiu Tudor num-viewport = <6>; bus-range = <0x0 0xff>; ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ -@@ -859,6 +861,7 @@ +@@ -860,6 +862,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; @@ -41,7 +41,7 @@ Signed-off-by: Laurentiu Tudor ranges = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* downstream I/O */ --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -715,6 +715,7 @@ +@@ -716,6 +716,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; @@ -49,7 +49,7 @@ Signed-off-by: Laurentiu Tudor num-viewport = <8>; bus-range = <0x0 0xff>; ranges = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* downstream I/O */ -@@ -751,6 +752,7 @@ +@@ -752,6 +753,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; @@ -57,7 +57,7 @@ Signed-off-by: Laurentiu Tudor num-viewport = <8>; bus-range = <0x0 0xff>; ranges = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* downstream I/O */ -@@ -787,6 +789,7 @@ +@@ -788,6 +790,7 @@ #size-cells = <2>; device_type = "pci"; dma-coherent; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0017-arm64-dts-ls104x-make-dma-coherent-global-to-the-SoC.patch b/target/linux/layerscape/patches-5.4/302-dts-0017-arm64-dts-ls104x-make-dma-coherent-global-to-the-SoC.patch index c29b35ba86..6430e6cf33 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0017-arm64-dts-ls104x-make-dma-coherent-global-to-the-SoC.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0017-arm64-dts-ls104x-make-dma-coherent-global-to-the-SoC.patch @@ -23,7 +23,7 @@ Signed-off-by: Laurentiu Tudor clockgen: clocking@1ee1000 { compatible = "fsl,ls1043a-clockgen"; -@@ -771,7 +772,6 @@ +@@ -772,7 +773,6 @@ reg-names = "ahci", "sata-ecc"; interrupts = <0 69 0x4>; clocks = <&clockgen 4 0>; @@ -31,7 +31,7 @@ Signed-off-by: Laurentiu Tudor }; msi1: msi-controller1@1571000 { -@@ -806,7 +806,6 @@ +@@ -807,7 +807,6 @@ #address-cells = <3>; #size-cells = <2>; device_type = "pci"; @@ -39,7 +39,7 @@ Signed-off-by: Laurentiu Tudor iommu-map = <0 &smmu 0 1>; /* update by bootloader */ num-viewport = <6>; bus-range = <0x0 0xff>; -@@ -833,7 +832,6 @@ +@@ -834,7 +833,6 @@ #address-cells = <3>; #size-cells = <2>; device_type = "pci"; @@ -47,7 +47,7 @@ Signed-off-by: Laurentiu Tudor iommu-map = <0 &smmu 0 1>; /* update by bootloader */ num-viewport = <6>; bus-range = <0x0 0xff>; -@@ -860,7 +858,6 @@ +@@ -861,7 +859,6 @@ #address-cells = <3>; #size-cells = <2>; device_type = "pci"; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0018-arm64-dts-ls104x-use-a-pseudo-bus-to-constrain-usb-d.patch b/target/linux/layerscape/patches-5.4/302-dts-0018-arm64-dts-ls104x-use-a-pseudo-bus-to-constrain-usb-d.patch index ef610cbcd2..81faace4c2 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0018-arm64-dts-ls104x-use-a-pseudo-bus-to-constrain-usb-d.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0018-arm64-dts-ls104x-use-a-pseudo-bus-to-constrain-usb-d.patch @@ -21,7 +21,7 @@ Signed-off-by: Laurentiu Tudor --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -726,43 +726,51 @@ +@@ -727,43 +727,51 @@ <&clockgen 4 0>; }; @@ -110,7 +110,7 @@ Signed-off-by: Laurentiu Tudor sata: sata@3200000 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -624,40 +624,48 @@ +@@ -625,40 +625,48 @@ <&clockgen 4 1>; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0026-arm64-dts-nxp-add-more-thermal-zone-support.patch b/target/linux/layerscape/patches-5.4/302-dts-0026-arm64-dts-nxp-add-more-thermal-zone-support.patch index 6eba875f5c..c9a9b5d271 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0026-arm64-dts-nxp-add-more-thermal-zone-support.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0026-arm64-dts-nxp-add-more-thermal-zone-support.patch @@ -64,7 +64,7 @@ Signed-off-by: Yuantian Tang soc { compatible = "simple-bus"; -@@ -572,3 +543,9 @@ +@@ -573,3 +544,9 @@ }; }; }; @@ -125,7 +125,7 @@ Signed-off-by: Yuantian Tang timer { compatible = "arm,armv8-timer"; -@@ -915,3 +884,29 @@ +@@ -916,3 +885,29 @@ #include "qoriq-qman-portals.dtsi" #include "qoriq-bman-portals.dtsi" @@ -206,7 +206,7 @@ Signed-off-by: Yuantian Tang timer { compatible = "arm,armv8-timer"; -@@ -882,3 +851,25 @@ +@@ -883,3 +852,25 @@ #include "qoriq-qman-portals.dtsi" #include "qoriq-bman-portals.dtsi" diff --git a/target/linux/layerscape/patches-5.4/302-dts-0036-arm64-dts-ls104x-constrain-sata-dma-address-size.patch b/target/linux/layerscape/patches-5.4/302-dts-0036-arm64-dts-ls104x-constrain-sata-dma-address-size.patch index 00bda3da06..486bb23c2a 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0036-arm64-dts-ls104x-constrain-sata-dma-address-size.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0036-arm64-dts-ls104x-constrain-sata-dma-address-size.patch @@ -16,7 +16,7 @@ Signed-off-by: Laurentiu Tudor --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -695,7 +695,7 @@ +@@ -696,7 +696,7 @@ <&clockgen 4 0>; }; @@ -25,7 +25,7 @@ Signed-off-by: Laurentiu Tudor #address-cells = <2>; #size-cells = <2>; compatible = "simple-bus"; -@@ -740,15 +740,15 @@ +@@ -741,15 +741,15 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; configure-gfladj; }; @@ -51,7 +51,7 @@ Signed-off-by: Laurentiu Tudor msi1: msi-controller1@1571000 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -593,7 +593,7 @@ +@@ -594,7 +594,7 @@ <&clockgen 4 1>; }; @@ -60,7 +60,7 @@ Signed-off-by: Laurentiu Tudor #address-cells = <2>; #size-cells = <2>; compatible = "simple-bus"; -@@ -635,15 +635,15 @@ +@@ -636,15 +636,15 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0040-arm64-dts-ls1012a-reorganize-pfe_mac-nodes.patch b/target/linux/layerscape/patches-5.4/302-dts-0040-arm64-dts-ls1012a-reorganize-pfe_mac-nodes.patch index e410c20492..53e8f186c1 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0040-arm64-dts-ls1012a-reorganize-pfe_mac-nodes.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0040-arm64-dts-ls1012a-reorganize-pfe_mac-nodes.patch @@ -118,7 +118,7 @@ Signed-off-by: Calvin Johnson #size-cells = <0>; --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -529,11 +529,6 @@ +@@ -530,11 +530,6 @@ clock-names = "pfe"; status = "okay"; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0045-arm64-dts-Fix-DWC3-IP-VBUS-glitch-issue-on-Layerscap.patch b/target/linux/layerscape/patches-5.4/302-dts-0045-arm64-dts-Fix-DWC3-IP-VBUS-glitch-issue-on-Layerscap.patch index ff12e44e7d..c2b7e1fde2 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0045-arm64-dts-Fix-DWC3-IP-VBUS-glitch-issue-on-Layerscap.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0045-arm64-dts-Fix-DWC3-IP-VBUS-glitch-issue-on-Layerscap.patch @@ -18,7 +18,7 @@ Signed-off-by: Ran Wang --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -442,6 +442,7 @@ +@@ -443,6 +443,7 @@ snps,quirk-frame-length-adjustment = <0x20>; snps,dis_rxdet_inp3_quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -28,7 +28,7 @@ Signed-off-by: Ran Wang sata: sata@3200000 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -712,6 +712,7 @@ +@@ -713,6 +713,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -36,7 +36,7 @@ Signed-off-by: Ran Wang configure-gfladj; }; -@@ -725,6 +726,7 @@ +@@ -726,6 +727,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -44,7 +44,7 @@ Signed-off-by: Ran Wang configure-gfladj; }; -@@ -738,6 +740,7 @@ +@@ -739,6 +741,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; @@ -54,7 +54,7 @@ Signed-off-by: Ran Wang --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -610,6 +610,7 @@ +@@ -611,6 +611,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; @@ -62,7 +62,7 @@ Signed-off-by: Ran Wang }; usb1: usb@3000000 { -@@ -622,6 +623,7 @@ +@@ -623,6 +624,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; @@ -70,7 +70,7 @@ Signed-off-by: Ran Wang }; usb2: usb@3100000 { -@@ -634,6 +636,7 @@ +@@ -635,6 +637,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0051-arm64-dts-fsl-layerscape-fix-warnings-when-compiling.patch b/target/linux/layerscape/patches-5.4/302-dts-0051-arm64-dts-fsl-layerscape-fix-warnings-when-compiling.patch index 2e68b8edbe..d4875bc877 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0051-arm64-dts-fsl-layerscape-fix-warnings-when-compiling.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0051-arm64-dts-fsl-layerscape-fix-warnings-when-compiling.patch @@ -32,7 +32,7 @@ Signed-off-by: Pankaj Bansal * */ -@@ -513,7 +514,7 @@ +@@ -514,7 +515,7 @@ }; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0063-arm64-dts-fsl-remove-backplane-support.patch b/target/linux/layerscape/patches-5.4/302-dts-0063-arm64-dts-fsl-remove-backplane-support.patch index 875dfc2f81..d65b222c33 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0063-arm64-dts-fsl-remove-backplane-support.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0063-arm64-dts-fsl-remove-backplane-support.patch @@ -85,7 +85,7 @@ Signed-off-by: Florinel Iordache }; --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -679,11 +679,6 @@ +@@ -680,11 +680,6 @@ ; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0070-arm64-dts-ls1012a-ls1043a-ls1046a-ls1088a-ls208xa-re.patch b/target/linux/layerscape/patches-5.4/302-dts-0070-arm64-dts-ls1012a-ls1043a-ls1046a-ls1088a-ls208xa-re.patch index b77b745da6..baa4c79586 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0070-arm64-dts-ls1012a-ls1043a-ls1046a-ls1088a-ls208xa-re.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0070-arm64-dts-ls1012a-ls1043a-ls1046a-ls1088a-ls208xa-re.patch @@ -34,7 +34,7 @@ Signed-off-by: Biwen Li }; cpus { -@@ -289,15 +290,21 @@ +@@ -290,15 +291,21 @@ #thermal-sensor-cells = <1>; }; @@ -61,7 +61,7 @@ Signed-off-by: Biwen Li i2c0: i2c@2180000 { compatible = "fsl,vf610-i2c", "fsl,ls1012a-vf610-i2c"; #address-cells = <1>; -@@ -496,12 +503,6 @@ +@@ -497,12 +504,6 @@ <0000 0 0 4 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>; status = "disabled"; }; @@ -106,7 +106,7 @@ Signed-off-by: Biwen Li }; cpus { -@@ -660,16 +661,6 @@ +@@ -661,16 +662,6 @@ status = "disabled"; }; @@ -123,7 +123,7 @@ Signed-off-by: Biwen Li wdog0: wdog@2ad0000 { compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt"; reg = <0x0 0x2ad0000 0x0 0x10000>; -@@ -874,6 +865,19 @@ +@@ -875,6 +866,19 @@ big-endian; }; @@ -186,7 +186,7 @@ Signed-off-by: Biwen Li }; cpus { -@@ -560,15 +561,6 @@ +@@ -561,15 +562,6 @@ status = "disabled"; }; @@ -202,7 +202,7 @@ Signed-off-by: Biwen Li wdog0: watchdog@2ad0000 { compatible = "fsl,imx21-wdt"; reg = <0x0 0x2ad0000 0x0 0x10000>; -@@ -810,6 +802,20 @@ +@@ -811,6 +803,20 @@ queue-sizes = <64 64>; big-endian; }; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0097-LF-387-5-arm64-dts-layerscape-add-chip-specific-comp.patch b/target/linux/layerscape/patches-5.4/302-dts-0097-LF-387-5-arm64-dts-layerscape-add-chip-specific-comp.patch index 63f4372d4e..333fecb3fd 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0097-LF-387-5-arm64-dts-layerscape-add-chip-specific-comp.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0097-LF-387-5-arm64-dts-layerscape-add-chip-specific-comp.patch @@ -21,7 +21,7 @@ Reviewed-by: Leo Li --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -443,7 +443,7 @@ +@@ -444,7 +444,7 @@ }; usb0: usb3@2f00000 { @@ -32,7 +32,7 @@ Reviewed-by: Leo Li dr_mode = "host"; --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -694,7 +694,7 @@ +@@ -695,7 +695,7 @@ dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>; usb0: usb3@2f00000 { @@ -41,7 +41,7 @@ Reviewed-by: Leo Li reg = <0x0 0x2f00000 0x0 0x10000>; interrupts = <0 60 0x4>; dr_mode = "host"; -@@ -708,7 +708,7 @@ +@@ -709,7 +709,7 @@ }; usb1: usb3@3000000 { @@ -50,7 +50,7 @@ Reviewed-by: Leo Li reg = <0x0 0x3000000 0x0 0x10000>; interrupts = <0 61 0x4>; dr_mode = "host"; -@@ -722,7 +722,7 @@ +@@ -723,7 +723,7 @@ }; usb2: usb3@3100000 { @@ -61,7 +61,7 @@ Reviewed-by: Leo Li dr_mode = "host"; --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -593,7 +593,7 @@ +@@ -594,7 +594,7 @@ dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>; usb0: usb@2f00000 { @@ -70,7 +70,7 @@ Reviewed-by: Leo Li reg = <0x0 0x2f00000 0x0 0x10000>; interrupts = ; dr_mode = "host"; -@@ -606,7 +606,7 @@ +@@ -607,7 +607,7 @@ }; usb1: usb@3000000 { @@ -79,7 +79,7 @@ Reviewed-by: Leo Li reg = <0x0 0x3000000 0x0 0x10000>; interrupts = ; dr_mode = "host"; -@@ -619,7 +619,7 @@ +@@ -620,7 +620,7 @@ }; usb2: usb@3100000 { diff --git a/target/linux/layerscape/patches-5.4/302-dts-0098-LF-403-ARM64-dts-fsl-Add-clock-names-mclk0-for-SAI-n.patch b/target/linux/layerscape/patches-5.4/302-dts-0098-LF-403-ARM64-dts-fsl-Add-clock-names-mclk0-for-SAI-n.patch index 60013645ee..fd2999efab 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0098-LF-403-ARM64-dts-fsl-Add-clock-names-mclk0-for-SAI-n.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0098-LF-403-ARM64-dts-fsl-Add-clock-names-mclk0-for-SAI-n.patch @@ -41,7 +41,7 @@ Signed-off-by: Alison Wang <&edma0 1 44>; --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -404,8 +404,9 @@ +@@ -405,8 +405,9 @@ reg = <0x0 0x2b50000 0x0 0x10000>; interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clockgen 4 3>, <&clockgen 4 3>, @@ -53,7 +53,7 @@ Signed-off-by: Alison Wang dma-names = "tx", "rx"; dmas = <&edma0 1 47>, <&edma0 1 46>; -@@ -418,8 +419,9 @@ +@@ -419,8 +420,9 @@ reg = <0x0 0x2b60000 0x0 0x10000>; interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clockgen 4 3>, <&clockgen 4 3>, diff --git a/target/linux/layerscape/patches-5.4/302-dts-0099-arm64-dts-layerscape-apply-dma-coherent-for-dwc3-nod.patch b/target/linux/layerscape/patches-5.4/302-dts-0099-arm64-dts-layerscape-apply-dma-coherent-for-dwc3-nod.patch index 182c8ae242..5d325baabc 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0099-arm64-dts-layerscape-apply-dma-coherent-for-dwc3-nod.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0099-arm64-dts-layerscape-apply-dma-coherent-for-dwc3-nod.patch @@ -24,7 +24,7 @@ Signed-off-by: Ran Wang --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -453,6 +453,7 @@ +@@ -454,6 +454,7 @@ snps,dis_rxdet_inp3_quirk; snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; snps,host-vbus-glitches; @@ -52,7 +52,7 @@ Signed-off-by: Ran Wang sata: sata@3200000 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -705,6 +705,7 @@ +@@ -706,6 +706,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; snps,host-vbus-glitches; configure-gfladj; @@ -60,7 +60,7 @@ Signed-off-by: Ran Wang }; usb1: usb3@3000000 { -@@ -719,6 +720,7 @@ +@@ -720,6 +721,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; snps,host-vbus-glitches; configure-gfladj; @@ -68,7 +68,7 @@ Signed-off-by: Ran Wang }; usb2: usb3@3100000 { -@@ -733,6 +735,7 @@ +@@ -734,6 +736,7 @@ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>; snps,host-vbus-glitches; configure-gfladj; @@ -78,7 +78,7 @@ Signed-off-by: Ran Wang sata: sata@3200000 { --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -603,6 +603,7 @@ +@@ -604,6 +604,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,host-vbus-glitches; @@ -86,7 +86,7 @@ Signed-off-by: Ran Wang }; usb1: usb@3000000 { -@@ -616,6 +617,7 @@ +@@ -617,6 +618,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,host-vbus-glitches; @@ -94,7 +94,7 @@ Signed-off-by: Ran Wang }; usb2: usb@3100000 { -@@ -629,6 +631,7 @@ +@@ -630,6 +632,7 @@ usb3-lpm-capable; snps,dis-u1u2-when-u3-quirk; snps,host-vbus-glitches; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0102-LF-20-1-arm64-dts-ls1012ardb-Update-qspi-node-dts-pr.patch b/target/linux/layerscape/patches-5.4/302-dts-0102-LF-20-1-arm64-dts-ls1012ardb-Update-qspi-node-dts-pr.patch index 1f8462e267..284519c6c6 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0102-LF-20-1-arm64-dts-ls1012ardb-Update-qspi-node-dts-pr.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0102-LF-20-1-arm64-dts-ls1012ardb-Update-qspi-node-dts-pr.patch @@ -41,7 +41,7 @@ Signed-off-by: Kuldeep Singh }; --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -385,7 +385,7 @@ +@@ -386,7 +386,7 @@ }; qspi: spi@1550000 { @@ -50,7 +50,7 @@ Signed-off-by: Kuldeep Singh #address-cells = <1>; #size-cells = <0>; reg = <0x0 0x1550000 0x0 0x10000>, -@@ -394,7 +394,6 @@ +@@ -395,7 +395,6 @@ interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>; clock-names = "qspi_en", "qspi"; clocks = <&clockgen 4 0>, <&clockgen 4 0>; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0107-arm64-dts-ls1012ardb-Update-qspi-node-property.patch b/target/linux/layerscape/patches-5.4/302-dts-0107-arm64-dts-ls1012ardb-Update-qspi-node-property.patch index 7c4e91b9e1..19f9d80d07 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0107-arm64-dts-ls1012ardb-Update-qspi-node-property.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0107-arm64-dts-ls1012ardb-Update-qspi-node-property.patch @@ -32,7 +32,7 @@ Signed-off-by: Kuldeep Singh spi-tx-bus-width = <1>; --- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi -@@ -391,7 +391,7 @@ +@@ -392,7 +392,7 @@ reg = <0x0 0x1550000 0x0 0x10000>, <0x0 0x40000000 0x0 0x10000000>; reg-names = "QuadSPI", "QuadSPI-memory"; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0120-arm64-dts-ls1046a-fix-ippdexpcr-offset-not-correct.patch b/target/linux/layerscape/patches-5.4/302-dts-0120-arm64-dts-ls1046a-fix-ippdexpcr-offset-not-correct.patch index 3fb96c9133..43700b8159 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0120-arm64-dts-ls1046a-fix-ippdexpcr-offset-not-correct.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0120-arm64-dts-ls1046a-fix-ippdexpcr-offset-not-correct.patch @@ -14,7 +14,7 @@ Signed-off-by: Ran Wang --- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi -@@ -808,7 +808,7 @@ +@@ -809,7 +809,7 @@ rcpm: rcpm@1ee208c { compatible = "fsl,ls1046a-rcpm", "fsl,qoriq-rcpm-2.1+"; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0121-arm64-dts-ls1043a-update-USB-nodes-status-to-match-b.patch b/target/linux/layerscape/patches-5.4/302-dts-0121-arm64-dts-ls1043a-update-USB-nodes-status-to-match-b.patch index 952238f2c4..c83fad33ab 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0121-arm64-dts-ls1043a-update-USB-nodes-status-to-match-b.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0121-arm64-dts-ls1043a-update-USB-nodes-status-to-match-b.patch @@ -52,7 +52,7 @@ Signed-off-by: Shawn Guo +}; --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -706,6 +706,7 @@ +@@ -707,6 +707,7 @@ snps,host-vbus-glitches; configure-gfladj; dma-coherent; @@ -60,7 +60,7 @@ Signed-off-by: Shawn Guo }; usb1: usb3@3000000 { -@@ -721,6 +722,7 @@ +@@ -722,6 +723,7 @@ snps,host-vbus-glitches; configure-gfladj; dma-coherent; @@ -68,7 +68,7 @@ Signed-off-by: Shawn Guo }; usb2: usb3@3100000 { -@@ -736,6 +738,7 @@ +@@ -737,6 +739,7 @@ snps,host-vbus-glitches; configure-gfladj; dma-coherent; diff --git a/target/linux/layerscape/patches-5.4/302-dts-0122-arm64-dts-ls1043a-remove-thermal-zone-5-from-dts.patch b/target/linux/layerscape/patches-5.4/302-dts-0122-arm64-dts-ls1043a-remove-thermal-zone-5-from-dts.patch index 0a9f683ea1..887844fc0e 100644 --- a/target/linux/layerscape/patches-5.4/302-dts-0122-arm64-dts-ls1043a-remove-thermal-zone-5-from-dts.patch +++ b/target/linux/layerscape/patches-5.4/302-dts-0122-arm64-dts-ls1043a-remove-thermal-zone-5-from-dts.patch @@ -13,7 +13,7 @@ Signed-off-by: Yuantian --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi -@@ -918,8 +918,4 @@ +@@ -919,8 +919,4 @@ thermal-zone4 { status = "okay"; }; diff --git a/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch b/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch index 51eb42494e..09961c88d8 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0006-can-rx-offload-Prepare-for-CAN-FD-support.patch @@ -25,7 +25,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -785,16 +785,23 @@ static inline struct flexcan_priv *rx_of +@@ -791,16 +791,23 @@ static inline struct flexcan_priv *rx_of return container_of(offload, struct flexcan_priv, offload); } @@ -52,7 +52,7 @@ Signed-off-by: Marc Kleine-Budde mb = flexcan_get_mb(priv, n); if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { -@@ -808,7 +815,7 @@ static unsigned int flexcan_mailbox_read +@@ -814,7 +821,7 @@ static unsigned int flexcan_mailbox_read code = reg_ctrl & FLEXCAN_MB_CODE_MASK; if ((code != FLEXCAN_MB_CODE_RX_FULL) && (code != FLEXCAN_MB_CODE_RX_OVERRUN)) @@ -61,7 +61,7 @@ Signed-off-by: Marc Kleine-Budde if (code == FLEXCAN_MB_CODE_RX_OVERRUN) { /* This MB was overrun, we lost data */ -@@ -818,11 +825,17 @@ static unsigned int flexcan_mailbox_read +@@ -824,11 +831,17 @@ static unsigned int flexcan_mailbox_read } else { reg_iflag1 = priv->read(®s->iflag1); if (!(reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE)) @@ -80,7 +80,7 @@ Signed-off-by: Marc Kleine-Budde /* increase timstamp to full 32 bit */ *timestamp = reg_ctrl << 16; -@@ -841,7 +854,7 @@ static unsigned int flexcan_mailbox_read +@@ -847,7 +860,7 @@ static unsigned int flexcan_mailbox_read *(__be32 *)(cf->data + i) = data; } @@ -89,7 +89,7 @@ Signed-off-by: Marc Kleine-Budde if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { /* Clear IRQ */ if (n < 32) -@@ -858,7 +871,7 @@ static unsigned int flexcan_mailbox_read +@@ -864,7 +877,7 @@ static unsigned int flexcan_mailbox_read */ priv->read(®s->timer); diff --git a/target/linux/layerscape/patches-5.4/802-can-0007-can-flexcan-use-devm_platform_ioremap_resource-to-si.patch b/target/linux/layerscape/patches-5.4/802-can-0007-can-flexcan-use-devm_platform_ioremap_resource-to-si.patch index cb0526c62c..35c35f67a2 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0007-can-flexcan-use-devm_platform_ioremap_resource-to-si.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0007-can-flexcan-use-devm_platform_ioremap_resource-to-si.patch @@ -17,7 +17,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -1579,7 +1579,6 @@ static int flexcan_probe(struct platform +@@ -1585,7 +1585,6 @@ static int flexcan_probe(struct platform struct net_device *dev; struct flexcan_priv *priv; struct regulator *reg_xceiver; @@ -25,7 +25,7 @@ Signed-off-by: Marc Kleine-Budde struct clk *clk_ipg = NULL, *clk_per = NULL; struct flexcan_regs __iomem *regs; int err, irq; -@@ -1614,12 +1613,11 @@ static int flexcan_probe(struct platform +@@ -1620,12 +1619,11 @@ static int flexcan_probe(struct platform clock_freq = clk_get_rate(clk_per); } diff --git a/target/linux/layerscape/patches-5.4/802-can-0008-can-flexcan-flexcan_irq_state-only-read-timestamp-if.patch b/target/linux/layerscape/patches-5.4/802-can-0008-can-flexcan-flexcan_irq_state-only-read-timestamp-if.patch index 92fedc6b8c..2f839fcfc0 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0008-can-flexcan-flexcan_irq_state-only-read-timestamp-if.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0008-can-flexcan-flexcan_irq_state-only-read-timestamp-if.patch @@ -18,7 +18,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -745,8 +745,6 @@ static void flexcan_irq_state(struct net +@@ -751,8 +751,6 @@ static void flexcan_irq_state(struct net u32 timestamp; int err; @@ -27,7 +27,7 @@ Signed-off-by: Marc Kleine-Budde flt = reg_esr & FLEXCAN_ESR_FLT_CONF_MASK; if (likely(flt == FLEXCAN_ESR_FLT_CONF_ACTIVE)) { tx_state = unlikely(reg_esr & FLEXCAN_ESR_TX_WRN) ? -@@ -766,6 +764,8 @@ static void flexcan_irq_state(struct net +@@ -772,6 +770,8 @@ static void flexcan_irq_state(struct net if (likely(new_state == priv->can.state)) return; diff --git a/target/linux/layerscape/patches-5.4/802-can-0009-can-flexcan-rename-macro-FLEXCAN_IFLAG_MB-FLEXCAN_IF.patch b/target/linux/layerscape/patches-5.4/802-can-0009-can-flexcan-rename-macro-FLEXCAN_IFLAG_MB-FLEXCAN_IF.patch index bd8db81f36..535fccaff6 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0009-can-flexcan-rename-macro-FLEXCAN_IFLAG_MB-FLEXCAN_IF.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0009-can-flexcan-rename-macro-FLEXCAN_IFLAG_MB-FLEXCAN_IF.patch @@ -23,7 +23,7 @@ Signed-off-by: Marc Kleine-Budde #define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7) #define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6) #define FLEXCAN_IFLAG_RX_FIFO_AVAILABLE BIT(5) -@@ -881,7 +881,7 @@ static inline u64 flexcan_read_reg_iflag +@@ -887,7 +887,7 @@ static inline u64 flexcan_read_reg_iflag u32 iflag1, iflag2; iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default & @@ -32,7 +32,7 @@ Signed-off-by: Marc Kleine-Budde iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default; return (u64)iflag2 << 32 | iflag1; -@@ -931,7 +931,7 @@ static irqreturn_t flexcan_irq(int irq, +@@ -937,7 +937,7 @@ static irqreturn_t flexcan_irq(int irq, reg_iflag2 = priv->read(®s->iflag2); /* transmission complete interrupt */ @@ -41,7 +41,7 @@ Signed-off-by: Marc Kleine-Budde u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl); handled = IRQ_HANDLED; -@@ -943,7 +943,7 @@ static irqreturn_t flexcan_irq(int irq, +@@ -949,7 +949,7 @@ static irqreturn_t flexcan_irq(int irq, /* after sending a RTR frame MB is in RX mode */ priv->write(FLEXCAN_MB_CODE_TX_INACTIVE, &priv->tx_mb->can_ctrl); @@ -50,7 +50,7 @@ Signed-off-by: Marc Kleine-Budde netif_wake_queue(dev); } -@@ -1323,7 +1323,7 @@ static int flexcan_open(struct net_devic +@@ -1329,7 +1329,7 @@ static int flexcan_open(struct net_devic priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx); priv->reg_imask1_default = 0; diff --git a/target/linux/layerscape/patches-5.4/802-can-0010-can-flexcan-flexcan_irq-rename-variable-reg_iflag-re.patch b/target/linux/layerscape/patches-5.4/802-can-0010-can-flexcan-flexcan_irq-rename-variable-reg_iflag-re.patch index f295fd1917..d893dd6cd1 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0010-can-flexcan-flexcan_irq-rename-variable-reg_iflag-re.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0010-can-flexcan-flexcan_irq-rename-variable-reg_iflag-re.patch @@ -16,7 +16,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -899,13 +899,13 @@ static irqreturn_t flexcan_irq(int irq, +@@ -905,13 +905,13 @@ static irqreturn_t flexcan_irq(int irq, /* reception interrupt */ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { diff --git a/target/linux/layerscape/patches-5.4/802-can-0011-can-flexcan-rename-struct-flexcan_priv-reg_imask-1-2.patch b/target/linux/layerscape/patches-5.4/802-can-0011-can-flexcan-rename-struct-flexcan_priv-reg_imask-1-2.patch index dc676ba918..ce0102182f 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0011-can-flexcan-rename-struct-flexcan_priv-reg_imask-1-2.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0011-can-flexcan-rename-struct-flexcan_priv-reg_imask-1-2.patch @@ -49,7 +49,7 @@ Signed-off-by: Marc Kleine-Budde struct clk *clk_ipg; struct clk *clk_per; -@@ -880,9 +880,9 @@ static inline u64 flexcan_read_reg_iflag +@@ -886,9 +886,9 @@ static inline u64 flexcan_read_reg_iflag struct flexcan_regs __iomem *regs = priv->regs; u32 iflag1, iflag2; @@ -61,7 +61,7 @@ Signed-off-by: Marc Kleine-Budde return (u64)iflag2 << 32 | iflag1; } -@@ -1227,8 +1227,8 @@ static int flexcan_chip_start(struct net +@@ -1233,8 +1233,8 @@ static int flexcan_chip_start(struct net /* enable interrupts atomically */ disable_irq(dev->irq); priv->write(priv->reg_ctrl_default, ®s->ctrl); @@ -72,7 +72,7 @@ Signed-off-by: Marc Kleine-Budde enable_irq(dev->irq); /* print chip status */ -@@ -1322,8 +1322,8 @@ static int flexcan_open(struct net_devic +@@ -1328,8 +1328,8 @@ static int flexcan_open(struct net_devic priv->tx_mb_idx = priv->mb_count - 1; priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx); @@ -83,7 +83,7 @@ Signed-off-by: Marc Kleine-Budde priv->offload.mailbox_read = flexcan_mailbox_read; -@@ -1335,12 +1335,12 @@ static int flexcan_open(struct net_devic +@@ -1341,12 +1341,12 @@ static int flexcan_open(struct net_devic imask = GENMASK_ULL(priv->offload.mb_last, priv->offload.mb_first); diff --git a/target/linux/layerscape/patches-5.4/802-can-0012-can-flexcan-remove-TX-mailbox-bit-from-struct-flexca.patch b/target/linux/layerscape/patches-5.4/802-can-0012-can-flexcan-remove-TX-mailbox-bit-from-struct-flexca.patch index 84a0b73bb6..8ab8e29dbd 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0012-can-flexcan-remove-TX-mailbox-bit-from-struct-flexca.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0012-can-flexcan-remove-TX-mailbox-bit-from-struct-flexca.patch @@ -24,7 +24,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -880,8 +880,7 @@ static inline u64 flexcan_read_reg_iflag +@@ -886,8 +886,7 @@ static inline u64 flexcan_read_reg_iflag struct flexcan_regs __iomem *regs = priv->regs; u32 iflag1, iflag2; @@ -34,7 +34,7 @@ Signed-off-by: Marc Kleine-Budde iflag1 = priv->read(®s->iflag1) & priv->rx_mask1; return (u64)iflag2 << 32 | iflag1; -@@ -1228,7 +1227,7 @@ static int flexcan_chip_start(struct net +@@ -1234,7 +1233,7 @@ static int flexcan_chip_start(struct net disable_irq(dev->irq); priv->write(priv->reg_ctrl_default, ®s->ctrl); priv->write(priv->rx_mask1, ®s->imask1); @@ -43,7 +43,7 @@ Signed-off-by: Marc Kleine-Budde enable_irq(dev->irq); /* print chip status */ -@@ -1322,9 +1321,6 @@ static int flexcan_open(struct net_devic +@@ -1328,9 +1327,6 @@ static int flexcan_open(struct net_devic priv->tx_mb_idx = priv->mb_count - 1; priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx); @@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde priv->offload.mailbox_read = flexcan_mailbox_read; if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { -@@ -1335,12 +1331,12 @@ static int flexcan_open(struct net_devic +@@ -1341,12 +1337,12 @@ static int flexcan_open(struct net_devic imask = GENMASK_ULL(priv->offload.mb_last, priv->offload.mb_first); diff --git a/target/linux/layerscape/patches-5.4/802-can-0013-can-flexcan-convert-struct-flexcan_priv-rx_mask-1-2-.patch b/target/linux/layerscape/patches-5.4/802-can-0013-can-flexcan-convert-struct-flexcan_priv-rx_mask-1-2-.patch index 4822f95607..9533726472 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0013-can-flexcan-convert-struct-flexcan_priv-rx_mask-1-2-.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0013-can-flexcan-convert-struct-flexcan_priv-rx_mask-1-2-.patch @@ -41,7 +41,7 @@ Signed-off-by: Marc Kleine-Budde struct clk *clk_ipg; struct clk *clk_per; -@@ -874,16 +874,15 @@ static struct sk_buff *flexcan_mailbox_r +@@ -880,16 +880,15 @@ static struct sk_buff *flexcan_mailbox_r return skb; } @@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde } static irqreturn_t flexcan_irq(int irq, void *dev_id) -@@ -1054,6 +1053,7 @@ static int flexcan_chip_start(struct net +@@ -1060,6 +1059,7 @@ static int flexcan_chip_start(struct net struct flexcan_priv *priv = netdev_priv(dev); struct flexcan_regs __iomem *regs = priv->regs; u32 reg_mcr, reg_ctrl, reg_ctrl2, reg_mecr; @@ -70,7 +70,7 @@ Signed-off-by: Marc Kleine-Budde int err, i; struct flexcan_mb __iomem *mb; -@@ -1226,8 +1226,9 @@ static int flexcan_chip_start(struct net +@@ -1232,8 +1232,9 @@ static int flexcan_chip_start(struct net /* enable interrupts atomically */ disable_irq(dev->irq); priv->write(priv->reg_ctrl_default, ®s->ctrl); @@ -82,7 +82,7 @@ Signed-off-by: Marc Kleine-Budde enable_irq(dev->irq); /* print chip status */ -@@ -1324,19 +1325,14 @@ static int flexcan_open(struct net_devic +@@ -1330,19 +1331,14 @@ static int flexcan_open(struct net_devic priv->offload.mailbox_read = flexcan_mailbox_read; if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { diff --git a/target/linux/layerscape/patches-5.4/802-can-0014-can-flexcan-introduce-struct-flexcan_priv-tx_mask-an.patch b/target/linux/layerscape/patches-5.4/802-can-0014-can-flexcan-introduce-struct-flexcan_priv-tx_mask-an.patch index 0b1bbf880e..336fcd684d 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0014-can-flexcan-introduce-struct-flexcan_priv-tx_mask-an.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0014-can-flexcan-introduce-struct-flexcan_priv-tx_mask-an.patch @@ -39,7 +39,7 @@ Signed-off-by: Marc Kleine-Budde u32 reg_ctrl_default; struct clk *clk_ipg; -@@ -892,7 +892,8 @@ static irqreturn_t flexcan_irq(int irq, +@@ -898,7 +898,8 @@ static irqreturn_t flexcan_irq(int irq, struct flexcan_priv *priv = netdev_priv(dev); struct flexcan_regs __iomem *regs = priv->regs; irqreturn_t handled = IRQ_NONE; @@ -49,7 +49,7 @@ Signed-off-by: Marc Kleine-Budde enum can_state last_state = priv->can.state; /* reception interrupt */ -@@ -926,10 +927,10 @@ static irqreturn_t flexcan_irq(int irq, +@@ -932,10 +933,10 @@ static irqreturn_t flexcan_irq(int irq, } } @@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde u32 reg_ctrl = priv->read(&priv->tx_mb->can_ctrl); handled = IRQ_HANDLED; -@@ -941,7 +942,7 @@ static irqreturn_t flexcan_irq(int irq, +@@ -947,7 +948,7 @@ static irqreturn_t flexcan_irq(int irq, /* after sending a RTR frame MB is in RX mode */ priv->write(FLEXCAN_MB_CODE_TX_INACTIVE, &priv->tx_mb->can_ctrl); @@ -71,7 +71,7 @@ Signed-off-by: Marc Kleine-Budde netif_wake_queue(dev); } -@@ -1226,7 +1227,7 @@ static int flexcan_chip_start(struct net +@@ -1232,7 +1233,7 @@ static int flexcan_chip_start(struct net /* enable interrupts atomically */ disable_irq(dev->irq); priv->write(priv->reg_ctrl_default, ®s->ctrl); @@ -80,7 +80,7 @@ Signed-off-by: Marc Kleine-Budde priv->write(upper_32_bits(reg_imask), ®s->imask2); priv->write(lower_32_bits(reg_imask), ®s->imask1); enable_irq(dev->irq); -@@ -1321,6 +1322,7 @@ static int flexcan_open(struct net_devic +@@ -1327,6 +1328,7 @@ static int flexcan_open(struct net_devic flexcan_get_mb(priv, FLEXCAN_TX_MB_RESERVED_OFF_FIFO); priv->tx_mb_idx = priv->mb_count - 1; priv->tx_mb = flexcan_get_mb(priv, priv->tx_mb_idx); diff --git a/target/linux/layerscape/patches-5.4/802-can-0015-can-flexcan-flexcan_read_reg_iflag_rx-optimize-readi.patch b/target/linux/layerscape/patches-5.4/802-can-0015-can-flexcan-flexcan_read_reg_iflag_rx-optimize-readi.patch index 4cf5e6d8d2..c7e5e4ec4f 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0015-can-flexcan-flexcan_read_reg_iflag_rx-optimize-readi.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0015-can-flexcan-flexcan_read_reg_iflag_rx-optimize-readi.patch @@ -24,7 +24,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -780,6 +780,23 @@ static void flexcan_irq_state(struct net +@@ -786,6 +786,23 @@ static void flexcan_irq_state(struct net dev->stats.rx_fifo_errors++; } @@ -48,7 +48,7 @@ Signed-off-by: Marc Kleine-Budde static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload) { return container_of(offload, struct flexcan_priv, offload); -@@ -874,17 +891,6 @@ static struct sk_buff *flexcan_mailbox_r +@@ -880,17 +897,6 @@ static struct sk_buff *flexcan_mailbox_r return skb; } diff --git a/target/linux/layerscape/patches-5.4/802-can-0016-can-flexcan-flexcan_irq-add-support-for-TX-mailbox-i.patch b/target/linux/layerscape/patches-5.4/802-can-0016-can-flexcan-flexcan_irq-add-support-for-TX-mailbox-i.patch index 03b717d283..f67ae18763 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0016-can-flexcan-flexcan_irq-add-support-for-TX-mailbox-i.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0016-can-flexcan-flexcan_irq-add-support-for-TX-mailbox-i.patch @@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -792,11 +792,24 @@ static inline u64 flexcan_read64_mask(st +@@ -798,11 +798,24 @@ static inline u64 flexcan_read64_mask(st return reg & mask; } @@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde static inline struct flexcan_priv *rx_offload_to_priv(struct can_rx_offload *offload) { return container_of(offload, struct flexcan_priv, offload); -@@ -933,7 +946,7 @@ static irqreturn_t flexcan_irq(int irq, +@@ -939,7 +952,7 @@ static irqreturn_t flexcan_irq(int irq, } } @@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde /* transmission complete interrupt */ if (reg_iflag_tx & priv->tx_mask) { -@@ -948,7 +961,7 @@ static irqreturn_t flexcan_irq(int irq, +@@ -954,7 +967,7 @@ static irqreturn_t flexcan_irq(int irq, /* after sending a RTR frame MB is in RX mode */ priv->write(FLEXCAN_MB_CODE_TX_INACTIVE, &priv->tx_mb->can_ctrl); diff --git a/target/linux/layerscape/patches-5.4/802-can-0017-can-flexcan-flexcan_mailbox_read-make-use-of-flexcan.patch b/target/linux/layerscape/patches-5.4/802-can-0017-can-flexcan-flexcan_mailbox_read-make-use-of-flexcan.patch index 0300137017..b94992fac5 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0017-can-flexcan-flexcan_mailbox_read-make-use-of-flexcan.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0017-can-flexcan-flexcan_mailbox_read-make-use-of-flexcan.patch @@ -16,7 +16,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -885,15 +885,10 @@ static struct sk_buff *flexcan_mailbox_r +@@ -891,15 +891,10 @@ static struct sk_buff *flexcan_mailbox_r } mark_as_read: diff --git a/target/linux/layerscape/patches-5.4/802-can-0018-can-flexcan-use-struct-canfd_frame-for-CAN-classic-f.patch b/target/linux/layerscape/patches-5.4/802-can-0018-can-flexcan-use-struct-canfd_frame-for-CAN-classic-f.patch index 45febf9646..1f4515ab7e 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0018-can-flexcan-use-struct-canfd_frame-for-CAN-classic-f.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0018-can-flexcan-use-struct-canfd_frame-for-CAN-classic-f.patch @@ -15,7 +15,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -629,10 +629,10 @@ static int flexcan_get_berr_counter(cons +@@ -635,10 +635,10 @@ static int flexcan_get_berr_counter(cons static netdev_tx_t flexcan_start_xmit(struct sk_buff *skb, struct net_device *dev) { const struct flexcan_priv *priv = netdev_priv(dev); @@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde int i; if (can_dropped_invalid_skb(dev, skb)) -@@ -640,18 +640,18 @@ static netdev_tx_t flexcan_start_xmit(st +@@ -646,18 +646,18 @@ static netdev_tx_t flexcan_start_xmit(st netif_stop_queue(dev); @@ -53,7 +53,7 @@ Signed-off-by: Marc Kleine-Budde priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]); } -@@ -823,7 +823,7 @@ static struct sk_buff *flexcan_mailbox_r +@@ -829,7 +829,7 @@ static struct sk_buff *flexcan_mailbox_r struct flexcan_regs __iomem *regs = priv->regs; struct flexcan_mb __iomem *mb; struct sk_buff *skb; @@ -62,7 +62,7 @@ Signed-off-by: Marc Kleine-Budde u32 reg_ctrl, reg_id, reg_iflag1; int i; -@@ -860,8 +860,8 @@ static struct sk_buff *flexcan_mailbox_r +@@ -866,8 +866,8 @@ static struct sk_buff *flexcan_mailbox_r reg_ctrl = priv->read(&mb->can_ctrl); } @@ -73,7 +73,7 @@ Signed-off-by: Marc Kleine-Budde skb = ERR_PTR(-ENOMEM); goto mark_as_read; } -@@ -871,17 +871,17 @@ static struct sk_buff *flexcan_mailbox_r +@@ -877,17 +877,17 @@ static struct sk_buff *flexcan_mailbox_r reg_id = priv->read(&mb->can_id); if (reg_ctrl & FLEXCAN_MB_CNT_IDE) diff --git a/target/linux/layerscape/patches-5.4/802-can-0019-can-flexcan-add-CAN-FD-mode-support.patch b/target/linux/layerscape/patches-5.4/802-can-0019-can-flexcan-add-CAN-FD-mode-support.patch index d8b9b1e5d6..ee0dbd179e 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0019-can-flexcan-add-CAN-FD-mode-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0019-can-flexcan-add-CAN-FD-mode-support.patch @@ -124,7 +124,7 @@ Signed-off-by: Marc Kleine-Budde /* FlexCAN module is essentially modelled as a little-endian IP in most * SoCs, i.e the registers as well as the message buffer areas are * implemented in a little-endian fashion. -@@ -632,7 +686,7 @@ static netdev_tx_t flexcan_start_xmit(st +@@ -638,7 +692,7 @@ static netdev_tx_t flexcan_start_xmit(st struct canfd_frame *cfd = (struct canfd_frame *)skb->data; u32 can_id; u32 data; @@ -133,7 +133,7 @@ Signed-off-by: Marc Kleine-Budde int i; if (can_dropped_invalid_skb(dev, skb)) -@@ -650,6 +704,9 @@ static netdev_tx_t flexcan_start_xmit(st +@@ -656,6 +710,9 @@ static netdev_tx_t flexcan_start_xmit(st if (cfd->can_id & CAN_RTR_FLAG) ctrl |= FLEXCAN_MB_CNT_RTR; @@ -143,7 +143,7 @@ Signed-off-by: Marc Kleine-Budde for (i = 0; i < cfd->len; i += sizeof(u32)) { data = be32_to_cpup((__be32 *)&cfd->data[i]); priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]); -@@ -860,7 +917,10 @@ static struct sk_buff *flexcan_mailbox_r +@@ -866,7 +923,10 @@ static struct sk_buff *flexcan_mailbox_r reg_ctrl = priv->read(&mb->can_ctrl); } @@ -155,7 +155,7 @@ Signed-off-by: Marc Kleine-Budde if (unlikely(!skb)) { skb = ERR_PTR(-ENOMEM); goto mark_as_read; -@@ -875,9 +935,17 @@ static struct sk_buff *flexcan_mailbox_r +@@ -881,9 +941,17 @@ static struct sk_buff *flexcan_mailbox_r else cfd->can_id = (reg_id >> 18) & CAN_SFF_MASK; @@ -176,7 +176,7 @@ Signed-off-by: Marc Kleine-Budde for (i = 0; i < cfd->len; i += sizeof(u32)) { __be32 data = cpu_to_be32(priv->read(&mb->data[i / sizeof(u32)])); -@@ -1022,27 +1090,14 @@ static irqreturn_t flexcan_irq(int irq, +@@ -1028,27 +1096,14 @@ static irqreturn_t flexcan_irq(int irq, static void flexcan_set_bittiming(struct net_device *dev) { @@ -209,7 +209,7 @@ Signed-off-by: Marc Kleine-Budde if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK) reg |= FLEXCAN_CTRL_LPB; if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) -@@ -1053,9 +1108,102 @@ static void flexcan_set_bittiming(struct +@@ -1059,9 +1114,102 @@ static void flexcan_set_bittiming(struct netdev_dbg(dev, "writing ctrl=0x%08x\n", reg); priv->write(reg, ®s->ctrl); @@ -315,7 +315,7 @@ Signed-off-by: Marc Kleine-Budde } /* flexcan_chip_start -@@ -1067,7 +1215,7 @@ static int flexcan_chip_start(struct net +@@ -1073,7 +1221,7 @@ static int flexcan_chip_start(struct net { struct flexcan_priv *priv = netdev_priv(dev); struct flexcan_regs __iomem *regs = priv->regs; @@ -324,7 +324,7 @@ Signed-off-by: Marc Kleine-Budde u64 reg_imask; int err, i; struct flexcan_mb __iomem *mb; -@@ -1166,6 +1314,26 @@ static int flexcan_chip_start(struct net +@@ -1172,6 +1320,26 @@ static int flexcan_chip_start(struct net netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl); priv->write(reg_ctrl, ®s->ctrl); @@ -351,7 +351,7 @@ Signed-off-by: Marc Kleine-Budde if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) { reg_ctrl2 = priv->read(®s->ctrl2); reg_ctrl2 |= FLEXCAN_CTRL2_EACEN | FLEXCAN_CTRL2_RRS; -@@ -1306,6 +1474,12 @@ static int flexcan_open(struct net_devic +@@ -1312,6 +1480,12 @@ static int flexcan_open(struct net_devic struct flexcan_priv *priv = netdev_priv(dev); int err; @@ -364,7 +364,7 @@ Signed-off-by: Marc Kleine-Budde err = pm_runtime_get_sync(priv->dev); if (err < 0) { pm_runtime_put_noidle(priv->dev); -@@ -1324,7 +1498,10 @@ static int flexcan_open(struct net_devic +@@ -1330,7 +1504,10 @@ static int flexcan_open(struct net_devic if (err) goto out_transceiver_disable; @@ -376,7 +376,7 @@ Signed-off-by: Marc Kleine-Budde priv->mb_count = (sizeof(priv->regs->mb[0]) / priv->mb_size) + (sizeof(priv->regs->mb[1]) / priv->mb_size); -@@ -1676,6 +1853,18 @@ static int flexcan_probe(struct platform +@@ -1682,6 +1859,18 @@ static int flexcan_probe(struct platform priv->devtype_data = devtype_data; priv->reg_xceiver = reg_xceiver; diff --git a/target/linux/layerscape/patches-5.4/802-can-0020-can-flexcan-add-CAN-FD-BRS-support.patch b/target/linux/layerscape/patches-5.4/802-can-0020-can-flexcan-add-CAN-FD-BRS-support.patch index 1c6476e03a..28e58ade3f 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0020-can-flexcan-add-CAN-FD-BRS-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0020-can-flexcan-add-CAN-FD-BRS-support.patch @@ -13,7 +13,7 @@ Signed-off-by: Marc Kleine-Budde --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c -@@ -704,9 +704,13 @@ static netdev_tx_t flexcan_start_xmit(st +@@ -710,9 +710,13 @@ static netdev_tx_t flexcan_start_xmit(st if (cfd->can_id & CAN_RTR_FLAG) ctrl |= FLEXCAN_MB_CNT_RTR; @@ -28,7 +28,7 @@ Signed-off-by: Marc Kleine-Budde for (i = 0; i < cfd->len; i += sizeof(u32)) { data = be32_to_cpup((__be32 *)&cfd->data[i]); priv->write(data, &priv->tx_mb->data[i / sizeof(u32)]); -@@ -937,6 +941,9 @@ static struct sk_buff *flexcan_mailbox_r +@@ -943,6 +947,9 @@ static struct sk_buff *flexcan_mailbox_r if (reg_ctrl & FLEXCAN_MB_CNT_EDL) { cfd->len = can_dlc2len(get_canfd_dlc((reg_ctrl >> 16) & 0xf)); diff --git a/target/linux/layerscape/patches-5.4/802-can-0021-can-flexcan-add-ISO-CAN-FD-feature-support.patch b/target/linux/layerscape/patches-5.4/802-can-0021-can-flexcan-add-ISO-CAN-FD-feature-support.patch index 3ff0d65d11..33459923fa 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0021-can-flexcan-add-ISO-CAN-FD-feature-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0021-can-flexcan-add-ISO-CAN-FD-feature-support.patch @@ -31,7 +31,7 @@ Signed-off-by: Marc Kleine-Budde /* FLEXCAN memory error control register (MECR) bits */ #define FLEXCAN_MECR_ECRWRDIS BIT(31) -@@ -1326,6 +1327,7 @@ static int flexcan_chip_start(struct net +@@ -1332,6 +1333,7 @@ static int flexcan_chip_start(struct net reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE; reg_fdctrl &= ~(FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3)); reg_mcr = priv->read(®s->mcr) & ~FLEXCAN_MCR_FDEN; @@ -39,7 +39,7 @@ Signed-off-by: Marc Kleine-Budde /* support BRS when set CAN FD mode * 64 bytes payload per MB and 7 MBs per RAM block by default -@@ -1335,10 +1337,14 @@ static int flexcan_chip_start(struct net +@@ -1341,10 +1343,14 @@ static int flexcan_chip_start(struct net reg_fdctrl |= FLEXCAN_FDCTRL_FDRATE; reg_fdctrl |= FLEXCAN_FDCTRL_MBDSR1(0x3) | FLEXCAN_FDCTRL_MBDSR0(0x3); reg_mcr |= FLEXCAN_MCR_FDEN; @@ -54,7 +54,7 @@ Signed-off-by: Marc Kleine-Budde } if ((priv->devtype_data->quirks & FLEXCAN_QUIRK_ENABLE_EACEN_RRS)) { -@@ -1862,7 +1868,7 @@ static int flexcan_probe(struct platform +@@ -1868,7 +1874,7 @@ static int flexcan_probe(struct platform if (priv->devtype_data->quirks & FLEXCAN_QUIRK_TIMESTAMP_SUPPORT_FD) { if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) { diff --git a/target/linux/layerscape/patches-5.4/802-can-0022-can-flexcan-add-Transceiver-Delay-Compensation-suopp.patch b/target/linux/layerscape/patches-5.4/802-can-0022-can-flexcan-add-Transceiver-Delay-Compensation-suopp.patch index 7efa29e1d0..26dbb02c79 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0022-can-flexcan-add-Transceiver-Delay-Compensation-suopp.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0022-can-flexcan-add-Transceiver-Delay-Compensation-suopp.patch @@ -31,7 +31,7 @@ Signed-off-by: Marc Kleine-Budde /* FLEXCAN FD Bit Timing register (FDCBT) bits */ #define FLEXCAN_FDCBT_FPRESDIV(x) (((x) & 0x3ff) << 20) -@@ -1102,7 +1105,7 @@ static void flexcan_set_bittiming(struct +@@ -1108,7 +1111,7 @@ static void flexcan_set_bittiming(struct struct can_bittiming *bt = &priv->can.bittiming; struct can_bittiming *dbt = &priv->can.data_bittiming; struct flexcan_regs __iomem *regs = priv->regs; @@ -40,7 +40,7 @@ Signed-off-by: Marc Kleine-Budde reg = priv->read(®s->ctrl); reg &= ~(FLEXCAN_CTRL_LPB | FLEXCAN_CTRL_SMP | FLEXCAN_CTRL_LOM); -@@ -1174,6 +1177,19 @@ static void flexcan_set_bittiming(struct +@@ -1180,6 +1183,19 @@ static void flexcan_set_bittiming(struct FLEXCAN_FDCBT_FPROPSEG(dbt->prop_seg); priv->write(reg_fdcbt, ®s->fdcbt); @@ -60,7 +60,7 @@ Signed-off-by: Marc Kleine-Budde if (bt->brp != dbt->brp) netdev_warn(dev, "Warning!! data brp = %d and brp = %d don't match.\n" "flexcan may not work. consider using different bitrate or data bitrate\n", -@@ -1325,6 +1341,7 @@ static int flexcan_chip_start(struct net +@@ -1331,6 +1347,7 @@ static int flexcan_chip_start(struct net /* FDCTRL */ if (priv->can.ctrlmode_supported & CAN_CTRLMODE_FD) { reg_fdctrl = priv->read(®s->fdctrl) & ~FLEXCAN_FDCTRL_FDRATE; diff --git a/target/linux/layerscape/patches-5.4/802-can-0023-can-flexcan-add-imx8qm-support.patch b/target/linux/layerscape/patches-5.4/802-can-0023-can-flexcan-add-imx8qm-support.patch index aacf2782e0..16a224faf0 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0023-can-flexcan-add-imx8qm-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0023-can-flexcan-add-imx8qm-support.patch @@ -52,7 +52,7 @@ Signed-off-by: Marc Kleine-Budde static const struct flexcan_devtype_data fsl_vf610_devtype_data = { .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS | FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP | -@@ -1769,6 +1776,7 @@ out_put_node: +@@ -1775,6 +1782,7 @@ out_put_node: } static const struct of_device_id flexcan_of_match[] = { diff --git a/target/linux/layerscape/patches-5.4/802-can-0024-can-flexcan-add-lx2160ar1-support.patch b/target/linux/layerscape/patches-5.4/802-can-0024-can-flexcan-add-lx2160ar1-support.patch index 1fc212d1b7..c4737398bf 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0024-can-flexcan-add-lx2160ar1-support.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0024-can-flexcan-add-lx2160ar1-support.patch @@ -35,7 +35,7 @@ Signed-off-by: Marc Kleine-Budde static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = { .quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS | FLEXCAN_QUIRK_BROKEN_PERR_STATE | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP, -@@ -1785,6 +1792,7 @@ static const struct of_device_id flexcan +@@ -1791,6 +1798,7 @@ static const struct of_device_id flexcan { .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, }, { .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, }, { .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, }, diff --git a/target/linux/layerscape/patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch b/target/linux/layerscape/patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch index 85164096f3..b8349e6d6d 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0025-can-flexcan-add-LPSR-mode-support-for-i.MX7D.patch @@ -28,7 +28,7 @@ Signed-off-by: Joakim Zhang #include #define DRV_NAME "flexcan" -@@ -1965,9 +1966,7 @@ static int __maybe_unused flexcan_suspen +@@ -1971,9 +1972,7 @@ static int __maybe_unused flexcan_suspen if (err) return err; } else { @@ -39,7 +39,7 @@ Signed-off-by: Joakim Zhang } netif_stop_queue(dev); netif_device_detach(dev); -@@ -1993,7 +1992,9 @@ static int __maybe_unused flexcan_resume +@@ -1999,7 +1998,9 @@ static int __maybe_unused flexcan_resume if (err) return err; } else { diff --git a/target/linux/layerscape/patches-5.4/802-can-0026-can-flexcan-fix-deadlock-when-using-self-wakeup.patch b/target/linux/layerscape/patches-5.4/802-can-0026-can-flexcan-fix-deadlock-when-using-self-wakeup.patch index a17133280f..2d55cb9401 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0026-can-flexcan-fix-deadlock-when-using-self-wakeup.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0026-can-flexcan-fix-deadlock-when-using-self-wakeup.patch @@ -47,7 +47,7 @@ Signed-off-by: Joakim Zhang /* FLEXCAN Bit Timing register (CBT) bits */ #define FLEXCAN_CBT_BTF BIT(31) -@@ -1056,6 +1055,12 @@ static irqreturn_t flexcan_irq(int irq, +@@ -1062,6 +1061,12 @@ static irqreturn_t flexcan_irq(int irq, reg_esr = priv->read(®s->esr); diff --git a/target/linux/layerscape/patches-5.4/802-can-0027-can-flexcan-add-CAN-wakeup-function-for-i.MX8.patch b/target/linux/layerscape/patches-5.4/802-can-0027-can-flexcan-add-CAN-wakeup-function-for-i.MX8.patch index c3c43394ff..29104bd14e 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0027-can-flexcan-add-CAN-wakeup-function-for-i.MX8.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0027-can-flexcan-add-CAN-wakeup-function-for-i.MX8.patch @@ -126,7 +126,7 @@ Signed-off-by: Joakim Zhang reg_mcr = priv->read(®s->mcr); -@@ -1776,11 +1820,6 @@ static int flexcan_setup_stop_mode(struc +@@ -1782,11 +1826,6 @@ static int flexcan_setup_stop_mode(struc gpr_np->full_name, priv->stm.req_gpr, priv->stm.req_bit, priv->stm.ack_gpr, priv->stm.ack_bit); @@ -138,7 +138,7 @@ Signed-off-by: Joakim Zhang return 0; out_put_node: -@@ -1788,6 +1827,30 @@ out_put_node: +@@ -1794,6 +1833,30 @@ out_put_node: return ret; } @@ -169,7 +169,7 @@ Signed-off-by: Joakim Zhang static const struct of_device_id flexcan_of_match[] = { { .compatible = "fsl,imx8qm-flexcan", .data = &fsl_imx8qm_devtype_data, }, { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, }, -@@ -1930,9 +1993,19 @@ static int flexcan_probe(struct platform +@@ -1936,9 +1999,19 @@ static int flexcan_probe(struct platform devm_can_led_init(dev); if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SETUP_STOP_MODE) { diff --git a/target/linux/layerscape/patches-5.4/802-can-0028-can-flexcan-Add-S32V234-support-to-FlexCAN-driver.patch b/target/linux/layerscape/patches-5.4/802-can-0028-can-flexcan-Add-S32V234-support-to-FlexCAN-driver.patch index 657082caec..b12534c8d3 100644 --- a/target/linux/layerscape/patches-5.4/802-can-0028-can-flexcan-Add-S32V234-support-to-FlexCAN-driver.patch +++ b/target/linux/layerscape/patches-5.4/802-can-0028-can-flexcan-Add-S32V234-support-to-FlexCAN-driver.patch @@ -36,7 +36,7 @@ Reviewed-by: Leonard Crestez static const struct can_bittiming_const flexcan_bittiming_const = { .name = DRV_NAME, .tseg1_min = 4, -@@ -1862,6 +1867,8 @@ static const struct of_device_id flexcan +@@ -1868,6 +1873,8 @@ static const struct of_device_id flexcan { .compatible = "fsl,vf610-flexcan", .data = &fsl_vf610_devtype_data, }, { .compatible = "fsl,ls1021ar2-flexcan", .data = &fsl_ls1021a_r2_devtype_data, }, { .compatible = "fsl,lx2160ar1-flexcan", .data = &fsl_lx2160a_r1_devtype_data, }, diff --git a/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch b/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch index 6dfa6f6a56..4c939e8017 100644 --- a/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch +++ b/target/linux/mediatek/patches-5.4/0601-net-dsa-propagate-resolved-link-config-via-mac_link_.patch @@ -12,7 +12,7 @@ Signed-off-by: David S. Miller --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -1291,7 +1291,9 @@ EXPORT_SYMBOL(b53_phylink_mac_link_down) +@@ -1284,7 +1284,9 @@ EXPORT_SYMBOL(b53_phylink_mac_link_down) void b53_phylink_mac_link_up(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface, @@ -38,7 +38,7 @@ Signed-off-by: David S. Miller const struct switchdev_obj_port_vlan *vlan); --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c -@@ -634,7 +634,9 @@ static void bcm_sf2_sw_mac_link_down(str +@@ -636,7 +636,9 @@ static void bcm_sf2_sw_mac_link_down(str static void bcm_sf2_sw_mac_link_up(struct dsa_switch *ds, int port, unsigned int mode, phy_interface_t interface, diff --git a/target/linux/rockchip/patches-5.4/002-net-usb-r8152-add-LED-configuration-from-OF.patch b/target/linux/rockchip/patches-5.4/002-net-usb-r8152-add-LED-configuration-from-OF.patch index 53b6413cf3..69b5000177 100644 --- a/target/linux/rockchip/patches-5.4/002-net-usb-r8152-add-LED-configuration-from-OF.patch +++ b/target/linux/rockchip/patches-5.4/002-net-usb-r8152-add-LED-configuration-from-OF.patch @@ -22,7 +22,7 @@ Signed-off-by: David Bauer #include #include #include -@@ -4363,6 +4364,22 @@ static void rtl_tally_reset(struct r8152 +@@ -4335,6 +4336,22 @@ static void rtl_tally_reset(struct r8152 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); } @@ -45,7 +45,7 @@ Signed-off-by: David Bauer static void r8152b_init(struct r8152 *tp) { u32 ocp_data; -@@ -4404,6 +4421,8 @@ static void r8152b_init(struct r8152 *tp +@@ -4376,6 +4393,8 @@ static void r8152b_init(struct r8152 *tp ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); @@ -54,7 +54,7 @@ Signed-off-by: David Bauer } static void r8153_init(struct r8152 *tp) -@@ -4533,6 +4552,8 @@ static void r8153_init(struct r8152 *tp) +@@ -4510,6 +4529,8 @@ static void r8153_init(struct r8152 *tp) tp->coalesce = COALESCE_SLOW; break; } @@ -63,7 +63,7 @@ Signed-off-by: David Bauer } static void r8153b_init(struct r8152 *tp) -@@ -4609,6 +4630,8 @@ static void r8153b_init(struct r8152 *tp +@@ -4586,6 +4607,8 @@ static void r8153b_init(struct r8152 *tp rtl_tally_reset(tp); tp->coalesce = 15000; /* 15 us */ From c8c638a19b63bf6c3bf8094aebd8fde6feda36ba Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Sun, 28 Mar 2021 01:12:22 -0700 Subject: [PATCH 18/50] bpftools: drop unneeded libintl linking for NLS There is no direct linking of libintl from bpftools, only secondary linking through libelf, so remove "-lintl" from TARGET_LDFLAGS. Fixes: 5582fbd6135f ("bpftools: support NLS, fix ppc build and update to 5.8.9") Signed-off-by: Tony Ambardar --- package/network/utils/bpftools/Makefile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/package/network/utils/bpftools/Makefile b/package/network/utils/bpftools/Makefile index 15bed2d89e..9955d361f4 100644 --- a/package/network/utils/bpftools/Makefile +++ b/package/network/utils/bpftools/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=bpftools PKG_VERSION:=5.11.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=linux-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/kernel/v5.x @@ -93,10 +93,6 @@ ifneq ($(BUILD_VARIANT),lib) TARGET_LDFLAGS += -Wl,--gc-sections endif -ifneq ($(INTL_FULL),) - TARGET_LDFLAGS += -Wl,-lintl -endif - MAKE_FLAGS += \ EXTRA_CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" \ From 9a59f62f613b1ca774032ccd80c51c74491b142c Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Sun, 28 Mar 2021 00:40:31 -0700 Subject: [PATCH 19/50] binutils: fix libbfd missing DSO dependency if NLS enabled The libbfd package definition uses $(ICONV_DEPENDS) and $(INTL_DEPENDS) but links against neither, leading to libbfd detection failures in other packages (e.g. bpftools) and on-target relocation problems with libintl.so: root@OpenWrt:/# ldd /usr/lib/libbfd.so ldd (0x77db6000) libc.so => ldd (0x77db6000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77c6d000) Error relocating /usr/lib/libbfd.so: libintl_dgettext: symbol not found Add NLS-conditional linking of "libintl" to fix this. Also remove libbfd package dependency $(ICONV_DEPENDS) which is not used during building or linking. Tested with QEMU on malta/be32, after building all packages from binutils, bpftools and iproute2, using different libc options musl and glibc. Fixes: 08e817569630 ("binutils: use nls.mk to fix libbfd link errors in other packages") Signed-off-by: Tony Ambardar --- package/devel/binutils/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package/devel/binutils/Makefile b/package/devel/binutils/Makefile index 23f1ea9c25..790fb1e91a 100644 --- a/package/devel/binutils/Makefile +++ b/package/devel/binutils/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=binutils PKG_VERSION:=2.35.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE_URL:=@GNU/binutils PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz @@ -34,7 +34,7 @@ define Package/libbfd SECTION:=libs CATEGORY:=Libraries TITLE:=libbfd - DEPENDS:=+zlib $(ICONV_DEPENDS) $(INTL_DEPENDS) + DEPENDS:=+zlib $(INTL_DEPENDS) endef define Package/libctf @@ -79,6 +79,8 @@ endef TARGET_CFLAGS += $(FPIC) -Wno-unused-value +TARGET_LDFLAGS += $(if $(INTL_FULL),-lintl) + CONFIGURE_ARGS += \ --host=$(REAL_GNU_TARGET_NAME) \ --target=$(REAL_GNU_TARGET_NAME) \ From aab3a04ce87c27996b7ce9ea306db8c6eed86941 Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Sat, 27 Mar 2021 05:43:03 -0700 Subject: [PATCH 20/50] iproute2: fix libbpf detection with NLS enabled Upstream iproute2 detects libbpf using a one-line $CC test-compile, which normally ignores LDFLAGS. With NLS enabled however, LDFLAGS includes an "rpath-link" linker option needed to resolve libintl.so. Its absence causes both the compile and libbpf detection to fail: ld: warning: libintl.so.8, needed by libbpf.so, not found (try using -rpath or -rpath-link) ld: libelf.so.1: undefined reference to `libintl_dgettext' collect2: error: ld returned 1 exit status Fix this by directly including $LDFLAGS in the test-compile command. Reported-by: Ian Cooper Signed-off-by: Tony Ambardar --- package/network/utils/iproute2/Makefile | 2 +- .../patches/190-fix-nls-rpath-link.patch | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index b1a137c18f..d7a7b3ed0f 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 PKG_VERSION:=5.11.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 diff --git a/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch new file mode 100644 index 0000000000..d0f8cec633 --- /dev/null +++ b/package/network/utils/iproute2/patches/190-fix-nls-rpath-link.patch @@ -0,0 +1,20 @@ +--- a/configure ++++ b/configure +@@ -259,7 +259,7 @@ int main(int argc, char **argv) { + } + EOF + +- $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1 ++ $CC -o $TMPDIR/libbpf_test $TMPDIR/libbpf_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1 + local ret=$? + + rm -f $TMPDIR/libbpf_test.c $TMPDIR/libbpf_test +@@ -277,7 +277,7 @@ int main(int argc, char **argv) { + } + EOF + +- $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS >/dev/null 2>&1 ++ $CC -o $TMPDIR/libbpf_sec_test $TMPDIR/libbpf_sec_test.c $LIBBPF_CFLAGS $LIBBPF_LDLIBS $LDFLAGS >/dev/null 2>&1 + local ret=$? + + rm -f $TMPDIR/libbpf_sec_test.c $TMPDIR/libbpf_sec_test From 9318f61556c5443eb66eec7e26715b00f0df86fc Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Sun, 28 Mar 2021 10:45:08 +0200 Subject: [PATCH 21/50] base-files: fix status display command If service() is called w/o parameter then the status display for services with multiple instances is incorrect. E.g. samba4 or wpad have 2 instances. root@OpenWrt:~# /etc/init.d/samba4 status running root@OpenWrt:~# /etc/init.d/wpad status running Before change: /etc/init.d/samba4 enabled stopped /etc/init.d/wpad enabled stopped After change: /etc/init.d/samba4 enabled running /etc/init.d/wpad enabled running Signed-off-by: Alexander Egorenkov --- package/base-files/files/etc/shinit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/base-files/files/etc/shinit b/package/base-files/files/etc/shinit index 8c64e81563..0a1ebcc832 100644 --- a/package/base-files/files/etc/shinit +++ b/package/base-files/files/etc/shinit @@ -22,7 +22,7 @@ service() { printf "%-30s\t%10s\t%10s\n" "$F" \ $( $($F enabled) && echo "enabled" || echo "disabled" ) \ $( [ "$(ubus call service list "{ 'verbose': true, 'name': '$(basename $F)' }" \ - | jsonfilter -q -e "@.$(basename $F).instances[*].running")" = "true" ] \ + | jsonfilter -q -e "@.$(basename $F).instances[*].running" | uniq)" = "true" ] \ && echo "running" || echo "stopped" ) done; return 1 From 1cadd8fb786fe9eadf906c865c47742b56dcf9a9 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Fri, 5 Mar 2021 00:51:04 +0100 Subject: [PATCH 22/50] armvirt: refresh 5.4 config This was done by executing these commands: $ make kernel_oldconfig CONFIG_TARGET=subtarget $ make kernel_oldconfig CONFIG_TARGET=subtarget_platform Signed-off-by: Aleksander Jan Bajkowski --- target/linux/armvirt/32/config-5.4 | 34 ++------- target/linux/armvirt/64/config-5.4 | 107 ++--------------------------- target/linux/armvirt/config-5.4 | 76 -------------------- 3 files changed, 14 insertions(+), 203 deletions(-) diff --git a/target/linux/armvirt/32/config-5.4 b/target/linux/armvirt/32/config-5.4 index 33f02e8bb3..204816bc0a 100644 --- a/target/linux/armvirt/32/config-5.4 +++ b/target/linux/armvirt/32/config-5.4 @@ -1,10 +1,5 @@ CONFIG_ALIGNMENT_TRAP=y CONFIG_ARCH_32BIT_OFF_T=y -# CONFIG_ARCH_AXXIA is not set -CONFIG_ARCH_HAS_BINFMT_FLAT=y -CONFIG_ARCH_HAS_PHYS_TO_DMA=y -CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y -CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_ARCH_MULTIPLATFORM=y CONFIG_ARCH_MULTI_V6_V7=y @@ -12,11 +7,7 @@ CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_NR_GPIO=0 CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y -CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_VIRT=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_ARM=y CONFIG_ARM_CPU_SUSPEND=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -28,7 +19,6 @@ CONFIG_ARM_PATCH_IDIV=y CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_ARM_PSCI=y CONFIG_ARM_THUMB=y -# CONFIG_ARM_THUMBEE is not set CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y CONFIG_AUTO_ZRELADDR=y @@ -38,31 +28,25 @@ CONFIG_COMPAT_32BIT_TIME=y CONFIG_CPU_32v6K=y CONFIG_CPU_32v7=y CONFIG_CPU_ABRT_EV7=y -# CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_CPU_CACHE_V7=y CONFIG_CPU_CACHE_VIPT=y CONFIG_CPU_COPY_V6=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y CONFIG_CPU_HAS_ASID=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set CONFIG_CPU_PABRT_V7=y CONFIG_CPU_SPECTRE=y CONFIG_CPU_THUMB_CAPABLE=y CONFIG_CPU_TLB_V7=y CONFIG_CPU_V7=y CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -# CONFIG_DEBUG_USER is not set +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_HAVE_ARM_ARCH_TIMER=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_HAVE_IDE=y -CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y -CONFIG_HAVE_OPROFILE=y -CONFIG_HAVE_OPTPROBES=y -CONFIG_HAVE_PROC_CPU=y +CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_HAVE_SMP=y +CONFIG_HZ=100 +CONFIG_HZ_100=y CONFIG_HZ_FIXED=0 CONFIG_HZ_PERIODIC=y CONFIG_MIGHT_HAVE_CACHE_L2X0=y @@ -70,22 +54,18 @@ CONFIG_MODULES_USE_ELF_REL=y CONFIG_NEON=y CONFIG_NR_CPUS=4 CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y CONFIG_OUTER_CACHE=y CONFIG_OUTER_CACHE_SYNC=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PERF_USE_VMALLOC=y -# CONFIG_PL310_ERRATA_588369 is not set -# CONFIG_PL310_ERRATA_727915 is not set -# CONFIG_PL310_ERRATA_753970 is not set -# CONFIG_PL310_ERRATA_769419 is not set +CONFIG_RTC_MC146818_LIB=y CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SMP_ON_UP=y CONFIG_SWP_EMULATE=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_THUMB2_KERNEL is not set CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_UNWINDER_ARM=y -# CONFIG_UNWINDER_FRAME_POINTER is not set CONFIG_USE_OF=y CONFIG_VFP=y CONFIG_VFPv3=y diff --git a/target/linux/armvirt/64/config-5.4 b/target/linux/armvirt/64/config-5.4 index 28c62871f9..f5ac3cc453 100644 --- a/target/linux/armvirt/64/config-5.4 +++ b/target/linux/armvirt/64/config-5.4 @@ -1,42 +1,4 @@ CONFIG_64BIT=y -# CONFIG_ARCH_AGILEX is not set -# CONFIG_ARCH_BITMAIN is not set -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y -CONFIG_ARCH_HAS_FAST_MULTIPLIER=y -CONFIG_ARCH_HAS_GIGANTIC_PAGE=y -CONFIG_ARCH_HAS_PTE_DEVMAP=y -CONFIG_ARCH_HAS_SET_DIRECT_MAP=y -CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y -CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y -CONFIG_ARCH_INLINE_READ_LOCK=y -CONFIG_ARCH_INLINE_READ_LOCK_BH=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_READ_UNLOCK=y -CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_SPIN_LOCK=y -CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y -CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_ARCH_INLINE_WRITE_LOCK=y -CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y -CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y CONFIG_ARCH_MMAP_RND_BITS=18 CONFIG_ARCH_MMAP_RND_BITS_MAX=24 CONFIG_ARCH_MMAP_RND_BITS_MIN=18 @@ -45,20 +7,9 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y -CONFIG_ARCH_SUPPORTS_INT128=y -CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y -CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -CONFIG_ARCH_USE_QUEUED_RWLOCKS=y -CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_ARCH_VEXPRESS=y -CONFIG_ARCH_WANT_FRAME_POINTERS=y -CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARM64=y -# CONFIG_ARM64_16K_PAGES is not set CONFIG_ARM64_4K_PAGES=y -# CONFIG_ARM64_64K_PAGES is not set CONFIG_ARM64_CNP=y CONFIG_ARM64_CONT_SHIFT=4 CONFIG_ARM64_CRYPTO=y @@ -76,18 +27,13 @@ CONFIG_ARM64_PAGE_SHIFT=12 CONFIG_ARM64_PAN=y CONFIG_ARM64_PA_BITS=48 CONFIG_ARM64_PA_BITS_48=y -# CONFIG_ARM64_PMEM is not set -# CONFIG_ARM64_PSEUDO_NMI is not set -# CONFIG_ARM64_PTDUMP_DEBUGFS is not set CONFIG_ARM64_PTR_AUTH=y -# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set CONFIG_ARM64_SSBD=y CONFIG_ARM64_SVE=y CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_ARM64_UAO=y CONFIG_ARM64_VA_BITS=39 CONFIG_ARM64_VA_BITS_39=y -# CONFIG_ARM64_VA_BITS_48 is not set CONFIG_ARM64_VHE=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y @@ -111,11 +57,13 @@ CONFIG_CRYPTO_AES_ARM64_CE=y CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y CONFIG_CRYPTO_CHACHA20=y CONFIG_CRYPTO_CHACHA20_NEON=y CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA256_ARM64=y @@ -123,6 +71,8 @@ CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA512_ARM64=y CONFIG_CRYPTO_SIMD=y CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DRM=y CONFIG_DRM_BOCHS=y @@ -130,14 +80,12 @@ CONFIG_DRM_BRIDGE=y CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_PANEL=y CONFIG_DRM_PANEL_BRIDGE=y -# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_QXL=y CONFIG_DRM_RCAR_WRITEBACK=y CONFIG_DRM_TTM=y CONFIG_DRM_VIRTIO_GPU=y CONFIG_DRM_VRAM_HELPER=y -CONFIG_EFI_EARLYCON=y CONFIG_FB=y CONFIG_FB_ARMCLCD=y CONFIG_FB_CFB_COPYAREA=y @@ -146,9 +94,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CMDLINE=y CONFIG_FB_MODE_HELPERS=y # CONFIG_FLATMEM_MANUAL is not set -CONFIG_FONT_8x16=y -CONFIG_FONT_AUTOSELECT=y -CONFIG_FONT_SUPPORT=y +CONFIG_FRAME_POINTER=y CONFIG_FSL_ERRATUM_A008585=y CONFIG_FUJITSU_ERRATUM_010001=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y @@ -158,54 +104,18 @@ CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIO_GENERIC=y CONFIG_GPIO_GENERIC_PLATFORM=y -CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y -CONFIG_HAVE_ARCH_HUGE_VMAP=y -CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y -CONFIG_HAVE_ARCH_KASAN=y -CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y -CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_HAVE_ARCH_STACKLEAK=y -CONFIG_HAVE_ARCH_VMAP_STACK=y -CONFIG_HAVE_ASM_MODVERSIONS=y -CONFIG_HAVE_CMPXCHG_DOUBLE=y -CONFIG_HAVE_CMPXCHG_LOCAL=y -CONFIG_HAVE_DEBUG_BUGVERBOSE=y -CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y -CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y -CONFIG_HAVE_GENERIC_VDSO=y -CONFIG_HAVE_MEMORY_PRESENT=y -CONFIG_HAVE_PATA_PLATFORM=y CONFIG_HDMI=y CONFIG_HOLES_IN_ZONE=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_HZ=250 +CONFIG_HZ_250=y CONFIG_I2C=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_BOARDINFO=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_INLINE_READ_LOCK=y -CONFIG_INLINE_READ_LOCK_BH=y -CONFIG_INLINE_READ_LOCK_IRQ=y -CONFIG_INLINE_READ_LOCK_IRQSAVE=y -CONFIG_INLINE_READ_UNLOCK_BH=y -CONFIG_INLINE_READ_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_SPIN_LOCK=y -CONFIG_INLINE_SPIN_LOCK_BH=y -CONFIG_INLINE_SPIN_LOCK_IRQ=y -CONFIG_INLINE_SPIN_LOCK_IRQSAVE=y -CONFIG_INLINE_SPIN_TRYLOCK=y -CONFIG_INLINE_SPIN_TRYLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_BH=y -CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=y -CONFIG_INLINE_WRITE_LOCK=y -CONFIG_INLINE_WRITE_LOCK_BH=y -CONFIG_INLINE_WRITE_LOCK_IRQ=y -CONFIG_INLINE_WRITE_LOCK_IRQSAVE=y -CONFIG_INLINE_WRITE_UNLOCK_BH=y -CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_PLATFORM is not set -# CONFIG_MEMORY_HOTPLUG is not set CONFIG_MFD_CORE=y CONFIG_MFD_SYSCON=y CONFIG_MFD_VEXPRESS_SYSREG=y @@ -217,10 +127,8 @@ CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_NR_CPUS=64 -# CONFIG_NUMA is not set CONFIG_PM=y CONFIG_PM_CLK=y -# CONFIG_PM_DEBUG is not set CONFIG_PM_GENERIC_DOMAINS=y CONFIG_PM_GENERIC_DOMAINS_OF=y CONFIG_POWER_RESET=y @@ -228,7 +136,6 @@ CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_SUPPLY=y CONFIG_QUEUED_RWLOCKS=y CONFIG_QUEUED_SPINLOCKS=y -# CONFIG_RANDOMIZE_BASE is not set CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_RODATA_FULL_DEFAULT_ENABLED=y diff --git a/target/linux/armvirt/config-5.4 b/target/linux/armvirt/config-5.4 index ca855ec7c8..893129bd5c 100644 --- a/target/linux/armvirt/config-5.4 +++ b/target/linux/armvirt/config-5.4 @@ -3,30 +3,9 @@ CONFIG_9P_FS=y # CONFIG_9P_FS_SECURITY is not set CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y -CONFIG_ARCH_HAS_ELF_RANDOMIZE=y -CONFIG_ARCH_HAS_FORTIFY_SOURCE=y -CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y -CONFIG_ARCH_HAS_KCOV=y -CONFIG_ARCH_HAS_KEEPINITRD=y -CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y -CONFIG_ARCH_HAS_PTE_SPECIAL=y -CONFIG_ARCH_HAS_SETUP_DMA_OPS=y -CONFIG_ARCH_HAS_SET_MEMORY=y -CONFIG_ARCH_HAS_SG_CHAIN=y -CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y -CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y -CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y -CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y -CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y @@ -36,18 +15,14 @@ CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y CONFIG_ARM_GIC_V3_ITS_PCI=y CONFIG_ARM_PSCI_FW=y -# CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_BALLOON_COMPACTION=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_SCSI_REQUEST=y -CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLONE_BACKWARDS=y CONFIG_COMMON_CLK=y -# CONFIG_CPU_BIG_ENDIAN is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_CPU_RMAP=y CONFIG_CRC16=y CONFIG_CRYPTO_AEAD=y @@ -60,7 +35,6 @@ CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_WORKQUEUE=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DMADEVICES=y @@ -71,7 +45,6 @@ CONFIG_EXT4_FS=y CONFIG_F2FS_FS=y CONFIG_FAILOVER=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FRAME_POINTER=y CONFIG_FS_IOMAP=y CONFIG_FS_MBCACHE=y CONFIG_FW_LOADER_PAGED_BUF=y @@ -83,7 +56,6 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IO=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_GENERIC_IRQ_MULTI_HANDLER=y @@ -105,53 +77,9 @@ CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set -CONFIG_HAVE_ARCH_AUDITSYSCALL=y -CONFIG_HAVE_ARCH_BITREVERSE=y -CONFIG_HAVE_ARCH_JUMP_LABEL=y -CONFIG_HAVE_ARCH_KGDB=y -CONFIG_HAVE_ARCH_PFN_VALID=y -CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y -CONFIG_HAVE_ARCH_TRACEHOOK=y -CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y -CONFIG_HAVE_ARM_SMCCC=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_HAVE_CLK=y -CONFIG_HAVE_CLK_PREPARE=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_COPY_THREAD_TLS=y -CONFIG_HAVE_C_RECORDMCOUNT=y -CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DMA_CONTIGUOUS=y -CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_EBPF_JIT=y -CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y -CONFIG_HAVE_FAST_GUP=y -CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y -CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_GENERIC_DMA_COHERENT=y -CONFIG_HAVE_GENERIC_GUP=y -CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y -CONFIG_HAVE_MEMBLOCK=y -CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_HAVE_NET_DSA=y -CONFIG_HAVE_PCI=y -CONFIG_HAVE_PERF_EVENTS=y -CONFIG_HAVE_PERF_REGS=y -CONFIG_HAVE_PERF_USER_STACK_DUMP=y -CONFIG_HAVE_RCU_TABLE_FREE=y -CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y -CONFIG_HAVE_RSEQ=y -CONFIG_HAVE_SYSCALL_TRACEPOINTS=y -CONFIG_HAVE_UID16=y -CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HOTPLUG_CPU=y -# CONFIG_HUGETLBFS is not set CONFIG_HVC_DRIVER=y CONFIG_INITRAMFS_SOURCE="" -CONFIG_IOMMU_HELPER=y CONFIG_IRQCHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y @@ -172,7 +100,6 @@ CONFIG_NET_9P_VIRTIO=y CONFIG_NET_FAILOVER=y CONFIG_NET_FLOW_LIMIT=y CONFIG_NLS=y -CONFIG_NO_BOOTMEM=y CONFIG_NVMEM=y CONFIG_OF=y CONFIG_OF_ADDRESS=y @@ -182,7 +109,6 @@ CONFIG_OF_GPIO=y CONFIG_OF_IRQ=y CONFIG_OF_KOBJ=y CONFIG_OF_NET=y -CONFIG_OLD_SIGSUSPEND3=y CONFIG_PADATA=y CONFIG_PARTITION_PERCPU=y CONFIG_PCI=y @@ -204,8 +130,6 @@ CONFIG_RPS=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_PL031=y CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_RWSEM_XCHGADD_ALGORITHM=y -# CONFIG_SCHED_INFO is not set CONFIG_SCSI=y CONFIG_SCSI_VIRTIO=y CONFIG_SERIAL_8250_FSL=y From 072af549fdd600b4739ec1d035b335847e3e09a0 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Fri, 19 Mar 2021 19:44:12 +0100 Subject: [PATCH 23/50] armvirt: copy config files for 5.10 Copy config and patches for 5.10. Signed-off-by: Aleksander Jan Bajkowski --- target/linux/armvirt/32/config-5.10 | 75 +++++++++++++ target/linux/armvirt/64/config-5.10 | 157 +++++++++++++++++++++++++++ target/linux/armvirt/config-5.10 | 159 ++++++++++++++++++++++++++++ 3 files changed, 391 insertions(+) create mode 100644 target/linux/armvirt/32/config-5.10 create mode 100644 target/linux/armvirt/64/config-5.10 create mode 100644 target/linux/armvirt/config-5.10 diff --git a/target/linux/armvirt/32/config-5.10 b/target/linux/armvirt/32/config-5.10 new file mode 100644 index 0000000000..204816bc0a --- /dev/null +++ b/target/linux/armvirt/32/config-5.10 @@ -0,0 +1,75 @@ +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ARCH_32BIT_OFF_T=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_ARCH_MULTIPLATFORM=y +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_NR_GPIO=0 +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y +CONFIG_ARCH_VIRT=y +CONFIG_ARM=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_HEAVY_MB=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_LPAE=y +CONFIG_ARM_PATCH_IDIV=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_PSCI=y +CONFIG_ARM_THUMB=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_AUTO_ZRELADDR=y +CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y +CONFIG_CACHE_L2X0=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_SPECTRE=y +CONFIG_CPU_THUMB_CAPABLE=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_HAVE_SMP=y +CONFIG_HZ=100 +CONFIG_HZ_100=y +CONFIG_HZ_FIXED=0 +CONFIG_HZ_PERIODIC=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_NEON=y +CONFIG_NR_CPUS=4 +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PERF_USE_VMALLOC=y +CONFIG_RTC_MC146818_LIB=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SMP_ON_UP=y +CONFIG_SWP_EMULATE=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_UNWINDER_ARM=y +CONFIG_USE_OF=y +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ZBOOT_ROM_TEXT=0 diff --git a/target/linux/armvirt/64/config-5.10 b/target/linux/armvirt/64/config-5.10 new file mode 100644 index 0000000000..f5ac3cc453 --- /dev/null +++ b/target/linux/armvirt/64/config-5.10 @@ -0,0 +1,157 @@ +CONFIG_64BIT=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARM64=y +CONFIG_ARM64_4K_PAGES=y +CONFIG_ARM64_CNP=y +CONFIG_ARM64_CONT_SHIFT=4 +CONFIG_ARM64_CRYPTO=y +CONFIG_ARM64_ERRATUM_1165522=y +CONFIG_ARM64_ERRATUM_1286807=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_HW_AFDBM=y +CONFIG_ARM64_MODULE_PLTS=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_SSBD=y +CONFIG_ARM64_SVE=y +CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_ARM64_UAO=y +CONFIG_ARM64_VA_BITS=39 +CONFIG_ARM64_VA_BITS_39=y +CONFIG_ARM64_VHE=y +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_ATOMIC64_SELFTEST=y +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BLK_PM=y +CONFIG_CAVIUM_TX2_ERRATUM_219=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLKSRC_VERSATILE=y +CONFIG_CLK_SP810=y +CONFIG_CLK_VEXPRESS_OSC=y +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_PM=y +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_BS=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y +CONFIG_CRYPTO_CHACHA20=y +CONFIG_CRYPTO_CHACHA20_NEON=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA256_ARM64=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA512_ARM64=y +CONFIG_CRYPTO_SIMD=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DRM=y +CONFIG_DRM_BOCHS=y +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_KMS_HELPER=y +CONFIG_DRM_PANEL=y +CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_QXL=y +CONFIG_DRM_RCAR_WRITEBACK=y +CONFIG_DRM_TTM=y +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_DRM_VRAM_HELPER=y +CONFIG_FB=y +CONFIG_FB_ARMCLCD=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CMDLINE=y +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FRAME_POINTER=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FUJITSU_ERRATUM_010001=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_GENERIC_PLATFORM=y +CONFIG_HDMI=y +CONFIG_HOLES_IN_ZONE=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_HZ=250 +CONFIG_HZ_250=y +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_BOARDINFO=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LCD_CLASS_DEVICE=m +# CONFIG_LCD_PLATFORM is not set +CONFIG_MFD_CORE=y +CONFIG_MFD_SYSCON=y +CONFIG_MFD_VEXPRESS_SYSREG=y +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=64 +CONFIG_PM=y +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_SUPPLY=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_RODATA_FULL_DEFAULT_ENABLED=y +CONFIG_RTC_I2C_AND_SPI=y +CONFIG_SMC91X=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SYNC_FILE=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_THREAD_INFO_IN_TASK=y +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_VEXPRESS_SYSCFG=y +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_VMAP_STACK=y +CONFIG_ZONE_DMA32=y diff --git a/target/linux/armvirt/config-5.10 b/target/linux/armvirt/config-5.10 new file mode 100644 index 0000000000..893129bd5c --- /dev/null +++ b/target/linux/armvirt/config-5.10 @@ -0,0 +1,159 @@ +CONFIG_9P_FS=y +# CONFIG_9P_FS_POSIX_ACL is not set +# CONFIG_9P_FS_SECURITY is not set +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_ARM_PSCI_FW=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_COMMON_CLK=y +CONFIG_CPU_RMAP=y +CONFIG_CRC16=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_NULL2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DMADEVICES=y +CONFIG_DMA_REMAP=y +CONFIG_DTC=y +CONFIG_EDAC_SUPPORT=y +CONFIG_EXT4_FS=y +CONFIG_F2FS_FS=y +CONFIG_FAILOVER=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FS_IOMAP=y +CONFIG_FS_MBCACHE=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ARCH_TOPOLOGY=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_PL061=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HVC_DRIVER=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_JBD2=y +CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_BALLOON=y +CONFIG_MIGRATION=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NET_9P=y +# CONFIG_NET_9P_DEBUG is not set +CONFIG_NET_9P_VIRTIO=y +CONFIG_NET_FAILOVER=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NLS=y +CONFIG_NVMEM=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_NET=y +CONFIG_PADATA=y +CONFIG_PARTITION_PERCPU=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_ECAM=y +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_RATIONAL=y +CONFIG_RCU_NEED_SEGCBLIST=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_REFCOUNT_FULL=y +CONFIG_RFS_ACCEL=y +CONFIG_RPS=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_PL031=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_SCSI=y +CONFIG_SCSI_VIRTIO=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_MCTRL_GPIO=y +CONFIG_SG_POOL=y +CONFIG_SMP=y +CONFIG_SPARSE_IRQ=y +CONFIG_SRCU=y +CONFIG_SWIOTLB=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +CONFIG_USB_SUPPORT=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_XPS=y From d9fa0daef1d8786a96c0f58dafa3f792b5463ef4 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Fri, 5 Mar 2021 20:18:20 +0100 Subject: [PATCH 24/50] armvirt: refresh 5.10 config This was done by executing these commands: $ make kernel_oldconfig CONFIG_TARGET=subtarget $ make kernel_oldconfig CONFIG_TARGET=subtarget_platform Some common symbols have been moved to target config. Signed-off-by: Aleksander Jan Bajkowski --- target/linux/armvirt/32/config-5.10 | 6 +++--- target/linux/armvirt/64/config-5.10 | 22 +++++++++------------- target/linux/armvirt/config-5.10 | 11 ++++++++--- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/target/linux/armvirt/32/config-5.10 b/target/linux/armvirt/32/config-5.10 index 204816bc0a..f9d92c5932 100644 --- a/target/linux/armvirt/32/config-5.10 +++ b/target/linux/armvirt/32/config-5.10 @@ -40,10 +40,10 @@ CONFIG_CPU_THUMB_CAPABLE=y CONFIG_CPU_TLB_V7=y CONFIG_CPU_V7=y CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y +CONFIG_DMA_OPS=y CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_VDSO_32=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HAVE_SMP=y CONFIG_HZ=100 CONFIG_HZ_100=y diff --git a/target/linux/armvirt/64/config-5.10 b/target/linux/armvirt/64/config-5.10 index f5ac3cc453..01d9d1b6cc 100644 --- a/target/linux/armvirt/64/config-5.10 +++ b/target/linux/armvirt/64/config-5.10 @@ -4,14 +4,12 @@ CONFIG_ARCH_MMAP_RND_BITS_MAX=24 CONFIG_ARCH_MMAP_RND_BITS_MIN=18 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_STACKWALK=y CONFIG_ARCH_VEXPRESS=y CONFIG_ARM64=y CONFIG_ARM64_4K_PAGES=y CONFIG_ARM64_CNP=y -CONFIG_ARM64_CONT_SHIFT=4 CONFIG_ARM64_CRYPTO=y CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1286807=y @@ -28,7 +26,6 @@ CONFIG_ARM64_PAN=y CONFIG_ARM64_PA_BITS=48 CONFIG_ARM64_PA_BITS_48=y CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_SSBD=y CONFIG_ARM64_SVE=y CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_ARM64_UAO=y @@ -37,17 +34,16 @@ CONFIG_ARM64_VA_BITS_39=y CONFIG_ARM64_VHE=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y CONFIG_ATOMIC64_SELFTEST=y CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BLK_PM=y CONFIG_CAVIUM_TX2_ERRATUM_219=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLKSRC_VERSATILE=y CONFIG_CLK_SP810=y CONFIG_CLK_VEXPRESS_OSC=y -CONFIG_COMMON_CLK_VERSATILE=y +# CONFIG_COMPAT_32BIT_TIME is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_PM=y @@ -71,19 +67,19 @@ CONFIG_CRYPTO_SHA2_ARM64_CE=y CONFIG_CRYPTO_SHA512_ARM64=y CONFIG_CRYPTO_SIMD=y CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DRM=y CONFIG_DRM_BOCHS=y CONFIG_DRM_BRIDGE=y +CONFIG_DRM_GEM_SHMEM_HELPER=y CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_PANEL=y CONFIG_DRM_PANEL_BRIDGE=y CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_QXL=y -CONFIG_DRM_RCAR_WRITEBACK=y CONFIG_DRM_TTM=y +CONFIG_DRM_TTM_DMA_PAGE_POOL=y +CONFIG_DRM_TTM_HELPER=y CONFIG_DRM_VIRTIO_GPU=y CONFIG_DRM_VRAM_HELPER=y CONFIG_FB=y @@ -100,8 +96,6 @@ CONFIG_FUJITSU_ERRATUM_010001=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIO_GENERIC=y CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_HDMI=y @@ -113,7 +107,9 @@ CONFIG_HZ_250=y CONFIG_I2C=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_BOARDINFO=y +# CONFIG_ICST is not set CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_KCMP=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_PLATFORM is not set CONFIG_MFD_CORE=y @@ -151,7 +147,7 @@ CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_THREAD_INFO_IN_TASK=y CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_VEXPRESS_CONFIG=y -CONFIG_VEXPRESS_SYSCFG=y CONFIG_VIDEOMODE_HELPERS=y +CONFIG_VIRTIO_DMA_SHARED_BUFFER=y CONFIG_VMAP_STACK=y CONFIG_ZONE_DMA32=y diff --git a/target/linux/armvirt/config-5.10 b/target/linux/armvirt/config-5.10 index 893129bd5c..01c201dab1 100644 --- a/target/linux/armvirt/config-5.10 +++ b/target/linux/armvirt/config-5.10 @@ -1,10 +1,11 @@ CONFIG_9P_FS=y # CONFIG_9P_FS_POSIX_ACL is not set # CONFIG_9P_FS_SECURITY is not set -CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARM_AMBA=y CONFIG_ARM_ARCH_TIMER=y @@ -38,6 +39,8 @@ CONFIG_CRYPTO_RNG2=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DMADEVICES=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y CONFIG_DMA_REMAP=y CONFIG_DTC=y CONFIG_EDAC_SUPPORT=y @@ -55,6 +58,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_EARLY_IOREMAP=y +CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_IRQ_MIGRATION=y @@ -68,11 +72,11 @@ CONFIG_GENERIC_SCHED_CLOCK=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_GPIO_PL061=y CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y @@ -87,6 +91,7 @@ CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y CONFIG_JBD2=y CONFIG_LIBFDT=y +CONFIG_LLD_VERSION=0 CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_MEMFD_CREATE=y @@ -110,6 +115,7 @@ CONFIG_OF_IRQ=y CONFIG_OF_KOBJ=y CONFIG_OF_NET=y CONFIG_PADATA=y +CONFIG_PAGE_REPORTING=y CONFIG_PARTITION_PERCPU=y CONFIG_PCI=y CONFIG_PCI_DOMAINS=y @@ -124,7 +130,6 @@ CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_RATIONAL=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_STALL_COMMON=y -CONFIG_REFCOUNT_FULL=y CONFIG_RFS_ACCEL=y CONFIG_RPS=y CONFIG_RTC_CLASS=y From f777884ac4959e98b2e86c177025e26f0bbf2218 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Fri, 5 Mar 2021 20:16:35 +0100 Subject: [PATCH 25/50] armvirt: add 5.10 testing kernel Add 5.10 as testing kernel. Builds successfully with CONFIG_ALL_KMODS=y enabled. Signed-off-by: Aleksander Jan Bajkowski --- target/linux/armvirt/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/armvirt/Makefile b/target/linux/armvirt/Makefile index bf069952d9..6c0d670743 100644 --- a/target/linux/armvirt/Makefile +++ b/target/linux/armvirt/Makefile @@ -10,6 +10,7 @@ FEATURES:=fpu pci rtc usb FEATURES+=cpiogz ext4 ramdisk squashfs targz KERNEL_PATCHVER:=5.4 +KERNEL_TESTING_PATCHVER:=5.10 include $(INCLUDE_DIR)/target.mk From 12f3d1466ad783fded1747fa2ee521a9bea1ff73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= Date: Sat, 20 Mar 2021 20:15:14 +0100 Subject: [PATCH 26/50] ramips: Fix booting on MTC WR1201 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the dreaded "lzma error 1" also reported on similar devices Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3057 Fixes: FS#3057 Signed-off-by: René van Dorst --- target/linux/ramips/image/mt7621.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index 7efec68118..a985741670 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -856,6 +856,7 @@ TARGET_DEVICES += mqmaker_witi define Device/mtc_wr1201 $(Device/dsa-migration) + $(Device/uimage-lzma-loader) IMAGE_SIZE := 16000k DEVICE_VENDOR := MTC DEVICE_MODEL := Wireless Router WR1201 From e83f7e5d76ebf74aa0a1f686d2941950fa5f22e2 Mon Sep 17 00:00:00 2001 From: Daniel Engberg Date: Fri, 19 Mar 2021 12:18:02 +0100 Subject: [PATCH 27/50] ramips: Fix booting on MQmaker WiTi board This fixes the dreaded "lzma error 1" also reported on similar devices Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3057 Fixes: FS#3057 Signed-off-by: Daniel Engberg --- target/linux/ramips/image/mt7621.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk index a985741670..45a58dace9 100644 --- a/target/linux/ramips/image/mt7621.mk +++ b/target/linux/ramips/image/mt7621.mk @@ -845,6 +845,7 @@ TARGET_DEVICES += mikrotik_routerboard-m33g define Device/mqmaker_witi $(Device/dsa-migration) + $(Device/uimage-lzma-loader) IMAGE_SIZE := 16064k DEVICE_VENDOR := MQmaker DEVICE_MODEL := WiTi From dfc9044fadfc69334745d32754414bc37e593207 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Thu, 4 Mar 2021 17:59:14 +0800 Subject: [PATCH 28/50] ramips: fix IMAGE_SIZE of HC5x6: fix image size of HC5x61 "firmware" partition size defined in the device tree file is 0xf70000, so the right IMAGE_SIZE is 15808k Fixes: df1e5d646345 ("ramips: fix partition layout of hiwifi hc5x61") Signed-off-by: Shiji Yang --- target/linux/ramips/image/mt7620.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 327df51e58..64dc0715ed 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -448,7 +448,7 @@ TARGET_DEVICES += head-weblink_hdrm200 define Device/hiwifi_hc5661 SOC := mt7620a - IMAGE_SIZE := 15872k + IMAGE_SIZE := 15808k DEVICE_VENDOR := HiWiFi DEVICE_MODEL := HC5661 DEVICE_PACKAGES := kmod-sdhci-mt7620 @@ -458,7 +458,7 @@ TARGET_DEVICES += hiwifi_hc5661 define Device/hiwifi_hc5761 SOC := mt7620a - IMAGE_SIZE := 15872k + IMAGE_SIZE := 15808k DEVICE_VENDOR := HiWiFi DEVICE_MODEL := HC5761 DEVICE_PACKAGES := kmod-mt76x0e kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620 \ @@ -469,7 +469,7 @@ TARGET_DEVICES += hiwifi_hc5761 define Device/hiwifi_hc5861 SOC := mt7620a - IMAGE_SIZE := 15872k + IMAGE_SIZE := 15808k DEVICE_VENDOR := HiWiFi DEVICE_MODEL := HC5861 DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620 \ From 48162e4c0c85a7f64d9007565bf5be2c7ace3ada Mon Sep 17 00:00:00 2001 From: Jeroen Peelaerts Date: Sat, 16 May 2020 12:12:46 +0200 Subject: [PATCH 29/50] lantiq: enable G.INP retransmission counters This commit adds monitoring for a couple of DSL line features that are present in the lantiq firmware blobs. * G.INP ON/OFF * Trellis encoding ON/OFF * Virtaul Noise ON/OFF * Bitswap ON/OFF Difference in size for ltq-vdsl-app = 1k Difference in size for kmod-ltq-vdsl-vr9 < 1k Reviewed-by: Andre Heider Signed-off-by: Jeroen Peelaerts --- package/kernel/lantiq/ltq-vdsl/Makefile | 4 +++- package/network/config/ltq-vdsl-app/Makefile | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/package/kernel/lantiq/ltq-vdsl/Makefile b/package/kernel/lantiq/ltq-vdsl/Makefile index 047543496e..229e2b577c 100644 --- a/package/kernel/lantiq/ltq-vdsl/Makefile +++ b/package/kernel/lantiq/ltq-vdsl/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-vr9 PKG_VERSION:=4.17.18.6 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_BASE_NAME:=drv_dsl_cpe_api PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz @@ -61,6 +61,8 @@ CONFIGURE_ARGS += --enable-kernel-include="$(LINUX_DIR)/include" \ --enable-linux-26 \ --enable-kernelbuild="$(LINUX_DIR)" \ --enable-debug-prints=no \ + --enable-dsl-pm-retx-counters \ + --enable-dsl-pm-retx-thresholds \ ARCH=mips CONFIGURE_ARGS += --enable-model=full diff --git a/package/network/config/ltq-vdsl-app/Makefile b/package/network/config/ltq-vdsl-app/Makefile index 7665f37514..770f131449 100644 --- a/package/network/config/ltq-vdsl-app/Makefile +++ b/package/network/config/ltq-vdsl-app/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-app PKG_VERSION:=4.17.18.6 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_BASE_NAME:=dsl_cpe_control PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@OPENWRT @@ -67,7 +67,9 @@ CONFIGURE_ARGS += \ CONFIGURE_ARGS += \ --enable-model=typical \ --enable-dsl-pm-showtime \ - --disable-dsl-ceoc + --disable-dsl-ceoc \ + --enable-dsl-pm-retx-counters \ + --enable-dsl-pm-retx-thresholds #CONFIGURE_ARGS += --enable-model=debug define Package/ltq-vdsl-app/install From 4f27ea7c33447f4b0c8e577509726927916b9625 Mon Sep 17 00:00:00 2001 From: Jeroen Peelaerts Date: Tue, 9 Feb 2021 23:33:51 +0100 Subject: [PATCH 30/50] lantiq: use ActualNetDataRate for speed reporting Switch to Actual Net Data Rate (ACTNDR) for speed reporting on lantiq VDSL modems Refer to ITU-T G.997.1 chapter 7.5.2.8 Independent whether retransmission is used or not in a given transmit direction: - In L0 state, this parameter reports the Net Data Rate (as specified in G.992.3, G.992.5 or G.993.2) at which the bearer channel is operating. - In L2 state, the parameter contains the Net Data Rate (as specified in G.992.3, G.992.5 or G.993.2) in the previous L0 state. Signed-off-by: Jeroen Peelaerts Reviewed-by: Andre Heider --- package/network/config/ltq-vdsl-app/Makefile | 2 +- package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package/network/config/ltq-vdsl-app/Makefile b/package/network/config/ltq-vdsl-app/Makefile index 770f131449..0823a0e7e9 100644 --- a/package/network/config/ltq-vdsl-app/Makefile +++ b/package/network/config/ltq-vdsl-app/Makefile @@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ltq-vdsl-app PKG_VERSION:=4.17.18.6 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_BASE_NAME:=dsl_cpe_control PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@OPENWRT diff --git a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c index 52b2be20e1..8eefdfe4d5 100644 --- a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c +++ b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c @@ -532,7 +532,12 @@ static void g997_channel_status(int fd, DSL_AccessDir_t direction) { IOCTL_DIR(DSL_G997_ChannelStatus_t, DSL_FIO_G997_CHANNEL_STATUS_GET, direction); m_u32("interleave_delay", out.data.ActualInterleaveDelay * 10); +#ifndef INCLUDE_DSL_CPE_API_DANUBE + // prefer ACTNDR, see comments in drv_dsl_cpe_api_g997.h + m_u32("data_rate", out.data.ActualNetDataRate); +#else m_u32("data_rate", out.data.ActualDataRate); +#endif } static void g997_line_status(int fd, DSL_AccessDir_t direction) { From 754eb75a8c9ef318fa01adb1d5b9054954ee3913 Mon Sep 17 00:00:00 2001 From: Joachim Cerny Date: Tue, 8 Dec 2020 17:41:56 +0100 Subject: [PATCH 31/50] lantiq: VR9: fix gpio-hog by defining the GPIO ranges MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit defined gpio-ranges according to Reference: https://github.com/torvalds/linux/blob/master/drivers/pinctrl/pinctrl-xway.c#L864 This change is needed by gpio-hog on Fritzbox 3390 thx to @abajk Acked-by: Aleksander Jan Bajkowski A.Bajkowski@stud.elka.pw.edu.pl Signed-off-by: Andreas Böhler Signed-off-by: Joachim Cerny --- target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi index 85c584c1f1..3bb0b7e837 100644 --- a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9.dtsi @@ -223,6 +223,7 @@ compatible = "lantiq,xrx200-pinctrl"; #gpio-cells = <2>; gpio-controller; + gpio-ranges = <&gpio 0 0 50>; reg = <0xe100b10 0xa0>; gphy0_led0_pins: gphy0-led0 { From 73ec21cde2cde1fc27f66b08e8762cdc3c78b61a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20B=C3=B6hler?= Date: Thu, 23 Jan 2020 21:20:38 +0100 Subject: [PATCH 32/50] lantiq: add basic support for AVM FRITZ!Box 3390 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The FRITZ!Box 3390 actually contains two SoCs, one Lantiq with a 5GHz WiFi and one AR9342 with a 2.4GHz WiFi. Only the Lantiq has access to the flash memory, the Atheros runs fully from RAM. Specifications -------------- - Lantiq 500 MHz - 128MiB RAM - 128MiB NAND - 256k Flash - AR9580 5GHz WiFi - AR9342 560 MHz - 64MiB RAM - AR9328 2.4GHz WiFi Remarks ------- This commit only adds support for the Lantiq side of things and prepares the drivers for communication with the Atheros SoC. Thus, only 5GHz WiFi works by default, the 2.4GHz WiFi will be added via another target. Some kernel patches will be required to add support for the Atheros SoC. Installation ------------ Use the eva_ramboot.py script to boot the initramfs image. Then, transfer the sysupgrade image to the device and run sysupgrade to flash it to the NAND. Signed-off-by: Andreas Böhler Acked-by: Aleksander Jan Bajkowski A.Bajkowski@stud.elka.pw.edu.pl Signed-off-by: Joachim Cerny --- .../boot/dts/lantiq/vr9_avm_fritz3390.dts | 308 ++++++++++++++++++ target/linux/lantiq/image/vr9.mk | 11 + .../xrx200/base-files/etc/board.d/01_leds | 3 +- .../xrx200/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/12-ath9k-eeprom | 3 + .../xrx200/base-files/lib/upgrade/platform.sh | 1 + 6 files changed, 328 insertions(+), 1 deletion(-) create mode 100644 target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3390.dts diff --git a/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3390.dts b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3390.dts new file mode 100644 index 0000000000..09c97a6454 --- /dev/null +++ b/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_avm_fritz3390.dts @@ -0,0 +1,308 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "vr9.dtsi" + +#include +#include + +/ { + compatible = "avm,fritz3390", "lantiq,xway", "lantiq,vr9"; + model = "AVM FRITZ!Box 3390"; + + chosen { + bootargs = "console=ttyLTQ0,115200"; + }; + + aliases { + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_red; + + led-dsl = &led_dsl; + led-internet = &led_info; + led-wifi = &led_wifi; + }; + + memory@0 { + device_type = "memory"; + reg = <0x0 0x8000000>; + }; + + keys { + compatible = "gpio-keys-polled"; + poll-interval = <100>; + + power { + label = "power"; + gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + + wifi { + label = "wifi"; + gpios = <&gpio 29 GPIO_ACTIVE_HIGH>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_power_green: power_green { + label = "green:power"; + gpios = <&gpio 45 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + led_power_red: power_red { + label = "red:power"; + gpios = <&gpio 46 GPIO_ACTIVE_LOW>; + }; + + led_wifi: wifi { + label = "green:wifi"; + gpios = <&gpio 36 GPIO_ACTIVE_LOW>; + }; + + led_dsl: dsl { + label = "green:dsl"; + gpios = <&gpio 35 GPIO_ACTIVE_LOW>; + }; + + led_lan { + label = "green:lan"; + gpios = <&gpio 47 GPIO_ACTIVE_LOW>; + }; + + led_info: info { + label = "green:info"; + gpios = <&gpio 33 GPIO_ACTIVE_LOW>; + }; + }; + + usb0_vbus: regulator-usb0-vbus { + compatible = "regulator-fixed"; + + regulator-name = "USB0_VBUS"; + + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + + gpio = <&gpio 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + usb1_vbus: regulator-usb1-vbus { + compatible = "regulator-fixed"; + + regulator-name = "USB1_VBUS"; + + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + + gpio = <&gpio 5 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; +}; + +ð0 { + interface@0 { + compatible = "lantiq,xrx200-pdi"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + lantiq,switch; + + ethernet@0 { + compatible = "lantiq,xrx200-pdi-port"; + reg = <0>; + phy-mode = "rgmii"; + phy-handle = <&phy0>; + gpios = <&gpio 32 GPIO_ACTIVE_HIGH>; + }; + + ethernet@1 { + compatible = "lantiq,xrx200-pdi-port"; + reg = <1>; + phy-mode = "rgmii"; + phy-handle = <&phy1>; + gpios = <&gpio 44 GPIO_ACTIVE_HIGH>; + }; + + ethernet@2 { + compatible = "lantiq,xrx200-pdi-port"; + reg = <2>; + phy-mode = "gmii"; + phy-handle = <&phy11>; + }; + + ethernet@4 { + compatible = "lantiq,xrx200-pdi-port"; + reg = <4>; + phy-mode = "gmii"; + phy-handle = <&phy13>; + }; + }; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + compatible = "lantiq,xrx200-mdio"; + + phy0: ethernet-phy@0 { + reg = <0x0>; + compatible = "ethernet-phy-ieee802.3-c22"; + }; + + phy1: ethernet-phy@1 { + reg = <0x1>; + compatible = "ethernet-phy-ieee802.3-c22"; + }; + + phy11: ethernet-phy@11 { + reg = <0x11>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + }; + + phy13: ethernet-phy@13 { + reg = <0x13>; + compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22"; + }; + }; +}; + +&gphy0 { + lantiq,gphy-mode = ; +}; + +&gphy1 { + lantiq,gphy-mode = ; +}; + +&gpio { + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + phy-rst { + lantiq,pins = "io32", "io44"; + lantiq,pull = <0>; + lantiq,open-drain; + lantiq,output = <1>; + }; + + pcie-rst { + lantiq,pins = "io21"; + lantiq,open-drain; + lantiq,output = <1>; + }; + }; + + pcie-rst-dev { + gpio-hog; + line-name = "pcie-rst-dev"; + gpios = <22 GPIO_ACTIVE_LOW>; + output-low; + }; +}; + +&spi { + status = "okay"; + + flash@4 { + compatible = "jedec,spi-nor"; + reg = <4>; + spi-max-frequency = <10000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + reg = <0x0 0x20000>; + label = "urlader"; + read-only; + }; + + partition@20000 { + reg = <0x20000 0x10000>; + label = "tffs (1)"; + read-only; + }; + + partition@30000 { + reg = <0x30000 0x10000>; + label = "tffs (2)"; + read-only; + }; + }; + }; +}; + +&localbus { + flash@1 { + compatible = "lantiq,nand-xway"; + bank-width = <1>; + reg = <1 0x0 0x2000000>; + + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + + nand-ecc-mode = "on-die"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "kernel"; + reg = <0x0 0x400000>; + }; + + partition@400000 { + label = "ubi"; + reg = <0x400000 0x7c00000>; + }; + }; + }; +}; + +&usb_phy0 { + status = "okay"; +}; + +&usb_phy1 { + status = "okay"; +}; + +&usb0 { + status = "okay"; + vbus-supply = <&usb0_vbus>; +}; + +&usb1 { + status = "okay"; + vbus-supply = <&usb1_vbus>; +}; + +&pcie0 { + status = "okay"; + gpio-reset = <&gpio 21 GPIO_ACTIVE_LOW>; + + pcie@0 { + reg = <0 0 0 0 0>; + #interrupt-cells = <1>; + #size-cells = <1>; + #address-cells = <2>; + device_type = "pci"; + + wifi@0,0 { + compatible = "pci168c,0033"; + reg = <0 0 0 0 0>; + qca,no-eeprom; /* load from ath9k-eeprom-pci-0000:01:00.0.bin */ + }; + }; +}; diff --git a/target/linux/lantiq/image/vr9.mk b/target/linux/lantiq/image/vr9.mk index 1f045ee594..d8cabea972 100644 --- a/target/linux/lantiq/image/vr9.mk +++ b/target/linux/lantiq/image/vr9.mk @@ -120,6 +120,17 @@ define Device/avm_fritz3370-rev2-micron endef TARGET_DEVICES += avm_fritz3370-rev2-micron +define Device/avm_fritz3390 + $(Device/AVM) + $(Device/NAND) + DEVICE_MODEL := FRITZ!Box 3390 + KERNEL_SIZE := 4096k + IMAGE_SIZE := 49152k + DEVICE_PACKAGES := kmod-ath9k kmod-owl-loader wpad-basic-wolfssl \ + kmod-usb-dwc2 fritz-tffs +endef +TARGET_DEVICES += avm_fritz3390 + define Device/avm_fritz7360sl $(Device/AVM) DEVICE_MODEL := FRITZ!Box 7360 SL diff --git a/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds b/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds index a011b6c584..bac3ed2b53 100644 --- a/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds +++ b/target/linux/lantiq/xrx200/base-files/etc/board.d/01_leds @@ -38,7 +38,8 @@ arcadyan,vgv7519-brn) ucidef_set_led_wlan "wifi" "wifi" "green:wireless" "phy0radio" ;; avm,fritz3370-rev2-hynix|\ -avm,fritz3370-rev2-micron) +avm,fritz3370-rev2-micron|\ +avm,fritz3390) ucidef_set_led_switch "lan" "LAN" "green:lan" "switch0" "0x17" ;; bt,homehub-v5a) diff --git a/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network b/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network index 77d93d016b..476cc7eb8f 100644 --- a/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network +++ b/target/linux/lantiq/xrx200/base-files/etc/board.d/02_network @@ -37,6 +37,7 @@ lantiq_setup_interfaces() ;; avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ + avm,fritz3390|\ avm,fritz7360sl|\ avm,fritz7360-v2|\ avm,fritz7362sl) @@ -86,6 +87,7 @@ lantiq_setup_dsl() arcadyan,vgv7510kw22-nor|\ avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ + avm,fritz3390|\ avm,fritz7360sl|\ avm,fritz7362sl|\ avm,fritz7412|\ @@ -135,6 +137,7 @@ lantiq_setup_macs() avm,fritz7360sl) wan_mac=$(macaddr_add "$(mtd_get_mac_binary urlader 0xa91)" 1) ;; + avm,fritz3390|\ avm,fritz7362sl) lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)")) wan_mac=$(fritz_tffs -n macdsl -i $(find_mtd_part "tffs (1)")) diff --git a/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom b/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom index ee8cc3879a..03664b3fd3 100644 --- a/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom +++ b/target/linux/lantiq/xrx200/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom @@ -16,6 +16,9 @@ case "$FIRMWARE" in avm,fritz7362sl) caldata_extract_reverse "urlader" 0x1541 0x440 ;; + avm,fritz3390) + caldata_extract_reverse "urlader" 0x2546 0x440 + ;; avm,fritz7360sl|\ avm,fritz7360-v2) caldata_extract "urlader" 0x985 0x1000 diff --git a/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh b/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh index 0770052488..ab01d3bbf7 100755 --- a/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh +++ b/target/linux/lantiq/xrx200/base-files/lib/upgrade/platform.sh @@ -11,6 +11,7 @@ platform_do_upgrade() { case "$board" in avm,fritz3370-rev2-hynix|\ avm,fritz3370-rev2-micron|\ + avm,fritz3390|\ avm,fritz7362sl|\ avm,fritz7412|\ avm,fritz7430|\ From 829fa33899911f5e2a1229a6fdea98feb1d09029 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Thu, 1 Apr 2021 14:36:32 +0100 Subject: [PATCH 33/50] zram-swap: clean up the makefile Break dependencies into separate lines, to improve the readability. Trim trailing whitespace. Signed-off-by: Rui Salvaterra --- package/system/zram-swap/Makefile | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/package/system/zram-swap/Makefile b/package/system/zram-swap/Makefile index 18c6afee96..80f87fcdff 100644 --- a/package/system/zram-swap/Makefile +++ b/package/system/zram-swap/Makefile @@ -17,14 +17,20 @@ include $(INCLUDE_DIR)/package.mk define Package/zram-swap SECTION:=utils CATEGORY:=Base system - DEPENDS:=+kmod-zram +@BUSYBOX_CONFIG_MKSWAP +@BUSYBOX_CONFIG_SWAPON +@BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD +@BUSYBOX_CONFIG_FEATURE_SWAPON_PRI +@BUSYBOX_CONFIG_SWAPOFF + DEPENDS:= \ + +@BUSYBOX_CONFIG_FEATURE_SWAPON_DISCARD \ + +@BUSYBOX_CONFIG_FEATURE_SWAPON_PRI \ + +@BUSYBOX_CONFIG_MKSWAP \ + +@BUSYBOX_CONFIG_SWAPOFF \ + +@BUSYBOX_CONFIG_SWAPON \ + +kmod-zram TITLE:=ZRAM swap scripts PKGARCH:=all endef define Package/zram-swap/description - A script to activate swaping on a compressed zram partition. This - could be used to increase the available memory, by using compressed + A script to activate swaping on a compressed zram partition. This + could be used to increase the available memory, by using compressed memory. endef From 565dfeb1280343fb3f838581169e5d7a1c947862 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Thu, 1 Apr 2021 14:36:33 +0100 Subject: [PATCH 34/50] zram-swap: bail out early if the kernel doesn't support swap Since KERNEL_SWAP is only enabled by default for !SMALL_FLASH targets, we need to check if the current kernel supports swap before trying to configure zram-swap, as opkg can't check for kernel dependencies. Signed-off-by: Rui Salvaterra --- package/system/zram-swap/files/zram.init | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/package/system/zram-swap/files/zram.init b/package/system/zram-swap/files/zram.init index 685648aae5..d97e85efa5 100755 --- a/package/system/zram-swap/files/zram.init +++ b/package/system/zram-swap/files/zram.init @@ -150,6 +150,11 @@ zram_compact() start() { + [ -e /proc/swaps ] || { + logger -s -t zram_start -p daemon.crit "kernel doesn't support swap" + return 1 + } + if [ $( grep -cs zram /proc/swaps ) -ne 0 ]; then logger -s -t zram_start -p daemon.notice "[OK] zram swap is already mounted" return 1 From 1601b39b6197963e85c441a043702e022779f371 Mon Sep 17 00:00:00 2001 From: Stijn Segers Date: Sun, 28 Feb 2021 22:50:15 +0100 Subject: [PATCH 35/50] realtek: rename partitions in Netgear DTSI Switch the Netgear DTSI for the Realtek target from the OEM partition naming scheme to accepted OpenWrt naming practices. A quick git grep for 'u-boot-env' e.g. in the OpenWrt tree turns up almost 500 hits whereas grepping for 'bdinfo' (the OEM equivalent) returns a meagre 14. Signed-off-by: Stijn Segers --- target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi b/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi index 2cda3c15a3..d31eb74001 100644 --- a/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi +++ b/target/linux/realtek/dts/rtl8380_netgear_gigabit.dtsi @@ -47,31 +47,31 @@ #size-cells = <1>; partition@0 { - label = "loader"; + label = "u-boot"; reg = <0x0000000 0x00e0000>; read-only; }; partition@e0000 { - label = "bdinfo"; + label = "u-boot-env"; reg = <0x00e0000 0x0010000>; read-only; }; partition@f0000 { - label = "sysinfo"; + label = "u-boot-env2"; reg = <0x00f0000 0x0010000>; read-only; }; partition@100000 { - label = "jffs2_cfg"; + label = "jffs"; reg = <0x0100000 0x0100000>; read-only; }; partition@200000 { - label = "jffs2_log"; + label = "jffs2"; reg = <0x0200000 0x0100000>; read-only; }; From d38f4565828264731f2a9cfe646491fba80315d3 Mon Sep 17 00:00:00 2001 From: Rui Salvaterra Date: Wed, 25 Nov 2020 23:03:48 +0000 Subject: [PATCH 36/50] hostapd: enable airtime policy for the -basic variants Airtime policy configuration is extremely useful in multiple BSS scenarios. Since nowadays most people configure both private and guest networks (at least), it makes sense to enable it by default, except for the most limited of the variants. Size of the hostapd-basic-openssl binary (mipsel 24Kc -O2): 543944 bytes (airtime policy disabled) 548040 bytes (airtime policy enabled) Signed-off-by: Rui Salvaterra Acked-by: Daniel Golle --- package/network/services/hostapd/files/hostapd-basic.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/network/services/hostapd/files/hostapd-basic.config b/package/network/services/hostapd/files/hostapd-basic.config index 947e2fa200..33c38192b1 100644 --- a/package/network/services/hostapd/files/hostapd-basic.config +++ b/package/network/services/hostapd/files/hostapd-basic.config @@ -384,7 +384,7 @@ CONFIG_TLS=internal #CONFIG_OWE=y # Airtime policy support -#CONFIG_AIRTIME_POLICY=y +CONFIG_AIRTIME_POLICY=y # Override default value for the wpa_disable_eapol_key_retries configuration # parameter. See that parameter in hostapd.conf for more details. From 1371910b76f021486810b18f371b3dc528d952ea Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 3 Apr 2021 19:04:53 +0200 Subject: [PATCH 37/50] uclient: update to Git version 2021-04-03 83efca2 tests: fix possibly longer start of HTTP server 64e00d6 uclient-fetch: document missing options Signed-off-by: Hauke Mehrtens --- package/libs/uclient/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/libs/uclient/Makefile b/package/libs/uclient/Makefile index 43d00a2299..419aff15e1 100644 --- a/package/libs/uclient/Makefile +++ b/package/libs/uclient/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uclient.git -PKG_MIRROR_HASH:=532016a283722f21dd450e388060af0db765972956eee288c7cabf102c8303d0 -PKG_SOURCE_DATE:=2020-12-10 -PKG_SOURCE_VERSION:=2c843b2bc04c34403d9a6b4de025447e4b5d8aa4 +PKG_MIRROR_HASH:=b0f6ee3bc8e63e8408338c6ff4f214f2f83997a57802062401bdc82931ba9b73 +PKG_SOURCE_DATE:=2021-04-03 +PKG_SOURCE_VERSION:=64e00d6db4c3fc98ec3e8526072abadb7ed9ec0e CMAKE_INSTALL:=1 PKG_BUILD_DEPENDS:=ustream-ssl From b974293efa24b8e1bf859b1ed253ca0042ab273e Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 3 Apr 2021 19:11:38 +0200 Subject: [PATCH 38/50] netifd: update to Git version 2021-04-03 f8899b9 netifd: bridge: set default value for igmp_snoop 327da98 netifd: add possibility to switch off route config Signed-off-by: Hauke Mehrtens --- package/network/config/netifd/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index b5f76362ba..e4720aa821 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=2 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2021-03-31 -PKG_SOURCE_VERSION:=c84f3b02fced9dd6752a90ca466ada0aabb38224 -PKG_MIRROR_HASH:=d50f1a7983e1e7c0cddfa0642778dfc58a8e62a36f58211928c293d74bd0883b +PKG_SOURCE_DATE:=2021-04-03 +PKG_SOURCE_VERSION:=327da9895327bc56b23413ee91a6e6b6e0e4329d +PKG_MIRROR_HASH:=b6b005686aeb45948299113c71f6b806ece794db361594b23e03953c9c830af6 PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 From 438e88e672559e349d05540db8763a890a931ad7 Mon Sep 17 00:00:00 2001 From: Kevin Darbyshire-Bryant Date: Tue, 30 Mar 2021 22:01:27 +0100 Subject: [PATCH 39/50] kernel: bump 5.10 to 5.10.27 Use update_kernel to refresh all patches, required manual updates to: 610-netfilter_match_bypass_default_checks.patch 611-netfilter_match_bypass_default_table.patch 762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch 764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch Run-tested: x86_64 Nothing screamed out but any funny business with linux bridging should suspect this update first. Signed-off-by: Kevin Darbyshire-Bryant --- include/kernel-version.mk | 4 ++-- ...5.13-net-dsa-b53-support-legacy-tags.patch | 2 +- ...a-b53-add-support-for-BCM63xx-RGMIIs.patch | 6 ++--- .../011-kbuild-export-SUBARCH.patch | 2 +- ...pi-poll-functionality-to-__napi_poll.patch | 8 +++---- ...threaded-able-napi-poll-loop-support.patch | 12 +++++----- ...tribute-to-control-napi-threaded-mod.patch | 4 ++-- ...ween-napi-kthread-mode-and-busy-poll.patch | 6 ++--- .../hack-5.10/221-module_exports.patch | 6 ++--- ...e_mem_map-with-ARCH_PFN_OFFSET-calcu.patch | 2 +- .../pending-5.10/201-extra_optimization.patch | 2 +- ...etfilter_match_bypass_default_checks.patch | 2 +- ...netfilter_match_bypass_default_table.patch | 4 ++-- ...ng-with-source-address-failed-policy.patch | 24 +++++++++---------- ...T-skip-GRO-for-foreign-MAC-addresses.patch | 10 ++++---- ...detach-callback-to-struct-phy_driver.patch | 4 ++-- ...hdev-Refactor-br_switchdev_fdb_notif.patch | 4 +++- ...hdev-Send-FDB-notifications-for-host.patch | 8 ++++--- ...y-simplify-phy_link_change-arguments.patch | 4 ++-- .../721-NET-no-auto-carrier-off-support.patch | 2 +- ...-r8152-add-LED-configuration-from-OF.patch | 8 +++---- 21 files changed, 64 insertions(+), 60 deletions(-) diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 4100d90b3b..2e29f637bb 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -7,10 +7,10 @@ ifdef CONFIG_TESTING_KERNEL endif LINUX_VERSION-5.4 = .109 -LINUX_VERSION-5.10 = .26 +LINUX_VERSION-5.10 = .27 LINUX_KERNEL_HASH-5.4.109 = ac6af4562717d030266fcddb0a3c44598610ca8c9c3a654725f58b9cbd61b7ee -LINUX_KERNEL_HASH-5.10.26 = fc532833f1ac167f363f1b9de85db39d2d635ab516f66dc381bdd70804601482 +LINUX_KERNEL_HASH-5.10.27 = d99dc9662951299c53a0a8d8c8d0a72a16ff861d20e927c0f9b14f63282d69d9 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) diff --git a/target/linux/bmips/patches-5.10/050-v5.13-net-dsa-b53-support-legacy-tags.patch b/target/linux/bmips/patches-5.10/050-v5.13-net-dsa-b53-support-legacy-tags.patch index 269c2895af..18cd09ff0e 100644 --- a/target/linux/bmips/patches-5.10/050-v5.13-net-dsa-b53-support-legacy-tags.patch +++ b/target/linux/bmips/patches-5.10/050-v5.13-net-dsa-b53-support-legacy-tags.patch @@ -28,7 +28,7 @@ Signed-off-by: David S. Miller This driver adds support for Broadcom managed switch chips. It supports --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -2028,15 +2028,17 @@ enum dsa_tag_protocol b53_get_tag_protoc +@@ -2021,15 +2021,17 @@ enum dsa_tag_protocol b53_get_tag_protoc { struct b53_device *dev = ds->priv; diff --git a/target/linux/bmips/patches-5.10/510-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch b/target/linux/bmips/patches-5.10/510-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch index 0b69f45360..41655231fa 100644 --- a/target/linux/bmips/patches-5.10/510-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch +++ b/target/linux/bmips/patches-5.10/510-net-dsa-b53-add-support-for-BCM63xx-RGMIIs.patch @@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c -@@ -1155,6 +1155,36 @@ static void b53_force_port_config(struct +@@ -1148,6 +1148,36 @@ static void b53_force_port_config(struct b53_write8(dev, B53_CTRL_PAGE, off, reg); } @@ -50,7 +50,7 @@ Signed-off-by: Álvaro Fernández Rojas static void b53_adjust_link(struct dsa_switch *ds, int port, struct phy_device *phydev) { -@@ -1181,6 +1211,9 @@ static void b53_adjust_link(struct dsa_s +@@ -1174,6 +1204,9 @@ static void b53_adjust_link(struct dsa_s tx_pause, rx_pause); b53_force_link(dev, port, phydev->link); @@ -60,7 +60,7 @@ Signed-off-by: Álvaro Fernández Rojas if (is531x5(dev) && phy_interface_is_rgmii(phydev)) { if (port == 8) off = B53_RGMII_CTRL_IMP; -@@ -1373,6 +1406,9 @@ void b53_phylink_mac_link_up(struct dsa_ +@@ -1366,6 +1399,9 @@ void b53_phylink_mac_link_up(struct dsa_ { struct b53_device *dev = ds->priv; diff --git a/target/linux/generic/backport-5.10/011-kbuild-export-SUBARCH.patch b/target/linux/generic/backport-5.10/011-kbuild-export-SUBARCH.patch index a1f0d9aa96..bb99e4ddbf 100644 --- a/target/linux/generic/backport-5.10/011-kbuild-export-SUBARCH.patch +++ b/target/linux/generic/backport-5.10/011-kbuild-export-SUBARCH.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -506,7 +506,7 @@ KBUILD_LDFLAGS_MODULE := +@@ -507,7 +507,7 @@ KBUILD_LDFLAGS_MODULE := KBUILD_LDFLAGS := CLANG_FLAGS := diff --git a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch index d0b7c9bc2c..366f18d94d 100644 --- a/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch +++ b/target/linux/generic/backport-5.10/600-v5.12-net-extract-napi-poll-functionality-to-__napi_poll.patch @@ -18,7 +18,7 @@ Signed-off-by: David S. Miller --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6740,15 +6740,10 @@ void __netif_napi_del(struct napi_struct +@@ -6752,15 +6752,10 @@ void __netif_napi_del(struct napi_struct } EXPORT_SYMBOL(__netif_napi_del); @@ -35,7 +35,7 @@ Signed-off-by: David S. Miller weight = n->weight; /* This NAPI_STATE_SCHED test is for avoiding a race -@@ -6768,7 +6763,7 @@ static int napi_poll(struct napi_struct +@@ -6780,7 +6775,7 @@ static int napi_poll(struct napi_struct n->poll, work, weight); if (likely(work < weight)) @@ -44,7 +44,7 @@ Signed-off-by: David S. Miller /* Drivers must not modify the NAPI state if they * consume the entire weight. In such cases this code -@@ -6777,7 +6772,7 @@ static int napi_poll(struct napi_struct +@@ -6789,7 +6784,7 @@ static int napi_poll(struct napi_struct */ if (unlikely(napi_disable_pending(n))) { napi_complete(n); @@ -53,7 +53,7 @@ Signed-off-by: David S. Miller } if (n->gro_bitmask) { -@@ -6795,12 +6790,29 @@ static int napi_poll(struct napi_struct +@@ -6807,12 +6802,29 @@ static int napi_poll(struct napi_struct if (unlikely(!list_empty(&n->poll_list))) { pr_warn_once("%s: Budget exhausted after napi rescheduled\n", n->dev ? n->dev->name : "backlog"); diff --git a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch index 22075cb9bc..32f22b392c 100644 --- a/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch +++ b/target/linux/generic/backport-5.10/601-v5.12-net-implement-threaded-able-napi-poll-loop-support.patch @@ -103,7 +103,7 @@ Signed-off-by: David S. Miller #include #include #include -@@ -1488,6 +1489,27 @@ void netdev_notify_peers(struct net_devi +@@ -1500,6 +1501,27 @@ void netdev_notify_peers(struct net_devi } EXPORT_SYMBOL(netdev_notify_peers); @@ -131,7 +131,7 @@ Signed-off-by: David S. Miller static int __dev_open(struct net_device *dev, struct netlink_ext_ack *extack) { const struct net_device_ops *ops = dev->netdev_ops; -@@ -4242,6 +4264,21 @@ int gro_normal_batch __read_mostly = 8; +@@ -4254,6 +4276,21 @@ int gro_normal_batch __read_mostly = 8; static inline void ____napi_schedule(struct softnet_data *sd, struct napi_struct *napi) { @@ -153,7 +153,7 @@ Signed-off-by: David S. Miller list_add_tail(&napi->poll_list, &sd->poll_list); __raise_softirq_irqoff(NET_RX_SOFTIRQ); } -@@ -6693,6 +6730,12 @@ void netif_napi_add(struct net_device *d +@@ -6705,6 +6742,12 @@ void netif_napi_add(struct net_device *d set_bit(NAPI_STATE_NPSVC, &napi->state); list_add_rcu(&napi->dev_list, &dev->napi_list); napi_hash_add(napi); @@ -166,7 +166,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(netif_napi_add); -@@ -6709,9 +6752,28 @@ void napi_disable(struct napi_struct *n) +@@ -6721,9 +6764,28 @@ void napi_disable(struct napi_struct *n) hrtimer_cancel(&n->timer); clear_bit(NAPI_STATE_DISABLE, &n->state); @@ -195,7 +195,7 @@ Signed-off-by: David S. Miller static void flush_gro_hash(struct napi_struct *napi) { int i; -@@ -6737,6 +6799,11 @@ void __netif_napi_del(struct napi_struct +@@ -6749,6 +6811,11 @@ void __netif_napi_del(struct napi_struct flush_gro_hash(napi); napi->gro_bitmask = 0; @@ -207,7 +207,7 @@ Signed-off-by: David S. Miller } EXPORT_SYMBOL(__netif_napi_del); -@@ -6818,6 +6885,51 @@ static int napi_poll(struct napi_struct +@@ -6830,6 +6897,51 @@ static int napi_poll(struct napi_struct return work; } diff --git a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch index ddcdfe7bff..e72d5eeca4 100644 --- a/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch +++ b/target/linux/generic/backport-5.10/602-v5.12-net-add-sysfs-attribute-to-control-napi-threaded-mod.patch @@ -57,7 +57,7 @@ Signed-off-by: David S. Miller * @n: NAPI context --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4268,8 +4268,9 @@ static inline void ____napi_schedule(str +@@ -4280,8 +4280,9 @@ static inline void ____napi_schedule(str if (test_bit(NAPI_STATE_THREADED, &napi->state)) { /* Paired with smp_mb__before_atomic() in @@ -69,7 +69,7 @@ Signed-off-by: David S. Miller * wake_up_process() when it's not NULL. */ thread = READ_ONCE(napi->thread); -@@ -6703,6 +6704,49 @@ static void init_gro_hash(struct napi_st +@@ -6715,6 +6716,49 @@ static void init_gro_hash(struct napi_st napi->gro_bitmask = 0; } diff --git a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch index e0fd09b012..dddc35918e 100644 --- a/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch +++ b/target/linux/generic/backport-5.10/603-v5.12-net-fix-race-between-napi-kthread-mode-and-busy-poll.patch @@ -45,7 +45,7 @@ Cc: Hannes Frederic Sowa enum gro_result { --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4275,6 +4275,8 @@ static inline void ____napi_schedule(str +@@ -4287,6 +4287,8 @@ static inline void ____napi_schedule(str */ thread = READ_ONCE(napi->thread); if (thread) { @@ -54,7 +54,7 @@ Cc: Hannes Frederic Sowa wake_up_process(thread); return; } -@@ -6495,7 +6497,8 @@ bool napi_complete_done(struct napi_stru +@@ -6507,7 +6509,8 @@ bool napi_complete_done(struct napi_stru WARN_ON_ONCE(!(val & NAPIF_STATE_SCHED)); @@ -64,7 +64,7 @@ Cc: Hannes Frederic Sowa /* If STATE_MISSED was set, leave STATE_SCHED set, * because we will call napi->poll() one more time. -@@ -6931,16 +6934,25 @@ static int napi_poll(struct napi_struct +@@ -6943,16 +6946,25 @@ static int napi_poll(struct napi_struct static int napi_thread_wait(struct napi_struct *napi) { diff --git a/target/linux/generic/hack-5.10/221-module_exports.patch b/target/linux/generic/hack-5.10/221-module_exports.patch index 655cc61560..07885408f1 100644 --- a/target/linux/generic/hack-5.10/221-module_exports.patch +++ b/target/linux/generic/hack-5.10/221-module_exports.patch @@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau /* Align . to a 8 byte boundary equals to maximum function alignment. */ #define ALIGN_FUNCTION() . = ALIGN(8) -@@ -470,14 +480,14 @@ +@@ -473,14 +483,14 @@ /* Kernel symbol table: Normal symbols */ \ __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ __start___ksymtab = .; \ @@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau __stop___ksymtab_gpl = .; \ } \ \ -@@ -539,7 +549,7 @@ +@@ -542,7 +552,7 @@ \ /* Kernel symbol table: strings */ \ __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ @@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau } \ \ /* __*init sections */ \ -@@ -1014,6 +1024,8 @@ +@@ -1017,6 +1027,8 @@ #define COMMON_DISCARDS \ SANITIZER_DISCARDS \ diff --git a/target/linux/generic/pending-5.10/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/target/linux/generic/pending-5.10/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch index c0482dfee5..4375e727cf 100644 --- a/target/linux/generic/pending-5.10/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ b/target/linux/generic/pending-5.10/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch @@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf --- a/mm/page_alloc.c +++ b/mm/page_alloc.c -@@ -7026,7 +7026,7 @@ static void __ref alloc_node_mem_map(str +@@ -7027,7 +7027,7 @@ static void __ref alloc_node_mem_map(str if (pgdat == NODE_DATA(0)) { mem_map = NODE_DATA(0)->node_mem_map; if (page_to_pfn(mem_map) != pgdat->node_start_pfn) diff --git a/target/linux/generic/pending-5.10/201-extra_optimization.patch b/target/linux/generic/pending-5.10/201-extra_optimization.patch index 53486680a2..df973258ab 100644 --- a/target/linux/generic/pending-5.10/201-extra_optimization.patch +++ b/target/linux/generic/pending-5.10/201-extra_optimization.patch @@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau --- a/Makefile +++ b/Makefile -@@ -733,11 +733,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni +@@ -734,11 +734,11 @@ KBUILD_CFLAGS += $(call cc-disable-warni KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE diff --git a/target/linux/generic/pending-5.10/610-netfilter_match_bypass_default_checks.patch b/target/linux/generic/pending-5.10/610-netfilter_match_bypass_default_checks.patch index 04f9ba2f08..457703121c 100644 --- a/target/linux/generic/pending-5.10/610-netfilter_match_bypass_default_checks.patch +++ b/target/linux/generic/pending-5.10/610-netfilter_match_bypass_default_checks.patch @@ -69,7 +69,7 @@ Signed-off-by: Felix Fietkau return -ENOMEM; @@ -818,6 +846,7 @@ copy_entries_to_user(unsigned int total_ - const struct xt_table_info *private = xt_table_get_private_protected(table); + const struct xt_table_info *private = table->private; int ret = 0; const void *loc_cpu_entry; + u8 flags; diff --git a/target/linux/generic/pending-5.10/611-netfilter_match_bypass_default_table.patch b/target/linux/generic/pending-5.10/611-netfilter_match_bypass_default_table.patch index 1792534835..baf738a8d2 100644 --- a/target/linux/generic/pending-5.10/611-netfilter_match_bypass_default_table.patch +++ b/target/linux/generic/pending-5.10/611-netfilter_match_bypass_default_table.patch @@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau /* Initialization */ + WARN_ON(!(table->valid_hooks & (1 << hook))); + local_bh_disable(); -+ private = rcu_access_pointer(table->private); ++ private = READ_ONCE(table->private); /* Address dependency. */ + cpu = smp_processor_id(); + table_base = private->entries; + @@ -80,7 +80,7 @@ Signed-off-by: Felix Fietkau - WARN_ON(!(table->valid_hooks & (1 << hook))); - local_bh_disable(); addend = xt_write_recseq_begin(); -- private = rcu_access_pointer(table->private); +- private = READ_ONCE(table->private); /* Address dependency. */ - cpu = smp_processor_id(); - table_base = private->entries; jumpstack = (struct ipt_entry **)private->jumpstack[cpu]; diff --git a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch index fda982fce9..625cc430e2 100644 --- a/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ b/target/linux/generic/pending-5.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch @@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski static void ip6_link_failure(struct sk_buff *skb); static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, struct sk_buff *skb, u32 mtu, -@@ -327,6 +329,18 @@ static const struct rt6_info ip6_prohibi +@@ -309,6 +311,18 @@ static const struct rt6_info ip6_prohibi .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), }; @@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski static const struct rt6_info ip6_blk_hole_entry_template = { .dst = { .__refcnt = ATOMIC_INIT(1), -@@ -1048,6 +1062,7 @@ static const int fib6_prop[RTN_MAX + 1] +@@ -1030,6 +1044,7 @@ static const int fib6_prop[RTN_MAX + 1] [RTN_BLACKHOLE] = -EINVAL, [RTN_UNREACHABLE] = -EHOSTUNREACH, [RTN_PROHIBIT] = -EACCES, @@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski [RTN_THROW] = -EAGAIN, [RTN_NAT] = -EINVAL, [RTN_XRESOLVE] = -EINVAL, -@@ -1083,6 +1098,10 @@ static void ip6_rt_init_dst_reject(struc +@@ -1065,6 +1080,10 @@ static void ip6_rt_init_dst_reject(struc rt->dst.output = ip6_pkt_prohibit_out; rt->dst.input = ip6_pkt_prohibit; break; @@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski case RTN_THROW: case RTN_UNREACHABLE: default: -@@ -4432,6 +4451,17 @@ static int ip6_pkt_prohibit_out(struct n +@@ -4414,6 +4433,17 @@ static int ip6_pkt_prohibit_out(struct n return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); } @@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski /* * Allocate a dst for local (unicast / anycast) address. */ -@@ -4912,7 +4942,8 @@ static int rtm_to_fib6_config(struct sk_ +@@ -4894,7 +4924,8 @@ static int rtm_to_fib6_config(struct sk_ if (rtm->rtm_type == RTN_UNREACHABLE || rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_PROHIBIT || @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski cfg->fc_flags |= RTF_REJECT; if (rtm->rtm_type == RTN_LOCAL) -@@ -6080,6 +6111,8 @@ static int ip6_route_dev_notify(struct n +@@ -6062,6 +6093,8 @@ static int ip6_route_dev_notify(struct n #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif -@@ -6091,6 +6124,7 @@ static int ip6_route_dev_notify(struct n +@@ -6073,6 +6106,7 @@ static int ip6_route_dev_notify(struct n in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); #endif } -@@ -6282,6 +6316,8 @@ static int __net_init ip6_route_net_init +@@ -6264,6 +6298,8 @@ static int __net_init ip6_route_net_init #ifdef CONFIG_IPV6_MULTIPLE_TABLES net->ipv6.fib6_has_custom_rules = false; @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, sizeof(*net->ipv6.ip6_prohibit_entry), GFP_KERNEL); -@@ -6292,11 +6328,21 @@ static int __net_init ip6_route_net_init +@@ -6274,11 +6310,21 @@ static int __net_init ip6_route_net_init ip6_template_metrics, true); INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, ip6_template_metrics, true); -@@ -6323,6 +6369,8 @@ out: +@@ -6305,6 +6351,8 @@ out: return ret; #ifdef CONFIG_IPV6_MULTIPLE_TABLES @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski out_ip6_prohibit_entry: kfree(net->ipv6.ip6_prohibit_entry); out_ip6_null_entry: -@@ -6342,6 +6390,7 @@ static void __net_exit ip6_route_net_exi +@@ -6324,6 +6372,7 @@ static void __net_exit ip6_route_net_exi kfree(net->ipv6.ip6_null_entry); #ifdef CONFIG_IPV6_MULTIPLE_TABLES kfree(net->ipv6.ip6_prohibit_entry); @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski kfree(net->ipv6.ip6_blk_hole_entry); #endif dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6419,6 +6468,9 @@ void __init ip6_route_init_special_entri +@@ -6401,6 +6450,9 @@ void __init ip6_route_init_special_entri init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); diff --git a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch index 3e2aa368d2..4e1ae4b2c8 100644 --- a/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch +++ b/target/linux/generic/pending-5.10/680-NET-skip-GRO-for-foreign-MAC-addresses.patch @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau __u16 tc_index; /* traffic control index */ --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6005,6 +6005,9 @@ static enum gro_result dev_gro_receive(s +@@ -6017,6 +6017,9 @@ static enum gro_result dev_gro_receive(s int same_flow; int grow; @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau if (netif_elide_gro(skb->dev)) goto normal; -@@ -7973,6 +7976,48 @@ static void __netdev_adjacent_dev_unlink +@@ -7985,6 +7988,48 @@ static void __netdev_adjacent_dev_unlink &upper_dev->adj_list.lower); } @@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau static int __netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev, bool master, void *upper_priv, void *upper_info, -@@ -8024,6 +8069,7 @@ static int __netdev_upper_dev_link(struc +@@ -8036,6 +8081,7 @@ static int __netdev_upper_dev_link(struc if (ret) return ret; @@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau ret = call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); ret = notifier_to_errno(ret); -@@ -8120,6 +8166,7 @@ static void __netdev_upper_dev_unlink(st +@@ -8132,6 +8178,7 @@ static void __netdev_upper_dev_unlink(st __netdev_adjacent_dev_unlink_neighbour(dev, upper_dev); @@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, &changeupper_info.info); -@@ -8906,6 +8953,7 @@ int dev_set_mac_address(struct net_devic +@@ -8918,6 +8965,7 @@ int dev_set_mac_address(struct net_devic if (err) return err; dev->addr_assign_type = NET_ADDR_SET; diff --git a/target/linux/generic/pending-5.10/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-5.10/703-phy-add-detach-callback-to-struct-phy_driver.patch index 69b82c2635..9aa54082a5 100644 --- a/target/linux/generic/pending-5.10/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-5.10/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1642,6 +1642,9 @@ void phy_detach(struct phy_device *phyde +@@ -1651,6 +1651,9 @@ void phy_detach(struct phy_device *phyde struct module *ndev_owner = NULL; struct mii_bus *bus; @@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos sysfs_remove_link(&dev->dev.kobj, "phydev"); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -759,6 +759,12 @@ struct phy_driver { +@@ -761,6 +761,12 @@ struct phy_driver { /** @handle_interrupt: Override default interrupt handling */ irqreturn_t (*handle_interrupt)(struct phy_device *phydev); diff --git a/target/linux/generic/pending-5.10/762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch b/target/linux/generic/pending-5.10/762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch index 081d002c7e..fbc8342b0e 100644 --- a/target/linux/generic/pending-5.10/762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch +++ b/target/linux/generic/pending-5.10/762-net-bridge-switchdev-Refactor-br_switchdev_fdb_notif.patch @@ -15,7 +15,7 @@ Reviewed-by: Vladimir Oltean --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c -@@ -102,46 +102,27 @@ int br_switchdev_set_port_flag(struct ne +@@ -102,25 +102,16 @@ int br_switchdev_set_port_flag(struct ne return 0; } @@ -47,6 +47,8 @@ Reviewed-by: Vladimir Oltean + if (!fdb->dst) return; + if (test_bit(BR_FDB_LOCAL, &fdb->flags)) +@@ -128,22 +119,12 @@ br_switchdev_fdb_notify(const struct net switch (type) { case RTM_DELNEIGH: diff --git a/target/linux/generic/pending-5.10/764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch b/target/linux/generic/pending-5.10/764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch index 2317989fa5..0e773888df 100644 --- a/target/linux/generic/pending-5.10/764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch +++ b/target/linux/generic/pending-5.10/764-net-bridge-switchdev-Send-FDB-notifications-for-host.patch @@ -70,14 +70,16 @@ Signed-off-by: Tobias Waldekranz { struct switchdev_notifier_fdb_info info = { .addr = fdb->key.addr.addr, -@@ -112,18 +113,16 @@ br_switchdev_fdb_notify(const struct net +@@ -112,20 +113,19 @@ br_switchdev_fdb_notify(const struct net .local = test_bit(BR_FDB_LOCAL, &fdb->flags), .offloaded = test_bit(BR_FDB_OFFLOADED, &fdb->flags), }; -- ++ struct net_device *dev = fdb->dst ? fdb->dst->dev : br->dev; + - if (!fdb->dst) - return; -+ struct net_device *dev = fdb->dst ? fdb->dst->dev : br->dev; + if (test_bit(BR_FDB_LOCAL, &fdb->flags)) + return; switch (type) { case RTM_DELNEIGH: diff --git a/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch b/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch index b0bdf374d9..a4398f9f8a 100644 --- a/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch +++ b/target/linux/ramips/patches-5.10/720-Revert-net-phy-simplify-phy_link_change-arguments.patch @@ -71,7 +71,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c break; --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -935,14 +935,16 @@ struct phy_device *phy_find_first(struct +@@ -936,14 +936,16 @@ struct phy_device *phy_find_first(struct } EXPORT_SYMBOL(phy_find_first); @@ -107,7 +107,7 @@ still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c bool tx_pause, rx_pause; --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -636,7 +636,7 @@ struct phy_device { +@@ -638,7 +638,7 @@ struct phy_device { u8 mdix; u8 mdix_ctrl; diff --git a/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch b/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch index 59041f0420..c9cbef7429 100644 --- a/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch +++ b/target/linux/ramips/patches-5.10/721-NET-no-auto-carrier-off-support.patch @@ -37,7 +37,7 @@ Signed-off-by: John Crispin break; --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -556,6 +556,7 @@ struct phy_device { +@@ -557,6 +557,7 @@ struct phy_device { unsigned sysfs_links:1; unsigned loopback_enabled:1; unsigned downshifted_rate:1; diff --git a/target/linux/rockchip/patches-5.10/002-net-usb-r8152-add-LED-configuration-from-OF.patch b/target/linux/rockchip/patches-5.10/002-net-usb-r8152-add-LED-configuration-from-OF.patch index 86cfb4e224..c1e2a67272 100644 --- a/target/linux/rockchip/patches-5.10/002-net-usb-r8152-add-LED-configuration-from-OF.patch +++ b/target/linux/rockchip/patches-5.10/002-net-usb-r8152-add-LED-configuration-from-OF.patch @@ -22,7 +22,7 @@ Signed-off-by: David Bauer #include #include #include -@@ -5328,6 +5329,22 @@ static void rtl_tally_reset(struct r8152 +@@ -5300,6 +5301,22 @@ static void rtl_tally_reset(struct r8152 ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); } @@ -45,7 +45,7 @@ Signed-off-by: David Bauer static void r8152b_init(struct r8152 *tp) { u32 ocp_data; -@@ -5369,6 +5386,8 @@ static void r8152b_init(struct r8152 *tp +@@ -5341,6 +5358,8 @@ static void r8152b_init(struct r8152 *tp ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); @@ -54,7 +54,7 @@ Signed-off-by: David Bauer } static void r8153_init(struct r8152 *tp) -@@ -5509,6 +5528,8 @@ static void r8153_init(struct r8152 *tp) +@@ -5486,6 +5505,8 @@ static void r8153_init(struct r8152 *tp) tp->coalesce = COALESCE_SLOW; break; } @@ -63,7 +63,7 @@ Signed-off-by: David Bauer } static void r8153b_init(struct r8152 *tp) -@@ -5595,6 +5616,8 @@ static void r8153b_init(struct r8152 *tp +@@ -5572,6 +5593,8 @@ static void r8153b_init(struct r8152 *tp rtl_tally_reset(tp); tp->coalesce = 15000; /* 15 us */ From 0b0c94d1524b3ab7cea49c1b6c6e6f440db71074 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 4 Apr 2021 11:28:48 +0200 Subject: [PATCH 40/50] mt76: update to the latest version 465dda65ee84 mt7615,mt7915: replace fw log 0-terminating code with wiphy info length limit 62b13f5352b8 mt76: mt7921: fix key set/delete issue 0ff3a336a8d8 mt7615,mt7915: fix a compiler warning 113ba8a81d54 mt76: mt7615: remove redundant dev_err call in mt7622_wmac_probe() be1ab3b9ae7c mt76: mt7921: fix typo in mt7921_pci_resume 4e22f0dc934b mt76: mt7915: fix txpower init for TSSI off chips e66a0b9b8d66 mt76: mt7615: always wake the device in mt7615_remove_interface 38f656768a90 mt76: mt7921: always wake the device in mt7921_remove_interface 6ee4770de083 mt76: mt7921: rework mt7921_mcu_debug_msg_event routine e578b4b8d56a mt76: mt7615: fix .add_beacon_offload() f8c6c7cbf10f mt76: mt7915: fix mt7915_mcu_add_beacon Signed-off-by: Felix Fietkau --- package/kernel/mt76/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index b031a227fd..8d9ed0ee13 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-03-26 -PKG_SOURCE_VERSION:=b8609066893a399b6aabe4df2e80eed52336fc69 -PKG_MIRROR_HASH:=af0729f1b0829c7665f5c5c8e9e8a20207ddc534cfa2566538d446515afcdd7d +PKG_SOURCE_DATE:=2021-04-04 +PKG_SOURCE_VERSION:=f8c6c7cbf10f06d10bb7bbdabfd7517f9f311335 +PKG_MIRROR_HASH:=de5c6e8d2a9572f6ee4614056a1ff2c2059883414edbeba9efdb0e8571609cc8 PKG_MAINTAINER:=Felix Fietkau PKG_BUILD_PARALLEL:=1 From 1db4681617b9aef724c9ccf15e62ba2a91d52564 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Fri, 2 Apr 2021 15:45:02 +0100 Subject: [PATCH 41/50] uboot-mediatek: bpi-r64: no longer force recovery on first-boot Now that sdcard.gz image contains everything needed to boot straight into production image, no longer force booting into recovery image on first boot by removing the logic which implemented that. Signed-off-by: Daniel Golle --- .../patches/403-add-bananapi_bpi-r64_defconfigs.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch index a030b4ce3f..b550ae4156 100644 --- a/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/403-add-bananapi_bpi-r64_defconfigs.patch @@ -175,8 +175,8 @@ +bootmenu_6=Install bootloader and recovery to eMMC.=run emmc_init ; run bootmenu_confirm_return +bootmenu_7=Reboot.=reset +bootmenu_8=Reset all settings to factory defaults.=run reset_factory ; reset -+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; run boot_tftp_forever -+boot_first=if button reset ; then run boot_tftp_forever ; fi ; setenv flag_recover 1 ; bootmenu ++boot_default=run bootcmd ; run boot_recovery ; run boot_tftp_forever ++boot_first=if button reset ; then run boot_tftp_forever ; fi ; bootmenu +boot_production=led bpi-r64:pio:green on ; run sdmmc_read_production && bootm $loadaddr#$bootconf +boot_recovery=led bpi-r64:pio:green off ; run sdmmc_read_recovery && bootm $loadaddr#$bootconf +boot_sdmmc=run boot_production ; run boot_recovery @@ -382,8 +382,8 @@ +bootmenu_5=Load recovery system via TFTP then write to eMMC.=setenv noboot 1 ; run boot_tftp_recovery ; setenv noboot ; run bootmenu_confirm_return +bootmenu_6=Reboot.=reset +bootmenu_7=Reset all settings to factory defaults.=run reset_factory ; reset -+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; run boot_tftp_forever -+boot_first=if button reset ; then run boot_tftp_forever ; fi ; setenv flag_recover 1 ; bootmenu ++boot_default=run bootcmd ; run boot_recovery ; run boot_tftp_forever ++boot_first=if button reset ; then run boot_tftp_forever ; fi ; bootmenu +boot_production=led bpi-r64:pio:green on ; run emmc_read_production && bootm $loadaddr#$bootconf +boot_recovery=led bpi-r64:pio:green off ; run emmc_read_recovery && bootm $loadaddr#$bootconf +boot_emmc=run boot_production ; run boot_recovery From faea7becafc634dc882f0ad8f9388862ccd5bd0d Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 12 Nov 2020 19:45:22 +0100 Subject: [PATCH 42/50] ipq40xx: add MikroTik hAP ac2 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds support for the MikroTik RouterBOARD RBD52G-5HacD2HnD-TC (hAP ac²), a indoor dual band, dual-radio 802.11ac wireless AP with integrated omnidirectional antennae, USB port and five 10/100/1000 Mbps Ethernet ports. See https://mikrotik.com/product/hap_ac2 for more info. Specifications: - SoC: Qualcomm Atheros IPQ4018 - RAM: 128 MB - Storage: 16 MB NOR - Wireless: · Built-in IPQ4018 (SoC) 802.11b/g/n 2x2:2, 2.5 dBi antennae · Built-in IPQ4018 (SoC) 802.11a/n/ac 2x2:2, 2.5 dBi antennae - Ethernet: Built-in IPQ4018 (SoC, QCA8075) , 5x 1000/100/10 port, passive PoE in - 1x USB Type A port Installation: Boot the initramfs image via TFTP and then flash the sysupgrade image using "sysupgrade -n" Signed-off-by: Robert Marko --- package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/board-mikrotik_hap-ac2.qca4019 | Bin 0 -> 24324 bytes .../ipq40xx/base-files/etc/board.d/02_network | 6 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 10 + .../base-files/lib/upgrade/platform.sh | 4 + .../arm/boot/dts/qcom-ipq4018-hap-ac2.dts | 272 ++++++++++++++++++ target/linux/ipq40xx/image/mikrotik.mk | 20 ++ .../901-arm-boot-add-dts-files.patch | 3 +- 8 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 package/firmware/ipq-wifi/board-mikrotik_hap-ac2.qca4019 create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-hap-ac2.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index e5f10a1f98..770360443a 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -43,6 +43,7 @@ ALLWIFIBOARDS:= \ linksys_ea8300 \ linksys_mr8300-v0 \ luma_wrtq-329acn \ + mikrotik_hap-ac2 \ mobipromo_cm520-79f \ nec_wg2600hp3 \ plasmacloud_pa1200 \ @@ -126,6 +127,7 @@ $(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300)) $(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300)) $(eval $(call generate-ipq-wifi-package,linksys_mr8300-v0,Linksys MR8300)) $(eval $(call generate-ipq-wifi-package,luma_wrtq-329acn,Luma WRTQ-329ACN)) +$(eval $(call generate-ipq-wifi-package,mikrotik_hap-ac2,Mikrotik hAP ac2)) $(eval $(call generate-ipq-wifi-package,mobipromo_cm520-79f,MobiPromo CM520-79F)) $(eval $(call generate-ipq-wifi-package,nec_wg2600hp3,NEC Platforms WG2600HP3)) $(eval $(call generate-ipq-wifi-package,plasmacloud_pa1200,Plasma Cloud PA1200)) diff --git a/package/firmware/ipq-wifi/board-mikrotik_hap-ac2.qca4019 b/package/firmware/ipq-wifi/board-mikrotik_hap-ac2.qca4019 new file mode 100644 index 0000000000000000000000000000000000000000..73372c183e1c46d307e25ffb276c456cebddd2bb GIT binary patch literal 24324 zcmeHP|5p>)6(5i<*5b;91c8JhBm@Xe0tBiNP#{E3LPlXJB1CKXrjkIG7!bs;N6!`& zFd{1}OMnQ=!Ebz-Qsq$HRk79G?w+GL{R{l1zms-PPmeu4#lFcTkc0%2Wsv}LlQ-|a zH}B59?=vsVWbTK2oR`bbEs>_C$ob;J++qo&R;wW(nq+(nK?gvoI@`FvvbKs>rB?E* zYn2+lvSxpZrB&5Xsjb1Ase5?Mm0D%xCr$egDeJTiCCWN}ZEg|2vRbHC`+;LH!SR^M z{YF1OKmTn3fkF7OlbB#r0YN*0K@B7nywgCv9lTr#mz#zk3WCzo(*E`1k5Cph2zvYX z>)E!ljq1wEqrT_Pqk0HW&^sW```ov8E$#{hv%z0B!DF=POLex(h-ba2>e&5`i>grM{Ws2-KQ-d9?H43?G-?Q<-D_vUU$Fe=oCVASx zu4lHfdS8yzeOjPOIU1fld8@HwZw=>2l>F)V8AJY+L~TTcVd9u!-xX$KSmom(Wt+T? zeJDKV@o2;4%vx?a9sTZp>z9RB1dY+vUr)3c4qfH9FiyR^rD@AQ$&!U-ycla}FKCEA z5-z!WN7*m!`c(_P_VHBnaPoy1O<2XoLWzvlhCpEOFMhdm7aT_09Z8RlvHitgs{iXC zHYW#mQgRNStN;=v z5+yeXkW0f2Fb>^Y5+w%&$Oef3i2#WJi2#WJi2#WJi2#WJiNJaz;Aw`y({bxPA20o* z$7}U7uOSH3=ky~pubpe(eCEA@qDooJ9{8l@<#PGp!zB>xm$Z+O`@tQP4mUjl@1{ej z{sA>00|Bzj{sG&+1o9OS+r%FMSxp~W2L8B?%>3Z4PKf8kt!E)JcSNp^$j+ffC1uAe zYHIa8U-S=+jNO}@o_X~2&)@#=+WQ@Lc|2S4YLnHFB@c>HI&7IxOAZtjci6I^mi#9w z?674(y$8{)#pXwMlP#8wG96EH#)nH!oa*kobqAZB`>Q*Bqs-UaIH?O%n1L_^43r8< z79=o=paK+?KNo`)I_T zcTZyi{3;-bX64<(R^C0dJ;WvPp8cEUynDbu$hMVL@b2$8pUKtm?s5LRGw&Xc5%*yw zYgyg7=D!2py~q4_;y?uN9@pLS?yVk)%C%p>yZ2nER4Qa&7z_qvUqV7cATP?#%e!}; zMhQz)T3iK%Tw-o3ykR@Oa>X?ue1TbirIL-Ov4Z>~?4 zzQArl)str^_KbT%w?IaqwdPxV?b>thaebAvdk$KLKkR<`+V1OxgX-$@V&7-(G}U9M zF;&kncbMuhxlyQ(o|`rH>CTkri#T%+ura+(RW4%S|C2k^pO6TddrhsF!kDAyn{S$Q z*fFD6pN!2IM^viv!y?|?pNuzj>TySz;p>aZ7kC7HxHXSv3lbX9UuEz z->1?_B_bg(=+)KR3~m_`xDXh24b$k0ReQ|0O}*GTeVHl?o6`@fnxqF4BP<^3RL6*r zj01Q`MpGA7r<0V&nMY06F|GcH>HzkQ-k@rhN)zdGkBm1hA;sV!-5N*)9{Nqc$EtM) zq*1`M15@h6QabiWP-g zX(R~5pgUVG7jaFq*nnQEDwM_%9=IT+>!x#9nNBFBnm;$4#}q(=O^>m!0G2r-K!GCkt@NNIQK zd8TUD;qUI(-^jVhQAeKmen45YHz9sE1U(x*UoXuQ@S~$2-8<8l^BGr5Ir3s$*_(Zl zT_17c<#1z#cn^mW5%T1A{b{KbVTFe22M=FLZK56BdGPW5sv8*>n02&cPmT4*izK`_ zIACV9S$j~*N~A?~8453_H%F9*NFPr8?xyIo7&Yz0On+0g>;R7)7Bp^bZj_-y5sf}G ztnJQg */ + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + model = "MikroTik hAP ac2"; + compatible = "mikrotik,hap-ac2"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x08000000>; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + aliases { + led-boot = &led_user; + led-failsafe = &led_user; + led-running = &led_user; + led-upgrade = &led_user; + }; + + soc { + rng@22000 { + status = "okay"; + }; + + counter@4a1000 { + compatible = "qcom,qca-gcnt"; + reg = <0x4a1000 0x4>; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + usb3@8af8800 { + status = "okay"; + + dwc3@8a00000 { + phys = <&usb3_hs_phy>; + phy-names = "usb2-phy"; + }; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + mode { + label = "mode"; + gpios = <&tlmm 5 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + power { + label = "green:power"; + gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; + default-state = "keep"; + panic-indicator; + }; + + led_user: user { + label = "green:user"; + gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&tlmm { + serial_pins: serial_pinmux { + mux { + pins = "gpio60", "gpio61"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pin { + function = "blsp_spi0"; + pins = "gpio55", "gpio56", "gpio57"; + drive-strength = <2>; + bias-disable; + }; + pin_cs { + function = "gpio"; + pins = "gpio54"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; + + enable-usb-power { + gpio-hog; + gpios = <2 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "enable USB power"; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&blsp1_spi1 { + status = "okay"; + + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <40000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "Qualcomm"; + reg = <0x0 0x80000>; + read-only; + }; + + partition@80000 { + compatible = "mikrotik,routerboot-partitions"; + #address-cells = <1>; + #size-cells = <1>; + label = "RouterBoot"; + reg = <0x80000 0x80000>; + read-only; + + hard_config { + read-only; + }; + + dtb_config { + read-only; + }; + + soft_config { + }; + }; + + partition@100000 { + compatible = "mikrotik,minor"; + label = "firmware"; + reg = <0x100000 0xf00000>; + }; + }; + }; +}; + +&blsp1_uart1 { + status = "okay"; + + pinctrl-0 = <&serial_pins>; + pinctrl-names = "default"; +}; + +&cryptobam { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&mdio { + status = "okay"; +}; + +ðphy0 { + qcom,single-led-1000; + qcom,single-led-100; + qcom,single-led-10; +}; + +ðphy1 { + qcom,single-led-1000; + qcom,single-led-100; + qcom,single-led-10; +}; + +ðphy2 { + qcom,single-led-1000; + qcom,single-led-100; + qcom,single-led-10; +}; + +ðphy3 { + qcom,single-led-1000; + qcom,single-led-100; + qcom,single-led-10; +}; + +ðphy4 { + qcom,single-led-1000; + qcom,single-led-100; + qcom,single-led-10; +}; + +&wifi0 { + status = "okay"; + + qcom,ath10k-calibration-variant = "MikroTik-hAP-ac2"; +}; + +&wifi1 { + status = "okay"; + + qcom,ath10k-calibration-variant = "MikroTik-hAP-ac2"; +}; diff --git a/target/linux/ipq40xx/image/mikrotik.mk b/target/linux/ipq40xx/image/mikrotik.mk index e69de29bb2..9509ef8577 100644 --- a/target/linux/ipq40xx/image/mikrotik.mk +++ b/target/linux/ipq40xx/image/mikrotik.mk @@ -0,0 +1,20 @@ +define Device/mikrotik_nor + DEVICE_VENDOR := MikroTik + BLOCKSIZE := 64k + IMAGE_SIZE := 16128k + KERNEL_NAME := vmlinux + KERNEL := kernel-bin | append-dtb-elf + IMAGES = sysupgrade.bin + IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 | \ + pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \ + append-metadata | check-size +endef + +define Device/mikrotik_hap-ac2 + $(call Device/mikrotik_nor) + DEVICE_MODEL := hAP ac2 + SOC := qcom-ipq4018 + DEVICE_PACKAGES := ipq-wifi-mikrotik_hap-ac2 -kmod-ath10k-ct \ + kmod-ath10k-ct-smallbuffers +endef +TARGET_DEVICES += mikrotik_hap-ac2 diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch index a3d3341587..6a421b9007 100644 --- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -837,11 +837,58 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -837,11 +837,59 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -31,6 +31,7 @@ Signed-off-by: John Crispin + qcom-ipq4018-gl-ap1300.dtb \ + qcom-ipq4018-jalapeno.dtb \ + qcom-ipq4018-meshpoint-one.dtb \ ++ qcom-ipq4018-hap-ac2.dtb \ + qcom-ipq4018-nbg6617.dtb \ + qcom-ipq4019-oap100.dtb \ + qcom-ipq4018-pa1200.dtb \ From 7d5f7439428d2b4c6952af47b36acc010b846372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 13:02:51 +0200 Subject: [PATCH 43/50] firmware-utils: bcm4908img: extract parsing code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move code parsing existing firmware file to separated function. This cleans up existing code and allows reusing parsing code for other commands. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 104 +++++++++++++++++--------- 1 file changed, 67 insertions(+), 37 deletions(-) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index cb1913fdb1..9e81ca1b11 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -49,6 +49,13 @@ struct bcm4908img_tail { uint32_t flags; }; +/* Info about BCM4908 image */ +struct bcm4908img_info { + size_t file_size; + uint32_t crc32; /* Calculated checksum */ + struct bcm4908img_tail tail; +}; + char *pathname; static size_t prefix_len; static size_t suffix_len; @@ -138,6 +145,61 @@ uint32_t bcm4908img_crc32(uint32_t crc, uint8_t *buf, size_t len) { return crc; } +/************************************************** + * Existing firmware parser + **************************************************/ + +static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { + struct bcm4908img_tail *tail = &info->tail; + struct stat st; + uint8_t buf[1024]; + size_t length; + size_t bytes; + int err = 0; + + memset(info, 0, sizeof(*info)); + + /* File size */ + + if (fstat(fileno(fp), &st)) { + err = -errno; + fprintf(stderr, "Failed to fstat: %d\n", err); + return err; + } + info->file_size = st.st_size; + + /* CRC32 */ + + fseek(fp, prefix_len, SEEK_SET); + + info->crc32 = 0xffffffff; + length = info->file_size - prefix_len - sizeof(*tail) - suffix_len; + while (length && (bytes = fread(buf, 1, bcm4908img_min(sizeof(buf), length), fp)) > 0) { + info->crc32 = bcm4908img_crc32(info->crc32, buf, bytes); + length -= bytes; + } + if (length) { + fprintf(stderr, "Failed to read last %zd B of data\n", length); + return -EIO; + } + + /* Tail */ + + if (fread(tail, 1, sizeof(*tail), fp) != sizeof(*tail)) { + fprintf(stderr, "Failed to read BCM4908 image tail\n"); + return -EIO; + } + + /* Standard validation */ + + if (info->crc32 != le32_to_cpu(tail->crc32)) { + fprintf(stderr, "Invalid data crc32: 0x%08x instead of 0x%08x\n", info->crc32, le32_to_cpu(tail->crc32)); + return -EPROTO; + } + + return 0; +} + /************************************************** * Check **************************************************/ @@ -158,12 +220,7 @@ static void bcm4908img_check_parse_options(int argc, char **argv) { } static int bcm4908img_check(int argc, char **argv) { - struct bcm4908img_tail tail; - struct stat st; - uint8_t buf[1024]; - uint32_t crc32; - size_t length; - size_t bytes; + struct bcm4908img_info info; FILE *fp; int err = 0; @@ -177,12 +234,6 @@ static int bcm4908img_check(int argc, char **argv) { optind = 3; bcm4908img_check_parse_options(argc, argv); - if (stat(pathname, &st)) { - fprintf(stderr, "Failed to stat %s\n", pathname); - err = -EIO; - goto out; - } - fp = fopen(pathname, "r"); if (!fp) { fprintf(stderr, "Failed to open %s\n", pathname); @@ -190,34 +241,13 @@ static int bcm4908img_check(int argc, char **argv) { goto out; } - fseek(fp, prefix_len, SEEK_SET); - - crc32 = 0xffffffff; - length = st.st_size - prefix_len - sizeof(tail) - suffix_len; - while (length && (bytes = fread(buf, 1, bcm4908img_min(sizeof(buf), length), fp)) > 0) { - crc32 = bcm4908img_crc32(crc32, buf, bytes); - length -= bytes; - } - - if (length) { - fprintf(stderr, "Failed to read last %zd B of data from %s\n", length, pathname); - err = -EIO; + err = bcm4908img_parse(fp, &info); + if (err) { + fprintf(stderr, "Failed to parse %s\n", pathname); goto err_close; } - if (fread(&tail, 1, sizeof(tail), fp) != sizeof(tail)) { - fprintf(stderr, "Failed to read BCM4908 image tail\n"); - err = -EIO; - goto err_close; - } - - if (crc32 != le32_to_cpu(tail.crc32)) { - fprintf(stderr, "Invalid data crc32: 0x%08x instead of 0x%08x\n", crc32, le32_to_cpu(tail.crc32)); - err = -EPROTO; - goto err_close; - } - - printf("Found a valid BCM4908 image (crc: 0x%08x)\n", crc32); + printf("Found a valid BCM4908 image (crc: 0x%08x)\n", info.crc32); err_close: fclose(fp); From a39f85d8b66125f07c4bcbea46b296946de60dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 13:59:02 +0200 Subject: [PATCH 44/50] firmware-utils: bcm4908img: detect Netgear vendor firmware MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Netgear uses CHK header which needs to be skipped when validating BCM4908 image. Detect it directly in the bcm4908img tool. Dealing with binary structs and endianess is way simpler in C. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 58 +++++++++++++++------------ 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index 9e81ca1b11..9cb16a12ee 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -20,9 +20,13 @@ #if __BYTE_ORDER == __BIG_ENDIAN #define cpu_to_le32(x) bswap_32(x) #define le32_to_cpu(x) bswap_32(x) +#define cpu_to_be32(x) (x) +#define be32_to_cpu(x) (x) #elif __BYTE_ORDER == __LITTLE_ENDIAN #define cpu_to_le32(x) (x) #define le32_to_cpu(x) (x) +#define cpu_to_be32(x) bswap_32(x) +#define be32_to_cpu(x) bswap_32(x) #else #error "Unsupported endianness" #endif @@ -52,13 +56,12 @@ struct bcm4908img_tail { /* Info about BCM4908 image */ struct bcm4908img_info { size_t file_size; + size_t vendor_header_size; /* Vendor header size */ uint32_t crc32; /* Calculated checksum */ struct bcm4908img_tail tail; }; char *pathname; -static size_t prefix_len; -static size_t suffix_len; static inline size_t bcm4908img_min(size_t x, size_t y) { return x < y ? x : y; @@ -149,8 +152,22 @@ uint32_t bcm4908img_crc32(uint32_t crc, uint8_t *buf, size_t len) { * Existing firmware parser **************************************************/ +struct chk_header { + uint32_t magic; + uint32_t header_len; + uint8_t reserved[8]; + uint32_t kernel_chksum; + uint32_t rootfs_chksum; + uint32_t kernel_len; + uint32_t rootfs_len; + uint32_t image_chksum; + uint32_t header_chksum; + char board_id[0]; +}; + static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { struct bcm4908img_tail *tail = &info->tail; + struct chk_header *chk; struct stat st; uint8_t buf[1024]; size_t length; @@ -168,12 +185,23 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { } info->file_size = st.st_size; + /* Vendor formats */ + + rewind(fp); + if (fread(buf, 1, sizeof(buf), fp) != sizeof(buf)) { + fprintf(stderr, "Failed to read file header\n"); + return -EIO; + } + chk = (void *)buf; + if (be32_to_cpu(chk->magic) == 0x2a23245e) + info->vendor_header_size = be32_to_cpu(chk->header_len); + /* CRC32 */ - fseek(fp, prefix_len, SEEK_SET); + fseek(fp, info->vendor_header_size, SEEK_SET); info->crc32 = 0xffffffff; - length = info->file_size - prefix_len - sizeof(*tail) - suffix_len; + length = info->file_size - info->vendor_header_size - sizeof(*tail); while (length && (bytes = fread(buf, 1, bcm4908img_min(sizeof(buf), length), fp)) > 0) { info->crc32 = bcm4908img_crc32(info->crc32, buf, bytes); length -= bytes; @@ -204,21 +232,6 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { * Check **************************************************/ -static void bcm4908img_check_parse_options(int argc, char **argv) { - int c; - - while ((c = getopt(argc, argv, "p:s:")) != -1) { - switch (c) { - case 'p': - prefix_len = atoi(optarg); - break; - case 's': - suffix_len = atoi(optarg); - break; - } - } -} - static int bcm4908img_check(int argc, char **argv) { struct bcm4908img_info info; FILE *fp; @@ -231,9 +244,6 @@ static int bcm4908img_check(int argc, char **argv) { } pathname = argv[2]; - optind = 3; - bcm4908img_check_parse_options(argc, argv); - fp = fopen(pathname, "r"); if (!fp) { fprintf(stderr, "Failed to open %s\n", pathname); @@ -399,9 +409,7 @@ static void usage() { printf("Usage:\n"); printf("\n"); printf("Checking a BCM4908 image:\n"); - printf("\tbcm4908img check [options]\tcheck if images is valid\n"); - printf("\t-p prefix\t\t\tlength of custom header to skip (default: 0)\n"); - printf("\t-s suffix\t\t\tlength of custom tail to skip (default: 0)\n"); + printf("\tbcm4908img check \t\t\tcheck if images is valid\n"); printf("\n"); printf("Creating a new BCM4908 image:\n"); printf("\tbcm4908img create [options]\n"); From d533b27bc09eb5323a05ed44589235a86edcda0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Sun, 4 Apr 2021 14:53:00 +0200 Subject: [PATCH 45/50] firmware-utils: bcm4908img: support reading from stdin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Don't allow pipe stdin as we need to fseek() 2. Don't alow TTY as it doesn't make sense for binary input Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 46 ++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index 9cb16a12ee..16e0afe9de 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -148,6 +148,39 @@ uint32_t bcm4908img_crc32(uint32_t crc, uint8_t *buf, size_t len) { return crc; } +/************************************************** + * Helpers + **************************************************/ + +static FILE *bcm4908img_open(const char *pathname, const char *mode) { + struct stat st; + + if (pathname) + return fopen(pathname, mode); + + if (isatty(fileno(stdin))) { + fprintf(stderr, "Reading from TTY stdin is unsupported\n"); + return NULL; + } + + if (fstat(fileno(stdin), &st)) { + fprintf(stderr, "Failed to fstat stdin: %d\n", -errno); + return NULL; + } + + if (S_ISFIFO(st.st_mode)) { + fprintf(stderr, "Reading from pipe stdin is unsupported\n"); + return NULL; + } + + return stdin; +} + +static void bcm4908img_close(FILE *fp) { + if (fp != stdin) + fclose(fp); +} + /************************************************** * Existing firmware parser **************************************************/ @@ -234,17 +267,14 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { static int bcm4908img_check(int argc, char **argv) { struct bcm4908img_info info; + const char *pathname = NULL; FILE *fp; int err = 0; - if (argc < 3) { - fprintf(stderr, "No BCM4908 image pathname passed\n"); - err = -EINVAL; - goto out; - } - pathname = argv[2]; + if (argc >= 3) + pathname = argv[2]; - fp = fopen(pathname, "r"); + fp = bcm4908img_open(pathname, "r"); if (!fp) { fprintf(stderr, "Failed to open %s\n", pathname); err = -EACCES; @@ -260,7 +290,7 @@ static int bcm4908img_check(int argc, char **argv) { printf("Found a valid BCM4908 image (crc: 0x%08x)\n", info.crc32); err_close: - fclose(fp); + bcm4908img_close(fp); out: return err; } From 9b9184f1782489163eb204f3b238de778ae1214b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 14:12:58 +0200 Subject: [PATCH 46/50] firmware-utils: bcm4908img: use "info" command displaying file info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BCM4908 image format contains some info that may be useful for info / debugging purposes. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 31 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index 16e0afe9de..56a790423b 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -262,32 +262,39 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { } /************************************************** - * Check + * Info **************************************************/ -static int bcm4908img_check(int argc, char **argv) { +static int bcm4908img_info(int argc, char **argv) { struct bcm4908img_info info; const char *pathname = NULL; FILE *fp; + int c; int err = 0; - if (argc >= 3) - pathname = argv[2]; + while ((c = getopt(argc, argv, "i:")) != -1) { + switch (c) { + case 'i': + pathname = optarg; + break; + } + } fp = bcm4908img_open(pathname, "r"); if (!fp) { - fprintf(stderr, "Failed to open %s\n", pathname); + fprintf(stderr, "Failed to open BCM4908 image\n"); err = -EACCES; goto out; } err = bcm4908img_parse(fp, &info); if (err) { - fprintf(stderr, "Failed to parse %s\n", pathname); + fprintf(stderr, "Failed to parse BCM4908 image\n"); goto err_close; } - printf("Found a valid BCM4908 image (crc: 0x%08x)\n", info.crc32); + printf("Vendor header length:\t%zu\n", info.vendor_header_size); + printf("Checksum:\t0x%08x\n", info.crc32); err_close: bcm4908img_close(fp); @@ -438,8 +445,9 @@ out: static void usage() { printf("Usage:\n"); printf("\n"); - printf("Checking a BCM4908 image:\n"); - printf("\tbcm4908img check \t\t\tcheck if images is valid\n"); + printf("Info about a BCM4908 image:\n"); + printf("\tbcm4908img info \n"); + printf("\t-i \t\t\t\tinput BCM490 image\n"); printf("\n"); printf("Creating a new BCM4908 image:\n"); printf("\tbcm4908img create [options]\n"); @@ -450,8 +458,9 @@ static void usage() { int main(int argc, char **argv) { if (argc > 1) { - if (!strcmp(argv[1], "check")) - return bcm4908img_check(argc, argv); + optind++; + if (!strcmp(argv[1], "info")) + return bcm4908img_info(argc, argv); else if (!strcmp(argv[1], "create")) return bcm4908img_create(argc, argv); } From 6af45b842bd22633fa3ccd57edaf073a759525bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 15:04:46 +0200 Subject: [PATCH 47/50] firmware-utils: bcm4908img: find cferom size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's important for modifying / extracting firmware content. cferom is optional image content at the file beginning. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index 56a790423b..b04916443b 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -22,11 +22,19 @@ #define le32_to_cpu(x) bswap_32(x) #define cpu_to_be32(x) (x) #define be32_to_cpu(x) (x) +#define cpu_to_le16(x) bswap_16(x) +#define le16_to_cpu(x) bswap_16(x) +#define cpu_to_be16(x) (x) +#define be16_to_cpu(x) (x) #elif __BYTE_ORDER == __LITTLE_ENDIAN #define cpu_to_le32(x) (x) #define le32_to_cpu(x) (x) #define cpu_to_be32(x) bswap_32(x) #define be32_to_cpu(x) bswap_32(x) +#define cpu_to_le16(x) (x) +#define le16_to_cpu(x) (x) +#define cpu_to_be16(x) bswap_16(x) +#define be16_to_cpu(x) bswap_16(x) #else #error "Unsupported endianness" #endif @@ -57,6 +65,7 @@ struct bcm4908img_tail { struct bcm4908img_info { size_t file_size; size_t vendor_header_size; /* Vendor header size */ + size_t cferom_size; uint32_t crc32; /* Calculated checksum */ struct bcm4908img_tail tail; }; @@ -203,6 +212,7 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { struct chk_header *chk; struct stat st; uint8_t buf[1024]; + uint16_t tmp16; size_t length; size_t bytes; int err = 0; @@ -229,6 +239,26 @@ static int bcm4908img_parse(FILE *fp, struct bcm4908img_info *info) { if (be32_to_cpu(chk->magic) == 0x2a23245e) info->vendor_header_size = be32_to_cpu(chk->header_len); + /* Sizes */ + + for (; info->vendor_header_size + info->cferom_size <= info->file_size; info->cferom_size += 0x20000) { + if (fseek(fp, info->vendor_header_size + info->cferom_size, SEEK_SET)) { + err = -errno; + fprintf(stderr, "Failed to fseek to the 0x%zx\n", info->cferom_size); + return err; + } + if (fread(&tmp16, 1, sizeof(tmp16), fp) != sizeof(tmp16)) { + fprintf(stderr, "Failed to read while looking for JFFS2\n"); + return -EIO; + } + if (be16_to_cpu(tmp16) == 0x8519) + break; + } + if (info->vendor_header_size + info->cferom_size >= info->file_size) { + fprintf(stderr, "Failed to find cferom size (no bootfs found)\n"); + return -EPROTO; + } + /* CRC32 */ fseek(fp, info->vendor_header_size, SEEK_SET); @@ -294,6 +324,7 @@ static int bcm4908img_info(int argc, char **argv) { } printf("Vendor header length:\t%zu\n", info.vendor_header_size); + printf("cferom size:\t0x%zx\n", info.cferom_size); printf("Checksum:\t0x%08x\n", info.crc32); err_close: From 9c039d56a154bb416492bf5657093576d50cc220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 16:31:43 +0200 Subject: [PATCH 48/50] firmware-utils: bcm4908img: support extracting image data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's useful for upgrading cferom, firmware, etc. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 87 +++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index b04916443b..7e9cba299d 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -469,6 +469,86 @@ out: return err; } +/************************************************** + * Extract + **************************************************/ + +static int bcm4908img_extract(int argc, char **argv) { + struct bcm4908img_info info; + const char *pathname = NULL; + uint8_t buf[1024]; + const char *type; + size_t offset; + size_t length; + size_t bytes; + FILE *fp; + int c; + int err = 0; + + while ((c = getopt(argc, argv, "i:t:")) != -1) { + switch (c) { + case 'i': + pathname = optarg; + break; + case 't': + type = optarg; + break; + } + } + + fp = bcm4908img_open(pathname, "r"); + if (!fp) { + fprintf(stderr, "Failed to open BCM4908 image\n"); + err = -EACCES; + goto err_out; + } + + err = bcm4908img_parse(fp, &info); + if (err) { + fprintf(stderr, "Failed to parse BCM4908 image\n"); + goto err_close; + } + + if (!strcmp(type, "cferom")) { + offset = 0; + length = info.cferom_size; + if (!length) { + err = -ENOENT; + fprintf(stderr, "This BCM4908 image doesn't contain cferom\n"); + goto err_close; + } + } else if (!strcmp(type, "firmware")) { + offset = info.vendor_header_size + info.cferom_size; + length = info.file_size - offset - sizeof(struct bcm4908img_tail); + } else { + err = -EINVAL; + fprintf(stderr, "Unsupported extract type: %s\n", type); + goto err_close; + } + + if (!length) { + err = -EINVAL; + fprintf(stderr, "No data to extract specified\n"); + goto err_close; + } + + fseek(fp, offset, SEEK_SET); + while (length && (bytes = fread(buf, 1, bcm4908img_min(sizeof(buf), length), fp)) > 0) { + fwrite(buf, bytes, 1, stdout); + length -= bytes; + } + if (length) { + err = -EIO; + fprintf(stderr, "Failed to read last %zd B of data\n", length); + goto err_close; + } + +err_close: + bcm4908img_close(fp); +err_out: + return err; +} + /************************************************** * Start **************************************************/ @@ -485,6 +565,11 @@ static void usage() { printf("\t-f file\t\t\t\tadd data from specified file\n"); printf("\t-a alignment\t\t\tpad image with zeros to specified alignment\n"); printf("\t-A offset\t\t\t\tappend zeros until reaching specified offset\n"); + printf("\n"); + printf("Extracting from a BCM4908 image:\n"); + printf("\tbcm4908img extract \n"); + printf("\t-i \t\t\t\tinput BCM490 image\n"); + printf("\t-t \t\t\t\tone of: cferom, bootfs, rootfs, firmware\n"); } int main(int argc, char **argv) { @@ -494,6 +579,8 @@ int main(int argc, char **argv) { return bcm4908img_info(argc, argv); else if (!strcmp(argv[1], "create")) return bcm4908img_create(argc, argv); + else if (!strcmp(argv[1], "extract")) + return bcm4908img_extract(argc, argv); } usage(); From ed847ef5f340dcae1556cbc6dfaa6657a5179be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Fri, 2 Apr 2021 17:28:21 +0200 Subject: [PATCH 49/50] firmware-utils: bcm4908img: add bootfs support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds support for accessing bootfs JFFS2 partition in the BCM4908 image. Support includes: 1. Listing files 2. Renaming file (requires unchanged name length) Above commands are useful for flashing BCM4908 images which by defualt come with cferom.000 file and require renaming it. Signed-off-by: Rafał Miłecki --- tools/firmware-utils/src/bcm4908img.c | 340 +++++++++++++++++++++++++- 1 file changed, 337 insertions(+), 3 deletions(-) diff --git a/tools/firmware-utils/src/bcm4908img.c b/tools/firmware-utils/src/bcm4908img.c index 7e9cba299d..536056d42a 100644 --- a/tools/firmware-utils/src/bcm4908img.c +++ b/tools/firmware-utils/src/bcm4908img.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,8 @@ #define WFI_FLAG_HAS_PMC 0x1 #define WFI_FLAG_SUPPORTS_BTRM 0x2 +static int debug; + struct bcm4908img_tail { uint32_t crc32; uint32_t version; @@ -147,10 +150,12 @@ static const uint32_t crc32_tbl[] = { 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, }; -uint32_t bcm4908img_crc32(uint32_t crc, uint8_t *buf, size_t len) { +uint32_t bcm4908img_crc32(uint32_t crc, const void *buf, size_t len) { + const uint8_t *in = buf; + while (len) { - crc = crc32_tbl[(crc ^ *buf) & 0xff] ^ (crc >> 8); - buf++; + crc = crc32_tbl[(crc ^ *in) & 0xff] ^ (crc >> 8); + in++; len--; } @@ -190,6 +195,27 @@ static void bcm4908img_close(FILE *fp) { fclose(fp); } +static int bcm4908img_calc_crc32(FILE *fp, struct bcm4908img_info *info) { + uint8_t buf[1024]; + size_t length; + size_t bytes; + + fseek(fp, info->vendor_header_size, SEEK_SET); + + info->crc32 = 0xffffffff; + length = info->file_size - info->vendor_header_size - sizeof(struct bcm4908img_tail); + while (length && (bytes = fread(buf, 1, bcm4908img_min(sizeof(buf), length), fp)) > 0) { + info->crc32 = bcm4908img_crc32(info->crc32, buf, bytes); + length -= bytes; + } + if (length) { + fprintf(stderr, "Failed to read last %zd B of data\n", length); + return -EIO; + } + + return 0; +} + /************************************************** * Existing firmware parser **************************************************/ @@ -549,6 +575,306 @@ err_out: return err; } +/************************************************** + * bootfs + **************************************************/ + +#define JFFS2_MAGIC_BITMASK 0x1985 + +#define JFFS2_COMPR_NONE 0x00 +#define JFFS2_COMPR_ZERO 0x01 +#define JFFS2_COMPR_RTIME 0x02 +#define JFFS2_COMPR_RUBINMIPS 0x03 +#define JFFS2_COMPR_COPY 0x04 +#define JFFS2_COMPR_DYNRUBIN 0x05 +#define JFFS2_COMPR_ZLIB 0x06 +#define JFFS2_COMPR_LZO 0x07 +/* Compatibility flags. */ +#define JFFS2_COMPAT_MASK 0xc000 /* What do to if an unknown nodetype is found */ +#define JFFS2_NODE_ACCURATE 0x2000 +/* INCOMPAT: Fail to mount the filesystem */ +#define JFFS2_FEATURE_INCOMPAT 0xc000 +/* ROCOMPAT: Mount read-only */ +#define JFFS2_FEATURE_ROCOMPAT 0x8000 +/* RWCOMPAT_COPY: Mount read/write, and copy the node when it's GC'd */ +#define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000 +/* RWCOMPAT_DELETE: Mount read/write, and delete the node when it's GC'd */ +#define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000 + +#define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1) + +typedef struct { + uint32_t v32; +} __attribute__((packed)) jint32_t; + +typedef struct { + uint16_t v16; +} __attribute__((packed)) jint16_t; + +struct jffs2_unknown_node +{ + /* All start like this */ + jint16_t magic; + jint16_t nodetype; + jint32_t totlen; /* So we can skip over nodes we don't grok */ + jint32_t hdr_crc; +}; + +struct jffs2_raw_dirent +{ + jint16_t magic; + jint16_t nodetype; /* == JFFS2_NODETYPE_DIRENT */ + jint32_t totlen; + jint32_t hdr_crc; + jint32_t pino; + jint32_t version; + jint32_t ino; /* == zero for unlink */ + jint32_t mctime; + uint8_t nsize; + uint8_t type; + uint8_t unused[2]; + jint32_t node_crc; + jint32_t name_crc; + uint8_t name[0]; +}; + +#define je16_to_cpu(x) ((x).v16) +#define je32_to_cpu(x) ((x).v32) + +static int bcm4908img_bootfs_ls(FILE *fp, struct bcm4908img_info *info) { + struct jffs2_unknown_node node; + struct jffs2_raw_dirent dirent; + size_t offset; + size_t bytes; + int err = 0; + + for (offset = info->vendor_header_size + info->cferom_size; ; offset += (je32_to_cpu(node.totlen) + 0x03) & ~0x03) { + char name[FILENAME_MAX + 1]; + + if (fseek(fp, offset, SEEK_SET)) { + err = -errno; + fprintf(stderr, "Failed to fseek: %d\n", err); + return err; + } + + bytes = fread(&node, 1, sizeof(node), fp); + if (bytes != sizeof(node)) { + fprintf(stderr, "Failed to read %zu bytes\n", sizeof(node)); + return -EIO; + } + + if (je16_to_cpu(node.magic) != JFFS2_MAGIC_BITMASK) { + break; + } + + if (je16_to_cpu(node.nodetype) != JFFS2_NODETYPE_DIRENT) { + continue; + } + + memcpy(&dirent, &node, sizeof(node)); + bytes += fread((uint8_t *)&dirent + sizeof(node), 1, sizeof(dirent) - sizeof(node), fp); + if (bytes != sizeof(dirent)) { + fprintf(stderr, "Failed to read %zu bytes\n", sizeof(node)); + return -EIO; + } + + if (dirent.nsize + 1 > sizeof(name)) { + /* Keep reading & printing BUT exit with error code */ + fprintf(stderr, "Too long filename\n"); + err = -ENOMEM; + continue; + } + + bytes = fread(name, 1, dirent.nsize, fp); + if (bytes != dirent.nsize) { + fprintf(stderr, "Failed to read filename\n"); + return -EIO; + } + name[bytes] = '\0'; + + printf("%s\n", name); + } + + return err; +} + +static int bcm4908img_bootfs_mv(FILE *fp, struct bcm4908img_info *info, int argc, char **argv) { + struct jffs2_unknown_node node; + struct jffs2_raw_dirent dirent; + const char *oldname; + const char *newname; + size_t offset; + size_t bytes; + int err = -ENOENT; + + if (argc - optind < 2) { + fprintf(stderr, "No enough arguments passed\n"); + return -EINVAL; + } + oldname = argv[optind++]; + newname = argv[optind++]; + + if (strlen(newname) != strlen(oldname)) { + fprintf(stderr, "New filename must have the same length as the old one\n"); + return -EINVAL; + } + + for (offset = info->vendor_header_size + info->cferom_size; ; offset += (je32_to_cpu(node.totlen) + 0x03) & ~0x03) { + char name[FILENAME_MAX]; + uint32_t crc32; + + if (fseek(fp, offset, SEEK_SET)) { + err = -errno; + fprintf(stderr, "Failed to fseek: %d\n", err); + return err; + } + + bytes = fread(&node, 1, sizeof(node), fp); + if (bytes != sizeof(node)) { + fprintf(stderr, "Failed to read %zu bytes\n", sizeof(node)); + return -EIO; + } + + if (je16_to_cpu(node.magic) != JFFS2_MAGIC_BITMASK) { + break; + } + + if (je16_to_cpu(node.nodetype) != JFFS2_NODETYPE_DIRENT) { + continue; + } + + bytes += fread((uint8_t *)&dirent + sizeof(node), 1, sizeof(dirent) - sizeof(node), fp); + if (bytes != sizeof(dirent)) { + fprintf(stderr, "Failed to read %zu bytes\n", sizeof(node)); + return -EIO; + } + + if (dirent.nsize + 1 > sizeof(name)) { + fprintf(stderr, "Too long filename\n"); + err = -ENOMEM; + continue; + } + + bytes = fread(name, 1, dirent.nsize, fp); + if (bytes != dirent.nsize) { + fprintf(stderr, "Failed to read filename\n"); + return -EIO; + } + name[bytes] = '\0'; + + if (debug) + printf("offset:%08zx name_crc:%04x filename:%s\n", offset, je32_to_cpu(dirent.name_crc), name); + + if (strcmp(name, oldname)) { + continue; + } + + if (fseek(fp, offset + offsetof(struct jffs2_raw_dirent, name_crc), SEEK_SET)) { + err = -errno; + fprintf(stderr, "Failed to fseek: %d\n", err); + return err; + } + crc32 = bcm4908img_crc32(0, newname, dirent.nsize); + bytes = fwrite(&crc32, 1, sizeof(crc32), fp); + if (bytes != sizeof(crc32)) { + fprintf(stderr, "Failed to write new CRC32\n"); + return -EIO; + } + + if (fseek(fp, offset + offsetof(struct jffs2_raw_dirent, name), SEEK_SET)) { + err = -errno; + fprintf(stderr, "Failed to fseek: %d\n", err); + return err; + } + bytes = fwrite(newname, 1, dirent.nsize, fp); + if (bytes != dirent.nsize) { + fprintf(stderr, "Failed to write new filename\n"); + return -EIO; + } + + /* Calculate new BCM4908 image checksum */ + + err = bcm4908img_calc_crc32(fp, info); + if (err) { + fprintf(stderr, "Failed to write new filename\n"); + return err; + } + + info->tail.crc32 = cpu_to_le32(info->crc32); + if (fseek(fp, -sizeof(struct bcm4908img_tail), SEEK_END)) { + err = -errno; + fprintf(stderr, "Failed to write new filename\n"); + return err; + } + + if (fwrite(&info->tail, 1, sizeof(struct bcm4908img_tail), fp) != sizeof(struct bcm4908img_tail)) { + fprintf(stderr, "Failed to write updated tail\n"); + return -EIO; + } + + printf("Successfully renamed %s to the %s\n", oldname, newname); + + return 0; + } + + fprintf(stderr, "Failed to find %s\n", oldname); + + return -ENOENT; +} + +static int bcm4908img_bootfs(int argc, char **argv) { + struct bcm4908img_info info; + const char *pathname = NULL; + const char *mode; + const char *cmd; + FILE *fp; + int c; + int err = 0; + + while ((c = getopt(argc, argv, "i:")) != -1) { + switch (c) { + case 'i': + pathname = optarg; + break; + } + } + + if (argc - optind < 1) { + fprintf(stderr, "No bootfs command specified\n"); + err = -EINVAL; + goto out; + } + cmd = argv[optind++]; + + mode = strcmp(cmd, "mv") ? "r" : "r+"; + fp = bcm4908img_open(pathname, mode); + if (!fp) { + fprintf(stderr, "Failed to open BCM4908 image\n"); + err = -EACCES; + goto out; + } + + err = bcm4908img_parse(fp, &info); + if (err) { + fprintf(stderr, "Failed to parse BCM4908 image\n"); + goto err_close; + } + + if (!strcmp(cmd, "ls")) { + err = bcm4908img_bootfs_ls(fp, &info); + } else if (!strcmp(cmd, "mv")) { + err = bcm4908img_bootfs_mv(fp, &info, argc, argv); + } else { + err = -EINVAL; + fprintf(stderr, "Unsupported bootfs command: %s\n", cmd); + } + +err_close: + bcm4908img_close(fp); +out: + return err; +} + /************************************************** * Start **************************************************/ @@ -570,6 +896,12 @@ static void usage() { printf("\tbcm4908img extract \n"); printf("\t-i \t\t\t\tinput BCM490 image\n"); printf("\t-t \t\t\t\tone of: cferom, bootfs, rootfs, firmware\n"); + printf("\n"); + printf("Access bootfs in a BCM4908 image:\n"); + printf("\tbcm4908img bootfs \n"); + printf("\t-i \t\t\t\tinput BCM490 image\n"); + printf("\tls\t\t\t\t\tlist bootfs files\n"); + printf("\tmv \t\t\trename bootfs file\n"); } int main(int argc, char **argv) { @@ -581,6 +913,8 @@ int main(int argc, char **argv) { return bcm4908img_create(argc, argv); else if (!strcmp(argv[1], "extract")) return bcm4908img_extract(argc, argv); + else if (!strcmp(argv[1], "bootfs")) + return bcm4908img_bootfs(argc, argv); } usage(); From 180c4635265b4907221a62b3068ac89447cd83d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 5 Apr 2021 10:44:46 +0200 Subject: [PATCH 50/50] bcm4908: enable JFFS2 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's needed for accessing JFFS2 bootfs partition. Signed-off-by: Rafał Miłecki --- target/linux/bcm4908/config-5.4 | 1 - 1 file changed, 1 deletion(-) diff --git a/target/linux/bcm4908/config-5.4 b/target/linux/bcm4908/config-5.4 index 72ecdc0454..22bcdd4784 100644 --- a/target/linux/bcm4908/config-5.4 +++ b/target/linux/bcm4908/config-5.4 @@ -121,7 +121,6 @@ CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y -# CONFIG_JFFS2_FS is not set CONFIG_LEDS_GPIO=y CONFIG_LIBFDT=y CONFIG_LOCK_DEBUGGING_SUPPORT=y