cancel
Showing results for 
Search instead for 
Did you mean: 

When updating from arm-trusted-firmware-v2.4-stm32mp-r1 to arm-trusted-firmware-v2.4-stm32mp-r2 I get PANIC on UART

cfilipescu
Senior

I didn't change anything in the device tree just compiled the arm-trusted-firmware-v2.4-stm32mp-r2 instead of arm-trusted-firmware-v2.4-stm32mp-r1 and I get the following on UART:

PANIC at PC : 0x2ffcfd2b

What is different between the two versions?

51 REPLIES 51

Hi @cfilipescu​ ,

1- Only notice a small differences in you DTS around sdmmc1 : GPIO clock slew rate at 3 instead of 2

Not sure it can explain the behavior but let have a try.

2 - TF-A debug : Could you please update LOG_LEVEL in TF-A refering to How to debug TF-A BL2 - stm32mpu in order to get more traces ?

3 - Could you share the flash.tsv file Buildroot is supposed to generate to be used by CubeProg.

Can you display SDCard partitioning after dd command ?

Else, may you try an attempt of programing with CubeProg and provide console output.

buildroot-external-st/stm32cubeprogrammer.md at st/2021.02 · bootlin/buildroot-external-st (github.com)

Thanks

Olivier

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @Community member​ 

Here are the responses to your questions/suggestions:

  1. I have tried the different slew rate before but it made no difference
  2. here are the traces
