diff options
author | Nico Huber <nico.huber@secunet.com> | 2019-12-05 13:49:19 +0100 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2020-04-20 10:09:59 +0000 |
commit | e6b0a32cb305f8f201d93ba41215ba9e976c7698 (patch) | |
tree | 4a5d50c488e5781825f1dc333cef8346c427346f /payloads/libpayload/libc | |
parent | b81147cb56cb7265d1584491e37accdb2f2f61d7 (diff) |
libpayload: Make 8250 UART driver relocation safe
`lib_sysinfo->serial` is a virtual pointer into coreboot tables.
It's not valid across relocation. Accessing the wrong value during
relocation of FILO resulted in a hang with DEBUG_SEGMENT and UART
console enabled. Work around that by caching the whole table entry
locally.
An alternative would be to revise `sysinfo`, to contain no virtual
pointers to anything outside the payload.
Change-Id: I03adaf57b83a177316d7778f7e06df8eb6f9158e
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37513
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Reto Buerki <reet@codelabs.ch>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'payloads/libpayload/libc')
0 files changed, 0 insertions, 0 deletions