There are a bunch of patches pending. I've put together a summary
below. If your patch isn't on this list, please ping me.
Isaku Yamahata - pci: multi pci bus support
- pci express, etc.
Stefan Reinauer - Bootsplash for SeaBIOS
- Add jpeg bootsplash support
Alex Williamson - smbios: Allow all fields to be set via
- allow all smbios fields to be overwritten by qemu.
Arseny Klimovsky - Added ACPI SLIC table
- Add acpi slic table generation to seabios
- Update slic table oem ids in seabios
Eduardo Habkost - Allow acpi and smbios default strings to be set on
- Allow each oem id in every smbios/acpi table to be set
Isaku Yamahata - acpi: allow qemu to load dsdt as external acpi
- Allow loading of an external dsdt table
Gleb Natapov - load hpet info for HPET ACPI table from qemu
- Fix hpet by pulling correct info from qemu_cfg
Liu, Jinsong - KVM vcpu hotplug seabios infrastructure
- replace dynamic ssdt with two builtin ssdts (16/255 cpus)
Jes Sorensen - SMBIOS strings
- Not really a patch, but Jes wants to rework smbios oem ids
in some cases Microsoft OEM licence can be used in virtual machine legally.
For Windows 7 it is not clear, but possibly it is legal.
To make in technically possible, one should use its ACPI SLIC table from
original BIOS in virtual BIOS.
I've created a patch for some versions (including latest stable), it can
be easily cherry-picked in master.
Of course, the patch does not include this SLIC table, only a code and
place to put it.
Coreboot project have such support (at least for some motherboards).
On Thu, Jun 17, 2010 at 08:03:12PM +0900, Isaku Yamahata wrote:
> Make pci bar assigner preferchable memory aware.
> This is needed for PCI bridge support because memory space and
> prefetchable memory space is filtered independently based on
> memory base/limit and prefetchable memory base/limit of pci bridge.
> On bus 0, such a distinction isn't necessary so keep existing behavior
> by checking bus=0.
> pci_bios_io_addr = 0xc000;
> pci_bios_mem_addr = BUILD_PCIMEM_START;
> + /* pci_bios_mem_addr + <some value> */
> + pci_bios_prefmem_addr = pci_bios_mem_addr + 0x08000000;
How can we be sure that the "mem" space doesn't overlap with the
On Thu, Jun 17, 2010 at 08:03:16PM +0900, Isaku Yamahata wrote:
> initialize pci bridge filtering registers.
> +static void pci_bios_init_device_bridge(u16 bdf)
> + u32 io_old;
> + u32 mem_old;
> + u32 prefmem_old;
It would be preferable if C99 initializations were used here -
especially since there are already C99 declarations introduced later
in this function.
BTW, my other comments/questions aside, the patch series looks good to
On Thu, Jun 17, 2010 at 08:03:09PM +0900, Isaku Yamahata wrote:
> This patch introduces foreachpci_in_bus() helper macro for
> depth first recursion. foreachpci() is for width first recursion.
> The macro will be used later to initialize pci bridge
> that requires depth first recursion.
Instead of introducing pci_next_in_bus(), can't we just use the
existing pci_next() call? Something like:
#define foreachpci_in_bus(BDF, MAX, BUS) \
for (MAX=(BUS + 0x0100), BDF = BUS \
; BDF >= 0 && BDF < (BUS + 0x0100) \
; BDF = pci_next(BDF+1, &MAX))
Can you check the changeset of 12cbb43b9dc8a16f712188cb308a0eb0321f3e20
and update Makefile changes?
The rule for acpi-ssdt-15.hex and acpi-ssdt-anycpu.hex seems
same, so it can be combined into a single generic rule.
The rules removes the files at the last, but it would be more
reliable to use Makefile intermediate and let make to remove
On Sun, Jun 20, 2010 at 11:40:02PM +0800, Liu, Jinsong wrote:
> Kevin O'Connor wrote:
> > On Wed, Jun 16, 2010 at 12:19:24PM +0800, Liu, Jinsong wrote:
> >> Gleb Natapov wrote:
> >>> FWIW looks good to me. This patch removes dynamic creation of
> >>> Processor scope and supports only 15/255 cpus configuration, but
> >>> given that new code is much more complex that old one I don't see
> >>> other possibilities (unless we'll add aml compiler to seabios
> >>> runtime).
> > I'm okay with the approach (two SSDTs selected by cpu count). The
> > build changes don't look right (15.c is too cryptic). However, more
> > importantly, I want to see where we end up going with the qemu/seabios
> > acpi interface discussion before committing this.
> > -Kevin
> Thanks for comments!
> In your last comments, you prefer not to use iasl to compile seabios.
> Now I update the patch as attached (only need update Makefile):
> 1. cancel cryptic name like 15.c from Makefile, and we give detailed description for cpu number in new version;
> 2. user don't need iasl again to compile seabios, except if they want to change dsdt/ssdt itself;
> The process to apply patch and build in my desktop is:
> $ git apply kvm-vcpu-hotplug-seabios.patch
> $ git add src/acpi-ssdt.dsl
> $ git add src/mk_ssdt.c
> $ git add src/acpi-ssdt-15.hex
> $ git add src/acpi-ssdt-anycpu.hex
> $ git commit -a
> $ make
> We test the updated patch, it works OK with linux2.6.32 hot-add and hot-remove.
> SeaBIOS mailing list
Liu, Jinsong wrote:
> In our patch, how about use iasl (ssdt build rules) in Makefile,
> and I will build ssdt in my local server, and then send the compile
> result to you which contain acpi-ssdt aml array
I don't think that makes sense. The source code will still be under
some version control so it seems much better to simply keep it in the
same project as all the other source code that is related.
On Wed, Jun 16, 2010 at 12:19:24PM +0800, Liu, Jinsong wrote:
> Gleb Natapov wrote:
> > FWIW looks good to me. This patch removes dynamic creation of
> > Processor scope and supports only 15/255 cpus configuration, but
> > given that new code is much more complex that old one I don't see
> > other possibilities (unless we'll add aml compiler to seabios
> > runtime).
> Thanks Gleb for comments!
> Kevin, what's your comments?
I'm okay with the approach (two SSDTs selected by cpu count). The
build changes don't look right (15.c is too cryptic). However, more
importantly, I want to see where we end up going with the qemu/seabios
acpi interface discussion before committing this.
This patch set allows seabios to initialize multi pci bus and 64bit BAR.
Currently seabios is able to initialize only pci root bus.
However multi pci bus support is wanted because
- more pci bus is wanted in qemu for many slots
- pci express support is commin in qemu which requires multi pci bus.
those patches on Qemu part are under way, though.
Isaku Yamahata (8):
seabios: pci: introduce foreachpci_in_bus() helper macro.
seabios: pciinit: factor out pci bar region allocation logic.
seabios: pciinit: make pci memory space assignment 64bit aware.
seabios: pciinit: make pci bar assigner preferchable memory aware.
seabios: pciinit: factor out bar offset calculation.
seabios: pciinit: make bar offset calculation pci bridge aware.
seabios: pciinit: pci bridge bus initialization.
seabios: pciinit: initialize pci bridge filtering registers.
src/pci.c | 30 ++++++
src/pci.h | 11 ++
src/pciinit.c | 310 ++++++++++++++++++++++++++++++++++++++++++++++++--------
3 files changed, 306 insertions(+), 45 deletions(-)