xref: /linux/arch/arm/Kconfig.debug (revision 89f1fa080b5dca259c9779bcf81b95a409fdbf5b)
11da177e4SLinus Torvaldsmenu "Kernel hacking"
21da177e4SLinus Torvalds
31da177e4SLinus Torvaldssource "lib/Kconfig.debug"
41da177e4SLinus Torvalds
5adf8b37bSCatalin Marinas# RMK wants arm kernels compiled with frame pointers or stack unwinding.
61da177e4SLinus Torvalds# If you know what you are doing and are willing to live without stack
71da177e4SLinus Torvalds# traces, you can get a slightly smaller kernel by setting this option to
81da177e4SLinus Torvalds# n, but then RMK will have to kill you ;).
91da177e4SLinus Torvaldsconfig FRAME_POINTER
101da177e4SLinus Torvalds	bool
1116c79651SCatalin Marinas	depends on !THUMB2_KERNEL
12adf8b37bSCatalin Marinas	default y if !ARM_UNWIND
131da177e4SLinus Torvalds	help
141da177e4SLinus Torvalds	  If you say N here, the resulting kernel will be slightly smaller and
15adf8b37bSCatalin Marinas	  faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
16adf8b37bSCatalin Marinas	  when a problem occurs with the kernel, the information that is
17adf8b37bSCatalin Marinas	  reported is severely limited.
18adf8b37bSCatalin Marinas
19adf8b37bSCatalin Marinasconfig ARM_UNWIND
20adf8b37bSCatalin Marinas	bool "Enable stack unwinding support"
21adf8b37bSCatalin Marinas	depends on AEABI && EXPERIMENTAL
22adf8b37bSCatalin Marinas	default y
23adf8b37bSCatalin Marinas	help
24adf8b37bSCatalin Marinas	  This option enables stack unwinding support in the kernel
25adf8b37bSCatalin Marinas	  using the information automatically generated by the
26adf8b37bSCatalin Marinas	  compiler. The resulting kernel image is slightly bigger but
27adf8b37bSCatalin Marinas	  the performance is not affected. Currently, this feature
28adf8b37bSCatalin Marinas	  only works with EABI compilers. If unsure say Y.
291da177e4SLinus Torvalds
301da177e4SLinus Torvaldsconfig DEBUG_USER
311da177e4SLinus Torvalds	bool "Verbose user fault messages"
321da177e4SLinus Torvalds	help
331da177e4SLinus Torvalds	  When a user program crashes due to an exception, the kernel can
341da177e4SLinus Torvalds	  print a brief message explaining what the problem was. This is
351da177e4SLinus Torvalds	  sometimes helpful for debugging but serves no purpose on a
361da177e4SLinus Torvalds	  production system. Most people should say N here.
371da177e4SLinus Torvalds
381da177e4SLinus Torvalds	  In addition, you need to pass user_debug=N on the kernel command
391da177e4SLinus Torvalds	  line to enable this feature.  N consists of the sum of:
401da177e4SLinus Torvalds
411da177e4SLinus Torvalds	      1 - undefined instruction events
421da177e4SLinus Torvalds	      2 - system calls
431da177e4SLinus Torvalds	      4 - invalid data aborts
441da177e4SLinus Torvalds	      8 - SIGSEGV faults
451da177e4SLinus Torvalds	     16 - SIGBUS faults
461da177e4SLinus Torvalds
471da177e4SLinus Torvaldsconfig DEBUG_ERRORS
481da177e4SLinus Torvalds	bool "Verbose kernel error messages"
491da177e4SLinus Torvalds	depends on DEBUG_KERNEL
501da177e4SLinus Torvalds	help
511da177e4SLinus Torvalds	  This option controls verbose debugging information which can be
521da177e4SLinus Torvalds	  printed when the kernel detects an internal error. This debugging
531da177e4SLinus Torvalds	  information is useful to kernel hackers when tracking down problems,
541da177e4SLinus Torvalds	  but mostly meaningless to other people. It's safe to say Y unless
551da177e4SLinus Torvalds	  you are concerned with the code size or don't want to see these
561da177e4SLinus Torvalds	  messages.
571da177e4SLinus Torvalds
58ddf4e42cSSascha Hauerconfig DEBUG_STACK_USAGE
59ddf4e42cSSascha Hauer	bool "Enable stack utilization instrumentation"
60ddf4e42cSSascha Hauer	depends on DEBUG_KERNEL
61ddf4e42cSSascha Hauer	help
62ddf4e42cSSascha Hauer	  Enables the display of the minimum amount of free stack which each
63ddf4e42cSSascha Hauer	  task has ever had available in the sysrq-T output.
641da177e4SLinus Torvalds
651da177e4SLinus Torvalds# These options are only for real kernel hackers who want to get their hands dirty.
661da177e4SLinus Torvaldsconfig DEBUG_LL
671da177e4SLinus Torvalds	bool "Kernel low-level debugging functions"
681da177e4SLinus Torvalds	depends on DEBUG_KERNEL
691da177e4SLinus Torvalds	help
7035efb606SRussell King	  Say Y here to include definitions of printascii, printch, printhex
711da177e4SLinus Torvalds	  in the kernel.  This is helpful if you are debugging code that
721da177e4SLinus Torvalds	  executes before the console is initialized.
731da177e4SLinus Torvalds
7493fd03a8SCatalin Marinasconfig EARLY_PRINTK
7593fd03a8SCatalin Marinas	bool "Early printk"
7693fd03a8SCatalin Marinas	depends on DEBUG_LL
7793fd03a8SCatalin Marinas	help
7893fd03a8SCatalin Marinas	  Say Y here if you want to have an early console using the
7993fd03a8SCatalin Marinas	  kernel low-level debugging functions. Add earlyprintk to your
8093fd03a8SCatalin Marinas	  kernel parameters to enable this console.
8193fd03a8SCatalin Marinas
821da177e4SLinus Torvaldsconfig DEBUG_ICEDCC
831da177e4SLinus Torvalds	bool "Kernel low-level debugging via EmbeddedICE DCC channel"
841da177e4SLinus Torvalds	depends on DEBUG_LL
851da177e4SLinus Torvalds	help
861da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
871da177e4SLinus Torvalds	  output to the EmbeddedICE macrocell's DCC channel using
881da177e4SLinus Torvalds	  co-processor 14. This is known to work on the ARM9 style ICE
89c633c3cfSJean-Christop PLAGNIOL-VILLARD	  channel and on the XScale with the PEEDI.
901da177e4SLinus Torvalds
911da177e4SLinus Torvalds	  It does include a timeout to ensure that the system does not
921da177e4SLinus Torvalds	  totally freeze when there is nothing connected to read.
931da177e4SLinus Torvalds
94c5d6c770SAlexander Shishkinconfig OC_ETM
95c5d6c770SAlexander Shishkin	bool "On-chip ETM and ETB"
96c5d6c770SAlexander Shishkin	select ARM_AMBA
97c5d6c770SAlexander Shishkin	help
98c5d6c770SAlexander Shishkin	  Enables the on-chip embedded trace macrocell and embedded trace
99c5d6c770SAlexander Shishkin	  buffer driver that will allow you to collect traces of the
100c5d6c770SAlexander Shishkin	  kernel code.
101c5d6c770SAlexander Shishkin
1021da177e4SLinus Torvaldsconfig DEBUG_DC21285_PORT
1031da177e4SLinus Torvalds	bool "Kernel low-level debugging messages via footbridge serial port"
1041da177e4SLinus Torvalds	depends on DEBUG_LL && FOOTBRIDGE
1051da177e4SLinus Torvalds	help
1061da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
1071da177e4SLinus Torvalds	  output to the serial port in the DC21285 (Footbridge). Saying N
1081da177e4SLinus Torvalds	  will cause the debug messages to appear on the first 16550
1091da177e4SLinus Torvalds	  serial port.
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvaldsconfig DEBUG_CLPS711X_UART2
1121da177e4SLinus Torvalds	bool "Kernel low-level debugging messages via UART2"
1131da177e4SLinus Torvalds	depends on DEBUG_LL && ARCH_CLPS711X
1141da177e4SLinus Torvalds	help
1151da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
1161da177e4SLinus Torvalds	  output to the second serial port on these devices.  Saying N will
1171da177e4SLinus Torvalds	  cause the debug messages to appear on the first serial port.
1181da177e4SLinus Torvalds
1193ec20520SBen Dooksconfig DEBUG_S3C_UART
120*89f1fa08SBen Dooks	depends on PLAT_SAMSUNG
1213ec20520SBen Dooks	int "S3C UART to use for low-level debug"
1221da177e4SLinus Torvalds	default "0"
1231da177e4SLinus Torvalds	help
1243ec20520SBen Dooks	  Choice for UART for kernel low-level using S3C UARTS,
1251da177e4SLinus Torvalds	  should be between zero and two. The port must have been
126c41045a4SEgry Gabor	  initialised by the boot-loader before use.
1271da177e4SLinus Torvalds
1281da177e4SLinus Torvalds	  The uncompressor code port configuration is now handled
129c7657846SBen Dooks	  by CONFIG_S3C_LOWLEVEL_UART_PORT.
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvaldsendmenu
132