Re: [RFC] m68k: Enable memtest kernel parameter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael,

On Mon, Sep 13, 2021 at 03:40:12PM +1200, Michael Schmitz wrote:
Hi Finn,

On 13/09/21 13:34, Finn Thain wrote:

This appears to work on Aranym, QEMU and the Quadra 630 I have here.
It is completely untested on Coldfire etc. I don't even know whether the
right memory mappings are in place for this to actually work as intended.

The comment just above the section from paging_init() in your patch states
that all physical memory is mapped into kernel virtual address space. I
don't think that mapping is contiguous though.

early_memtest() operates on physical ranges, so it does not matter what is
the virtual mapping.
 
Would someone take a look please?

diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 6e40f7f29ebc..d87e12b4855b 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -9,6 +9,7 @@ config M68K
 	select ARCH_HAVE_NMI_SAFE_CMPXCHG if RMW_INSNS
 	select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
 	select ARCH_NO_PREEMPT if !COLDFIRE
+	select ARCH_USE_MEMTEST
 	select ARCH_WANT_IPC_PARSE_VERSION
 	select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
 	select DMA_DIRECT_REMAP if HAS_DMA && MMU && !COLDFIRE
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c
index 3a653f0a4188..d6301a094fc1 100644
--- a/arch/m68k/mm/motorola.c
+++ b/arch/m68k/mm/motorola.c
@@ -455,6 +455,8 @@ void __init paging_init(void)

 	flush_tlb_all();

+	early_memtest(min_addr, max_addr);
+
 	/*
 	 * initialize the bad page table and bad page to point
 	 * to a couple of allocated pages


I'd rather start that from availmem, not from min_addr ... I'm amazed this
works - I'd expect the kernel text segment to get trashed by the memory test
routines.

early_memtest() checks only free memory ranges, i.e. those that were not
memblock_reserve()d, so as long as we reserve the range [min_addr,
availmem] the memtest will skip it.

-- 
Sincerely yours,
Mike.



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux