element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZUBoard ZUBoard baremetal SD boot problem
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 13 replies
  • Answers 1 answer
  • Subscribers 327 subscribers
  • Views 938 views
  • Users 0 members are here
  • baremetal
  • ZUBoard
  • boot
  • sd
Related

ZUBoard baremetal SD boot problem

tony56887
tony56887 5 months ago

I'm unable to boot a simple baremetal app from the SD card. Very strange problem.

  • The ZUB will boot petalinux from the SD card just fine, I've built and booted the ZUB petalinux base and trifecta builds. All using the same SD card, several times.
  • I can build my simple baremetal app in Vitis and boot it over JTAG, as well as QSPI, which works fine. Attempting to boot from SD with FSBL debug messaging enabled, I get:
    • SD: Unable to open file 1:/BOOT.BIN: 3, XFSBL_ERROR_SD_F_OPEN
  • I also have an Ultra96v2. Using the same SD card, I can boot a simple u96 baremetal app from the SD card on the u96.
  • The SD card is a 16GB delkin. I format it FAT and copy my BOOT.bin to it, simple.

Everything works fine on the U96, and the ZUB, except SD boot from the ZUB only. This is very strange and I can't figure what the issue could be. Any ideas?

  • Sign in to reply
  • Cancel

Top Replies

  • iksevas
    iksevas 5 months ago in reply to tony56887 +2
    I have heard stories of 16Gb cards not functioning on some boards but 8Gb cards working fine. I have heard stories of different manufacturers working better than others. So, I would not be surprised if…
  • tony56887
    tony56887 3 months ago in reply to adielement +1 suggested
    Solved yesterday. This was a tools issue on version 2023.2 on interface SD1. SD0 works fine as that's what ultra96 is targeting. Version 2024.2 has this fixed.
  • iksevas
    0 iksevas 5 months ago

    Have you tried a different SD card?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tony56887
    0 tony56887 5 months ago in reply to iksevas

    I only have one currently. It would be strange if a different SD card worked, as this one works fine booting petalinux and on Ultra96. I have a few ordered and will try a new one, but would be surprised if that worked.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • iksevas
    0 iksevas 5 months ago in reply to tony56887

    I have heard stories of 16Gb cards not functioning on some boards but 8Gb cards working fine. I have heard stories of different manufacturers working better than others. So, I would not be surprised if  a different card worked.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tony56887
    0 tony56887 4 months ago in reply to iksevas

    Hi there. Finally got around to trying several new SD cards, a mix of 32G, 16G, 8G from a mix of different vendors (Sandisk, Kingston, PNY, Lexar, Delkin). All the same issue! Not sure what i'm doing wrong here. It clearly attempts to boot as I get the start of FSBL print over UART:

    "Zynq MP First St�".

    And as above if FSBL debug is enabled, XFSBL_ERROR_SD_F_OPEN.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • iksevas
    0 iksevas 4 months ago in reply to tony56887

    ok - so you say you have copied reference design files to the SD card and they boot fine, so there is something that you are doing in bare metal generation of the boot files.

    How are you creating the FSBL? There is an example FSBL available to be generated using your BSP. It's in the same example designs where you would generate Hello World. You can create that there and then when you go into SDK/Vitis to create the boot image from within the project, you can point it to the FSBL you created along with the ELF executable of your software and the bitstream. Those 3 files makeup the boot.bin file for the bare metal design.

    Are you doing something different than the above??

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • padudle
    0 padudle 4 months ago

    Hello, you have done a lot of clever things to debug the problem. I did not know about FSBL debug messaging. It is not a bad SD card.

    My guess is that there is a problem with your .bif file.  The FSBL is being added but not the application .elf file.  Is this possible?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Aymen
    0 Aymen 4 months ago

    Hi tony,

    You mentioned successfully booting a baremetal app from the SD card on the Ultra96v2. I'm trying to do the same thing, but I'm running into issues. I've created a BOOT.BIN that includes the FSBL, bitstream, and my baremetal application. I've also set the boot mode to SD, but it doesn't seem to boot at all.

    Would you mind sharing a bit more about how you set it up on the U96? For example, how you formatted the SD card, where exactly you placed the BOOT.BIN, and if there were any special steps you took in Vitis or when generating the FSBL?

    Any help would be greatly appreciated!

    Thanks in advance.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tony56887
    0 tony56887 3 months ago in reply to Aymen

    What you listed is what I did that worked on u96.

    Using vivado/vitis version 2023.2. In vitis once you have your platform and app developed and verified booting over jtag, select your app and click the 'create boot image'. FSBL and your app elf should already be listed, add your bitstream. Leave all other settings default. Select output path for bif and image.

    Format SD card FAT32 using host PC, I'm using ubuntu - Disks utility. Simply copy boot.bin right into the SD card. Set boot switch to SD. This process worked fine for me on u96.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tony56887
    0 tony56887 3 months ago in reply to iksevas

    Sorry for delay I didn't have notifications turned on for this forum.

    I generate an XSA file in vivado, then in Vitis I create a platform using the XSA. Vitis generates the FSBL here.

    In Vitis I create boot image which includes the 3 files you mentioned, fsbl, application, and bitstream.

    For my FPGA and PS configuration in Vivado, I'm comparing to Avnet ZUBoard TRIFECTA build, for the hw project, to make sure all my configuration matches. As I'm investigating I'm also comparing to Ultra96v2 configuration for it's SD card configuration. I did see some differences in the I/O settings from u96 to zub (Schmitt vs cmos IO type, fast/slow IO speed), I tried the u96 different settings just to test, but no change.

    I'm not sure what you mean by "There is an example FSBL available to be generated using your BSP. It's in the same example designs where you would generate Hello World." Maybe you meant if I'm using avnet provided BSP? I'm using vivado to generate FPGA/PS config, but based on Avnet trifecta project.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • tony56887
    0 tony56887 3 months ago

    Extra info in case anyone sees this and has an idea. I'm attempting side by side debug with my Ultra96 to compare with FSBL debug prints turned on. These designs are simple and using identical hello world bare metal apps, just for the purpose of this SD boot issue.

    Left is u96 which boots successfully. Right is zub. Notice the zub FSBL reads the file as "1:/BOOT.BIN", unlike u96 which is just "BOOT.BIN". Then the zub can't find the file, which might make sense...?

    I'm wondering if this "1:/" is prepended in the FSBL code due to booting from SD1 instead of SD0...

    image

    Vivado/Vitis versions 2023.2

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube