[OpenBIOS] [PATCH] mac: Don't set APPL, address properties on NewWorld

Benjamin Herrenschmidt benh at kernel.crashing.org
Thu Aug 4 16:25:22 CEST 2016


On Thu, 2016-08-04 at 13:56 +0200, Howard Spoelstra wrote:
> Great, that fixes the "regression". One thing I noticed while booting
> with only the Leopard iso is that Qemu/OpenBios make the Leopard
> system profiler show two ATA devices, both containing a QemuDVD
> drive. Perhaps that is the reason a hard disk is not recognised?  

Right, I'll look into that later. I have a mostly working PMU now,
which speeds up 10.5 boot significantly. Getting that to work with
OS 9 required some fiddling ..

Last remaining problem with the video ndrv is that MacsBug doesn't work
with it and I can't seem to figure out why so far. I've added pages
support etc... to no avail. There is *something* we do that upsets it,
everything else works (and MacsBug works fine without the driver, on
just a dumb fb).

Cheers,
Ben.

> On Thu, Aug 4, 2016 at 3:16 AM, Benjamin Herrenschmidt
> <benh at kernel.crashing.org> wrote:
> > They are created by the MacOS ROM and in some cases MacOS X to
> > contain
> > the *virtual* addresses of the BARs as mapped by the kernel.
> > 
> > Having these already there with the wrong values causes the hangs
> > with MacOS X 10.5 and the video driver.
> > 
> > The reason is that the IONDRVFramebuffer code in OS X 10.5 won't
> > replace
> > those properties if they already exist, so the driver ends up
> > accessing
> > the addresses put in there by OpenBIOS which aren't valid mapped
> > virtual
> > addresses under OS X.
> > 
> > Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> > ---
> >  drivers/pci.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/pci.c b/drivers/pci.c
> > index 0cdf0bf..9813086 100644
> > --- a/drivers/pci.c
> > +++ b/drivers/pci.c
> > @@ -1029,10 +1029,9 @@ static void ob_pci_add_properties(phandle_t
> > phandle,
> >         }
> > 
> >         pci_set_assigned_addresses(phandle, config, num_bars);
> > -
> > -       if (is_apple()) {
> > +
> > +       if (is_apple() && is_oldworld())
> >                 pci_set_AAPL_address(config);
> > -       }
> > 
> >         PCI_DPRINTF("\n");
> >  }
> > 
> > 
> > --
> > OpenBIOS                 http://openbios.org/
> > Mailinglist:  http://lists.openbios.org/mailman/listinfo
> > Free your System - May the Forth be with you
> > 
> 



More information about the OpenBIOS mailing list