SeaBIOS

SeaBIOS Git Change Log

Age Message
7 days 3 hours Fix comment typo

Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
21 days 19 hours biostables: Support SMBIOS 2.6+ UUID format

SMBIOS 2.6+ stores the UUID in a different format, with the first 3
fields in little endian format. This is what modern qemu delivers
and what dmidecode also handles, so let's follow suit too.

Signed-off-by: Cole Robinson <crobinso@redhat.com>
Commit 2e11d582b5e14759b3c1482d7e317b4a7257e77d, by Cole Robinson
26 days 16 hours kbd: Refactor capslock and numlock handling

Simplify the scan_to_keycode[] table by implementing numlock and
capslock checking in the code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
26 days 17 hours kbd: Don't treat scancode and asciicode as separate values

The scancode/asciicode pair can be more easily handled as a single
16bit value.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
24 days 15 hours post: Always set HaveRunPost prior to setting any other global variable

The HaveRunPost flag controls whether post or reboot handling is
entered on a reset signal. The flag needs to be set before any other
global variable because an external reboot signal could occur at any
time. (If any global variable is modified prior to setting
HaveRunPost then the code might enter post with global variables in a
dirty state.)

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 27 days resume: Make KVM soft reboot loop detection more flexible

Move the check for soft reboot loops from resume.c to shadow.c and
directly check for the case where the copy of the BIOS in flash
appears to be a memory alias instead. This prevents a hang if an
external reboot request occurs during the BIOS memcpy.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
24 days 16 hours coreboot: Check for unaligned cbfs header

If the CBFS header is invalid and points to 0xffffffff it could cause
SeaBIOS to read past the 4GB boundary and cause an exception. Check
the alignment of the header pointer before attempting to access fields
within the header.

Reported-by: "Alex G." <mr.nuke.me@gmail.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
29 days 18 hours tpm: Do not set TPM in failure mode if menu command fails

Since we may detect that HW physical presence is enabled but we do not detect
whether it is actually asserted, we may fail on the TPM menu commands that
require the assertion of physical presence. We therefore cannot set the TPM
into failure mode if we hit this case. Failure should never occur in these
cases if SW physical presence has been asserted.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit 44250252eeaefd5e81bae2f73639bd323682217b, by Stefan Berger
29 days 18 hours tpm: Remove usage of PP_CMD_ENABLE from all but one place

Remove the usage of PhysicalPresence_CMD_ENABLE from all but
the assert_physical_presence function.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit 8b902b88ea239d2193e78f0c425a180b6e3a24f0, by Stefan Berger
29 days 18 hours tpm: Rework the assertion of physical presence

Rework the assertion of physical presence by calling assert_physical_presence
in tpm_setup. This call will assert physical presence if SW assertion is
possible or by checking whether HW physical presence is enabled.
The TPM menu will only be shown if physical presence is asserted or HW
physical presence is enabled after this call.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit 115d0084831b1e9e085d8fe49fa9e4ea21542464, by Stefan Berger
29 days 18 hours tpm: Add support for harware physical presence

Extend assert_physical_presence with checks for hardware physical presence
support. If hardware physical presence is enabled, we return 0.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit a2206d30aed52722ce708519ef7b31d88330d515, by Stefan Berger
29 days 18 hours tpm: Move assert_physical_presence and dependencies

Move assert_physical_presence and dependencies in front of tpm_startup
so that the next patches can assert physical presence after TPM_ORD_Startup
ran.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit e55e37f4ba4ff8ebfc68ab7694245e475d646b84, by Stefan Berger
29 days 18 hours tpm: Copy digest into HashLogExentEvent response

Copy the digest into the response of a HashLogExtendEvent API call.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Commit 2b237501077d9dcdb9c9ba8cd7aaabdd4a531e80, by Stefan Berger
1 month 16 hours usb: Remove usbdev->slotid field

The usbdev->slotid field is xhci specific and on xhci it is always
reachable from usbdev->defpipe->slotid.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Don't use 16bit BIOS return codes in TPM menu functions

Don't use the return codes from the 16bit BIOS spec in the internal
menu functions. Only the 16bit BIOS interface code should need to
handle the details of that spec. For functions that need to return
the TIS command status, return those codes directly instead of via a
pointer parameter.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 6 days tpm: Don't use 16bit BIOS return codes in tpmhw_* functions

Don't use the return codes from the 16bit BIOS spec in the internal
tpmhw functions. Only the 16bit BIOS interface code should need to
handle the details of that spec.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 6 days tpm: Don't use 16bit BIOS return codes in tpm_log_event()

Don't use the return codes from the 16bit BIOS spec in the internal
tpm_log_event() and tpm_log_extend_event() functions. Only the 16bit
BIOS interface code should need to handle the details of that spec.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Don't use 16bit BIOS return codes in build_and_send_cmd()

Don't use the return codes from the 16bit BIOS spec in the internal
function build_and_send_cmd(). Instead, return the TIS command status
code of the command or -1 if there was a command transmission failure.
This eliminates the need for a returnCode pointer parameter.

Also, implement debugging dprintf() in build_and_send_cmd() instead of
in every caller. This replaces the command name with the integer
command id, but it does make the debugging more consistent.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Don't call tpm_set_failure() from tpm_log_extend_event()

The 16bit BIOS interface shouldn't be able to shutdown the TPM. Move
the check for tpm_is_working() and tpm_set_failure() to the only
caller of tpm_log_extend_event() that may shutdown the TPM.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: No need to check the return status of measurements

The low-level measurement functions already handle error conditions,
there is no need to check for the errors in the high level measurement
functions.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Don't return a status from external bios measurement functions

The callers of the measurements don't care what happens, so no need to
return a status.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Eliminate response buffer parameter from build_and_send_cmd()

There are no longer any callers that use the response buffer.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
1 month 7 days tpm: Introduce tpm_get_capability() helper function

Introduce helper function to call the TPM_ORD_GetCapability command.
Update all get capability callers to use this helper.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 8 days tpm: Simplify tcpa probe

The TPM ACPI tables are only scanned once at startup and the code can
rely on that. Merge find_tcpa_table() into find_tcpa_by_rsdp(), merge
get_lasa_base_ptr() into reset_acpi_log(), and merge tpm_acpi_init()
into tpm_setup().

The tpm_state structure is now only used for TCPA tracking.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2 months 8 days tpm: Rework TPM interface shutdown support

The 16bit BIOS interface should only shutdown on request from that
interface - errors from the tcp or acpi log setup should not shutdown
the interface. (Errors from those functions will cause the TPM to be
in a "not working" state which will cause all the 16bit interface
functions to fail.)

Centralize the checking for the interface shutdown condition in
tpm_interrupt_handler32().

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>