Author: stippi Date: 2010-01-02 19:40:07 +0100 (Sat, 02 Jan 2010) New Revision: 34863 Changeset: http://dev.haiku-os.org/changeset/34863/haiku Ticket: http://dev.haiku-os.org/ticket/5193 Modified: haiku/trunk/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp Log: Patch by Andreas Faerber with small changes by myself: * Skip mappings to non-physical memory in the PPC MMU code. Gets the PPC kernel booting a little further. Thanks! Fixes ticket #5193. Modified: haiku/trunk/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp =================================================================== --- haiku/trunk/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp 2010-01-02 18:34:42 UTC (rev 34862) +++ haiku/trunk/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp 2010-01-02 18:40:07 UTC (rev 34863) @@ -462,16 +462,22 @@ puts("found page table!"); *_physicalPageTable = (page_table_entry_group *)map->physical_address; - keepRange = false; // we keep it explicitely anyway + keepRange = false; + // we keep it explicitely anyway } if ((addr_t)map->physical_address <= 0x100 && (addr_t)map->physical_address + map->length >= 0x1000) { puts("found exception handlers!"); *_exceptionHandlers = map->virtual_address; - keepRange = false; // we keep it explicitely anyway + keepRange = false; + // we keep it explicitely anyway } if (map->virtual_address == oldPageTable) keepRange = false; + if (!is_physical_memory(map->physical_address)) { + keepRange = false; + // we only get vm_pages for physical memory + } // insert range in virtual allocated