1menu "Kernel hacking" 2 3source "lib/Kconfig.debug" 4 5config STRICT_DEVMEM 6 bool "Filter access to /dev/mem" 7 depends on MMU 8 ---help--- 9 If this option is disabled, you allow userspace (root) access to all 10 of memory, including kernel and userspace memory. Accidental 11 access to this is obviously disastrous, but specific access can 12 be used by people debugging the kernel. 13 14 If this option is switched on, the /dev/mem file only allows 15 userspace access to memory mapped peripherals. 16 17 If in doubt, say Y. 18 19# RMK wants arm kernels compiled with frame pointers or stack unwinding. 20# If you know what you are doing and are willing to live without stack 21# traces, you can get a slightly smaller kernel by setting this option to 22# n, but then RMK will have to kill you ;). 23config FRAME_POINTER 24 bool 25 depends on !THUMB2_KERNEL 26 default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER 27 help 28 If you say N here, the resulting kernel will be slightly smaller and 29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled, 30 when a problem occurs with the kernel, the information that is 31 reported is severely limited. 32 33config ARM_UNWIND 34 bool "Enable stack unwinding support (EXPERIMENTAL)" 35 depends on AEABI 36 default y 37 help 38 This option enables stack unwinding support in the kernel 39 using the information automatically generated by the 40 compiler. The resulting kernel image is slightly bigger but 41 the performance is not affected. Currently, this feature 42 only works with EABI compilers. If unsure say Y. 43 44config OLD_MCOUNT 45 bool 46 depends on FUNCTION_TRACER && FRAME_POINTER 47 default y 48 49config DEBUG_USER 50 bool "Verbose user fault messages" 51 help 52 When a user program crashes due to an exception, the kernel can 53 print a brief message explaining what the problem was. This is 54 sometimes helpful for debugging but serves no purpose on a 55 production system. Most people should say N here. 56 57 In addition, you need to pass user_debug=N on the kernel command 58 line to enable this feature. N consists of the sum of: 59 60 1 - undefined instruction events 61 2 - system calls 62 4 - invalid data aborts 63 8 - SIGSEGV faults 64 16 - SIGBUS faults 65 66# These options are only for real kernel hackers who want to get their hands dirty. 67config DEBUG_LL 68 bool "Kernel low-level debugging functions (read help!)" 69 depends on DEBUG_KERNEL 70 help 71 Say Y here to include definitions of printascii, printch, printhex 72 in the kernel. This is helpful if you are debugging code that 73 executes before the console is initialized. 74 75 Note that selecting this option will limit the kernel to a single 76 UART definition, as specified below. Attempting to boot the kernel 77 image on a different platform *will not work*, so this option should 78 not be enabled for kernels that are intended to be portable. 79 80choice 81 prompt "Kernel low-level debugging port" 82 depends on DEBUG_LL 83 84 config AT91_DEBUG_LL_DBGU0 85 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 86 depends on HAVE_AT91_DBGU0 87 88 config AT91_DEBUG_LL_DBGU1 89 bool "Kernel low-level debugging on 9263 and 9g45" 90 depends on HAVE_AT91_DBGU1 91 92 config DEBUG_BCM2835 93 bool "Kernel low-level debugging on BCM2835 PL011 UART" 94 depends on ARCH_BCM2835 95 select DEBUG_UART_PL01X 96 97 config DEBUG_CLPS711X_UART1 98 bool "Kernel low-level debugging messages via UART1" 99 depends on ARCH_CLPS711X 100 help 101 Say Y here if you want the debug print routines to direct 102 their output to the first serial port on these devices. 103 104 config DEBUG_CLPS711X_UART2 105 bool "Kernel low-level debugging messages via UART2" 106 depends on ARCH_CLPS711X 107 help 108 Say Y here if you want the debug print routines to direct 109 their output to the second serial port on these devices. 110 111 config DEBUG_CNS3XXX 112 bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx" 113 depends on ARCH_CNS3XXX 114 select DEBUG_UART_PL01X 115 help 116 Say Y here if you want the debug print routines to direct 117 their output to the CNS3xxx UART0. 118 119 config DEBUG_DAVINCI_DA8XX_UART1 120 bool "Kernel low-level debugging on DaVinci DA8XX using UART1" 121 depends on ARCH_DAVINCI_DA8XX 122 select DEBUG_UART_8250 123 help 124 Say Y here if you want the debug print routines to direct 125 their output to UART1 serial port on DaVinci DA8XX devices. 126 127 config DEBUG_DAVINCI_DA8XX_UART2 128 bool "Kernel low-level debugging on DaVinci DA8XX using UART2" 129 depends on ARCH_DAVINCI_DA8XX 130 select DEBUG_UART_8250 131 help 132 Say Y here if you want the debug print routines to direct 133 their output to UART2 serial port on DaVinci DA8XX devices. 134 135 config DEBUG_DAVINCI_DMx_UART0 136 bool "Kernel low-level debugging on DaVinci DMx using UART0" 137 depends on ARCH_DAVINCI_DMx 138 select DEBUG_UART_8250 139 help 140 Say Y here if you want the debug print routines to direct 141 their output to UART0 serial port on DaVinci DMx devices. 142 143 config DEBUG_DAVINCI_TNETV107X_UART1 144 bool "Kernel low-level debugging on DaVinci TNETV107x using UART1" 145 depends on ARCH_DAVINCI_TNETV107X 146 select DEBUG_UART_8250 147 help 148 Say Y here if you want the debug print routines to direct 149 their output to UART1 serial port on DaVinci TNETV107X 150 devices. 151 152 config DEBUG_ZYNQ_UART0 153 bool "Kernel low-level debugging on Xilinx Zynq using UART0" 154 depends on ARCH_ZYNQ 155 help 156 Say Y here if you want the debug print routines to direct 157 their output to UART0 on the Zynq platform. 158 159 config DEBUG_ZYNQ_UART1 160 bool "Kernel low-level debugging on Xilinx Zynq using UART1" 161 depends on ARCH_ZYNQ 162 help 163 Say Y here if you want the debug print routines to direct 164 their output to UART1 on the Zynq platform. 165 166 If you have a ZC702 board and want early boot messages to 167 appear on the USB serial adaptor, select this option. 168 169 config DEBUG_DC21285_PORT 170 bool "Kernel low-level debugging messages via footbridge serial port" 171 depends on FOOTBRIDGE 172 help 173 Say Y here if you want the debug print routines to direct 174 their output to the serial port in the DC21285 (Footbridge). 175 176 config DEBUG_FOOTBRIDGE_COM1 177 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" 178 depends on FOOTBRIDGE 179 help 180 Say Y here if you want the debug print routines to direct 181 their output to the 8250 at PCI COM1. 182 183 config DEBUG_HI3620_UART 184 bool "Hisilicon HI3620 Debug UART" 185 depends on ARCH_HI3xxx 186 select DEBUG_UART_PL01X 187 help 188 Say Y here if you want kernel low-level debugging support 189 on HI3620 UART. 190 191 config DEBUG_HI3716_UART 192 bool "Hisilicon Hi3716 Debug UART" 193 depends on ARCH_HI3xxx 194 select DEBUG_UART_PL01X 195 help 196 Say Y here if you want kernel low-level debugging support 197 on HI3716 UART. 198 199 config DEBUG_HIGHBANK_UART 200 bool "Kernel low-level debugging messages via Highbank UART" 201 depends on ARCH_HIGHBANK 202 select DEBUG_UART_PL01X 203 help 204 Say Y here if you want the debug print routines to direct 205 their output to the UART on Highbank based devices. 206 207 config DEBUG_IMX1_UART 208 bool "i.MX1 Debug UART" 209 depends on SOC_IMX1 210 help 211 Say Y here if you want kernel low-level debugging support 212 on i.MX1. 213 214 config DEBUG_IMX23_UART 215 bool "i.MX23 Debug UART" 216 depends on SOC_IMX23 217 select DEBUG_UART_PL01X 218 help 219 Say Y here if you want kernel low-level debugging support 220 on i.MX23. 221 222 config DEBUG_IMX25_UART 223 bool "i.MX25 Debug UART" 224 depends on SOC_IMX25 225 help 226 Say Y here if you want kernel low-level debugging support 227 on i.MX25. 228 229 config DEBUG_IMX21_IMX27_UART 230 bool "i.MX21 and i.MX27 Debug UART" 231 depends on SOC_IMX21 || SOC_IMX27 232 help 233 Say Y here if you want kernel low-level debugging support 234 on i.MX21 or i.MX27. 235 236 config DEBUG_IMX28_UART 237 bool "i.MX28 Debug UART" 238 depends on SOC_IMX28 239 select DEBUG_UART_PL01X 240 help 241 Say Y here if you want kernel low-level debugging support 242 on i.MX28. 243 244 config DEBUG_IMX31_UART 245 bool "i.MX31 Debug UART" 246 depends on SOC_IMX31 247 help 248 Say Y here if you want kernel low-level debugging support 249 on i.MX31. 250 251 config DEBUG_IMX35_UART 252 bool "i.MX35 Debug UART" 253 depends on SOC_IMX35 254 help 255 Say Y here if you want kernel low-level debugging support 256 on i.MX35. 257 258 config DEBUG_IMX51_UART 259 bool "i.MX51 Debug UART" 260 depends on SOC_IMX51 261 help 262 Say Y here if you want kernel low-level debugging support 263 on i.MX51. 264 265 config DEBUG_IMX53_UART 266 bool "i.MX53 Debug UART" 267 depends on SOC_IMX53 268 help 269 Say Y here if you want kernel low-level debugging support 270 on i.MX53. 271 272 config DEBUG_IMX6Q_UART 273 bool "i.MX6Q/DL Debug UART" 274 depends on SOC_IMX6Q 275 help 276 Say Y here if you want kernel low-level debugging support 277 on i.MX6Q/DL. 278 279 config DEBUG_IMX6SL_UART 280 bool "i.MX6SL Debug UART" 281 depends on SOC_IMX6SL 282 help 283 Say Y here if you want kernel low-level debugging support 284 on i.MX6SL. 285 286 config DEBUG_KEYSTONE_UART0 287 bool "Kernel low-level debugging on KEYSTONE2 using UART0" 288 depends on ARCH_KEYSTONE 289 select DEBUG_UART_8250 290 help 291 Say Y here if you want the debug print routines to direct 292 their output to UART0 serial port on KEYSTONE2 devices. 293 294 config DEBUG_KEYSTONE_UART1 295 bool "Kernel low-level debugging on KEYSTONE2 using UART1" 296 depends on ARCH_KEYSTONE 297 select DEBUG_UART_8250 298 help 299 Say Y here if you want the debug print routines to direct 300 their output to UART1 serial port on KEYSTONE2 devices. 301 302 config DEBUG_MMP_UART2 303 bool "Kernel low-level debugging message via MMP UART2" 304 depends on ARCH_MMP 305 select DEBUG_UART_8250 306 help 307 Say Y here if you want kernel low-level debugging support 308 on MMP UART2. 309 310 config DEBUG_MMP_UART3 311 bool "Kernel low-level debugging message via MMP UART3" 312 depends on ARCH_MMP 313 select DEBUG_UART_8250 314 help 315 Say Y here if you want kernel low-level debugging support 316 on MMP UART3. 317 318 config DEBUG_MSM_UART1 319 bool "Kernel low-level debugging messages via MSM UART1" 320 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 321 help 322 Say Y here if you want the debug print routines to direct 323 their output to the first serial port on MSM devices. 324 325 config DEBUG_MSM_UART2 326 bool "Kernel low-level debugging messages via MSM UART2" 327 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 328 help 329 Say Y here if you want the debug print routines to direct 330 their output to the second serial port on MSM devices. 331 332 config DEBUG_MSM_UART3 333 bool "Kernel low-level debugging messages via MSM UART3" 334 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 335 help 336 Say Y here if you want the debug print routines to direct 337 their output to the third serial port on MSM devices. 338 339 config DEBUG_MSM8660_UART 340 bool "Kernel low-level debugging messages via MSM 8660 UART" 341 depends on ARCH_MSM8X60 342 select MSM_HAS_DEBUG_UART_HS 343 help 344 Say Y here if you want the debug print routines to direct 345 their output to the serial port on MSM 8660 devices. 346 347 config DEBUG_MSM8960_UART 348 bool "Kernel low-level debugging messages via MSM 8960 UART" 349 depends on ARCH_MSM8960 350 select MSM_HAS_DEBUG_UART_HS 351 help 352 Say Y here if you want the debug print routines to direct 353 their output to the serial port on MSM 8960 devices. 354 355 config DEBUG_MVEBU_UART 356 bool "Kernel low-level debugging messages via MVEBU UART (old bootloaders)" 357 depends on ARCH_MVEBU 358 select DEBUG_UART_8250 359 help 360 Say Y here if you want kernel low-level debugging support 361 on MVEBU based platforms. 362 363 This option should be used with the old bootloaders 364 that left the internal registers mapped at 365 0xd0000000. As of today, this is the case on 366 platforms such as the Globalscale Mirabox or the 367 Plathome OpenBlocks AX3, when using the original 368 bootloader. 369 370 If the wrong DEBUG_MVEBU_UART* option is selected, 371 when u-boot hands over to the kernel, the system 372 silently crashes, with no serial output at all. 373 374 config DEBUG_MVEBU_UART_ALTERNATE 375 bool "Kernel low-level debugging messages via MVEBU UART (new bootloaders)" 376 depends on ARCH_MVEBU 377 select DEBUG_UART_8250 378 help 379 Say Y here if you want kernel low-level debugging support 380 on MVEBU based platforms. 381 382 This option should be used with the new bootloaders 383 that remap the internal registers at 0xf1000000. 384 385 If the wrong DEBUG_MVEBU_UART* option is selected, 386 when u-boot hands over to the kernel, the system 387 silently crashes, with no serial output at all. 388 389 config DEBUG_NOMADIK_UART 390 bool "Kernel low-level debugging messages via NOMADIK UART" 391 depends on ARCH_NOMADIK 392 select DEBUG_UART_PL01X 393 help 394 Say Y here if you want kernel low-level debugging support 395 on NOMADIK based platforms. 396 397 config DEBUG_NSPIRE_CLASSIC_UART 398 bool "Kernel low-level debugging via TI-NSPIRE 8250 UART" 399 depends on ARCH_NSPIRE 400 select DEBUG_UART_8250 401 help 402 Say Y here if you want kernel low-level debugging support 403 on TI-NSPIRE classic models. 404 405 config DEBUG_NSPIRE_CX_UART 406 bool "Kernel low-level debugging via TI-NSPIRE PL011 UART" 407 depends on ARCH_NSPIRE 408 select DEBUG_UART_PL01X 409 help 410 Say Y here if you want kernel low-level debugging support 411 on TI-NSPIRE CX models. 412 413 config DEBUG_OMAP2UART1 414 bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)" 415 depends on ARCH_OMAP2PLUS 416 select DEBUG_OMAP2PLUS_UART 417 help 418 This covers at least h4, 2430sdp, 3430sdp, 3630sdp, 419 omap3 torpedo and 3530 lv som. 420 421 config DEBUG_OMAP2UART2 422 bool "Kernel low-level debugging messages via OMAP2/3/4 UART2" 423 depends on ARCH_OMAP2PLUS 424 select DEBUG_OMAP2PLUS_UART 425 426 config DEBUG_OMAP2UART3 427 bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)" 428 depends on ARCH_OMAP2PLUS 429 select DEBUG_OMAP2PLUS_UART 430 431 config DEBUG_OMAP3UART3 432 bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)" 433 depends on ARCH_OMAP2PLUS 434 select DEBUG_OMAP2PLUS_UART 435 help 436 This covers at least cm_t3x, beagle, crane, devkit8000, 437 igep00x0, ldp, n900, n9(50), pandora, overo, touchbook, 438 and 3517evm. 439 440 config DEBUG_OMAP4UART3 441 bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)" 442 depends on ARCH_OMAP2PLUS 443 select DEBUG_OMAP2PLUS_UART 444 445 config DEBUG_OMAP3UART4 446 bool "Kernel low-level debugging messages via OMAP36XX UART4" 447 depends on ARCH_OMAP2PLUS 448 select DEBUG_OMAP2PLUS_UART 449 450 config DEBUG_OMAP4UART4 451 bool "Kernel low-level debugging messages via OMAP4/5 UART4" 452 depends on ARCH_OMAP2PLUS 453 select DEBUG_OMAP2PLUS_UART 454 455 config DEBUG_TI81XXUART1 456 bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)" 457 depends on ARCH_OMAP2PLUS 458 select DEBUG_OMAP2PLUS_UART 459 460 config DEBUG_TI81XXUART2 461 bool "Kernel low-level debugging messages via TI81XX UART2" 462 depends on ARCH_OMAP2PLUS 463 select DEBUG_OMAP2PLUS_UART 464 465 config DEBUG_TI81XXUART3 466 bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)" 467 depends on ARCH_OMAP2PLUS 468 select DEBUG_OMAP2PLUS_UART 469 470 config DEBUG_AM33XXUART1 471 bool "Kernel low-level debugging messages via AM33XX UART1" 472 depends on ARCH_OMAP2PLUS 473 select DEBUG_OMAP2PLUS_UART 474 475 config DEBUG_ZOOM_UART 476 bool "Kernel low-level debugging messages via Zoom2/3 UART" 477 depends on ARCH_OMAP2PLUS 478 select DEBUG_OMAP2PLUS_UART 479 480 config DEBUG_PICOXCELL_UART 481 depends on ARCH_PICOXCELL 482 bool "Use PicoXcell UART for low-level debug" 483 select DEBUG_UART_8250 484 help 485 Say Y here if you want kernel low-level debugging support 486 on PicoXcell based platforms. 487 488 config DEBUG_PXA_UART1 489 depends on ARCH_PXA 490 bool "Use PXA UART1 for low-level debug" 491 select DEBUG_UART_8250 492 help 493 Say Y here if you want kernel low-level debugging support 494 on PXA UART1. 495 496 config DEBUG_REALVIEW_STD_PORT 497 bool "RealView Default UART" 498 depends on ARCH_REALVIEW 499 select DEBUG_UART_PL01X 500 help 501 Say Y here if you want the debug print routines to direct 502 their output to the serial port on RealView EB, PB11MP, PBA8 503 and PBX platforms. 504 505 config DEBUG_REALVIEW_PB1176_PORT 506 bool "RealView PB1176 UART" 507 depends on MACH_REALVIEW_PB1176 508 select DEBUG_UART_PL01X 509 help 510 Say Y here if you want the debug print routines to direct 511 their output to the standard serial port on the RealView 512 PB1176 platform. 513 514 config DEBUG_RK29_UART0 515 bool "Kernel low-level debugging messages via Rockchip RK29 UART0" 516 depends on ARCH_ROCKCHIP 517 select DEBUG_UART_8250 518 help 519 Say Y here if you want kernel low-level debugging support 520 on Rockchip based platforms. 521 522 config DEBUG_RK29_UART1 523 bool "Kernel low-level debugging messages via Rockchip RK29 UART1" 524 depends on ARCH_ROCKCHIP 525 select DEBUG_UART_8250 526 help 527 Say Y here if you want kernel low-level debugging support 528 on Rockchip based platforms. 529 530 config DEBUG_RK29_UART2 531 bool "Kernel low-level debugging messages via Rockchip RK29 UART2" 532 depends on ARCH_ROCKCHIP 533 select DEBUG_UART_8250 534 help 535 Say Y here if you want kernel low-level debugging support 536 on Rockchip based platforms. 537 538 config DEBUG_RK3X_UART0 539 bool "Kernel low-level debugging messages via Rockchip RK3X UART0" 540 depends on ARCH_ROCKCHIP 541 select DEBUG_UART_8250 542 help 543 Say Y here if you want kernel low-level debugging support 544 on Rockchip based platforms. 545 546 config DEBUG_RK3X_UART1 547 bool "Kernel low-level debugging messages via Rockchip RK3X UART1" 548 depends on ARCH_ROCKCHIP 549 select DEBUG_UART_8250 550 help 551 Say Y here if you want kernel low-level debugging support 552 on Rockchip based platforms. 553 554 config DEBUG_RK3X_UART2 555 bool "Kernel low-level debugging messages via Rockchip RK3X UART2" 556 depends on ARCH_ROCKCHIP 557 select DEBUG_UART_8250 558 help 559 Say Y here if you want kernel low-level debugging support 560 on Rockchip based platforms. 561 562 config DEBUG_RK3X_UART3 563 bool "Kernel low-level debugging messages via Rockchip RK3X UART3" 564 depends on ARCH_ROCKCHIP 565 select DEBUG_UART_8250 566 help 567 Say Y here if you want kernel low-level debugging support 568 on Rockchip based platforms. 569 570 config DEBUG_S3C_UART0 571 depends on PLAT_SAMSUNG 572 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 573 bool "Use S3C UART 0 for low-level debug" 574 help 575 Say Y here if you want the debug print routines to direct 576 their output to UART 0. The port must have been initialised 577 by the boot-loader before use. 578 579 The uncompressor code port configuration is now handled 580 by CONFIG_S3C_LOWLEVEL_UART_PORT. 581 582 config DEBUG_S3C_UART1 583 depends on PLAT_SAMSUNG 584 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 585 bool "Use S3C UART 1 for low-level debug" 586 help 587 Say Y here if you want the debug print routines to direct 588 their output to UART 1. The port must have been initialised 589 by the boot-loader before use. 590 591 The uncompressor code port configuration is now handled 592 by CONFIG_S3C_LOWLEVEL_UART_PORT. 593 594 config DEBUG_S3C_UART2 595 depends on PLAT_SAMSUNG 596 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 597 bool "Use S3C UART 2 for low-level debug" 598 help 599 Say Y here if you want the debug print routines to direct 600 their output to UART 2. The port must have been initialised 601 by the boot-loader before use. 602 603 The uncompressor code port configuration is now handled 604 by CONFIG_S3C_LOWLEVEL_UART_PORT. 605 606 config DEBUG_S3C_UART3 607 depends on PLAT_SAMSUNG && ARCH_EXYNOS 608 select DEBUG_EXYNOS_UART 609 bool "Use S3C UART 3 for low-level debug" 610 help 611 Say Y here if you want the debug print routines to direct 612 their output to UART 3. The port must have been initialised 613 by the boot-loader before use. 614 615 The uncompressor code port configuration is now handled 616 by CONFIG_S3C_LOWLEVEL_UART_PORT. 617 618 config DEBUG_SOCFPGA_UART 619 depends on ARCH_SOCFPGA 620 bool "Use SOCFPGA UART for low-level debug" 621 select DEBUG_UART_8250 622 help 623 Say Y here if you want kernel low-level debugging support 624 on SOCFPGA based platforms. 625 626 config DEBUG_SUNXI_UART0 627 bool "Kernel low-level debugging messages via sunXi UART0" 628 depends on ARCH_SUNXI 629 select DEBUG_UART_8250 630 help 631 Say Y here if you want kernel low-level debugging support 632 on Allwinner A1X based platforms on the UART0. 633 634 config DEBUG_SUNXI_UART1 635 bool "Kernel low-level debugging messages via sunXi UART1" 636 depends on ARCH_SUNXI 637 select DEBUG_UART_8250 638 help 639 Say Y here if you want kernel low-level debugging support 640 on Allwinner A1X based platforms on the UART1. 641 642 config TEGRA_DEBUG_UART_AUTO_ODMDATA 643 bool "Kernel low-level debugging messages via Tegra UART via ODMDATA" 644 depends on ARCH_TEGRA 645 select DEBUG_TEGRA_UART 646 help 647 Automatically determines which UART to use for low-level 648 debug based on the ODMDATA value. This value is part of 649 the BCT, and is written to the boot memory device using 650 nvflash, or other flashing tool. When bits 19:18 are 3, 651 then bits 17:15 indicate which UART to use; 0/1/2/3/4 652 are UART A/B/C/D/E. 653 654 config TEGRA_DEBUG_UARTA 655 bool "Kernel low-level debugging messages via Tegra UART A" 656 depends on ARCH_TEGRA 657 select DEBUG_TEGRA_UART 658 help 659 Say Y here if you want kernel low-level debugging support 660 on Tegra based platforms. 661 662 config TEGRA_DEBUG_UARTB 663 bool "Kernel low-level debugging messages via Tegra UART B" 664 depends on ARCH_TEGRA 665 select DEBUG_TEGRA_UART 666 help 667 Say Y here if you want kernel low-level debugging support 668 on Tegra based platforms. 669 670 config TEGRA_DEBUG_UARTC 671 bool "Kernel low-level debugging messages via Tegra UART C" 672 depends on ARCH_TEGRA 673 select DEBUG_TEGRA_UART 674 help 675 Say Y here if you want kernel low-level debugging support 676 on Tegra based platforms. 677 678 config TEGRA_DEBUG_UARTD 679 bool "Kernel low-level debugging messages via Tegra UART D" 680 depends on ARCH_TEGRA 681 select DEBUG_TEGRA_UART 682 help 683 Say Y here if you want kernel low-level debugging support 684 on Tegra based platforms. 685 686 config TEGRA_DEBUG_UARTE 687 bool "Kernel low-level debugging messages via Tegra UART E" 688 depends on ARCH_TEGRA 689 select DEBUG_TEGRA_UART 690 help 691 Say Y here if you want kernel low-level debugging support 692 on Tegra based platforms. 693 694 config DEBUG_SIRFPRIMA2_UART1 695 bool "Kernel low-level debugging messages via SiRFprimaII UART1" 696 depends on ARCH_PRIMA2 697 help 698 Say Y here if you want the debug print routines to direct 699 their output to the uart1 port on SiRFprimaII devices. 700 701 config DEBUG_SIRFMARCO_UART1 702 bool "Kernel low-level debugging messages via SiRFmarco UART1" 703 depends on ARCH_MARCO 704 help 705 Say Y here if you want the debug print routines to direct 706 their output to the uart1 port on SiRFmarco devices. 707 708 config STIH41X_DEBUG_ASC2 709 bool "Use StiH415/416 ASC2 UART for low-level debug" 710 depends on ARCH_STI 711 select DEBUG_STI_UART 712 help 713 Say Y here if you want kernel low-level debugging support 714 on STiH415/416 based platforms like b2000, which has 715 default UART wired up to ASC2. 716 717 If unsure, say N. 718 719 config STIH41X_DEBUG_SBC_ASC1 720 bool "Use StiH415/416 SBC ASC1 UART for low-level debug" 721 depends on ARCH_STI 722 select DEBUG_STI_UART 723 help 724 Say Y here if you want kernel low-level debugging support 725 on STiH415/416 based platforms like b2020. which has 726 default UART wired up to SBC ASC1. 727 728 If unsure, say N. 729 730 config DEBUG_U300_UART 731 bool "Kernel low-level debugging messages via U300 UART0" 732 depends on ARCH_U300 733 select DEBUG_UART_PL01X 734 help 735 Say Y here if you want the debug print routines to direct 736 their output to the uart port on U300 devices. 737 738 config DEBUG_UX500_UART 739 depends on ARCH_U8500 740 bool "Use Ux500 UART for low-level debug" 741 help 742 Say Y here if you want kernel low-level debugging support 743 on Ux500 based platforms. 744 745 config DEBUG_VEXPRESS_UART0_DETECT 746 bool "Autodetect UART0 on Versatile Express Cortex-A core tiles" 747 depends on ARCH_VEXPRESS && CPU_CP15_MMU 748 help 749 This option enables a simple heuristic which tries to determine 750 the motherboard's memory map variant (original or RS1) and then 751 choose the relevant UART0 base address. 752 753 Note that this will only work with standard A-class core tiles, 754 and may fail with non-standard SMM or custom software models. 755 756 config DEBUG_VEXPRESS_UART0_CA9 757 bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)" 758 depends on ARCH_VEXPRESS 759 select DEBUG_UART_PL01X 760 help 761 This option selects UART0 at 0x10009000. Except for custom models, 762 this applies only to the V2P-CA9 tile. 763 764 config DEBUG_VEXPRESS_UART0_RS1 765 bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)" 766 depends on ARCH_VEXPRESS 767 select DEBUG_UART_PL01X 768 help 769 This option selects UART0 at 0x1c090000. This applies to most 770 of the tiles using the RS1 memory map, including all new A-class 771 core tiles, FPGA-based SMMs and software models. 772 773 config DEBUG_VEXPRESS_UART0_CRX 774 bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)" 775 depends on ARCH_VEXPRESS && !MMU 776 select DEBUG_UART_PL01X 777 help 778 This option selects UART0 at 0xb0090000. This is appropriate for 779 Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7 780 781 config DEBUG_VT8500_UART0 782 bool "Use UART0 on VIA/Wondermedia SoCs" 783 depends on ARCH_VT8500 784 help 785 This option selects UART0 on VIA/Wondermedia System-on-a-chip 786 devices, including VT8500, WM8505, WM8650 and WM8850. 787 788 config DEBUG_LL_UART_NONE 789 bool "No low-level debugging UART" 790 depends on !ARCH_MULTIPLATFORM 791 help 792 Say Y here if your platform doesn't provide a UART option 793 above. This relies on your platform choosing the right UART 794 definition internally in order for low-level debugging to 795 work. 796 797 config DEBUG_ICEDCC 798 bool "Kernel low-level debugging via EmbeddedICE DCC channel" 799 help 800 Say Y here if you want the debug print routines to direct 801 their output to the EmbeddedICE macrocell's DCC channel using 802 co-processor 14. This is known to work on the ARM9 style ICE 803 channel and on the XScale with the PEEDI. 804 805 Note that the system will appear to hang during boot if there 806 is nothing connected to read from the DCC. 807 808 config DEBUG_SEMIHOSTING 809 bool "Kernel low-level debug output via semihosting I/O" 810 help 811 Semihosting enables code running on an ARM target to use 812 the I/O facilities on a host debugger/emulator through a 813 simple SVC call. The host debugger or emulator must have 814 semihosting enabled for the special svc call to be trapped 815 otherwise the kernel will crash. 816 817 This is known to work with OpenOCD, as well as 818 ARM's Fast Models, or any other controlling environment 819 that implements semihosting. 820 821 For more details about semihosting, please see 822 chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd. 823 824 config DEBUG_LL_UART_8250 825 bool "Kernel low-level debugging via 8250 UART" 826 help 827 Say Y here if you wish the debug print routes to direct 828 their output to an 8250 UART. You can use this option 829 to provide the parameters for the 8250 UART rather than 830 selecting one of the platform specific options above if 831 you know the parameters for the port. 832 833 This option is preferred over the platform specific 834 options; the platform specific options are deprecated 835 and will be soon removed. 836 837 config DEBUG_LL_UART_PL01X 838 bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART" 839 help 840 Say Y here if you wish the debug print routes to direct 841 their output to a PL01x Primecell UART. You can use 842 this option to provide the parameters for the UART 843 rather than selecting one of the platform specific 844 options above if you know the parameters for the port. 845 846 This option is preferred over the platform specific 847 options; the platform specific options are deprecated 848 and will be soon removed. 849 850endchoice 851 852config DEBUG_EXYNOS_UART 853 bool 854 855config DEBUG_OMAP2PLUS_UART 856 bool 857 depends on ARCH_OMAP2PLUS 858 859config DEBUG_IMX_UART_PORT 860 int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \ 861 DEBUG_IMX25_UART || \ 862 DEBUG_IMX21_IMX27_UART || \ 863 DEBUG_IMX31_UART || \ 864 DEBUG_IMX35_UART || \ 865 DEBUG_IMX51_UART || \ 866 DEBUG_IMX53_UART || \ 867 DEBUG_IMX6Q_UART || \ 868 DEBUG_IMX6SL_UART 869 default 1 870 depends on ARCH_MXC 871 help 872 Choose UART port on which kernel low-level debug messages 873 should be output. 874 875config DEBUG_TEGRA_UART 876 bool 877 depends on ARCH_TEGRA 878 879config DEBUG_STI_UART 880 bool 881 depends on ARCH_STI 882 883config DEBUG_LL_INCLUDE 884 string 885 default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250 886 default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X 887 default "debug/exynos.S" if DEBUG_EXYNOS_UART 888 default "debug/icedcc.S" if DEBUG_ICEDCC 889 default "debug/imx.S" if DEBUG_IMX1_UART || \ 890 DEBUG_IMX25_UART || \ 891 DEBUG_IMX21_IMX27_UART || \ 892 DEBUG_IMX31_UART || \ 893 DEBUG_IMX35_UART || \ 894 DEBUG_IMX51_UART || \ 895 DEBUG_IMX53_UART ||\ 896 DEBUG_IMX6Q_UART || \ 897 DEBUG_IMX6SL_UART 898 default "debug/msm.S" if DEBUG_MSM_UART1 || \ 899 DEBUG_MSM_UART2 || \ 900 DEBUG_MSM_UART3 || \ 901 DEBUG_MSM8660_UART || \ 902 DEBUG_MSM8960_UART 903 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART 904 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 905 default "debug/sti.S" if DEBUG_STI_UART 906 default "debug/tegra.S" if DEBUG_TEGRA_UART 907 default "debug/ux500.S" if DEBUG_UX500_UART 908 default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT 909 default "debug/vt8500.S" if DEBUG_VT8500_UART0 910 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 911 default "mach/debug-macro.S" 912 913# Compatibility options for PL01x 914config DEBUG_UART_PL01X 915 def_bool ARCH_EP93XX || \ 916 ARCH_INTEGRATOR || \ 917 ARCH_SPEAR3XX || \ 918 ARCH_SPEAR6XX || \ 919 ARCH_SPEAR13XX || \ 920 ARCH_VERSATILE 921 922# Compatibility options for 8250 923config DEBUG_UART_8250 924 def_bool ARCH_DOVE || ARCH_EBSA110 || \ 925 (FOOTBRIDGE && !DEBUG_DC21285_PORT) || \ 926 ARCH_GEMINI || ARCH_IOP13XX || ARCH_IOP32X || \ 927 ARCH_IOP33X || ARCH_IXP4XX || ARCH_KIRKWOOD || \ 928 ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC 929 930config DEBUG_UART_PHYS 931 hex "Physical base address of debug UART" 932 default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0 933 default 0x01c28000 if DEBUG_SUNXI_UART0 934 default 0x01c28400 if DEBUG_SUNXI_UART1 935 default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1 936 default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2 937 default 0x02530c00 if DEBUG_KEYSTONE_UART0 938 default 0x02531000 if DEBUG_KEYSTONE_UART1 939 default 0x03010fe0 if ARCH_RPC 940 default 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1 941 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ 942 DEBUG_VEXPRESS_UART0_CA9 943 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT 944 default 0x10124000 if DEBUG_RK3X_UART0 945 default 0x10126000 if DEBUG_RK3X_UART1 946 default 0x101f1000 if ARCH_VERSATILE 947 default 0x101fb000 if DEBUG_NOMADIK_UART 948 default 0x16000000 if ARCH_INTEGRATOR 949 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 950 default 0x20060000 if DEBUG_RK29_UART0 951 default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 952 default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 953 default 0x20201000 if DEBUG_BCM2835 954 default 0x40090000 if ARCH_LPC32XX 955 default 0x40100000 if DEBUG_PXA_UART1 956 default 0x42000000 if ARCH_GEMINI 957 default 0x7c0003f8 if FOOTBRIDGE 958 default 0x80230000 if DEBUG_PICOXCELL_UART 959 default 0x80070000 if DEBUG_IMX23_UART 960 default 0x80074000 if DEBUG_IMX28_UART 961 default 0x808c0000 if ARCH_EP93XX 962 default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 963 default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX 964 default 0xc0013000 if DEBUG_U300_UART 965 default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN 966 default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN 967 default 0xd0000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX 968 default 0xd0012000 if DEBUG_MVEBU_UART 969 default 0xd4017000 if DEBUG_MMP_UART2 970 default 0xd4018000 if DEBUG_MMP_UART3 971 default 0xe0000000 if ARCH_SPEAR13XX 972 default 0xf0000be0 if ARCH_EBSA110 973 default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE 974 default 0xf1012000 if ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || \ 975 ARCH_ORION5X 976 default 0xf8b00000 if DEBUG_HI3716_UART 977 default 0xfcb00000 if DEBUG_HI3620_UART 978 default 0xfe800000 if ARCH_IOP32X 979 default 0xffc02000 if DEBUG_SOCFPGA_UART 980 default 0xffd82340 if ARCH_IOP13XX 981 default 0xfff36000 if DEBUG_HIGHBANK_UART 982 default 0xfffff700 if ARCH_IOP33X 983 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 984 DEBUG_UART_8250 || DEBUG_UART_PL01X 985 986config DEBUG_UART_VIRT 987 hex "Virtual base address of debug UART" 988 default 0xe0010fe0 if ARCH_RPC 989 default 0xf0000be0 if ARCH_EBSA110 990 default 0xf0009000 if DEBUG_CNS3XXX 991 default 0xf01fb000 if DEBUG_NOMADIK_UART 992 default 0xf0201000 if DEBUG_BCM2835 993 default 0xf11f1000 if ARCH_VERSATILE 994 default 0xf1600000 if ARCH_INTEGRATOR 995 default 0xf1c28000 if DEBUG_SUNXI_UART0 996 default 0xf1c28400 if DEBUG_SUNXI_UART1 997 default 0xf2100000 if DEBUG_PXA_UART1 998 default 0xf4090000 if ARCH_LPC32XX 999 default 0xf4200000 if ARCH_GEMINI 1000 default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 1001 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 1002 default 0xfb009000 if DEBUG_REALVIEW_STD_PORT 1003 default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT 1004 default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX 1005 default 0xfd000000 if ARCH_SPEAR13XX 1006 default 0xfd012000 if ARCH_MV78XX0 1007 default 0xfde12000 if ARCH_DOVE 1008 default 0xfe012000 if ARCH_ORION5X 1009 default 0xfe017000 if DEBUG_MMP_UART2 1010 default 0xfe018000 if DEBUG_MMP_UART3 1011 default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART 1012 default 0xfe230000 if DEBUG_PICOXCELL_UART 1013 default 0xfe800000 if ARCH_IOP32X 1014 default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HI3716_UART 1015 default 0xfeb24000 if DEBUG_RK3X_UART0 1016 default 0xfeb26000 if DEBUG_RK3X_UART1 1017 default 0xfeb30c00 if DEBUG_KEYSTONE_UART0 1018 default 0xfeb31000 if DEBUG_KEYSTONE_UART1 1019 default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE 1020 default 0xfed60000 if DEBUG_RK29_UART0 1021 default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 1022 default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 1023 default 0xfec02000 if DEBUG_SOCFPGA_UART 1024 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 1025 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 1026 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 1027 default 0xfed12000 if ARCH_KIRKWOOD 1028 default 0xfedc0000 if ARCH_EP93XX 1029 default 0xfee003f8 if FOOTBRIDGE 1030 default 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1 1031 default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 1032 default 0xfef36000 if DEBUG_HIGHBANK_UART 1033 default 0xfee82340 if ARCH_IOP13XX 1034 default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN 1035 default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN 1036 default 0xfefff700 if ARCH_IOP33X 1037 default 0xff003000 if DEBUG_U300_UART 1038 default DEBUG_UART_PHYS if !MMU 1039 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1040 DEBUG_UART_8250 || DEBUG_UART_PL01X 1041 1042config DEBUG_UART_8250_SHIFT 1043 int "Register offset shift for the 8250 debug UART" 1044 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1045 default 0 if FOOTBRIDGE || ARCH_IOP32X 1046 default 2 1047 1048config DEBUG_UART_8250_WORD 1049 bool "Use 32-bit accesses for 8250 UART" 1050 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1051 depends on DEBUG_UART_8250_SHIFT >= 2 1052 default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \ 1053 ARCH_KEYSTONE || \ 1054 DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \ 1055 DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1 1056 1057config DEBUG_UART_8250_FLOW_CONTROL 1058 bool "Enable flow control for 8250 UART" 1059 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1060 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_GEMINI || ARCH_RPC 1061 1062config DEBUG_UNCOMPRESS 1063 bool 1064 depends on ARCH_MULTIPLATFORM || ARCH_MSM 1065 default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ 1066 (!DEBUG_TEGRA_UART || !ZBOOT_ROM) 1067 help 1068 This option influences the normal decompressor output for 1069 multiplatform kernels. Normally, multiplatform kernels disable 1070 decompressor output because it is not possible to know where to 1071 send the decompressor output. 1072 1073 When this option is set, the selected DEBUG_LL output method 1074 will be re-used for normal decompressor output on multiplatform 1075 kernels. 1076 1077 1078config UNCOMPRESS_INCLUDE 1079 string 1080 default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM 1081 default "mach/uncompress.h" 1082 1083config EARLY_PRINTK 1084 bool "Early printk" 1085 depends on DEBUG_LL 1086 help 1087 Say Y here if you want to have an early console using the 1088 kernel low-level debugging functions. Add earlyprintk to your 1089 kernel parameters to enable this console. 1090 1091config OC_ETM 1092 bool "On-chip ETM and ETB" 1093 depends on ARM_AMBA 1094 help 1095 Enables the on-chip embedded trace macrocell and embedded trace 1096 buffer driver that will allow you to collect traces of the 1097 kernel code. 1098 1099config ARM_KPROBES_TEST 1100 tristate "Kprobes test module" 1101 depends on KPROBES && MODULES 1102 help 1103 Perform tests of kprobes API and instruction set simulation. 1104 1105config PID_IN_CONTEXTIDR 1106 bool "Write the current PID to the CONTEXTIDR register" 1107 depends on CPU_COPY_V6 1108 help 1109 Enabling this option causes the kernel to write the current PID to 1110 the PROCID field of the CONTEXTIDR register, at the expense of some 1111 additional instructions during context switch. Say Y here only if you 1112 are planning to use hardware trace tools with this kernel. 1113 1114endmenu 1115