bonzini / qboot

Minimal x86 firmware for booting Linux kernels
GNU General Public License v2.0
704 stars 118 forks source link

PCI mem bar corrupt? #7

Closed fwsGonzo closed 8 years ago

fwsGonzo commented 8 years ago

Without the qboot bios I get correct BARs:

sudo qemu-system-x86_64 --enable-kvm --cpu host -kernel IRCd -m 64 -nographic -netdev  tap,id=net0,script=../IncludeOS/etc/to-be-installed/qemu-ifup -device virtio-net,netdev=net0,mac=c0:01:0a:00:00:2a

...
     [ Virtio ] Attaching to  PCI addr 0x18
                [x] Vendor ID is VIRTIO
                [x] Device ID 0x1000 is in a valid range (Virtio LEGACY)
                [x] Device Revision ID (0x0) supported

                [ Resource @ BAR 0 ]
                  Address:  0xc000 Size: 0x20
                  Type: IO Resource

                [ Resource @ BAR 1 ]
                  Address:  0xfebd1000 Size: 0x1000
                  Type: Memory Resource

                [ Resource @ BAR 4 ]
                  Address:  0xfe000000 Size: 0x800000
                  Type: Memory Resource

...

With qboot BIOS (only happens on this particular service, not on another):

sudo qemu-system-x86_64 --enable-kvm --cpu host -bios bios.bin -kernel IRCd -m 64 -nographic -netdev  tap,id=net0,script=../IncludeOS/etc/to-be-installed/qemu-ifup -device virtio-net,netdev=net0,mac=c0:01:0a:00:00:2a

                [ Resource @ BAR 0 ]
                  Address:  0x0 Size: 0x20
                  Type: IO Resource

                [ Resource @ BAR 4 ]
                  Address:  0x0 Size: 0x800000
                  Type: Memory Resource

Both addresses are zero

bonzini commented 8 years ago

qboot doesn't attempt to allocate BARs, you have to do it yourself. :-)