This patch updates the SLOF firmware image used on the pseries
machine. The new version adds support for Cirrus VGA and virtfs, as
well as including a number of bugfixes.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
Currently on the pseries machine the SLOF firmware is used normally,
but we bypass it when -kernel is specified. Having these two
different boot paths can cause some confusion.
In particular at present we need to "probe" the (emulated) PCI bus and
produce device tree nodes for the PCI devices in qemu, for the -kernel
case. In the SLOF case, it takes the device tree from qemu adds some
stuff to it then passes it on to the kernel.
It's been decided that a better approach is to always boot through
SLOF, even when using -kernel. WIth this approach we can leave PCI
probing and device node creation to SLOF in all cases which removes a
bunch of code in qemu, and avoids iterating the PCI devices from the
machine specific init code which we're not supposed to do.
This patch changes qemu to always boot through SLOF, and not to create
PCI nodes. Simultaneously it updates the included version of SLOF
(submodule and binary image) to one which supports (and requires) the
new approach.
The new SLOF version also includes a number of unrelated enhancements:
support for booting from virtio-pci devices and e1000, greatly
improved FCode support and many bugfixes. It also makes SLOF ready to
be used even when specifying a kernel on the qemu command line.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
The rom was not added together with the sgabios device and is
not installed.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This patch is a general update to the SLOF firmware image used on the
pseries machine. This doesn't contain updates for specific features but
contains a number of bugfixes and enhancements in the main SLOF tree from
Thomas Huth.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
This patch updates the SLOF submodule and precompiled image. The new
SLOF versions contains two changes of note:
* The previous SLOF has a bug in SCSI condition handling that was
exposed by recent updates to qemu's SCSI emulation. This update
fixes the bug.
* The previous SLOF has a bug in its addressing of SCSI devices,
which can be exposed under certain conditions. The new SLOF also
fixes this.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
There were some changes upstream to account for broken usage of mtmsr, so
before applying the mtmsr patch we need to update OpenBIOS, otherwise the
PPC target would break.
Signed-off-by: Alexander Graf <agraf@suse.de>
Currently, the emulated pSeries machine requires the use of the
-kernel parameter in order to explicitly load a guest kernel. This
means booting from the virtual disk, cdrom or network is not possible.
This patch addresses this limitation by inserting a within-partition
firmware image (derived from the "SLOF" free Open Firmware project).
If -kernel is not specified, qemu will now load the SLOF image, which
has access to the qemu boot device list through the device tree, and
can boot from any of the usual virtual devices.
In order to support the new firmware, an extension to the emulated
machine/hypervisor is necessary. Unlike Linux, which expects
multi-CPU entry to be handled kexec() style, the SLOF firmware expects
only one CPU to be active at entry, and to use a hypervisor RTAS
method to enable the other CPUs one by one.
This patch also implements this 'start-cpu' method, so that SLOF can
start the secondary CPUs and marshal them into the kexec() holding
pattern ready for entry into the guest OS. Linux should, and in the
future might directly use the start-cpu method to enable initially
disabled CPUs, but for now it does require kexec() entry.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Patching the rom data during load (in qemu) now
also supports i82801 (which had no rom file).
We only need a single rom file for the whole device family,
so remove the second one which is no longer needed.
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Only Mac-on-Linux stuff used video.x, OpenBIOS does not need it.
Remove video.x MoL hacks.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Update Sparc32 and Sparc64 OpenBIOS images to SVN revision 859.
Bring also pc-bios/README up to date including the update performed by
419ef5f1c6.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This patch adds a firmware blob to the S390 target. The blob is a simple
implementation of a virtio client that tries to read the second stage
bootloader from sectors described as of offset 0x20 in the MBR.
In combination with an updated zipl this allows for booting from virtio
block devices. This firmware is built from the same sources as the second
stage bootloader. You can find a virtio capable s390-tools in this repo:
git://repo.or.cz/s390-tools.git
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Only two boot ROM files are needed for all devices.
* Add these GPXE ROM files using new naming convention
(as discussed on qemu-devel). Both files were created
with http://rom-o-matic.net/, PCI vendor / device ids
as in ROM filenames and option BANNER_TIMEOUT = 0.
* Remove old PXE ROM file for i82559er.
It was replaced by gpxe-eepro100-80861209.rom.
* Update pc-bios/README (and sort entries).
Full support still needs additional eepro100 fixes.
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
The PC BIOS no longer comes from Bochs.
This patch updates the related entry.
V2 - Modify SeaBIOS description and URL
(Thanks to Gleb Natapov for the hint).
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
For Sparc64, this fixes the PCI bridge configuration bugs revealed by the
improved bridge handling (b7ee1603c1).
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Use firmware configuration device for boot device, kernel, initrd and
kernel command line parameters on PPC, Sparc32 and Sparc64.
Update OpenBIOS images to r479 which supports the change.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6777 c046a42c-6fe2-441c-8c8c-71466251a162
aliguori: did a little indenting and motion for aesthics.
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6109 c046a42c-6fe2-441c-8c8c-71466251a162
Now built from the kernel.org git tree.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6079 c046a42c-6fe2-441c-8c8c-71466251a162
mirror is updated more regularly and reliably.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6078 c046a42c-6fe2-441c-8c8c-71466251a162
Update the PC BIOS to the latest version, split out the patches into
patch series, and update the README to point to the new location of the
Bochs BIOS source tree.
Also update the gitignore to allow the patch queue directory to be used.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6077 c046a42c-6fe2-441c-8c8c-71466251a162
Changes:
r219: Fix #size-cells for HelenOS, add /openprom/version node
r220: Fix typo
r221: More realistic mmu_translate
r222: Fix device names to allow Net/OpenBSD to boot
r223: add set-callback for Aurora 2.0
r224: Switch keyboard controller to translated mode so it works as expected
r225: Add mmu release (claim added in r219)
r226: Set variable defaults before nvram_init also for Sparc64 (cf. r136)
r227: Use nvram boot-args and boot-device variables also for Sparc64 (cf. r137)
r228: Fix compilation on OpenBSD: avoid accidental system include file use
r229: Rename /packages/client-iface to /openprom/client-services
r230
From Igor V. Kovalenko:
This openbios-grubfs-ext2fs-block.patch fixes a problem where inode
pointer is truncated to 32bit integer and then sign-extended to 64bit
integer while passing second pointer argument to ext2_rdfsb.
r231: Fix pad alignment
r232: Remove package finding code that finds unrelated packages
r233: Fix virtual to physical address translation (Igor Kovalenko)
r234: Implement itlb/dtlb directed writes (Igor Kovalenko)
r235: Fix warnings that would be caused by ld flag --warn-common
r236: Enable ld flag --warn-common
r237: Use the firmware device introduced in Qemu SVN r5256
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5262 c046a42c-6fe2-441c-8c8c-71466251a162
r186: Revert broken r161, fix identification string printing (Igor Kovalenko)
r187: Fix NetBSD reset problem
r188: Add a TODO for Sparc
r189: Fix some Sparc32 compile warnings
r190: Fix some Sparc64 compile warnings
r191: Add prototypes for [v]snprintf
r192: Add a common header file for libgcc functions
r193: Implement obmem for NetBSD loader
r194: Add Make dependencies for some files, unify Sparc32/64 build.xml files
r195: Remove debug messages
r196: Add a.out support for SILO
r198: Add a CPU node
r199: Add (bogus) memory nodes
r200: Add idprom node
r201: Make serial console usable
r202: Add MMU node and ops
r203: Add trap table setting function to client interface
r204: Fix MMU translation
r205: Handle 32 bit windows, remove now unused files
r206: Support for simple boot device selection
r207: Fix TLB entry generation
r208: Fix printing of exception messages
r209: Set up tick_cmpr, update assembly flags
r210: Add a clock-frequency node
r211:
Fix available and total memory
Implement a static list of mmu translations
Map more pages
Add a fake unmap method
r212: Fix builtin.c dependencies
r213: Add FCode boot loader for Solaris etc.
r214: Add correct reset vectors
r215: Add T1 and T2 CPUs
r216: Fix wrong translations
r217: Add bootargs property for kernel command line
r218:
Finally fix the very obscure problem which prevented normal and especially
FCode boot: too small heap (used for Forth memory)!
Remove forced arch_init and boot hacks
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4983 c046a42c-6fe2-441c-8c8c-71466251a162