NOTICE:  CPU: STM32MP153AAC Rev.B
NOTICE:  Model: STMicroelectronics custom STM32CubeMX board - openstlinux-5.10-dunfell-mp1-21-11-17
VERBOSE: BSEC: OTP 0 is locked and will not be refreshed
VERBOSE: vdd: supplied by 17
VERBOSE: Enable clock 51
VERBOSE: IWDG2 found, non-secure
VERBOSE: BSEC: OTP 18 is locked and will not be refreshed
VERBOSE: 2 IWDG instances found
VERBOSE: Enable clock 58
VERBOSE: Disable clock 58
VERBOSE: BSEC: OTP 0 is locked and will not be refreshed
VERBOSE: TrustZone : Configuring region 0 (TZC Interface Base=0x5c006000 sec_attr=0x3, ns_devs=0x0)
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
VERBOSE: No bias configured in node 13956
VERBOSE: Enable clock 95
VERBOSE: GPIO 25 mode set to 0xfaff
VERBOSE: GPIO 25 speed set to 0x0
VERBOSE: GPIO 25 mode pull to 0x0
VERBOSE: GPIO 25 mode alternate low to 0x660000
VERBOSE: GPIO 25 mode alternate high to 0x0
VERBOSE: Disable clock 95
VERBOSE: Enable clock 95
VERBOSE: Disable clock 95
VERBOSE: Enable clock 95
VERBOSE: GPIO 25 mode set to 0xfaff
VERBOSE: GPIO 25 speed set to 0x0
VERBOSE: GPIO 25 mode pull to 0x0
VERBOSE: GPIO 25 mode alternate low to 0x660000
VERBOSE: GPIO 25 mode alternate high to 0x0
VERBOSE: Disable clock 95
VERBOSE: Enable clock 95
VERBOSE: Disable clock 95
VERBOSE: stm32mp1_clk_get_parent: HSI_KER clock is the parent I2C46 of clk id 140
VERBOSE: I2C SDADEL(min/max): 0/391, SCLDEL(Min): 285
VERBOSE: I2C TIMINGR (PRESC/SCLDEL/SDADEL): 1/8/0
VERBOSE: I2C TIMINGR (SCLH/SCLL): 27/38
VERBOSE: I2C TIMINGR: 0x10801b26
VERBOSE: I2C Freq(400000), Clk Source(64000000)
VERBOSE: I2C Rise(185) and Fall(20) Time
VERBOSE: I2C Analog Filter(On), DNF(0)
VERBOSE: Enable clock 140
VERBOSE: Disable clock 140
VERBOSE: Enable clock 140
VERBOSE: Disable clock 140
INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
VERBOSE: FCONF: stm32mp-io_policies.fw_cfg_uuid found with value = 0x6ae10758 0xbe475984 0x8e64d58e 0xeabdd8d
VERBOSE: FCONF: stm32mp-io_policies.bl32_uuid found with value = 0x89e1d005 0x4713dc53 0xa502b8d 0x383e7a4b
VERBOSE: FCONF: stm32mp-io_policies.bl32_extra1_uuid found with value = 0x9bc2700b 0x40785a2a 0x560a659f 0x88827382
VERBOSE: FCONF: stm32mp-io_policies.bl32_extra2_uuid found with value = 0xb17ba88e 0x4d3fa2cf 0xbbe7fd85 0xd92002a5
VERBOSE: FCONF: stm32mp-io_policies.bl33_uuid found with value = 0xa7eed0d6 0x4bd5eafc 0x34998297 0xe4b634f2
VERBOSE: FCONF: stm32mp-io_policies.hw_cfg_uuid found with value = 0xd9f1b808 0x4993cfc9 0xbc6f62a9 0xcc65726b
VERBOSE: FCONF: stm32mp-io_policies.tos_fw_cfg_uuid found with value = 0x1a7c2526 0x477fc6db 0xc4c4968d 0x218024b0
VERBOSE: FCONF: stm32mp-io_policies.nt_fw_cfg_uuid found with value = 0x1598da28 0x447ee893 0xaf1a66ac 0xf9501580
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
VERBOSE: No bias configured in node 13004
VERBOSE: Enable clock 86
VERBOSE: GPIO 2 mode set to 0xfefeffff
VERBOSE: GPIO 2 speed set to 0x1010000
VERBOSE: GPIO 2 mode pull to 0x0
VERBOSE: GPIO 2 mode alternate low to 0x0
VERBOSE: GPIO 2 mode alternate high to 0xc000c
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: GPIO 2 mode set to 0xfefaffff
VERBOSE: GPIO 2 speed set to 0x1050000
VERBOSE: GPIO 2 mode pull to 0x0
VERBOSE: GPIO 2 mode alternate low to 0x0
VERBOSE: GPIO 2 mode alternate high to 0xc00cc
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: GPIO 2 mode set to 0xfeeaffff
VERBOSE: GPIO 2 speed set to 0x1150000
VERBOSE: GPIO 2 mode pull to 0x0
VERBOSE: GPIO 2 mode alternate low to 0x0
VERBOSE: GPIO 2 mode alternate high to 0xc0ccc
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: GPIO 2 mode set to 0xfeaaffff
VERBOSE: GPIO 2 speed set to 0x1550000
VERBOSE: GPIO 2 mode pull to 0x0
VERBOSE: GPIO 2 mode alternate low to 0x0
VERBOSE: GPIO 2 mode alternate high to 0xccccc
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: Disable clock 86
VERBOSE: Enable clock 87
VERBOSE: GPIO 3 mode set to 0xffffffef
VERBOSE: GPIO 3 speed set to 0x10
VERBOSE: GPIO 3 mode pull to 0x0
VERBOSE: GPIO 3 mode alternate low to 0xc00
VERBOSE: GPIO 3 mode alternate high to 0x0
VERBOSE: Disable clock 87
VERBOSE: Enable clock 87
VERBOSE: Disable clock 87
VERBOSE: No bias configured in node 13092
VERBOSE: Enable clock 86
VERBOSE: GPIO 2 mode set to 0xfeaaffff
VERBOSE: GPIO 2 speed set to 0x3550000
VERBOSE: GPIO 2 mode pull to 0x0
VERBOSE: GPIO 2 mode alternate low to 0x0
VERBOSE: GPIO 2 mode alternate high to 0xccccc
VERBOSE: Disable clock 86
VERBOSE: Enable clock 86
VERBOSE: Disable clock 86
VERBOSE: vmmc: supplied by 21
VERBOSE: Enable clock 118
VERBOSE: stm32mp1_clk_get_parent: PLL4_P clock is the parent SDMMC12 of clk id 118
VERBOSE: buck4: set state to 0
VERBOSE: Enable clock 140
VERBOSE: Disable clock 140
VERBOSE: Enable clock 140
VERBOSE: Disable clock 140
VERBOSE: buck4: set state to 1
VERBOSE: Enable clock 140
VERBOSE: Disable clock 140
ERROR:   CMD13 failed after 5 retries
ERROR:   SDMMC1 init failed
PANIC at PC : 0x2ffe9c7f

3. Unfortunately I don't have a flash.tsv file since the board doesn't support flashing the SDcard through USB.

Hi @Community member​ 

I tried one more thing today, where I flashed the default images for the stm32mp157a-dk1. Those should boot the arm-trusted-firmware and u-boot no problem on my custom board and they should get stuck at the kernel boot.

I downloaded the following:

  • en.FLASH-stm32mp1-openstlinux-20-02-19.tar_v1.2.0.xz
  • en.FLASH-stm32mp1-openstlinux-5-4-dunfell-mp1-20-11-12.tar_v2.1.0.xz
  • en.FLASH-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar_v3.0.0.xz
  • en.FLASH-stm32mp1-openstlinux-5-10-dunfell-mp1-21-11-17_tar_v3.1.0.xz

