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.
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.
Cheers, Michael