aboutsummaryrefslogtreecommitdiff
path: root/pc-bios
AgeCommit message (Collapse)Author
2010-06-09Fix multiboot compilationAlexander Graf
Commit dd4239d6574ca41c94fc0d0f77ddc728510ffc57 broke multiboot. It replaced the instruction "rep insb (%dx), %es:(%edi)" by the binary output of "addr32 rep insb (%dx), %es:(%di)". Linuxboot calls the respective helper function in a code16 section. So the original instruction was automatically translated to its "addr32" equivalent. For multiboot, we're running in code32 so gcc didn't add the "addr32" which breaks the instruction. This patch splits that helper function in one which uses addr32 and one which does not, so everyone's happy. The good news is that nobody probably cared so far. The bundled multiboot.bin binary was built before the change and is thus correct. Please also put this patch into -stable. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> (cherry picked from commit 590bf491a49670843ee902c47f7ab1de5e9acd06)
2010-02-23pc-bios: update to newer version of (stable) seabiosAnthony Liguori
- 9fb3f4d Fix PkgLength calculation for the SSDT. - 6d75be2 Go back to using 0xf0000000 for PCI memory start. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-14Update SeaBIOS to 0.5.1Anthony Liguori
- 5da6833 Update version to 0.5.1 - 669c991 Fix sign error preventing incorrect memory over 4gig calculation. - 7e6bd3e Minor - better indent assembler in int1587. - 48cf232 Add comment explaining why mptable is in low memory. - 643062f Add int1589 support. - 085debd Set FDPT in irq table even for small drives. - 7c1b186 Reduce #ifs by weeding out some cross-chunk function definitions. - f9b25d3 Fix vgahook sign issue; add warning to build to catch future cases. - 3862b2d vgabios: Fix compile error due to fixed prototypes. - 1ca05b0 Be sure to add "void" to all function prototypes that take no args. - b5bb9db mptable: Reset pinmask on new bus or device. - 8918989 Detect latest FC12 gcc -combine breakage. - c9d3c2d Minor vga binary cleanups. - 9a8609f Make MTRR region 0xc0000-0x100000 be cached. - fdca418 Force a link error if a function is used from the wrong code chunk. - dad41d9 Add __noreturn define for __attribute__((noreturn)). - c003148 Implement native 32bit APM support. - 5c99b6c Commit compiled dsdt file; misc comment updates. - 29f4b91 prevent acpi from rerouting SCI interrupt - 4c94b7e enumerate all PCI buses in mptable - 871e0a0 Add support for 32bit PCI BIOS entry. - eda2c83 Only add "addr32" to memory accesses that require them. - 52a300f Introduce MODESEGMENT define; rename VISIBLE32 to VISIBLE32FLAT. - fe2c3ee Allocate smbios in temp space and copy into final location. - b164d2c Clear user reserved interrupts (0x60-0x66). - d9104ff Remove pci_bios_bigmem_addr; set pci_bios_mem_addr=0xe0000000 - 14021f2 Add initial support for ATA DMA. - 8362699 Allocate mptable in temp space and copy into final location. - 979862e Also report memory over 4G during init. - 928d4df provide correct pci routing information in mptable - afc02da Add symbolic definitions for MTRR code. - fb214dc Fix yield() so it works from boot code. - 2ceeec9 Fix potential build failure due to text16 section being too large. - a2195e4 Increase version in preparation for next release. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-01-12pc-bios: Update README (SeaBIOS)Stefan Weil
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> (cherry picked from commit c0ced0f3a76c9f3ad680141f751dd1a20c91bbbf)
2010-01-08linuxboot: fix gdt address calculationAvi Kivity
The gdt address calculation in linuxboot.bin is broken in two ways: first it loads %cs into %eax, but that instruction leaves the high bits of %eax undefined and we did not clear them. Secondly, we completely ignore the incorrect %eax, and use the undefined %ebx instead. With these issues fixed, linuxboot works again. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit d0652aa8ac8d82e077acf8e781557f4c4367dcf5)
2009-12-19Update to SeaBIOS 0.5.0Anthony Liguori
The only change is updating the makefile but that way we're carrying an official release. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit eac1bb74be4d95616b8a6217e020b1b0d6918608)
2009-12-19Update SeaBIOS to include PCI based option rom loadingAnthony Liguori
Also remove pcbios from the tree. It will no longer work. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 2dc3f77c86b6c3782f057af1d935ccddc052bed5)
2009-12-19Fix thinko in linuxboot.SPaolo Bonzini
The %gs segment that was used was not matching the comments. I just moved the GDT descriptor on the stack instead. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> (cherry picked from commit 36ecd7c016f682437941a54193251cbf918bef0d)
2009-12-06Update OpenBIOS images to r640Aurelien Jarno
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-12-03multiboot: Fix module loading and setting of mmap.Adam Lackorzynski
Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-12-03Make -kernel for linux work with bochsbiosAlexander Graf
While trying to run -kernel with -bios pc-bios/pcbios.bin, I realized that I was actually writing data to %es, but only set up %ds to a 32-bit segment we want to write to. So at the end of the day the data hasn't actually been copied. Oops. So here's a fix to set ES instead of DS, which makes -kernel work with BOCHS bios again (and actually makes the code do the correct thing)! Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-23Update SeaBIOSAnthony Liguori
This includes the following changes: 42bc394 Make sure to reenable ata interrupts even on error. 494dfc6 Move SeaBIOS post/boot stack to avoid conflict with gPXE. 3133e38 Test for broken gcc -combine on FC12. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-21Allow build of linuxboot.S with old assemblersJuergen Lock
In the spirit of ff56954baf9cfab5cbbe18d10b4a09e4a17f39a8, fix the build of linuxboot.S with old as(1) (as found in some BSD base systems) by emitting the bytes of the insn it doesn't like instead. Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-11-17Convert linux bootrom to external rom and fw_cfgAlexander Graf
We already have a working multiboot implementation that uses fw_cfg to get its kernel module etc. data in int19 runtime now. So what's missing is a working linux boot option rom. While at it I figured it would be a good idea to take the opcode generator out of pc.c and instead use a proper option rom, like we do with multiboot. So here it is - an fw_cfg using option rom for -kernel with linux! Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-17Move common option rom code to header fileAlexander Graf
We will have a linux boot option rom soon, so let's take all functionality that might be useful for both to a header file that both roms can include. That way we only have to write fw_cfg access code once. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-17Convert multiboot to fw_cfg backed data storageAlexander Graf
Right now we load the guest kernel to RAM, fire off the BIOS, hope it doesn't clobber memory and run an option rom that jumps into the kernel. That breaks with SeaBIOS, as that clears memory. So let's read all kernel, module etc. data using the fw_cfg interface when in the int19 handler. This patch implements said mechanism for multiboot. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-17Update SeaBIOS to latestAnthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-11-12eepro100: Fix boot ROM supportStefan Weil
* Rename pxe-eepro100.bin to pxe-i82559er.bin. The other devices supported by eepro100.c need additional pxe boot ROM images. * Call rom_add_option during initialisation. The code won't work with two or more different eepro100 devices, because it only adds one option ROM, but this use case is perhaps never needed. Using this patch, model=i82559er at least works partially. For full support, more eepro100 patches are needed (will follow later, can be fetched from ar7 branch of QEMU). Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-30Update gpxe roms to have BANNER_TIMEOUT=0Anthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-30Switch from etherboot to gPXEAnthony Liguori
etherboot is deprecated and not under active development anymore. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-30Switch pc bios from pc-bios to seabiosAnthony Liguori
SeaBIOS is a port of pc-bios to GCC. Besides using a more modern tool chain, SeaBIOS introduces a number of new features including PMM support, better BEV and BCV support, and better PnP support. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-27multiboot.S patch for old as(1) (was: Re: [Qemu-devel] Some OpenBSD/amd64 ↵Juergen Lock
build fixes) On Wed, Sep 23, 2009 at 10:55:02PM +0200, Juergen Lock wrote: > On Wed, Sep 23, 2009 at 09:31:16PM +0100, Laurence Tratt wrote: >[...] > > then the above error doesn't occur, but > > pc-bios/optionrom/multiboot.S dies as follows: > > > > $ > > AS optionrom/multiboot.o > > multiboot.S: Assembler messages: > > multiboot.S:116: Error: `%es:-4(%edi)' is not a valid 16 bit base/index > > expression > > $ > > > > What little Intel assembler I ever knew has long since departed from my > > brain, so I don't know why that error occurs, nor what a fix might be. > > > It occurs because of too old binutils (as(1) in this case), on FreeBSD > we now have a port for newer ones, > http://www.freshports.org/devel/binutils > so I depend on that and have the optionrom Makefile use the new as > like this: (the first change wrt CFLAGS is unrelated and has probably > been fixed in the meantime; it caused gmake to complain about > recursive use of CFLAGS.) > > Index: qemu/pc-bios/optionrom/Makefile > @@ -9,10 +9,13 @@ > > CFLAGS = -Wall -Wstrict-prototypes -Werror -fomit-frame-pointer -fno-builtin > CFLAGS += -I$(SRC_PATH) > -CFLAGS += $(call cc-option, $(CFLAGS), -fno-stack-protector,"") > +CFLAGS := $(CFLAGS) $(call cc-option, $(CFLAGS), -fno-stack-protector,"") > > build-all: multiboot.bin > > +%.o: %.S > + $(CC) -E $(CFLAGS) -o - -c $< |${LOCALBASE}/bin/as -V -Qy -o $@ > + > %.img: %.o > $(call quiet-command,$(LD) -Ttext 0 -e _start -s -o $@ $<," Building $(TARGET_DIR)$@") > That patch didn't seem to help on OpenBSD so I now finally got around making another one that just emits the bytes of the offending insn instead so people can keep using old assemblers: Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-06optionrom: create .PHONY variableJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-06optionrom: remove use of implicit RM variableJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-05restore CFLAGS check for conflict and fix recursive CFLAGS issueThomas Monjalon
cc-option uses more make-syntax to replace the shell "if/else". Issue with recursive += is fixed by doing the first assignment simply-expanded, as explained in http://www.gnu.org/software/make/manual/html_node/Appending.html Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-05update pc-bios/bios.binGerd Hoffmann
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-11Update OpenBIOS images to r577Aurelien Jarno
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2009-09-09optionrom: make clean should remove raw and .dJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-09otionrom: Use local CFLAGS no global oneJuan Quintela
It is needed by %.o : %.c rule. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-09Remove CFLAGS parameter in cc-optionJuan Quintela
With cc-option we are testing if gcc just accept a particular option, we don't need CFLAGS at all. And this fixes the recursive problem with CFLAGS Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-09-04Bring pcbios, seabios, and vgabios into the tree as git submodules. Right now,Anthony Liguori
they aren't integrated into the build but we can do that incrementally. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-08-28Update OpenBIOS images to r569Blue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-08-10Rename CPPFLAGS to QEMU_CFLAGSJuan Quintela
Now we have to variables: QEMU_CFLAGS: flags without which we can't compile CFLAGS: "-g -O2" We can now run: make CFLAGS="-fbar" foo.o make CFLAGS="" foo.o make CFLAGS="-O3" foo.o And it all should work. Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Message-Id:
2009-08-10Fix checksum writing in signboot.shAlexander Graf
The printf command takes an octal value after \, so we have to convert our decimal representation to octal first and then write it. This unbreaks extboot signing. Multiboot wasn't affected yet because the checksum was < 8. Spotted and first patch by Glauber Costa <glommer@redhat.com>. Printf idea by Paolo Bonzini <bonzini@gnu.org>. Signed-off-by: Alexander Graf <agraf@suse.de> CC: Glauber Costa <glommer@redhat.com> CC: Paolo Bonzini <bonzini@gnu.org> CC: Jan Ondrej <ondrejj@salstar.sk> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Message-Id:
2009-08-10Do not try to invoke shebang scripts directly (NFS issues)malc
Signed-off-by: malc <av1474@comtv.ru>
2009-07-31Option rom makefile fixesPaul Brook
Fix toplevel option rom makefile rules. Signed-off-by: Paul Brook <paul@codesourcery.com>
2009-07-27Fix out of tree build broken by 791e08c753a9f9be3c3880b4ea83b6dfa4b6ccadBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-07-27use cc-option for optionromJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-27Use quiet-command for building optionromJuan Quintela
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-27QEMU BOCHS bios patches to use maxcpus value.Jes Sorensen
Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-22signrom.sh: portability fixChristoph Egger
Attached patch makes signrom.sh working on NetBSD. The output of the 'od' command leads to a syntax error which breaks the build. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-16Update to a hopefully more future proof FSF addressBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-07-16Don't copy multiboot.bin into pc-bios after builtAnthony Liguori
That dirties the working directory of the tree. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-16Fix multiboot.bin build on mingw32Anthony Liguori
This combination of ld/object was suggested by Bartlomiej Celary Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-16Fix non-ACPI Timer Interrupt Routing - v3Anthony Liguori
v1 -> v2 adds comment suggested by Ryan. v2 -> v3 clarifies comment and corrects entry count Signed-off-by: Beth Kon <eak@us.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-16bios: Fix multiple calls into smbios_load_exAnthony Liguori
We're marking the used entry bitmap in smbios_load_external() for each type we check, regardless of whether we loaded anything. This makes subsequent calls behave as if we've already loaded the tables from qemu and can result in missing tables (ex. multiple type4 entries on an SMP guest). Only mark the bitmap if we actually load something. Signed-off-by: Alex Williamson <alex.williamson@hp.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-16Regenerate BIOS and add patches for -boot optionAnthony Liguori
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-09Replace signrom with shell script v3Alexander Graf
In order to not execute code we just compiled, let's replace signrom with a shell script that does the same thing while staying compatible to pretty much every system available. This should make cross-compilation for windows easier. aliguori: fix build when objdir != srcdir Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-07-05Update OpenBIOS images to r505Blue Swirl
For Sparc64, this fixes the PCI bridge configuration bugs revealed by the improved bridge handling (b7ee1603c16c1feb0d439d2ddf6cf824119d0aab). Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-07-03Work around Solaris gas problemBlue Swirl
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>