I created the images using the following commands:

  • ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv
  • ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/trusted/FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv
  • ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/trusted/FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv
  • ./create_sdcard_from_flashlayout.sh ../flashlayout_st-image-weston/trusted/FlashLayout_sdcard_stm32mp157a-dk1-trusted.tsv

Here are the boot logs of the 4 images after flashing them using dd:

  • en.FLASH-stm32mp1-openstlinux-20-02-19.tar_v1.2.0.xz
NOTICE:  CPU: STM32MP153AAC Rev.B
NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
INFO:    PMIC version = 0x21
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.0-r3.0(debug):
NOTICE:  BL2: Built : 13:13:37, Oct  2 2018
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-1066/888 bin G 1x4Gb 533MHz v1.45
INFO:    Memory size = 0x20000000 (512 MB)
INFO:    BL2 runs SP_MIN setup
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffef000
INFO:    Image id=4 loaded: 0x2ffef000 - 0x30000000
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    STM32 Image size : 808418
WARNING: Skip signature check (header option)
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01c55e2
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0x2ffef000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.0-r3.0(debug):
NOTICE:  SP_MIN: Built : 13:13:37, Oct  2 2018
INFO:    ARM GICv2 driver initialized
INFO:    stm32mp HSI (18): Secure only
INFO:    stm32mp HSE (20): Secure only
INFO:    stm32mp PLL2 (27): Secure only
INFO:    stm32mp PLL2_R (30): Secure only
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world
 
 
U-Boot 2018.11-stm32mp-r4 (Nov 14 2018 - 16:10:06 +0000)
 
CPU: STM32MP153AAC Rev.B
Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp157a-dk1)
DRAM:  512 MiB
Clocks:
- MPU : 650 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 24 MHz
- DDR : 533 MHz
Fastboot key pressed, entering download mode...
****************************************************
* ERROR USB TYPE-C connection in unattached mode   *
* Check that USB TYPE-C cable is correctly plugged *
*      USB TYPE-C charger not compliant with       *
*                   specification                  *
****************************************************
  • en.FLASH-stm32mp1-openstlinux-5-4-dunfell-mp1-20-11-12.tar_v2.1.0.xz
NOTICE:  CPU: STM32MP153AAC Rev.B
NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
INFO:    PMIC version = 0x21
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.2-r2.0(debug):v2.2-dirty
NOTICE:  BL2: Built : 13:36:23, Oct 22 2019
INFO:    Using crypto library 'stm32_crypto_lib'
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-DDR3L 16bits 533000Khz
INFO:    Memory size = 0x20000000 (512 MB)
INFO:    BL2 runs SP_MIN setup
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffeb000
INFO:    Image id=4 loaded: 0x2ffeb000 - 0x2ffff000
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    STM32 Image size : 902542
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01dc58e
WARNING: Skip signature check (header option)
NOTICE:  ROTPK is not deployed on platform. Skipping ROTPK verification.
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0x2ffeb000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.2-r2.0(debug):v2.2-dirty
NOTICE:  SP_MIN: Built : 13:36:23, Oct 22 2019
INFO:    ARM GICv2 driver initialized
INFO:    Set calibration timer to 60 sec
INFO:    stm32mp IWDG1 (12): Secure
INFO:    ETZPC: CRYP1 (9) could be non secure
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world
 
 
U-Boot 2020.01-stm32mp-r2 (Jan 06 2020 - 20:56:31 +0000)
 
CPU: STM32MP153AAC Rev.B
Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp157a-dk1)
DRAM:  512 MiB
Clocks:
- MPU : 650 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 24 MHz
- DDR : 533 MHz
Fastboot key pressed, entering download mode...
WDT:   Started with servicing (32s timeout)
NAND:  0 MiB
MMC:   STM32 SD/MMC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment
 
In:    serial
Out:   serial
Err:   serial
Enter fastboot!
invalid MAC address in OTP 00:00:00:00:00:00
****************************************************
* ERROR USB TYPE-C connection in unattached mode   *
* Check that USB TYPE-C cable is correctly plugged *
*      USB TYPE-C charger not compliant with       *
*                   specification                  *
****************************************************
  • en.FLASH-stm32mp1-openstlinux-5.10-dunfell-mp1-21-03-31.tar_v3.0.0.xz
