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 eMMC errors after upgrading to Vivado 2018.3

Started by joseer, March 04, 2019, 10:51:19 PM

Previous topic - Next topic

joseer

Hello,

I've upgraded my current TE0720 vivado project bare metal application from Vivado 2017.4 to 2018.3.
In my application there's an important feature which reads and saves data in a file in the eMMC memory. I've noticed that the xilffs library has been also updated from 3.7 to 4.0 and there's a modification on the f_mkfs function which I've updated in my code having as a reference the new xilffs_polled_example.c example file:

From

Vivado 2017.4:
Res = f_mkfs("", 0, 0);

To

Vivado 2018.3:
Res = f_mkfs(Path, FM_FAT32, 0, work, sizeof work);

The problem is that I've got an inconsistency trying to open the file each time that the board is re-powered or re-connected , i.e. sometimes everything works fine and others I'm getting an error when is trying to open the file (f_open). When this error happens my application detects that there's not file and try to format the memory and create a new file but also the f_mkfs fails...

The f_open function returned errors are most of the time: /* (3) The physical drive cannot work */ and sometimes: /* (4) Could not find the file */ (there's not consistency on this either)

It really looks quite aleatory issue every time I power up the board, I'm just looking and comparing both projects but I'm unable to locate the issue,

do you have any clues where could it be the problem?

Thanks in advance.

JH

Hi,
we use only u-boot and linux for eMMC access, so I can't help much.
This seems a problem on Xilinx baremetal libary. Maybe it's also good you start a post on Xilinx forum.

Xilinx change log of Xilffs:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841771/xilffs

Maybe possible workaround is to use older xilffs lib on your SDK project.
lib sources are located in "C:\Xilinx\SDK\<version>\data\embeddedsw\lib\sw_services"
Make a copy of the older one (for example xilffs_v3_9) and put in a local folder "<custom folder>\lib\sw_services\" and increase version of this copy (greater  4_0). When you set the local repository  in SDK to <custom folder>\lib your local lib should be used by default. But you must try out a little bit.

Or you must start debugger and check why it will not work. To debug in Xilinx libaries you must change some compiler flags, see:
https://forums.xilinx.com/t5/Embedded-Development-Tools/Xilinx-SDK-IDE-Enable-Debug-With-BSP-Sources/td-p/751507

br
John

joseer

Hi JH,

Thanks for your reply.
I'll try to change it to the previous xilffs version and see if it works.