[SeaBIOS] [RfC PATCH 0/2] move apci ports

Gerd Hoffmann kraxel at redhat.com
Mon Jan 14 13:56:03 CET 2013


Currently the acpi (+smbios) io regions are in the middle of the addres
space:  At 0xb000 and 0xb100.  And we start allocating I/O ports at
0xc000.  piix additionally has some magic io ports (for cpu + pci
hotplug) between 0xae00 and 0xaffff.

For q35 I'd like to move the acpi ports out if the way, so we can start
allocating io ports at 0x2000 and use the whole 0x2000 -> 0xffff range.

This patch series does just that.  There is one problem with that
though (as you might have guessed from the 'RfC' tag):

To simplify things the acpi port move is done for both piix and q35,
even though it doesn't buy us much on piix due to the hotplug ports.
Programming the piix smbios base register was broken in qemu until very
recently (1.4 will be the first release with this fixed).  Bummer.

So what are our options?

  (1) Set ACPI_PM_BASE at runtime, continue to use 0xb000 for piix.
      I'd prefer that one.  Looks non-trivial due to apci dependencies
      and src/smm.c though.

  (2) Make ACPI_PM_BASE a config option, so we can leave it at 0xb000
      by default and allow switching to 0x1000 manually if we know
      qemu is new enougth to handle it properly.  acpi dependency is
      still there, but as we pipe the aml through cpp anyway it
      shouldn't be that bad.

  (3) Your bright idea?


Gerd Hoffmann (2):
  move ACPI_PM_BASE from 0xb000 to 0x1000
  q35: allocate from ioports from 0x2000 up

 src/ioport.h      |    4 ++--
 src/pciinit.c     |    6 +++++-
 src/ssdt-proc.dsl |    2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

More information about the SeaBIOS mailing list