Age | Commit message (Collapse) | Author | Files | Lines |
|
Add code to allocate an extra stack for the main vgabios int 0x10
entry point. The allocation is done via the PMM spec and uses a PCI
v3 permanent low memory region request. This request will work with
SeaBIOS - it is unknown how many other main BIOS implementations
support this PMM call.
The extra stack is useful for old DOS programs that call the VGABIOS
and expect it to work with very small amounts of stack space.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Avoid hardware specific code in output.c. This will reduce the amount
of change needed to output.c as support for more serial hardware is
added.
This patch also renames some functions to improve the naming scheme.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Add ability for a ROM file to point to
it's image in memory. When file is in memory,
add utility that can patch it, storing
pointers to one file within another file.
This is not a lot of code: together with the follow-up patch to load
ACPI tables from ROM, it's about 1K extra.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Testing was done on windows images (win 2008/2012) taken from esx with vmware
tools installed and boot disk configured to use pvscsi.
Also I've used linux (ubuntu 12.04) where pvscsi drivers are installed by
default and booted it using qemu cmd similar to this:
./x86_64-softmmu/qemu-system-x86_64 -snapshot -device pvscsi,id=pvscsi0 \
-device scsi-disk,bus=pvscsi0.0,drive=drive0 \
-drive id=drive0,if=none,file=ubuntu-12.04.qcow2 \
-bios roms/seabios/out/bios.bin
Signed-off-by: Evgeny Budilovsky <evgeny.budilovsky@ravellosystems.com>
|
|
Build out/bios.bin on QEMU, out/bios.bin.elf on coreboot, and
out/Csm16.bin for CSM. This reduces the chance that one accidentally
builds for an incorrect target.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
The ahci driver needs to jump into 32bit mode in order to access
portions of the ahci controllers PCI config space. Instead of jumping
into 32bit mode just to toggle the ahci registers, jump into 32bit
mode for all of the driver interactions. This shrinks the size of the
overall code and can lead to further cleanups.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Add a config option to specify the rom size wanted. Default is zero,
which will automatically figure the needed size.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Unbreaks parallel builds.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Move the DMA controller code in resume.c and hw/floppy.c to a new file
hw/dma.c. This centralizes the DMA controller code into one place.
Also, don't unmask the floppy DRQ during floppy setup - there is no
reason to unmask the DRQ prior to a command being programmed into the
DMA controller.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Group the Real Time Clock code into hw/rtc.[ch].
Also, use rtc_read/write/mask function naming (instead of
inb/outb_cmos) to be more consistent with other register accessors.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
This patch simplifies seabios cross-builds on !x86 platforms.
It adds a CROSS_PREFIX variable which is used to set CC, LD &
friends to the cross build binaries. It also moves the common
command definitions up in the Makefile to make sure CC is set
correctly when probing compiler flags using $(call cc-option ...)
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
$subject says all. Support for usb3 streams is not implemented yet,
otherwise it is fully functional. Tested all usb devices supported
by qemu (keyboard, storage, usb hubs), except for usb attached scsi
in usb3 mode (which needs streams).
Tested on qemu only, tagged with QEMU_HARDWARE because of that.
Testing with physical hardware to be done.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Make sure dependency file import works with new hw/ and fw/
sub-directories.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Perform a compile check on each individual C file of the vgabios code
similar to the way that the main bios code does individual C compile
tests.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Move many C files from the src/ directory to the new src/fw/ directory.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Move many C files from the src/ directory to the new src/hw/ directory.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
It's common for other projects (eg, QEMU, Linux) to put build scripts
into a "scripts/" directory. There's no reason for SeaBIOS to be
different, so rename the "tools/" directory to "scripts/".
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Internal "low memory" allocations are currently placed in the UMB
region (0xc0000-0xf0000). However, there have been reports of some
real machines that do not support DMA to this area of memory. So, add
a compile time config option (off by default) to support placing all
internal low-memory allocations at the end of the 640K real-memory
area (0x90000-0xa0000).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Rebuild targets if these scripts change.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Generate dependencies on pre-processed ASL files. This ensures that a
change to an imported dsdt file will cause iasl to be called.
Make .config depend on Kconfig files.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Convert all users of the alternative variable exports to VARFSEG.
There isn't a significant distinction between the existing types of
exports, so it's simpler to just use one type going forward.
The new VARFSEG declaration is only emitting when in 32bit mode, so
update and move some variables as needed.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Remove references to "../" and "out/" from the build so that "make
OUT=/a/b/c/" will work.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
The build textually includes all the code together in one unit for the
compiler in order to use gcc's -fwhole-program option. Textually
including all the code can mask subtle code errors (eg, forgetting to
include the correct headers) and can lead to confusing error reports
from the compiler. So, compile each file individually in addition to
the normal textually inclusive build. This improves the error
checking while still obtaining the benefits of -fwhole-program.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
The combine option has been deprecated from gcc for the last few
revisions. The option doesn't add any real benefits, so there's no
real point in checking for it on the few systems that will still have
it.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
The $(cc-option) macro was being executed multiple times for each
compiler invocation. That's a waste of time.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
add dsdt for q35 chipset of qemu.
[jbaron: remove suspd bits since they are now auto-generated, move pci window to 0xb0000000,
add framework for auto generated pci windows]
[kraxel: remove pci express root ports + pci bridge]
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Jason Baron <jbaron@redhat.com>
|
|
This patch adds boot support for LSI MegaRAID SAS controllers.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Cc: Kevin O'Connor <kevin@koconnor.net>
Cc: Gerd Hofmann <kraxel@redhat.com>
Cc: Alex Graf <agraf@suse.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>
|
|
Move the _S3/_S4/_S5 packages out of ssdt-pcihp.dsl and into a separate
file. Correspondingly, move the patching from build_pcihp to build_ssdt.
Place this part at the beginning of the SSDT. Offset computation is a
bit simpler, and anyway the packages do not need to be inside Scope(_SB).
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
I had a disk full condition and a partial hex file
got generated. Following make failed trying to use it.
We can make build a bit more robust by instructing
make to remove output files on error.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
This is a driver for an AMD PCscsi (am53c974) SCSI card. It can be
used together with DOS or old operating systems such as Windows NT 3.1,
Windows 3.1 or Windows 98.
Cc: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
iasl versions starting with 20120320
(git commit 7fd09d993580e22a096a1b21d2a356d89e702153) enable
a preprocessor by default, which currently strips out
comments from the input. Happily the next release,
20120420, includes an option to disable the preprocessor.
Test and use this option when available.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
This patch adds support for the lsi53c895a scsi host adapter,
allowing seabios to boot from scsi disks and cdroms connected
to the lsi scsi hba emulated by qemu.
This driver was written by looking at the expectations of qemu's
lsi emulation. I have no idea idea how close this is to work on
real hardware, and I somehow doubt anyone cares given the age of
physical lsi scsi cards. It depends on !COREBOOT for that reason.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
This patch adds support for booting from UAS (usb
attached scsi) devices.
For now only usb 2.0 support is there. On usb 3.0 the
UAS protocol uses streams, so changes will be required
to make usb 3.0 devices fly once we have a xhci host
controller driver.
So far the driver has been tested on qemu-emulated
virtual hardware only. In theory should just work on
bare metal too.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Create a 'struct romfile_s' and populate a list of all romfiles at
start of init. Caching the romfiles both simplifies the code and
makes it more efficient.
Also, convert the ramdisk code to use romfile helpers instead of
directly accessing cbfs.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Almost every linux distro has iasl packaged these days.
Lets make it a build dependency and stop the hassle we
have with updating the *.hex files in the git repo.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
Add IASL definition to Makefile so it can be passed by the user.
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
|
|
Commit 36feea9317b45abf3a540e9d82ad1723bebe3ebd
removed the dependency of output file on
acpi output. This means it's not rebuilt on
acpi source or hex file updates. Re-introduce this
dependency.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
Move the build version generation to a script in tools/ and enhance
the system to call "git describe" when it appears the user has a git
repo. Also, allow the version to be extracted from a ".version" file
for use in official tar releases.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|
|
virtio-scsi is a simple HBA that talks to the host via a single
vring. The implementation looks like a hybrid of usb-msc and
virtio-blk.
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Perform post-processing of the vgabios assembler to remove certain
instructions that gcc generates and x86emu can't handle.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
|