cancel
Showing results for 
Search instead for 
Did you mean: 

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

GCici
Associate II

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.

7 REPLIES 7
PatrickF
ST Employee

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

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
GCici
Associate II

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)?

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.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
GCici
Associate II

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?

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.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Bernard PUEL
ST Employee

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.

Yeah, noticed that, but i had to try 🙂

Thanks