Changes between Version 6 and Version 7 of troubleshooting


Ignore:
Timestamp:
09/22/2026 04:41:34 PM (5 hours ago)
Author:
Tim Harvey
Comment:

updated early serial debug

Legend:

Unmodified
Added
Removed
Modified
  • troubleshooting

    v6 v7  
    9393Typically the serial drivers don't get initialized until after some of the more critical components. This can result in any kernel crash/hang not reporting anything from the serial console after {{{'Starting kernel ....'}}}
    9494
    95 For platforms that early serial support you can enable this in the kernel config. For example on a Ventana board (all ventana boards use ttymxc1 (UART2) for serial console):
    96  * make menuconfig
    97   - Kernel hacking -> Kernel low-level debugging functions -> Kernel low-level debugging port (i.MX6Q/DL Debug UART)
    98   - Kernel hacking -> Kernel low-level debugging functions -> i.MX Debug UART Port Selection : 2
    99  * results in the following additions to .config:
    100 {{{
    101 CONFIG_DEBUG_LL=y
    102 CONFIG_DEBUG_IMX6Q_UART=y
    103 CONFIG_DEBUG_IMX_UART_PORT=2
    104 CONFIG_DEBUG_LL_INCLUDE="debug/imx.S"
    105 CONFIG_DEBUG_UNCOMPRESS=y
    106 CONFIG_EARLY_PRINTK=y
    107 CONFIG_EARLY_PRINTK_DIRECT=y
     95For platforms that early serial support you can enable this in the kernel config.
     96
     97For modern kernels this requires 'CONFIG_SERIAL_EARLYCON=y' to be enabled in the kernel config in addition to specifying the serial port details via the kernel cmdline:
     98 * i.MX95 Catalina ttyLP0 (lpuart1):
     99{{{#!bash
     100earlycon=lpuart32,mmio32,0x44380010,115200
    108101}}}
    109  * Finally, some kernels require a special parameter to be passed in through the bootloader.  See below for instructions:
    110 {{{#!bash
    111 setenv extra ${extra} earlyprintk=serial,${console},${baudrate}
    112 saveenv
    113 }}}
    114 
    115 For newport, Early console is compiled into the kernel and to enable it make sure you boot with:
    116 {{{#!bash
    117 console=ttyAMA0,115200n8 earlycon=pl011,0x87e028000000 cma=64M
    118 }}}
    119 
    120 For venice, Early console is compiled into the kernel and to enable it make sure you boot with:
     102 * i.MX8M Venice ttymxc1 (uart2):
    121103{{{#!bash
    122104console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200
    123105}}}
     106 * CN80xx Newport ttyAMA0:
     107{{{#!bash
     108console=ttyAMA0,115200n8 earlycon=pl011,0x87e028000000
     109}}}
     110
    124111
    125112[=#sysrq]