Kconfig.debug 63.4 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0
Linus Torvalds's avatar
Linus Torvalds committed
2

3 4 5 6
config ARM_PTDUMP_CORE
	def_bool n

config ARM_PTDUMP_DEBUGFS
7 8
	bool "Export kernel pagetable layout to userspace via debugfs"
	depends on DEBUG_KERNEL
9
	depends on MMU
10
	select ARM_PTDUMP_CORE
11
	select DEBUG_FS
12
	help
13 14 15 16 17 18 19
	  Say Y here if you want to show the kernel pagetable layout in a
	  debugfs file. This information is only useful for kernel developers
	  who are working in architecture specific areas of the kernel.
	  It is probably not a good idea to enable this feature in a production
	  kernel.
	  If in doubt, say "N"

20 21
config DEBUG_WX
	bool "Warn on W+X mappings at boot"
22
	depends on MMU
23
	select ARM_PTDUMP_CORE
24
	help
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
		Generate a warning if any W+X mappings are found at boot.

		This is useful for discovering cases where the kernel is leaving
		W+X mappings after applying NX, as such mappings are a security risk.

		Look for a message in dmesg output like this:

			arm/mm: Checked W+X mappings: passed, no W+X pages found.

		or like this, if the check failed:

			arm/mm: Checked W+X mappings: FAILED, <N> W+X pages found.

		Note that even if the check fails, your kernel is possibly
		still fine, as W+X mappings are not a security hole in
		themselves, what they do is that they make the exploitation
		of other unfixed kernel bugs easier.

		There is no runtime or memory usage effect of this option
		once the kernel has booted up - it's a one time check.

		If in doubt, say "Y".

48 49
choice
	prompt "Choose kernel unwinder"
50 51
	default UNWINDER_ARM if AEABI
	default UNWINDER_FRAME_POINTER if !AEABI
52 53 54 55 56 57 58
	help
	  This determines which method will be used for unwinding kernel stack
	  traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack,
	  livepatch, lockdep, and more.

config UNWINDER_FRAME_POINTER
	bool "Frame pointer unwinder"
59
	depends on !THUMB2_KERNEL
60 61
	select ARCH_WANT_FRAME_POINTERS
	select FRAME_POINTER
Linus Torvalds's avatar
Linus Torvalds committed
62
	help
63 64
	  This option enables the frame pointer unwinder for unwinding
	  kernel stack traces.
65

66 67
config UNWINDER_ARM
	bool "ARM EABI stack unwinder"
68
	depends on AEABI
69
	select ARM_UNWIND
70 71 72 73 74
	help
	  This option enables stack unwinding support in the kernel
	  using the information automatically generated by the
	  compiler. The resulting kernel image is slightly bigger but
	  the performance is not affected. Currently, this feature
75 76 77 78 79 80 81
	  only works with EABI compilers.

endchoice

config ARM_UNWIND
	bool

82 83 84 85 86 87 88 89 90 91 92
config BACKTRACE_VERBOSE
	bool "Verbose backtrace"
	depends on EXPERT
	help
	  When the kernel produces a warning or oops, the kernel prints a
	  trace of the call chain. This option controls whether we include
	  the numeric addresses or only include the symbolic information.

	  In most cases, say N here, unless you are intending to debug the
	  kernel and have access to the kernel binary image.

93 94
config FRAME_POINTER
	bool
Linus Torvalds's avatar
Linus Torvalds committed
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114

config DEBUG_USER
	bool "Verbose user fault messages"
	help
	  When a user program crashes due to an exception, the kernel can
	  print a brief message explaining what the problem was. This is
	  sometimes helpful for debugging but serves no purpose on a
	  production system. Most people should say N here.

	  In addition, you need to pass user_debug=N on the kernel command
	  line to enable this feature.  N consists of the sum of:

	      1 - undefined instruction events
	      2 - system calls
	      4 - invalid data aborts
	      8 - SIGSEGV faults
	     16 - SIGBUS faults

# These options are only for real kernel hackers who want to get their hands dirty.
config DEBUG_LL
115
	bool "Kernel low-level debugging functions (read help!)"
Linus Torvalds's avatar
Linus Torvalds committed
116 117
	depends on DEBUG_KERNEL
	help
118
	  Say Y here to include definitions of printascii, printch, printhex
Linus Torvalds's avatar
Linus Torvalds committed
119 120 121
	  in the kernel.  This is helpful if you are debugging code that
	  executes before the console is initialized.

122 123 124 125 126
	  Note that selecting this option will limit the kernel to a single
	  UART definition, as specified below. Attempting to boot the kernel
	  image on a different platform *will not work*, so this option should
	  not be enabled for kernels that are intended to be portable.

127 128 129 130
choice
	prompt "Kernel low-level debugging port"
	depends on DEBUG_LL

131 132 133 134 135 136 137 138
	config DEBUG_ALPINE_UART0
		bool "Kernel low-level debugging messages via Alpine UART0"
		depends on ARCH_ALPINE
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Alpine based platforms.

139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
	config DEBUG_ASM9260_UART
		bool "Kernel low-level debugging via asm9260 UART"
		depends on MACH_ASM9260
		help
		  Say Y here if you want the debug print routines to direct
		  their output to an UART or USART port on asm9260 based
		  machines.

		    DEBUG_UART_PHYS | DEBUG_UART_VIRT

		    0x80000000      | 0xf0000000     | UART0
		    0x80004000      | 0xf0004000     | UART1
		    0x80008000      | 0xf0008000     | UART2
		    0x8000c000      | 0xf000c000     | UART3
		    0x80010000      | 0xf0010000     | UART4
		    0x80014000      | 0xf0014000     | UART5
		    0x80018000      | 0xf0018000     | UART6
		    0x8001c000      | 0xf001c000     | UART7
		    0x80020000      | 0xf0020000     | UART8
		    0x80024000      | 0xf0024000     | UART9

160
	config DEBUG_AT91_RM9200_DBGU
161
		bool "Kernel low-level debugging on AT91RM9200, AT91SAM9, SAM9X60 DBGU"
162
		select DEBUG_AT91_UART
163
		depends on SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60
164
		help
165 166 167
		  Say Y here if you want kernel low-level debugging support
		  on the DBGU port of:
		    at91rm9200, at91sam9260, at91sam9g20, at91sam9261,
168
		    at91sam9g10, at91sam9n12, at91sam9rl64, at91sam9x5, sam9x60
169

170 171 172 173 174 175 176 177 178
	config DEBUG_AT91_SAM9263_DBGU
		bool "Kernel low-level debugging on AT91SAM{9263,9G45,A5D3} DBGU"
		select DEBUG_AT91_UART
		depends on SOC_AT91SAM9 || SOC_SAMA5D3
		help
		  Say Y here if you want kernel low-level debugging support
		  on the DBGU port of:
		    at91sam9263, at91sam9g45, at91sam9m10,
		    sama5d3
179

180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
	config DEBUG_AT91_SAMA5D2_UART1
		bool "Kernel low-level debugging on SAMA5D2 UART1"
		select DEBUG_AT91_UART
		depends on SOC_SAMA5D2
		help
		  Say Y here if you want kernel low-level debugging support
		  on the UART1 port of sama5d2.

	config DEBUG_AT91_SAMA5D4_USART3
		bool "Kernel low-level debugging on SAMA5D4 USART3"
		select DEBUG_AT91_UART
		depends on SOC_SAMA5D4
		help
		  Say Y here if you want kernel low-level debugging support
		  on the USART3 port of sama5d4.
195

196 197 198 199 200 201 202 203 204
	config DEBUG_AT91_SAMV7_USART1
		bool "Kernel low-level debugging via SAMV7 USART1"
		select DEBUG_AT91_UART
		depends on SOC_SAMV7
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the USART1 port on SAMV7 based
		  machines.

205 206 207 208 209 210 211 212
	config DEBUG_AT91_SAMA7G5_FLEXCOM3
		bool "Kernel low-level debugging on SAMA7G5 FLEXCOM3"
		select DEBUG_AT91_UART
		depends on SOC_SAMA7G5
		help
		  Say Y here if you want kernel low-level debugging support
		  on the FLEXCOM3 port of SAMA7G5.

213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
	config DEBUG_AT91_LAN966_FLEXCOM
		bool "Kernel low-level debugging on LAN966 FLEXCOM USART"
		select DEBUG_AT91_UART
		depends on SOC_LAN966
		help
		Say Y here if you want kernel low-level debugging support
		on the FLEXCOM port of LAN966.

		DEBUG_UART_PHYS | DEBUG_UART_VIRT

		0xe0040200      | 0xfd040200     | FLEXCOM0
		0xe0044200      | 0xfd044200     | FLEXCOM1
		0xe0060200      | 0xfd060200     | FLEXCOM2
		0xe0064200      | 0xfd064200     | FLEXCOM3
		0xe0070200      | 0xfd070200     | FLEXCOM4

		By default, enabling FLEXCOM3 port. Based on requirement, use
		DEBUG_UART_PHYS and DEBUG_UART_VIRT configurations from above
		table.

233 234
	config DEBUG_BCM2835
		bool "Kernel low-level debugging on BCM2835 PL011 UART"
