qemu/pc-bios
Paolo Bonzini 269e235849 linuxboot: fix loading old kernels
Old kernels that used high memory only allowed the initrd to be in the
first 896MB of memory.  If you load the initrd above, they complain
that "initrd extends beyond end of memory".

In order to fix this, while not breaking machines with small amounts
of memory fixed by cdebec5 (linuxboot: compute initrd loading address,
2014-10-06), we need to distinguish two cases.  If pc.c placed the
initrd at end of memory, use the new algorithm based on the e801
memory map.  If instead pc.c placed the initrd at the maximum address
specified by the bzImage, leave it there.

The only interesting part is that the low-memory info block is now
loaded very early, in real mode, and thus the 32-bit address has
to be converted into a real mode segment.  The initrd address is
also patched in the info block before entering real mode, it is
simpler that way.

This fixes booting the RHEL4.8 32-bit installation image with 1GB
of RAM.

Cc: qemu-stable@nongnu.org
Cc: mst@redhat.com
Cc: jsnow@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-12-15 12:21:03 +01:00
..
keymaps qemu-char: add Czech keymap file 2013-11-13 15:48:38 +04:00
optionrom linuxboot: fix loading old kernels 2014-12-15 12:21:03 +01:00
s390-ccw pc-bios/s390-ccw: Do proper console setup 2014-09-01 09:23:02 +02:00
spapr-rtas Implement hcall based RTAS for pSeries machines 2011-04-01 18:34:56 +02: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 update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
bios.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
efi-e1000.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
efi-eepro100.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
efi-ne2k_pci.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
efi-pcnet.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
efi-rtl8139.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
efi-virtio.rom ipxe: update to current git 2014-05-15 14:24:05 +02:00
kvmvapic.bin pc-bios: Remove execute flag from BIOS files 2014-01-16 14:46:19 +04:00
linuxboot.bin linuxboot: fix loading old kernels 2014-12-15 12:21:03 +01:00
Makefile
multiboot.bin pc-bios: Remove execute flag from BIOS files 2014-01-16 14:46:19 +04:00
openbios-ppc Update OpenBIOS images 2014-11-15 13:01:44 +00:00
openbios-sparc32 Update OpenBIOS images 2014-11-15 13:01:44 +00:00
openbios-sparc64 Update OpenBIOS images 2014-11-15 13:01:44 +00:00
palcode-clipper pc-bios: Update palcode-clipper 2013-07-18 08:17:42 -07: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
q35-acpi-dsdt.aml roms: update seabios binaries 2013-12-06 08:55:42 +01: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-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
README pseries: Update SLOF firmware image to qemu-slof-20140630 2014-07-08 12:10:36 +02:00
s390-ccw.img pc-bios/s390-ccw.img binary update 2014-09-01 09:23:02 +02:00
s390-zipl.rom s390x: update zipl rom 2011-06-03 13:34:01 +02:00
sgabios.bin pc-bios: Remove execute flag from BIOS files 2014-01-16 14:46:19 +04:00
slof.bin pseries: Update SLOF firmware image to qemu-slof-20140630 2014-07-08 12:10:36 +02:00
spapr-rtas.bin pc-bios/spapr-rtas.bin: remove executable flag 2011-04-01 20:04:24 +02:00
u-boot.e500 PPC: Add u-boot firmware for e500 2014-06-16 13:24:35 +02:00
vgabios-cirrus.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
vgabios-qxl.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
vgabios-stdvga.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
vgabios-vmware.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +01:00
vgabios.bin update seabios to 1.7.5.1 stable release 2014-11-13 11:59:46 +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-20140630.

- 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 S390 zipl loader is an addition to the official IBM s390-tools
  package. That fork is maintained in its own git repository at:
  git://repo.or.cz/s390-tools.git

- 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