#11896: ARM: arch_mmu assumes RAM starts at 80000000 ------------------------------+-------------------------------------------- Reporter: kallisti5 | Owner: pdziepak Type: bug | Status: new Priority: normal | Milestone: Unscheduled Component: System/Boot | Version: R1/Development Loader | Keywords: ARM MMU pfoetchen mmu_man rpi2 Resolution: | Blocking: Blocked By: | Platform: arm Has a Patch: 0 | ------------------------------+-------------------------------------------- Comment (by pulkomandy): I'm not sure about that, the mmu code was written to work with several different mappings and the beagleboard was the first time we had RAM at this address, which was a problem because the mmu code wouldn't handle it too well. Some details about the MMU mapping process: * We start with the MMU disabled. u-boot loads things at the relevant physical addresses * The bootloader setups an identity mapping, that is, relevant parts of the RAM (where the bootloader and kernel code are loaded, plus the bootloader stack, heap), and the IO devices are mapped so their virtual addresses matches their physical addresses * The MMU is enabled, since all the useful parts are identity mapped this is transparent and the bootloader code can continue to execute, * The kernel is remapped to it's final target (virtual addresses starting at 0x8000000, physical address unchanged), and its stack and a small part of its heap are mapped in that area as well. * The kernel is booted * The kernel MMU initialization removes the now useless identity mapping. So the 80000000 you are seeing is setup from the boot loader, and is not related to the RAM physical address in any way. -- Ticket URL: <https://dev.haiku-os.org/ticket/11896#comment:1> Haiku <https://dev.haiku-os.org> Haiku - the operating system.