usbdebug: Move Kconfig under drivers/usb

This menu may become a bit more complicated with addition of
new USB hardware so move it out of console/.

Change-Id: Ieb330675b9227a3e53d093f7c2b5a65e3842dc82
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/5307
Tested-by: build bot (Jenkins)
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
Kyösti Mälkki 2014-02-25 12:06:14 +02:00
parent 9c479c9a3e
commit ab94bbf072
7 changed files with 106 additions and 97 deletions

View File

@ -37,7 +37,7 @@ void console_tx_byte(unsigned char byte)
#if CONFIG_CONSOLE_SERIAL8250
uart_tx_byte(byte);
#endif
#if CONFIG_USBDEBUG && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
usb_tx_byte(0, byte);
#endif
#if CONFIG_CONSOLE_NE2K
@ -62,7 +62,7 @@ void console_tx_flush(void)
#if CONFIG_CONSOLE_NE2K
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
#endif
#if CONFIG_USBDEBUG && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
#if CONFIG_CONSOLE_USB && (CONFIG_USBDEBUG_IN_ROMSTAGE || !defined(__PRE_RAM__))
usb_tx_flush(0);
#endif
}

View File

@ -141,100 +141,14 @@ config SPKMODEM
help
Send coreboot debug output through speaker
# Use "select HAVE_USBDEBUG" on southbridges which have Debug Port code.
config HAVE_USBDEBUG
bool
default y if HAVE_USBDEBUG_OPTIONS
config CONSOLE_USB
bool "USB dongle console output"
depends on USBDEBUG
default n
# Use "select HAVE_USBDEBUG_OPTIONS" on southbridges with multiple
# EHCI controllers or multiple ports with Debug Port capability
config HAVE_USBDEBUG_OPTIONS
def_bool n
config USBDEBUG
bool "USB 2.0 EHCI debug dongle support"
default n
depends on HAVE_USBDEBUG
help
This option allows you to use a so-called USB EHCI Debug device
(such as the Ajays NET20DC, AMIDebug RX, or a system using the
Linux "EHCI Debug Device gadget" driver found in recent kernel)
to retrieve the coreboot debug messages (instead, or in addition
to, a serial port).
Send coreboot debug output to USB.
This feature is NOT supported on all chipsets in coreboot!
It also requires a USB2 controller which supports the EHCI
Debug Port capability.
See http://www.coreboot.org/EHCI_Debug_Port for an up-to-date list
of supported controllers.
If unsure, say N.
if USBDEBUG
config USBDEBUG_IN_ROMSTAGE
bool "Enable early (pre-RAM) usbdebug console output."
default y
depends on EARLY_CBMEM_INIT && EARLY_CONSOLE
help
Configuring USB controllers in system-agent binary may cause
problems to usbdebug. Disabling this option delays usbdebug to
be setup on entry to ramstage.
If unsure, say Y.
config USBDEBUG_HCD_INDEX
int
default 0
prompt "Index for EHCI controller to use with usbdebug" if HAVE_USBDEBUG_OPTIONS
help
Some boards have multiple EHCI controllers with possibly only
one having the Debug Port capability on an external USB port.
Mapping of this index to PCI device functions is southbridge
specific and mainboard level Kconfig should already provide
a working default value here.
config USBDEBUG_DEFAULT_PORT
int
default 0
prompt "Default USB port to use as Debug Port" if HAVE_USBDEBUG_OPTIONS
help
Selects which physical USB port usbdebug dongle is connected to.
Setting of 0 means to scan possible ports starting from 1.
Intel platforms have hardwired the debug port location and this
setting makes no difference there.
Hence, if you select the correct port here, you can speed up
your boot time. Which USB port number refers to which actual
port on your mainboard (potentially also USB pin headers on
your mainboard) is highly board-specific, and you'll likely
have to find out by trial-and-error.
choice
prompt "Type of dongle"
default USBDEBUG_DONGLE_STD
config USBDEBUG_DONGLE_STD
bool "Net20DC or compatible"
config USBDEBUG_DONGLE_BEAGLEBONE
bool "BeagleBone"
help
Use this to configure the USB hub on BeagleBone board.
endchoice
config USBDEBUG_OPTIONAL_HUB_PORT
int
default 2 if USBDEBUG_DONGLE_BEAGLEBONE
default 0
endif # USBDEBUG
Configuration for USB hardware is under menu Generic Drivers.
# TODO: Deps?
# TODO: Improve description.

View File

@ -20,7 +20,7 @@ bootblock-y += die.c
ramstage-$(CONFIG_CONSOLE_SERIAL8250) += uart8250_console.c
ramstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem_console.c
ramstage-$(CONFIG_SPKMODEM) += spkmodem_console.c
ramstage-$(CONFIG_USBDEBUG) += usbdebug_console.c
ramstage-$(CONFIG_CONSOLE_USB) += usbdebug_console.c
ramstage-$(CONFIG_CONSOLE_NE2K) += ne2k_console.c
ramstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
ramstage-$(CONFIG_CONSOLE_QEMU_DEBUGCON) += qemu_debugcon_console.c

