Rockchip Board Hangs After "Starting kernel ...": No Kernel Output
Starting kernel ...
U-Boot handed over to Linux and the serial console went silent. Either the kernel is printing to a different console, or it crashed very early because of a DTB or memory mismatch.
Applies to: All Rockchip SoCs
Symptoms
- Last serial line is "Starting kernel ..."
- Board may or may not actually be running (check network / LEDs)
Common causes
- Wrong console= (UART number or baud rate, typically ttyS2 at 1500000 on newer SoCs)
- DTB not matching the kernel (vendor DTB with mainline kernel or vice versa)
- Kernel Image corrupted or loaded over the DTB/initrd in memory
- Missing BL31 (TF-A) causing early SMC/PSCI failures
How to fix it
- Turn on early console
append ... console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfeb50000 ignore_loglevel - Use the DTB from the same kernel tree
Rebuild dtbs together with the Image and point extlinux.conf at that DTB.
- Check load addresses
Make sure kernel_addr_r, fdt_addr_r and ramdisk_addr_r in U-Boot do not overlap for your Image size.
printenv kernel_addr_r fdt_addr_r ramdisk_addr_r
Go deeper
- Rockchip Boot Process Explained: BootROM, TPL, SPL, BL31, U-Boot and Linux
- Build the Rockchip Linux Kernel (Vendor BSP and Mainline)
FAQ
What does "Starting kernel ..." mean?
U-Boot handed over to Linux and the serial console went silent. Either the kernel is printing to a different console, or it crashed very early because of a DTB or memory mismatch.
What causes "Starting kernel ..."?
Wrong console= (UART number or baud rate, typically ttyS2 at 1500000 on newer SoCs); DTB not matching the kernel (vendor DTB with mainline kernel or vice versa); Kernel Image corrupted or loaded over the DTB/initrd in memory; Missing BL31 (TF-A) causing early SMC/PSCI failures.
How do I fix "Starting kernel ..."?
1. Turn on early console 2. Use the DTB from the same kernel tree: Rebuild dtbs together with the Image and point extlinux.conf at that DTB. 3. Check load addresses: Make sure kernel_addr_r, fdt_addr_r and ramdisk_addr_r in U-Boot do not overlap for your Image size.
Related issues
Creating Comm Object failed!rkdeveloptool "Creating Comm Object failed!": FixDownload boot failed!rkdeveloptool "Download boot failed!" in MaskROM: Causes and Fixnot found any devices!rkdeveloptool "not found any devices!": Board Not Detected Over USBusb 1-1: device descriptor read/64, error -71Rockchip USB "device descriptor read/64, error -71": Fixmmc0: error -110 whilst initialising SD cardRockchip "error -110 whilst initialising SD card": SD Card Not WorkingWaiting for root device /dev/mmcblk0p2...Rockchip Boot Stuck at "Waiting for root device": Fix