cancel
Showing results for 
Search instead for 
Did you mean: 

How to create bootable OpenST-Linux USB memory for STM32MPU ?

A.M.
Associate III

Hello,

I created already several SD-cards images (.raw) using the `create_sdcard_from_flashlayout.sh` script, from both starter kit and Yocto build.
Note: Currently working on the STM32MP256 evaluation board.

We would like to have something similar with USB:

1) Create a *.raw image
2) Use `dd` or Raspberry Pi Imager to flash the USB memory
3) Select the boot pins on the evaluation board (all-zeros for USB boot)
4) Insert the USB memory
5) Power-on and wait until Linux is loaded.

To my surprise, this process that works fine for sdcards does not work for USB (The card does not boot). This also makes sense considering that :

* The script is called `create_sdcard....` and not `create_usb`
* The *.tsv are either _emmc_ or _sdcard_

But why there is not _usb_ tsv or create_usb script?

All the documentation found about USB is by connecting the computer and using the USB link to flash the emmc. This is fine in some environments, but not in others.

How to create a bootable OpenST-Linux USB memory ?

1 ACCEPTED SOLUTION

Accepted Solutions
PatrickF
ST Employee

Hi,

It is not possible to directly boot from an USB mass storage (USB flash drive or SSD).

Alternatively, you could boot from a small Flash (SD-Card, Serial-NOR, etc..), then uBoot could start the kernel from USB flash drive (or any other available interface if suitable, e.g. PCIe).

This might require some development to make right driver available in uBoot (e.g. USB host with mass storage support).

 

As you mention, the USB boot is meant connecting the STM32MPx to an Host with USB DFU to allows flashloading the board (Using CubeProgrammer or 3rd party SW)

Regards.

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.

View solution in original post

1 REPLY 1
PatrickF
ST Employee

Hi,

It is not possible to directly boot from an USB mass storage (USB flash drive or SSD).

Alternatively, you could boot from a small Flash (SD-Card, Serial-NOR, etc..), then uBoot could start the kernel from USB flash drive (or any other available interface if suitable, e.g. PCIe).

This might require some development to make right driver available in uBoot (e.g. USB host with mass storage support).

 

As you mention, the USB boot is meant connecting the STM32MPx to an Host with USB DFU to allows flashloading the board (Using CubeProgrammer or 3rd party SW)

Regards.

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.