Difference between revisions of "Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Populate the target and boot the image"

[quality revision] [quality revision]
(Populate the SDCard)
m
STM32MP157X-DK2.png
Let's start Develop on Arm® Cortex®-A7
Step category in.png Unpack the board Step.png Populate the target and boot the image Step.png Execute basic commands Step.png Use the demo launcher Step category out.png


1 Overview[edit]

This stage explains how to get, install and boot the STM32MP15 Discovery kit with the Starter Package.

2 Open a terminal[edit]

Open a terminal on the host computer.

Ubuntu terminal

All the commands preceded by PC $> have to be executed from the host computer terminal.

  • Create your STM32MPU workspace directory on your host computer
PC $> mkdir $HOME/STM32MPU_workspace
PC $> cd $HOME/STM32MPU_workspace

3 Check the host computer Internet access[edit]

  • An Internet access through http and https protocols must be provided.

The command below allows to check for Internet access through http/https protocols:

PC $> wget -q www.google.com && echo "Internet access over HTTP/HTTPS is OK !" || echo "No internet access over HTTP/HTTPS ! You may need to set up a proxy."

If an 'OK' message is returned, the network is well configured.
In such case, skip the rest of this section.

Any other likely situation indicates the need for a proxy for http/https protocols.
The best solution to set a proxy for http/https protocols is via the shell variables http_proxy and https_proxy:

PC $> export http_proxy=http://<MyProxyLogin>:<MyProxyPassword>@<MyProxyServerUrl>:<MyProxyPort>
PC $> export https_proxy=http://<MyProxyLogin>:<MyProxyPassword>@<MyProxyServerUrl>:<MyProxyPort>

Check again the Internet access with command:

PC $> wget -q www.google.com && echo "Internet access over HTTP/HTTPS is OK !" || echo "No internet access over HTTP/HTTPS ! You may need to set up a proxy."

4 Install the tools[edit]

4.1 STM32CubeProgrammer[edit]

Info.png STM32CubeProgrammer requires 1.8 version of the Java platform.

PC $> sudo apt-get install openjdk-8-jre
PC $> sudo update-alternatives --config java

Select the java-8-openjdk configuration.

  • Create your STM32MPU tools directory on your host computer
PC $> mkdir $HOME/STM32MPU_workspace/STM32MPU-Tools
PC $> mkdir $HOME/STM32MPU_workspace/STM32MPU-Tools/STM32CubeProgrammer-2.2.0
  • Create a temporary directory in your STM32MPU workspace
PC $> mkdir $HOME/STM32MPU_workspace/tmp
  • Download STM32CubeProgrammer v2.2.0 in the following directory
    $HOME/STM32MPU_workspace/tmp
  • Uncompress the archive file to get the STM32CubeProgrammer installers
PC $> cd $HOME/STM32MPU_workspace/tmp
PC $> unzip SetupSTM32CubeProgrammer.zip
  • Execute the Linux installer, which guides you through the installation process. Select "$HOME/STM32MPU-Tools/STM32CubeProgrammer-2.2.0" as the installation directory, when it's requested by the installer
PC $> ./SetupSTM32CubeProgrammer-2.2.0.linux
Splash screen
Welcome page
Installation path
  • Add the STM32CubeProgrammer binary path to your PATH environment variable
export PATH=$HOME/STM32MPU_workspace/STM32MPU-Tools/STM32CubeProgrammer-2.2.0/bin:$PATH
  • Check that the STM32CubeProgrammer tool is properly installed and accessible
PC $> STM32_Programmer_CLI --h
     -------------------------------------------------------------------
                       STM32CubeProgrammer v2.2.0                  
     -------------------------------------------------------------------

4.2 USB serial link[edit]

  • Install the libusb on your host computer
PC $> sudo apt-get install libusb-1.0-0
  • To allow STM32CubeProgrammer to access the USB port through low-level commands, proceed as follows
PC $> cd $HOME/STM32MPU_workspace/STM32MPU-Tools/STM32CubeProgrammer-2.2.0/Drivers/rules
PC $> sudo cp *.* /etc/udev/rules.d/

5 Download the image[edit]

