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:
@ -37,7 +37,7 @@ void console_tx_byte(unsigned char byte)
|
|||||||
#if CONFIG_CONSOLE_SERIAL8250
|
#if CONFIG_CONSOLE_SERIAL8250
|
||||||
uart_tx_byte(byte);
|
uart_tx_byte(byte);
|
||||||
#endif
|
#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);
|
usb_tx_byte(0, byte);
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_CONSOLE_NE2K
|
#if CONFIG_CONSOLE_NE2K
|
||||||
@ -62,7 +62,7 @@ void console_tx_flush(void)
|
|||||||
#if CONFIG_CONSOLE_NE2K
|
#if CONFIG_CONSOLE_NE2K
|
||||||
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
|
ne2k_transmit(CONFIG_CONSOLE_NE2K_IO_PORT);
|
||||||
#endif
|
#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);
|
usb_tx_flush(0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -141,100 +141,14 @@ config SPKMODEM
|
|||||||
help
|
help
|
||||||
Send coreboot debug output through speaker
|
Send coreboot debug output through speaker
|
||||||
|
|
||||||
# Use "select HAVE_USBDEBUG" on southbridges which have Debug Port code.
|
config CONSOLE_USB
|
||||||
config HAVE_USBDEBUG
|
bool "USB dongle console output"
|
||||||
bool
|
depends on USBDEBUG
|
||||||
default y if HAVE_USBDEBUG_OPTIONS
|
|
||||||
default n
|
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
|
help
|
||||||
This option allows you to use a so-called USB EHCI Debug device
|
Send coreboot debug output to USB.
|
||||||
(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!
|
Configuration for USB hardware is under menu Generic Drivers.
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# TODO: Deps?
|
# TODO: Deps?
|
||||||
# TODO: Improve description.
|
# TODO: Improve description.
|
||||||
|
@ -20,7 +20,7 @@ bootblock-y += die.c
|
|||||||
ramstage-$(CONFIG_CONSOLE_SERIAL8250) += uart8250_console.c
|
ramstage-$(CONFIG_CONSOLE_SERIAL8250) += uart8250_console.c
|
||||||
ramstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem_console.c
|
ramstage-$(CONFIG_CONSOLE_SERIAL8250MEM) += uart8250mem_console.c
|
||||||
ramstage-$(CONFIG_SPKMODEM) += spkmodem_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_NE2K) += ne2k_console.c
|
||||||
ramstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
|
ramstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
|
||||||
ramstage-$(CONFIG_CONSOLE_QEMU_DEBUGCON) += qemu_debugcon_console.c
|
ramstage-$(CONFIG_CONSOLE_QEMU_DEBUGCON) += qemu_debugcon_console.c
|
||||||
|
@ -116,7 +116,7 @@ void console_init(void)
|
|||||||
#if CONFIG_SPKMODEM
|
#if CONFIG_SPKMODEM
|
||||||
spkmodem_init();
|
spkmodem_init();
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_USBDEBUG_IN_ROMSTAGE && !defined(__BOOT_BLOCK__)
|
#if CONFIG_CONSOLE_USB && CONFIG_USBDEBUG_IN_ROMSTAGE && !defined(__BOOT_BLOCK__)
|
||||||
usbdebug_init();
|
usbdebug_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -38,4 +38,5 @@ source src/drivers/spi/Kconfig
|
|||||||
source src/drivers/ti/Kconfig
|
source src/drivers/ti/Kconfig
|
||||||
source src/drivers/trident/Kconfig
|
source src/drivers/trident/Kconfig
|
||||||
source src/drivers/uart/Kconfig
|
source src/drivers/uart/Kconfig
|
||||||
|
source src/drivers/usb/Kconfig
|
||||||
source src/drivers/xpowers/Kconfig
|
source src/drivers/xpowers/Kconfig
|
||||||
|
94
src/drivers/usb/Kconfig
Normal file
94
src/drivers/usb/Kconfig
Normal 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
|
@ -136,7 +136,7 @@ static struct lb_serial *lb_serial(struct lb_header *header)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_CONSOLE_SERIAL8250 || CONFIG_CONSOLE_SERIAL8250MEM || \
|
#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)
|
static void add_console(struct lb_header *header, u16 consoletype)
|
||||||
{
|
{
|
||||||
struct lb_console *console;
|
struct lb_console *console;
|
||||||
@ -156,7 +156,7 @@ static void lb_console(struct lb_header *header)
|
|||||||
#if CONFIG_CONSOLE_SERIAL8250MEM || CONFIG_CONSOLE_SERIAL_UART
|
#if CONFIG_CONSOLE_SERIAL8250MEM || CONFIG_CONSOLE_SERIAL_UART
|
||||||
add_console(header, LB_TAG_CONSOLE_SERIAL8250MEM);
|
add_console(header, LB_TAG_CONSOLE_SERIAL8250MEM);
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_USBDEBUG
|
#if CONFIG_CONSOLE_USB
|
||||||
add_console(header, LB_TAG_CONSOLE_EHCI);
|
add_console(header, LB_TAG_CONSOLE_EHCI);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user