cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
2,562 Views
Registered: ‎06-28-2018

Zynq UltraScale+ MPSoC board bring-up and booting issues

I'm currently able to boot into U-Boot over JTAG, but I am having issues booting off QSPI or EMMC. I have generated the following `BOOT.bin` using `bootgen`:

 

$ du -b BOOT.bin
1227000 BOOT.bin

I am currently using Vivado 2017.4, but will give 2018.2 a try shortly.

 

QSPI from U-Boot

 

> sf probe 0 0 0
zynqmp_qspi_ofdata_to_platdata: CLK 300000000 SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total 16 MiB
xsdb% stop
xsdb% dow -data BOOT.bin 0x2000000
100% 1MB 0.4MB/s 00:02
Successfully downloaded BOOT.bin
xsdb% con
> sf probe 0 0 0
SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total 16 MiB
> sf erase 0 0x1000000
SF: 16777216 bytes @ 0x0 Erased: OK
> sf write 0x2000000 0 0x1000000
device 0 whole chip
SF: 16777216 bytes @ 0x0 Written: OK

Note that I also tried to just erase and write to the SPI flash based on the above size reported by `du`, but that led to similar results.

 

================= In Stage 2 ============ 
QSPI 24bit Boot Mode 
QSPI is in single flash connection
QSPI is using 4 bit bus
FlashID=0x1 0x20 0x18
SPANSION 128M Bits
Multiboot Reg : 0x0 
QSPI Reading Src 0x44, Dest FFFDCF94, Length 4
.QSPI Read Src 0x44, Dest FFFDCF94, Length 4
QSPI Reading Src 0x98, Dest FFFDCF98, Length 4
.QSPI Read Src 0x98, Dest FFFDCF98, Length 4
Image Header Table Offset 0xFFFFFFFF 
Authentication Enabled
QSPI Reading Src 0xF, Dest FFFDCF9C, Length 4
.QSPI Read Src 0xF, Dest FFFDCF9C, Length 4
QSPI Reading Src 0xFFFFFFFC, Dest FFFDA0AC, Length EC0
.QSPI Read Src 0xFFFFFFFC, Dest FFFDA0AC, Length 4
.QSPI Read Src 0x0, Dest FFFDA0B0, Length EBC
QSPI Reading Src 0xFFFFFFFF, Dest FFFF0040, Length FFFFFFFD
XFSBL_ERROR_QSPI_LENGTH
Boot Device Initialization failed 0x19
================= In Stage Err ============ 
Fsbl Error Status: 0x00002019
Performing FSBL FallBack
Perform�

 

QSPI using SDK utility

 

XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ=10000000 \
program_flash -f BOOT.bin \
              -fsbl fsbl.elf \
              -flash_type qspi_dual_parallel \
              -blank_check \
              -verify \
              -cable type xilinx_tcf url tcp:localhost:3121
...
Performing Verify Operation...
0%...INFO: [Xicom 50-44] Elapsed time = 1 sec.
Verify Operation unsuccessful.

ERROR: Flash Operation Failed

Attempting to boot leads to the following:

...
XFSBL_ERROR_QSPI_LENGTH
Device Copy Failed 
Boot Device Initialization failed 0x19
...

EMMC

Booting from EMMC doesn't seem to be as well documented as booting from a SD card. The documentation states that the process is the same, but that doesn't seem right, since EMMC has hardware partitions including one or more intended for booting. Generating a image with a FAT filesystem on the first partition that contains `BOOT.bin` seems like a overly complicated solution and doesn't make use of the hardware partition that already exists and is designed for this purpose. Is the PMU ROM unable to load `BOOT.bin` from the EMMC hardware boot partition?

 

0 Kudos
15 Replies
Highlighted
Moderator
Moderator
2,508 Views
Registered: ‎03-19-2014

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

It looks like you are selecting the incorrect programming mode in the GUI.   Your hardware indicates you are booting in QSPI single, your bootgen call shows qspi_dual_parallel.

 

On the wrap around, look at AR70021

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Observer
Observer
2,496 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

You mean the wrong `-flash_type` when using the `program_flash` CLI?

