PS3 early lock-up
From: Geert Uytterhoeven <hidden>
Date: 2008-08-04 15:48:19
On PS3, recent kernels lock up in the very early stage (i.e. before mere
mortals get to see a working console). The kernel crashes with
| kernel BUG at linux/arch/powerpc/platforms/ps3/htab.c:141!
Bisecting shows this happens since:
| commit a1f242ff460e4b50a045fa237c3c56cce9eabf83
| Author: Benjamin Herrenschmidt [off-list ref]
| Date: Wed Jul 23 21:27:08 2008 -0700
|
| powerpc ioremap_prot
|
| This adds ioremap_prot and pte_pgprot() so that one can extract protection
| bits from a PTE and use them to ioremap_prot() (in order to support ptrace
| of VM_IO | VM_PFNMAP as per Rik's patch).
|
| This moves a couple of flag checks around in the ioremap implementations
| of arch/powerpc. There's a side effect of allowing non-cacheable and
| non-guarded mappings on ppc32 which before would always have _PAGE_GUARDED
| set whenever _PAGE_NO_CACHE is.
|
| (standard ioremap will still set _PAGE_GUARDED, but ioremap_prot will be
| capable of setting such a non guarded mapping).
Inside ps3_hpte_insert(), lv1_write_htab_entry() fails with error code 5
(LV1_ACCESS_VIOLATION) when adding the PS3 hotplug memory.
debug_dump_hpte() prints for the offending hpte:
| pa = 500001000000h
| lpar = 500001000000h
| va = adc7d4c2d0000000h
| group = 6168h
| bitmap = 0h
| hpte.v = adc7d4c2d011h
| hpte.r = 500001000115h
^
| psize = 0h
| slot = 6168h