mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-25 12:40:08 +00:00
9a848adf45
The netboot firmware so far simply jumped directly into the OS kernel after the download has been completed. This, however, bears the risk that the virtio-net device still might be active in the background and incoming packets are still placed into the buffers - which could destroy memory of the now-running Linux kernel in case it did not take over the device fast enough. Also the SCLP console is not put into a well-defined state here. We should hand over the system in a clean state when jumping into the kernel, so let's use the same mechanism as it's done in the main s390-ccw firmware and reset the machine with diag308 into a clean state before jumping into the OS kernel code. To be able to share the code with the main s390-ccw firmware, the related functions are now extracted from bootmap.c into a new file called jump2ipl.c. Since we now also set the boot device schid at address 184 for the network boot device, this patch also slightly changes the way how we detect the entry points for non-ELF binary images: The code now looks for the "S390EP" magic first and then jumps to 0x10000 in case it has been found. This is necessary for booting from network devices, since the normal kernel code (where the PSW at ddress 0 points to) tries to do a block load from the boot device. This of course fails for a virtio-net device and causes the kernel to abort with a panic-PSW silently. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com> |
||
---|---|---|
.. | ||
keymaps | ||
optionrom | ||
s390-ccw | ||
spapr-rtas | ||
bamboo.dtb | ||
bamboo.dts | ||
bios-256k.bin | ||
bios.bin | ||
canyonlands.dtb | ||
canyonlands.dts | ||
efi-e1000.rom | ||
efi-e1000e.rom | ||
efi-eepro100.rom | ||
efi-ne2k_pci.rom | ||
efi-pcnet.rom | ||
efi-rtl8139.rom | ||
efi-virtio.rom | ||
efi-vmxnet3.rom | ||
hppa-firmware.img | ||
kvmvapic.bin | ||
linuxboot_dma.bin | ||
linuxboot.bin | ||
Makefile | ||
multiboot.bin | ||
openbios-ppc | ||
openbios-sparc32 | ||
openbios-sparc64 | ||
palcode-clipper | ||
petalogix-ml605.dtb | ||
petalogix-s3adsp1800.dtb | ||
ppc_rom.bin | ||
pxe-e1000.rom | ||
pxe-eepro100.rom | ||
pxe-ne2k_pci.rom | ||
pxe-pcnet.rom | ||
pxe-rtl8139.rom | ||
pxe-virtio.rom | ||
qemu_logo_no_text.svg | ||
qemu_logo.svg | ||
qemu_vga.ndrv | ||
qemu-icon.bmp | ||
qemu-nsis.bmp | ||
qemu-nsis.ico | ||
QEMU,cgthree.bin | ||
QEMU,tcx.bin | ||
qemu.rsrc | ||
README | ||
s390-ccw.img | ||
s390-netboot.img | ||
sgabios.bin | ||
skiboot.lid | ||
slof.bin | ||
spapr-rtas.bin | ||
u-boot-sam460-20100605.bin | ||
u-boot.e500 | ||
vgabios-cirrus.bin | ||
vgabios-qxl.bin | ||
vgabios-stdvga.bin | ||
vgabios-virtio.bin | ||
vgabios-vmware.bin | ||
vgabios.bin |
- 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-20171214. - 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.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.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.