Migrating STM32F4 SOM to Release 2.0.0 Print


This note explains how to upgrade the STM32F4 SOM running earlier release to Release 2.0.0. The procedure below assumes that you have configured networking in U-Boot and placed the release 2.0.0 images to the TFTP directory on your host.

Note that the layout of the Flash partitions has changed in Release 2.0.0. If you are using the JFFS2 partition (/dev/mtd2), preserve it contents (for example, using NFS mount) before running the upgrade.

  • Reboot and stop at the U-Boot prompt:
  • U-Boot 2010.03-cortexm-1.14.2 (Sep 04 2015 - 20:31:28)

    CPU :   STM32F4 (Cortex-M4)
    Freqs:  SYSCLK=180MHz,HCLK=180MHz,PCLK1=45MHz,PCLK2=90MHz
    Board:  STM-SOM Rev 2.A, www.emcraft.com
    DRAM:   32 MB
    Flash:  16 MB
    In:     serial
    Out:    serial
    Err:    serial
    Net:    STM32_MAC
    Hit any key to stop autoboot: 0
    STM32F4X9-SOM>

  • Update the U-Boot image. The system will reset, stop at the U-Boot prompt.
  • STM32F4X9-SOM> tftp psl/stmf4/cm-2.0.0/u-boot.bin
    Auto-negotiation...completed.
    STM32_MAC: link UP (100/Half)
    Using STM32_MAC device
    TFTP from server 172.17.0.1; our IP address is 172.17.4.206
    Filename 'psl/stmf4/cm-2.0.0/u-boot.bin'.
    Load address: 0xc0007fc0
    Loading: ########
    done
    Bytes transferred = 115784 (1c448 hex)
    STM32F4X9-SOM> cptf 0x08000000 ${loadaddr} ${filesize} 1
    cptf: Updating eNVM. Please wait ...


    U-Boot 2010.03-cortexm-2.0.0 (May 12 2016 - 14:15:19)

    CPU :   STM32F4 (Cortex-M4)
    Freqs:  SYSCLK=180MHz,HCLK=180MHz,PCLK1=45MHz,PCLK2=90MHz
    Board:  STM-SOM Rev 2.A, www.emcraft.com
    DRAM:   32 MB
    Flash:  16 MB
    In:     serial
    Out:    serial
    Err:    serial
    Net:    STM32_MAC
    Hit any key to stop autoboot: 0
    STM32F4X9-SOM>

  • Update the load address in RAM:
  • STM32F4X9-SOM> print loadaddr
    loadaddr=0xC0007FC0
    STM32F4X9-SOM> setenv loadaddr 0xC0007FB4
    STM32F4X9-SOM> savee
    Saving Environment to Flash...
    . done
    Un-Protected 1 sectors
    Erasing Flash...
    . done
    Erased 1 sectors
    Writing to Flash... done
    . done
    Protected 1 sectors
    STM32F4X9-SOM>

  • Update the Linux image in the NOR Flash:
  • STM32F4X9-SOM> setenv image psl/stmf4/cm-2.0.0/rootfs.uImage
    STM32F4X9-SOM> run update
    Auto-negotiation...completed.
    STM32_MAC: link UP (100/Half)
    Using STM32_MAC device
    TFTP from server 172.17.0.1; our IP address is 172.17.4.206
    Filename 'psl/stmf4/cm-2.0.0/rootfs.uImage'.
    Load address: 0xc0007fb4
    Loading: ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ########################################################################
    ##############################
    done
    Bytes transferred = 5735684 (578504 hex)
    ............................................ done
    Un-Protected 44 sectors

    ............................................ done
    Erased 44 sectors
    Copy to Flash... done
    Saving Environment to Flash...
    . done
    Un-Protected 1 sectors
    Erasing Flash...
    . done
    Erased 1 sectors
    Writing to Flash... done
    . done
    Protected 1 sectors
    STM32F4X9-SOM>

  • Reset and boot the new Linux image:
  • U-Boot 2010.03-cortexm-2.0.0 (May 12 2016 - 14:15:19)

    CPU:   STM32F4 (Cortex-M4)
    Freqs: SYSCLK=180MHz,HCLK=180MHz,PCLK1=45MHz,PCLK2=90MHz
    Board: STM-SOM Rev 2.A, www.emcraft.com
    DRAM:  32 MB
    Flash: 16 MB
    In:    serial
    Out:   serial
    Err:   serial
    Net:   STM32_MAC
    Hit any key to stop autoboot: 0
    ## Booting kernel from Legacy Image at c0007fb4 ...
    Image Name: Linux-4.2.0-cortexm-2.0.0
    Image Type: ARM Linux Multi-File Image (uncompressed)
    Data Size: 5735620 Bytes = 5.5 MB
    Load Address: c0008000
    Entry Point: c0008001
    Contents:
    Image 0: 5718576 Bytes = 5.5 MB
    Image 1: 17032 Bytes = 16.6 kB
    Verifying Checksum ... OK
    ## Flattened Device Tree from multi component Image at C0007FB4
    Booting using the fdt at 0xc057c230
    Loading Multi-File Image ... OK
    OK
    Loading Device Tree to c1ff8000, end c1fff287 ... OK

    Starting kernel ...

    Booting Linux on physical CPU 0x0
    Linux version 4.2.0-cortexm-2.0.0 ( This e-mail address is being protected from spambots. You need JavaScript enabled to view it )(gcc version 4.4.1 (Sourcery G++ Lite 2010q1-189) ) #1 Thu May 12 14:57:40 +0400 2016
    ...
    Freeing unused kernel memory: 2652K (c02bb000 - c0552000)
    init started: BusyBox v1.17.0 (2016-05-12 14:56:35 +0400)
    / #