diff options
author | belgin <belginstirbu@hotmail.com> | 2021-06-29 20:31:12 +0300 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-07-08 10:33:52 +0200 |
commit | 4f4ba41214fe5ef3297b8973b09c6c5a6bf5f7f8 (patch) | |
tree | 252691de1e6e3b2aa45f32e0a2a8af7fbace8601 /arch/sparc | |
parent | dc4bef8cf8fa37eb0c581ba4c32a73cf27818e9d (diff) | |
download | kernel_replicant_linux-4f4ba41214fe5ef3297b8973b09c6c5a6bf5f7f8.tar.gz kernel_replicant_linux-4f4ba41214fe5ef3297b8973b09c6c5a6bf5f7f8.tar.bz2 kernel_replicant_linux-4f4ba41214fe5ef3297b8973b09c6c5a6bf5f7f8.zip |
mmc: core: Workaround VTU00M 0xf1 FTL metadata corruption bug
Some versions of the 0xf1 revision of the firmware of the
VTU00M eMMC from Samsung have a bug that triggers an FTL
metadata corruption.
These eMMC are used at least in the Samsung Galaxy SIII
(GT-I9300) and Galaxy Note II (GT-N7100).
The corrupted FTL metadata can make the eMMC CPU crash.
In practice as the eMMC has several hardware partitions, in
some cases the bootloader hadware partition (which is used
to store the phone bootloader in the Galaxy SIII and Note II)
still works, while the main hardware partition (that contains
the phone operating system) doesn't.
In other cases the eMMC crashes during the very begining of
its boot procedure. In that case the phones botloaders can't
be loaded anymore, which results in a black screen and no
visible signs that the phone has been powered on.
This patch has been ported from the Samsung patch made to
address this issue.
It uses MMC vendor specific commands to patch the eMMC
firmware in RAM. The patch hangs the eMMC CPU right before
the corruption is about to happen.
So while it's not ideal, it still better to have devices
hanging, even repetedly, than breaking devices completely.
Since VTU00M eMMC firmwares are not free software nor
redistributable, we cannot simply dump newer firmwares,
and redistribute them. In addition the only tested way
to do a firmware update destroys all the data on the
eMMC (including the FTL metadata as well) in the process.
A proper fix would be to write a compatible free software
eMMC firmware and to investigate the firmware update command
that doesn't erase the FTL metadata and/or the data, however
this could be quite time consuming.
References:
- https://media.ccc.de/v/34c3-8784-emmc_hacking_or_how_i_fixed_long-dead_galaxy_s3_phones
TODO:
- Adapt this patch to use the SD/eMMC hook system for eMMC cards.
- upstream it
Signed-off-by: belgin <belginstirbu@hotmail.com>
GNUtoo: Rewrite the commit message
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'arch/sparc')
0 files changed, 0 insertions, 0 deletions