5.1 For ecosystem release v1.1.0 More info.png[edit]
  • Create your STM32MP15 Starter Package directory on your host computer
PC $> mkdir $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0
PC $> mkdir $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Starter-Package
PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Starter-Package
  • Download the STM32MP15-Ecosystem-v1.1.0 Starter Package to the following directory:
    $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Starter-Package
  • Uncompress the tarball file to get the binaries for the different partitions of the image, and the Flash layout files
PC $> tar xvf en.FLASH-stm32mp1-openstlinux-4.19-thud-mp1-19-10-09.tar.xz
5.2 For ecosystem release v1.0.0 More info.png[edit]
  • Create your STM32MP15 Starter Package directory on your host computer
PC $> mkdir $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0
PC $> mkdir $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package
PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package
  • Download the STM32MP15-Ecosystem-v1.0.0 Starter Package to the following directory:
    $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package
  • Uncompress the tarball file to get the binaries for the different partitions of the image, and the Flash layout files
PC $> tar xvf en.FLASH-stm32mp1-openstlinux-4.19-thud-mp1-19-02-20.tar.xz


6 Populate the SDCard[edit]

  • Set the boot switches (located at the back of the board) to the off position
boot switches position to flash the board
  • Power up the board
  • Press the reset button to reset the board
  • Go to the Starter Package directory that contains the binaries and the Flash layout files

For ecosystem release v1.1.0 More info.png:

PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-10-09/images/stm32mp1

For ecosystem release v1.0.0 More info.png:

PC $> cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/images/stm32mp1
  • Get the device port location for the USB link
PC $> STM32_Programmer_CLI -l usb
      -------------------------------------------------------------------
                        STM32CubeProgrammer v2.2.0                  
      -------------------------------------------------------------------

=====  DFU Interface   =====

Total number of available STM32 device in DFU mode: 1

  Device Index           : USB1
  USB Bus Number         : 003
  USB Address Number     : 002
  Product ID             : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
  Serial number          : 004800233338511634383330
  Firmware version       : 0x0110
  Device ID              : 0x0500
  • Program the microSD card with the image for the trusted boot chain
PC $> STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv
  • If the board power supply doesn't supply enougth current (3A), the red LED indicates the issue following the rules below:
blink console message boot process
2 times WARNING 500mA power supply detected

Current too low, use a 3A power supply!

Continue and red LED stays ON
3 times WARNING 1500mA power supply detected

Current too low, use a 3A power supply!

Continue and red LED stays ON
forever ERROR USB TYPE-C connection in unattached mode

Check that USB TYPE-C cable is correctly plugged

stop
forever USB TYPE-C charger not compliant with USB specification stop
The flash programming operation takes several minutes (mainly depending of the rootfs size). A successful flash programming should be terminated by this following log information
Flashing service completed successfully

7 Boot the board[edit]

  • Set the boot switches (located at the back of the board) to the on position
boot switches position to boot the board
  • Power up the board
  • Press the reset button to reset the board
  • After few seconds, the board starts and automatically go through the following screens
UBoot splash screen
Linux splash screen
Weston desktop
GTK demo launcher


Back button.png Overview button.png Next button.png


<bookshelf src="Book:Getting started" />

{| class="contenttablest-table" style="text-align:center; margin: auto"
| colspan="9" style="text-align:center; border-color: white; background-color: whiteborder-style: hidden;" | [[Image:STM32MP157X-DK2.png‎ | 80px | link=]]
|-
| colspan="4" style="text-align:left; border-color: white; background-color: whiteborder-style: hidden; text-align:left;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start | {{GSModuleCurrent|Let's start}}]]
| colspan="5" style="text-align:right; border-color: white; background-color: whiteborder-style: hidden; text-align:right;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Develop on Arm® Cortex®-A7 | {{GSModuleNext|Develop on Arm® Cortex®-A7}}]]
|-
| style="border-color: white; background-color: whitestyle: hidden;" | [[Image:step_category_in.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: whiteborder-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board | {{GSStepNext|Unpack the board}}]]
| style="border-color: white; background-color: whitestyle: hidden;" | [[Image:step.png|link=]]
| style="width:110px; margin-top:0px; text-align:center; border-color: white; background-color: whiteborder-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Populate the target and boot the image | {{GSStepCurrent|Populate the target and boot the image}}]]
| style="border-color: white; background-color: whitestyle: hidden;" | [[Image:step.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: whiteborder-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands | {{GSStepNext|Execute basic commands}}]]
| style="border-color: white; background-color: whitestyle: hidden;" | [[Image:step.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: whiteborder-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Use the demo launcher | {{GSStepNext|Use the demo launcher}}]]
| style="border-color: white; background-color: whitestyle: hidden;" | [[Image:step_category_out.png|link=]]
|}<br>

