qemu/pc-bios
Mark Cave-Ayland 6864fa3897 sun4u: update PCI topology to include simba PCI bridges
This patch updates the sun4u model to being much closer to a real Ultra 5
by moving devices behind the 2 simba PCI bridges (A and B) as found on real
hardware.

The most noticeable change introduced by this patchset is that in-built devices
are no longer attached to the PCI root bus, but instead behind PCI bridge A.
Along with this the interrupt routing is updated accordingly to match the
official documentation.

Since the existing code currently bypasses the PCI bridge interrupt
swizzling, the interrupt mapping functions are reorganised so that
pci_pbm_map_irq() is used by the PCI bridges and pci_apb_map_irq() is
used by the PCI host bridge.

Behind the sabre PCI host bridge, the PCI IO space now needs to be
split into two separate halves at 0x8000000. Therefore we also setup a new
PCI IO space region of increased size on the PCI host bridge and enable
32-bit PCI IO accesses to allow IO accesses to reach devices behind PCI
bridge B correctly.

As part of this change we also combine the onboard sunhme NIC and the ebus
into a single multi-function device as done on a real Ultra 5. For other
NICs the existing behaviour is preserved, i.e. we initialise them and
place them into the next free slot on PCI bus B.

Finally we mark the physically unavailable slots (plus slot 0 in busA) as
reserved to ensure that users can't plug devices into non-existent slots
which will break interrupt routing.

Note: since this commit changes PCI topology and interrupt routing, an
updated openbios-sparc64 binary is included with this commit containing the
associated changes to maintain bisectability.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Artyom Tarasenko <atar4qemu@gmail.com>
2017-10-19 07:45:35 +01:00
..
keymaps pc-bios/keymaps: keymaps update 2017-10-16 14:50:54 +02:00
optionrom linuxboot_dma: compile for i486 2017-06-07 18:22:02 +02:00
s390-ccw s390: set DHCP client architecure id for netboot 2017-09-19 18:21:33 +02:00
spapr-rtas rules.mak: quiet-command: Split command name and args to print 2016-10-06 12:11:51 +01:00
acpi-dsdt.aml seabios: update to 1.7.5-rc1 2014-05-15 14:05:26 +02:00
bamboo.dtb PPC: Bamboo: recompile device tree 2012-01-21 05:17:00 +01:00
bamboo.dts PPC: Bamboo: recompile device tree 2012-01-21 05:17:00 +01:00
bios-256k.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
bios.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
efi-e1000.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-e1000e.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-eepro100.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-ne2k_pci.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-pcnet.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-rtl8139.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-virtio.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
efi-vmxnet3.rom ipxe: update to commit 0600d3ae94 2017-07-17 11:00:28 +02:00
kvmvapic.bin pc-bios: Remove execute flag from BIOS files 2014-01-16 14:46:19 +04:00
linuxboot_dma.bin linuxboot_dma: compile for i486 2017-06-07 18:22:02 +02:00
linuxboot.bin linuxboot: fix loading old kernels 2014-12-15 12:21:03 +01:00
Makefile pc-bios/Makefile: add a rule to produce dtb files 2009-03-07 04:56:06 +00:00
multiboot.bin pc-bios: Remove execute flag from BIOS files 2014-01-16 14:46:19 +04:00
openbios-ppc Update OpenBIOS images to 314d4f8 built from submodule. 2017-09-11 07:43:34 +01:00
openbios-sparc32 Update OpenBIOS images to 314d4f8 built from submodule. 2017-09-11 07:43:34 +01:00
openbios-sparc64 sun4u: update PCI topology to include simba PCI bridges 2017-10-19 07:45:35 +01:00
palcode-clipper target-alpha: Update palcode for smp 2016-11-17 15:56:31 +01:00
petalogix-ml605.dtb microblaze: Add PetaLogix ml605 MMU little-endian ref design 2011-03-16 15:18:58 +01:00
petalogix-s3adsp1800.dtb pc-bios: petalogix-s3adsp1800.dtb: Use 'xlnx, xps-ethernetlite-2.00.a' instead of 'xlnx, xps-ethernetlite-2.00.b' 2014-11-11 09:04:13 +03:00
ppc_rom.bin prep: Update ppc_rom.bin 2014-07-07 16:46:35 +02:00
pxe-e1000.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
pxe-eepro100.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
pxe-ne2k_pci.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
pxe-pcnet.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
pxe-rtl8139.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
pxe-virtio.rom PXE: Refresh all PXE ROMs from the ipxe submodule 2011-04-18 11:46:41 -06:00
qemu_logo_no_text.svg gtk: use better icon 2013-06-10 11:36:12 -05:00
qemu_logo.svg Add QEMU logo (SVG file) 2014-04-28 08:55:31 +04:00
qemu_vga.ndrv Add QemuMacDrivers qemu_vga.ndrv revision d4e7d7a built as submodule 2017-05-11 09:45:15 +10:00
qemu-icon.bmp sdl: Add QEMU mascot icon for use with SDL 2012-04-26 13:14:57 -05:00
qemu-nsis.bmp w32, w64: Add build rule for installer 2013-07-29 11:43:37 +02:00
qemu-nsis.ico w32, w64: Add build rule for installer 2013-07-29 11:43:37 +02:00
QEMU,cgthree.bin sun4m: Add Sun CG3 framebuffer and corresponding OpenBIOS FCode ROM 2014-02-27 10:01:41 +00:00
QEMU,tcx.bin Update OpenBIOS images 2014-11-04 00:02:33 +00:00
qemu.rsrc Makefile.target: set icon for binary file on Mac OS X 2015-05-19 09:11:17 +01:00
README pseries: Update SLOF firmware image 2017-07-25 14:35:42 +10:00
s390-ccw.img pc-bios/s390-ccw.img: update image 2017-08-30 18:23:26 +02:00
s390-netboot.img pc-bios/s390: add s390-netboot.img 2017-07-14 12:29:48 +02:00
sgabios.bin sgabios: update for "fix wrong video attrs for int 10h,ah==13h" 2017-05-05 12:09:59 +02:00
skiboot.lid ppc: add skiboot firmware for the pnv platform 2016-10-28 09:36:58 +11:00
slof.bin pseries: Update SLOF firmware image 2017-07-25 14:35:42 +10:00
spapr-rtas.bin pc-bios/spapr-rtas.bin: remove executable flag 2011-04-01 20:04:24 +02:00
u-boot.e500 PPC: E500: Update u-boot to v2017.07 2017-07-17 13:50:47 +01:00
vgabios-cirrus.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
vgabios-qxl.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
vgabios-stdvga.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
vgabios-virtio.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
vgabios-vmware.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00
vgabios.bin seabios: update to 1.10.2 release 2017-02-28 09:54:23 +01:00