235 236 237 238 239 240
		depends on ARCH_BCM2835 && ARCH_MULTI_V6
		select DEBUG_UART_PL01X

	config DEBUG_BCM2836
		bool "Kernel low-level debugging on BCM2836 PL011 UART"
		depends on ARCH_BCM2835 && ARCH_MULTI_V7
241
		select DEBUG_UART_PL01X
242

243
	config DEBUG_BCM_5301X
244 245
		bool "Kernel low-level debugging on BCM5301X/NSP UART1"
		depends on ARCH_BCM_5301X || ARCH_BCM_NSP
246
		select DEBUG_UART_8250
247

248 249 250 251 252
	config DEBUG_BCM_HR2
		bool "Kernel low-level debugging on Hurricane 2 UART2"
		depends on ARCH_BCM_HR2
		select DEBUG_UART_8250

253 254 255 256 257 258 259 260
	config DEBUG_BCM_IPROC_UART3
		bool "Kernel low-level debugging on BCM IPROC UART3"
		depends on ARCH_BCM_CYGNUS
		select DEBUG_UART_8250
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the third serial port on these devices.

261 262
	config DEBUG_BCM_KONA_UART
		bool "Kernel low-level debugging messages via BCM KONA UART"
263
		depends on ARCH_BCM_MOBILE
264 265 266 267 268 269 270 271
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Broadcom SoC platforms.
		  This low level debug works for Broadcom
		  mobile SoCs in the Kona family of chips (e.g. bcm28155,
		  bcm11351, etc...)

272
	config DEBUG_BCM63XX_UART
273
		bool "Kernel low-level debugging on BCM63XX UART"
274
		depends on ARCH_BCMBCA
275

276 277 278 279 280 281 282 283
	config DEBUG_BERLIN_UART
		bool "Marvell Berlin SoC Debug UART"
		depends on ARCH_BERLIN
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Marvell Berlin SoC based platforms.

284 285 286 287 288
	config DEBUG_BRCMSTB_UART
		bool "Use BRCMSTB UART for low-level debug"
		depends on ARCH_BRCMSTB
		help
		  Say Y here if you want the debug print routines to direct
289 290 291
		  their output to the first serial port on these devices. The
		  UART physical and virtual address is automatically provided
		  based on the chip identification register value.
292 293 294 295

		  If you have a Broadcom STB chip and would like early print
		  messages to appear over the UART, select this option.

296 297 298 299 300 301
	config DEBUG_CLPS711X_UART1
		bool "Kernel low-level debugging messages via UART1"
		depends on ARCH_CLPS711X
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the first serial port on these devices.
302 303 304 305 306 307 308 309

	config DEBUG_CLPS711X_UART2
		bool "Kernel low-level debugging messages via UART2"
		depends on ARCH_CLPS711X
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the second serial port on these devices.

310 311 312
	config DEBUG_DAVINCI_DA8XX_UART1
		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
		depends on ARCH_DAVINCI_DA8XX
313
		select DEBUG_UART_8250
314 315 316 317 318 319 320
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 serial port on DaVinci DA8XX devices.

	config DEBUG_DAVINCI_DA8XX_UART2
		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
		depends on ARCH_DAVINCI_DA8XX
321
		select DEBUG_UART_8250
322 323 324 325
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART2 serial port on DaVinci DA8XX devices.

326 327 328 329 330 331 332
	config DEBUG_DC21285_PORT
		bool "Kernel low-level debugging messages via footbridge serial port"
		depends on FOOTBRIDGE
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port in the DC21285 (Footbridge).

333 334 335 336 337 338 339
	config DEBUG_DIGICOLOR_UA0
		bool "Kernel low-level debugging messages via Digicolor UA0"
		depends on ARCH_DIGICOLOR
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the UA0 serial port in the CX92755.

340 341 342 343 344 345 346 347
	config DEBUG_EP93XX
		bool "Kernel low-level debugging messages via ep93xx UART"
		depends on ARCH_EP93XX
		select DEBUG_UART_PL01X
		help
		  Say Y here if you want kernel low-level debugging support
		  on Cirrus Logic EP93xx based platforms.

348 349 350
	config DEBUG_FOOTBRIDGE_COM1
		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
		depends on FOOTBRIDGE
351
		select DEBUG_UART_8250
352 353 354 355
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the 8250 at PCI COM1.

356 357 358 359 360 361 362 363
	config DEBUG_GEMINI
		bool "Kernel low-level debugging messages via Cortina Systems Gemini UART"
		depends on ARCH_GEMINI
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Cortina Gemini based platforms.

364 365 366 367 368 369 370 371
	config DEBUG_HI3620_UART
		bool "Hisilicon HI3620 Debug UART"
		depends on ARCH_HI3xxx
		select DEBUG_UART_PL01X
		help
		  Say Y here if you want kernel low-level debugging support
		  on HI3620 UART.

372 373 374
	config DEBUG_HIGHBANK_UART
		bool "Kernel low-level debugging messages via Highbank UART"
		depends on ARCH_HIGHBANK
375
		select DEBUG_UART_PL01X
376 377 378 379
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the UART on Highbank based devices.

Wang Long's avatar
Wang Long committed
380 381 382 383 384 385 386 387
	config DEBUG_HIP01_UART
		bool "Hisilicon Hip01 Debug UART"
		depends on ARCH_HIP01
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on HIP01 UART.

388 389 390 391 392 393 394 395
	config DEBUG_HIP04_UART
		bool "Hisilicon HiP04 Debug UART"
		depends on ARCH_HIP04
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on HIP04 UART.

396 397 398
	config DEBUG_HIX5HD2_UART
		bool "Hisilicon Hix5hd2 Debug UART"
		depends on ARCH_HIX5HD2
399
		select DEBUG_UART_PL01X
400
		help
401 402
		  Say Y here if you want kernel low-level debugging support
		  on Hix5hd2 UART.
403

404 405 406 407 408 409 410 411 412 413
	config DEBUG_IMX1_UART
		bool "i.MX1 Debug UART"
		depends on SOC_IMX1
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX1.

	config DEBUG_IMX23_UART
		bool "i.MX23 Debug UART"
		depends on SOC_IMX23
414
		select DEBUG_UART_PL01X
415 416 417 418 419 420 421 422 423 424 425
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX23.

	config DEBUG_IMX25_UART
		bool "i.MX25 Debug UART"
		depends on SOC_IMX25
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX25.

426 427 428
	config DEBUG_IMX27_UART
		bool "i.MX27 Debug UART"
		depends on SOC_IMX27
429 430
		help
		  Say Y here if you want kernel low-level debugging support
431
		  on i.MX27.
432 433 434 435

	config DEBUG_IMX28_UART
		bool "i.MX28 Debug UART"
		depends on SOC_IMX28
436
		select DEBUG_UART_PL01X
437 438 439 440
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX28.

441 442 443
	config DEBUG_IMX31_UART
		bool "i.MX31 Debug UART"
		depends on SOC_IMX31
444 445
		help
		  Say Y here if you want kernel low-level debugging support
446 447 448 449 450 451 452 453
		  on i.MX31.

	config DEBUG_IMX35_UART
		bool "i.MX35 Debug UART"
		depends on SOC_IMX35
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX35.
454

455 456 457 458 459 460 461
	config DEBUG_IMX50_UART
		bool "i.MX50 Debug UART"
		depends on SOC_IMX50
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX50.

462 463 464 465 466 467 468
	config DEBUG_IMX51_UART
		bool "i.MX51 Debug UART"
		depends on SOC_IMX51
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX51.

469 470 471
	config DEBUG_IMX53_UART
		bool "i.MX53 Debug UART"
		depends on SOC_IMX53
472 473
		help
		  Say Y here if you want kernel low-level debugging support
474
		  on i.MX53.
475

476
	config DEBUG_IMX6Q_UART
477
		bool "i.MX6Q/DL Debug UART"
478 479 480
		depends on SOC_IMX6Q
		help
		  Say Y here if you want kernel low-level debugging support
481
		  on i.MX6Q/DL.
482

483 484 485 486 487 488 489
	config DEBUG_IMX6SL_UART
		bool "i.MX6SL Debug UART"
		depends on SOC_IMX6SL
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX6SL.

490 491 492 493 494 495 496
	config DEBUG_IMX6SX_UART
		bool "i.MX6SX Debug UART"
		depends on SOC_IMX6SX
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX6SX.

497 498 499 500 501 502 503
	config DEBUG_IMX6UL_UART
		bool "i.MX6UL Debug UART"
		depends on SOC_IMX6UL
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX6UL.

504 505 506 507 508 509 510
	config DEBUG_IMX7D_UART
		bool "i.MX7D Debug UART"
		depends on SOC_IMX7D
		help
		  Say Y here if you want kernel low-level debugging support
		  on i.MX7D.

511 512 513 514 515 516 517 518
	config DEBUG_INTEGRATOR
		bool "Kernel low-level debugging messages via ARM Integrator UART"
		depends on ARCH_INTEGRATOR
		select DEBUG_UART_PL01X
		help
		  Say Y here if you want kernel low-level debugging support
		  on ARM Integrator platforms.

519 520 521
	config DEBUG_KEYSTONE_UART0
		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
		depends on ARCH_KEYSTONE
