From adc4753a8d8c5dc7462547ab148c2d63eabbe4fa Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Fri, 28 Dec 2018 15:48:58 +0100 Subject: usbdebug: Make the EHCI debug console work in the bootblock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/30480 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- src/drivers/usb/Kconfig | 2 +- src/drivers/usb/Makefile.inc | 5 +++-- src/drivers/usb/ehci_debug.c | 7 ++++--- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'src/drivers/usb') 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); } -- cgit v1.2.3