Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This application note explains how to install the U-Boot firmware to the STM32H7 SOM. Refer to Understanding STM32H7 SOM Boot Architecture (uClinux) as a pre-requisite to understanding the installation procedure.

1. Hardware Set-Up

The following hardware set-up is required for installation of the software to the STM32H7 SOM:

...

The following picture illustrates the above hardware set-up:

...

NOTE: The STM32H7-BSB Rev 1A/2A baseboards are supported by BSP version 2.5.0. The newer versions support the STM32H7-BSB Rev 4A baseboard only.

2. Installable Images

The images to be installed onto the STM32H7 SOM can be obtained using one of the two approaches, as follows:

3. Installing U-Boot SPL to Internal Flash

Step through the following procedure to install the U-Boot SPL to the internal Flash of the STM32H750:

  1. Run the following command on the Linux development host:

    Code Block
    [root@workbench linux-cm-stm32h7-2.6.1]# st-flash write u-boot/spl/\
    u-boot-spl.bin 0x08000000
    st-flash 1.7.0-120-gbeffed4
    2024-05-03T05:15:24 INFO common.c: H74x/H75x: 128 KiB SRAM, 22633 KiB flash
     in at least 128 KiB pages.
    file u-boot-spl.bin md5 checksum: d4d01d8f8aa453144bbe499de1181, stlink 
    checksum: 0x0050b4bb
    2024-05-03T05:15:24 INFO common.c: Attempting to write 61229 (0xef2d) bytes 
    to stm32 address: 134217728 (0x8000000)
    2024-05-03T05:15:24 WARN common.c: unaligned len 0xef2d -- padding with zero
    2024-05-03T05:15:25 INFO common.c: Flash page at addr: 0x08000000 erased
    2024-05-03T05:15:25 INFO common.c: Finished erasing 1 pages of 131072 
    (0x20000) bytes
    2024-05-03T05:15:25 INFO common.c: Starting Flash write for H7
    61230/61230 bytes written
    2024-05-03T05:15:27 INFO common.c: Starting verification of write complete
    2024-05-03T05:15:27 INFO common.c: Flash written and verified! jolly good!
    [root@workbench linux-cm-stm32h7-2.6.1]#
  2. Verify that the U-Boot SPL has been successfully installed. Reset the SOM by pressing the S3 button on the carrier board and confirm that the following output appears on the serial UART console:

    Code Block
    U-Boot SPL 2019.04- (May 03 2024 - 06:09:05 +0000)
    Hit 's' key to enter spl shell:
    Trying to boot from SPI

4. Installing U-Boot "Proper" to QSPI Flash

Step through the following procedure to install the U-Boot "Proper" to the QSPI Flash:

  1. On the development host, make sure that your serial terminal utility (such as picocom) is not connected to the board serial console (/dev/ttyUSB1 in this example). Exit the utility or just kill it, for example:

    Code Block
    [sasha_d@workbench ~]$ killall picocom
    [sasha_d@workbench ~]$
  2. Run the following command on the Linux development host:

    Code Block
    [sasha_d@workbench linux-cm-stm32h7-2.6.1]$ ./u-boot/board/emcraft/stm32h7-som/stm32h7-som-uboot-install.kermit /dev/ttyUSB1 u-boot/u-boot.img
  3. Reset the target board to start programming u-boot/u-boot.img via /dev/ttyUSB1.

  4. Reset the SOM by pressing the S3 button on the carrier board.

  5. Wait for the kermit utility to load the U-Boot image (observe the progress indicators).

  6. The script will exit successfully at the end of the installation procedure:

    Code Block
    ...
    Successfully programmed u-boot/u-boot.img to SPI Flash
    ...
    STM32H7-SOM U-Boot > ubi create env1 0x8000
    Creating dynamic volume env1 of size 32768
    STM32H7-SOM U-Boot > ubi create env2 0x8000
    Creating dynamic volume env2 of size 32768
    STM32H7-SOM U-Boot > [sasha_d@workbench  linux-cm-stm32h7-2.6.1]$
  7. Connect to the SOM console using a serial terminal utility, for example:

    Code Block
    [sasha_d@workbench ~]$ picocom -b 115200 /dev/ttyUSB1
  8. Verify that the U-Boot "proper" has been successfully installed. Reset the SOM by pressing the S3 button on the carrier board and confirm that the following output appears on the serial UART console:

    Code Block
    U-Boot SPL 2019.04- (May 03 2024 - 06:09:05 +0000)
    Hit 's' key to enter spl shell:
    Trying to boot from SPI
    
    
    U-Boot 2019.04- (May 03 2024 - 06:09:05 +0000)
    
    Model: STMicroelectronics STM32H7 SOM
    DRAM:  32 MiB
    SF: Detected n25q512ax3 with page size 256 Bytes, erase size 4 KiB, 
    total 64 MiB
    Flash: 128 KiB
    MMC:   STM32 SDMMC2: 0
    Loading Environment from UBI... ubi0: default fastmap pool size: 256
    ubi0: default fastmap WL pool size: 128
    ubi0: attaching mtd2
    ubi0: scanning is finished
    ubi0: attached mtd2 (name "system", size 31 MiB)
    ubi0: PEB size: 4096 bytes (4 KiB), LEB size: 3968 bytes
    ubi0: min./max. I/O unit sizes: 1/256, sub-page size 1
    ubi0: VID header offset: 64 (aligned 64), data offset: 128
    ubi0: good PEBs: 7936, bad PEBs: 0, corrupted PEBs: 0
    ubi0: user volume: 4, internal volumes: 1, max. volumes count: 23
    ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence 
    number: 0
    ubi0: available PEBs: 1518, total reserved PEBs: 6418, PEBs reserved for 
    bad PEB handling: 0
    Read 16384 bytes from volume env1 to d196f520
    Read 16384 bytes from volume env2 to d1973540
    *** Warning - bad CRC, using default environment
    
    In:    serial
    Out:   serial
    Err:   serial
    Volume splash not found!
    splash_screen_display: ubi_volume_read error=19
    Net:
    Error: ethernet@40028000 address not set.
    eth-1: ethernet@40028000
    Hit any key to stop autoboot:  0
    ERROR: Active image set is invalid
    STM32H7-SOM U-Boot >

5. Enabling LCD and Splash Screen on Starter Kit with LCD

If your starter kit includes the LCD, it can be enabled in software by installing the U-Boot splash screen image to the QSPI Flash. Step through the following procedure to install the stm32h7-splash-24bpp.bmp picture as the splash screen:

...