522
		select DEBUG_UART_8250
523 524 525 526 527 528 529
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART0 serial port on KEYSTONE2 devices.

	config DEBUG_KEYSTONE_UART1
		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
		depends on ARCH_KEYSTONE
530
		select DEBUG_UART_8250
531 532 533 534
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 serial port on KEYSTONE2 devices.

535 536 537 538 539 540 541 542
	config DEBUG_LPC18XX_UART0
		bool "Kernel low-level debugging via LPC18xx/43xx UART0"
		depends on ARCH_LPC18XX
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on NXP LPC18xx/43xx UART0.

543 544 545 546 547 548 549 550
	config DEBUG_LPC32XX
		bool "Kernel low-level debugging messages via NXP LPC32xx UART"
		depends on ARCH_LPC32XX
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on NXP LPC32xx based platforms.

551 552 553 554 555 556 557
	config DEBUG_MESON_UARTAO
		bool "Kernel low-level debugging via Meson6 UARTAO"
		depends on ARCH_MESON
		help
		  Say Y here if you want kernel low-lever debugging support
		  on Amlogic Meson6 based platforms on the UARTAO.

558 559 560
	config DEBUG_MMP_UART2
		bool "Kernel low-level debugging message via MMP UART2"
		depends on ARCH_MMP
561
		select DEBUG_UART_8250
562 563 564 565 566 567 568
		help
		  Say Y here if you want kernel low-level debugging support
		  on MMP UART2.

	config DEBUG_MMP_UART3
		bool "Kernel low-level debugging message via MMP UART3"
		depends on ARCH_MMP
569
		select DEBUG_UART_8250
570 571 572 573
		help
		  Say Y here if you want kernel low-level debugging support
		  on MMP UART3.

574 575
	config DEBUG_MVEBU_UART0
		bool "Kernel low-level debugging messages via MVEBU UART0 (old bootloaders)"
576
		depends on ARCH_MVEBU
577
		depends on ARCH_MVEBU && CPU_V7
578
		select DEBUG_UART_8250
579 580
		help
		  Say Y here if you want kernel low-level debugging support
581
		  on MVEBU based platforms on UART0.
582

583 584 585 586 587 588 589
		  This option should be used with the old bootloaders
		  that left the internal registers mapped at
		  0xd0000000. As of today, this is the case on
		  platforms such as the Globalscale Mirabox or the
		  Plathome OpenBlocks AX3, when using the original
		  bootloader.

590 591 592 593
		  This option will not work on older Marvell platforms
		  (Kirkwood, Dove, MV78xx0, Orion5x), which should pick
		  the "new bootloader" variant.

594 595 596 597
		  If the wrong DEBUG_MVEBU_UART* option is selected,
		  when u-boot hands over to the kernel, the system
		  silently crashes, with no serial output at all.

598 599
	config DEBUG_MVEBU_UART0_ALTERNATE
		bool "Kernel low-level debugging messages via MVEBU UART0 (new bootloaders)"
600
		depends on ARCH_MVEBU || ARCH_DOVE || ARCH_MV78XX0 || ARCH_ORION5X
601
		select DEBUG_UART_8250
602 603
		help
		  Say Y here if you want kernel low-level debugging support
604 605 606
		  on MVEBU based platforms on UART0. (Armada XP, Armada 3xx,
		  Kirkwood, Dove, MV78xx0, Orion5x).

607 608 609 610 611 612 613 614

		  This option should be used with the new bootloaders
		  that remap the internal registers at 0xf1000000.

		  If the wrong DEBUG_MVEBU_UART* option is selected,
		  when u-boot hands over to the kernel, the system
		  silently crashes, with no serial output at all.

615 616
	config DEBUG_MVEBU_UART1_ALTERNATE
		bool "Kernel low-level debugging messages via MVEBU UART1 (new bootloaders)"
617
		depends on ARCH_MVEBU
618
		select DEBUG_UART_8250
619 620
		help
		  Say Y here if you want kernel low-level debugging support
621 622
		  on MVEBU based platforms on UART1. (Armada XP, Armada 3xx,
		  Kirkwood, Dove, MV78xx0, Orion5x).
623 624 625

		  This option should be used with the new bootloaders
		  that remap the internal registers at 0xf1000000.
626 627
		  All of the older (pre Armada XP/370) platforms also use
		  this address, regardless of the boot loader version.
628 629 630 631 632

		  If the wrong DEBUG_MVEBU_UART* option is selected,
		  when u-boot hands over to the kernel, the system
		  silently crashes, with no serial output at all.

633 634 635 636 637 638 639 640
	config DEBUG_MSTARV7_PMUART
		bool "Kernel low-level debugging messages via MSTARV7 PM UART"
		depends on ARCH_MSTARV7
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  for MSTAR ARMv7-based platforms on PM UART.

641 642 643 644
	config DEBUG_MT6589_UART0
		bool "Mediatek mt6589 UART0"
		depends on ARCH_MEDIATEK
		select DEBUG_UART_8250
645 646
		help
		  Say Y here if you want kernel low-level debugging support
647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663
		  for Mediatek mt6589 based platforms on UART0.

	config DEBUG_MT8127_UART0
		bool "Mediatek mt8127/mt6592 UART0"
		depends on ARCH_MEDIATEK
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  for Mediatek mt8127 based platforms on UART0.

	config DEBUG_MT8135_UART3
		bool "Mediatek mt8135 UART3"
		depends on ARCH_MEDIATEK
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  for Mediatek mt8135 based platforms on UART3.
664

665 666 667
	config DEBUG_NOMADIK_UART
		bool "Kernel low-level debugging messages via NOMADIK UART"
		depends on ARCH_NOMADIK
668
		select DEBUG_UART_PL01X
669 670 671 672
		help
		  Say Y here if you want kernel low-level debugging support
		  on NOMADIK based platforms.

673 674 675
	config DEBUG_NSPIRE_CLASSIC_UART
		bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
		depends on ARCH_NSPIRE
676
		select DEBUG_UART_8250
677 678 679 680 681 682 683
		help
		  Say Y here if you want kernel low-level debugging support
		  on TI-NSPIRE classic models.

	config DEBUG_NSPIRE_CX_UART
		bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
		depends on ARCH_NSPIRE
684
		select DEBUG_UART_PL01X
685 686 687 688
		help
		  Say Y here if you want kernel low-level debugging support
		  on TI-NSPIRE CX models.

689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712
	config DEBUG_OMAP1UART1
		bool "Kernel low-level debugging via OMAP1 UART1"
		depends on ARCH_OMAP1
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on OMAP1 based platforms (except OMAP730) on the UART1.

	config DEBUG_OMAP1UART2
		bool "Kernel low-level debugging via OMAP1 UART2"
		depends on ARCH_OMAP1
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on OMAP1 based platforms (except OMAP730) on the UART2.

	config DEBUG_OMAP1UART3
		bool "Kernel low-level debugging via OMAP1 UART3"
		depends on ARCH_OMAP1
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on OMAP1 based platforms (except OMAP730) on the UART3.

713 714
	config DEBUG_OMAP2UART1
		bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
715
		depends on ARCH_OMAP2PLUS
716
		select DEBUG_UART_8250
717
		help
718 719 720 721 722 723
		  This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
		  omap3 torpedo and 3530 lv som.

	config DEBUG_OMAP2UART2
		bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
		depends on ARCH_OMAP2PLUS
724
		select DEBUG_UART_8250
725 726 727 728

	config DEBUG_OMAP2UART3
		bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
		depends on ARCH_OMAP2PLUS
729
		select DEBUG_UART_8250
730 731 732 733

	config DEBUG_OMAP3UART3
		bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
		depends on ARCH_OMAP2PLUS
734
		select DEBUG_UART_8250
735 736 737 738 739 740 741 742
		help
		  This covers at least cm_t3x, beagle, crane, devkit8000,
		  igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
		  and 3517evm.

	config DEBUG_OMAP4UART3
		bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
		depends on ARCH_OMAP2PLUS
743
		select DEBUG_UART_8250
744 745 746 747

	config DEBUG_OMAP3UART4
		bool "Kernel low-level debugging messages via OMAP36XX UART4"
		depends on ARCH_OMAP2PLUS
748
		select DEBUG_UART_8250
749 750 751 752

	config DEBUG_OMAP4UART4
		bool "Kernel low-level debugging messages via OMAP4/5 UART4"
		depends on ARCH_OMAP2PLUS
753
		select DEBUG_UART_8250
754 755 756 757

	config DEBUG_TI81XXUART1
		bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
		depends on ARCH_OMAP2PLUS
758
		select DEBUG_UART_8250
759 760 761 762

	config DEBUG_TI81XXUART2
		bool "Kernel low-level debugging messages via TI81XX UART2"
		depends on ARCH_OMAP2PLUS
763
		select DEBUG_UART_8250
764 765 766 767

	config DEBUG_TI81XXUART3
		bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
		depends on ARCH_OMAP2PLUS
768
		select DEBUG_UART_8250
769 770 771 772

	config DEBUG_AM33XXUART1
		bool "Kernel low-level debugging messages via AM33XX UART1"
		depends on ARCH_OMAP2PLUS
