mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
arm: debug: add Kconfig entries for lowlevel debug
We have not had a good method to debug the early boot stage such as lowlevel_init function. I guess developers generally use dedicated debuggers for that, but it is difficult in some cases. (For example, my debugger cannot connect to the ARM processor when it is in the secure state. It sometimes happens when I need to debug the early boot stage on ARM SoCs with secure extension.) The low level debug feature in Linux would be also helpful for U-boot when we are stucking in nasty problems where the console is not available yet. You have to enable CONFIG_DEBUG_LL to use this feature. For now, only 8250-compatible UART devices are supported. You can add a header file under arch/arm/include/debug/ directory to support your UART device if necessary. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
This commit is contained in:
parent
9345651200
commit
51b17d4946
3 changed files with 68 additions and 0 deletions
|
@ -707,4 +707,6 @@ source "board/woodburn/Kconfig"
|
|||
source "board/xaeniax/Kconfig"
|
||||
source "board/zipitz2/Kconfig"
|
||||
|
||||
source "arch/arm/Kconfig.debug"
|
||||
|
||||
endmenu
|
||||
|
|
64
arch/arm/Kconfig.debug
Normal file
64
arch/arm/Kconfig.debug
Normal file
|
@ -0,0 +1,64 @@
|
|||
menu "ARM debug"
|
||||
|
||||
config DEBUG_LL
|
||||
bool "Low-level debugging functions"
|
||||
depends on !ARM64
|
||||
help
|
||||
Say Y here to include definitions of printascii, printch, printhex
|
||||
in U-Boot. This is helpful if you are debugging code that
|
||||
executes before the console is initialized.
|
||||
|
||||
choice
|
||||
prompt "Low-level debugging port"
|
||||
depends on DEBUG_LL
|
||||
|
||||
config DEBUG_LL_UART_8250
|
||||
bool "Low-level debugging via 8250 UART"
|
||||
help
|
||||
Say Y here if you wish the debug print routes to direct
|
||||
their output to an 8250 UART. You can use this option
|
||||
to provide the parameters for the 8250 UART rather than
|
||||
selecting one of the platform specific options above if
|
||||
you know the parameters for the port.
|
||||
|
||||
This option is preferred over the platform specific
|
||||
options; the platform specific options are deprecated
|
||||
and will be soon removed.
|
||||
|
||||
endchoice
|
||||
|
||||
config DEBUG_LL_INCLUDE
|
||||
string
|
||||
depends on DEBUG_LL
|
||||
default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
default "mach/debug-macro.S"
|
||||
|
||||
# Compatibility options for 8250
|
||||
config DEBUG_UART_8250
|
||||
bool
|
||||
|
||||
config DEBUG_UART_PHYS
|
||||
hex "Physical base address of debug UART"
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
|
||||
# This is not used in U-Boot
|
||||
config DEBUG_UART_VIRT
|
||||
hex
|
||||
default DEBUG_UART_PHYS
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
|
||||
config DEBUG_UART_8250_SHIFT
|
||||
int "Register offset shift for the 8250 debug UART"
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
default 2
|
||||
|
||||
config DEBUG_UART_8250_WORD
|
||||
bool "Use 32-bit accesses for 8250 UART"
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
depends on DEBUG_UART_8250_SHIFT >= 2
|
||||
|
||||
config DEBUG_UART_8250_FLOW_CONTROL
|
||||
bool "Enable flow control for 8250 UART"
|
||||
depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
|
||||
|
||||
endmenu
|
|
@ -48,6 +48,8 @@ ifndef CONFIG_ARM64
|
|||
obj-y += cache-cp15.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_DEBUG_LL) += debug.o
|
||||
|
||||
# For EABI conformant tool chains, provide eabi_compat()
|
||||
ifneq (,$(findstring -mabi=aapcs-linux,$(PLATFORM_CPPFLAGS)))
|
||||
extra-y += eabi_compat.o
|
||||
|
|
Loading…
Reference in a new issue