TF-A boot fails for FSBL [Solved]
Hi all,
I updated my project from Morty (2.2) to Kirkstone (4.1). After doing the required fixes/updates on the recipes, I have problems booting the FSBL. I am using the Cube Programmer to flash the image. Below is the log:
STM32CubeProgrammer API v2.13.0 | Windows-64Bits
Read TSV File: C:\temp\stm32mp1-customized-img-kirkstone-alpha2\flashlayout_custom-os-image-debug\trusted\FlashLayout_nand-4-256_stm32mp153a-customized-img-cubemx-mx-trusted.tsv
Number of partitions: 11
UR connection mode is defined with the HWrst reset mode
Device Descriptor:
|_bLength : 0x12
|_bDescriptorType : 0x01
|_bcdUSB : 0x0200
|_bDeviceClass : 0x00
|_bDeviceSubClass : 0x00
|_bDeviceProtocol : 0x00
|_bMaxPacketSize : 0x40
|_idVendor : 0x0483
|_idProduct : 0xdf11
|_bcdDevice : 0x0200
|_iManufacturer : 0x01
|_iProduct : 0x02
|_iSerialNumber : 0x03
|_bNumConfigurations : 0x01
Configuration Descriptor:
|_bLength : 0x09
|_bDescriptorType : 0x02
|_wTotalLength : 0x48
|_bNumInterfaces : 0x01
|_bConfigurationValue : 0x01
|_iConfiguration : 0x02
|_bmAttributes : 0xc0
|_bMaxPower : 0x01
Interface Descriptor Alternate Settings: 0x00
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x00
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x06
Interface Descriptor Alternate Settings: 0x01
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x01
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x07
Interface Descriptor Alternate Settings: 0x02
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x02
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x08
Interface Descriptor Alternate Settings: 0x03
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x03
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x09
Interface Descriptor Alternate Settings: 0x04
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x04
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x0a
Interface Descriptor Alternate Settings: 0x05
|_bLength : 0x09
|_bDescriptorType : 0x04
|_bInterfaceNumber : 0x00
|_bAlternateSetting : 0x05
|_bNumEndpoints : 0x00
|_bInterfaceClass : 0xfe
|_bInterfaceSubClass : 0x01
|_bInterfaceProtocol : 0x02
|_iInterface : 0x0b
Functional Descriptor :
|_bLength : 0x09
|_bDescriptorType : 0x21
|_bmAttributes : 0x0f
|_wDetachTimeOut : 0xff
|_wTransferSize : 0x0400
|_bcdDFUVersion : 0x0110
USB speed : High Speed (480MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in HS Mode @Device ID /0x500, @Revision ID /0x0000
SN : 002A00253430510537333734
DFU protocol: 1.1
Board : --
Device ID : 0x0500
Start Embedded Flashing service
sending a set alternate setting request with index: 5
receiving packet
DFU status = 0
DFU State = 2
UpLoading data
DFU status = 0
DFU State = 2
sending a set alternate setting request with index: 1
Memory Programming ...
Opening and parsing file: tf-a-stm32mp153a-customized-img-cubemx-mx-usb.stm32
File : tf-a-stm32mp153a-customized-img-cubemx-mx-usb.stm32
Size : 220.82 KB
Partition ID : 0x01
Download in Progress:
Size : 226117 Bytes
sending packet nbr: 0
DFU status = 0
DFU State = 2
Status: 0, State: 2
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 1
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 2
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 3
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 4
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
/*...*/
/* skipped */
/*...*/
sending packet nbr: 216
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 217
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 218
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 219
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
sending packet nbr: 220
DFU status = 0
DFU State = 5
Status: 0, State: 5
DFU status = 0
DFU State = 4
DFU status = 0
DFU State = 5
Segment[0] downloaded successfully
File download complete
Time elapsed during download operation: 00:00:01.186
RUNNING Program ...
PartID: :0x01
DFU status = 0
DFU State = 5
sending a dfu end of download request
DFU status = 0
DFU State = 7
DFU status = 0
DFU State = 2
sending a set alternate setting request with index: 5
receiving packet
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
sending a clear status request
an error occured after sending the clear status request
Status: errUNKNOWN, State: dfuERROR
unable to switch the device to dfuIDLE state
Error: an error occured while uploading data from the virtual partition 0xF1
Error: Start operation failed at partition 0x01
Error: TSV flashing service failedI checked the FAQ-STM32MP1-bring-up-troubleshooting-guide, but it didn't help.
I think the "unable to switch the device to dfuIDLE state" might be caused by the TF-A not executing properly rather than some device-host communication issue.
Some repo versions:
- openembedded-core: yocto-4.0.2;
- meta-openembedded: kirkstone;
- meta-st-openstlinux/meta-st-stm32mp/meta-stm32mp-addons: kirkstone v22.07.27.
Does anyone have some idea how to proceed ?
Best Regards.
