My system is hanging at the UBOOT to Linux hand-off with the message "Starting Kernel".
This scenario is very common.
While the solutions vary, the information below provides general troubleshooting tips and techniques for resolving this scenario.
1) Update the boot arguments to include earlyprintk
This enables additional debug information during the initial stages of kernel startup that can be insightful for further triage.
"earlyprintk" can be enabled as a kernel configuration option, a variable in the UBOOT environment, or a value in the bootargs node of the systems device tree DTS file.
2) Ensure that the system has a system timer device included in the hardware definition and device tree DTS file.
3) If your system was previously working, double-check your DTS against a reference DTS as found in the Xilinx GitHub repository.
4) For PetaLinux 2014.2 users, using more than one UART with earlyprintk enabled can result in similar behavior. Please see (Xilinx Answer 61039) for more details.
Occasionally, Linux kernel device drivers will be updated in such a way that previously working DTS nodes for hardware peripherals are no longer valid.
This can sometimes result in a kernel hang during startup as described above.
For these scenarios, utilizing earlyprintk during kernel startup can usually provide enough information to determine which peripheral is having difficulty during startup.