773
		select DEBUG_UART_8250
774 775 776 777 778

	config DEBUG_ZOOM_UART
		bool "Kernel low-level debugging messages via Zoom2/3 UART"
		depends on ARCH_OMAP2PLUS
		select DEBUG_OMAP2PLUS_UART
779

780 781 782
	config DEBUG_PXA_UART1
		depends on ARCH_PXA
		bool "Use PXA UART1 for low-level debug"
783
		select DEBUG_UART_8250
784 785 786 787
		help
		  Say Y here if you want kernel low-level debugging support
		  on PXA UART1.

788 789 790 791 792 793 794 795 796 797
	config DEBUG_QCOM_UARTDM
		bool "Kernel low-level debugging messages via QCOM UARTDM"
		depends on ARCH_QCOM
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on Qualcomm devices.

		  ARCH      DEBUG_UART_PHYS   DEBUG_UART_VIRT
		  APQ8064   0x16640000        0xf0040000
		  APQ8084   0xf995e000        0xfa75e000
798
		  IPQ4019   0x078af000        0xf78af000
799 800 801 802 803 804 805
		  MSM8X60   0x19c40000        0xf0040000
		  MSM8960   0x16440000        0xf0040000
		  MSM8974   0xf991e000        0xfa71e000

		  Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
		  options based on your needs.

806 807 808
	config DEBUG_REALVIEW_STD_PORT
		bool "RealView Default UART"
		depends on ARCH_REALVIEW
809
		select DEBUG_UART_PL01X
810 811 812 813 814 815 816 817
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the serial port on RealView EB, PB11MP, PBA8
		  and PBX platforms.

	config DEBUG_REALVIEW_PB1176_PORT
		bool "RealView PB1176 UART"
		depends on MACH_REALVIEW_PB1176
818
		select DEBUG_UART_PL01X
819 820 821 822 823
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the standard serial port on the RealView
		  PB1176 platform.

824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847
	config DEBUG_RV1108_UART0
		bool "Kernel low-level debugging messages via Rockchip RV1108 UART0"
		depends on ARCH_ROCKCHIP
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
                  on Rockchip RV1108 based platforms.

	config DEBUG_RV1108_UART1
		bool "Kernel low-level debugging messages via Rockchip RV1108 UART1"
		depends on ARCH_ROCKCHIP
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip RV1108 based platforms.

	config DEBUG_RV1108_UART2
		bool "Kernel low-level debugging messages via Rockchip RV1108 UART2"
		depends on ARCH_ROCKCHIP
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip RV1108 based platforms.

848 849 850
	config DEBUG_RK29_UART0
		bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
		depends on ARCH_ROCKCHIP
851
		select DEBUG_UART_8250
852 853 854 855 856 857 858
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK29_UART1
		bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
		depends on ARCH_ROCKCHIP
859
		select DEBUG_UART_8250
860 861 862 863 864 865 866
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK29_UART2
		bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
		depends on ARCH_ROCKCHIP
867
		select DEBUG_UART_8250
868 869 870 871 872
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK3X_UART0
873
		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART0"
874
		depends on ARCH_ROCKCHIP
875
		select DEBUG_UART_8250
876 877 878 879 880
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK3X_UART1
881
		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART1"
882
		depends on ARCH_ROCKCHIP
883
		select DEBUG_UART_8250
884 885 886 887 888
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK3X_UART2
889
		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART2"
890
		depends on ARCH_ROCKCHIP
891
		select DEBUG_UART_8250
892 893 894 895 896
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

	config DEBUG_RK3X_UART3
897
		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART3"
898
		depends on ARCH_ROCKCHIP
899
		select DEBUG_UART_8250
900 901 902 903
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip based platforms.

904 905 906 907 908 909 910 911
	config DEBUG_RK32_UART2
		bool "Kernel low-level debugging messages via Rockchip RK32 UART2"
		depends on ARCH_ROCKCHIP
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Rockchip RK32xx based platforms.

912 913 914 915 916 917 918
	config DEBUG_R7S72100_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R7S72100"
		depends on ARCH_R7S72100
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas RZ/A1H (R7S72100).

919 920 921 922 923 924 925 926 927 928 929 930 931 932
	config DEBUG_R7S9210_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R7S9210"
		depends on ARCH_R7S9210
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas RZ/A2M (R7S9210).

	config DEBUG_R7S9210_SCIF4
		bool "Kernel low-level debugging messages via SCIF4 on R7S9210"
		depends on ARCH_R7S9210
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF4 on Renesas RZ/A2M (R7S9210).

933 934 935 936 937 938 939 940 941 942 943 944 945 946 947
	config DEBUG_RCAR_GEN1_SCIF0
		bool "Kernel low-level debugging messages via SCIF0 on R8A7778"
		depends on ARCH_R8A7778
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF0 on Renesas R-Car M1A (R8A7778).

	config DEBUG_RCAR_GEN1_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R8A7779"
		depends on ARCH_R8A7779
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas R-Car H1 (R8A7779).

	config DEBUG_RCAR_GEN2_SCIF0
948
		bool "Kernel low-level debugging messages via SCIF0 on R-Car Gen2 and RZ/G1"
949 950
		depends on ARCH_R8A7743 || ARCH_R8A7744 || ARCH_R8A7790 || \
			ARCH_R8A7791 || ARCH_R8A7792 || ARCH_R8A7793
951 952
		help
		  Say Y here if you want kernel low-level debugging support
953 954 955
		  via SCIF0 on Renesas RZ/G1M (R8A7743), RZ/G1N (R8A7744),
		  R-Car H2 (R8A7790), M2-W (R8A7791), V2H (R8A7792), or
		  M2-N (R8A7793).
956

957 958 959 960 961 962 963
	config DEBUG_RCAR_GEN2_SCIF1
		bool "Kernel low-level debugging messages via SCIF1 on R8A77470"
		depends on ARCH_R8A77470
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF1 on Renesas RZ/G1C (R8A77470).

964 965 966 967 968 969 970
	config DEBUG_RCAR_GEN2_SCIF2
		bool "Kernel low-level debugging messages via SCIF2 on R8A7794"
		depends on ARCH_R8A7794
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF2 on Renesas R-Car E2 (R8A7794).

971 972 973 974 975 976 977
	config DEBUG_RCAR_GEN2_SCIF4
		bool "Kernel low-level debugging messages via SCIF4 on R8A7745"
		depends on ARCH_R8A7745
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIF4 on Renesas RZ/G1E (R8A7745).

978 979 980 981 982 983 984
	config DEBUG_RCAR_GEN2_SCIFA2
		bool "Kernel low-level debugging messages via SCIFA2 on R8A7742"
		depends on ARCH_R8A7742
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA2 on Renesas RZ/G1H (R8A7742).

985
	config DEBUG_RMOBILE_SCIFA0
986 987
		bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4"
		depends on ARCH_R8A73A4
988 989
		help
		  Say Y here if you want kernel low-level debugging support
990
		  via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4).
991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005

	config DEBUG_RMOBILE_SCIFA1
		bool "Kernel low-level debugging messages via SCIFA1 on R8A7740"
		depends on ARCH_R8A7740
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA1 on Renesas R-Mobile A1 (R8A7740).

	config DEBUG_RMOBILE_SCIFA4
		bool "Kernel low-level debugging messages via SCIFA4 on SH73A0"
		depends on ARCH_SH73A0
		help
		  Say Y here if you want kernel low-level debugging support
		  via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0).

1006
	config DEBUG_S3C_UART0
1007
		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1008
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1009
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1010
		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1011
		select DEBUG_S5PV210_UART if ARCH_S5PV210
1012
		bool "Use Samsung S3C UART 0 for low-level debug"
1013 1014
		help
		  Say Y here if you want the debug print routines to direct
1015 1016
		  their output to UART 0. The port must have been initialised
		  by the boot-loader before use.
1017

1018
	config DEBUG_S3C_UART1
1019
		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1020
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1021
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1022
		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1023
		select DEBUG_S5PV210_UART if ARCH_S5PV210
1024
		bool "Use Samsung S3C UART 1 for low-level debug"
1025 1026
		help
		  Say Y here if you want the debug print routines to direct
1027 1028
		  their output to UART 1. The port must have been initialised
		  by the boot-loader before use.
1029

1030
	config DEBUG_S3C_UART2
1031
		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1032
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1033
		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1034
		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1035
		select DEBUG_S5PV210_UART if ARCH_S5PV210
1036
		bool "Use Samsung S3C UART 2 for low-level debug"
1037 1038
		help
		  Say Y here if you want the debug print routines to direct
1039 1040
		  their output to UART 2. The port must have been initialised
		  by the boot-loader before use.
1041

1042
	config DEBUG_S3C_UART3
1043
		depends on ARCH_EXYNOS || ARCH_S5PV210
1044
		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1045
		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1046
		select DEBUG_S5PV210_UART if ARCH_S5PV210
1047
		bool "Use Samsung S3C UART 3 for low-level debug"
1048 1049 1050 1051 1052
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 3. The port must have been initialised
		  by the boot-loader before use.

