Bug#594967: Bug #594967: [poulsbo] grub-pc Hangs After "Welcome to GRUB!"

Colin Watson cjwatson at debian.org
Sun Jan 2 09:14:25 UTC 2011


On Sat, Jan 01, 2011 at 10:12:44PM -0500, P. J. McDermott wrote:
> On 01/01/2011 06:57 PM, Colin Watson wrote:
> > One effect of these changes was to load the video_cirrus and video_bochs
> > modules by default (you can test whether this is the culprit by
> > commenting them out in grub.cfg).  I've seen a handful of systems that
> > hang while trying to enumerate the PCI bus in GRUB; it so happens that
> > those are the only modules that usually trigger GRUB's PCI bus
> > enumeration in normal circumstances ...
> >
> > You can also verify this at a lower level by trying 'lspci' at a GRUB
> > prompt.  If it's the same problem, this will hang.
> 
> I noticed the new bochs and cirrus files, but I didn't think they would
> affect a Poulsbo system. You're right though; I commented out those
> lines, and I'm now looking at a graphical menu for "GNU GRUB  version
> 1.98+20100804-11" (as installed by Squeeze beta1's debian-installer) on
> an AO751h. I suppose the problem then is in either grub_pci_iterate() or
> the hook functions passed to it by the cirrus and bochs modules?

grub_pci_iterate itself, IIRC.  On the system I briefly had access to,
it hung when it tried to read from a particular address in PCI memory
(when it got to some high-numbered bus - 171 or something like that, I
forget the exact number).

GRUB just reads through PCI busses sequentially from 0 to 255.  Linux
does something much more complicated.  In the time I had available I
couldn't figure out how to reproduce it in GRUB, or whether it was
necessary - it seemed to be stopping well before bus 255 though.  I
think it was getting the limit from PCI configuration space, but there
seemed to be some kind of multi-level scheme going on.

-- 
Colin Watson                                       [cjwatson at debian.org]





More information about the Pkg-grub-devel mailing list