mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 01:43:39 +00:00
pci: fix PCI resource reserve capability on BE
PCI resource reserve capability should use LE format as all other PCI things. If we don't then seabios won't boot: === PCI new allocation pass #1 === PCI: check devices PCI: QEMU resource reserve cap: size 10000000000000 type io PCI: secondary bus 1 size 10000000000000 type io PCI: secondary bus 1 size 00200000 type mem PCI: secondary bus 1 size 00200000 type prefmem === PCI new allocation pass #2 === PCI: out of I/O address space This became more important since we started reserving IO by default, previously no one noticed. Fixes:e2a6290aab
("hw/pcie-root-port: Fix hotplug for PCI devices requiring IO") Cc: marcel.apfelbaum@gmail.com Fixes:226263fb5c
("hw/pci: add QEMU-specific PCI capability to the Generic PCI Express Root Port") Cc: zuban32s@gmail.com Fixes:6755e618d0
("hw/pci: add PCI resource reserve capability to legacy PCI bridge") Cc: jing2.liu@linux.intel.com Tested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
402378407d
commit
0e464f7d99
|
@ -448,11 +448,11 @@ int pci_bridge_qemu_reserve_cap_init(PCIDevice *dev, int cap_offset,
|
||||||
PCIBridgeQemuCap cap = {
|
PCIBridgeQemuCap cap = {
|
||||||
.len = cap_len,
|
.len = cap_len,
|
||||||
.type = REDHAT_PCI_CAP_RESOURCE_RESERVE,
|
.type = REDHAT_PCI_CAP_RESOURCE_RESERVE,
|
||||||
.bus_res = res_reserve.bus,
|
.bus_res = cpu_to_le32(res_reserve.bus),
|
||||||
.io = res_reserve.io,
|
.io = cpu_to_le64(res_reserve.io),
|
||||||
.mem = res_reserve.mem_non_pref,
|
.mem = cpu_to_le32(res_reserve.mem_non_pref),
|
||||||
.mem_pref_32 = res_reserve.mem_pref_32,
|
.mem_pref_32 = cpu_to_le32(res_reserve.mem_pref_32),
|
||||||
.mem_pref_64 = res_reserve.mem_pref_64
|
.mem_pref_64 = cpu_to_le64(res_reserve.mem_pref_64)
|
||||||
};
|
};
|
||||||
|
|
||||||
int offset = pci_add_capability(dev, PCI_CAP_ID_VNDR,
|
int offset = pci_add_capability(dev, PCI_CAP_ID_VNDR,
|
||||||
|
|
Loading…
Reference in a new issue