program_flash -f BOOT.bin -fsbl fsbl.elf -flash_type qspi_single -blank_check -verify -cable type xilinx_tcf url tcp:localhost:3121
...
ZynqMP> Program Operation successful. INFO: [Xicom 50-44] Elapsed time = 12 sec. Performing Verify Operation... 0%...sf read FFFC0000 0 10000 device 0 offset 0x0, size 0x10000 SF: 65536 bytes @ 0x0 Read: OK ZynqMP> cmp.b FFFC0000 FFFD0000 10000 byte at 0x00000000fffc0000 (0xff) != byte at 0x00000000fffd0000 (0x0) Total of 0 byte(s) were the same ZynqMP> INFO: [Xicom 50-44] Elapsed time = 1 sec. Verify Operation unsuccessful. ERROR: Flash Operation Failed
0 Kudos
Highlighted
Moderator
Moderator
2,424 Views
Registered: ‎03-19-2014

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

Yes, the -flash_type must match the architecture of your QSPI in hardware.   To enable enhanced debug messages in programming, add the XIL_CSE_ZYNQ_DISPLAY_UBOOT_MESSAGES environment variable and post the complete log.

 

The short time in verify looks suspicious   Look at AR70148, the XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ environment variable mentioned in this AR pertains to 2017.3 and 2017.4  .

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Observer
Observer
2,371 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

It turns out that the QSPI part on our board is incompatible with the Zynq UltraScale+ MPSoC: https://www.xilinx.com/support/answers/65463.html

 

Thank you for your help anyway!

0 Kudos
Highlighted
Observer
Observer
2,369 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

@glenaIs it possible to boot off of a eMMC hardware boot partition?

 

 

0 Kudos
Highlighted
Moderator
Moderator
2,361 Views
Registered: ‎03-19-2014

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

Yes, eMMC boot mode is supported.   Refer to table 11-1 in UG1085.    You may also program your existing QSPI with uBoot, refer to AR68657

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Observer
Observer
2,354 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

@glenaI know that it is possible to boot off of eMMC. I'm currently booting off a eMMC hardware user partition with a FAT partition containing `BOOT.bin` followed by a ext4 partition that stores the Linux rootfs. I was wondering about the eMMC hardware boot partitions. For example,

 

"eMMC provides two boot partitions to provide fast access to boot code for improved system boot time. Booting from boot partitions can provide access to stored data in ~50ms, whereas booting from the user area can take hundreds of milliseconds. However, in order to utilize the boot partitions, the chipset must be able to support booting from the boot partition. Check with your chipset vendor to understand if booting from the e.MMC boot partitions is supported."

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
2,308 Views
Registered: ‎10-11-2011

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

Booting from eMMC boot partitions is NOT supported.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
Observer
Observer
2,298 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

@denistI'm sorry to hear that, but thanks for following up. It would certainly be helpful to note that in the appropriate Wiki articles, Technical Reference, and various guides.

 

I assume there's no plan to support it in the future?

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
2,018 Views
Registered: ‎10-11-2011

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

No plans to change this for MPSoC.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Highlighted
556 Views
Registered: ‎01-07-2020

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

HI

 

I am trying to boot my ultrascale+ mpsoc by putting the boot.bin file in a emmc flash which is partitioned as FAT32. It boots without any issue. But when i add another partition to the emmc card which is blank just for me to keep user data later in the stage. The board stops booting. Can you highlight what could be the cause?

0 Kudos
Highlighted
Observer
Observer
541 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

Can you post the partition layout? I believe the FAT32 partition needs to be the first partition.

0 Kudos
Highlighted
532 Views
Registered: ‎01-07-2020

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

partition.jpg

This is the partition layout. all 4 are FAT32 partitions and only the first 1 has the boot.bin / boot image. all other partitions are blank

0 Kudos
Highlighted
Observer
Observer
448 Views
Registered: ‎06-28-2018

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

I'm not sure what tool you're using, but the "mbrCustom" partitions look suspicious. I assume in the functional layout you only have one MBR? Anyway, you should only create one MBR.

0 Kudos
Highlighted
436 Views
Registered: ‎01-07-2020

Re: Zynq UltraScale+ MPSoC board bring-up and booting issues

which windows tool you can recommend me for that. i need 3 partitions atleast. the first one will have the boot image. i used easeUS disk manager for this.

0 Kudos