1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079
	config DEBUG_S3C2410_UART0
		depends on ARCH_S3C24XX
		select DEBUG_S3C2410_UART
		bool "Use S3C2410/S3C2412 UART 0 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 0. The port must have been initialised
		  by the boot-loader before use.

	config DEBUG_S3C2410_UART1
		depends on ARCH_S3C24XX
		select DEBUG_S3C2410_UART
		bool "Use S3C2410/S3C2412 UART 1 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 1. The port must have been initialised
		  by the boot-loader before use.

	config DEBUG_S3C2410_UART2
		depends on ARCH_S3C24XX
		select DEBUG_S3C2410_UART
		bool "Use S3C2410/S3C2412 UART 2 for low-level debug"
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART 2. The port must have been initialised
		  by the boot-loader before use.

1080 1081 1082 1083 1084 1085 1086 1087
	config DEBUG_SA1100
		depends on ARCH_SA1100
		bool "Use SA1100 UARTs for low-level debug"
		help
		  Say Y here if you want kernel low-level debugging support
		  on SA-11x0 UART ports. The kernel will check for the first
		  enabled UART in a sequence 3-1-2.

1088 1089 1090 1091 1092 1093 1094 1095
	config DEBUG_SD5203_UART
		bool "Hisilicon SD5203 Debug UART"
		depends on ARCH_SD5203
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on SD5203 UART.

1096
	config DEBUG_SOCFPGA_UART0
1097
		depends on ARCH_INTEL_SOCFPGA
1098
		bool "Use SOCFPGA UART0 for low-level debug"
1099
		select DEBUG_UART_8250
1100 1101
		help
		  Say Y here if you want kernel low-level debugging support
1102 1103
		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.

1104
	config DEBUG_SOCFPGA_ARRIA10_UART1
1105
		depends on ARCH_INTEL_SOCFPGA
1106
		bool "Use SOCFPGA Arria10 UART1 for low-level debug"
1107 1108 1109 1110 1111
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on SOCFPGA(Arria 10) based platforms.

1112
	config DEBUG_SOCFPGA_CYCLONE5_UART1
1113
		depends on ARCH_INTEL_SOCFPGA
1114 1115 1116 1117 1118
		bool "Use SOCFPGA Cyclone 5 UART1 for low-level debug"
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.
1119

1120 1121 1122 1123 1124 1125 1126 1127
	config DEBUG_SUN9I_UART0
		bool "Kernel low-level debugging messages via sun9i UART0"
		depends on MACH_SUN9I
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Allwinner A80 based platforms on the UART0.

1128 1129 1130
	config DEBUG_SUNXI_UART0
		bool "Kernel low-level debugging messages via sunXi UART0"
		depends on ARCH_SUNXI
1131
		select DEBUG_UART_8250
1132 1133 1134 1135
		help
		  Say Y here if you want kernel low-level debugging support
		  on Allwinner A1X based platforms on the UART0.

1136 1137 1138
	config DEBUG_SUNXI_UART1
		bool "Kernel low-level debugging messages via sunXi UART1"
		depends on ARCH_SUNXI
1139
		select DEBUG_UART_8250
1140 1141 1142 1143
		help
		  Say Y here if you want kernel low-level debugging support
		  on Allwinner A1X based platforms on the UART1.

1144 1145 1146 1147 1148 1149 1150 1151
	config DEBUG_SUNXI_R_UART
		bool "Kernel low-level debugging messages via sunXi R_UART"
		depends on MACH_SUN6I || MACH_SUN8I
		select DEBUG_UART_8250
		help
		  Say Y here if you want kernel low-level debugging support
		  on Allwinner A31/A23 based platforms on the R_UART.

1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167
	config DEBUG_SPEAR3XX
		bool "Kernel low-level debugging messages via ST SPEAr 3xx/6xx UART"
		depends on ARCH_SPEAR3XX || ARCH_SPEAR6XX
		select DEBUG_UART_PL01X
		help
		  Say Y here if you want kernel low-level debugging support
		  on ST SPEAr based platforms.

	config DEBUG_SPEAR13XX
		bool "Kernel low-level debugging messages via ST SPEAr 13xx UART"
		depends on ARCH_SPEAR13XX
		select DEBUG_UART_PL01X
		help
		  Say Y here if you want kernel low-level debugging support
		  on ST SPEAr13xx based platforms.

1168
	config DEBUG_STIH41X_ASC2
1169 1170 1171 1172 1173 1174 1175 1176 1177
		bool "Use StiH415/416 ASC2 UART for low-level debug"
		depends on ARCH_STI
		help
		  Say Y here if you want kernel low-level debugging support
		  on STiH415/416 based platforms like b2000, which has
		  default UART wired up to ASC2.

		  If unsure, say N.

1178
	config DEBUG_STIH41X_SBC_ASC1
1179
		bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
1180 1181 1182
		depends on ARCH_STI
		help
		  Say Y here if you want kernel low-level debugging support
1183 1184
		  on STiH415/416 based platforms like b2020. which has
		  default UART wired up to SBC ASC1.
1185 1186 1187

		  If unsure, say N.

1188 1189 1190 1191 1192 1193 1194 1195 1196 1197
	config DEBUG_STIH418_SBC_ASC0
		bool "Use StiH418 SBC ASC0 UART for low-level debug"
		depends on ARCH_STI
		help
		  Say Y here if you want kernel low-level debugging support
		  on STiH418 based platforms which has default UART wired
		  up to SBC ASC0.

		  If unsure, say N.

1198 1199
	config STM32F4_DEBUG_UART
		bool "Use STM32F4 UART for low-level debug"
1200
		depends on MACH_STM32F429 || MACH_STM32F469
1201 1202 1203 1204
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32F4 based platforms, which default UART is wired on
1205 1206
		  USART1, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS.
1207 1208 1209 1210 1211

		  If unsure, say N.

	config STM32F7_DEBUG_UART
		bool "Use STM32F7 UART for low-level debug"
1212
		depends on MACH_STM32F746 || MACH_STM32F769
1213 1214 1215 1216
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32F7 based platforms, which default UART is wired on
1217 1218
		  USART1, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS.
1219 1220 1221

		  If unsure, say N.

1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233
	config STM32H7_DEBUG_UART
		bool "Use STM32H7 UART for low-level debug"
		depends on MACH_STM32H743
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32H7 based platforms, which default UART is wired on
		  USART1, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS.

		  If unsure, say N.

1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245
	config STM32MP1_DEBUG_UART
		bool "Use STM32MP1 UART for low-level debug"
		depends on MACH_STM32MP157
		select DEBUG_STM32_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on STM32MP1 based platforms, wich default UART is wired on
		  UART4, but another UART instance can be selected by modifying
		  CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.

		  If unsure, say N.

1246 1247
	config TEGRA_DEBUG_UART_AUTO_ODMDATA
		bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
1248
		depends on ARCH_TEGRA
1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293
		select DEBUG_TEGRA_UART
		help
		  Automatically determines which UART to use for low-level
		  debug based on the ODMDATA value. This value is part of
		  the BCT, and is written to the boot memory device using
		  nvflash, or other flashing tool.  When bits 19:18 are 3,
		  then bits 17:15 indicate which UART to use; 0/1/2/3/4
		  are UART A/B/C/D/E.

	config TEGRA_DEBUG_UARTA
		bool "Kernel low-level debugging messages via Tegra UART A"
		depends on ARCH_TEGRA
		select DEBUG_TEGRA_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

	config TEGRA_DEBUG_UARTB
		bool "Kernel low-level debugging messages via Tegra UART B"
		depends on ARCH_TEGRA
		select DEBUG_TEGRA_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

	config TEGRA_DEBUG_UARTC
		bool "Kernel low-level debugging messages via Tegra UART C"
		depends on ARCH_TEGRA
		select DEBUG_TEGRA_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

	config TEGRA_DEBUG_UARTD
		bool "Kernel low-level debugging messages via Tegra UART D"
		depends on ARCH_TEGRA
		select DEBUG_TEGRA_UART
		help
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

	config TEGRA_DEBUG_UARTE
		bool "Kernel low-level debugging messages via Tegra UART E"
		depends on ARCH_TEGRA
		select DEBUG_TEGRA_UART
1294 1295 1296 1297
		help
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

1298 1299 1300 1301 1302 1303 1304
	config DEBUG_UX500_UART
		depends on ARCH_U8500
		bool "Use Ux500 UART for low-level debug"
		help
		  Say Y here if you want kernel low-level debugging support
		  on Ux500 based platforms.

1305 1306 1307 1308
	config DEBUG_VERSATILE
		bool "Kernel low-level debugging messages via ARM Versatile UART"
		depends on ARCH_VERSATILE
		select DEBUG_UART_PL01X
1309 1310
		help
		  Say Y here if you want kernel low-level debugging support
1311
		  on ARM Versatile platforms.
1312

1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326
	config DEBUG_VEXPRESS_UART0_DETECT
		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
		depends on ARCH_VEXPRESS && CPU_CP15_MMU
		help
		  This option enables a simple heuristic which tries to determine
		  the motherboard's memory map variant (original or RS1) and then
		  choose the relevant UART0 base address.

		  Note that this will only work with standard A-class core tiles,
		  and may fail with non-standard SMM or custom software models.

	config DEBUG_VEXPRESS_UART0_CA9
		bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
		depends on ARCH_VEXPRESS
