You can create a bootable microSD card and use it to boot the ConnectCore MP15.
Create a bootable microSD card
Requirements
-
Root/administrator permissions in your development computer
-
A microSD card with a minimum capacity of 1 GB
Build images suitable for microSD card
Refer to Create bootable sdcard image for information on creating an image for the microSD card.
As a result of this process, you’ll create an artifact in the form ccmp1-<ram_size>.wks-<timestamp>-mmcblk.direct
.
Program the microSD card
This process formats and erases all contents on the microSD card. |
-
Insert the microSD card on your development PC and note the device node assigned to it.
-
Run the following command to write the full image to the microSD card:
$ sudo dd if=ccmp1-<ram_size>.wks-<timestamp>-mmcblk.direct of=<microsd_dev> $ sync
The microSD card is now ready.
Configure SDMMC boot device
The ROM loader of the STM32MP15 is prepared to boot by default from SDMMC1 controller. The ConnectCore MP15 Development Kit microSD socket is connected to SDMMC2 controller.
To be able to boot from the microSD socket, you must instruct the ROM loader to use a different controller than the default SDMMC1. This is achieved by burning some one-time programmable (OTP) bits.
Burn OTP bits
Burning of the OTP bits is an irreversible operation. The values used in the examples in this topic are valid for the interface and pads used on the microSD socket of the ConnectCore MP15 Development Kit. For reference, check https://wiki.st.com/stm32mpu/wiki/STM32_MPU_ROM_code_overview#Boot_from_SD_card. |
Select the SDMMC controller
Bits [4:3] of OTP word 3 select the SDMMC controller the ROM loader must boot from. To select the SDMMC2 controller, run the following command in U-Boot:
=> fuse prog 0 3 10
Select IOMUX pads
The ROM loader must also configure the correct IOMUX of the pads to be used with the SDMMC2 controller. The ROM loader really only uses one data line (D0) plus CMD and CLK. The ConnectCore MP15 Development Kit microSD socket uses the following:
Line | Pad | IOMUX |
---|---|---|
SDMMC2_D0 |
B14 |
AF9 |
SDMMC2_CMD |
G6 |
AF10 |
SDMMC2_CK |
E3 |
AF9 |
You can program these on OTP words 5 and 6 as follows:
=> fuse prog 0 5 76A12E91
=> fuse prog 0 6 00005391
Boot the target from microSD card
-
Insert the microSD card on the socket of the ConnectCore MP15 Development Kit
-
Change the boot mode switches to boot from the microSD:
-
BOOT.1
: OFF -
BOOT.2
: ON -
BOOT.3
: ON -
BOOT.4
: n/a
-
-
Apply power
The target boots from the microSD.