[Bug 205458] 11.0-CURRENT/10-STABLE powerpc64: a PowerMac G5 specific sys/powerpc/ofw/ofw_machdep.c change for reliable PowerMac G5 booting (with lots of RAM)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Sep 12 21:01:20 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205458

Nathan Whitehorn <nwhitehorn at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |In Progress
                 CC|                            |nwhitehorn at FreeBSD.org

--- Comment #4 from Nathan Whitehorn <nwhitehorn at FreeBSD.org> ---
I've finally understood why this patch does anything useful. Open Firmware runs
in virtual mode on the Powermac G5. This runs inside the kernel page table,
which preserves all address translations made by OF before the kernel starts;
as a result, the kernel address space is a strict superset of OF's.

Where this explodes is if OF uses an unmapped SLB entry. The SLB fault handler
runs in real mode and refers to the PCPU pointer in SPRG0, which blows up the
kernel. Having a value of SPRG0 that works for the kernel is less fatal than
preserving OF's value in this case.

I believe that OF's SPRG0 is maintained only for compatibility with some G4
Apple hardware, the eMac in particular, but will check and we can move on with
this. I think it should be safe to wrap this in an #ifdef __powerpc64__.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-ppc mailing list