summaryrefslogtreecommitdiff
path: root/target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch')
-rw-r--r--target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch58
1 files changed, 0 insertions, 58 deletions
diff --git a/target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch b/target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch
deleted file mode 100644
index ad072ec54e..0000000000
--- a/target/linux/ramips/patches-5.10/325-mt7621-fix-memory-detect.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- a/arch/mips/ralink/mt7621.c
-+++ b/arch/mips/ralink/mt7621.c
-@@ -56,7 +56,9 @@
- #define MT7621_GPIO_MODE_SDHCI_SHIFT 18
- #define MT7621_GPIO_MODE_SDHCI_GPIO 1
-
--static void *detect_magic __initdata = detect_memory_region;
-+#define MT7621_MEM_TEST_PATTERN 0xaa5555aa
-+
-+static u32 detect_magic __initdata;
-
- static struct rt2880_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) };
- static struct rt2880_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) };
-@@ -142,24 +144,32 @@ static struct clk *__init mt7621_add_sys
- return clk;
- }
-
-+static bool __init mt7621_addr_wraparound_test(phys_addr_t size)
-+{
-+ void *dm = (void *)KSEG1ADDR(&detect_magic);
-+ if (CPHYSADDR(dm + size) >= MT7621_LOWMEM_MAX_SIZE)
-+ return true;
-+ __raw_writel(MT7621_MEM_TEST_PATTERN, dm);
-+ if (__raw_readl(dm) != __raw_readl(dm + size))
-+ return false;
-+ __raw_writel(!MT7621_MEM_TEST_PATTERN, dm);
-+ return __raw_readl(dm) == __raw_readl(dm + size);
-+}
-+
- void __init mt7621_memory_detect(void)
- {
-- void *dm = &detect_magic;
- phys_addr_t size;
-
-- for (size = 32 * SZ_1M; size < 256 * SZ_1M; size <<= 1) {
-- if (!__builtin_memcmp(dm, dm + size, sizeof(detect_magic)))
-- break;
-+ for (size = 32 * SZ_1M; size <= 256 * SZ_1M; size <<= 1) {
-+ if (mt7621_addr_wraparound_test(size)) {
-+ memblock_add(MT7621_LOWMEM_BASE, size);
-+ return;
-+ }
- }
-
-- if ((size == 256 * SZ_1M) &&
-- (CPHYSADDR(dm + size) < MT7621_LOWMEM_MAX_SIZE) &&
-- __builtin_memcmp(dm, dm + size, sizeof(detect_magic))) {
-- memblock_add(MT7621_LOWMEM_BASE, MT7621_LOWMEM_MAX_SIZE);
-- memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
-- } else {
-- memblock_add(MT7621_LOWMEM_BASE, size);
-- }
-+ /* addr doesn't wrap around at dm + 256M, assume 512M memory. */
-+ memblock_add(MT7621_LOWMEM_BASE, MT7621_LOWMEM_MAX_SIZE);
-+ memblock_add(MT7621_HIGHMEM_BASE, MT7621_HIGHMEM_SIZE);
- }
-
- void __init ralink_clk_init(void)