qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Could not add PCI device with big memory to aarch64 VMs


From: liang yan
Subject: [Qemu-devel] Could not add PCI device with big memory to aarch64 VMs
Date: Wed, 4 Nov 2015 15:22:01 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

Hello, Laszlo,

(1)I am trying to add ivshmem device(PCI device with big memory) to my aarch64 vm. So far, I could find device information from vm. But it seems vm did not create correct resource file for this device. Do you have any idea that this happens?

I used the upstream EDK2 to build my UEFI firmware.

There are three BARs for this device, and memory map is assigned too, but only one
resource file is created.

My qemu supports ACPI 5.1 and the command line is :

  -device ivshmem,size=256M,chardev=ivshmem,msi=on,ioeventfd=on \
  -chardev socket,path=/tmp/ivshmem_socket,id=ivshmem \

The lspci information:

00:00.0 Host bridge: Red Hat, Inc. Device 0008
    Subsystem: Red Hat, Inc Device 1100
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

00:01.0 RAM memory: Red Hat, Inc Inter-VM shared memory
    Subsystem: Red Hat, Inc QEMU Virtual Machine
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 255
Region 0: Memory at 20001000 (32-bit, non-prefetchable) [disabled] [size=256] Region 1: Memory at 20000000 (32-bit, non-prefetchable) [disabled] [size=4K] Region 2: Memory at 10000000 (64-bit, prefetchable) [disabled] [size=256M]
    Capabilities: [40] MSI-X: Enable- Count=1 Masked-
        Vector table: BAR=1 offset=00000000
        PBA: BAR=1 offset=00000800

Boot information:

[ 2.380924] pci 0000:00:01.0: BAR 2: assigned [mem 0x10000000-0x1fffffff 64bit pref]
[    2.382836] pci 0000:00:01.0: BAR 1: assigned [mem 0x20000000-0x20000fff]
[    2.383557] pci 0000:00:01.0: BAR 0: assigned [mem 0x20001000-0x200010ff]


Files under /sys/devices/pci0000:00/0000:00:01.0

broken_parity_status      devspec       local_cpus  resource
class              dma_mask_bits    modalias    subsystem
config              driver_override  msi_bus     subsystem_device
consistent_dma_mask_bits  enable       power       subsystem_vendor
d3cold_allowed          irq           remove      uevent
device              local_cpulist    rescan      vendor

Information for resource:

0x0000000020001000 0x00000000200010ff 0x0000000000040200
0x0000000020000000 0x0000000020000fff 0x0000000000040200
0x0000000010000000 0x000000001fffffff 0x000000000014220c
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 0x0000000000000000




(2)It also has a problem that once I use a memory bigger than 256M for ivshmem, it could not get through UEFI,
the error message is

PciBus: Discovered PCI @ [00|01|00]
BAR[0]: Type = Mem32; Alignment = 0xFFF; Length = 0x100; Offset = 0x10 BAR[1]: Type = Mem32; Alignment = 0xFFF; Length = 0x1000; Offset = 0x14 BAR[2]: Type = PMem64; Alignment = 0x3FFFFFFF; Length = 0x40000000; Offset = 0x18

PciBus: HostBridge->SubmitResources() - Success
ASSERT /home/liang/studio/edk2/ArmVirtPkg/PciHostBridgeDxe/PciHostBridge.c(449): ((BOOLEAN)(0==1))

I am wandering if there are memory limitation for pcie devices under Qemu environment?


Just thank you in advance and any information would be appreciated.



Best,
Liang



reply via email to

[Prev in Thread] Current Thread [Next in Thread]