[SeaBIOS] [PATCH 1/2] Add config option to move PORT_ACPI_PM_BASE out of the way

Gerd Hoffmann kraxel at redhat.com
Thu Feb 6 16:40:28 CET 2014


On Do, 2014-02-06 at 10:21 -0500, Kevin O'Connor wrote:
> On Thu, Feb 06, 2014 at 09:38:15AM +0100, Gerd Hoffmann wrote:
> > On Mi, 2014-02-05 at 20:04 -0500, Kevin O'Connor wrote:
> > > On Mon, Feb 03, 2014 at 10:04:37AM +0100, Gerd Hoffmann wrote:
> > > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
> > > 
> > > Can't we detect this at runtime by reading the ACPI tables from QEMU?
> > > (Indeed, if it is a SeaBIOS config setting, how will QEMU know what to
> > > put in the ACPI tables?)
> > 
> > qemu will look at the chipset registers programmed by the firmware and
> > fill acpi accordingly.  Which reminds me that this only works with qemu
> > 1.8+ where qemu actually generates the acpi tables, so I should update
> > the help text accordingly (raise minimum qemu version from 1.4 to 1.8).
> 
> Well, that's backwards.

Sort of, but nevertheless it makes perfect sense IMO.  It fits naturally
with the firmware initialization order:  First setup hardware, then
handle bios tables.  So the firmware can program the hardware as it
pleases, and when it loads the acpi tables from qemu later on they will
have the correct addresses filled in.  We also don't need any
paravirtual interfaces to communicate the addresses between qemu and
firmware:  Firmware just sets the registers of the emulated hardware.

Doing it the other way around is tricky for initialization order
reasons, especially for coreboot.  pmbase and mmconf xbar (those are
looked up by the qemu acpi table generator) locations are (a) compile
time constants and (b) programmed very early at boot time.

cheers,
  Gerd





More information about the SeaBIOS mailing list