[U-Boot] [PATCH 0/2] mmc: Fix capacity calculation and erase_group_size
Oliver Metz
oliver at freetz.org
Tue Oct 1 20:32:05 CEST 2013
These patches are addressing two issues that I had after activating
enhanced user area feature for a 4GB card so the capacity was less
than 2 GB afterwards.
1. The capacity for a high density device is calculated in a wrong way.
I was not able to find any hints for this implementation in JEDEC 4.41.
Anyhow, if we have ext_csd revision >= 2 we can use SEC_COUNT field to
calculate the size.
2. If we have a partitioned device, e.g. enhanced user area, the
ERASE_GROUP_DEF bit in ext_csd shall be set (see JEDEC 4.41,
chapter 7.2.3 Configure partitions). This bit defaults to "0" on power
on.
Oliver Metz (2):
When using a high capacity card with a density less than 2 GB a wrong
size is shown. According to JEDEC 4.41 there is no differentiation
for C_SIZE register between low and high capacity cards
EXT_CSD_ERASE_GROUP_DEF is lost every time after a reset or reboot.
Set it if device has enhanced partitions.
drivers/mmc/mmc.c | 49 +++++++++++++++++++++++--------------------------
include/mmc.h | 2 ++
2 files changed, 25 insertions(+), 26 deletions(-)
--
1.8.4
More information about the U-Boot
mailing list