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_VF_UART 390 bool "Vybrid UART" 391 depends on SOC_VF610 392 help 393 Say Y here if you want kernel low-level debugging support 394 on Vybrid based platforms. 395 396 config DEBUG_NOMADIK_UART 397 bool "Kernel low-level debugging messages via NOMADIK UART" 398 depends on ARCH_NOMADIK 399 select DEBUG_UART_PL01X 400 help 401 Say Y here if you want kernel low-level debugging support 402 on NOMADIK based platforms. 403 404 config DEBUG_NSPIRE_CLASSIC_UART 405 bool "Kernel low-level debugging via TI-NSPIRE 8250 UART" 406 depends on ARCH_NSPIRE 407 select DEBUG_UART_8250 408 help 409 Say Y here if you want kernel low-level debugging support 410 on TI-NSPIRE classic models. 411 412 config DEBUG_NSPIRE_CX_UART 413 bool "Kernel low-level debugging via TI-NSPIRE PL011 UART" 414 depends on ARCH_NSPIRE 415 select DEBUG_UART_PL01X 416 help 417 Say Y here if you want kernel low-level debugging support 418 on TI-NSPIRE CX models. 419 420 config DEBUG_OMAP2UART1 421 bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)" 422 depends on ARCH_OMAP2PLUS 423 select DEBUG_OMAP2PLUS_UART 424 help 425 This covers at least h4, 2430sdp, 3430sdp, 3630sdp, 426 omap3 torpedo and 3530 lv som. 427 428 config DEBUG_OMAP2UART2 429 bool "Kernel low-level debugging messages via OMAP2/3/4 UART2" 430 depends on ARCH_OMAP2PLUS 431 select DEBUG_OMAP2PLUS_UART 432 433 config DEBUG_OMAP2UART3 434 bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)" 435 depends on ARCH_OMAP2PLUS 436 select DEBUG_OMAP2PLUS_UART 437 438 config DEBUG_OMAP3UART3 439 bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)" 440 depends on ARCH_OMAP2PLUS 441 select DEBUG_OMAP2PLUS_UART 442 help 443 This covers at least cm_t3x, beagle, crane, devkit8000, 444 igep00x0, ldp, n900, n9(50), pandora, overo, touchbook, 445 and 3517evm. 446 447 config DEBUG_OMAP4UART3 448 bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)" 449 depends on ARCH_OMAP2PLUS 450 select DEBUG_OMAP2PLUS_UART 451 452 config DEBUG_OMAP3UART4 453 bool "Kernel low-level debugging messages via OMAP36XX UART4" 454 depends on ARCH_OMAP2PLUS 455 select DEBUG_OMAP2PLUS_UART 456 457 config DEBUG_OMAP4UART4 458 bool "Kernel low-level debugging messages via OMAP4/5 UART4" 459 depends on ARCH_OMAP2PLUS 460 select DEBUG_OMAP2PLUS_UART 461 462 config DEBUG_TI81XXUART1 463 bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)" 464 depends on ARCH_OMAP2PLUS 465 select DEBUG_OMAP2PLUS_UART 466 467 config DEBUG_TI81XXUART2 468 bool "Kernel low-level debugging messages via TI81XX UART2" 469 depends on ARCH_OMAP2PLUS 470 select DEBUG_OMAP2PLUS_UART 471 472 config DEBUG_TI81XXUART3 473 bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)" 474 depends on ARCH_OMAP2PLUS 475 select DEBUG_OMAP2PLUS_UART 476 477 config DEBUG_AM33XXUART1 478 bool "Kernel low-level debugging messages via AM33XX UART1" 479 depends on ARCH_OMAP2PLUS 480 select DEBUG_OMAP2PLUS_UART 481 482 config DEBUG_ZOOM_UART 483 bool "Kernel low-level debugging messages via Zoom2/3 UART" 484 depends on ARCH_OMAP2PLUS 485 select DEBUG_OMAP2PLUS_UART 486 487 config DEBUG_PICOXCELL_UART 488 depends on ARCH_PICOXCELL 489 bool "Use PicoXcell UART for low-level debug" 490 select DEBUG_UART_8250 491 help 492 Say Y here if you want kernel low-level debugging support 493 on PicoXcell based platforms. 494 495 config DEBUG_PXA_UART1 496 depends on ARCH_PXA 497 bool "Use PXA UART1 for low-level debug" 498 select DEBUG_UART_8250 499 help 500 Say Y here if you want kernel low-level debugging support 501 on PXA UART1. 502 503 config DEBUG_REALVIEW_STD_PORT 504 bool "RealView Default UART" 505 depends on ARCH_REALVIEW 506 select DEBUG_UART_PL01X 507 help 508 Say Y here if you want the debug print routines to direct 509 their output to the serial port on RealView EB, PB11MP, PBA8 510 and PBX platforms. 511 512 config DEBUG_REALVIEW_PB1176_PORT 513 bool "RealView PB1176 UART" 514 depends on MACH_REALVIEW_PB1176 515 select DEBUG_UART_PL01X 516 help 517 Say Y here if you want the debug print routines to direct 518 their output to the standard serial port on the RealView 519 PB1176 platform. 520 521 config DEBUG_RK29_UART0 522 bool "Kernel low-level debugging messages via Rockchip RK29 UART0" 523 depends on ARCH_ROCKCHIP 524 select DEBUG_UART_8250 525 help 526 Say Y here if you want kernel low-level debugging support 527 on Rockchip based platforms. 528 529 config DEBUG_RK29_UART1 530 bool "Kernel low-level debugging messages via Rockchip RK29 UART1" 531 depends on ARCH_ROCKCHIP 532 select DEBUG_UART_8250 533 help 534 Say Y here if you want kernel low-level debugging support 535 on Rockchip based platforms. 536 537 config DEBUG_RK29_UART2 538 bool "Kernel low-level debugging messages via Rockchip RK29 UART2" 539 depends on ARCH_ROCKCHIP 540 select DEBUG_UART_8250 541 help 542 Say Y here if you want kernel low-level debugging support 543 on Rockchip based platforms. 544 545 config DEBUG_RK3X_UART0 546 bool "Kernel low-level debugging messages via Rockchip RK3X UART0" 547 depends on ARCH_ROCKCHIP 548 select DEBUG_UART_8250 549 help 550 Say Y here if you want kernel low-level debugging support 551 on Rockchip based platforms. 552 553 config DEBUG_RK3X_UART1 554 bool "Kernel low-level debugging messages via Rockchip RK3X UART1" 555 depends on ARCH_ROCKCHIP 556 select DEBUG_UART_8250 557 help 558 Say Y here if you want kernel low-level debugging support 559 on Rockchip based platforms. 560 561 config DEBUG_RK3X_UART2 562 bool "Kernel low-level debugging messages via Rockchip RK3X UART2" 563 depends on ARCH_ROCKCHIP 564 select DEBUG_UART_8250 565 help 566 Say Y here if you want kernel low-level debugging support 567 on Rockchip based platforms. 568 569 config DEBUG_RK3X_UART3 570 bool "Kernel low-level debugging messages via Rockchip RK3X UART3" 571 depends on ARCH_ROCKCHIP 572 select DEBUG_UART_8250 573 help 574 Say Y here if you want kernel low-level debugging support 575 on Rockchip based platforms. 576 577 config DEBUG_S3C_UART0 578 depends on PLAT_SAMSUNG 579 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 580 bool "Use S3C UART 0 for low-level debug" 581 help 582 Say Y here if you want the debug print routines to direct 583 their output to UART 0. The port must have been initialised 584 by the boot-loader before use. 585 586 The uncompressor code port configuration is now handled 587 by CONFIG_S3C_LOWLEVEL_UART_PORT. 588 589 config DEBUG_S3C_UART1 590 depends on PLAT_SAMSUNG 591 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 592 bool "Use S3C UART 1 for low-level debug" 593 help 594 Say Y here if you want the debug print routines to direct 595 their output to UART 1. The port must have been initialised 596 by the boot-loader before use. 597 598 The uncompressor code port configuration is now handled 599 by CONFIG_S3C_LOWLEVEL_UART_PORT. 600 601 config DEBUG_S3C_UART2 602 depends on PLAT_SAMSUNG 603 select DEBUG_EXYNOS_UART if ARCH_EXYNOS 604 bool "Use S3C UART 2 for low-level debug" 605 help 606 Say Y here if you want the debug print routines to direct 607 their output to UART 2. The port must have been initialised 608 by the boot-loader before use. 609 610 The uncompressor code port configuration is now handled 611 by CONFIG_S3C_LOWLEVEL_UART_PORT. 612 613 config DEBUG_S3C_UART3 614 depends on PLAT_SAMSUNG && ARCH_EXYNOS 615 select DEBUG_EXYNOS_UART 616 bool "Use S3C UART 3 for low-level debug" 617 help 618 Say Y here if you want the debug print routines to direct 619 their output to UART 3. The port must have been initialised 620 by the boot-loader before use. 621 622 The uncompressor code port configuration is now handled 623 by CONFIG_S3C_LOWLEVEL_UART_PORT. 624 625 config DEBUG_SOCFPGA_UART 626 depends on ARCH_SOCFPGA 627 bool "Use SOCFPGA UART for low-level debug" 628 select DEBUG_UART_8250 629 help 630 Say Y here if you want kernel low-level debugging support 631 on SOCFPGA based platforms. 632 633 config DEBUG_SUNXI_UART0 634 bool "Kernel low-level debugging messages via sunXi UART0" 635 depends on ARCH_SUNXI 636 select DEBUG_UART_8250 637 help 638 Say Y here if you want kernel low-level debugging support 639 on Allwinner A1X based platforms on the UART0. 640 641 config DEBUG_SUNXI_UART1 642 bool "Kernel low-level debugging messages via sunXi UART1" 643 depends on ARCH_SUNXI 644 select DEBUG_UART_8250 645 help 646 Say Y here if you want kernel low-level debugging support 647 on Allwinner A1X based platforms on the UART1. 648 649 config TEGRA_DEBUG_UART_AUTO_ODMDATA 650 bool "Kernel low-level debugging messages via Tegra UART via ODMDATA" 651 depends on ARCH_TEGRA 652 select DEBUG_TEGRA_UART 653 help 654 Automatically determines which UART to use for low-level 655 debug based on the ODMDATA value. This value is part of 656 the BCT, and is written to the boot memory device using 657 nvflash, or other flashing tool. When bits 19:18 are 3, 658 then bits 17:15 indicate which UART to use; 0/1/2/3/4 659 are UART A/B/C/D/E. 660 661 config TEGRA_DEBUG_UARTA 662 bool "Kernel low-level debugging messages via Tegra UART A" 663 depends on ARCH_TEGRA 664 select DEBUG_TEGRA_UART 665 help 666 Say Y here if you want kernel low-level debugging support 667 on Tegra based platforms. 668 669 config TEGRA_DEBUG_UARTB 670 bool "Kernel low-level debugging messages via Tegra UART B" 671 depends on ARCH_TEGRA 672 select DEBUG_TEGRA_UART 673 help 674 Say Y here if you want kernel low-level debugging support 675 on Tegra based platforms. 676 677 config TEGRA_DEBUG_UARTC 678 bool "Kernel low-level debugging messages via Tegra UART C" 679 depends on ARCH_TEGRA 680 select DEBUG_TEGRA_UART 681 help 682 Say Y here if you want kernel low-level debugging support 683 on Tegra based platforms. 684 685 config TEGRA_DEBUG_UARTD 686 bool "Kernel low-level debugging messages via Tegra UART D" 687 depends on ARCH_TEGRA 688 select DEBUG_TEGRA_UART 689 help 690 Say Y here if you want kernel low-level debugging support 691 on Tegra based platforms. 692 693 config TEGRA_DEBUG_UARTE 694 bool "Kernel low-level debugging messages via Tegra UART E" 695 depends on ARCH_TEGRA 696 select DEBUG_TEGRA_UART 697 help 698 Say Y here if you want kernel low-level debugging support 699 on Tegra based platforms. 700 701 config DEBUG_SIRFPRIMA2_UART1 702 bool "Kernel low-level debugging messages via SiRFprimaII UART1" 703 depends on ARCH_PRIMA2 704 help 705 Say Y here if you want the debug print routines to direct 706 their output to the uart1 port on SiRFprimaII devices. 707 708 config DEBUG_SIRFMARCO_UART1 709 bool "Kernel low-level debugging messages via SiRFmarco UART1" 710 depends on ARCH_MARCO 711 help 712 Say Y here if you want the debug print routines to direct 713 their output to the uart1 port on SiRFmarco devices. 714 715 config STIH41X_DEBUG_ASC2 716 bool "Use StiH415/416 ASC2 UART for low-level debug" 717 depends on ARCH_STI 718 select DEBUG_STI_UART 719 help 720 Say Y here if you want kernel low-level debugging support 721 on STiH415/416 based platforms like b2000, which has 722 default UART wired up to ASC2. 723 724 If unsure, say N. 725 726 config STIH41X_DEBUG_SBC_ASC1 727 bool "Use StiH415/416 SBC ASC1 UART for low-level debug" 728 depends on ARCH_STI 729 select DEBUG_STI_UART 730 help 731 Say Y here if you want kernel low-level debugging support 732 on STiH415/416 based platforms like b2020. which has 733 default UART wired up to SBC ASC1. 734 735 If unsure, say N. 736 737 config DEBUG_U300_UART 738 bool "Kernel low-level debugging messages via U300 UART0" 739 depends on ARCH_U300 740 select DEBUG_UART_PL01X 741 help 742 Say Y here if you want the debug print routines to direct 743 their output to the uart port on U300 devices. 744 745 config DEBUG_UX500_UART 746 depends on ARCH_U8500 747 bool "Use Ux500 UART for low-level debug" 748 help 749 Say Y here if you want kernel low-level debugging support 750 on Ux500 based platforms. 751 752 config DEBUG_VEXPRESS_UART0_DETECT 753 bool "Autodetect UART0 on Versatile Express Cortex-A core tiles" 754 depends on ARCH_VEXPRESS && CPU_CP15_MMU 755 help 756 This option enables a simple heuristic which tries to determine 757 the motherboard's memory map variant (original or RS1) and then 758 choose the relevant UART0 base address. 759 760 Note that this will only work with standard A-class core tiles, 761 and may fail with non-standard SMM or custom software models. 762 763 config DEBUG_VEXPRESS_UART0_CA9 764 bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)" 765 depends on ARCH_VEXPRESS 766 select DEBUG_UART_PL01X 767 help 768 This option selects UART0 at 0x10009000. Except for custom models, 769 this applies only to the V2P-CA9 tile. 770 771 config DEBUG_VEXPRESS_UART0_RS1 772 bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)" 773 depends on ARCH_VEXPRESS 774 select DEBUG_UART_PL01X 775 help 776 This option selects UART0 at 0x1c090000. This applies to most 777 of the tiles using the RS1 memory map, including all new A-class 778 core tiles, FPGA-based SMMs and software models. 779 780 config DEBUG_VEXPRESS_UART0_CRX 781 bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)" 782 depends on ARCH_VEXPRESS && !MMU 783 select DEBUG_UART_PL01X 784 help 785 This option selects UART0 at 0xb0090000. This is appropriate for 786 Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7 787 788 config DEBUG_VT8500_UART0 789 bool "Use UART0 on VIA/Wondermedia SoCs" 790 depends on ARCH_VT8500 791 help 792 This option selects UART0 on VIA/Wondermedia System-on-a-chip 793 devices, including VT8500, WM8505, WM8650 and WM8850. 794 795 config DEBUG_LL_UART_NONE 796 bool "No low-level debugging UART" 797 depends on !ARCH_MULTIPLATFORM 798 help 799 Say Y here if your platform doesn't provide a UART option 800 above. This relies on your platform choosing the right UART 801 definition internally in order for low-level debugging to 802 work. 803 804 config DEBUG_ICEDCC 805 bool "Kernel low-level debugging via EmbeddedICE DCC channel" 806 help 807 Say Y here if you want the debug print routines to direct 808 their output to the EmbeddedICE macrocell's DCC channel using 809 co-processor 14. This is known to work on the ARM9 style ICE 810 channel and on the XScale with the PEEDI. 811 812 Note that the system will appear to hang during boot if there 813 is nothing connected to read from the DCC. 814 815 config DEBUG_SEMIHOSTING 816 bool "Kernel low-level debug output via semihosting I/O" 817 help 818 Semihosting enables code running on an ARM target to use 819 the I/O facilities on a host debugger/emulator through a 820 simple SVC call. The host debugger or emulator must have 821 semihosting enabled for the special svc call to be trapped 822 otherwise the kernel will crash. 823 824 This is known to work with OpenOCD, as well as 825 ARM's Fast Models, or any other controlling environment 826 that implements semihosting. 827 828 For more details about semihosting, please see 829 chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd. 830 831 config DEBUG_LL_UART_8250 832 bool "Kernel low-level debugging via 8250 UART" 833 help 834 Say Y here if you wish the debug print routes to direct 835 their output to an 8250 UART. You can use this option 836 to provide the parameters for the 8250 UART rather than 837 selecting one of the platform specific options above if 838 you know the parameters for the port. 839 840 This option is preferred over the platform specific 841 options; the platform specific options are deprecated 842 and will be soon removed. 843 844 config DEBUG_LL_UART_PL01X 845 bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART" 846 help 847 Say Y here if you wish the debug print routes to direct 848 their output to a PL01x Primecell UART. You can use 849 this option to provide the parameters for the UART 850 rather than selecting one of the platform specific 851 options above if you know the parameters for the port. 852 853 This option is preferred over the platform specific 854 options; the platform specific options are deprecated 855 and will be soon removed. 856 857endchoice 858 859config DEBUG_EXYNOS_UART 860 bool 861 862config DEBUG_OMAP2PLUS_UART 863 bool 864 depends on ARCH_OMAP2PLUS 865 866config DEBUG_IMX_UART_PORT 867 int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \ 868 DEBUG_IMX25_UART || \ 869 DEBUG_IMX21_IMX27_UART || \ 870 DEBUG_IMX31_UART || \ 871 DEBUG_IMX35_UART || \ 872 DEBUG_IMX51_UART || \ 873 DEBUG_IMX53_UART || \ 874 DEBUG_IMX6Q_UART || \ 875 DEBUG_IMX6SL_UART 876 default 1 877 depends on ARCH_MXC 878 help 879 Choose UART port on which kernel low-level debug messages 880 should be output. 881 882config DEBUG_TEGRA_UART 883 bool 884 depends on ARCH_TEGRA 885 886config DEBUG_STI_UART 887 bool 888 depends on ARCH_STI 889 890config DEBUG_LL_INCLUDE 891 string 892 default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250 893 default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X 894 default "debug/exynos.S" if DEBUG_EXYNOS_UART 895 default "debug/icedcc.S" if DEBUG_ICEDCC 896 default "debug/imx.S" if DEBUG_IMX1_UART || \ 897 DEBUG_IMX25_UART || \ 898 DEBUG_IMX21_IMX27_UART || \ 899 DEBUG_IMX31_UART || \ 900 DEBUG_IMX35_UART || \ 901 DEBUG_IMX51_UART || \ 902 DEBUG_IMX53_UART ||\ 903 DEBUG_IMX6Q_UART || \ 904 DEBUG_IMX6SL_UART 905 default "debug/msm.S" if DEBUG_MSM_UART1 || \ 906 DEBUG_MSM_UART2 || \ 907 DEBUG_MSM_UART3 || \ 908 DEBUG_MSM8660_UART || \ 909 DEBUG_MSM8960_UART 910 default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART 911 default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1 912 default "debug/sti.S" if DEBUG_STI_UART 913 default "debug/tegra.S" if DEBUG_TEGRA_UART 914 default "debug/ux500.S" if DEBUG_UX500_UART 915 default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT 916 default "debug/vf.S" if DEBUG_VF_UART 917 default "debug/vt8500.S" if DEBUG_VT8500_UART0 918 default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 919 default "mach/debug-macro.S" 920 921# Compatibility options for PL01x 922config DEBUG_UART_PL01X 923 def_bool ARCH_EP93XX || \ 924 ARCH_INTEGRATOR || \ 925 ARCH_SPEAR3XX || \ 926 ARCH_SPEAR6XX || \ 927 ARCH_SPEAR13XX || \ 928 ARCH_VERSATILE 929 930# Compatibility options for 8250 931config DEBUG_UART_8250 932 def_bool ARCH_DOVE || ARCH_EBSA110 || \ 933 (FOOTBRIDGE && !DEBUG_DC21285_PORT) || \ 934 ARCH_GEMINI || ARCH_IOP13XX || ARCH_IOP32X || \ 935 ARCH_IOP33X || ARCH_IXP4XX || ARCH_KIRKWOOD || \ 936 ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC 937 938config DEBUG_UART_PHYS 939 hex "Physical base address of debug UART" 940 default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0 941 default 0x01c28000 if DEBUG_SUNXI_UART0 942 default 0x01c28400 if DEBUG_SUNXI_UART1 943 default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1 944 default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2 945 default 0x02530c00 if DEBUG_KEYSTONE_UART0 946 default 0x02531000 if DEBUG_KEYSTONE_UART1 947 default 0x03010fe0 if ARCH_RPC 948 default 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1 949 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ 950 DEBUG_VEXPRESS_UART0_CA9 951 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT 952 default 0x10124000 if DEBUG_RK3X_UART0 953 default 0x10126000 if DEBUG_RK3X_UART1 954 default 0x101f1000 if ARCH_VERSATILE 955 default 0x101fb000 if DEBUG_NOMADIK_UART 956 default 0x16000000 if ARCH_INTEGRATOR 957 default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1 958 default 0x20060000 if DEBUG_RK29_UART0 959 default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 960 default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 961 default 0x20201000 if DEBUG_BCM2835 962 default 0x40090000 if ARCH_LPC32XX 963 default 0x40100000 if DEBUG_PXA_UART1 964 default 0x42000000 if ARCH_GEMINI 965 default 0x7c0003f8 if FOOTBRIDGE 966 default 0x80230000 if DEBUG_PICOXCELL_UART 967 default 0x80070000 if DEBUG_IMX23_UART 968 default 0x80074000 if DEBUG_IMX28_UART 969 default 0x808c0000 if ARCH_EP93XX 970 default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 971 default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX 972 default 0xc0013000 if DEBUG_U300_UART 973 default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN 974 default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN 975 default 0xd0000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX 976 default 0xd0012000 if DEBUG_MVEBU_UART 977 default 0xd4017000 if DEBUG_MMP_UART2 978 default 0xd4018000 if DEBUG_MMP_UART3 979 default 0xe0000000 if ARCH_SPEAR13XX 980 default 0xf0000be0 if ARCH_EBSA110 981 default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE 982 default 0xf1012000 if ARCH_DOVE || ARCH_KIRKWOOD || ARCH_MV78XX0 || \ 983 ARCH_ORION5X 984 default 0xf8b00000 if DEBUG_HI3716_UART 985 default 0xfcb00000 if DEBUG_HI3620_UART 986 default 0xfe800000 if ARCH_IOP32X 987 default 0xffc02000 if DEBUG_SOCFPGA_UART 988 default 0xffd82340 if ARCH_IOP13XX 989 default 0xfff36000 if DEBUG_HIGHBANK_UART 990 default 0xfffff700 if ARCH_IOP33X 991 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 992 DEBUG_UART_8250 || DEBUG_UART_PL01X 993 994config DEBUG_UART_VIRT 995 hex "Virtual base address of debug UART" 996 default 0xe0010fe0 if ARCH_RPC 997 default 0xf0000be0 if ARCH_EBSA110 998 default 0xf0009000 if DEBUG_CNS3XXX 999 default 0xf01fb000 if DEBUG_NOMADIK_UART 1000 default 0xf0201000 if DEBUG_BCM2835 1001 default 0xf11f1000 if ARCH_VERSATILE 1002 default 0xf1600000 if ARCH_INTEGRATOR 1003 default 0xf1c28000 if DEBUG_SUNXI_UART0 1004 default 0xf1c28400 if DEBUG_SUNXI_UART1 1005 default 0xf2100000 if DEBUG_PXA_UART1 1006 default 0xf4090000 if ARCH_LPC32XX 1007 default 0xf4200000 if ARCH_GEMINI 1008 default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 1009 default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1 1010 default 0xfb009000 if DEBUG_REALVIEW_STD_PORT 1011 default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT 1012 default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX 1013 default 0xfd000000 if ARCH_SPEAR13XX 1014 default 0xfd012000 if ARCH_MV78XX0 1015 default 0xfde12000 if ARCH_DOVE 1016 default 0xfe012000 if ARCH_ORION5X 1017 default 0xfe017000 if DEBUG_MMP_UART2 1018 default 0xfe018000 if DEBUG_MMP_UART3 1019 default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART 1020 default 0xfe230000 if DEBUG_PICOXCELL_UART 1021 default 0xfe800000 if ARCH_IOP32X 1022 default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HI3716_UART 1023 default 0xfeb24000 if DEBUG_RK3X_UART0 1024 default 0xfeb26000 if DEBUG_RK3X_UART1 1025 default 0xfeb30c00 if DEBUG_KEYSTONE_UART0 1026 default 0xfeb31000 if DEBUG_KEYSTONE_UART1 1027 default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE 1028 default 0xfed60000 if DEBUG_RK29_UART0 1029 default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 1030 default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 1031 default 0xfec02000 if DEBUG_SOCFPGA_UART 1032 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0 1033 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1 1034 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 1035 default 0xfed12000 if ARCH_KIRKWOOD 1036 default 0xfedc0000 if ARCH_EP93XX 1037 default 0xfee003f8 if FOOTBRIDGE 1038 default 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1 1039 default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 1040 default 0xfef36000 if DEBUG_HIGHBANK_UART 1041 default 0xfee82340 if ARCH_IOP13XX 1042 default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN 1043 default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN 1044 default 0xfefff700 if ARCH_IOP33X 1045 default 0xff003000 if DEBUG_U300_UART 1046 default DEBUG_UART_PHYS if !MMU 1047 depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \ 1048 DEBUG_UART_8250 || DEBUG_UART_PL01X 1049 1050config DEBUG_UART_8250_SHIFT 1051 int "Register offset shift for the 8250 debug UART" 1052 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1053 default 0 if FOOTBRIDGE || ARCH_IOP32X 1054 default 2 1055 1056config DEBUG_UART_8250_WORD 1057 bool "Use 32-bit accesses for 8250 UART" 1058 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1059 depends on DEBUG_UART_8250_SHIFT >= 2 1060 default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \ 1061 ARCH_KEYSTONE || \ 1062 DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \ 1063 DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1 1064 1065config DEBUG_UART_8250_FLOW_CONTROL 1066 bool "Enable flow control for 8250 UART" 1067 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1068 default y if ARCH_EBSA110 || FOOTBRIDGE || ARCH_GEMINI || ARCH_RPC 1069 1070config DEBUG_UNCOMPRESS 1071 bool 1072 depends on ARCH_MULTIPLATFORM || ARCH_MSM 1073 default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ 1074 (!DEBUG_TEGRA_UART || !ZBOOT_ROM) 1075 help 1076 This option influences the normal decompressor output for 1077 multiplatform kernels. Normally, multiplatform kernels disable 1078 decompressor output because it is not possible to know where to 1079 send the decompressor output. 1080 1081 When this option is set, the selected DEBUG_LL output method 1082 will be re-used for normal decompressor output on multiplatform 1083 kernels. 1084 1085 1086config UNCOMPRESS_INCLUDE 1087 string 1088 default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM 1089 default "mach/uncompress.h" 1090 1091config EARLY_PRINTK 1092 bool "Early printk" 1093 depends on DEBUG_LL 1094 help 1095 Say Y here if you want to have an early console using the 1096 kernel low-level debugging functions. Add earlyprintk to your 1097 kernel parameters to enable this console. 1098 1099config OC_ETM 1100 bool "On-chip ETM and ETB" 1101 depends on ARM_AMBA 1102 help 1103 Enables the on-chip embedded trace macrocell and embedded trace 1104 buffer driver that will allow you to collect traces of the 1105 kernel code. 1106 1107config ARM_KPROBES_TEST 1108 tristate "Kprobes test module" 1109 depends on KPROBES && MODULES 1110 help 1111 Perform tests of kprobes API and instruction set simulation. 1112 1113config PID_IN_CONTEXTIDR 1114 bool "Write the current PID to the CONTEXTIDR register" 1115 depends on CPU_COPY_V6 1116 help 1117 Enabling this option causes the kernel to write the current PID to 1118 the PROCID field of the CONTEXTIDR register, at the expense of some 1119 additional instructions during context switch. Say Y here only if you 1120 are planning to use hardware trace tools with this kernel. 1121 1122endmenu 1123