[SeaBIOS] [PATCH] seabios: restore piix pm config registers after resume

Kevin O'Connor kevin at koconnor.net
Mon Jan 13 18:11:52 CET 2014


On Mon, Jan 13, 2014 at 06:55:50PM +0200, Michael S. Tsirkin wrote:
> On Mon, Jan 13, 2014 at 11:45:40AM -0500, Kevin O'Connor wrote:
> > On Mon, Jan 13, 2014 at 06:36:56PM +0200, Michael S. Tsirkin wrote:
> > > On Mon, Jan 13, 2014 at 11:31:20AM -0500, Kevin O'Connor wrote:
> > > > +void
> > > > +pci_resume(void)
> > > > +{
> > > > +    if (!CONFIG_QEMU)
> > > > +        return;
> > > > +    if (PiixPMBDF >= 0)
> > > 
> > > so this does nothing unless piix4_pm_setup run but
> > > if it did why do we need to resume anything?
> > 
> > PiixPMBDF is set during the SeaBIOS init phase.  The proposed
> > pci_resume() function is called during the resume phase.  The goal of
> > the proposed patch is to store the BDF during init so that it's
> > available during resume without requiring a bus scan.
> > 
> > -Kevin
> 
> Confused. I thought pci_init_device is the one
> calling piix4_pm_setup.

It is.  Call chain on init is:

handle_post()->...->qemu_platform_setup()->pci_setup()->pci_bios_init_devices()->pci_bios_init_device()->pci_init_device()->piix4_pm_setup()

Call chain on proposed resume is:

handle_resume()->handle_resume32()->s3_resume()->pci_resume().

> What am I missing?

You have me confused now.  Perhaps I've misunderstood your question or
misunderstood the intent of your/Marcel's original patch.

-Kevin



More information about the SeaBIOS mailing list