2023-04-18 03:16 AM
Hello everyone,
I have a custom board based on STM32MP157A (rev. Z) and I am trying to boot from emmc; I am able to boot sucessfully from SD card; I flashed the same image to the emmc with the ST MX Cube Programmer and, if get into u-boot from SD card, I am able to inspect the partitions and information of the emmc (see below), but whenever I set the boot pins to 010 I get no messages on the serial UART, while the emmc seems to be powered.
STM32MP> mmc list
STM32 SD/MMC: 0 (SD)
STM32 SD/MMC: 1 (eMMC)
STM32MP> mmc info
Device: STM32 SD/MMC
Manufacturer ID: 2
OEM: 544d
Name: SA04G
Bus Speed: 50000000
Mode: SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
STM32MP> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
STM32MP> mmc info
Device: STM32 SD/MMC
Manufacturer ID: 45
OEM: 100
Name: DG400
Bus Speed: 52000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 8-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 7.3 GiB WRREL
Boot Capacity: 4 MiB ENH
RPMB Capacity: 4 MiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected
STM32MP> mmc part
Partition Map for MMC device 1 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000400 0x000007ff "metadata1"
attrs: 0x0000000000000000
type: 8da63339-0007-60c0-c436-083ac8230908
guid: 1d916f8f-dbf8-4dd4-b00b-03114253c37c
2 0x00000800 0x00000bff "metadata2"
attrs: 0x0000000000000000
type: 8da63339-0007-60c0-c436-083ac8230908
guid: 4c35e57c-2ad5-4793-b393-2647bf924f3e
3 0x00000c00 0x00002bff "fip-a"
attrs: 0x0000000000000000
type: 19d5df83-11b0-457b-be2c-7559c13142a5
guid: 4fd84c93-54ef-463f-a7ef-ae25ff887087
4 0x00002c00 0x00004bff "fip-b"
attrs: 0x0000000000000000
type: 19d5df83-11b0-457b-be2c-7559c13142a5
guid: 09c54952-d5bf-45af-acee-335303766fb3
5 0x00004c00 0x00004fff "u-boot-env"
attrs: 0x0000000000000000
type: 8da63339-0007-60c0-c436-083ac8230908
guid: 5a80ceb4-38b5-4bfc-96fa-42d15ece1f4c
6 0x00005000 0x00024fff "bootfs"
attrs: 0x0000000000000004
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
type: linux
guid: d6a61178-d356-43d5-8f44-54504dd57cc0
7 0x00025000 0x0002cfff "vendorfs"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
type: linux
guid: 6c954dc8-9c2b-4526-b7a0-4bf13941fd2e
8 0x0002d000 0x0019cfff "rootfs"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
type: linux
guid: 491f6117-415d-4f53-88c9-6e0de54deac6
9 0x0019d000 0x00e90a7f "userfs"
attrs: 0x0000000000000000
type: 0fc63daf-8483-4772-8e79-3d69d8477de4
type: linux
guid: 98857284-f810-4c4c-a986-8d12250746e9
Moreover, I tried to force the boot over mmc1 from u-boot and the GUID matches the one above; my suspsect is that I am missing something in the <my-board>-u-boot-mx.dtsi file. Can you confirm this?
STM32MP> setenv boot_prefixes /mmc1_
STM32MP> setenv boot_devnum 1
STM32MP> setenv boot_instance 1
STM32MP> run bootcmd_mmc1
switch to partitions #0, OK
mmc1(part 0) is current device
Scanning mmc 1:6...
Found /mmc1_extlinux/extlinux.conf
Retrieving file: /mmc1_extlinux/extlinux.conf
291 bytes read in 86 ms (2.9 KiB/s)
Retrieving file: /splash_landscape.bmp
Failed to load '/splash_landscape.bmp'
There is no valid bmp file at the given address
1: OpenSTLinux
Retrieving file: /st-image-resize-initrd
29791031 bytes read in 731 ms (38.9 MiB/s)
Retrieving file: /uImage
7880688 bytes read in 259 ms (29 MiB/s)
append: root=PARTUUID=491f6117-415d-4f53-88c9-6e0de54deac6 rootwait rw console=ttySTM0,115200
Solved! Go to Solution.
2023-04-18 04:22 AM
We went through an HW revision and we found out the boot switch resistors were wrong. After fixing this, the boot from emmc worked flawlessly. Topic closed!
2023-04-18 04:22 AM
We went through an HW revision and we found out the boot switch resistors were wrong. After fixing this, the boot from emmc worked flawlessly. Topic closed!
2024-09-09 11:03 PM
Hi @bimorqt
could you please let me know where you changes the code that it will boot from the emmc not from the sd card
currently i am facing this issues , where i need to modify the code that it boot from the emmc not from the sdcard,
actually in my custom board there i will added the emmc to mmc2 channel (but the stm32mp157d-dk1 there is no emmc , but in my custom board the emmc is present so how to boot from the emmc i activate the channel of mmc2 in device tree) .