Skip to main content
Visitor II
May 4, 2020
Question

STM32MP151A custom board with eMMC sometimes go to DFU on power-up. Need help to write OTP word 3.

  • May 4, 2020
  • 4 replies
  • 2110 views

Hi. I've made a custom board very similar to stm32mp157c-DK2 BUT with STM32MP151A and ONLY eMMC (on SDMMC2 standard MUX) as flash device (no NOR, no QUADSPI, no SD). I built all necessary files with the help of CubeMX program and all works good EXCEPT that sometimes when i power off and physically remove AC then put AC on again, the device go in DFU. boot012 pins are configured well. I was thinking about trying to write OTP word 3 with a forced configuration in order to make the MPU boot always from eMMC. The question is: how to write to OPT word 3? Any example? I've only found MAC address example but i think it's a bit different. Any help would be appreciated.

    This topic has been closed for replies.

    4 replies

    Technical Moderator
    May 4, 2020

    Hello,

    Which eMMC reference are you using ?

    There is a know bug on STM32MP15x silicon Rev.B with eMMC which avoid some reference to boot correctly, this is solved in Rev.Z silicon revision.

    Meanwhile, as an indication, Toshiba THGBMNG5D1LBAIL, THGBMDG5D1LBAIL, and Kingston EMMC04G-M627-X03U have shown to operate correctly on the STM32MP157C-EV1 board which are still using Rev.B silicon.

    Rev.Z is in production now (there could still be some Rev.B in stock at distributors, so you should ask before placing order).

    See ES0438: STM32MP151x/3x/7x device limitations

    GCiciAuthor
    Visitor II
    May 4, 2020

    Hi. I have Silicon Rev B on 500 boards and I'm using a Samsung KLM8G1GETF-B041.

    Is there any workaround to make it boot (for example programming OTP word 3 or something else)?

    Technical Moderator
    May 4, 2020

    Unfortunately, as far as we know, there is no workaround except using different eMMC device or Rev.Z STM32MP15x silicon.

    Programming OTP word 3 will not help.

    Usually, the second boot tentative (while keeping power to the eMMC) is ok (as eMMC should answer faster on the second boot command). e.g. a NRST_CORE pulse after DFU is entered will usually boot the eMMC.

    GCiciAuthor
    Visitor II
    May 4, 2020

    Thank you Patrick. Anyway i would try to write OTP word 3 in order to force both primary and secondary boot devices to be eMMC. Could you help me?

    Technical Moderator
    May 4, 2020

    For OTP programming, you could use either CubeProgrammer or uBoot

    for Cubeprogrammer, see https://wiki.st.com/stm32mpu/wiki/STM32CubeProgrammer#How_to_fuse_STM32MP15x_OTP (need to carefully follow the steps)

    for uBoot, the command will be something like 'fuse prog 0 0x3 0xNN'

    Please be aware than OTP miss-programming could make the device not working.

    Technical Moderator
    May 5, 2020

    There is no workaround. The problem of revB is in the bootrom of the chip, there is nothing you can do except changing STM32MP15 chip to Rev Z or chose an EMMC from the working list.

    OTP word 3 will not change anything.

    GCiciAuthor
    Visitor II
    May 5, 2020

    Yeah, noticed that, but i had to try :)

    Thanks