
Hi Michal, Sorry for late reply. (I'm back from my vacations.)
Before you build u-boot you have to copy ps7_init.c/h from your hw design to the u-boot if you want to use SPL.
Oops, I forgot to mention this. I did that.
ok. Then I expect you are able to see at least u-boot SPL messages.
Yes. I can see them.
This is what I am getting - u-boot.img has full u-boot.
U-Boot SPL 2014.01-00816-ge0c1813-dirty (Jan 22 2014 - 17:56:37) mmc boot reading download.bit design filename = "system.ncd;HW_TIMEOUT=FALSE;UserID=0xFFFFFFFF" part number = "7z020clg484" date = "2013/07/22" time = "17:18:11" bytes in bitstream = 4045564 zynq_load: Align buffer at 100006c to 1000000(swap 1) reading system.dtb spl: error reading image system.dtb, err - -1 reading u-boot.img reading u-boot.img
U-Boot 2014.01 (Mar 19 2014 - 08:12:51)
Memory: ECC disabled DRAM: 1 GiB MMC: zynq_sdhci: 0 SF: Detected N25Q128A with page size 256 Bytes, erase size 64 KiB, total 16 MiB *** Warning - bad CRC, using default environment
In: serial Out: serial Err: serial Net: Gem.e000b000 U-BOOT for zynq-zc702
Gem.e000b000 Waiting for PHY auto negotiation to complete.... done BOOTP broadcast 1 BOOTP broadcast 2
Abort Hit any key to stop autoboot: 0 U-Boot-PetaLinux>
Thanks! Now I understand how to boot u-boot and Linux.
Full u-boot image of zynq enables CONFIG_OF_SEPARATE, right? I think u-boot.img does not include device tree.
In mainline yes but I am not using it. It is nice for playing but it is fine just to disable it and you don't need to use dts at all. Just disable it in zynq config file.
I am not convinced why unsupported CONFIG_OF_SEPARATE is enabled.
U-boot mainline and u-boot-xlnx diverged with this point. Which way are you going in your future development? U-Boot control with device tree? or without device tree?
My question is, how to pass an init ramdisk?
I am using cpio compiled in directly in the kernel.
In which file-name should I copy init ramdisk into SD card?
Xilinx OSL versions are using initramdisk which you can download here. http://www.wiki.xilinx.com/Zynq+2014.1+Release
Yes. I am using this.
ok. Then what are you trying to do? Just use latest u-boot?
Yes. I want to run U-boot and Linux on a Zynq board. I also want to use new features in the U-Boot mainline such as Kbuild.
That is my motivation to try to run u-boot-2014.04 on a zynq board.
How should I load the init ramdisk from the SD card?
And this is the command which OSL version are using.
"sdboot=if mmcinfo; then " \ "run uenvboot; " \ "echo Copying Linux from SD to RAM... && " \ "fatload mmc 0 0x3000000 ${kernel_image} && " \ "fatload mmc 0 0x2A00000 ${devicetree_image} && " \ "fatload mmc 0 0x2000000 ${ramdisk_image} && " \ "bootm 0x3000000 0x2000000 0x2A00000; " \ "fi\0" \
Yes. I know this works. But in my understanding, SPL cannot use this command.
My question is how SPL can load the init ramdisk.
It looks like spl_load_image_fat_os() function loads "system.dtb" and "uImage". But I could not find which code loads ramdisk. Not supported yet?
yes, I think it is not supported. I haven't had a time but Simon mentioned that they have enabled ITS format in SPL and it should be straight forward to do so. Then you can just use full ITS instead of DTB, kernel, ramdisk in separate images.
This sounds reasonable! I am looking forward to it.
Best Regards Masahiro Yamada