libpayload: Cache physical location of serial-console struct

In the presence of self-relocating payloads, it's safer to keep
physical addresses in `libsysinfo`.

Change-Id: Icd30e95c6b8115d16dd793914fb01a1a9da1854f
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43577
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Nico Huber
2020-07-18 14:54:47 +02:00
committed by Patrick Georgi
parent b2eafa666c
commit be842cb72d
8 changed files with 16 additions and 17 deletions

View File

@@ -343,9 +343,9 @@ int serial_getchar(void)
/* For simplicity's sake, let's rely on coreboot initializing the UART. */
void serial_console_init(void)
{
struct cb_serial *sc_ptr = lib_sysinfo.serial;
struct cb_serial *sc_ptr = phys_to_virt(lib_sysinfo.cb_serial);
if (!sc_ptr)
if (!lib_sysinfo.cb_serial)
return;
base_uart_addr = (void *) sc_ptr->baseaddr;