0

I have some trouble with a U-Boot mmc hwpartition of an eMMC storage soldered on an i.MX6 embedded module:

TX6UL U-Boot > mmc info
Device: FSL_SDHC
Manufacturer ID: 11
OEM: 100
Name: 004G6 
Tran Speed: 52000000
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 8 MiB
Bus Width: 4-bit
Erase Group Size: 4 MiB
HC WP Group Size: 4 MiB
User Capacity: 8 MiB WRREL
Boot Capacity: 2 MiB ENH
RPMB Capacity: 512 KiB ENH
GP1 Capacity: 8 MiB WRREL
GP2 Capacity: 1.8 GiB ENH WRREL

TX6UL U-Boot > mmc hwpartition set user wrrel on complete
Partition configuration:
        No enhanced user data area
        User partition write reliability: on
        No GP1 partition
        No GP2 partition
        No GP3 partition
        No GP4 partition
Card already partitioned
Failed!

So it looks like the mmc was already hardware partitioned before. According the patch once it is hardware partitioned, it is not reversible.

Is there really no way to repartition the soldered eMMC again? Do I have to throw the whole i.MX6 module away and buy a new one if I need other hardware partitioning?

migrated from stackoverflow.com Sep 23 '16 at 21:11

This question came from our site for professional and enthusiast programmers.

  • Why did an expert ranked down this question? What is unclear or not useful? – Achim Sep 7 '16 at 20:40
  • I've put the question into stackoverflow because a lot of other questions according U-Boot and mmc handling are also there - and got answered. In unix.stackexchange are much less questions and answers. I will ask for moving - Thanks for the hint – Achim Sep 8 '16 at 8:21
2

Yes — the hardware partitioning is a permanent operation that can only be performed once. You will need to replace your eMMC or get a new board if you want to redo the hardware partitioning.

Hardware partitioning (not to be confused with "normal" partitioning using programs like fdisk) includes:

  • Going into enhanced mode (MLC->SLC)
  • Partitioning the GPP (General Purpose Partitions)
  • Enabling Write Reliability Mode.

These settings are stored in the ECSD (Extended CSD) register in the eMMC, which is where uBoot is reading those settings from.

From the 4.51 JEDEC Standard (page 19):

Boot and RPMB Area Partitions' sizes and attributes are defined by the memory manufacturer (read-only), while General Purpose Area Partitions' sizes and attributes can be programmed by the host only once in the device life-cycle (one-time programmable).

Looking at your output, it appears the write reliability has already been set, so it makes sense that it cannot be re-partitioned.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.