2.6.13 PowerBook boot hang (was Re: 2.6.13-rc7-git2 crashes on iBook)

Mikael Pettersson mikpe at csd.uu.se
Tue Aug 30 04:17:14 EST 2005


Sean Neakums writes:
 > Andreas Schwab <schwab at suse.de> writes:
 > 
 > > The last change to drivers/pci/setup-res.c (Ignore disabled ROM resources
 > > at setup) is breaking radeonfb on iBook G3 (with Radeon Mobility M6 LY).
 > > It crashes in pci_map_rom when called from radeonfb_map_ROM.  This is
 > > probably a dormant bug that was just uncovered by the change.
 > 
 > 2.6.13 hangs on boot on my PowerBook 5.4, reverting the disabled ROM
 > patch (appended for confirmation) fixes it.  2.6.13-rc7 was fine.

Same here, on an Apple eMac with Radeon graphics. 2.6.13-rc7 worked fine,
2.6.13 vanilla hangs early in the boot when radeonfb is about to take over
from OF. Reverting the patch below eliminates the hang.

/Mikael

 > diff-tree 755528c860b05fcecda1c88a2bdaffcb50760a7f (from 26aad69e3dd854abe9028ca873fb40b410a39dd7)
 > Author: Linus Torvalds <torvalds at g5.osdl.org>
 > Date:   Fri Aug 26 10:49:22 2005 -0700
 > 
 >     Ignore disabled ROM resources at setup
 >     
 >     Writing even a disabled value seems to mess up some matrox graphics
 >     cards.  It may be a card-related issue, but we may also be writing
 >     reserved low bits in the result.
 >     
 >     This was a fall-out of switching x86 over to the generic PCI resource
 >     allocation code, and needs more debugging.  In particular, the old x86
 >     code defaulted to not doing any resource allocations at all for ROM
 >     resources.
 >     
 >     In the meantime, this has been reported to make X happier by Helge
 >     Hafting <helgehaf at aitel.hist.no>.
 >     
 >     Signed-off-by: Linus Torvalds <torvalds at osdl.org>
 > 
 > diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
 > --- a/drivers/pci/setup-res.c
 > +++ b/drivers/pci/setup-res.c
 > @@ -53,7 +53,9 @@ pci_update_resource(struct pci_dev *dev,
 >  	if (resno < 6) {
 >  		reg = PCI_BASE_ADDRESS_0 + 4 * resno;
 >  	} else if (resno == PCI_ROM_RESOURCE) {
 > -		new |= res->flags & IORESOURCE_ROM_ENABLE;
 > +		if (!(res->flags & IORESOURCE_ROM_ENABLE))
 > +			return;
 > +		new |= PCI_ROM_ADDRESS_ENABLE;
 >  		reg = dev->rom_base_reg;
 >  	} else {
 >  		/* Hmm, non-standard resource. */
 > -
 > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
 > the body of a message to majordomo at vger.kernel.org
 > More majordomo info at  http://vger.kernel.org/majordomo-info.html
 > Please read the FAQ at  http://www.tux.org/lkml/
 > 



More information about the Linuxppc-dev mailing list