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