View File

@ -116,7 +116,7 @@ void console_init(void)
#if CONFIG_SPKMODEM
spkmodem_init();
#endif
#if CONFIG_USBDEBUG_IN_ROMSTAGE && !defined(__BOOT_BLOCK__)
#if CONFIG_CONSOLE_USB && CONFIG_USBDEBUG_IN_ROMSTAGE && !defined(__BOOT_BLOCK__)
usbdebug_init();
#endif

View File

@ -38,4 +38,5 @@ source src/drivers/spi/Kconfig
source src/drivers/ti/Kconfig
source src/drivers/trident/Kconfig
source src/drivers/uart/Kconfig
source src/drivers/usb/Kconfig
source src/drivers/xpowers/Kconfig

94
src/drivers/usb/Kconfig Normal file
View File

@ -0,0 +1,94 @@
# Use "select HAVE_USBDEBUG" on southbridges which have Debug Port code.
config HAVE_USBDEBUG
bool
default y if HAVE_USBDEBUG_OPTIONS
default n
# Use "select HAVE_USBDEBUG_OPTIONS" on southbridges with multiple
# EHCI controllers or multiple ports with Debug Port capability
config HAVE_USBDEBUG_OPTIONS
def_bool n
config USBDEBUG
bool "USB 2.0 EHCI debug dongle support"
default n
depends on HAVE_USBDEBUG
help
This option allows you to use a so-called USB EHCI Debug device
(such as the Ajays NET20DC, AMIDebug RX, or a system using the
Linux "EHCI Debug Device gadget" driver found in recent kernel)
to retrieve the coreboot debug messages (instead, or in addition
to, a serial port).
This feature is NOT supported on all chipsets in coreboot!
It also requires a USB2 controller which supports the EHCI
Debug Port capability.
See http://www.coreboot.org/EHCI_Debug_Port for an up-to-date list
of supported controllers.
If unsure, say N.
if USBDEBUG
config USBDEBUG_IN_ROMSTAGE
bool "Enable early (pre-RAM) usbdebug"
default y
depends on EARLY_CBMEM_INIT && EARLY_CONSOLE
help
Configuring USB controllers in system-agent binary may cause
problems to usbdebug. Disabling this option delays usbdebug to
be setup on entry to ramstage.
If unsure, say Y.
config USBDEBUG_HCD_INDEX
int
default 0
prompt "Index for EHCI controller to use with usbdebug" if HAVE_USBDEBUG_OPTIONS
help
Some boards have multiple EHCI controllers with possibly only
one having the Debug Port capability on an external USB port.
Mapping of this index to PCI device functions is southbridge
specific and mainboard level Kconfig should already provide
a working default value here.
config USBDEBUG_DEFAULT_PORT
int
default 0
prompt "Default USB port to use as Debug Port" if HAVE_USBDEBUG_OPTIONS
help
Selects which physical USB port usbdebug dongle is connected to.
Setting of 0 means to scan possible ports starting from 1.
Intel platforms have hardwired the debug port location and this
setting makes no difference there.
Hence, if you select the correct port here, you can speed up
your boot time. Which USB port number refers to which actual
port on your mainboard (potentially also USB pin headers on
your mainboard) is highly board-specific, and you'll likely
have to find out by trial-and-error.
choice
prompt "Type of dongle"
default USBDEBUG_DONGLE_STD
config USBDEBUG_DONGLE_STD
bool "Net20DC or compatible"
config USBDEBUG_DONGLE_BEAGLEBONE
bool "BeagleBone"
help
Use this to configure the USB hub on BeagleBone board.
endchoice
config USBDEBUG_OPTIONAL_HUB_PORT
int
default 2 if USBDEBUG_DONGLE_BEAGLEBONE
default 0
endif # USBDEBUG

View File

@ -136,7 +136,7 @@ static struct lb_serial *lb_serial(struct lb_header *header)
}
#if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM || \
CONFIG_CONSOLE_SERIAL_UART || CONFIG_USBDEBUG
CONFIG_CONSOLE_SERIAL_UART || CONFIG_CONSOLE_USB
static void add_console(struct lb_header *header, u16 consoletype)
{
struct lb_console *console;
@ -156,7 +156,7 @@ static void lb_console(struct lb_header *header)
#if CONFIG_CONSOLE_SERIAL8250MEM || CONFIG_CONSOLE_SERIAL_UART
add_console(header, LB_TAG_CONSOLE_SERIAL8250MEM);
#endif
#if CONFIG_USBDEBUG
#if CONFIG_CONSOLE_USB
add_console(header, LB_TAG_CONSOLE_EHCI);
#endif
}