aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/arm/mm/init.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@armlinux.org.uk>2019-07-03 10:30:58 +0100
committerRussell King <rmk+kernel@armlinux.org.uk>2019-07-08 11:32:21 +0100
commit5ccd3bd992cf668b5a6fa1713da7b443a35e2930 (patch)
treee55f60946cf658ab396a1a0401833b67e71de196 /arch/arm/mm/init.c
parentARM: 8867/1: vdso: pass --be8 to linker if necessary (diff)
parentARM: 8863/1: stm32: select ARM errata 814220 (diff)
downloadwireguard-linux-5ccd3bd992cf668b5a6fa1713da7b443a35e2930.tar.xz
wireguard-linux-5ccd3bd992cf668b5a6fa1713da7b443a35e2930.zip
Merge branches 'fixes' and 'misc'
Fix up the conflict between "VDSO: Drop implicit common-page-size linker flag" and "vdso: pass --be8 to linker if necessary" Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r--arch/arm/mm/init.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index be0b42937888..581c6ffc3056 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -242,6 +242,22 @@ static void __init arm_initrd_init(void)
#endif
}
+#ifdef CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND
+void check_cpu_icache_size(int cpuid)
+{
+ u32 size, ctr;
+
+ asm("mrc p15, 0, %0, c0, c0, 1" : "=r" (ctr));
+
+ size = 1 << ((ctr & 0xf) + 2);
+ if (cpuid != 0 && icache_size != size)
+ pr_info("CPU%u: detected I-Cache line size mismatch, workaround enabled\n",
+ cpuid);
+ if (icache_size > size)
+ icache_size = size;
+}
+#endif
+
void __init arm_memblock_init(const struct machine_desc *mdesc)
{
/* Register the kernel text, kernel data and initrd with memblock. */
@@ -450,12 +466,6 @@ static void __init free_highpages(void)
*/
void __init mem_init(void)
{
-#ifdef CONFIG_HAVE_TCM
- /* These pointers are filled in on TCM detection */
- extern u32 dtcm_end;
- extern u32 itcm_end;
-#endif
-
set_max_mapnr(pfn_to_page(max_pfn) - mem_map);
/* this will put all unused low memory onto the freelists */