If I boot the PetaLinux image from flash or the network ('run netboot') after u-boot starts the kernel, nothing else happens and the board appears to be dead:
## Booting kernel from Legacy Image at 50002000 ... Image Name: PetaLinux Kernel 2.6-MMU Image Type: MicroBlaze Linux Kernel Image (uncompressed) Data Size: 9481732 Bytes = 9 MB Load Address: 50000000 Entry Point: 50000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK ## Transferring control to Linux (at address 50000000), 0x50000000 ramdisk 0x00000000, FDT 0x00000000...
However, I can succesfully boot the Linux kernel image.elf directly using petalinux-jtag-boot.
I am using PetaLinux v1.1.
There are many possible reasons for the 'dead board' scenario, including misconfigured hardware such as clocking or reset signals, or even a misconfigured serial port interface.
However, there is a bug in the PetaLinux SDK 1.1 release which can cause this problem, relating to the initialization of CPU caches early in the kernel boot. Please try the work-around described below to see if that resolves your problem.
This issue is not present in PetaLinux SDK v1.2 and later.
To fix this issue, edit the file:
around line 56, as follows:
/* Add this line */ invalidate_dcache(); enable_dcache()
This will cause the CPU data cache to be correctly invalidated before being enabled.
Then, rebuild the kernel and system image and try booting again.
If the behavior persists (even after making this change), then the problem lies elsewhere (possibly in your EDK hardware project).
This issue has been fixed in PetaLinux v1.2 and later releases.