1327
		select DEBUG_UART_PL01X
1328 1329 1330 1331 1332 1333 1334
		help
		  This option selects UART0 at 0x10009000. Except for custom models,
		  this applies only to the V2P-CA9 tile.

	config DEBUG_VEXPRESS_UART0_RS1
		bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
		depends on ARCH_VEXPRESS
1335
		select DEBUG_UART_PL01X
1336 1337 1338 1339 1340
		help
		  This option selects UART0 at 0x1c090000. This applies to most
		  of the tiles using the RS1 memory map, including all new A-class
		  core tiles, FPGA-based SMMs and software models.

1341 1342 1343
	config DEBUG_VEXPRESS_UART0_CRX
		bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
		depends on ARCH_VEXPRESS && !MMU
1344
		select DEBUG_UART_PL01X
1345 1346 1347 1348
		help
		  This option selects UART0 at 0xb0090000. This is appropriate for
		  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7

1349 1350 1351 1352 1353 1354 1355
	config DEBUG_VF_UART
		bool "Vybrid UART"
		depends on SOC_VF610
		help
		  Say Y here if you want kernel low-level debugging support
		  on Vybrid based platforms.

1356 1357 1358 1359 1360 1361 1362
	config DEBUG_VT8500_UART0
		bool "Use UART0 on VIA/Wondermedia SoCs"
		depends on ARCH_VT8500
		help
		  This option selects UART0 on VIA/Wondermedia System-on-a-chip
		  devices, including VT8500, WM8505, WM8650 and WM8850.

1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379
	config DEBUG_ZYNQ_UART0
		bool "Kernel low-level debugging on Xilinx Zynq using UART0"
		depends on ARCH_ZYNQ
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART0 on the Zynq platform.

	config DEBUG_ZYNQ_UART1
		bool "Kernel low-level debugging on Xilinx Zynq using UART1"
		depends on ARCH_ZYNQ
		help
		  Say Y here if you want the debug print routines to direct
		  their output to UART1 on the Zynq platform.

		  If you have a ZC702 board and want early boot messages to
		  appear on the USB serial adaptor, select this option.

1380 1381
	config DEBUG_ICEDCC
		bool "Kernel low-level debugging via EmbeddedICE DCC channel"
1382 1383
		help
		  Say Y here if you want the debug print routines to direct
1384 1385 1386 1387 1388 1389
		  their output to the EmbeddedICE macrocell's DCC channel using
		  co-processor 14. This is known to work on the ARM9 style ICE
		  channel and on the XScale with the PEEDI.

		  Note that the system will appear to hang during boot if there
		  is nothing connected to read from the DCC.
1390

1391
	config DEBUG_SEMIHOSTING
1392
		bool "Kernel low-level debug output via semihosting I/O"
1393
		help
1394 1395
		  Semihosting enables code running on an ARM target to use
		  the I/O facilities on a host debugger/emulator through a
1396
		  simple SVC call. The host debugger or emulator must have
1397 1398
		  semihosting enabled for the special svc call to be trapped
		  otherwise the kernel will crash.
1399

1400
		  This is known to work with OpenOCD, as well as
1401 1402
		  ARM's Fast Models, or any other controlling environment
		  that implements semihosting.
1403

1404 1405
		  For more details about semihosting, please see
		  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
1406

1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432
	config DEBUG_LL_UART_8250
		bool "Kernel low-level debugging via 8250 UART"
		help
		  Say Y here if you wish the debug print routes to direct
		  their output to an 8250 UART.  You can use this option
		  to provide the parameters for the 8250 UART rather than
		  selecting one of the platform specific options above if
		  you know the parameters for the port.

		  This option is preferred over the platform specific
		  options; the platform specific options are deprecated
		  and will be soon removed.

	config DEBUG_LL_UART_PL01X
		bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
		help
		  Say Y here if you wish the debug print routes to direct
		  their output to a PL01x Primecell UART.  You can use
		  this option to provide the parameters for the UART
		  rather than selecting one of the platform specific
		  options above if you know the parameters for the port.

		  This option is preferred over the platform specific
		  options; the platform specific options are deprecated
		  and will be soon removed.

1433 1434
endchoice

1435 1436 1437 1438
config DEBUG_AT91_UART
	bool
	depends on ARCH_AT91

1439 1440 1441
config DEBUG_EXYNOS_UART
	bool

1442 1443
config DEBUG_S3C2410_UART
	bool
1444 1445 1446 1447
	select DEBUG_S3C24XX_UART

config DEBUG_S3C24XX_UART
	bool
1448

1449 1450 1451
config DEBUG_S3C64XX_UART
	bool

1452 1453 1454
config DEBUG_S5PV210_UART
	bool

1455 1456 1457 1458 1459 1460 1461 1462 1463 1464
config DEBUG_S3C_UART
	depends on DEBUG_S3C2410_UART || DEBUG_S3C24XX_UART || \
		   DEBUG_S3C64XX_UART ||  DEBUG_S5PV210_UART || \
		   DEBUG_EXYNOS_UART
	int
	default "0" if DEBUG_S3C_UART0
	default "1" if DEBUG_S3C_UART1
	default "2" if DEBUG_S3C_UART2
	default "3" if DEBUG_S3C_UART3

1465 1466 1467 1468
config DEBUG_OMAP2PLUS_UART
	bool
	depends on ARCH_OMAP2PLUS

1469
config DEBUG_IMX_UART_PORT
1470 1471 1472
	int "i.MX Debug UART Port Selection"
	depends on DEBUG_IMX1_UART || \
		   DEBUG_IMX25_UART || \
1473
		   DEBUG_IMX27_UART || \
1474 1475 1476 1477 1478 1479 1480 1481 1482 1483
		   DEBUG_IMX31_UART || \
		   DEBUG_IMX35_UART || \
		   DEBUG_IMX50_UART || \
		   DEBUG_IMX51_UART || \
		   DEBUG_IMX53_UART || \
		   DEBUG_IMX6Q_UART || \
		   DEBUG_IMX6SL_UART || \
		   DEBUG_IMX6SX_UART || \
		   DEBUG_IMX6UL_UART || \
		   DEBUG_IMX7D_UART
1484 1485 1486 1487 1488
	default 1
	help
	  Choose UART port on which kernel low-level debug messages
	  should be output.

1489 1490 1491 1492 1493 1494 1495 1496 1497
config DEBUG_VF_UART_PORT
	int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART
	default 1
	range 0 3
	depends on SOC_VF610
	help
	  Choose UART port on which kernel low-level debug messages
	  should be output.

1498 1499 1500
config DEBUG_TEGRA_UART
	bool
	depends on ARCH_TEGRA
1501

1502 1503 1504 1505
config DEBUG_STM32_UART
	bool
	depends on ARCH_STM32

1506 1507 1508
config DEBUG_UART_FLOW_CONTROL
	bool "Enable flow control (CTS) for the debug UART"
	depends on DEBUG_LL
1509
	default y if DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
1510 1511 1512 1513 1514 1515 1516
	help
	  Some UART ports are connected to terminals that will use modem
	  control signals to indicate whether they are ready to receive text.
	  In practice this means that the terminal is asserting the special
	  control signal CTS (Clear To Send). If your debug UART supports
	  this and your debug terminal will require it, enable this option.

1517 1518
config DEBUG_LL_INCLUDE
	string
1519
	default "debug/sa1100.S" if DEBUG_SA1100
1520
	default "debug/palmchip.S" if DEBUG_UART_8250_PALMCHIP
1521
	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
1522
	default "debug/at91.S" if DEBUG_AT91_UART
1523
	default "debug/asm9260.S" if DEBUG_ASM9260_UART
1524
	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
1525
	default "debug/dc21285.S" if DEBUG_DC21285_PORT
1526
	default "debug/meson.S" if DEBUG_MESON_UARTAO
1527
	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
1528
	default "debug/exynos.S" if DEBUG_EXYNOS_UART
1529
	default "debug/icedcc.S" if DEBUG_ICEDCC
1530 1531
	default "debug/imx.S" if DEBUG_IMX1_UART || \
				 DEBUG_IMX25_UART || \
1532
				 DEBUG_IMX27_UART || \
1533 1534
				 DEBUG_IMX31_UART || \
				 DEBUG_IMX35_UART || \
1535
				 DEBUG_IMX50_UART || \
1536
				 DEBUG_IMX51_UART || \
1537
				 DEBUG_IMX53_UART || \
1538
				 DEBUG_IMX6Q_UART || \
1539
				 DEBUG_IMX6SL_UART || \
1540
				 DEBUG_IMX6SX_UART || \
1541
				 DEBUG_IMX6UL_UART || \
1542
				 DEBUG_IMX7D_UART
1543
	default "debug/msm.S" if DEBUG_QCOM_UARTDM
1544
	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
1545
	default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2
1546 1547
	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF2
	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF4
1548 1549 1550
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0
1551
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF1
1552
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2
1553
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4
1554
	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIFA2
1555 1556 1557
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1
	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
1558
	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART
1559
	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
1560 1561
	default "debug/sti.S" if DEBUG_STIH41X_ASC2
	default "debug/sti.S" if DEBUG_STIH41X_SBC_ASC1
