On Sat, Oct 25, 2025 at 8:06 PM Sam Protsenko <[email protected]> wrote: > > When doing USB boot [1,2] on E850-96 board (based on Exynos850 SoC) it > was found the eMMC becomes non-functional. The reason why it happens is > that the FMP (Flash Memory Protector) is enabled in FMPSECURITY register > (eMMC block) during USB boot. > > In regular boot from eMMC the FMP is disabled by some early bootloader: > > FMPSECURITY[31:0] = 0xcfe2_e492 > > But when performing USB boot, this register keeps its reset value: > > FMPSECURITY[31:0] = 0xffe2_e492 > > which leads to non-functional eMMC, because the next two bits are > enabled in this case: > > - FMP_ON[29] = 1: FMP encryption is enabled for eMMC > - MMC_SFR_PROT_ON = 1: SFR memory region (peripheral registers) > protection is enabled for eMMC block > > That makes eMMC inaccessible from U-Boot. > > This patch series implements disabling FMP on Exynos850 to make eMMC > functional when U-Boot is executed during USB boot. The per-patch > breakdown: > > - patches 1-3: cleanup > - patches 4-6: adding FMP disabling quirk and enabling it on E850 > > Patches are supposed to be applied in the same order as they appear in > the series, to keep the dependencies straight. The series is expected to > go either through Minkyu's (Samsung) tree, or Peng Fan's MMC tree. > > [1] https://gitlab.com/LinaroLtd/e850-96/tools/dltool > [2] > https://docs.u-boot.org/en/latest/board/samsung/e850-96.html#flashing-overview > > Sam Protsenko (6): > mmc: exynos_dw_mmc: Extend dm_dwmci_ops without code duplication > mmc: dw_mmc: Do not export dwmci_send_cmd() and dwmci_set_ios() > mmc: exynos_dw_mmc: Improve coding style > mmc: exynos_dw_mmc: Add quirk for disabling FMP > mmc: exynos_dw_mmc: Add exynos850 compatible > mmc: exynos_dw_mmc: Disable FMP for Exynos850 chip > > arch/arm/mach-exynos/include/mach/dwmmc.h | 6 ++ > drivers/mmc/dw_mmc.c | 6 +- > drivers/mmc/exynos_dw_mmc.c | 78 ++++++++++++++++------- > include/dwmmc.h | 3 - > 4 files changed, 65 insertions(+), 28 deletions(-) > > > base-commit: 1071cc85bc4d1416fd93a063ba4abdd2d17ae0db > -- > 2.39.5 >
Clarification: the series is based on mmc/next tree [1], so it probably should go through the same tree, to avoid possible collisions. [1] https://source.denx.de/u-boot/custodians/u-boot-mmc/-/tree/next

