menu "Kernel hacking"

config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config DEBUG_VERBOSE
        bool "Verbose fault messages"
        default y
        select PRINTK
        help
          When a program crashes due to an exception, or the kernel detects
          an internal error, the kernel can print a not so brief message
          explaining what the problem was. This debugging information is
          useful to developers and kernel hackers when tracking down problems,
          but mostly meaningless to other people. This is always helpful for
          debugging but serves no purpose on a production system.
          Most people should say N here.

config PROTECT_KERNEL
	default y
	bool 'Enable Kernel range register Protection'
	help
	  Adds code to enable/disable range registers to protect static
	  kernel code/data from userspace.  Currently the ranges covered
	  do no protect kernel loadable modules or dynamically allocated
	  kernel data.

config NO_KERNEL_MSG
	bool "Suppress Kernel BUG Messages"
	help
	  Do not output any debug BUG messages within the kernel.

config EARLY_PRINTK
	bool "Use the driver that you selected as console also for early printk (to debug kernel bootup)."
	default n
	help
	  If you want to use the serdes driver (console=ttyUS0) for
	  early printk, you must also supply an additional kernel boot
	  parameter like this:

		serdes=ioportaddr,irq,clockrate,baud

	  For an IP7160RGW eval board, you could use this:

		serdes=0x2004000,61,250000000,57600

	  which will let you see early printk output at 57600 baud.

config STOP_ON_TRAP
	bool "Enable stopping at the LDSR for all traps"
	default n
	help
	Cause the LDSR to stop all threads whenever a trap is about to be serviced

config STOP_ON_BUG
	bool "Enable stopping on failed BUG_ON()"
	default n
	help
	Cause all BUG_ON failures to stop all threads

config DEBUG_IRQMEASURE
	bool "Enable IRQ handler measurements"
	default n
	help
	When enabled each IRQ's min/avg/max times will be printed.  If the handler
	re-enables interrupt, the times will show the full time including to service
	nested interrupts.  See /proc/irq_measurements.

config DEBUG_PCIMEASURE
	bool "Enable PCI transaction measurements"
	default n
	help
	When enabled the system will measure the min/avg/max timer for each PCI transactions.
	See /proc/pci_measurements.

config ACCESS_OK_CHECKS_ENABLED
	bool "Enable user space access checks"
	default n
	help
	Enabling this check causes the kernel to verify that addresses passed
	to the kernel by the user space code are within the processes
	address space.  On a no-mmu system, this is done by examining the
	processes memory data structures (adversly affecting performance) but
	ensuring that a process does not ask the kernel to violate another
	processes address space.  Sadly, the kernel uses access_ok() for
	address that are in the kernel which results in a large volume of
	false positives.

choice
	prompt "Unaligned Access Support"
	default UNALIGNED_ACCESS_ENABLED
	help
		Kernel / Userspace unaligned access handling.

config  UNALIGNED_ACCESS_ENABLED
	bool "Kernel and Userspace"
	help

config  UNALIGNED_ACCESS_USERSPACE_ONLY
	bool "Userspace Only"
	help

config  UNALIGNED_ACCESS_DISABLED
	bool "Disabled"
	help

endchoice

config DEBUG_STACKOVERFLOW
	bool "Check for stack overflows"
	default n
	depends on DEBUG_KERNEL
	help
	  This option will cause messages to be printed if free kernel stack space
	  drops below a certain limit (THREAD_SIZE /8).

config DEBUG_STACK_USAGE
	bool "Stack utilization instrumentation"
	default n
	depends on DEBUG_KERNEL
	help
	  Enables the display of the minimum amount of free kernel stack which each
	  task has ever had available in the sysrq-T and sysrq-P debug output.

	  This option will slow down process creation somewhat.

source "lib/Kconfig.debug"

endmenu