1562
	default "debug/sti.S" if DEBUG_STIH418_SBC_ASC0
1563
	default "debug/stm32.S" if DEBUG_STM32_UART
1564 1565
	default "debug/tegra.S" if DEBUG_TEGRA_UART
	default "debug/ux500.S" if DEBUG_UX500_UART
1566
	default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
1567
	default "debug/vf.S" if DEBUG_VF_UART
1568
	default "debug/vt8500.S" if DEBUG_VT8500_UART0
1569
	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
1570
	default "debug/bcm63xx.S" if DEBUG_BCM63XX_UART
1571
	default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
1572
	default "debug/brcmstb.S" if DEBUG_BRCMSTB_UART
1573 1574
	default "mach/debug-macro.S"

1575
# Compatibility options for PL01x
1576
config DEBUG_UART_PL01X
1577
	bool
1578

1579
# Compatibility options for 8250
1580
config DEBUG_UART_8250
1581
	def_bool ARCH_IXP4XX || ARCH_RPC
1582

1583 1584 1585 1586
config DEBUG_UART_PHYS
	hex "Physical base address of debug UART"
	default 0x01c28000 if DEBUG_SUNXI_UART0
	default 0x01c28400 if DEBUG_SUNXI_UART1
1587 1588
	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
1589
	default 0x01f02800 if DEBUG_SUNXI_R_UART
1590 1591
	default 0x02530c00 if DEBUG_KEYSTONE_UART0
	default 0x02531000 if DEBUG_KEYSTONE_UART1
1592
	default 0x03010fe0 if ARCH_RPC
1593
	default 0x07000000 if DEBUG_SUN9I_UART0
1594
	default 0x09530000 if DEBUG_STIH418_SBC_ASC0
Krzysztof Hałasa's avatar
Krzysztof Hałasa committed
1595
	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || \
1596 1597
				DEBUG_VEXPRESS_UART0_CA9
	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1598 1599
	default 0x10124000 if DEBUG_RK3X_UART0
	default 0x10126000 if DEBUG_RK3X_UART1
1600
	default 0x101f1000 if DEBUG_VERSATILE
1601
	default 0x101fb000 if DEBUG_NOMADIK_UART
1602 1603 1604
	default 0x10210000 if DEBUG_RV1108_UART2
	default 0x10220000 if DEBUG_RV1108_UART1
	default 0x10230000 if DEBUG_RV1108_UART0
1605
	default 0x11002000 if DEBUG_MT8127_UART0
1606
	default 0x11006000 if DEBUG_MT6589_UART0
1607
	default 0x11009000 if DEBUG_MT8135_UART3
1608
	default 0x16000000 if DEBUG_INTEGRATOR
1609
	default 0x1600d000 if DEBUG_SD5203_UART
1610
	default 0x18000300 if DEBUG_BCM_5301X
1611
	default 0x18000400 if DEBUG_BCM_HR2
1612
	default 0x18023000 if DEBUG_BCM_IPROC_UART3
1613
	default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1614
	default 0x1f221000 if DEBUG_MSTARV7_PMUART
Wang Long's avatar
Wang Long committed
1615
	default 0x20001000 if DEBUG_HIP01_UART
1616 1617 1618
	default 0x20060000 if DEBUG_RK29_UART0
	default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
	default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1619
	default 0x20201000 if DEBUG_BCM2835
1620
	default 0x3e000000 if DEBUG_BCM_KONA_UART
1621
	default 0x3f201000 if DEBUG_BCM2836
1622
	default 0x40010000 if STM32MP1_DEBUG_UART
1623 1624
	default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
				STM32H7_DEBUG_UART
1625
	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
1626
	default 0x40081000 if DEBUG_LPC18XX_UART0
1627
	default 0x40090000 if DEBUG_LPC32XX
1628
	default 0x40100000 if DEBUG_PXA_UART1
1629
	default 0x42000000 if DEBUG_GEMINI
1630
	default 0x44e09000 if DEBUG_AM33XXUART1
1631 1632 1633
	default 0x48020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
	default 0x48022000 if DEBUG_TI81XXUART2
	default 0x48024000 if DEBUG_TI81XXUART3
1634 1635 1636 1637
	default 0x4806a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
	default 0x4806c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1638 1639 1640
	default 0x4806e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
	default 0x49020000 if DEBUG_OMAP3UART3
	default 0x49042000 if DEBUG_OMAP3UART4
1641 1642 1643 1644 1645 1646
	default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
				DEBUG_S3C2410_UART0)
	default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
				DEBUG_S3C2410_UART1)
	default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
				DEBUG_S3C2410_UART2)
1647
	default 0x7c0003f8 if DEBUG_FOOTBRIDGE_COM1
1648 1649 1650 1651
	default 0x7f005000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
	default 0x7f005400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
	default 0x7f005800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
	default 0x7f005c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1652
	default 0x80010000 if DEBUG_ASM9260_UART
1653 1654
	default 0x80070000 if DEBUG_IMX23_UART
	default 0x80074000 if DEBUG_IMX28_UART
1655
	default 0x808c0000 if DEBUG_EP93XX || ARCH_EP93XX
1656 1657
	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1658 1659
	default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
	default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1660
	default 0xd0000000 if DEBUG_SPEAR3XX
1661
	default 0xd0012000 if DEBUG_MVEBU_UART0
1662
	default 0xc81004c0 if DEBUG_MESON_UARTAO
1663 1664
	default 0xd4017000 if DEBUG_MMP_UART2
	default 0xd4018000 if DEBUG_MMP_UART3
1665
	default 0xe0000000 if DEBUG_SPEAR13XX
1666
	default 0xe0064200 if DEBUG_AT91_LAN966_FLEXCOM
1667
	default 0xe1824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1668
	default 0xe4007000 if DEBUG_HIP04_UART
1669 1670
	default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0
	default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1
1671
	default 0xe6c60000 if DEBUG_RCAR_GEN2_SCIFA2
1672 1673 1674
	default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4
	default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2
	default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0
1675
	default 0xe6e68000 if DEBUG_RCAR_GEN2_SCIF1
1676
	default 0xe6ee0000 if DEBUG_RCAR_GEN2_SCIF4
1677 1678
	default 0xe8008000 if DEBUG_R7S72100_SCIF2 || DEBUG_R7S9210_SCIF2
	default 0xe8009000 if DEBUG_R7S9210_SCIF4
1679
	default 0xf0000000 if DEBUG_DIGICOLOR_UA0
1680
	default 0xf1012000 if DEBUG_MVEBU_UART0_ALTERNATE
1681
	default 0xf1012100 if DEBUG_MVEBU_UART1_ALTERNATE
1682
	default 0xf7fc9000 if DEBUG_BERLIN_UART
1683
	default 0xf8020000 if DEBUG_AT91_SAMA5D2_UART1
1684
	default 0xf8b00000 if DEBUG_HIX5HD2_UART
1685
	default 0xf991e000 if DEBUG_QCOM_UARTDM
1686
	default 0xfc00c000 if DEBUG_AT91_SAMA5D4_USART3
1687
	default 0xfcb00000 if DEBUG_HI3620_UART
1688
	default 0xfd883000 if DEBUG_ALPINE_UART0
1689 1690
	default 0xfe531000 if DEBUG_STIH41X_SBC_ASC1
	default 0xfed32000 if DEBUG_STIH41X_ASC2
1691
	default 0xff690000 if DEBUG_RK32_UART2
1692
	default 0xffc02000 if DEBUG_SOCFPGA_UART0
1693 1694
	default 0xffc02100 if DEBUG_SOCFPGA_ARRIA10_UART1
	default 0xffc03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1695 1696
	default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0
	default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2
1697
	default 0xfff36000 if DEBUG_HIGHBANK_UART
1698 1699 1700
	default 0xfffb0000 if DEBUG_OMAP1UART1
	default 0xfffb0800 if DEBUG_OMAP1UART2
	default 0xfffb9800 if DEBUG_OMAP1UART3
1701
	default 0xfffe8600 if DEBUG_BCM63XX_UART
1702 1703
	default 0xffffee00 if DEBUG_AT91_SAM9263_DBGU
	default 0xfffff200 if DEBUG_AT91_RM9200_DBGU
1704 1705
	depends on ARCH_EP93XX || \
	        DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1706
		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1707
		DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
1708
		DEBUG_R7S9210_SCIF2 || DEBUG_R7S9210_SCIF4 || \
1709
		DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \
1710 1711
		DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF1 || \
		DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \
1712
		DEBUG_RCAR_GEN2_SCIFA2 || \
1713 1714
		DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
		DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
1715
		DEBUG_S3C64XX_UART || \
1716
		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1717
		DEBUG_DIGICOLOR_UA0 || \
1718
		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1719 1720
		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
		DEBUG_STIH418_SBC_ASC0
1721 1722 1723

config DEBUG_UART_VIRT
	hex "Virtual base address of debug UART"
1724 1725 1726
	default 0xc881f000 if DEBUG_RV1108_UART2
	default 0xc8821000 if DEBUG_RV1108_UART1
	default 0xc8912000 if DEBUG_RV1108_UART0
