h1. EMMCFirmwareBugs {{toc}} h2. Data corruption Several devices have fixes or workarounds in vendor kernels for data corruptions in the eMMC. This can lead to non-working devices as it could potentially corrupt the bootloaders for instance. The bug #2104 has more details for the Galaxy SIII. h3. Affected devices h4. VTU00M *Affected devices*: Some Galaxy SIII (GT-I9300) *Vendor kernel patch*: "mmc: Soft-patch MoviNAND VTU00M (16GB) eMMC failure":https://git.replicant.us/replicant/kernel_samsung_smdk4412/commit/?id=da8461692362317a8ffce4d4646953985fcf4e1d *Upstream status*: not upstream *Replicant >=9 status*: not yet ported h5. How to check As this patch shows:
+ if (!strncmp(host->card->cid.prod_name, "VTU00M", 6) && + (host->card->cid.prod_rev == 0xf1) && + (mmc_start_movi_smart(host->card) == 0x2)) + host->card->movi_ops = 0x2;* The name of the eMMC is VTU00M * Only certain revisions are affected (revision 0xf1) * The revision is probably in the prv field h5. Vendor kernel workaround analysis The "mmc: Soft-patch MoviNAND VTU00M (16GB) eMMC failure":https://git.replicant.us/replicant/kernel_samsung_smdk4412/commit/?id=da8461692362317a8ffce4d4646953985fcf4e1d patch patches the eMMC firmware at runtime (it patches the firmware in RAM). The eMMC firmware patch makes the eMMC hang when a corruption is about to happen.