MOD5441X mmc.cpp SDXC support?

Discussion to talk about software related topics only.
Post Reply
ephogy
Posts: 30
Joined: Fri Aug 29, 2008 12:53 pm

MOD5441X mmc.cpp SDXC support?

Post by ephogy » Mon Nov 26, 2018 7:09 am

I'm just wondering if there are any plans to support SDXC with the on-board controller.
I realize that Windows artificially restricts FAT32 partitions to 32GBs, though there are third party applications that let you create large FAT32 partitions which work in Windows, as well as create multiple partitions on external media, even if Windows won't let you.

In any case, getting the mmc functions to at least report the correct number of sectors for SDXC would be a good start.

The only bottle neck to this, it seems, is from the declaration of _get_csd_bits. Internally, the function works using unsigned long, but the return type is incorrect. The call to return the number of sectors is _get_csd_bits(csd,48,22)*1024. -- The number of bits to read is 22, but the return type is unsigned short.
Simply changing this to unsigned long, at least solves, the total number of sectors problem.

Right now, for 64GB SDXC cards the number of sectors returned is 56654848 (27GB), but should be 123763712 (59GB)
128 GB SDCX cards are slightly worse, reporting only 22GB of capacity, and 256 GB SDXC are the worst reporting only 12GB of capacity.

Cheers,
Keith

Post Reply