aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* lets pretend that RTC can be used to wakeup from S4Gleb Natapov2011-02-041-2/+2
| | | | | | WHQL complains otherwise. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Expand user configurable parameters in Kconfig.Kevin O'Connor2011-01-302-113/+347
| | | | | Move most of the config settings in config.h to the Kconfig file. The remaining settings in config.h, are mostly build related.
* Support non-local build directory - allow "make OUT=abc/" to work.Kevin O'Connor2011-01-292-3/+3
| | | | | Don't require the build directory to be the "out/" directory of the SeaBIOS source.
* Start using Kconfig to configure SeaBIOS settings.Kevin O'Connor2011-01-292-9/+17
| | | | | | Create autoconf.h during the build. Move a couple of config settings from config.h to Kconfig.
* Minor boot fixes.Kevin O'Connor2011-01-262-1/+1
|
* Minor comment / code layout improvement to romlayout.S.Kevin O'Connor2011-01-221-17/+18
|
* Fix to prevent infinite loop in build_pci_path().Kevin O'Connor2011-01-221-2/+3
| | | | Make sure the PCI path doesn't point to itself.
* support T13 EDD3.0 specGleb Natapov2011-01-162-18/+39
| | | | | | | | | | | Some guests (such as Linux) expect BIOS to behave according to T13 EDD3.0 spec. T13 spec is much better then Phoenix since it provides more information about interface and device paths. This patch adds support for the spec. If guest provides buffer with enough space for T13 EDD info return EDD according to T13 spec otherwise use Phoenix one. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Add ability to track PCI paths and add to build_pci_path().Kevin O'Connor2011-01-104-5/+47
| | | | Improve device path descriptions of devices on PCI buses.
* Move the CBFS payload setup to later in the boot.Kevin O'Connor2011-01-083-3/+4
| | | | Don't try to register payloads until after malloc has been setup.
* Extract space trimming code from ATA and use in USB and bootorder code.Kevin O'Connor2011-01-085-11/+21
| | | | | | Introduce function nullTrailingSpace() that nulls blank characters from the end of a string. Use this function in the ATA, USB MSC, and bootorder code.
* seabios: acpi: add _RMV control method for PCI devicesKevin O'Connor2011-01-052-771/+999
| | | | | | | | | Use _RMV method to indicate whether device can be removed. Data is retrieved from QEMU via I/O port 0xae0c. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Acked-by: Gleb Natapov <gleb@redhat.com>
* Add support for finding the boot priority of USB drives.Kevin O'Connor2011-01-013-3/+25
| | | | Use the device path of the USB device to find a bootorder entry.
* Extend 'usb_pipe' to track the controller and ports of each device.Kevin O'Connor2011-01-015-0/+9
| | | | | Track the path of ports and controller of each usb device. This is useful for reporting the exact device path.
* Add functions for boot device path parsing.Kevin O'Connor2011-01-011-13/+95
| | | | Add functions that find boot device path for pci/ata/floppy/rom devices.
* Use bootprio_find_named_rom() for ramdisk and cbfs payload priorities.Kevin O'Connor2010-12-302-5/+6
|
* Remove drive->desc field.Kevin O'Connor2010-12-2912-94/+114
| | | | | | | | | | | | | | The description field is only available during the POST phase - it is confusing to have it live in a structure available through all phases. The description was only used by the boot menu code - pass each drive description directly to the bootlist code. Add a helper (znprintf) to automatically malloc_tmp the required space. Also, fixup ramdisk handling - it was using an incorrect floppy priority.
* Minor reorganization of some of the boot_xxx code in boot.c.Kevin O'Connor2010-12-291-18/+25
|
* Move IPL.fw_bootorder to static variables in boot.c.Kevin O'Connor2010-12-292-18/+9
|
* Move IPL.bev to static variables in boot.cKevin O'Connor2010-12-292-26/+19
| | | | | | Move the BEV storage to static variables in boot.c. Also, increase the maximum number of BEV entries from 8 to 20.
* Move IPL.checkfloppysig to a global (CheckFloppySig) in boot.c.Kevin O'Connor2010-12-292-4/+4
|
* Remove Drives global struct in favor of independent global variables.Kevin O'Connor2010-12-294-20/+15
| | | | | The "Drives" struct just held three global variables - declare the three global variables independently.
* Don't access drive_g->desc from boot_cdrom().Kevin O'Connor2010-12-291-1/+1
| | | | | | The drive description is allocated with malloc_tmp() and is thus only available during the POST phase - boot_cdrom() is called during the boot phase.
* Simplify keyboard reading code in the interactive boot menu.Kevin O'Connor2010-12-291-16/+16
|
* Call setup_translation() from map_hd_drive().Kevin O'Connor2010-12-276-11/+4
| | | | Unify the calling of setup_translation().
* Rename add_ordered_drive() to add_drive() and use in map_hd_drive().Kevin O'Connor2010-12-271-25/+18
|
* Add stubs to permit devices to specify their boot priority.Kevin O'Connor2010-12-2710-53/+122
| | | | | | Add support for passing in priorities to bootlist system. Based on patch by: Gleb Natapov <gleb@redhat.com>
* Simplify boot ordering by building an inclusive boot list.Kevin O'Connor2010-12-2710-308/+216
| | | | | | | | | | | | | | | | | Replace the bcv list with a full list of all "bootable objects". All ordering can then be done on this list. The final boot menu, drive mapping, and BEV list generation is then driven from this authoritative list. Move "Floppy" and "DVD/CD" description prefixes into drive description generation code to simplify boot menu generation. Rework QEMU's CMOS defined bootorder to work with priority scheme in new boot list. Have every CBFS entry create it's own BEV entry (instead of one entry for all CBFS payloads). Move CBFS payload detection code into coreboot.c.
* Populate drive_g->desc prior to calling add_bcv_internal().Kevin O'Connor2010-12-262-8/+5
| | | | Make sure the description is populated before registering a drive.
* pciinit: fix off-by-oneIsaku Yamahata2010-12-261-1/+1
| | | | | | IO port ends at 64K - 1. not 64K. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
* Minor build fixes.Kevin O'Connor2010-12-261-1/+1
| | | | | | | | | | | | | | | | | 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>
* Track the source of each optionrom deployed.Kevin O'Connor2010-12-241-10/+24
| | | | | | It's useful to track where each optionrom in the system originated from when initializing bev/bcvs. So, keep a map of the rom address to its source.
* Support qemu based romfile wrappers called out of order.Kevin O'Connor2010-12-241-6/+23
| | | | | If the file requested isn't the last file read, then reread the index to find the given file.
* Breakup boot_setup() bootorder code into its own function.Kevin O'Connor2010-12-241-30/+41
|
* Add romfile_loadfile() helper function.Kevin O'Connor2010-12-244-23/+34
| | | | | Add function to find, malloc, and copy a romfile. Use it in the bootsplash and bootorder code.
* Read bootorder file into memory.Gleb Natapov2010-12-242-0/+47
| | | | | | | Read bootorder file, parse it and put it into array for easy consumption. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Add strchr() function.Kevin O'Connor2010-12-242-0/+10
|
* Add romfile_name() function.Gleb Natapov2010-12-242-0/+14
| | | | | | | romfile_name() return file name given file handler. Works for qemu and coreboot. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Add BAID for ahci cdrom.Gleb Natapov2010-12-241-1/+3
| | | | Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Provide full EDD 3.0 info for virtio diskGleb Natapov2010-12-241-53/+73
| | | | | | | | | Fill out entire EDD 3.0 structure for virtio disk. Currently only EDD 1.0 part is filled which is missing such important info as device path. Use SCSI device type since virtio is not defined by EDD spec and virtio disk pci device uses SCSI class. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* Create separate IPL entry for each CD/DVDGleb Natapov2010-12-126-13/+52
| | | | | | | | | | Current code creates only one IPL entry of type IPL_TYPE_CDROM even if there are more then one CDROM drive present. If CDROM that the entry refers to is not bootable there is no way to retry boot from another CDROM. Fix this by creating IPL entry for each CDROM drive found. First CDROM will always be placed in IPL entry 3 for backwards compatibility. Signed-off-by: Gleb Natapov <gleb@redhat.com>
* ahci: set controller idGerd Hoffmann2010-12-121-0/+1
| | | | | | | Fill the controller id in the drive struct with the port number so we get a sane boot menu ordering with multiple hard disks attached. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* ahci: fix off-by-one in port countGerd Hoffmann2010-12-121-1/+1
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* ahci: enable io/mem/dmaKevin O'Connor2010-12-121-0/+3
| | | | | | | Make sure IO, MMIO and DMA are enabled in pci config space before using the device. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* ahci: set dma feature flagGerd Hoffmann2010-12-121-0/+2
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* Check if capability enabled in XXX_cmd_data functions.Kevin O'Connor2010-12-053-0/+9
| | | | | | Make sure to check if CONFIG_AHCI, CONFIG_ATA, CONFIG_USB_MSC is enabled in their respective cmd_data functions. This reduces the compile size when they are not enabled.
* Require a "_cfuncXX_" symbol prefix for inter-mode c function references.Kevin O'Connor2010-12-055-25/+19
| | | | | | | | | | | | The compiler can get confused when referencing a C function in a different mode. (It reasonably assumes that the C function in the current mode is desired.) To avoid this compiler confusion, introduce symbol prefixes (_cfunc16_, _cfunc32flat_, _cfunc32seg_) that must be used on C function symbols that are referenced from other compilation modes. This makes it less likely compiler confusion will occur. It will also makes it easier to implement and use vtable like operation structures.
* add ahci supportGerd Hoffmann2010-12-057-0/+687
| | | | | | | | | | | | | | 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>
* ata: make helpers availableGerd Hoffmann2010-12-052-9/+13
| | | | | | | | Make ata helper functions available outside ata.c, so others (i.e. upcoming ahci support) can use them. Prefix them with ata_ to avoid name clashes. Also don't hard-code buffer size for the model name. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* util: add memset_fl()Gerd Hoffmann2010-12-052-0/+10
|