menu "Kernel hacking"

source "lib/Kconfig.debug"

config CROSSCOMPILE
	bool "Are you using a crosscompiler"
	help
	  Say Y here if you are compiling the kernel on a different
	  architecture than the one it is intended to run on.  This is just a
	  convenience option which will select the appropriate value for
	  the CROSS_COMPILE make variable which otherwise has to be passed on
	  the command line from mips-linux-, mipsel-linux-, mips64-linux- and
	  mips64el-linux- as appropriate for a particular kernel configuration.
	  You will have to pass the value for CROSS_COMPILE manually if the
	  name prefix for your tools is different.

config CMDLINE
	string "Default kernel command string"
	default ""
	help
          On some platforms, there is currently no way for the boot loader to
          pass arguments to the kernel. For these platforms, you can supply
          some command-line options at build time by entering them here.  In
          other cases you can specify kernel args so that you don't have
	  to set them up in board prom initialization routines.

config DEBUG_STACK_USAGE
	bool "Enable stack utilization instrumentation"
	depends on DEBUG_KERNEL
	help
	  Enables the display of the minimum amount of free 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.

config KGDB
	bool "Remote GDB kernel debugging"
	depends on DEBUG_KERNEL
	select DEBUG_INFO
	help
	  If you say Y here, it will be possible to remotely debug the MIPS
	  kernel using gdb. This enlarges your kernel image disk size by
	  several megabytes and requires a machine with more than 16 MB,
	  better 32 MB RAM to avoid excessive linking time. This is only
	  useful for kernel hackers. If unsure, say N.

config GDB_CONSOLE
	bool "Console output to GDB"
	depends on KGDB
	help
	  If you are using GDB for remote debugging over a serial port and
	  would like kernel messages to be formatted into GDB $O packets so
	  that GDB prints them as program output, say 'Y'.

config SB1XXX_CORELIS
	bool "Corelis Debugger"
	depends on SIBYTE_SB1xxx_SOC
	select DEBUG_INFO
	help
	  Select compile flags that produce code that can be processed by the
	  Corelis mksym utility and UDB Emulator.

config RUNTIME_DEBUG
	bool "Enable run-time debugging"
	depends on DEBUG_KERNEL
	help
	  If you say Y here, some debugging macros will do run-time checking.
	  If you say N here, those macros will mostly turn to no-ops.  See
	  include/asm-mips/debug.h for debuging macros.
	  If unsure, say N.

config MIPS_UNCACHED
	bool "Run uncached"
	depends on DEBUG_KERNEL && !SMP && !SGI_IP27
	help
	  If you say Y here there kernel will disable all CPU caches.  This will
	  reduce the system's performance dramatically but can help finding
	  otherwise hard to track bugs.  It can also useful if you're doing
	  hardware debugging with a logic analyzer and need to see all traffic
	  on the bus.

endmenu
