[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-ppc
Subject:    Re: head -r365932 on PowerMac G5 (2 dual-core sockets): Crashes before login prompt if powerd is ena
From:       Mark Millard via freebsd-ppc <freebsd-ppc () freebsd ! org>
Date:       2020-09-27 20:44:29
Message-ID: 7DC3081D-8B19-476A-990F-4DFD7003672C () yahoo ! com
[Download RAW message or body]



On 2020-Sep-23, at 09:09, Brandon Bergren <bdragon@FreeBSD.org> wrote:

> On Wed, Sep 23, 2020, at 3:58 AM, Mark Millard wrote:
> > On 2020-Sep-23, at 00:04, Brandon Bergren <bdragon at FreeBSD.org> wrote:
> > 
> > > . . .
> > > 
> > > Are you making sure to use the "dev /memory@0 100000 1000 do-unmap" trick on \
> > > 4.8.7f1 devices?
> > 
> > I know nothing about that and have never had to do such a thing
> > historically. I've never had to identify "4.8.7f1 devices".
> 
> There is a bug in some versions of the PowerMac BootROM where a memory page at \
> 0x100000 would remain mapped without being properly listed in the mmu properties \
> (likely due to the way Open Firmware was initialized) that breaks bootloaders that \
> touch that page. 
> It is known to be a thing on at least 4.8.7f1 BootROM, but may also affect other \
> versions. You can see the BootROM version on the OpenFirmware screen when the \
> machine turns on. 
> On affected devices, the bug can be permanently repaired using nvedit to execute \
> the workaround automatically, or it can be typed in by hand every time. 
> This is described on https://wiki.freebsd.org/powerpc

In case it is related: in ofwfdt_fixups my environment uses:

        offset = fdt_path_offset(fdtp, "/rtas");
        if (offset > 0) {
. . .
        } else {
#if 0
// Without the /memory0/available information the example
// MPC750 iMac G3 PowerMac4,1 crashes shortly after booting
// --from trashed memory contents from use of RAM that was
// not excluded when available was being deleted.
//
// My guess is that openfirmware may also report to
// avoid address ranges for which other things in the
// environment are the cause, not just openfirmware's
// internal memory use.
//
// So do not do the following . . .
 
                /*
                 * Remove /memory/available properties, which reflect long-gone
                 * OF state. Note that this doesn't work if we need RTAS still,
                 * since that's part of the firmware.
                 */
                offset = fdt_path_offset(fdtp, "/memory@0");
                if (offset<=0) offset= fdt_path_offset(fdtp, "/memory@0,0"); // G5's
                if (offset > 0)
                        fdt_delprop(fdtp, offset, "available");
#endif
        }


The // G5's line is also mine.


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
freebsd-ppc@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ppc
To unsubscribe, send any mail to "freebsd-ppc-unsubscribe@freebsd.org"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic