[SeaBIOS] [RfC PATCH 0/2] pci: two pass initialization

Gerd Hoffmann kraxel at redhat.com
Tue May 24 11:05:31 CEST 2011


  Hi,

This patch set switches seabios to a two-pass pci initialization.
The first pass figures the memory requirements which are then used by
the second pass to pack the regions.

I've splitted it into two patches to make it easy to check out.  The
first patch does all the calculations and prints what it would do to the
debug log.  The second patch switches the new allocation code live.

The patches have been tested with the upcoming q35 emulation for qemu.
They are based on the q35 seabios too, but rebasing to master shouldn't
be hard.

Below you can see the allocations created by the patch.

Comments?

cheers,
  Gerd

========== /proc/iomem ==============
00000000-00000fff : reserved
00001000-0009e7ff : System RAM
0009e800-0009ffff : reserved
000c0000-000c8bff : Video ROM
000c9000-000c97ff : Adapter ROM
000f0000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-3fffcfff : System RAM
  01000000-014e5a17 : Kernel code
  014e5a18-01ba42ef : Kernel data
  01ce4000-01f474e3 : Kernel bss
3fffd000-3fffffff : reserved
e0000000-efffffff : PCI MMCONFIG 0 [00-ff]
  e0000000-efffffff : reserved
fa000000-fbffffff : 0000:00:02.0
  fa000000-fbffffff : cirrusfb
fc000000-fc3fffff : PCI Bus 0000:0c
  fc000000-fc0fffff : PCI Bus 0000:0d
  fc100000-fc1fffff : PCI Bus 0000:0e
  fc200000-fc2fffff : PCI Bus 0000:0f
  fc300000-fc3fffff : PCI Bus 0000:10
fc400000-fc4fffff : PCI Bus 0000:01
fc500000-fc5fffff : PCI Bus 0000:02
fc600000-fc6fffff : PCI Bus 0000:03
  fc600000-fc6fffff : PCI Bus 0000:04
    fc600000-fc6fffff : PCI Bus 0000:05
fc700000-fc7fffff : PCI Bus 0000:06
fc800000-fc8fffff : PCI Bus 0000:07
fc900000-fc9fffff : PCI Bus 0000:08
fca00000-fcafffff : PCI Bus 0000:09
fcb00000-fcbfffff : PCI Bus 0000:0a
fcc00000-fccfffff : PCI Bus 0000:0b
fdc00000-fdffffff : PCI Bus 0000:0c
  fdc00000-fdcfffff : PCI Bus 0000:0d
  fdd00000-fddfffff : PCI Bus 0000:0e
  fde00000-fdefffff : PCI Bus 0000:0f
  fdf00000-fdffffff : PCI Bus 0000:10
fe000000-fe0fffff : PCI Bus 0000:01
fe100000-fe1fffff : PCI Bus 0000:02
fe200000-fe2fffff : PCI Bus 0000:03
  fe200000-fe2fffff : PCI Bus 0000:04
    fe200000-fe2fffff : PCI Bus 0000:05
fe300000-fe3fffff : PCI Bus 0000:06
fe400000-fe4fffff : PCI Bus 0000:07
fe500000-fe5fffff : PCI Bus 0000:08
fe600000-fe6fffff : PCI Bus 0000:09
fe700000-fe7fffff : PCI Bus 0000:0a
fe800000-fe8fffff : PCI Bus 0000:0b
fe900000-fe90ffff : 0000:00:02.0
fe910000-fe91ffff : 0000:00:03.0
fe920000-fe920fff : 0000:00:02.0
  fe920000-fe920fff : cirrusfb
fe921000-fe921fff : 0000:00:03.0
  fe921000-fe921fff : virtio-pci
fe922000-fe922fff : 0000:00:1f.2
  fe922000-fe922fff : ahci
fec00000-fec00fff : IOAPIC 0
fed00000-fed003ff : HPET 0
fee00000-fee00fff : Local APIC
feffc000-feffffff : reserved
fffc0000-ffffffff : reserved




More information about the SeaBIOS mailing list