Kconfig.debug 33 KB

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