08-31-2012 07:38 AM
I have a ZC702 Board here and I am seeing a strange behavior by the board.
I am reporting here, may be some one has the same experience.
I boot Linux on the board using the JTAG interface.
The linux image that I use and the rootfs image are all those provided by xilinx.
So, with Digilent JTAG I load all of the files into memory and then U-boot gets executed and then
from U-boot linux will be run.
The strange behavior that I see , is that,
The linux some times boot, some times not!
(without changing any thing)
it just decompresses the kernel and then stops working completely.
Some other times, every thing goes well!!!
any body has noticed this?
Mohammad S Sadri.
09-05-2012 12:07 PM
This makes sense if you are booting in the JTAG boot mode and with an SMP kernel. The 1.0 silicon has a documented issue in that the 2nd CPU does not get setup correctly and then when the 1st CPU in Linux tries to boot it they can both crash. There is a small stub that can be loaded into memory, start_cpu2.bin, and I'll attach it. The only tricky part is connecting to the 2nd CPU with the JTAG.
So before starting Linux, you need to load start_cpu2.bin into memory at 0xFFFFFF00, then start it by setting the PC to that address and letting it run.
Xmd> arm connect hw -debugdevice cpunr2
Xmd> dow -data start_cpu2.bin 0xFFFFFF00
Xmd> rwr pc 0xFFFFFF00
Xmd> targets 64 (assuming you initially connected to the 1st cpu).
Xmd> now continue with stuff on 1st cpu
This issue does not exist in any other boot mode other than JTAG. Booting Linux with only 1 cpu will also work (add maxcpus=1 on the kernel command line in the device tree).
Sorry for the hassle as I should have already documented that, it is documented in the Zynq errata I'm told.