[coreboot-gerrit] New patch to review for coreboot: 9872888 usbdebug: Fix migration to ramstage
Kyösti Mälkki (kyosti.malkki@gmail.com)
gerrit at coreboot.org
Mon Oct 27 22:59:18 CET 2014
Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7206
-gerrit
commit 9872888fd6cf0e8a150ffe81dabfca80fa755b44
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date: Mon Oct 27 08:01:55 2014 +0200
usbdebug: Fix migration to ramstage
On entry to ramstage CBMEM is looked for a copy of an already initialized
EHCI debug dongle state. If a copy is found, it contained the state before
CAR migration and the USB protocol data toggle can be out of sync. It's an
even/odd kind of a parity check, so roughly every other build would
show the problem as invalid first line: 'ug found in CBMEM.'
After CAR migration, re-direct the state changes to correct CBMEM table.
Change-Id: I7c54e76ce29af5c8ee5e9ce6fd3dc6bdf700dcf1
Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
src/drivers/usb/ehci_debug.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c
index c60fbaa..02104fa 100644
--- a/src/drivers/usb/ehci_debug.c
+++ b/src/drivers/usb/ehci_debug.c
@@ -95,11 +95,15 @@ static int dbgp_enabled(void);
#define DBGP_MICROFRAME_RETRIES 10
#define DBGP_MAX_PACKET 8
-static struct ehci_debug_info glob_dbg_info CAR_GLOBAL;
+static struct ehci_debug_info glob_dbg_info_ CAR_GLOBAL;
+static struct ehci_debug_info * glob_dbg_info CAR_GLOBAL;
static inline struct ehci_debug_info *dbgp_ehci_info(void)
{
- return car_get_var_ptr(&glob_dbg_info);
+ if (car_get_var(glob_dbg_info) == NULL)
+ car_set_var(glob_dbg_info, &glob_dbg_info_);
+
+ return car_get_var(glob_dbg_info);
}
static int dbgp_wait_until_complete(struct ehci_dbg_port *ehci_debug)
@@ -905,6 +909,7 @@ static void migrate_ehci_debug(void)
return;
memcpy(dbg_info_cbmem, dbg_info, sizeof(*dbg_info));
+ car_set_var(glob_dbg_info, dbg_info_cbmem);
}
CAR_MIGRATE(migrate_ehci_debug);
#endif
More information about the coreboot-gerrit
mailing list