I am not able to get U-boot up and running on my MicroZed board. I tried to have it loaded by Xilinx first stage bootloader (FSBL) and I have tried starting it from the XMD shell over JTAG.
I do not get any output from U-boot in the shell (connector J17 - USB UART).
When loaded by FSBL, it seems that U-boot crashes. Some times FSBL is restarted a couple of times (its output to the UART is repeated). Some times the FSBL exception handlers is invoked after handoff:
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
DATA_ABORT_HANDLER
FSBL Status = 0xA304
I have build FSBL using Release 14.6 Build SDK_P.68d and with the flags "-DFSBL_DEBUG -DFSBL_DEBUG_INFO". I have also tried without these flags.
I have made the U-boot image using:
$ git clone git://git.xilinx.com/u-boot-xlnx.git
$ cd u-boot-xlnx
$ PATH=$PATH:/opt/Xilinx/SDK/2013.2/gnu/arm/lin/bin
$ export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
$ make zynq_zed_config && make
The boot.bin file was created using:
$ cat zed_boot.bif
zed_boot_image:
{
t[bootloader]zed_fsbl.elf
tzed_u-boot.elf
}
$ bootgen -image zed_boot.bif -o boot.bin -w on
This is the output I get in the shell:
Xilinx First Stage Boot Loader
Release 14.6/2013.2 Sep 27 2013-09:39:00
Devcfg driver initialized
Silicon Version 3.1
Boot mode is SD
SD: rc= 0
SD Init Done
Flash Base Address: 0xE0100000
Reboot status register: 0x60600000
Multiboot Register: 0x0000C000
Image Start Address: 0x00000000
Partition Header Offset:0x00000980
Partition Count: 2
Partition Number: 1
Header Dump
Image Word Len: 0x00010174
Data Word Len: 0x00010174
Partition Word Len:0x00010174
Load Addr: 0x04000000
Exec Addr: 0x04000000
Partition Start: 0x000062A0
Partition Attr: 0x00000010
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xF7FC96A2
Application
Handoff Address: 0x04000000
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
When starting U-boot from the XMD shell, I do the following, which produces no output in the J17 USB UART shell:
$ /opt/Xilinx/14.6/ISE_DS/EDK/bin/lin/xmd
XMD% connect arm hw
XMD% source /opt/Xilinx/14.6/ISE_DS/EDK/sw/lib/hwplatform_templates/zed_hw_platform/ps7_init.tcl
XMD% ps7_init
XMD% dow zed_u-boot.elf
XMD% con
I read a post stating the Xilinx U-boot image for the ZC702 board could be used on the MicroZed board to. I tried that with the same result.
Using the XMD shell I read the memory at location 0x04000000:
XMD% mrd 0x04000000 30
4000000: 00000000
4000004: E59FF014
4000008: E59FF014
400000C: E59FF014
4000010: E59FF014
4000014: E59FF014
4000018: E59F7BDD
400001C: E59FDDC8
4000020: 04F1E934
4000024: 04007D23
4000028: 0400B956
400002C: 0400EDFB
4000030: 04007F6B
4000034: 0400DFAF
4000038: 0400F357
400003C: 1234D563
It seems to be the same image as zed_u-boot.elf from 0x8000 bytes into the zed_u-boot.elf. I expect this is because the elf header was removed.
I have run out of ideas of what to try, so any hints will be appreciated.