[PATCH] ramips: rt288x: replace hack with a kconfig change

Ilya Lipnitskiy ilya.lipnitskiy at gmail.com
Sun Apr 4 03:26:11 BST 2021


Use an existing kernel config symbol to fix devices whose ramstart is
not zero. See upstream patch message for more details.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy at gmail.com>
Cc: Tobias Wolf <dev-NTEO at vplace.de>
Cc: Daniel Golle <daniel at makrotopia.org>
---
 ...k-rt288x-select-MIPS_AUTO_PFN_OFFSET.patch | 32 +++++++++++++
 ...reservation-in-bootmem_init-for-cert.patch | 45 -------------------
 2 files changed, 32 insertions(+), 45 deletions(-)
 create mode 100644 target/linux/ramips/patches-5.10/201-MIPS-ralink-rt288x-select-MIPS_AUTO_PFN_OFFSET.patch
 delete mode 100644 target/linux/ramips/patches-5.10/310-MIPS-Fix-memory-reservation-in-bootmem_init-for-cert.patch

diff --git a/target/linux/ramips/patches-5.10/201-MIPS-ralink-rt288x-select-MIPS_AUTO_PFN_OFFSET.patch b/target/linux/ramips/patches-5.10/201-MIPS-ralink-rt288x-select-MIPS_AUTO_PFN_OFFSET.patch
new file mode 100644
index 000000000000..2b6bfd2b7b4e
--- /dev/null
+++ b/target/linux/ramips/patches-5.10/201-MIPS-ralink-rt288x-select-MIPS_AUTO_PFN_OFFSET.patch
@@ -0,0 +1,32 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ilya Lipnitskiy <ilya.lipnitskiy at gmail.com>
+Date: Sat, 3 Apr 2021 18:51:44 -0700
+Subject: [PATCH] MIPS: ralink: rt288x: select MIPS_AUTO_PFN_OFFSET
+
+RT288X systems may have a non-zero ramstart causing problems with memory
+reservations and boot hangs, as well as messages like:
+  Wasting 1048576 bytes for tracking 32768 unused pages
+
+Both are alleviated by selecting MIPS_AUTO_PFN_OFFSET for such
+platforms.
+
+Tested on a Belkin F5D8235 v1 RT2880 device.
+
+Link: https://lore.kernel.org/linux-mips/20180820233111.xww5232dxbuouf4n@pburton-laptop/
+
+Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy at gmail.com>
+Cc: Mike Rapoport <rppt at kernel.org>
+---
+ arch/mips/ralink/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/mips/ralink/Kconfig
++++ b/arch/mips/ralink/Kconfig
+@@ -26,6 +26,7 @@ choice
+ 
+ 	config SOC_RT288X
+ 		bool "RT288x"
++		select MIPS_AUTO_PFN_OFFSET
+ 		select MIPS_L1_CACHE_SHIFT_4
+ 		select HAVE_LEGACY_CLK
+ 		select HAVE_PCI
diff --git a/target/linux/ramips/patches-5.10/310-MIPS-Fix-memory-reservation-in-bootmem_init-for-cert.patch b/target/linux/ramips/patches-5.10/310-MIPS-Fix-memory-reservation-in-bootmem_init-for-cert.patch
deleted file mode 100644
index 987ffbf3c41a..000000000000
--- a/target/linux/ramips/patches-5.10/310-MIPS-Fix-memory-reservation-in-bootmem_init-for-cert.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From: Tobias Wolf <dev-NTEO at vplace.de>
-Subject: [v2] MIPS: Fix memory reservation in bootmem_init for certain non-usermem setups
-
-Commit 67a3ba25aa95 ("MIPS: Fix incorrect mem=X at Y handling") introduced a new
-issue for rt288x where "PHYS_OFFSET" is 0x0 but the calculated "ramstart" is
-not. As the prerequisite of custom memory map has been removed, this results
-in the full memory range of 0x0 - 0x8000000 to be marked as reserved for this
-platform.
-
-v2: Correctly compare that usermem is not null.
-
-This patch adds the originally intended prerequisite again.
-
-Signed-off-by: Tobias Wolf <dev-NTEO at vplace.de>
----
-
---- a/arch/mips/kernel/setup.c
-+++ b/arch/mips/kernel/setup.c
-@@ -249,6 +249,8 @@ static unsigned long __init init_initrd(
-  * Initialize the bootmem allocator. It also setup initrd related data
-  * if needed.
-  */
-+static int usermem __initdata;
-+
- #if defined(CONFIG_SGI_IP27) || (defined(CONFIG_CPU_LOONGSON64) && defined(CONFIG_NUMA))
- 
- static void __init bootmem_init(void)
-@@ -288,7 +290,7 @@ static void __init bootmem_init(void)
- 	/*
- 	 * Reserve any memory between the start of RAM and PHYS_OFFSET
- 	 */
--	if (ramstart > PHYS_OFFSET)
-+	if (usermem && ramstart > PHYS_OFFSET)
- 		memblock_reserve(PHYS_OFFSET, ramstart - PHYS_OFFSET);
- 
- 	if (PFN_UP(ramstart) > ARCH_PFN_OFFSET) {
-@@ -336,8 +338,6 @@ static void __init bootmem_init(void)
- 
- #endif	/* CONFIG_SGI_IP27 */
- 
--static int usermem __initdata;
--
- static int __init early_parse_mem(char *p)
- {
- 	phys_addr_t start, size;
-- 
2.31.1




More information about the openwrt-devel mailing list