NOTICE:  CPU: STM32MP153AAC Rev.B
NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
INFO:    PMIC version = 0x21
INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe3000
INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
NOTICE:  BL2: v2.4-r1.0(debug):v2.4-dirty
NOTICE:  BL2: Built : 16:43:51, Nov 17 2020
INFO:    BL2: Doing platform setup
INFO:    RAM: DDR3-DDR3L 16bits 533000Khz
WARNING: Couldn't find property st,phy-cal in dtb
INFO:    Memory size = 0x20000000 (512 MB)
INFO:    BL2: Loading image id 31
INFO:    Loading image id=31 at address 0x2ffff000
INFO:    Image id=31 loaded: 0x2ffff000 - 0x2ffff226
INFO:    FCONF: Reading FW_CONFIG firmware configuration file from: 0x2ffff000
INFO:    FCONF: Reading firmware configuration information for: dyn_cfg
INFO:    FCONF: Reading firmware configuration information for: stm32mp1_firewall
INFO:    BL2: Loading image id 4
INFO:    Loading image id=4 at address 0x2ffc5000
INFO:    Image id=4 loaded: 0x2ffc5000 - 0x2ffd847c
WARNING: Not a known TEE, use default loading options.
INFO:    BL2: Skip loading image id 21
INFO:    BL2: Skip loading image id 22
INFO:    BL2: Loading image id 23
INFO:    Loading image id=23 at address 0xc0500000
INFO:    Image id=23 loaded: 0xc0500000 - 0xc051c668
INFO:    BL2: Loading image id 26
INFO:    Loading image id=26 at address 0x2ffc0000
INFO:    Image id=26 loaded: 0x2ffc0000 - 0x2ffc45fc
INFO:    BL2: Loading image id 5
INFO:    Loading image id=5 at address 0xc0100000
INFO:    Image id=5 loaded: 0xc0100000 - 0xc01cf9d8
NOTICE:  BL2: Booting BL32
INFO:    Entry point address = 0x2ffc5000
INFO:    SPSR = 0x1d3
NOTICE:  SP_MIN: v2.4-r1.0(debug):v2.4-dirty
NOTICE:  SP_MIN: Built : 16:43:51, Nov 17 2020
INFO:    ARM GICv2 driver initialized
INFO:    Set calibration timer to 60 sec
INFO:    stm32mp1 IWDG1 is secure
INFO:    ETZPC: CRYP1 (9) could be non secure
INFO:    SP_MIN: Initializing runtime services
INFO:    SP_MIN: Preparing exit to normal world
 
 
U-Boot 2020.10-stm32mp-r1 (Oct 05 2020 - 15:15:32 +0000)
 
CPU: STM32MP153AAC Rev.B
Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp157a-dk1)
DRAM:  512 MiB
Clocks:
- MPU : 650 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 24 MHz
- DDR : 533 MHz
Fastboot key pressed, entering download mode...
WDT:   Started with servicing (32s timeout)
NAND:  0 MiB
MMC:   STM32 SD/MMC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment
 
In:    serial
Out:   serial
Err:   serial
Enter fastboot!
invalid MAC address in OTP 00:00:00:00:00:00
****************************************************
* ERROR USB TYPE-C connection in unattached mode   *
* Check that USB TYPE-C cable is correctly plugged *
*      USB TYPE-C charger not compliant with       *
*                   specification                  *
****************************************************
  • en.FLASH-stm32mp1-openstlinux-5-10-dunfell-mp1-21-11-17_tar_v3.1.0.xz
NOTICE:  CPU: STM32MP153AAC Rev.B
NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
INFO:    Reset reason (0x15):
INFO:      Power-on Reset (rst_por)
INFO:    PMIC version = 0x21
INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
INFO:    Using SDMMC
INFO:      Instance 1
INFO:    Boot used partition fsbl1
ERROR:   CMD13 failed after 5 retries
ERROR:   SDMMC1 init failed
PANIC at PC : 0x2ffea11b

As you can see the first 3 images boot all the way to the kernel, meanwhile the 4th image is stuck at arm-trusted-firmware. So it seems the latest ecosystem 3.1.0 does not work with stm32mp153x MCUs. Not sure if you have a dev board with stm32mp153 MCU that you can test the latest ecosystem with.

Hi @cfilipescu​ ,

Thanks for all this trials which clearly point the issue.

I escalate it internally under reference BZ121116.

Will let you know

Olivier

Olivier GALLIEN
In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Bernard PUEL
ST Employee

hello @cfilipescu​ ,

I am trying to catch up all the information given above. Sorry if i missed some.

From the last trace we can see the sdcard enumeration (in sdcard init procedure) is starting well and no answer is given to the last step CMD13 command after 5 retries.

