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
PicoZed Hardware Design PicoZed 7020 eMMC initialization
  • 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
  • Replies 10 replies
  • Subscribers 319 subscribers
  • Views 1975 views
  • Users 0 members are here
  • 7020
  • picozed
  • emmc
Related

PicoZed 7020 eMMC initialization

EniX2000
EniX2000 over 1 year ago

Hi,

I have a PicoZed 7020 Rev E with 8Gb of eMMC memory. The application is bare metal.

I never used the eMMC memory before...

I would very much appreciate any ressource link on this topic (getting started tutorials, application notes or code examples).

Do you know if AVNET published somewhere initialization/formatting examples?

Best Regards,

  • Sign in to reply
  • Cancel

Top Replies

  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000 +2
    You need to connect SD card CD(card detect) and WP(write protect) to SDIO controller on Zynq. One example is as below: Here is one of FPGA projects I did on MiniZed for SD card data storage: You…
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000 +1
    The short answer is NO
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000 +1
    eMMC needs a boot.bin programmed on it. This boot.bin can be bare-metal type. However, you do need Linux boot.bin on either SD card or QSPI flash to boot Zynq FPGA first. Then you use this Linux to program…
Parents
  • flyingbean
    flyingbean over 1 year ago

    eMMC initialization has to be done after Linux booting up. So you need either to boot PicoZed from SD card or from QSPI flash memory first, then log into Linux to initialize eMMC.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • EniX2000
    EniX2000 over 1 year ago in reply to flyingbean

    Hi,

    Thank you for your answer.

    My application is bare metal so I use no Linux OS.

    Is there any way to initialize the eMMC from a bare metal system ?

    Many Thanks,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000

    The short answer is NO

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • EniX2000
    EniX2000 over 1 year ago in reply to flyingbean

    OK, could You be more specific please ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000

    eMMC needs a boot.bin programmed on it. This boot.bin can be bare-metal type. However, you do need Linux boot.bin on either SD card or QSPI flash to boot Zynq FPGA first. Then you use this Linux to program eMMC bare-metal boot.bin into eMMC. I might need draft a HOWTO for the topic for this community. I hope you might find some HOWTO before I do it. Here is one HOWTO on eMMC programming: https://www.beyond-circuits.com/wordpress/tutorial/tutorial27/

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000

    eMMC needs a boot.bin programmed on it. This boot.bin can be bare-metal type. However, you do need Linux boot.bin on either SD card or QSPI flash to boot Zynq FPGA first. Then you use this Linux to program eMMC bare-metal boot.bin into eMMC. I might need draft a HOWTO for the topic for this community. I hope you might find some HOWTO before I do it. Here is one HOWTO on eMMC programming: https://www.beyond-circuits.com/wordpress/tutorial/tutorial27/

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • EniX2000
    EniX2000 over 1 year ago in reply to flyingbean

    Hi flyingbean,

    Thank you for your answer! 

    I apologize since I'm a newbie on eMMC questions.

    Please note that I do not need to boot from the eMMC memory. I just need to store and retrieve big chunks of log data.

    Under these circumstances placing a boot.bin file on the eMMC is the only way to proceed ?

    Can the eMMC be used without being formatted?

    I mean if I can write and read on the eMMC then I can pass on creating specific partitions.

    The default/factory configuration might be enough for me if I had some info on how to write it and read it afterwards...

    But I do not know if it's possible...

    Where i can find some good ressources on this matter?

    Thank You!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000

    If eMMC is not the booting memory/flash, you can use eMMC as a storage space. I don't know there is a master FAQ on eMMC for FPGA applications online or not. Even Avnet or Xilinx did not have a FAQ repo on eMMC topic. Strange?

    Here is the path for eMMC bare-metal driver: xiffs

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841771/xilffs

    Xilinx xiffs driver is pretty user friendly. I used it for SD card project before.

    Yeah, I did know someone with more than 30 years FPGA experiences did not know eMMC very much since this folk never used eMMC before.. So your questions sounds reasonable to me.

    Can you use USB stick memory on PicoZed without formatting it? The answer is NO.  eMMC on PicoZed should be formatted at Factory before it is sold into market. However, will you still use the same format as the default factory setting? It is up to you. 

    Learning-by-doing. Feel free to post questions if you cannot find answers online.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • EniX2000
    EniX2000 over 1 year ago in reply to flyingbean

    Hi there,

    Since using the eMMC is still a little foggy (lack of a good strart-up tutorial) I tried to store data on the uSD card. I already use the uSD card in order to boot.

     PROBLEM:  the uSD card appears to be write-protected when used with the PicoZed.

    The fopen function returns the code 10 (error).

    Otherwise I can write on the uSD the boot code without any problem. The write protection is active only whent the uSD is mounted on the PicoZed motherboard.

    Is there a way to programmatically  disable the write-protection in order to be able to create/write files on the uSD ?

    Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • flyingbean
    flyingbean over 1 year ago in reply to EniX2000

    You need to connect SD card CD(card detect) and WP(write protect) to SDIO controller on Zynq. One example is as below:

    image

    Here is one of FPGA projects I did on MiniZed for SD card data storage:

    You may hard-code CDN and WP to be 0

    image

    Here is the snapshot of sD card used as a data file system.

    image

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • EniX2000
    EniX2000 over 1 year ago in reply to flyingbean

    Hi flyingbean,

    Thank You for your answer and detailed explanation.  The problem was on the WP indeed. It was allocated on MIO 50 but configuring this MIO as output and setting it to zero was not enough.

    I coded WP to zero as in your example and it worked!

    Thank You!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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