All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] ARM virt: Support up to 256 PCIe buses
@ 2018-05-30 14:26 Eric Auger
  2018-05-30 14:26 ` [Qemu-devel] [PATCH 1/2] hw/arm/virt: Add a new 256MB ECAM region Eric Auger
  2018-05-30 14:26 ` [Qemu-devel] [PATCH 2/2] hw/arm/virt: Add virt-3.0 machine type Eric Auger
  0 siblings, 2 replies; 12+ messages in thread
From: Eric Auger @ 2018-05-30 14:26 UTC (permalink / raw)
  To: eric.auger.pro, eric.auger, qemu-devel, qemu-arm, peter.maydell
  Cc: drjones, wei, zhaoshenglong, lersek, ard.biesheuvel

Current Machvirt PCI host controller's ECAM region is 16MB large.
This limits the number of PCIe buses to 16.

PC/Q35 machines have a 256MB region allowing up to 256 buses.
This series tries to bridge the gap.

It declares a new ECAM region located beyond 256GB, of size 256MB
The new ECAM region is used if:
- highmem option is set (default) and,
- either FW is not loaded or we are run an aarch64 guest
- machine type >= 3.0.

aarch32 FW does not support this highmem ECAM region. For guests without
LPAE support the highmem option must be turned off.

Best Regards

Eric

Git: complete series available at
https://github.com/eauger/qemu/tree/v2.12.0-256MB-ECAM-PATCH-v1
Previous version:
https://github.com/eauger/qemu/tree/v2.12.0-256MB-ECAM-RFCv1

- Tested with guest running in aarch64 and aarch32 modes (aarch64=off)
- Tested with aarch32 FW
- In aarch32 mode I encountered the issue the vmalloc region may be
  reported too small for the needs (dmesg excerpt below). So I had to
  extend the vmalloc size by passing the "vmalloc=512M" option to the
  bootargs and this eventually booted fine.

[    1.399581] pl061_gpio 9030000.pl061: PL061 GPIO chip @0x0000000009030000 registered
[    1.402636] OF: PCI: host bridge /pcie@10000000 ranges:
[    1.404506] OF: PCI:    IO 0x3eff0000..0x3effffff -> 0x00000000
[    1.406606] OF: PCI:   MEM 0x10000000..0x3efeffff -> 0x10000000
[    1.408690] OF: PCI:   MEM 0x8000000000..0xffffffffff -> 0x8000000000
[    1.411992] vmap allocation for size 1052672 failed: use vmalloc=<size> to increase size
[    1.414895] pci-host-generic 4010000000.pcie: ECAM ioremap failed
[    1.427472] pci-host-generic: probe of 4010000000.pcie failed with error -12


Eric Auger (2):
  hw/arm/virt: Add a new 256MB ECAM region
  hw/arm/virt: Add virt-3.0 machine type

 hw/arm/virt-acpi-build.c | 21 +++++++++++++--------
 hw/arm/virt.c            | 43 ++++++++++++++++++++++++++++++++++++-------
 include/hw/arm/virt.h    |  3 +++
 3 files changed, 52 insertions(+), 15 deletions(-)

-- 
2.5.5

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-06-15 12:37 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-30 14:26 [Qemu-devel] [PATCH 0/2] ARM virt: Support up to 256 PCIe buses Eric Auger
2018-05-30 14:26 ` [Qemu-devel] [PATCH 1/2] hw/arm/virt: Add a new 256MB ECAM region Eric Auger
2018-05-30 16:11   ` Laszlo Ersek
2018-05-31  6:55     ` Auger Eric
2018-05-31  8:41       ` Laszlo Ersek
2018-05-31  8:50         ` Auger Eric
2018-05-30 14:26 ` [Qemu-devel] [PATCH 2/2] hw/arm/virt: Add virt-3.0 machine type Eric Auger
2018-05-30 16:18   ` Laszlo Ersek
2018-05-31  1:42     ` Shannon Zhao
2018-05-31  6:23       ` Auger Eric
2018-05-31  6:52     ` Auger Eric
2018-06-15 12:37   ` Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.