summaryrefslogtreecommitdiff
path: root/src/drivers/usb
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2018-12-28 15:48:58 +0100
committerFelix Held <felix-coreboot@felixheld.de>2019-01-06 14:05:20 +0000
commitadc4753a8d8c5dc7462547ab148c2d63eabbe4fa (patch)
treec93ad6be8d24feaa5a04c03a1d434897189be357 /src/drivers/usb
parent085a2268083cfe1d22f696c9070726dcf2dc160f (diff)
downloadcoreboot-adc4753a8d8c5dc7462547ab148c2d63eabbe4fa.tar.xz
usbdebug: Make the EHCI debug console work in the bootblock
Currently this needlessly initializes the hardware in the both the romstage and the bootblock, but it works. Build option is renamed to USBDEBUG_IN_PRE_RAM to reflect the use better, related support files can be built to pre-ram stages regardless of usbdebug being enabled or not. Tested on Google/peppy (adapted to C_ENVIRONMENT_BOOTBLOCK). Change-Id: Ib77f2fc7f3d8fa524405601bae15cce9f76ffc6f Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/30480 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/drivers/usb')
-rw-r--r--src/drivers/usb/Kconfig2
-rw-r--r--src/drivers/usb/Makefile.inc5
-rw-r--r--src/drivers/usb/ehci_debug.c7
3 files changed, 8 insertions, 6 deletions
diff --git a/src/drivers/usb/Kconfig b/src/drivers/usb/Kconfig
index d48bf32936..6854c4a6b6 100644
--- a/src/drivers/usb/Kconfig
+++ b/src/drivers/usb/Kconfig
@@ -32,7 +32,7 @@ config USBDEBUG
if USBDEBUG
-config USBDEBUG_IN_ROMSTAGE
+config USBDEBUG_IN_PRE_RAM
bool "Enable early (pre-RAM) usbdebug"
default y
help
diff --git a/src/drivers/usb/Makefile.inc b/src/drivers/usb/Makefile.inc
index 6c46f045a5..c8d319bbdc 100644
--- a/src/drivers/usb/Makefile.inc
+++ b/src/drivers/usb/Makefile.inc
@@ -1,4 +1,5 @@
-romstage-$(CONFIG_USBDEBUG_IN_ROMSTAGE) += ehci_debug.c pci_ehci.c console.c gadget.c
-postcar-$(CONFIG_USBDEBUG_IN_ROMSTAGE) += ehci_debug.c console.c
+bootblock-$(CONFIG_USBDEBUG) += ehci_debug.c pci_ehci.c console.c gadget.c
+romstage-$(CONFIG_USBDEBUG) += ehci_debug.c pci_ehci.c console.c gadget.c
+postcar-$(CONFIG_USBDEBUG) += ehci_debug.c console.c
ramstage-$(CONFIG_USBDEBUG) += ehci_debug.c pci_ehci.c console.c gadget.c
diff --git a/src/drivers/usb/ehci_debug.c b/src/drivers/usb/ehci_debug.c
index fdd2c72785..2020888189 100644
--- a/src/drivers/usb/ehci_debug.c
+++ b/src/drivers/usb/ehci_debug.c
@@ -683,7 +683,7 @@ static void migrate_ehci_debug(int is_recovery)
return;
}
- if (IS_ENABLED(CONFIG_USBDEBUG_IN_ROMSTAGE)) {
+ if (IS_ENABLED(CONFIG_USBDEBUG_IN_PRE_RAM)) {
/* Use state in CBMEM. */
dbg_info_cbmem = cbmem_find(CBMEM_ID_EHCI_DEBUG);
if (dbg_info_cbmem)
@@ -722,12 +722,13 @@ void usbdebug_init(void)
* CBMEM_INIT_HOOKs for postcar and ramstage as we recover state
* from CBMEM.
*/
- if (IS_ENABLED(CONFIG_USBDEBUG_IN_ROMSTAGE) && ENV_ROMSTAGE)
+ if (IS_ENABLED(CONFIG_USBDEBUG_IN_PRE_RAM)
+ && (ENV_ROMSTAGE || ENV_BOOTBLOCK))
usbdebug_hw_init(false);
/* USB console init is done early in ramstage if it was
* not done in romstage, this does not require CBMEM.
*/
- if (!IS_ENABLED(CONFIG_USBDEBUG_IN_ROMSTAGE) && ENV_RAMSTAGE)
+ if (!IS_ENABLED(CONFIG_USBDEBUG_IN_PRE_RAM) && ENV_RAMSTAGE)
usbdebug_hw_init(false);
}