==Overview==
This stage explains how to get, install and boot the STM32MP15 Discovery kit with the Starter Package.

{{:Populate the target and boot the image}}

==Populate the SDCard==
* Set the boot switches (located at the back of the board) to the off position
[[File: STM32MP157C-DK2_jumper_flash.jpg|frame|center|link=|boot switches position to flash the board]]
* Power up the board
* Press the reset button to reset the board
* Go to the Starter Package directory that contains the binaries and the Flash layout files

'''For {{EcosystemRelease | revision=1.1.0}}''':
 {{PC$}} cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.1.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-10-09/images/stm32mp1
<div class="mw-collapsible mw-collapsed">

'''For {{EcosystemRelease | revision=1.0.0}}''':<div class="mw-collapsible-content">

 {{PC$}} cd $HOME/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Starter-Package/stm32mp1-openstlinux-4.19-thud-mp1-19-02-20/images/stm32mp1</span>
</div></div>

* Get the device port location for the USB link
 {{PC$}} STM32_Programmer_CLI -l usb
       -------------------------------------------------------------------
                         STM32CubeProgrammer v2.2.0                  
       -------------------------------------------------------------------

 =====  DFU Interface   =====

 Total number of available STM32 device in DFU mode: 1

   Device Index           : {{highlight|USB1}}
   USB Bus Number         : 003
   USB Address Number     : 002
   Product ID             : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
   Serial number          : 004800233338511634383330
   Firmware version       : 0x0110
   Device ID              : 0x0500

* Program the <span id="Flash microSD card">microSD card</span> with the image for the trusted boot chain {{UpdateNeededForNewRelease|Check the name of the flashlayout file}}
 {{PC$}} STM32_Programmer_CLI -c port={{highlight|usb1}} -w flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157c-dk2-trusted.tsv

:* If the board power supply doesn't supply enougth current (3A), the red LED indicates the issue following the rules below:
:::{|
! blink
! console message
! boot process
|-
| 2 times
| WARNING 500mA power supply detected
Current too low, use a 3A power supply!
| Continue and red LED stays ON
|-
| 3 times
| WARNING 1500mA power supply detected
Current too low, use a 3A power supply!
| Continue and red LED stays ON
|-
| forever
| ERROR USB TYPE-C connection in unattached mode
Check that USB TYPE-C cable is correctly plugged
| stop
|-
| forever
| USB TYPE-C charger not compliant with USB specification
| stop
|}

:The flash programming operation takes several minutes (mainly depending of the rootfs size). A successful flash programming should be terminated by this following log information<pre>

Flashing service completed successfully</pre>


==Boot the board==
* Set the boot switches (located at the back of the board) to the on position
[[File: STM32MP157C-DK2_jumper_boot.jpg|frame|center|link=|boot switches position to boot the board]]
* Power up the board
* Press the reset button to reset the board
* After few seconds, the board starts and automatically go through the following screens
[[File: STM32MP1_uboot_splashscreen.png|thumb|upright=2|center|link=|UBoot splash screen]]
[[File: STM32MP1_psplash.png|thumb|upright=2|center|link=|Linux splash screen]]
[[File: STM32MP1_weston_desktop.png|thumb|upright=2|center|link=|Weston desktop]]
[[File: STM32MP1_gtk_demo_launcher.png|thumb|upright=2|center|link=|GTK demo launcher]]
<br>

