xref: /linux/arch/arm/Kconfig.debug (revision 53eebb0df85e4005006920ae12150e8d6d31b132)
11da177e4SLinus Torvaldsmenu "Kernel hacking"
21da177e4SLinus Torvalds
31da177e4SLinus Torvaldssource "lib/Kconfig.debug"
41da177e4SLinus Torvalds
5087aaffcSNicolas Pitreconfig STRICT_DEVMEM
6087aaffcSNicolas Pitre	bool "Filter access to /dev/mem"
7087aaffcSNicolas Pitre	depends on MMU
8087aaffcSNicolas Pitre	---help---
9087aaffcSNicolas Pitre	  If this option is disabled, you allow userspace (root) access to all
10087aaffcSNicolas Pitre	  of memory, including kernel and userspace memory. Accidental
11087aaffcSNicolas Pitre	  access to this is obviously disastrous, but specific access can
12087aaffcSNicolas Pitre	  be used by people debugging the kernel.
13087aaffcSNicolas Pitre
14087aaffcSNicolas Pitre	  If this option is switched on, the /dev/mem file only allows
15087aaffcSNicolas Pitre	  userspace access to memory mapped peripherals.
16087aaffcSNicolas Pitre
17087aaffcSNicolas Pitre          If in doubt, say Y.
18087aaffcSNicolas Pitre
19adf8b37bSCatalin Marinas# RMK wants arm kernels compiled with frame pointers or stack unwinding.
201da177e4SLinus Torvalds# If you know what you are doing and are willing to live without stack
211da177e4SLinus Torvalds# traces, you can get a slightly smaller kernel by setting this option to
221da177e4SLinus Torvalds# n, but then RMK will have to kill you ;).
231da177e4SLinus Torvaldsconfig FRAME_POINTER
241da177e4SLinus Torvalds	bool
2516c79651SCatalin Marinas	depends on !THUMB2_KERNEL
260e341af8SRabin Vincent	default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER
271da177e4SLinus Torvalds	help
281da177e4SLinus Torvalds	  If you say N here, the resulting kernel will be slightly smaller and
29adf8b37bSCatalin Marinas	  faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
30adf8b37bSCatalin Marinas	  when a problem occurs with the kernel, the information that is
31adf8b37bSCatalin Marinas	  reported is severely limited.
32adf8b37bSCatalin Marinas
33adf8b37bSCatalin Marinasconfig ARM_UNWIND
344a50bfe3SRussell King	bool "Enable stack unwinding support (EXPERIMENTAL)"
35adf8b37bSCatalin Marinas	depends on AEABI && EXPERIMENTAL
36adf8b37bSCatalin Marinas	default y
37adf8b37bSCatalin Marinas	help
38adf8b37bSCatalin Marinas	  This option enables stack unwinding support in the kernel
39adf8b37bSCatalin Marinas	  using the information automatically generated by the
40adf8b37bSCatalin Marinas	  compiler. The resulting kernel image is slightly bigger but
41adf8b37bSCatalin Marinas	  the performance is not affected. Currently, this feature
42adf8b37bSCatalin Marinas	  only works with EABI compilers. If unsure say Y.
431da177e4SLinus Torvalds
4409bfafacSRabin Vincentconfig OLD_MCOUNT
4509bfafacSRabin Vincent	bool
4609bfafacSRabin Vincent	depends on FUNCTION_TRACER && FRAME_POINTER
4709bfafacSRabin Vincent	default y
4809bfafacSRabin Vincent
491da177e4SLinus Torvaldsconfig DEBUG_USER
501da177e4SLinus Torvalds	bool "Verbose user fault messages"
511da177e4SLinus Torvalds	help
521da177e4SLinus Torvalds	  When a user program crashes due to an exception, the kernel can
531da177e4SLinus Torvalds	  print a brief message explaining what the problem was. This is
541da177e4SLinus Torvalds	  sometimes helpful for debugging but serves no purpose on a
551da177e4SLinus Torvalds	  production system. Most people should say N here.
561da177e4SLinus Torvalds
571da177e4SLinus Torvalds	  In addition, you need to pass user_debug=N on the kernel command
581da177e4SLinus Torvalds	  line to enable this feature.  N consists of the sum of:
591da177e4SLinus Torvalds
601da177e4SLinus Torvalds	      1 - undefined instruction events
611da177e4SLinus Torvalds	      2 - system calls
621da177e4SLinus Torvalds	      4 - invalid data aborts
631da177e4SLinus Torvalds	      8 - SIGSEGV faults
641da177e4SLinus Torvalds	     16 - SIGBUS faults
651da177e4SLinus Torvalds
661da177e4SLinus Torvalds# These options are only for real kernel hackers who want to get their hands dirty.
671da177e4SLinus Torvaldsconfig DEBUG_LL
681da177e4SLinus Torvalds	bool "Kernel low-level debugging functions"
691da177e4SLinus Torvalds	depends on DEBUG_KERNEL
701da177e4SLinus Torvalds	help
7135efb606SRussell King	  Say Y here to include definitions of printascii, printch, printhex
721da177e4SLinus Torvalds	  in the kernel.  This is helpful if you are debugging code that
731da177e4SLinus Torvalds	  executes before the console is initialized.
741da177e4SLinus Torvalds
7593fd03a8SCatalin Marinasconfig EARLY_PRINTK
7693fd03a8SCatalin Marinas	bool "Early printk"
7793fd03a8SCatalin Marinas	depends on DEBUG_LL
7893fd03a8SCatalin Marinas	help
7993fd03a8SCatalin Marinas	  Say Y here if you want to have an early console using the
8093fd03a8SCatalin Marinas	  kernel low-level debugging functions. Add earlyprintk to your
8193fd03a8SCatalin Marinas	  kernel parameters to enable this console.
8293fd03a8SCatalin Marinas
831da177e4SLinus Torvaldsconfig DEBUG_ICEDCC
841da177e4SLinus Torvalds	bool "Kernel low-level debugging via EmbeddedICE DCC channel"
851da177e4SLinus Torvalds	depends on DEBUG_LL
861da177e4SLinus Torvalds	help
871da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
881da177e4SLinus Torvalds	  output to the EmbeddedICE macrocell's DCC channel using
891da177e4SLinus Torvalds	  co-processor 14. This is known to work on the ARM9 style ICE
90c633c3cfSJean-Christop PLAGNIOL-VILLARD	  channel and on the XScale with the PEEDI.
911da177e4SLinus Torvalds
921da177e4SLinus Torvalds	  It does include a timeout to ensure that the system does not
931da177e4SLinus Torvalds	  totally freeze when there is nothing connected to read.
941da177e4SLinus Torvalds
95c5d6c770SAlexander Shishkinconfig OC_ETM
96c5d6c770SAlexander Shishkin	bool "On-chip ETM and ETB"
97*53eebb0dSArnd Bergmann	depends on ARM_AMBA
98c5d6c770SAlexander Shishkin	help
99c5d6c770SAlexander Shishkin	  Enables the on-chip embedded trace macrocell and embedded trace
100c5d6c770SAlexander Shishkin	  buffer driver that will allow you to collect traces of the
101c5d6c770SAlexander Shishkin	  kernel code.
102c5d6c770SAlexander Shishkin
1031da177e4SLinus Torvaldsconfig DEBUG_DC21285_PORT
1041da177e4SLinus Torvalds	bool "Kernel low-level debugging messages via footbridge serial port"
1051da177e4SLinus Torvalds	depends on DEBUG_LL && FOOTBRIDGE
1061da177e4SLinus Torvalds	help
1071da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
1081da177e4SLinus Torvalds	  output to the serial port in the DC21285 (Footbridge). Saying N
1091da177e4SLinus Torvalds	  will cause the debug messages to appear on the first 16550
1101da177e4SLinus Torvalds	  serial port.
1111da177e4SLinus Torvalds
1121da177e4SLinus Torvaldsconfig DEBUG_CLPS711X_UART2
1131da177e4SLinus Torvalds	bool "Kernel low-level debugging messages via UART2"
1141da177e4SLinus Torvalds	depends on DEBUG_LL && ARCH_CLPS711X
1151da177e4SLinus Torvalds	help
1161da177e4SLinus Torvalds	  Say Y here if you want the debug print routines to direct their
1171da177e4SLinus Torvalds	  output to the second serial port on these devices.  Saying N will
1181da177e4SLinus Torvalds	  cause the debug messages to appear on the first serial port.
1191da177e4SLinus Torvalds
1203ec20520SBen Dooksconfig DEBUG_S3C_UART
12189f1fa08SBen Dooks	depends on PLAT_SAMSUNG
1223ec20520SBen Dooks	int "S3C UART to use for low-level debug"
1231da177e4SLinus Torvalds	default "0"
1241da177e4SLinus Torvalds	help
1253ec20520SBen Dooks	  Choice for UART for kernel low-level using S3C UARTS,
1261da177e4SLinus Torvalds	  should be between zero and two. The port must have been
127c41045a4SEgry Gabor	  initialised by the boot-loader before use.
1281da177e4SLinus Torvalds
1291da177e4SLinus Torvalds	  The uncompressor code port configuration is now handled
130c7657846SBen Dooks	  by CONFIG_S3C_LOWLEVEL_UART_PORT.
1311da177e4SLinus Torvalds
1321da177e4SLinus Torvaldsendmenu
133