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