Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
Don't require the build directory to be the "out/" directory of the
SeaBIOS source.
|
|
|
|
See patch.
Signed-off-by: Stefan Reinauer <reinauer@google.com>
|
|
Create autoconf.h during the build.
Move a couple of config settings from config.h to Kconfig.
|
|
|
|
I made these two tiny changes to SeaBIOS when I was playing with the
HEAD version.
The Makefile change prevents the test command from failing if CC
contains a space.
The coreboot change prevents a warning on our gcc 4.5.2 in certain
circumstances when sizeof seems to be unsigned long int instead of
unsigned int.
They're both unintrusive, shouldn't have potential for breaking
anything.
Signed-off-by: Stefan Reinauer <stepan@coreboot.org>
|
|
This patch adds AHCI support to seabios. Tested with virtual hardware
only (upcoming ahci support in qemu). Coded by looking at the
recommandations in the intel ahci specs, so I don't expect much trouble
on real hardware. Tested booting fedora install from hard disk and a
opensuse live iso from cdrom.
[ v2: disable by default ]
[ v2: add check for malloc failure ]
[ v2: wind up disk write support ]
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
This patch adds helper functions to manage pci area.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
|
|
Extend the hard-reboot logic to qemu and kvm. On qemu, a reboot will
not reset the memory settings for 0xc0000-0xfffff, so copy that memory
area manually before rebooting. Unfortunately, kvm does not keep a
pristine copy of the BIOS at 0xffff0000, so detect that case and
shutdown the machine.
|
|
|
|
|
|
This patch makes use of pci device initialization helper function
to convert if/switch clause to table driven.
So this makes it easier to add q35 initialization code.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
|
|
Support displaying a jpeg file (stored in cbfs) during bootup.
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
|
|
Surprisingly iasl creates output file even when compilation error.
So typing make after an error will succeed.
This patch prevents it by removing the output file when error.
And adds related dependencies to compile when .hex is missing.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
|
|
If wait_irq() is called from 32bit code, then jump to 16bit mode for
the wait.
Have wait_irq check for threads, and have it use yield if threads are
pending. This ensures threads aren't delayed if anything calls
wait_irq.
Use wait_irq() in 32bit mode during a failed boot.
|
|
This patch adds native support for booting from virtio disks to Seabios.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
|
|
Enhance tools/layoutrom.py to explicitly set those symbols that
resolve to a different code chunk (eg, 16, 32seg, 32flat). This
eliminates the need to link the code chunks multiple times.
This patch reduces the dependency on binutils behavior and makes the
build simpler to understand.
|
|
|
|
|
|
If the compiler can't restrict inlining by stack usage, then disable
inlining in 16bit mode. Otherwise, old compilers produce code that
uses too much stack space.
|
|
Initial support for EHCI high-speed USB controllers.
|
|
Those files are only used by 32bit code, so don't bother including
them with the 16bit code.
|
|
This patch adds initial support for USB Mass Storage Controllers.
This includes support for bulk transfers on UHCI controllers.
Code to detect a USB MSC device is added, and wrappers for sending
"cdb" block commands over USB are added.
The scsi "inquiry" command is also added.
|
|
Move common "cdb" request functions to a new file.
|
|
Add support for detecting, initializing, and enumerating USB hubs.
|
|
|
|
|
|
|
|
Omitting "void" leads to a K&R style declaration which was not intended.
|
|
Add APM code to 32bit segmented code.
Use 32bit APM code instead of jumping into 16bit mode.
|
|
Create a new code blob (code32seg) with support for 32bit functions
that need to utilize explicit segment accesses.
This code blob uses global variables relative to %gs and with a
dynamic code offset (determined by get_global_offset()).
Add BIOS32 structure and code.
Add code for 32bit PCI BIOS code.
|
|
Prepare for support of segmented 32bit code.
Add new MODESEGMENT definition, and clarify existing 32bit mode defs.
|
|
|
|
|
|
When experimental support for parallelizing option roms and hardware
init (default disabled) is selected, add support for checking on
hardware init progress from the RTC irq handler.
Enable ability for RTC to be turned on for additional users.
Allow regular option roms (not just vga option roms) to run in
parallel with hardware init.
Don't use stack in transition32 / transition16 until new mode is
entered.
Also, cleanup leaking of data handlers in usb code.
Also, decrease frequency of iomemcpy checks (every 2K instead of 1K).
|
|
Move the threading and stack_hop code to a new file.
|
|
Seeing an odd issue with ZoneTmpHigh not being declared global - for
now, work around by reordering the soruce files.
Also, remove the ".comment" section from the final .elf file.
|
|
Enable USB wrapper functions to call either ohci or ehci helpers.
Implement pci_config_maskw in place of pci_set_bus_master.
Introduce 'struct usb_pipe' in place of 'void *' for pipes.
|
|
Signed-off-by: Gleb Natapov <gleb@redhat.com>
|
|
-boot menu=on|off qemu option.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
|
|
This adds preliminary support for USB controllers and keyboards.
Add support for UHCI controllers.
Add support for "HID" USB keyboards.
Also, fix bug in hexdump() - len need not be power of 4.
|
|
If rom is over 64K then use part of e-segment for 32bit code.
Push 32bit code as high as it can go in the f-segment.
Do version building before layoutrom.py - this way layoutrom knows
full size of rom.
Make layoutrom.py build the full ld script - remove now unused ld
scripts that just imported the output of layoutrom.py.
Also, use "objdump" instead of "nm" - reduce toolchain requirements.
Enhance tools/checkrom.py so that it can pad bios.bin to size qemu is
happy with.
Also, add dependencies to build rules for local tools - if tool
changes automatically rerun it.
Make sure option roms don't overwrite the 32bit code (should the 32bit
code be in the e-segment).
Make sure shadow code works even if part of the code is in the
e-segment.
|
|
|
|
|
|
Add new "ramdisk" type for disk accesses.
Extract out high-mem finding code from pmm into find_high_area().
Fix bug in GDB_BASE and GDT_LIMIT macros (wrong bit shifts).
|
|
Move generic code from ata.c to new file block.c.
Rename atabits.h to ata.h and move ata header definitions from disk.h.
Rename ATA.channels to ATA_channels.
Rename ATA structure to Drives.
Support both CONFIG_DRIVES and CONFIG_ATA options.
|
|
Add versioning info to initial debug and screen banner output.
|
|
Add initial code for Post Memory Manager - it's just the stubs for now.
Also, fix PnP entry point not clearing irqs and direction flags.
|