ramips: rt288x: replace hack with a kconfig change
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@gmail.com> Cc: Tobias Wolf <dev-NTEO@vplace.de> Cc: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
f99c9cd9c4
commit
5f07c579f8
2 changed files with 32 additions and 45 deletions
|
@ -0,0 +1,32 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ilya Lipnitskiy <ilya.lipnitskiy@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@gmail.com>
|
||||||
|
Cc: Mike Rapoport <rppt@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
|
|
@ -1,45 +0,0 @@
|
||||||
From: Tobias Wolf <dev-NTEO@vplace.de>
|
|
||||||
Subject: [v2] MIPS: Fix memory reservation in bootmem_init for certain non-usermem setups
|
|
||||||
|
|
||||||
Commit 67a3ba25aa95 ("MIPS: Fix incorrect mem=X@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@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;
|
|
Loading…
Reference in a new issue