- SeaBIOS (bios.bin) is the successor of pc bios.
  See http://www.seabios.org/ for more information.

- The VGA BIOS and the Cirrus VGA BIOS come from the LGPL VGA bios
  project (http://www.nongnu.org/vgabios/).

- The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is
  available at http://repo.or.cz/w/openhackware.git.

- OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable
  firmware implementation. The goal is to implement a 100% IEEE
  1275-1994 (referred to as Open Firmware) compliant firmware.
  The included images for PowerPC (for 32 and 64 bit PPC CPUs),
  Sparc32 (including QEMU,tcx.bin and QEMU,cgthree.bin) and Sparc64 are built
  from OpenBIOS SVN revision 1280.

- SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware
  implementation for certain IBM POWER hardware.  The sources are at
  https://github.com/aik/SLOF, and the image currently in qemu is
  built from git tag qemu-slof-20170724.

- sgabios (the Serial Graphics Adapter option ROM) provides a means for
  legacy x86 software to communicate with an attached serial console as
  if a video card were attached.  The master sources reside in a subversion
  repository at http://sgabios.googlecode.com/svn/trunk.  A git mirror is
  available at git://git.qemu-project.org/sgabios.git.

- The PXE roms come from the iPXE project. Built with BANNER_TIME 0.
  Sources available at http://ipxe.org.  Vendor:Device ID -> ROM mapping:

	8086:100e -> pxe-e1000.rom
	8086:1209 -> pxe-eepro100.rom
	1050:0940 -> pxe-ne2k_pci.rom
	1022:2000 -> pxe-pcnet.rom
	10ec:8139 -> pxe-rtl8139.rom
	1af4:1000 -> pxe-virtio.rom

- The sources for the Alpha palcode image is available from:
  git://github.com/rth7680/qemu-palcode.git

- The u-boot binary for e500 comes from the upstream denx u-boot project where
  it was compiled using the qemu-ppce500 target.
  A git mirror is available at: git://git.qemu-project.org/u-boot.git
  The hash used to compile the current version is: 2072e72

- Skiboot (https://github.com/open-power/skiboot/) is an OPAL
  (OpenPower Abstraction Layer) firmware for OpenPOWER systems. It can
  run an hypervisor OS or simply a host OS on the "baremetal"
  platform, also known as the PowerNV (Non-Virtualized) platform.

- QemuMacDrivers (https://github.com/ozbenh/QemuMacDrivers) is a project to
  provide virtualised drivers for PPC MacOS guests.