Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/35288 )
Change subject: arch/x86: Move ehci_dbg_info outside _car_relocatable_data ......................................................................
arch/x86: Move ehci_dbg_info outside _car_relocatable_data
As code already used CBMEM hooks to switch from CAR to CBMEM it was never necessary to have the structure declared inside _car_relocatable_data.
Switch to use car_[get|set]_ptr is mostly for consistency, but should also enable use of usbdebug with FSP1.0 romstage.
Change-Id: I636251085d84e52a71a1d5d27d795bb94a07422d Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- M src/arch/x86/car.ld M src/drivers/usb/ehci_debug.c 2 files changed, 7 insertions(+), 7 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/88/35288/1
diff --git a/src/arch/x86/car.ld b/src/arch/x86/car.ld index fe0e723..d3d1443 100644 --- a/src/arch/x86/car.ld +++ b/src/arch/x86/car.ld @@ -63,13 +63,13 @@
TIMESTAMP(., 0x200)
- _car_relocatable_data_start = .; - _car_ehci_dbg_info_start = .; /* Reserve sizeof(struct ehci_dbg_info). */ . += 80; _car_ehci_dbg_info_end = .;
+ _car_relocatable_data_start = .; + /* _car_global_start and _car_global_end provide symbols to per-stage * variables that are not shared like the timestamp and the pre-ram * cbmem console. This is useful for clearing this area on a per-stage diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c index 638b7c7..0596795 100644 --- a/src/drivers/usb/ehci_debug.c +++ b/src/drivers/usb/ehci_debug.c @@ -67,7 +67,7 @@
static inline struct ehci_debug_info *dbgp_ehci_info(void) { - if (car_get_var(glob_dbg_info_p) == NULL) { + if (car_get_ptr(glob_dbg_info_p) == NULL) { struct ehci_debug_info *info; if (ENV_BOOTBLOCK || ENV_VERSTAGE || ENV_ROMSTAGE) { /* The message likely does not show if we hit this. */ @@ -77,9 +77,9 @@ } else { info = &glob_dbg_info; } - car_set_var(glob_dbg_info_p, info); + car_set_ptr(glob_dbg_info_p, info); } - return car_get_var(glob_dbg_info_p); + return car_get_ptr(glob_dbg_info_p); }
static int dbgp_wait_until_complete(struct ehci_dbg_port *ehci_debug) @@ -716,7 +716,7 @@ if (dbg_info_cbmem == NULL) return; memcpy(dbg_info_cbmem, dbg_info, sizeof(*dbg_info)); - car_set_var(glob_dbg_info_p, dbg_info_cbmem); + car_set_ptr(glob_dbg_info_p, dbg_info_cbmem); return; }
@@ -724,7 +724,7 @@ /* Use state in CBMEM. */ dbg_info_cbmem = cbmem_find(CBMEM_ID_EHCI_DEBUG); if (dbg_info_cbmem) - car_set_var(glob_dbg_info_p, dbg_info_cbmem); + car_set_ptr(glob_dbg_info_p, dbg_info_cbmem); }
rv = usbdebug_hw_init(false);