cancel
Showing results for 
Search instead for 
Did you mean: 

[STM32H743] USB DFU cannot write to Flash Bank 2

MaxMax
Associate II

Hello,

I tried to use the factory DFU bootloader to program an image via USB. Everything works until the DFU utility tries to write/erase anything in Bank 2 of the Flash (from 0x8100000). When I try to write data to this region, the DFU utility just prints timeouts infinitely. Writing the image via SWD works fine, by the way. This happens with both the DfuSeDemo and dfu-util. Does anyone know how such a behavior can be caused, or how it can be avoided?

Best regards,

Max

4 REPLIES 4
MaxMax
Associate II

Does anyone have success with writing to bank 2?

SCiap.1
Associate

Max, 

I have encountered same issue on STM32H753, Chip version is V with bootloader version 90.

I am unable to access 2nd Bank of Flash (from 0x8100000) using dfu-util.

In previous Chip version Y with bootloader version D2, I was able to access (erase/write) 2nd Bank of Flash using dfu-util without any problem.

Do You know - Is there any known workaround for this issue or patch to use dfu-util for the latest Chip version V, bootloader version 90?

If You have any additional input on this issue - please share.

Best Regards,

MaxMax
Associate II

Hi SCiap.1,

unfortunately, there is no news from my side. But I'm glad that you verified that this. It would be helpful to have some kind of statement from ST on how to tackle this, and whether this is really a bug in the fabric or just something that can be patched. I'm a bit unhappy as I bought several chips which I cannot use the way I intended, and that there was so far no response from ST.

Best regards,

Max

I actually made some progress. I got lucky with the dfu-util. It worked when I specified the parameters force and mass-erase:

./dfu-util -a 0 -S [serial number] -s :force:mass-erase:leave -v -D firmware.dfu

I'm not fully sure why, though. One issue is you need to replace the STM driver with WinUSB (on Windows, of course), but the process is straightforward, takes about one minute, and is explained on the dfu-util site.

Best regards,

Max