Could you please confirm on your last trials ?:

  • You flashed the starter kit for ST board (the ones from st.Com) and boot your board on your sdcard (meaning embedded SW and dts are aligned with ST delivery)
  • v3.0 starter is ok but v3.1 starter fails

Could you please share the schematics of your board ?

The only diff we see related to sdmmc from v3.0 to V3.1 is the following:

Here are our DT changes:

git diff v2.4-stm32mp-r1..v2.4-stm32mp-r2 fdts/stm32mp15xx-dkx.dtsi

diff --git a/fdts/stm32mp15xx-dkx.dtsi b/fdts/stm32mp15xx-dkx.dtsi

index e5166706ee..fa1a4baaca 100644

--- a/fdts/stm32mp15xx-dkx.dtsi

+++ b/fdts/stm32mp15xx-dkx.dtsi

@@ -134,14 +134,15 @@

vtt_ddr: ldo3 {

regulator-name = "vtt_ddr";

- regulator-min-microvolt = <500000>;

- regulator-max-microvolt = <750000>;

regulator-always-on;

regulator-over-current-protection;

+ st,regulator-sink-source;

};

vdd_usb: ldo4 {

regulator-name = "vdd_usb";

+ regulator-min-microvolt = <3300000>;

+ regulator-max-microvolt = <3300000>;

};

vdda: ldo5 {

@@ -161,7 +162,6 @@

vref_ddr: vref_ddr {

regulator-name = "vref_ddr";

regulator-always-on;

- regulator-over-current-protection;

};

Did you report these changes in your board build ?

Bernard PUEL
ST Employee

I have just checked our internal tests before delivery and the MP153A version is systematically tested thanks to a EV board with socket.

Hi @Bernard PUEL​  

Your summation of the last trials is correct. I flashed the starter kit for the ST DK1 board and the embedded SW and dts are a carbon copy of the stm32mp157a-dk1 board. And to confirm v3.0 starter passes while v3.1 starter failed.

Those changes are in my board build.

I will PM you the board schematic.

Bernard PUEL
ST Employee

Thanks for your schematics sharing. I could check with HW experts with the following outcomes:

I/ Overview:

cross checked schematics:

- SDMMC1 / SD-Card not found issues

- STPMIC1 inductors and capacitors models and size to be cross-checked with STPMIC1 datasheet recommendations. Maybe the supplies such as VDDCORE, VDD or the 3V3 (SD-Card supply) exhibit too much noise/ripple which could explain strange behavior (cannot explain why v3.0 if better than v3.1)

other:

- I2C4 pull-up 4.7k Vs 1.5K on DK1/DK2. likely not the root cause of this ticket

- 232 ohms pull-ups on SPI1-SPI6 are quite small. Might be an issue if too much current on STM32MP1 supply VDD rails. Not the root cause of this ticket

I recommended to get a plot of SD-Card signals and supply (3V3, SDMMC1_CLK, SDMMC1_CMD, SDMMC1_D0 to D3) and check what the difference between v3.0 and v3.1, especially confirm when/how the card stop answering.

II/ PMIC specific:

Regarding STPMIC1, value of inductors and capacitors are OK. BUT size of input capacitors of SMPS are 0805 (recommended 0603); ouptut SMPS capacitors are 1206 (recommended 0603) and inductors are 5x5mm (recommended 2.5x2.0mm).

Consequently, those discrete components are placed far from STPMIC1 making CIN/COUT and PMIC long GND track. This increases parasitics inductance (increasing ringing). Impacts:

+ Buck ouptut may oscillate in certain conditions (= Vout ripple increase)

+ high input or ouptut ringing may be destructive for PMIC in short/medium term.

Outcomes:

It is recommended to check PCB layout; especially CIN/COUT and PMIC GND track for buck1, 2, 3, 4.

It is recommended to use smaller discrete components, especially Cout and inductors.

Bernard PUEL
ST Employee

My assumption is that buck4 regulator (v3v3) is switch ON just before the enumeration of the sdmmc1 and link to the pmic design of your board, It would fail due to oscillations.

Getting a plot of SD-Card signals and supply (as suggested by my HW expert colleague) would help to check this.

My assumption to explain the diff of behavior between v3.0 and v3.1 is a timing difference between the buck4 switch ON and the enumeration. I am checking this with SW Experts.

I guess you have not planned to redesign a new HW so I will try to check what is better for you on short term (as soon as we can confirm or not our assumptions).

Bernard PUEL
ST Employee

If assumption is confirmed: A simple delay (few ms) between buck4 enable and sdcard enumeration may solve the issue.