ERROR: Partition ssbl not found from TF-A
I am trying to boot U-boot as SSBL on a simple board with an eMMC flash.
I flash the partitions using the embedded DFU ROMboot with STM32CubeProgrammer using the following Flash Layout
#Opt Id Name Type IP Offset Binary
- 0x01 fsbl1-boot Binary none 0x0 tf-a-stm32mp157c-dk2.stm32
- 0x03 ssbl-boot Binary none 0x0 u-boot.stm32
P 0x02 fsbl1 Binary mmc0 boot1 tf-a-stm32mp157c-dk2.stm32
P 0x04 fsbl2 Binary mmc0 boot2 tf-a-stm32mp157c-dk2.stm32
P 0x03 ssbl Binary mmc0 0x00080000 u-boot.stm32
The partitions are written successfully and when I run 'mmc part' in the U-boot DFU I see the partition as follows
STM32MP> mmc part
Partition Map for MMC device 0 -- Partition Type: EFI
Part Start LBA End LBA Name
Attributes
Type GUID
Partition GUID
1 0x00000400 0x01d59bff "ssbl"
attrs: 0x0000000000000000
type: 8da63339-0007-60c0-c436-083ac8230908
guid: 8ef917d1-2c6f-4bd0-a5b2-331a19f91cb2
Upon reset the board boots the TF-A and gives me
NOTICE: CPU: STM32MP157C?? Rev.?
NOTICE: Model: Simple Board
ERROR: Partition ssbl not found
PANIC at PC : 0x2ffdb261
Any ideas what I could be doing wrong?
Update
TF-A fails the check
/* Check MBR boot signature. */
if ((mbr_sector[PARTITION_BLOCK_SIZE - 2] != MBR_SIGNATURE_FIRST) ||
(mbr_sector[PARTITION_BLOCK_SIZE - 1] != MBR_SIGNATURE_SECOND)) {
return -ENOENT;
}in load_mbr_header()
"Load the first sector that carries MBR header.
The MBR boot signature should be always valid whether it's MBR or GPT."
I am missing something in the FlashLayout?