1727
	default 0xe0010fe0 if ARCH_RPC
1728
	default 0xe0824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1729
	default 0xf0010000 if DEBUG_ASM9260_UART
1730
	default 0xf0100000 if DEBUG_DIGICOLOR_UA0
1731
	default 0xf01fb000 if DEBUG_NOMADIK_UART
1732
	default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836
1733
	default 0xf0221000 if DEBUG_MSTARV7_PMUART
1734
	default 0xf1000300 if DEBUG_BCM_5301X
1735
	default 0xf1000400 if DEBUG_BCM_HR2
1736
	default 0xf1002000 if DEBUG_MT8127_UART0
1737
	default 0xf1006000 if DEBUG_MT6589_UART0
1738
	default 0xf1009000 if DEBUG_MT8135_UART3
1739
	default 0xf1023000 if DEBUG_BCM_IPROC_UART3
1740 1741
	default 0xf11f1000 if DEBUG_VERSATILE
	default 0xf1600000 if DEBUG_INTEGRATOR
1742 1743
	default 0xf1c28000 if DEBUG_SUNXI_UART0
	default 0xf1c28400 if DEBUG_SUNXI_UART1
1744
	default 0xf1f02800 if DEBUG_SUNXI_R_UART
1745
	default 0xf31004c0 if DEBUG_MESON_UARTAO
1746
	default 0xf4090000 if DEBUG_LPC32XX
1747
	default 0xf4200000 if DEBUG_GEMINI
1748
	default 0xf6200000 if DEBUG_PXA_UART1
1749
	default 0xf7000000 if DEBUG_SUN9I_UART0
1750
	default 0xf7000000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
1751 1752
	default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
				DEBUG_S3C2410_UART0)
1753 1754 1755
	default 0xf7000400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
	default 0xf7000800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
	default 0xf7000c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1756 1757 1758 1759
	default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
				DEBUG_S3C2410_UART1)
	default 0xf7008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
				DEBUG_S3C2410_UART2)
1760
	default 0xf7020000 if DEBUG_AT91_SAMA5D2_UART1
1761
	default 0xf7fc9000 if DEBUG_BERLIN_UART
1762
	default 0xf8007000 if DEBUG_HIP04_UART
1763 1764
	default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
	default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1765 1766
	default 0xf8ffee00 if DEBUG_AT91_SAM9263_DBGU
	default 0xf8fff200 if DEBUG_AT91_RM9200_DBGU
1767
	default 0xf9530000 if DEBUG_STIH418_SBC_ASC0
1768
	default 0xf9e09000 if DEBUG_AM33XXUART1
1769 1770 1771
	default 0xfa020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
	default 0xfa022000 if DEBUG_TI81XXUART2
	default 0xfa024000 if DEBUG_TI81XXUART3
1772 1773 1774 1775
	default 0xfa06a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
	default 0xfa06c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1776
	default 0xfa06e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
1777
	default 0xfa71e000 if DEBUG_QCOM_UARTDM
1778
	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1779
	default 0xfb00c000 if DEBUG_AT91_SAMA5D4_USART3
1780 1781
	default 0xfb020000 if DEBUG_OMAP3UART3
	default 0xfb042000 if DEBUG_OMAP3UART4
1782
	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1783
	default 0xfcfe8600 if DEBUG_BCM63XX_UART
1784
	default 0xfd000000 if DEBUG_SPEAR3XX || DEBUG_SPEAR13XX
1785
	default 0xfd064200 if DEBUG_AT91_LAN966_FLEXCOM
1786
	default 0xfd531000 if DEBUG_STIH41X_SBC_ASC1
1787
	default 0xfd883000 if DEBUG_ALPINE_UART0
1788
	default 0xfdd32000 if DEBUG_STIH41X_ASC2
1789
	default 0xfe010000 if STM32MP1_DEBUG_UART
1790 1791
	default 0xfe017000 if DEBUG_MMP_UART2
	default 0xfe018000 if DEBUG_MMP_UART3
1792
	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
1793
	default 0xfe300000 if DEBUG_BCM_KONA_UART
1794
	default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HIX5HD2_UART
1795 1796
	default 0xfeb24000 if DEBUG_RK3X_UART0
	default 0xfeb26000 if DEBUG_RK3X_UART1
1797 1798
	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1799
	default 0xfec02000 if DEBUG_SOCFPGA_UART0
1800 1801
	default 0xfec02100 if DEBUG_SOCFPGA_ARRIA10_UART1
	default 0xfec03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1802
	default 0xfec12000 if DEBUG_MVEBU_UART0 || DEBUG_MVEBU_UART0_ALTERNATE
1803
	default 0xfec12100 if DEBUG_MVEBU_UART1_ALTERNATE
1804
	default 0xfec90000 if DEBUG_RK32_UART2
1805
	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1806
	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_SD5203_UART
1807 1808 1809
	default 0xfed60000 if DEBUG_RK29_UART0
	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1810
	default 0xfedc0000 if DEBUG_EP93XX
1811
	default 0xfee003f8 if DEBUG_FOOTBRIDGE_COM1
1812
	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1813 1814
	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1815
	default 0xfef36000 if DEBUG_HIGHBANK_UART
1816 1817 1818
	default 0xff0b0000 if DEBUG_OMAP1UART1
	default 0xff0b0800 if DEBUG_OMAP1UART2
	default 0xff0b9800 if DEBUG_OMAP1UART3
Wang Long's avatar
Wang Long committed
1819
	default 0xffd01000 if DEBUG_HIP01_UART
1820
	default DEBUG_UART_PHYS if !MMU
1821
	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1822
		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1823
		DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
1824
		DEBUG_S3C64XX_UART || \
1825
		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1826
		DEBUG_DIGICOLOR_UA0 || \
1827
		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1828 1829
		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
		DEBUG_STIH418_SBC_ASC0
1830

1831 1832
config DEBUG_UART_8250_SHIFT
	int "Register offset shift for the 8250 debug UART"
1833
	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1834
	default 0 if DEBUG_FOOTBRIDGE_COM1 || DEBUG_BCM_5301X || \
1835 1836
		DEBUG_BCM_HR2 || DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || \
		DEBUG_OMAP7XXUART3
1837
	default 3 if DEBUG_MSTARV7_PMUART
1838
	default 2
1839

1840 1841
config DEBUG_UART_8250_WORD
	bool "Use 32-bit accesses for 8250 UART"
1842
	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1843
	depends on DEBUG_UART_8250_SHIFT >= 2
1844
	default y if DEBUG_SOCFPGA_UART0 || DEBUG_SOCFPGA_ARRIA10_UART1 || \
1845 1846
		DEBUG_SOCFPGA_CYCLONE5_UART1 || DEBUG_KEYSTONE_UART0 || \
		DEBUG_KEYSTONE_UART1 || DEBUG_ALPINE_UART0 || \
1847 1848 1849
		DEBUG_DAVINCI_DA8XX_UART1 || DEBUG_DAVINCI_DA8XX_UART2 || \
		DEBUG_BCM_IPROC_UART3 || DEBUG_BCM_KONA_UART || \
		DEBUG_RK32_UART2
1850

1851 1852 1853 1854 1855 1856 1857 1858
config DEBUG_UART_8250_PALMCHIP
	bool "8250 UART is Palmchip BK-310x"
	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
	help
	  Palmchip provides a UART implementation compatible with 16550
	  except for having a different register layout.  Say Y here if
	  the debug UART is of this type.

1859
config DEBUG_UNCOMPRESS
1860
	bool "Enable decompressor debugging via DEBUG_LL output"
1861
	depends on !ARCH_MULTIPLATFORM
1862
	depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
1863
	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
1864
		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
1865
		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
1866 1867 1868 1869 1870 1871 1872 1873 1874 1875
	help
	  This option influences the normal decompressor output for
	  multiplatform kernels.  Normally, multiplatform kernels disable
	  decompressor output because it is not possible to know where to
	  send the decompressor output.

	  When this option is set, the selected DEBUG_LL output method
	  will be re-used for normal decompressor output on multiplatform
	  kernels.
	  
1876

1877 1878
config UNCOMPRESS_INCLUDE
	string
1879 1880
	default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100
	default "debug/uncompress.h"
1881

1882 1883 1884 1885 1886 1887 1888 1889
config EARLY_PRINTK
	bool "Early printk"
	depends on DEBUG_LL
	help
	  Say Y here if you want to have an early console using the
	  kernel low-level debugging functions. Add earlyprintk to your
	  kernel parameters to enable this console.

1890 1891 1892 1893 1894 1895
config ARM_KPROBES_TEST
	tristate "Kprobes test module"
	depends on KPROBES && MODULES
	help
	  Perform tests of kprobes API and instruction set simulation.

1896 1897 1898 1899 1900 1901 1902 1903 1904
config PID_IN_CONTEXTIDR
	bool "Write the current PID to the CONTEXTIDR register"
	depends on CPU_COPY_V6
	help
	  Enabling this option causes the kernel to write the current PID to
	  the PROCID field of the CONTEXTIDR register, at the expense of some
	  additional instructions during context switch. Say Y here only if you
	  are planning to use hardware trace tools with this kernel.

1905
source "drivers/hwtracing/coresight/Kconfig"