{| class="contenttablest-table" style="margin: auto"
| style="border-color: white; background-color: white; style: hidden; width:120px; text-align:left" | [[Image:back_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board]]
| style="border-color: white; background-color: white; style: hidden; width:360px; text-align:center" | [[Image:overview_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2]]
| style="border-color: white; background-color: white; style: hidden; width:120px; text-align:right" | [[Image:next_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands]]
|}
<noinclude>

{{DISPLAYTITLE:{{SUBPAGENAME}}}}
__NOTOC__
[[Category:STM32MP157C-DK2 - let's start | 02]]
{{PublicationRequestId | Auto}}</noinclude>
Line 1: Line 1:
 
<bookshelf src="Book:Getting started" />
 
<bookshelf src="Book:Getting started" />
{| class="contenttable" style="margin: auto"
+
{| class="st-table" style="text-align:center; margin: auto"
| colspan="9" style="text-align:center; border-color: white; background-color: white" | [[Image:STM32MP157X-DK2.png‎ | 80px | link=]]
+
| colspan="9" style="border-style: hidden;" | [[Image:STM32MP157X-DK2.png‎ | 80px | link=]]
 
|-
 
|-
| colspan="4" style="text-align:left; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start | {{GSModuleCurrent|Let's start}}]]
+
| colspan="4" style="border-style: hidden; text-align:left;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start | {{GSModuleCurrent|Let's start}}]]
| colspan="5" style="text-align:right; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Develop on Arm® Cortex®-A7 | {{GSModuleNext|Develop on Arm® Cortex®-A7}}]]
+
| colspan="5" style="border-style: hidden; text-align:right;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Develop on Arm® Cortex®-A7 | {{GSModuleNext|Develop on Arm® Cortex®-A7}}]]
 
|-
 
|-
| style="border-color: white; background-color: white" | [[Image:step_category_in.png|link=]]
+
| style="border-style: hidden;" | [[Image:step_category_in.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board | {{GSStepNext|Unpack the board}}]]
+
| style="border-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board | {{GSStepNext|Unpack the board}}]]
| style="border-color: white; background-color: white" | [[Image:step.png|link=]]
+
| style="border-style: hidden;" | [[Image:step.png|link=]]
| style="width:110px; margin-top:0px; text-align:center; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Populate the target and boot the image | {{GSStepCurrent|Populate the target and boot the image}}]]
+
| style="border-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Populate the target and boot the image | {{GSStepCurrent|Populate the target and boot the image}}]]
| style="border-color: white; background-color: white" | [[Image:step.png|link=]]
+
| style="border-style: hidden;" | [[Image:step.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands | {{GSStepNext|Execute basic commands}}]]
+
| style="border-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands | {{GSStepNext|Execute basic commands}}]]
| style="border-color: white; background-color: white" | [[Image:step.png|link=]]
+
| style="border-style: hidden;" | [[Image:step.png|link=]]
| style="width:110px; text-align:center; border-color: white; background-color: white" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Use the demo launcher | {{GSStepNext|Use the demo launcher}}]]
+
| style="border-style: hidden; width:110px;" | [[Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Use the demo launcher | {{GSStepNext|Use the demo launcher}}]]
| style="border-color: white; background-color: white" | [[Image:step_category_out.png|link=]]
+
| style="border-style: hidden;" | [[Image:step_category_out.png|link=]]
 
|}
 
|}
 
<br>
 
<br>
Line 101: Line 101:
   
 
<br>
 
<br>
{| class="contenttable" style="margin: auto"
+
{| class="st-table" style="margin: auto"
| style="border-color: white; background-color: white; width:120px; text-align:left" | [[Image:back_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board]]
+
| style="border-style: hidden; width:120px; text-align:left" | [[Image:back_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Unpack the STM32MP157C-DK2 board]]
| style="border-color: white; background-color: white; width:360px; text-align:center" | [[Image:overview_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2]]
+
| style="border-style: hidden; width:360px; text-align:center" | [[Image:overview_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2]]
| style="border-color: white; background-color: white; width:120px; text-align:right" | [[Image:next_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands]]
+
| style="border-style: hidden; width:120px; text-align:right" | [[Image:next_button.png|link=Getting started/STM32MP1 boards/STM32MP157C-DK2/Let's start/Execute basic commands]]
 
|}
 
|}
   

Attachments

Discussions