SeaBIOS

SeaBIOS Git Change Log

Age Message
7 days 2 hours boot: Fix boot order for SCSI target, lun > 9

We identify devices by their Open Firmware device paths. The path
component for the logical unit on a bus is incorrect:
bootprio_find_scsi_device() and bootprio_find_usb() format target
(a.k.a. SCSI ID) and lun in decimal, while QEMU uses hexadecimal.
Bootorder list entries with target, lun > 9 aren't found (lucky case),
or attributed to the wrong logical unit (unlucky case).

The relevant spec[*] agrees with QEMU (and OVMF, for that matter).
Change %d to %x.

No actual impact on USB, because QEMU only uses LUN 0 there.

RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1096560

[*] Open Firmware Recommended Practice: SCSI-3 Parallel Interface,
Version 1, Section 3.1 Physical Address Formats and Representations
http://www.openfirmware.org/1275/practice/spi/spi1_0.ps
IEEE Standard for Boot (Initialization Configuration) Firmware: Core
Requirements and Practices, IEEE Std 1275-1994, Annex E SCSI host
adapter package class, section E.2.1 Physical address formats and
representations

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Commit 275672eb70efdf81c51b997d41a4409b404aa8f6, by Markus Armbruster
1 month 29 days hw/pci: reserve IO and mem for pci express downstream ports with no devices attached

Commit c6e298e1f12e0f4ca02b6da5e42919ae055f6830
hw/pci: reserve IO and mem for pci-2-pci bridges with no devices attached

introduced support for hot-plugging devices behind pci-2-pci bridges.
Extend hotplug support also for pci express downstream ports.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Commit 3aa31d7d6375303fc88438021aad485f50bb1e39, by Marcel Apfelbaum
1 month 20 days vgabios: Fix broken build resulting from e5749978.

The e5749978 commit added -fno-merge-constants to the compile flag.
That option changes the names of ".rodata" sections. Update
vgalayout.lds.S so that the vgabios can continue to build.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 22 days romlayout: Use "rep ; nop" not "rep nop".

Fixes:
Compiling (16bit) out/romlayout.o
src/romlayout.S: Assembler messages:
src/romlayout.S:285: Error: expecting string instruction after `rep'
make: *** [out/romlayout.o] Error 1

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2 months 7 days ohci: Update usb command timeouts to use usb_xfer_time()

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 7 days uhci: Update usb command timeouts to use usb_xfer_time()

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 7 days ehci: Update usb command timeouts to use usb_xfer_time()

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 7 days xhci: Update the times for usb command timeouts.

The xhci controller had a hardcoded 1 second timeout for both bulk and
control transfers. The 1 second bulk timeout is too small for some
real devices.

Increase both times to 5.1 seconds - according to the USB spec, the
maximum time a command should take is 5 seconds. However, have the
set_address command only wait for 150ms (spec says set_address should
take no more than 50ms).

Introduce usb_xfer_time() to calculate maximum command time.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 10 days build: Minor - fix comments referring to old tools/ directory.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 10 days build: Get fixed address variables from 32bit compile pass (not 16bit)

Update the layoutrom.py build script so that fixed address sections
can come from the 32bit compiled C code. Update the C code so that
all VAR16FIXED variables instead use the new VARFSEGFIXED which is
defined in 32bit mode.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 10 days build: Only export needed fields in LayoutInfo in layoutrom.py.

A number of fields were exported from the layout info that weren't
used. Don't bother exporting them.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 11 days build: Use fileid instead of category to write sections in layoutrom.py.

The 'category' really determines the memory location while the
'fileid' determines which link stage the section is in. So, use
'fileid' when writing the linker scripts.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 14 days build: Keep segmented sections separate until final link step.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 10 days build: Rework getRelocs() to use a hash instead of categories in layoutrom.py

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 12 days build: Refactor findInit() function.

Push findInit() into main() and unify the category setting code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 12 days build: Use customized entry point for each type of build.

Set an appropriate elf entry point (entry_elf, entry_csm,
reset_vector) for each type of build (coreboot, csm, qemu). Use that
entry point when determining which sections to keep.

Also, remove the '.export.' mechanism to keep a section in the final
binary - it is no longer used.

This allows the build to slightly reduce the overall size as entry_elf
is no longer needed on non-coreboot builds and entry_csm is no longer
needed on non-csm builds.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 12 days build: Refactor layoutrom.py gc() function.

Eliminate the per-section 'keep' variable - the list of sections that
will be emitted is sufficient to track that state.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 12 days build: Extract section visiting logic in layoutrom.py.

Extract out the logic that visits all reachable sections into new
function findReachable().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 12 days build: Remove unused function getSectionsStart() from layoutrom.py.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 15 days Abstract reset call (and possible 16bit mode switch) into reset() function.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 16 days Remove the TODO file.

The TODO file hasn't been updated in years and the info in it is stale.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 16 days Make sure handle_smi() and handle_smp() are compiled out if not enabled.

Add CONFIG_ checks around the handle_smi/handle_smp functions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 18 days vgabios: Use .code16 not .code16gcc

There's no need to use .code16gcc where we are writing assembler code
explicitly. It only affects word-size-ambiguous instructions, and we
should just be explicit. And we are.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Commit 67fd42cf16e6b16793eef2413b03e17f387611e2, by David Woodhouse
2 months 18 days romlayout: Use .code16 not .code16gcc

There's no need to use .code16gcc where we are writing assembler code
explicitly. It only affects word-size-ambiguous instructions, and we
should just be explicit. And we are.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Commit 5b22d9397258716bc2dc3b1b5a3f5cef297c6039, by David Woodhouse
2 months 18 days build: use -m16 where available instead of asm(".code16gcc")

GCC 4.9 and clang 3.5 support the -m16 option on the command line which
supersedes the hackish ".code16gcc" assembler directive. Use it where
possible.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Commit 04b531ab15e60a3023ab7c4f48088ee15206ae7b, by David Woodhouse