Am 22.12.2009 um 22:48 schrieb Andreas Färber:
checking for memory... 0: base = 0x00000000, size = 134217728 1: empty region total physical memory = 128 MB suggested page table size = 1048576 need new page table, size = 1048576! new table at: 0x07f00000
This hang here can be reproduced by the following 1-byte memset (given -m 128). The commented-out memset does not trigger it. Does the address ring a bell for anyone? The address of env->nip appears to be 0x4703dec, so no obvious connection between the two.
Andreas
diff --git a/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp b/ src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp index 262e2c1..7af7247 100644 --- a/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp +++ b/src/system/boot/platform/openfirmware/arch/ppc/mmu.cpp @@ -909,7 +909,8 @@ arch_mmu_init(void)
sPageTableHashMask = tableSize / sizeof(page_table_entry_group) - 1; if (sPageTable != oldTable) - memset(sPageTable, 0, tableSize); + //memset(sPageTable, 0, 9308 /*tableSize*/); + memset((void*)0x7F0245c, 0, 1);
// turn off address translation via the page table/segment mechanism, // identity map the first 256 MB (where our code/data reside)