News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TE0720 - mounting and formating the eMMC IC in a standalone application

Started by PeVa, August 12, 2016, 01:45:43 AM

Previous topic - Next topic

PeVa

Hello,

I am trying to mount the eMMC IC on the Trenz 720 board, but I keep getting a FR_NOT_ENABLED (The volume has no work area) error when I try to create a file system on it. I'm hoping someone has some experience with this. Here are the steps I have taken:

1. I have a TE0720 board with a TE701 carrier board. I am using Vivado 16.2 and set up my project using the "te0720-test_board_noprebuilt-vivado_2016.2-build_03_20160630151000" provided by Trenz.

2. The Zynq block diagram has  both SD0 (mapped to MIO 40-45) and SD1 (mapped to MIO46-51) selected. In the SDK, I generated a stand alone BSB and added Xilffs - enabled mmc.

3. I then followed the instructions provided by Xilinx on enabling the f_mkfs function to format an unallocated SD card with FAT32.
     https://forums.xilinx.com/t5/Embedded-Development-Tools/Formating-eMMC/m-p/693692#M39311

4. I tested it on an external SD Card, using the TE0701's sdcard slot, and set my path to "0:/" (string pointer to the logical drive number). Everything works correctly and I am able to mount, format and open a file on the sd card.

5. When I try to connect to the eMMC IC, (path is "1:/") I keep getting a FR_NOT_ENABLED error when the f_mkfs function is called. I was wondering if anyone has any experience on this and can give me some insight into what is going on. As I understand it, the eMMC chip (U15 on the TE0720) should behave identical to an SD Card.

Thanks,
Peter.

PeVa

Nevermind. I discovered that my issue was in how the f_ functions handle defaults vs. specifying a drive.

Mainly, since the Zynq block diagram has 2 SD's, SD0 is treated as the default and SD1 needs to be specified. Therefore in the above code, I needed to replace:
   FileName[32] = "canucme.txt"; with FileName[32] = "1:/canucme.txt";
   f_mkfs("", 0, 0); with f_mkfs(Path, 0, 0);
in order for it to go to the correct location.

Hope this helps someone in the future.