cancel
Showing results for 
Search instead for 
Did you mean: 

An Ethernet Bootloader for ST32H750VB

HMora.1
Associate II

Hi,

I have a custom board based on STM32H750VB that has Ethernet connection. I want to develop a bootloader code that can program Flash for system upgrade purposes. I read in the datasheet that there is a bootloader in System Memory and is programmed by ST in the factory. It has access to some serial ports like USB, SPI, I2C and USART but not Ethernet. Below are my questions:

  1. I am wondering whether it is possible to place some parts of application memory and at the same time have access to the flash from there or not? Using Bank swap bits I am expecting to program each time one Bank and set the related bit and restart from that bank the next time.
  2. Does the application have access to Flash - Write, Erase,.. commands - when we are in application section? Or, not

I would really appreciate a prompt response.

Thanks,

Hossein

4 REPLIES 4
Pavel A.
Evangelist III

You can start from one of Ethernet & LwIP examples for other STM32H7 models, especially look at a TFTP example.

H750 officially has only one flash page and only one bank. But not oficially, it is known to have at least one more page where you can

place the downloaded program.

Of course it is your responsibility to test that extra flash pages exist, and if not - no complaints...

-- pa

HMora.1
Associate II

Thank you for your answer. I don\t know whether you know it or not. St have problems with those Ethernet drivers and LWIP is not going to work easily as expected. Once a guy could manage it and I did what he had documented in the link:

https://community.st.com/s/question/0D50X0000C6eNNSSQ2/bug-fixes-stm32h7-ethernet

However, this could not solve my problems. Anyway, I am currently working with LAN with some other modifications that I have done. It is now working in interrupt mode. And, i am not sure whether I can get it running with LWIP as well. Below are some questions:

  1. I don't know what the main purpose of Bootloader is when it has only few serial ports available for communication in that region?
  2. Do we need to develop firmware for Bootloader region as well? Or, ST have already programmed it with some firmware. And, it runs every time the system powers up looking for valid data on those serial ports ( SPI, USART, I2C and USB)
  3. Are you sure that I can use two pages and switch between them? I read in the datasheet that STM32H750VB specifically doesn't have the Bank Swapping capability.
  4. I would also really appreciate if you can confirm whether that TFTP example was for this chip or for another one.

Comments from other experts are also appreciated.

Thanks in advance,

Hossein

1 Purpose of ST’s bootloader is (generally) to flash new firmware to the device. It resides in ROM so you can’t brick the chip by flashing bogus firmware.

2 You cannot change the ST bootloader as it resides in ROM. You can however program your own user bootloader which runs on startup and can be changed. The ROM bootloader only runs when the boot0 pin is high on startup. Otherwise, it bootloader is skipped and your user code executes instead.

I don’t believe the ROM bootloader has ethernet capability. This is something you would need to write and flash as your own custom user bootloader.

If you feel a post has answered your question, please click "Accept as Solution".

> I don\t know whether you know it or not. St have problems with those Ethernet drivers and LWIP is not going to work easily as expected.

Yep. Thank you, I know =) But we've been able to tweak it and get it working "well enough" for simple use cases. LwIP with UDP with no RTOS (polling), and LwIP with netconn TCP sockets and freeRTOS.

> Do we need to develop firmware for Bootloader region as well?

Yes. The built-in ST bootloader does not support ethernet.

> Are you sure that I can use two pages and switch between them?

Pages - yes. Banks - no. Download the program into another page of bank 1 and jump to it.

-- pa