[OpenBIOS] ppc64 MMU issues
Andreas Färber
andreas.faerber at web.de
Mon Nov 8 20:01:02 CET 2010
Am 08.11.2010 um 10:34 schrieb Mark Cave-Ayland:
> Andreas Färber wrote:
>
>> Directly after we set the MSR_IR|MSR_DR bits in the MSR (arch/ppc/
>> qemu/ofmem.c:setup_mmu), we get an ISI exception and end up in arch/
>> ppc/qemu/start.S:vector__0x400 (the 0xfffxxxxx one). We proceed up
>> to the bctrl which should take us to arch/ppc/qemu/
>> ofmem.c:isi_exception, but then get a 0x700 program exception. The
>> value in ctr looks sensible, it's some 0xfffxxxxx address.
>
> Hmmm this sounds similar to a SPARC32 issue I was finding over the
> weekend whereby everything died after the MMU was enabled because
> the context table wasn't correctly aligned. Could it be possible
> that the MMU hash tables aren't aligned correctly in memory?
Recently I fixed some memory layout calculations and we decided to use
the ppc64 alignment even on ppc, so we should be okay.
32-bit ppc code disables the 64-bit mode right away and in every
interrupt handler; disabling it in the 64-bit ppc64 interrupt handler
gave no improvement though.
I had tried packing the structs used for the page table, without
noticable effect:
http://repo.or.cz/w/openbios/afaerber.git/commitdiff/3071a73e8c44779f7bdddcbd418f8590388a4cbd?hp=e91146348789a571c50c41d99bd18724327010fd
Not sure if that is necessary? It would same safer to me.
Andreas
More information about the OpenBIOS
mailing list