Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade the Zynq driver to recognise and use drives larger than 64GB #3

Merged
merged 1 commit into from Oct 31, 2020
Merged

Upgrade the Zynq driver to recognise and use drives larger than 64GB #3

merged 1 commit into from Oct 31, 2020

Conversation

htibosch
Copy link
Contributor

Until now, FreeRTOS+FAT was never really tested on drives larger than 64GB.

This PR is adding a Xilinx Zynq driver which can recognise and use an SD-card of 128GB. Therefore I upgraded the driver sources that are provided by Xilinx in their 2019.03 release.

I adapter these sources to use interrupts ( in stead of polling ), which makes them more efficient.

Then, as a test, I created 3 equal partitions and mounted them all in the same tree:

/
/part_1
/part_2

The first partition was represented at the root directory. I tested by writing and reading files on each partition and have the drive checked by dosfsck under Ubuntu.

I had to make some more adaptations: each instance of an FF_Disk_t now gets its own copy of CacheMemoryInfo_t. This is uncached caching memory ( i.e. uncached by the CPU ). It can be passed to DMA, without the need to invalidate or refresh.

Another change had to be made to ff_format.c : only in partition 0, the FAT can be moved into the second 4MB erase block ( see comment in source code ).

I gave the new Zyn port a new directory: portable\Zynq.2019.3. Let's rename it as soon as it has proven to be as stable as the existing 2015.03 Zynq driver. I will also keep on testing it.
Hein

@cobusve cobusve merged commit 680393f into FreeRTOS:master Oct 31, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants