xref: /openbmc/linux/arch/arm/Kconfig.debug (revision 240e6d25)
1# SPDX-License-Identifier: GPL-2.0
2
3config ARM_PTDUMP_CORE
4	def_bool n
5
6config ARM_PTDUMP_DEBUGFS
7	bool "Export kernel pagetable layout to userspace via debugfs"
8	depends on DEBUG_KERNEL
9	depends on MMU
10	select ARM_PTDUMP_CORE
11	select DEBUG_FS
12	help
13	  Say Y here if you want to show the kernel pagetable layout in a
14	  debugfs file. This information is only useful for kernel developers
15	  who are working in architecture specific areas of the kernel.
16	  It is probably not a good idea to enable this feature in a production
17	  kernel.
18	  If in doubt, say "N"
19
20config DEBUG_WX
21	bool "Warn on W+X mappings at boot"
22	depends on MMU
23	select ARM_PTDUMP_CORE
24	help
25		Generate a warning if any W+X mappings are found at boot.
26
27		This is useful for discovering cases where the kernel is leaving
28		W+X mappings after applying NX, as such mappings are a security risk.
29
30		Look for a message in dmesg output like this:
31
32			arm/mm: Checked W+X mappings: passed, no W+X pages found.
33
34		or like this, if the check failed:
35
36			arm/mm: Checked W+X mappings: FAILED, <N> W+X pages found.
37
38		Note that even if the check fails, your kernel is possibly
39		still fine, as W+X mappings are not a security hole in
40		themselves, what they do is that they make the exploitation
41		of other unfixed kernel bugs easier.
42
43		There is no runtime or memory usage effect of this option
44		once the kernel has booted up - it's a one time check.
45
46		If in doubt, say "Y".
47
48choice
49	prompt "Choose kernel unwinder"
50	default UNWINDER_ARM if AEABI
51	default UNWINDER_FRAME_POINTER if !AEABI
52	help
53	  This determines which method will be used for unwinding kernel stack
54	  traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack,
55	  livepatch, lockdep, and more.
56
57config UNWINDER_FRAME_POINTER
58	bool "Frame pointer unwinder"
59	depends on !THUMB2_KERNEL
60	select ARCH_WANT_FRAME_POINTERS
61	select FRAME_POINTER
62	help
63	  This option enables the frame pointer unwinder for unwinding
64	  kernel stack traces.
65
66config UNWINDER_ARM
67	bool "ARM EABI stack unwinder"
68	depends on AEABI && !FUNCTION_GRAPH_TRACER
69	# https://github.com/ClangBuiltLinux/linux/issues/732
70	depends on !LD_IS_LLD || LLD_VERSION >= 110000
71	select ARM_UNWIND
72	help
73	  This option enables stack unwinding support in the kernel
74	  using the information automatically generated by the
75	  compiler. The resulting kernel image is slightly bigger but
76	  the performance is not affected. Currently, this feature
77	  only works with EABI compilers.
78
79endchoice
80
81config ARM_UNWIND
82	bool
83
84config FRAME_POINTER
85	bool
86
87config DEBUG_USER
88	bool "Verbose user fault messages"
89	help
90	  When a user program crashes due to an exception, the kernel can
91	  print a brief message explaining what the problem was. This is
92	  sometimes helpful for debugging but serves no purpose on a
93	  production system. Most people should say N here.
94
95	  In addition, you need to pass user_debug=N on the kernel command
96	  line to enable this feature.  N consists of the sum of:
97
98	      1 - undefined instruction events
99	      2 - system calls
100	      4 - invalid data aborts
101	      8 - SIGSEGV faults
102	     16 - SIGBUS faults
103
104# These options are only for real kernel hackers who want to get their hands dirty.
105config DEBUG_LL
106	bool "Kernel low-level debugging functions (read help!)"
107	depends on DEBUG_KERNEL
108	help
109	  Say Y here to include definitions of printascii, printch, printhex
110	  in the kernel.  This is helpful if you are debugging code that
111	  executes before the console is initialized.
112
113	  Note that selecting this option will limit the kernel to a single
114	  UART definition, as specified below. Attempting to boot the kernel
115	  image on a different platform *will not work*, so this option should
116	  not be enabled for kernels that are intended to be portable.
117
118choice
119	prompt "Kernel low-level debugging port"
120	depends on DEBUG_LL
121
122	config DEBUG_ALPINE_UART0
123		bool "Kernel low-level debugging messages via Alpine UART0"
124		depends on ARCH_ALPINE
125		select DEBUG_UART_8250
126		help
127		  Say Y here if you want kernel low-level debugging support
128		  on Alpine based platforms.
129
130	config DEBUG_ASM9260_UART
131		bool "Kernel low-level debugging via asm9260 UART"
132		depends on MACH_ASM9260
133		help
134		  Say Y here if you want the debug print routines to direct
135		  their output to an UART or USART port on asm9260 based
136		  machines.
137
138		    DEBUG_UART_PHYS | DEBUG_UART_VIRT
139
140		    0x80000000      | 0xf0000000     | UART0
141		    0x80004000      | 0xf0004000     | UART1
142		    0x80008000      | 0xf0008000     | UART2
143		    0x8000c000      | 0xf000c000     | UART3
144		    0x80010000      | 0xf0010000     | UART4
145		    0x80014000      | 0xf0014000     | UART5
146		    0x80018000      | 0xf0018000     | UART6
147		    0x8001c000      | 0xf001c000     | UART7
148		    0x80020000      | 0xf0020000     | UART8
149		    0x80024000      | 0xf0024000     | UART9
150
151	config DEBUG_AT91_RM9200_DBGU
152		bool "Kernel low-level debugging on AT91RM9200, AT91SAM9, SAM9X60 DBGU"
153		select DEBUG_AT91_UART
154		depends on SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAM9X60
155		help
156		  Say Y here if you want kernel low-level debugging support
157		  on the DBGU port of:
158		    at91rm9200, at91sam9260, at91sam9g20, at91sam9261,
159		    at91sam9g10, at91sam9n12, at91sam9rl64, at91sam9x5, sam9x60
160
161	config DEBUG_AT91_SAM9263_DBGU
162		bool "Kernel low-level debugging on AT91SAM{9263,9G45,A5D3} DBGU"
163		select DEBUG_AT91_UART
164		depends on SOC_AT91SAM9 || SOC_SAMA5D3
165		help
166		  Say Y here if you want kernel low-level debugging support
167		  on the DBGU port of:
168		    at91sam9263, at91sam9g45, at91sam9m10,
169		    sama5d3
170
171	config DEBUG_AT91_SAMA5D2_UART1
172		bool "Kernel low-level debugging on SAMA5D2 UART1"
173		select DEBUG_AT91_UART
174		depends on SOC_SAMA5D2
175		help
176		  Say Y here if you want kernel low-level debugging support
177		  on the UART1 port of sama5d2.
178
179	config DEBUG_AT91_SAMA5D4_USART3
180		bool "Kernel low-level debugging on SAMA5D4 USART3"
181		select DEBUG_AT91_UART
182		depends on SOC_SAMA5D4
183		help
184		  Say Y here if you want kernel low-level debugging support
185		  on the USART3 port of sama5d4.
186
187	config DEBUG_AT91_SAMV7_USART1
188		bool "Kernel low-level debugging via SAMV7 USART1"
189		select DEBUG_AT91_UART
190		depends on SOC_SAMV7
191		help
192		  Say Y here if you want the debug print routines to direct
193		  their output to the USART1 port on SAMV7 based
194		  machines.
195
196	config DEBUG_AT91_SAMA7G5_FLEXCOM3
197		bool "Kernel low-level debugging on SAMA7G5 FLEXCOM3"
198		select DEBUG_AT91_UART
199		depends on SOC_SAMA7G5
200		help
201		  Say Y here if you want kernel low-level debugging support
202		  on the FLEXCOM3 port of SAMA7G5.
203
204	config DEBUG_BCM2835
205		bool "Kernel low-level debugging on BCM2835 PL011 UART"
206		depends on ARCH_BCM2835 && ARCH_MULTI_V6
207		select DEBUG_UART_PL01X
208
209	config DEBUG_BCM2836
210		bool "Kernel low-level debugging on BCM2836 PL011 UART"
211		depends on ARCH_BCM2835 && ARCH_MULTI_V7
212		select DEBUG_UART_PL01X
213
214	config DEBUG_BCM_5301X
215		bool "Kernel low-level debugging on BCM5301X/NSP UART1"
216		depends on ARCH_BCM_5301X || ARCH_BCM_NSP
217		select DEBUG_UART_8250
218
219	config DEBUG_BCM_HR2
220		bool "Kernel low-level debugging on Hurricane 2 UART2"
221		depends on ARCH_BCM_HR2
222		select DEBUG_UART_8250
223
224	config DEBUG_BCM_IPROC_UART3
225		bool "Kernel low-level debugging on BCM IPROC UART3"
226		depends on ARCH_BCM_CYGNUS
227		select DEBUG_UART_8250
228		help
229		  Say Y here if you want the debug print routines to direct
230		  their output to the third serial port on these devices.
231
232	config DEBUG_BCM_KONA_UART
233		bool "Kernel low-level debugging messages via BCM KONA UART"
234		depends on ARCH_BCM_MOBILE
235		select DEBUG_UART_8250
236		help
237		  Say Y here if you want kernel low-level debugging support
238		  on Broadcom SoC platforms.
239		  This low level debug works for Broadcom
240		  mobile SoCs in the Kona family of chips (e.g. bcm28155,
241		  bcm11351, etc...)
242
243	config DEBUG_BCM63XX_UART
244		bool "Kernel low-level debugging on BCM63XX UART"
245		depends on ARCH_BCM_63XX
246
247	config DEBUG_BERLIN_UART
248		bool "Marvell Berlin SoC Debug UART"
249		depends on ARCH_BERLIN
250		select DEBUG_UART_8250
251		help
252		  Say Y here if you want kernel low-level debugging support
253		  on Marvell Berlin SoC based platforms.
254
255	config DEBUG_BRCMSTB_UART
256		bool "Use BRCMSTB UART for low-level debug"
257		depends on ARCH_BRCMSTB
258		help
259		  Say Y here if you want the debug print routines to direct
260		  their output to the first serial port on these devices. The
261		  UART physical and virtual address is automatically provided
262		  based on the chip identification register value.
263
264		  If you have a Broadcom STB chip and would like early print
265		  messages to appear over the UART, select this option.
266
267	config DEBUG_CLPS711X_UART1
268		bool "Kernel low-level debugging messages via UART1"
269		depends on ARCH_CLPS711X
270		help
271		  Say Y here if you want the debug print routines to direct
272		  their output to the first serial port on these devices.
273
274	config DEBUG_CLPS711X_UART2
275		bool "Kernel low-level debugging messages via UART2"
276		depends on ARCH_CLPS711X
277		help
278		  Say Y here if you want the debug print routines to direct
279		  their output to the second serial port on these devices.
280
281	config DEBUG_CNS3XXX
282		bool "Kernel Kernel low-level debugging on Cavium Networks CNS3xxx"
283		depends on ARCH_CNS3XXX
284		select DEBUG_UART_8250
285		help
286		  Say Y here if you want the debug print routines to direct
287                  their output to the CNS3xxx UART0.
288
289	config DEBUG_DAVINCI_DA8XX_UART1
290		bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
291		depends on ARCH_DAVINCI_DA8XX
292		select DEBUG_UART_8250
293		help
294		  Say Y here if you want the debug print routines to direct
295		  their output to UART1 serial port on DaVinci DA8XX devices.
296
297	config DEBUG_DAVINCI_DA8XX_UART2
298		bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
299		depends on ARCH_DAVINCI_DA8XX
300		select DEBUG_UART_8250
301		help
302		  Say Y here if you want the debug print routines to direct
303		  their output to UART2 serial port on DaVinci DA8XX devices.
304
305	config DEBUG_DAVINCI_DMx_UART0
306		bool "Kernel low-level debugging on DaVinci DMx using UART0"
307		depends on ARCH_DAVINCI_DMx
308		select DEBUG_UART_8250
309		help
310		  Say Y here if you want the debug print routines to direct
311		  their output to UART0 serial port on DaVinci DMx devices.
312
313	config DEBUG_DC21285_PORT
314		bool "Kernel low-level debugging messages via footbridge serial port"
315		depends on FOOTBRIDGE
316		help
317		  Say Y here if you want the debug print routines to direct
318		  their output to the serial port in the DC21285 (Footbridge).
319
320	config DEBUG_DIGICOLOR_UA0
321		bool "Kernel low-level debugging messages via Digicolor UA0"
322		depends on ARCH_DIGICOLOR
323		help
324		  Say Y here if you want the debug print routines to direct
325		  their output to the UA0 serial port in the CX92755.
326
327	config DEBUG_EP93XX
328		bool "Kernel low-level debugging messages via ep93xx UART"
329		depends on ARCH_EP93XX
330		select DEBUG_UART_PL01X
331		help
332		  Say Y here if you want kernel low-level debugging support
333		  on Cirrus Logic EP93xx based platforms.
334
335	config DEBUG_FOOTBRIDGE_COM1
336		bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1"
337		depends on FOOTBRIDGE
338		select DEBUG_UART_8250
339		help
340		  Say Y here if you want the debug print routines to direct
341		  their output to the 8250 at PCI COM1.
342
343	config DEBUG_GEMINI
344		bool "Kernel low-level debugging messages via Cortina Systems Gemini UART"
345		depends on ARCH_GEMINI
346		select DEBUG_UART_8250
347		help
348		  Say Y here if you want kernel low-level debugging support
349		  on Cortina Gemini based platforms.
350
351	config DEBUG_HI3620_UART
352		bool "Hisilicon HI3620 Debug UART"
353		depends on ARCH_HI3xxx
354		select DEBUG_UART_PL01X
355		help
356		  Say Y here if you want kernel low-level debugging support
357		  on HI3620 UART.
358
359	config DEBUG_HIGHBANK_UART
360		bool "Kernel low-level debugging messages via Highbank UART"
361		depends on ARCH_HIGHBANK
362		select DEBUG_UART_PL01X
363		help
364		  Say Y here if you want the debug print routines to direct
365		  their output to the UART on Highbank based devices.
366
367	config DEBUG_HIP01_UART
368		bool "Hisilicon Hip01 Debug UART"
369		depends on ARCH_HIP01
370		select DEBUG_UART_8250
371		help
372		  Say Y here if you want kernel low-level debugging support
373		  on HIP01 UART.
374
375	config DEBUG_HIP04_UART
376		bool "Hisilicon HiP04 Debug UART"
377		depends on ARCH_HIP04
378		select DEBUG_UART_8250
379		help
380		  Say Y here if you want kernel low-level debugging support
381		  on HIP04 UART.
382
383	config DEBUG_HIX5HD2_UART
384		bool "Hisilicon Hix5hd2 Debug UART"
385		depends on ARCH_HIX5HD2
386		select DEBUG_UART_PL01X
387		help
388		  Say Y here if you want kernel low-level debugging support
389		  on Hix5hd2 UART.
390
391	config DEBUG_IMX1_UART
392		bool "i.MX1 Debug UART"
393		depends on SOC_IMX1
394		help
395		  Say Y here if you want kernel low-level debugging support
396		  on i.MX1.
397
398	config DEBUG_IMX23_UART
399		bool "i.MX23 Debug UART"
400		depends on SOC_IMX23
401		select DEBUG_UART_PL01X
402		help
403		  Say Y here if you want kernel low-level debugging support
404		  on i.MX23.
405
406	config DEBUG_IMX25_UART
407		bool "i.MX25 Debug UART"
408		depends on SOC_IMX25
409		help
410		  Say Y here if you want kernel low-level debugging support
411		  on i.MX25.
412
413	config DEBUG_IMX21_IMX27_UART
414		bool "i.MX21 and i.MX27 Debug UART"
415		depends on SOC_IMX21 || SOC_IMX27
416		help
417		  Say Y here if you want kernel low-level debugging support
418		  on i.MX21 or i.MX27.
419
420	config DEBUG_IMX28_UART
421		bool "i.MX28 Debug UART"
422		depends on SOC_IMX28
423		select DEBUG_UART_PL01X
424		help
425		  Say Y here if you want kernel low-level debugging support
426		  on i.MX28.
427
428	config DEBUG_IMX31_UART
429		bool "i.MX31 Debug UART"
430		depends on SOC_IMX31
431		help
432		  Say Y here if you want kernel low-level debugging support
433		  on i.MX31.
434
435	config DEBUG_IMX35_UART
436		bool "i.MX35 Debug UART"
437		depends on SOC_IMX35
438		help
439		  Say Y here if you want kernel low-level debugging support
440		  on i.MX35.
441
442	config DEBUG_IMX50_UART
443		bool "i.MX50 Debug UART"
444		depends on SOC_IMX50
445		help
446		  Say Y here if you want kernel low-level debugging support
447		  on i.MX50.
448
449	config DEBUG_IMX51_UART
450		bool "i.MX51 Debug UART"
451		depends on SOC_IMX51
452		help
453		  Say Y here if you want kernel low-level debugging support
454		  on i.MX51.
455
456	config DEBUG_IMX53_UART
457		bool "i.MX53 Debug UART"
458		depends on SOC_IMX53
459		help
460		  Say Y here if you want kernel low-level debugging support
461		  on i.MX53.
462
463	config DEBUG_IMX6Q_UART
464		bool "i.MX6Q/DL Debug UART"
465		depends on SOC_IMX6Q
466		help
467		  Say Y here if you want kernel low-level debugging support
468		  on i.MX6Q/DL.
469
470	config DEBUG_IMX6SL_UART
471		bool "i.MX6SL Debug UART"
472		depends on SOC_IMX6SL
473		help
474		  Say Y here if you want kernel low-level debugging support
475		  on i.MX6SL.
476
477	config DEBUG_IMX6SX_UART
478		bool "i.MX6SX Debug UART"
479		depends on SOC_IMX6SX
480		help
481		  Say Y here if you want kernel low-level debugging support
482		  on i.MX6SX.
483
484	config DEBUG_IMX6UL_UART
485		bool "i.MX6UL Debug UART"
486		depends on SOC_IMX6UL
487		help
488		  Say Y here if you want kernel low-level debugging support
489		  on i.MX6UL.
490
491	config DEBUG_IMX7D_UART
492		bool "i.MX7D Debug UART"
493		depends on SOC_IMX7D
494		help
495		  Say Y here if you want kernel low-level debugging support
496		  on i.MX7D.
497
498	config DEBUG_INTEGRATOR
499		bool "Kernel low-level debugging messages via ARM Integrator UART"
500		depends on ARCH_INTEGRATOR
501		select DEBUG_UART_PL01X
502		help
503		  Say Y here if you want kernel low-level debugging support
504		  on ARM Integrator platforms.
505
506	config DEBUG_KEYSTONE_UART0
507		bool "Kernel low-level debugging on KEYSTONE2 using UART0"
508		depends on ARCH_KEYSTONE
509		select DEBUG_UART_8250
510		help
511		  Say Y here if you want the debug print routines to direct
512		  their output to UART0 serial port on KEYSTONE2 devices.
513
514	config DEBUG_KEYSTONE_UART1
515		bool "Kernel low-level debugging on KEYSTONE2 using UART1"
516		depends on ARCH_KEYSTONE
517		select DEBUG_UART_8250
518		help
519		  Say Y here if you want the debug print routines to direct
520		  their output to UART1 serial port on KEYSTONE2 devices.
521
522	config DEBUG_LPC18XX_UART0
523		bool "Kernel low-level debugging via LPC18xx/43xx UART0"
524		depends on ARCH_LPC18XX
525		select DEBUG_UART_8250
526		help
527		  Say Y here if you want kernel low-level debugging support
528		  on NXP LPC18xx/43xx UART0.
529
530	config DEBUG_LPC32XX
531		bool "Kernel low-level debugging messages via NXP LPC32xx UART"
532		depends on ARCH_LPC32XX
533		select DEBUG_UART_8250
534		help
535		  Say Y here if you want kernel low-level debugging support
536		  on NXP LPC32xx based platforms.
537
538	config DEBUG_MESON_UARTAO
539		bool "Kernel low-level debugging via Meson6 UARTAO"
540		depends on ARCH_MESON
541		help
542		  Say Y here if you want kernel low-lever debugging support
543		  on Amlogic Meson6 based platforms on the UARTAO.
544
545	config DEBUG_MMP_UART2
546		bool "Kernel low-level debugging message via MMP UART2"
547		depends on ARCH_MMP
548		select DEBUG_UART_8250
549		help
550		  Say Y here if you want kernel low-level debugging support
551		  on MMP UART2.
552
553	config DEBUG_MMP_UART3
554		bool "Kernel low-level debugging message via MMP UART3"
555		depends on ARCH_MMP
556		select DEBUG_UART_8250
557		help
558		  Say Y here if you want kernel low-level debugging support
559		  on MMP UART3.
560
561	config DEBUG_MVEBU_UART0
562		bool "Kernel low-level debugging messages via MVEBU UART0 (old bootloaders)"
563		depends on ARCH_MVEBU
564		depends on ARCH_MVEBU && CPU_V7
565		select DEBUG_UART_8250
566		help
567		  Say Y here if you want kernel low-level debugging support
568		  on MVEBU based platforms on UART0.
569
570		  This option should be used with the old bootloaders
571		  that left the internal registers mapped at
572		  0xd0000000. As of today, this is the case on
573		  platforms such as the Globalscale Mirabox or the
574		  Plathome OpenBlocks AX3, when using the original
575		  bootloader.
576
577		  This option will not work on older Marvell platforms
578		  (Kirkwood, Dove, MV78xx0, Orion5x), which should pick
579		  the "new bootloader" variant.
580
581		  If the wrong DEBUG_MVEBU_UART* option is selected,
582		  when u-boot hands over to the kernel, the system
583		  silently crashes, with no serial output at all.
584
585	config DEBUG_MVEBU_UART0_ALTERNATE
586		bool "Kernel low-level debugging messages via MVEBU UART0 (new bootloaders)"
587		depends on ARCH_MVEBU || ARCH_DOVE || ARCH_MV78XX0 || ARCH_ORION5X
588		select DEBUG_UART_8250
589		help
590		  Say Y here if you want kernel low-level debugging support
591		  on MVEBU based platforms on UART0. (Armada XP, Armada 3xx,
592		  Kirkwood, Dove, MV78xx0, Orion5x).
593
594
595		  This option should be used with the new bootloaders
596		  that remap the internal registers at 0xf1000000.
597
598		  If the wrong DEBUG_MVEBU_UART* option is selected,
599		  when u-boot hands over to the kernel, the system
600		  silently crashes, with no serial output at all.
601
602	config DEBUG_MVEBU_UART1_ALTERNATE
603		bool "Kernel low-level debugging messages via MVEBU UART1 (new bootloaders)"
604		depends on ARCH_MVEBU
605		select DEBUG_UART_8250
606		help
607		  Say Y here if you want kernel low-level debugging support
608		  on MVEBU based platforms on UART1. (Armada XP, Armada 3xx,
609		  Kirkwood, Dove, MV78xx0, Orion5x).
610
611		  This option should be used with the new bootloaders
612		  that remap the internal registers at 0xf1000000.
613		  All of the older (pre Armada XP/370) platforms also use
614		  this address, regardless of the boot loader version.
615
616		  If the wrong DEBUG_MVEBU_UART* option is selected,
617		  when u-boot hands over to the kernel, the system
618		  silently crashes, with no serial output at all.
619
620	config DEBUG_MSTARV7_PMUART
621		bool "Kernel low-level debugging messages via MSTARV7 PM UART"
622		depends on ARCH_MSTARV7
623		select DEBUG_UART_8250
624		help
625		  Say Y here if you want kernel low-level debugging support
626		  for MSTAR ARMv7-based platforms on PM UART.
627
628	config DEBUG_MT6589_UART0
629		bool "Mediatek mt6589 UART0"
630		depends on ARCH_MEDIATEK
631		select DEBUG_UART_8250
632		help
633		  Say Y here if you want kernel low-level debugging support
634		  for Mediatek mt6589 based platforms on UART0.
635
636	config DEBUG_MT8127_UART0
637		bool "Mediatek mt8127/mt6592 UART0"
638		depends on ARCH_MEDIATEK
639		select DEBUG_UART_8250
640		help
641		  Say Y here if you want kernel low-level debugging support
642		  for Mediatek mt8127 based platforms on UART0.
643
644	config DEBUG_MT8135_UART3
645		bool "Mediatek mt8135 UART3"
646		depends on ARCH_MEDIATEK
647		select DEBUG_UART_8250
648		help
649		  Say Y here if you want kernel low-level debugging support
650		  for Mediatek mt8135 based platforms on UART3.
651
652	config DEBUG_NOMADIK_UART
653		bool "Kernel low-level debugging messages via NOMADIK UART"
654		depends on ARCH_NOMADIK
655		select DEBUG_UART_PL01X
656		help
657		  Say Y here if you want kernel low-level debugging support
658		  on NOMADIK based platforms.
659
660	config DEBUG_NSPIRE_CLASSIC_UART
661		bool "Kernel low-level debugging via TI-NSPIRE 8250 UART"
662		depends on ARCH_NSPIRE
663		select DEBUG_UART_8250
664		help
665		  Say Y here if you want kernel low-level debugging support
666		  on TI-NSPIRE classic models.
667
668	config DEBUG_NSPIRE_CX_UART
669		bool "Kernel low-level debugging via TI-NSPIRE PL011 UART"
670		depends on ARCH_NSPIRE
671		select DEBUG_UART_PL01X
672		help
673		  Say Y here if you want kernel low-level debugging support
674		  on TI-NSPIRE CX models.
675
676	config DEBUG_OMAP1UART1
677		bool "Kernel low-level debugging via OMAP1 UART1"
678		depends on ARCH_OMAP1
679		select DEBUG_UART_8250
680		help
681		  Say Y here if you want kernel low-level debugging support
682		  on OMAP1 based platforms (except OMAP730) on the UART1.
683
684	config DEBUG_OMAP1UART2
685		bool "Kernel low-level debugging via OMAP1 UART2"
686		depends on ARCH_OMAP1
687		select DEBUG_UART_8250
688		help
689		  Say Y here if you want kernel low-level debugging support
690		  on OMAP1 based platforms (except OMAP730) on the UART2.
691
692	config DEBUG_OMAP1UART3
693		bool "Kernel low-level debugging via OMAP1 UART3"
694		depends on ARCH_OMAP1
695		select DEBUG_UART_8250
696		help
697		  Say Y here if you want kernel low-level debugging support
698		  on OMAP1 based platforms (except OMAP730) on the UART3.
699
700	config DEBUG_OMAP2UART1
701		bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
702		depends on ARCH_OMAP2PLUS
703		select DEBUG_UART_8250
704		help
705		  This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
706		  omap3 torpedo and 3530 lv som.
707
708	config DEBUG_OMAP2UART2
709		bool "Kernel low-level debugging messages via OMAP2/3/4 UART2"
710		depends on ARCH_OMAP2PLUS
711		select DEBUG_UART_8250
712
713	config DEBUG_OMAP2UART3
714		bool "Kernel low-level debugging messages via OMAP2 UART3 (n8x0)"
715		depends on ARCH_OMAP2PLUS
716		select DEBUG_UART_8250
717
718	config DEBUG_OMAP3UART3
719		bool "Kernel low-level debugging messages via OMAP3 UART3 (most omap3 boards)"
720		depends on ARCH_OMAP2PLUS
721		select DEBUG_UART_8250
722		help
723		  This covers at least cm_t3x, beagle, crane, devkit8000,
724		  igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
725		  and 3517evm.
726
727	config DEBUG_OMAP4UART3
728		bool "Kernel low-level debugging messages via OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
729		depends on ARCH_OMAP2PLUS
730		select DEBUG_UART_8250
731
732	config DEBUG_OMAP3UART4
733		bool "Kernel low-level debugging messages via OMAP36XX UART4"
734		depends on ARCH_OMAP2PLUS
735		select DEBUG_UART_8250
736
737	config DEBUG_OMAP4UART4
738		bool "Kernel low-level debugging messages via OMAP4/5 UART4"
739		depends on ARCH_OMAP2PLUS
740		select DEBUG_UART_8250
741
742	config DEBUG_OMAP7XXUART1
743		bool "Kernel low-level debugging via OMAP730 UART1"
744		depends on ARCH_OMAP730
745		select DEBUG_UART_8250
746		help
747		  Say Y here if you want kernel low-level debugging support
748		  on OMAP730 based platforms on the UART1.
749
750	config DEBUG_OMAP7XXUART2
751		bool "Kernel low-level debugging via OMAP730 UART2"
752		depends on ARCH_OMAP730
753		select DEBUG_UART_8250
754		help
755		  Say Y here if you want kernel low-level debugging support
756		  on OMAP730 based platforms on the UART2.
757
758	config DEBUG_OMAP7XXUART3
759		bool "Kernel low-level debugging via OMAP730 UART3"
760		depends on ARCH_OMAP730
761		select DEBUG_UART_8250
762		help
763		  Say Y here if you want kernel low-level debugging support
764		  on OMAP730 based platforms on the UART3.
765
766	config DEBUG_TI81XXUART1
767		bool "Kernel low-level debugging messages via TI81XX UART1 (ti8148evm)"
768		depends on ARCH_OMAP2PLUS
769		select DEBUG_UART_8250
770
771	config DEBUG_TI81XXUART2
772		bool "Kernel low-level debugging messages via TI81XX UART2"
773		depends on ARCH_OMAP2PLUS
774		select DEBUG_UART_8250
775
776	config DEBUG_TI81XXUART3
777		bool "Kernel low-level debugging messages via TI81XX UART3 (ti8168evm)"
778		depends on ARCH_OMAP2PLUS
779		select DEBUG_UART_8250
780
781	config DEBUG_AM33XXUART1
782		bool "Kernel low-level debugging messages via AM33XX UART1"
783		depends on ARCH_OMAP2PLUS
784		select DEBUG_UART_8250
785
786	config DEBUG_ZOOM_UART
787		bool "Kernel low-level debugging messages via Zoom2/3 UART"
788		depends on ARCH_OMAP2PLUS
789		select DEBUG_OMAP2PLUS_UART
790
791	config DEBUG_PXA_UART1
792		depends on ARCH_PXA
793		bool "Use PXA UART1 for low-level debug"
794		select DEBUG_UART_8250
795		help
796		  Say Y here if you want kernel low-level debugging support
797		  on PXA UART1.
798
799	config DEBUG_QCOM_UARTDM
800		bool "Kernel low-level debugging messages via QCOM UARTDM"
801		depends on ARCH_QCOM
802		help
803		  Say Y here if you want the debug print routines to direct
804		  their output to the serial port on Qualcomm devices.
805
806		  ARCH      DEBUG_UART_PHYS   DEBUG_UART_VIRT
807		  APQ8064   0x16640000        0xf0040000
808		  APQ8084   0xf995e000        0xfa75e000
809		  IPQ4019   0x078af000        0xf78af000
810		  MSM8X60   0x19c40000        0xf0040000
811		  MSM8960   0x16440000        0xf0040000
812		  MSM8974   0xf991e000        0xfa71e000
813
814		  Please adjust DEBUG_UART_PHYS and DEBUG_UART_BASE configuration
815		  options based on your needs.
816
817	config DEBUG_REALVIEW_STD_PORT
818		bool "RealView Default UART"
819		depends on ARCH_REALVIEW
820		select DEBUG_UART_PL01X
821		help
822		  Say Y here if you want the debug print routines to direct
823		  their output to the serial port on RealView EB, PB11MP, PBA8
824		  and PBX platforms.
825
826	config DEBUG_REALVIEW_PB1176_PORT
827		bool "RealView PB1176 UART"
828		depends on MACH_REALVIEW_PB1176
829		select DEBUG_UART_PL01X
830		help
831		  Say Y here if you want the debug print routines to direct
832		  their output to the standard serial port on the RealView
833		  PB1176 platform.
834
835	config DEBUG_RV1108_UART0
836		bool "Kernel low-level debugging messages via Rockchip RV1108 UART0"
837		depends on ARCH_ROCKCHIP
838		select DEBUG_UART_8250
839		help
840		  Say Y here if you want kernel low-level debugging support
841                  on Rockchip RV1108 based platforms.
842
843	config DEBUG_RV1108_UART1
844		bool "Kernel low-level debugging messages via Rockchip RV1108 UART1"
845		depends on ARCH_ROCKCHIP
846		select DEBUG_UART_8250
847		help
848		  Say Y here if you want kernel low-level debugging support
849		  on Rockchip RV1108 based platforms.
850
851	config DEBUG_RV1108_UART2
852		bool "Kernel low-level debugging messages via Rockchip RV1108 UART2"
853		depends on ARCH_ROCKCHIP
854		select DEBUG_UART_8250
855		help
856		  Say Y here if you want kernel low-level debugging support
857		  on Rockchip RV1108 based platforms.
858
859	config DEBUG_RK29_UART0
860		bool "Kernel low-level debugging messages via Rockchip RK29 UART0"
861		depends on ARCH_ROCKCHIP
862		select DEBUG_UART_8250
863		help
864		  Say Y here if you want kernel low-level debugging support
865		  on Rockchip based platforms.
866
867	config DEBUG_RK29_UART1
868		bool "Kernel low-level debugging messages via Rockchip RK29 UART1"
869		depends on ARCH_ROCKCHIP
870		select DEBUG_UART_8250
871		help
872		  Say Y here if you want kernel low-level debugging support
873		  on Rockchip based platforms.
874
875	config DEBUG_RK29_UART2
876		bool "Kernel low-level debugging messages via Rockchip RK29 UART2"
877		depends on ARCH_ROCKCHIP
878		select DEBUG_UART_8250
879		help
880		  Say Y here if you want kernel low-level debugging support
881		  on Rockchip based platforms.
882
883	config DEBUG_RK3X_UART0
884		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART0"
885		depends on ARCH_ROCKCHIP
886		select DEBUG_UART_8250
887		help
888		  Say Y here if you want kernel low-level debugging support
889		  on Rockchip based platforms.
890
891	config DEBUG_RK3X_UART1
892		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART1"
893		depends on ARCH_ROCKCHIP
894		select DEBUG_UART_8250
895		help
896		  Say Y here if you want kernel low-level debugging support
897		  on Rockchip based platforms.
898
899	config DEBUG_RK3X_UART2
900		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART2"
901		depends on ARCH_ROCKCHIP
902		select DEBUG_UART_8250
903		help
904		  Say Y here if you want kernel low-level debugging support
905		  on Rockchip based platforms.
906
907	config DEBUG_RK3X_UART3
908		bool "Kernel low-level debugging messages via Rockchip RK30/RK31 UART3"
909		depends on ARCH_ROCKCHIP
910		select DEBUG_UART_8250
911		help
912		  Say Y here if you want kernel low-level debugging support
913		  on Rockchip based platforms.
914
915	config DEBUG_RK32_UART2
916		bool "Kernel low-level debugging messages via Rockchip RK32 UART2"
917		depends on ARCH_ROCKCHIP
918		select DEBUG_UART_8250
919		help
920		  Say Y here if you want kernel low-level debugging support
921		  on Rockchip RK32xx based platforms.
922
923	config DEBUG_R7S72100_SCIF2
924		bool "Kernel low-level debugging messages via SCIF2 on R7S72100"
925		depends on ARCH_R7S72100
926		help
927		  Say Y here if you want kernel low-level debugging support
928		  via SCIF2 on Renesas RZ/A1H (R7S72100).
929
930	config DEBUG_R7S9210_SCIF2
931		bool "Kernel low-level debugging messages via SCIF2 on R7S9210"
932		depends on ARCH_R7S9210
933		help
934		  Say Y here if you want kernel low-level debugging support
935		  via SCIF2 on Renesas RZ/A2M (R7S9210).
936
937	config DEBUG_R7S9210_SCIF4
938		bool "Kernel low-level debugging messages via SCIF4 on R7S9210"
939		depends on ARCH_R7S9210
940		help
941		  Say Y here if you want kernel low-level debugging support
942		  via SCIF4 on Renesas RZ/A2M (R7S9210).
943
944	config DEBUG_RCAR_GEN1_SCIF0
945		bool "Kernel low-level debugging messages via SCIF0 on R8A7778"
946		depends on ARCH_R8A7778
947		help
948		  Say Y here if you want kernel low-level debugging support
949		  via SCIF0 on Renesas R-Car M1A (R8A7778).
950
951	config DEBUG_RCAR_GEN1_SCIF2
952		bool "Kernel low-level debugging messages via SCIF2 on R8A7779"
953		depends on ARCH_R8A7779
954		help
955		  Say Y here if you want kernel low-level debugging support
956		  via SCIF2 on Renesas R-Car H1 (R8A7779).
957
958	config DEBUG_RCAR_GEN2_SCIF0
959		bool "Kernel low-level debugging messages via SCIF0 on R-Car Gen2 and RZ/G1"
960		depends on ARCH_R8A7743 || ARCH_R8A7744 || ARCH_R8A7790 || \
961			ARCH_R8A7791 || ARCH_R8A7792 || ARCH_R8A7793
962		help
963		  Say Y here if you want kernel low-level debugging support
964		  via SCIF0 on Renesas RZ/G1M (R8A7743), RZ/G1N (R8A7744),
965		  R-Car H2 (R8A7790), M2-W (R8A7791), V2H (R8A7792), or
966		  M2-N (R8A7793).
967
968	config DEBUG_RCAR_GEN2_SCIF1
969		bool "Kernel low-level debugging messages via SCIF1 on R8A77470"
970		depends on ARCH_R8A77470
971		help
972		  Say Y here if you want kernel low-level debugging support
973		  via SCIF1 on Renesas RZ/G1C (R8A77470).
974
975	config DEBUG_RCAR_GEN2_SCIF2
976		bool "Kernel low-level debugging messages via SCIF2 on R8A7794"
977		depends on ARCH_R8A7794
978		help
979		  Say Y here if you want kernel low-level debugging support
980		  via SCIF2 on Renesas R-Car E2 (R8A7794).
981
982	config DEBUG_RCAR_GEN2_SCIF4
983		bool "Kernel low-level debugging messages via SCIF4 on R8A7745"
984		depends on ARCH_R8A7745
985		help
986		  Say Y here if you want kernel low-level debugging support
987		  via SCIF4 on Renesas RZ/G1E (R8A7745).
988
989	config DEBUG_RCAR_GEN2_SCIFA2
990		bool "Kernel low-level debugging messages via SCIFA2 on R8A7742"
991		depends on ARCH_R8A7742
992		help
993		  Say Y here if you want kernel low-level debugging support
994		  via SCIFA2 on Renesas RZ/G1H (R8A7742).
995
996	config DEBUG_RMOBILE_SCIFA0
997		bool "Kernel low-level debugging messages via SCIFA0 on R8A73A4"
998		depends on ARCH_R8A73A4
999		help
1000		  Say Y here if you want kernel low-level debugging support
1001		  via SCIFA0 on Renesas R-Mobile APE6 (R8A73A4).
1002
1003	config DEBUG_RMOBILE_SCIFA1
1004		bool "Kernel low-level debugging messages via SCIFA1 on R8A7740"
1005		depends on ARCH_R8A7740
1006		help
1007		  Say Y here if you want kernel low-level debugging support
1008		  via SCIFA1 on Renesas R-Mobile A1 (R8A7740).
1009
1010	config DEBUG_RMOBILE_SCIFA4
1011		bool "Kernel low-level debugging messages via SCIFA4 on SH73A0"
1012		depends on ARCH_SH73A0
1013		help
1014		  Say Y here if you want kernel low-level debugging support
1015		  via SCIFA4 on Renesas SH-Mobile AG5 (SH73A0).
1016
1017	config DEBUG_S3C_UART0
1018		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1019		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1020		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1021		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1022		select DEBUG_S5PV210_UART if ARCH_S5PV210
1023		bool "Use Samsung S3C UART 0 for low-level debug"
1024		help
1025		  Say Y here if you want the debug print routines to direct
1026		  their output to UART 0. The port must have been initialised
1027		  by the boot-loader before use.
1028
1029	config DEBUG_S3C_UART1
1030		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1031		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1032		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1033		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1034		select DEBUG_S5PV210_UART if ARCH_S5PV210
1035		bool "Use Samsung S3C UART 1 for low-level debug"
1036		help
1037		  Say Y here if you want the debug print routines to direct
1038		  their output to UART 1. The port must have been initialised
1039		  by the boot-loader before use.
1040
1041	config DEBUG_S3C_UART2
1042		depends on PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS
1043		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1044		select DEBUG_S3C24XX_UART if ARCH_S3C24XX
1045		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1046		select DEBUG_S5PV210_UART if ARCH_S5PV210
1047		bool "Use Samsung S3C UART 2 for low-level debug"
1048		help
1049		  Say Y here if you want the debug print routines to direct
1050		  their output to UART 2. The port must have been initialised
1051		  by the boot-loader before use.
1052
1053	config DEBUG_S3C_UART3
1054		depends on ARCH_EXYNOS || ARCH_S5PV210
1055		select DEBUG_EXYNOS_UART if ARCH_EXYNOS
1056		select DEBUG_S3C64XX_UART if ARCH_S3C64XX
1057		select DEBUG_S5PV210_UART if ARCH_S5PV210
1058		bool "Use Samsung S3C UART 3 for low-level debug"
1059		help
1060		  Say Y here if you want the debug print routines to direct
1061		  their output to UART 3. The port must have been initialised
1062		  by the boot-loader before use.
1063
1064	config DEBUG_S3C2410_UART0
1065		depends on ARCH_S3C24XX
1066		select DEBUG_S3C2410_UART
1067		bool "Use S3C2410/S3C2412 UART 0 for low-level debug"
1068		help
1069		  Say Y here if you want the debug print routines to direct
1070		  their output to UART 0. The port must have been initialised
1071		  by the boot-loader before use.
1072
1073	config DEBUG_S3C2410_UART1
1074		depends on ARCH_S3C24XX
1075		select DEBUG_S3C2410_UART
1076		bool "Use S3C2410/S3C2412 UART 1 for low-level debug"
1077		help
1078		  Say Y here if you want the debug print routines to direct
1079		  their output to UART 1. The port must have been initialised
1080		  by the boot-loader before use.
1081
1082	config DEBUG_S3C2410_UART2
1083		depends on ARCH_S3C24XX
1084		select DEBUG_S3C2410_UART
1085		bool "Use S3C2410/S3C2412 UART 2 for low-level debug"
1086		help
1087		  Say Y here if you want the debug print routines to direct
1088		  their output to UART 2. The port must have been initialised
1089		  by the boot-loader before use.
1090
1091	config DEBUG_SA1100
1092		depends on ARCH_SA1100
1093		bool "Use SA1100 UARTs for low-level debug"
1094		help
1095		  Say Y here if you want kernel low-level debugging support
1096		  on SA-11x0 UART ports. The kernel will check for the first
1097		  enabled UART in a sequence 3-1-2.
1098
1099	config DEBUG_SD5203_UART
1100		bool "Hisilicon SD5203 Debug UART"
1101		depends on ARCH_SD5203
1102		select DEBUG_UART_8250
1103		help
1104		  Say Y here if you want kernel low-level debugging support
1105		  on SD5203 UART.
1106
1107	config DEBUG_SOCFPGA_UART0
1108		depends on ARCH_INTEL_SOCFPGA
1109		bool "Use SOCFPGA UART0 for low-level debug"
1110		select DEBUG_UART_8250
1111		help
1112		  Say Y here if you want kernel low-level debugging support
1113		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.
1114
1115	config DEBUG_SOCFPGA_ARRIA10_UART1
1116		depends on ARCH_INTEL_SOCFPGA
1117		bool "Use SOCFPGA Arria10 UART1 for low-level debug"
1118		select DEBUG_UART_8250
1119		help
1120		  Say Y here if you want kernel low-level debugging support
1121		  on SOCFPGA(Arria 10) based platforms.
1122
1123	config DEBUG_SOCFPGA_CYCLONE5_UART1
1124		depends on ARCH_INTEL_SOCFPGA
1125		bool "Use SOCFPGA Cyclone 5 UART1 for low-level debug"
1126		select DEBUG_UART_8250
1127		help
1128		  Say Y here if you want kernel low-level debugging support
1129		  on SOCFPGA(Cyclone 5 and Arria 5) based platforms.
1130
1131	config DEBUG_SUN9I_UART0
1132		bool "Kernel low-level debugging messages via sun9i UART0"
1133		depends on MACH_SUN9I
1134		select DEBUG_UART_8250
1135		help
1136		  Say Y here if you want kernel low-level debugging support
1137		  on Allwinner A80 based platforms on the UART0.
1138
1139	config DEBUG_SUNXI_UART0
1140		bool "Kernel low-level debugging messages via sunXi UART0"
1141		depends on ARCH_SUNXI
1142		select DEBUG_UART_8250
1143		help
1144		  Say Y here if you want kernel low-level debugging support
1145		  on Allwinner A1X based platforms on the UART0.
1146
1147	config DEBUG_SUNXI_UART1
1148		bool "Kernel low-level debugging messages via sunXi UART1"
1149		depends on ARCH_SUNXI
1150		select DEBUG_UART_8250
1151		help
1152		  Say Y here if you want kernel low-level debugging support
1153		  on Allwinner A1X based platforms on the UART1.
1154
1155	config DEBUG_SUNXI_R_UART
1156		bool "Kernel low-level debugging messages via sunXi R_UART"
1157		depends on MACH_SUN6I || MACH_SUN8I
1158		select DEBUG_UART_8250
1159		help
1160		  Say Y here if you want kernel low-level debugging support
1161		  on Allwinner A31/A23 based platforms on the R_UART.
1162
1163	config DEBUG_SPEAR3XX
1164		bool "Kernel low-level debugging messages via ST SPEAr 3xx/6xx UART"
1165		depends on ARCH_SPEAR3XX || ARCH_SPEAR6XX
1166		select DEBUG_UART_PL01X
1167		help
1168		  Say Y here if you want kernel low-level debugging support
1169		  on ST SPEAr based platforms.
1170
1171	config DEBUG_SPEAR13XX
1172		bool "Kernel low-level debugging messages via ST SPEAr 13xx UART"
1173		depends on ARCH_SPEAR13XX
1174		select DEBUG_UART_PL01X
1175		help
1176		  Say Y here if you want kernel low-level debugging support
1177		  on ST SPEAr13xx based platforms.
1178
1179	config DEBUG_STIH41X_ASC2
1180		bool "Use StiH415/416 ASC2 UART for low-level debug"
1181		depends on ARCH_STI
1182		help
1183		  Say Y here if you want kernel low-level debugging support
1184		  on STiH415/416 based platforms like b2000, which has
1185		  default UART wired up to ASC2.
1186
1187		  If unsure, say N.
1188
1189	config DEBUG_STIH41X_SBC_ASC1
1190		bool "Use StiH415/416 SBC ASC1 UART for low-level debug"
1191		depends on ARCH_STI
1192		help
1193		  Say Y here if you want kernel low-level debugging support
1194		  on STiH415/416 based platforms like b2020. which has
1195		  default UART wired up to SBC ASC1.
1196
1197		  If unsure, say N.
1198
1199	config DEBUG_STIH418_SBC_ASC0
1200		bool "Use StiH418 SBC ASC0 UART for low-level debug"
1201		depends on ARCH_STI
1202		help
1203		  Say Y here if you want kernel low-level debugging support
1204		  on STiH418 based platforms which has default UART wired
1205		  up to SBC ASC0.
1206
1207		  If unsure, say N.
1208
1209	config STM32F4_DEBUG_UART
1210		bool "Use STM32F4 UART for low-level debug"
1211		depends on MACH_STM32F429 || MACH_STM32F469
1212		select DEBUG_STM32_UART
1213		help
1214		  Say Y here if you want kernel low-level debugging support
1215		  on STM32F4 based platforms, which default UART is wired on
1216		  USART1, but another UART instance can be selected by modifying
1217		  CONFIG_DEBUG_UART_PHYS.
1218
1219		  If unsure, say N.
1220
1221	config STM32F7_DEBUG_UART
1222		bool "Use STM32F7 UART for low-level debug"
1223		depends on MACH_STM32F746 || MACH_STM32F769
1224		select DEBUG_STM32_UART
1225		help
1226		  Say Y here if you want kernel low-level debugging support
1227		  on STM32F7 based platforms, which default UART is wired on
1228		  USART1, but another UART instance can be selected by modifying
1229		  CONFIG_DEBUG_UART_PHYS.
1230
1231		  If unsure, say N.
1232
1233	config STM32H7_DEBUG_UART
1234		bool "Use STM32H7 UART for low-level debug"
1235		depends on MACH_STM32H743
1236		select DEBUG_STM32_UART
1237		help
1238		  Say Y here if you want kernel low-level debugging support
1239		  on STM32H7 based platforms, which default UART is wired on
1240		  USART1, but another UART instance can be selected by modifying
1241		  CONFIG_DEBUG_UART_PHYS.
1242
1243		  If unsure, say N.
1244
1245	config STM32MP1_DEBUG_UART
1246		bool "Use STM32MP1 UART for low-level debug"
1247		depends on MACH_STM32MP157
1248		select DEBUG_STM32_UART
1249		help
1250		  Say Y here if you want kernel low-level debugging support
1251		  on STM32MP1 based platforms, wich default UART is wired on
1252		  UART4, but another UART instance can be selected by modifying
1253		  CONFIG_DEBUG_UART_PHYS and CONFIG_DEBUG_UART_VIRT.
1254
1255		  If unsure, say N.
1256
1257	config TEGRA_DEBUG_UART_AUTO_ODMDATA
1258		bool "Kernel low-level debugging messages via Tegra UART via ODMDATA"
1259		depends on ARCH_TEGRA
1260		select DEBUG_TEGRA_UART
1261		help
1262		  Automatically determines which UART to use for low-level
1263		  debug based on the ODMDATA value. This value is part of
1264		  the BCT, and is written to the boot memory device using
1265		  nvflash, or other flashing tool.  When bits 19:18 are 3,
1266		  then bits 17:15 indicate which UART to use; 0/1/2/3/4
1267		  are UART A/B/C/D/E.
1268
1269	config TEGRA_DEBUG_UARTA
1270		bool "Kernel low-level debugging messages via Tegra UART A"
1271		depends on ARCH_TEGRA
1272		select DEBUG_TEGRA_UART
1273		help
1274		  Say Y here if you want kernel low-level debugging support
1275		  on Tegra based platforms.
1276
1277	config TEGRA_DEBUG_UARTB
1278		bool "Kernel low-level debugging messages via Tegra UART B"
1279		depends on ARCH_TEGRA
1280		select DEBUG_TEGRA_UART
1281		help
1282		  Say Y here if you want kernel low-level debugging support
1283		  on Tegra based platforms.
1284
1285	config TEGRA_DEBUG_UARTC
1286		bool "Kernel low-level debugging messages via Tegra UART C"
1287		depends on ARCH_TEGRA
1288		select DEBUG_TEGRA_UART
1289		help
1290		  Say Y here if you want kernel low-level debugging support
1291		  on Tegra based platforms.
1292
1293	config TEGRA_DEBUG_UARTD
1294		bool "Kernel low-level debugging messages via Tegra UART D"
1295		depends on ARCH_TEGRA
1296		select DEBUG_TEGRA_UART
1297		help
1298		  Say Y here if you want kernel low-level debugging support
1299		  on Tegra based platforms.
1300
1301	config TEGRA_DEBUG_UARTE
1302		bool "Kernel low-level debugging messages via Tegra UART E"
1303		depends on ARCH_TEGRA
1304		select DEBUG_TEGRA_UART
1305		help
1306		  Say Y here if you want kernel low-level debugging support
1307		  on Tegra based platforms.
1308
1309	config DEBUG_UX500_UART
1310		depends on ARCH_U8500
1311		bool "Use Ux500 UART for low-level debug"
1312		help
1313		  Say Y here if you want kernel low-level debugging support
1314		  on Ux500 based platforms.
1315
1316	config DEBUG_VERSATILE
1317		bool "Kernel low-level debugging messages via ARM Versatile UART"
1318		depends on ARCH_VERSATILE
1319		select DEBUG_UART_PL01X
1320		help
1321		  Say Y here if you want kernel low-level debugging support
1322		  on ARM Versatile platforms.
1323
1324	config DEBUG_VEXPRESS_UART0_DETECT
1325		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
1326		depends on ARCH_VEXPRESS && CPU_CP15_MMU
1327		help
1328		  This option enables a simple heuristic which tries to determine
1329		  the motherboard's memory map variant (original or RS1) and then
1330		  choose the relevant UART0 base address.
1331
1332		  Note that this will only work with standard A-class core tiles,
1333		  and may fail with non-standard SMM or custom software models.
1334
1335	config DEBUG_VEXPRESS_UART0_CA9
1336		bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)"
1337		depends on ARCH_VEXPRESS
1338		select DEBUG_UART_PL01X
1339		help
1340		  This option selects UART0 at 0x10009000. Except for custom models,
1341		  this applies only to the V2P-CA9 tile.
1342
1343	config DEBUG_VEXPRESS_UART0_RS1
1344		bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)"
1345		depends on ARCH_VEXPRESS
1346		select DEBUG_UART_PL01X
1347		help
1348		  This option selects UART0 at 0x1c090000. This applies to most
1349		  of the tiles using the RS1 memory map, including all new A-class
1350		  core tiles, FPGA-based SMMs and software models.
1351
1352	config DEBUG_VEXPRESS_UART0_CRX
1353		bool "Use PL011 UART0 at 0xb0090000 (Cortex-R compliant tiles)"
1354		depends on ARCH_VEXPRESS && !MMU
1355		select DEBUG_UART_PL01X
1356		help
1357		  This option selects UART0 at 0xb0090000. This is appropriate for
1358		  Cortex-R series tiles and SMMs, such as Cortex-R5 and Cortex-R7
1359
1360	config DEBUG_VF_UART
1361		bool "Vybrid UART"
1362		depends on SOC_VF610
1363		help
1364		  Say Y here if you want kernel low-level debugging support
1365		  on Vybrid based platforms.
1366
1367	config DEBUG_VT8500_UART0
1368		bool "Use UART0 on VIA/Wondermedia SoCs"
1369		depends on ARCH_VT8500
1370		help
1371		  This option selects UART0 on VIA/Wondermedia System-on-a-chip
1372		  devices, including VT8500, WM8505, WM8650 and WM8850.
1373
1374	config DEBUG_ZYNQ_UART0
1375		bool "Kernel low-level debugging on Xilinx Zynq using UART0"
1376		depends on ARCH_ZYNQ
1377		help
1378		  Say Y here if you want the debug print routines to direct
1379		  their output to UART0 on the Zynq platform.
1380
1381	config DEBUG_ZYNQ_UART1
1382		bool "Kernel low-level debugging on Xilinx Zynq using UART1"
1383		depends on ARCH_ZYNQ
1384		help
1385		  Say Y here if you want the debug print routines to direct
1386		  their output to UART1 on the Zynq platform.
1387
1388		  If you have a ZC702 board and want early boot messages to
1389		  appear on the USB serial adaptor, select this option.
1390
1391	config DEBUG_ICEDCC
1392		bool "Kernel low-level debugging via EmbeddedICE DCC channel"
1393		help
1394		  Say Y here if you want the debug print routines to direct
1395		  their output to the EmbeddedICE macrocell's DCC channel using
1396		  co-processor 14. This is known to work on the ARM9 style ICE
1397		  channel and on the XScale with the PEEDI.
1398
1399		  Note that the system will appear to hang during boot if there
1400		  is nothing connected to read from the DCC.
1401
1402	config DEBUG_SEMIHOSTING
1403		bool "Kernel low-level debug output via semihosting I/O"
1404		help
1405		  Semihosting enables code running on an ARM target to use
1406		  the I/O facilities on a host debugger/emulator through a
1407		  simple SVC call. The host debugger or emulator must have
1408		  semihosting enabled for the special svc call to be trapped
1409		  otherwise the kernel will crash.
1410
1411		  This is known to work with OpenOCD, as well as
1412		  ARM's Fast Models, or any other controlling environment
1413		  that implements semihosting.
1414
1415		  For more details about semihosting, please see
1416		  chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
1417
1418	config DEBUG_LL_UART_8250
1419		bool "Kernel low-level debugging via 8250 UART"
1420		help
1421		  Say Y here if you wish the debug print routes to direct
1422		  their output to an 8250 UART.  You can use this option
1423		  to provide the parameters for the 8250 UART rather than
1424		  selecting one of the platform specific options above if
1425		  you know the parameters for the port.
1426
1427		  This option is preferred over the platform specific
1428		  options; the platform specific options are deprecated
1429		  and will be soon removed.
1430
1431	config DEBUG_LL_UART_PL01X
1432		bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
1433		help
1434		  Say Y here if you wish the debug print routes to direct
1435		  their output to a PL01x Primecell UART.  You can use
1436		  this option to provide the parameters for the UART
1437		  rather than selecting one of the platform specific
1438		  options above if you know the parameters for the port.
1439
1440		  This option is preferred over the platform specific
1441		  options; the platform specific options are deprecated
1442		  and will be soon removed.
1443
1444endchoice
1445
1446config DEBUG_AT91_UART
1447	bool
1448	depends on ARCH_AT91
1449
1450config DEBUG_EXYNOS_UART
1451	bool
1452
1453config DEBUG_S3C2410_UART
1454	bool
1455	select DEBUG_S3C24XX_UART
1456
1457config DEBUG_S3C24XX_UART
1458	bool
1459
1460config DEBUG_S3C64XX_UART
1461	bool
1462
1463config DEBUG_S5PV210_UART
1464	bool
1465
1466config DEBUG_S3C_UART
1467	depends on DEBUG_S3C2410_UART || DEBUG_S3C24XX_UART || \
1468		   DEBUG_S3C64XX_UART ||  DEBUG_S5PV210_UART || \
1469		   DEBUG_EXYNOS_UART
1470	int
1471	default "0" if DEBUG_S3C_UART0
1472	default "1" if DEBUG_S3C_UART1
1473	default "2" if DEBUG_S3C_UART2
1474	default "3" if DEBUG_S3C_UART3
1475
1476config DEBUG_OMAP2PLUS_UART
1477	bool
1478	depends on ARCH_OMAP2PLUS
1479
1480config DEBUG_IMX_UART_PORT
1481	int "i.MX Debug UART Port Selection"
1482	depends on DEBUG_IMX1_UART || \
1483		   DEBUG_IMX25_UART || \
1484		   DEBUG_IMX21_IMX27_UART || \
1485		   DEBUG_IMX31_UART || \
1486		   DEBUG_IMX35_UART || \
1487		   DEBUG_IMX50_UART || \
1488		   DEBUG_IMX51_UART || \
1489		   DEBUG_IMX53_UART || \
1490		   DEBUG_IMX6Q_UART || \
1491		   DEBUG_IMX6SL_UART || \
1492		   DEBUG_IMX6SX_UART || \
1493		   DEBUG_IMX6UL_UART || \
1494		   DEBUG_IMX7D_UART
1495	default 1
1496	help
1497	  Choose UART port on which kernel low-level debug messages
1498	  should be output.
1499
1500config DEBUG_VF_UART_PORT
1501	int "Vybrid Debug UART Port Selection" if DEBUG_VF_UART
1502	default 1
1503	range 0 3
1504	depends on SOC_VF610
1505	help
1506	  Choose UART port on which kernel low-level debug messages
1507	  should be output.
1508
1509config DEBUG_TEGRA_UART
1510	bool
1511	depends on ARCH_TEGRA
1512
1513config DEBUG_STM32_UART
1514	bool
1515	depends on ARCH_STM32
1516
1517config DEBUG_UART_FLOW_CONTROL
1518	bool "Enable flow control (CTS) for the debug UART"
1519	depends on DEBUG_LL
1520	default y if DEBUG_FOOTBRIDGE_COM1 || DEBUG_GEMINI || ARCH_RPC
1521	help
1522	  Some UART ports are connected to terminals that will use modem
1523	  control signals to indicate whether they are ready to receive text.
1524	  In practice this means that the terminal is asserting the special
1525	  control signal CTS (Clear To Send). If your debug UART supports
1526	  this and your debug terminal will require it, enable this option.
1527
1528config DEBUG_LL_INCLUDE
1529	string
1530	default "debug/sa1100.S" if DEBUG_SA1100
1531	default "debug/palmchip.S" if DEBUG_UART_8250_PALMCHIP
1532	default "debug/8250.S" if DEBUG_LL_UART_8250 || DEBUG_UART_8250
1533	default "debug/at91.S" if DEBUG_AT91_UART
1534	default "debug/asm9260.S" if DEBUG_ASM9260_UART
1535	default "debug/clps711x.S" if DEBUG_CLPS711X_UART1 || DEBUG_CLPS711X_UART2
1536	default "debug/dc21285.S" if DEBUG_DC21285_PORT
1537	default "debug/meson.S" if DEBUG_MESON_UARTAO
1538	default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
1539	default "debug/exynos.S" if DEBUG_EXYNOS_UART
1540	default "debug/icedcc.S" if DEBUG_ICEDCC
1541	default "debug/imx.S" if DEBUG_IMX1_UART || \
1542				 DEBUG_IMX25_UART || \
1543				 DEBUG_IMX21_IMX27_UART || \
1544				 DEBUG_IMX31_UART || \
1545				 DEBUG_IMX35_UART || \
1546				 DEBUG_IMX50_UART || \
1547				 DEBUG_IMX51_UART || \
1548				 DEBUG_IMX53_UART ||\
1549				 DEBUG_IMX6Q_UART || \
1550				 DEBUG_IMX6SL_UART || \
1551				 DEBUG_IMX6SX_UART || \
1552				 DEBUG_IMX6UL_UART || \
1553				 DEBUG_IMX7D_UART
1554	default "debug/msm.S" if DEBUG_QCOM_UARTDM
1555	default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
1556	default "debug/renesas-scif.S" if DEBUG_R7S72100_SCIF2
1557	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF2
1558	default "debug/renesas-scif.S" if DEBUG_R7S9210_SCIF4
1559	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF0
1560	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN1_SCIF2
1561	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF0
1562	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF1
1563	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF2
1564	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIF4
1565	default "debug/renesas-scif.S" if DEBUG_RCAR_GEN2_SCIFA2
1566	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA0
1567	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA1
1568	default "debug/renesas-scif.S" if DEBUG_RMOBILE_SCIFA4
1569	default "debug/s3c24xx.S" if DEBUG_S3C24XX_UART || DEBUG_S3C64XX_UART
1570	default "debug/s5pv210.S" if DEBUG_S5PV210_UART
1571	default "debug/sti.S" if DEBUG_STIH41X_ASC2
1572	default "debug/sti.S" if DEBUG_STIH41X_SBC_ASC1
1573	default "debug/sti.S" if DEBUG_STIH418_SBC_ASC0
1574	default "debug/stm32.S" if DEBUG_STM32_UART
1575	default "debug/tegra.S" if DEBUG_TEGRA_UART
1576	default "debug/ux500.S" if DEBUG_UX500_UART
1577	default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT
1578	default "debug/vf.S" if DEBUG_VF_UART
1579	default "debug/vt8500.S" if DEBUG_VT8500_UART0
1580	default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
1581	default "debug/bcm63xx.S" if DEBUG_BCM63XX_UART
1582	default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
1583	default "debug/brcmstb.S" if DEBUG_BRCMSTB_UART
1584	default "mach/debug-macro.S"
1585
1586# Compatibility options for PL01x
1587config DEBUG_UART_PL01X
1588	bool
1589
1590# Compatibility options for 8250
1591config DEBUG_UART_8250
1592	def_bool ARCH_IOP32X || ARCH_IXP4XX || ARCH_RPC
1593
1594config DEBUG_UART_PHYS
1595	hex "Physical base address of debug UART"
1596	default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
1597	default 0x01c28000 if DEBUG_SUNXI_UART0
1598	default 0x01c28400 if DEBUG_SUNXI_UART1
1599	default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
1600	default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
1601	default 0x01f02800 if DEBUG_SUNXI_R_UART
1602	default 0x02530c00 if DEBUG_KEYSTONE_UART0
1603	default 0x02531000 if DEBUG_KEYSTONE_UART1
1604	default 0x03010fe0 if ARCH_RPC
1605	default 0x07000000 if DEBUG_SUN9I_UART0
1606	default 0x09530000 if DEBUG_STIH418_SBC_ASC0
1607	default 0x10009000 if DEBUG_REALVIEW_STD_PORT || \
1608				DEBUG_VEXPRESS_UART0_CA9
1609	default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
1610	default 0x10124000 if DEBUG_RK3X_UART0
1611	default 0x10126000 if DEBUG_RK3X_UART1
1612	default 0x101f1000 if DEBUG_VERSATILE
1613	default 0x101fb000 if DEBUG_NOMADIK_UART
1614	default 0x10210000 if DEBUG_RV1108_UART2
1615	default 0x10220000 if DEBUG_RV1108_UART1
1616	default 0x10230000 if DEBUG_RV1108_UART0
1617	default 0x11002000 if DEBUG_MT8127_UART0
1618	default 0x11006000 if DEBUG_MT6589_UART0
1619	default 0x11009000 if DEBUG_MT8135_UART3
1620	default 0x16000000 if DEBUG_INTEGRATOR
1621	default 0x1600d000 if DEBUG_SD5203_UART
1622	default 0x18000300 if DEBUG_BCM_5301X
1623	default 0x18000400 if DEBUG_BCM_HR2
1624	default 0x18023000 if DEBUG_BCM_IPROC_UART3
1625	default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
1626	default 0x1f221000 if DEBUG_MSTARV7_PMUART
1627	default 0x20001000 if DEBUG_HIP01_UART
1628	default 0x20060000 if DEBUG_RK29_UART0
1629	default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1630	default 0x20068000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1631	default 0x20201000 if DEBUG_BCM2835
1632	default 0x3e000000 if DEBUG_BCM_KONA_UART
1633	default 0x3f201000 if DEBUG_BCM2836
1634	default 0x40010000 if STM32MP1_DEBUG_UART
1635	default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
1636				STM32H7_DEBUG_UART
1637	default 0x40028000 if DEBUG_AT91_SAMV7_USART1
1638	default 0x40081000 if DEBUG_LPC18XX_UART0
1639	default 0x40090000 if DEBUG_LPC32XX
1640	default 0x40100000 if DEBUG_PXA_UART1
1641	default 0x42000000 if DEBUG_GEMINI
1642	default 0x44e09000 if DEBUG_AM33XXUART1
1643	default 0x48020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
1644	default 0x48022000 if DEBUG_TI81XXUART2
1645	default 0x48024000 if DEBUG_TI81XXUART3
1646	default 0x4806a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
1647				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
1648	default 0x4806c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
1649				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1650	default 0x4806e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
1651	default 0x49020000 if DEBUG_OMAP3UART3
1652	default 0x49042000 if DEBUG_OMAP3UART4
1653	default 0x50000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1654				DEBUG_S3C2410_UART0)
1655	default 0x50004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1656				DEBUG_S3C2410_UART1)
1657	default 0x50008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1658				DEBUG_S3C2410_UART2)
1659	default 0x78000000 if DEBUG_CNS3XXX
1660	default 0x7c0003f8 if DEBUG_FOOTBRIDGE_COM1
1661	default 0x7f005000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
1662	default 0x7f005400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
1663	default 0x7f005800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
1664	default 0x7f005c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1665	default 0x80010000 if DEBUG_ASM9260_UART
1666	default 0x80070000 if DEBUG_IMX23_UART
1667	default 0x80074000 if DEBUG_IMX28_UART
1668	default 0x808c0000 if DEBUG_EP93XX || ARCH_EP93XX
1669	default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1670	default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
1671	default 0xc8000000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1672	default 0xc8000003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1673	default 0xd0000000 if DEBUG_SPEAR3XX
1674	default 0xd0012000 if DEBUG_MVEBU_UART0
1675	default 0xc81004c0 if DEBUG_MESON_UARTAO
1676	default 0xd4017000 if DEBUG_MMP_UART2
1677	default 0xd4018000 if DEBUG_MMP_UART3
1678	default 0xe0000000 if DEBUG_SPEAR13XX
1679	default 0xe1824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1680	default 0xe4007000 if DEBUG_HIP04_UART
1681	default 0xe6c40000 if DEBUG_RMOBILE_SCIFA0
1682	default 0xe6c50000 if DEBUG_RMOBILE_SCIFA1
1683	default 0xe6c60000 if DEBUG_RCAR_GEN2_SCIFA2
1684	default 0xe6c80000 if DEBUG_RMOBILE_SCIFA4
1685	default 0xe6e58000 if DEBUG_RCAR_GEN2_SCIF2
1686	default 0xe6e60000 if DEBUG_RCAR_GEN2_SCIF0
1687	default 0xe6e68000 if DEBUG_RCAR_GEN2_SCIF1
1688	default 0xe6ee0000 if DEBUG_RCAR_GEN2_SCIF4
1689	default 0xe8008000 if DEBUG_R7S72100_SCIF2 || DEBUG_R7S9210_SCIF2
1690	default 0xe8009000 if DEBUG_R7S9210_SCIF4
1691	default 0xf0000000 if DEBUG_DIGICOLOR_UA0
1692	default 0xf1012000 if DEBUG_MVEBU_UART0_ALTERNATE
1693	default 0xf1012100 if DEBUG_MVEBU_UART1_ALTERNATE
1694	default 0xf7fc9000 if DEBUG_BERLIN_UART
1695	default 0xf8020000 if DEBUG_AT91_SAMA5D2_UART1
1696	default 0xf8b00000 if DEBUG_HIX5HD2_UART
1697	default 0xf991e000 if DEBUG_QCOM_UARTDM
1698	default 0xfc00c000 if DEBUG_AT91_SAMA5D4_USART3
1699	default 0xfcb00000 if DEBUG_HI3620_UART
1700	default 0xfd883000 if DEBUG_ALPINE_UART0
1701	default 0xfe531000 if DEBUG_STIH41X_SBC_ASC1
1702	default 0xfe800000 if ARCH_IOP32X
1703	default 0xfed32000 if DEBUG_STIH41X_ASC2
1704	default 0xff690000 if DEBUG_RK32_UART2
1705	default 0xffc02000 if DEBUG_SOCFPGA_UART0
1706	default 0xffc02100 if DEBUG_SOCFPGA_ARRIA10_UART1
1707	default 0xffc03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1708	default 0xffe40000 if DEBUG_RCAR_GEN1_SCIF0
1709	default 0xffe42000 if DEBUG_RCAR_GEN1_SCIF2
1710	default 0xfff36000 if DEBUG_HIGHBANK_UART
1711	default 0xfffb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
1712	default 0xfffb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
1713	default 0xfffb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
1714	default 0xfffe8600 if DEBUG_BCM63XX_UART
1715	default 0xffffee00 if DEBUG_AT91_SAM9263_DBGU
1716	default 0xfffff200 if DEBUG_AT91_RM9200_DBGU
1717	depends on ARCH_EP93XX || \
1718	        DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1719		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1720		DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
1721		DEBUG_R7S9210_SCIF2 || DEBUG_R7S9210_SCIF4 || \
1722		DEBUG_RCAR_GEN1_SCIF0 || DEBUG_RCAR_GEN1_SCIF2 || \
1723		DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF1 || \
1724		DEBUG_RCAR_GEN2_SCIF2 || DEBUG_RCAR_GEN2_SCIF4 || \
1725		DEBUG_RCAR_GEN2_SCIFA2 || \
1726		DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
1727		DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
1728		DEBUG_S3C64XX_UART || \
1729		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1730		DEBUG_DIGICOLOR_UA0 || \
1731		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1732		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
1733		DEBUG_STIH418_SBC_ASC0
1734
1735config DEBUG_UART_VIRT
1736	hex "Virtual base address of debug UART"
1737	default 0xc881f000 if DEBUG_RV1108_UART2
1738	default 0xc8821000 if DEBUG_RV1108_UART1
1739	default 0xc8912000 if DEBUG_RV1108_UART0
1740	default 0xe0010fe0 if ARCH_RPC
1741	default 0xe0824200 if DEBUG_AT91_SAMA7G5_FLEXCOM3
1742	default 0xf0010000 if DEBUG_ASM9260_UART
1743	default 0xf0100000 if DEBUG_DIGICOLOR_UA0
1744	default 0xf01fb000 if DEBUG_NOMADIK_UART
1745	default 0xf0201000 if DEBUG_BCM2835 || DEBUG_BCM2836
1746	default 0xf0221000 if DEBUG_MSTARV7_PMUART
1747	default 0xf1000300 if DEBUG_BCM_5301X
1748	default 0xf1000400 if DEBUG_BCM_HR2
1749	default 0xf1002000 if DEBUG_MT8127_UART0
1750	default 0xf1006000 if DEBUG_MT6589_UART0
1751	default 0xf1009000 if DEBUG_MT8135_UART3
1752	default 0xf1023000 if DEBUG_BCM_IPROC_UART3
1753	default 0xf11f1000 if DEBUG_VERSATILE
1754	default 0xf1600000 if DEBUG_INTEGRATOR
1755	default 0xf1c28000 if DEBUG_SUNXI_UART0
1756	default 0xf1c28400 if DEBUG_SUNXI_UART1
1757	default 0xf1f02800 if DEBUG_SUNXI_R_UART
1758	default 0xf31004c0 if DEBUG_MESON_UARTAO
1759	default 0xf4090000 if DEBUG_LPC32XX
1760	default 0xf4200000 if DEBUG_GEMINI
1761	default 0xf6200000 if DEBUG_PXA_UART1
1762	default 0xf7000000 if DEBUG_SUN9I_UART0
1763	default 0xf7000000 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART0
1764	default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \
1765				DEBUG_S3C2410_UART0)
1766	default 0xf7000400 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART1
1767	default 0xf7000800 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART2
1768	default 0xf7000c00 if DEBUG_S3C64XX_UART && DEBUG_S3C_UART3
1769	default 0xf7004000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART1 || \
1770				DEBUG_S3C2410_UART1)
1771	default 0xf7008000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART2 || \
1772				DEBUG_S3C2410_UART2)
1773	default 0xf7020000 if DEBUG_AT91_SAMA5D2_UART1
1774	default 0xf7fc9000 if DEBUG_BERLIN_UART
1775	default 0xf8007000 if DEBUG_HIP04_UART
1776	default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9
1777	default 0xf8090000 if DEBUG_VEXPRESS_UART0_RS1
1778	default 0xf8ffee00 if DEBUG_AT91_SAM9263_DBGU
1779	default 0xf8fff200 if DEBUG_AT91_RM9200_DBGU
1780	default 0xf9530000 if DEBUG_STIH418_SBC_ASC0
1781	default 0xf9e09000 if DEBUG_AM33XXUART1
1782	default 0xfa020000 if DEBUG_OMAP4UART3 || DEBUG_TI81XXUART1
1783	default 0xfa022000 if DEBUG_TI81XXUART2
1784	default 0xfa024000 if DEBUG_TI81XXUART3
1785	default 0xfa06a000 if DEBUG_OMAP2UART1 || DEBUG_OMAP3UART1 || \
1786				DEBUG_OMAP4UART1 || DEBUG_OMAP5UART1
1787	default 0xfa06c000 if DEBUG_OMAP2UART2 || DEBUG_OMAP3UART2 || \
1788				DEBUG_OMAP4UART2 || DEBUG_OMAP5UART2
1789	default 0xfa06e000 if DEBUG_OMAP2UART3 || DEBUG_OMAP4UART4
1790	default 0xfa71e000 if DEBUG_QCOM_UARTDM
1791	default 0xfb002000 if DEBUG_CNS3XXX
1792	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
1793	default 0xfb00c000 if DEBUG_AT91_SAMA5D4_USART3
1794	default 0xfb020000 if DEBUG_OMAP3UART3
1795	default 0xfb042000 if DEBUG_OMAP3UART4
1796	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
1797	default 0xfcfe8600 if DEBUG_BCM63XX_UART
1798	default 0xfd000000 if DEBUG_SPEAR3XX || DEBUG_SPEAR13XX
1799	default 0xfd531000 if DEBUG_STIH41X_SBC_ASC1
1800	default 0xfd883000 if DEBUG_ALPINE_UART0
1801	default 0xfdd32000 if DEBUG_STIH41X_ASC2
1802	default 0xfe010000 if STM32MP1_DEBUG_UART
1803	default 0xfe017000 if DEBUG_MMP_UART2
1804	default 0xfe018000 if DEBUG_MMP_UART3
1805	default 0xfe100000 if DEBUG_IMX23_UART || DEBUG_IMX28_UART
1806	default 0xfe300000 if DEBUG_BCM_KONA_UART
1807	default 0xfe800000 if ARCH_IOP32X
1808	default 0xfeb00000 if DEBUG_HI3620_UART || DEBUG_HIX5HD2_UART
1809	default 0xfeb24000 if DEBUG_RK3X_UART0
1810	default 0xfeb26000 if DEBUG_RK3X_UART1
1811	default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
1812	default 0xfeb31000 if DEBUG_KEYSTONE_UART1
1813	default 0xfec02000 if DEBUG_SOCFPGA_UART0
1814	default 0xfec02100 if DEBUG_SOCFPGA_ARRIA10_UART1
1815	default 0xfec03000 if DEBUG_SOCFPGA_CYCLONE5_UART1
1816	default 0xfec12000 if DEBUG_MVEBU_UART0 || DEBUG_MVEBU_UART0_ALTERNATE
1817	default 0xfec12100 if DEBUG_MVEBU_UART1_ALTERNATE
1818	default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
1819	default 0xfec90000 if DEBUG_RK32_UART2
1820	default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
1821	default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_SD5203_UART
1822	default 0xfed60000 if DEBUG_RK29_UART0
1823	default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
1824	default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
1825	default 0xfedc0000 if DEBUG_EP93XX
1826	default 0xfee003f8 if DEBUG_FOOTBRIDGE_COM1
1827	default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
1828	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
1829	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
1830	default 0xfef36000 if DEBUG_HIGHBANK_UART
1831	default 0xfefb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
1832	default 0xfefb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
1833	default 0xfefb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
1834	default 0xffd01000 if DEBUG_HIP01_UART
1835	default DEBUG_UART_PHYS if !MMU
1836	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
1837		DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
1838		DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
1839		DEBUG_S3C64XX_UART || \
1840		DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
1841		DEBUG_DIGICOLOR_UA0 || \
1842		DEBUG_AT91_UART || DEBUG_STM32_UART || \
1843		DEBUG_STIH41X_ASC2 || DEBUG_STIH41X_SBC_ASC1 || \
1844		DEBUG_STIH418_SBC_ASC0
1845
1846config DEBUG_UART_8250_SHIFT
1847	int "Register offset shift for the 8250 debug UART"
1848	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1849	default 0 if DEBUG_FOOTBRIDGE_COM1 || ARCH_IOP32X || DEBUG_BCM_5301X || \
1850		DEBUG_BCM_HR2 || DEBUG_OMAP7XXUART1 || DEBUG_OMAP7XXUART2 || \
1851		DEBUG_OMAP7XXUART3
1852	default 3 if DEBUG_MSTARV7_PMUART
1853	default 2
1854
1855config DEBUG_UART_8250_WORD
1856	bool "Use 32-bit accesses for 8250 UART"
1857	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1858	depends on DEBUG_UART_8250_SHIFT >= 2
1859	default y if DEBUG_SOCFPGA_UART0 || DEBUG_SOCFPGA_ARRIA10_UART1 || \
1860		DEBUG_SOCFPGA_CYCLONE5_UART1 || DEBUG_KEYSTONE_UART0 || \
1861		DEBUG_KEYSTONE_UART1 || DEBUG_ALPINE_UART0 || \
1862		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
1863		DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_BCM_IPROC_UART3 || \
1864		DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2
1865
1866config DEBUG_UART_8250_PALMCHIP
1867	bool "8250 UART is Palmchip BK-310x"
1868	depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1869	help
1870	  Palmchip provides a UART implementation compatible with 16550
1871	  except for having a different register layout.  Say Y here if
1872	  the debug UART is of this type.
1873
1874config DEBUG_UNCOMPRESS
1875	bool "Enable decompressor debugging via DEBUG_LL output"
1876	depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
1877	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
1878		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
1879		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
1880	help
1881	  This option influences the normal decompressor output for
1882	  multiplatform kernels.  Normally, multiplatform kernels disable
1883	  decompressor output because it is not possible to know where to
1884	  send the decompressor output.
1885
1886	  When this option is set, the selected DEBUG_LL output method
1887	  will be re-used for normal decompressor output on multiplatform
1888	  kernels.
1889
1890
1891config UNCOMPRESS_INCLUDE
1892	string
1893	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
1894					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
1895	default "mach/uncompress.h"
1896
1897config EARLY_PRINTK
1898	bool "Early printk"
1899	depends on DEBUG_LL
1900	help
1901	  Say Y here if you want to have an early console using the
1902	  kernel low-level debugging functions. Add earlyprintk to your
1903	  kernel parameters to enable this console.
1904
1905config ARM_KPROBES_TEST
1906	tristate "Kprobes test module"
1907	depends on KPROBES && MODULES
1908	help
1909	  Perform tests of kprobes API and instruction set simulation.
1910
1911config PID_IN_CONTEXTIDR
1912	bool "Write the current PID to the CONTEXTIDR register"
1913	depends on CPU_COPY_V6
1914	help
1915	  Enabling this option causes the kernel to write the current PID to
1916	  the PROCID field of the CONTEXTIDR register, at the expense of some
1917	  additional instructions during context switch. Say Y here only if you
1918	  are planning to use hardware trace tools with this kernel.
1919
1920source "drivers/hwtracing/coresight/Kconfig"
1921