cancel
Showing results for 
Search instead for 
Did you mean: 

We have developed a custom board using STM32MP157AD3 chipset and STPMIC. We did develop a dts using CubeMX and did all the patches as mentioned in Lab documentation. But we came accross 2 errors.

NP
Associate II

When we use the PMIC values from DK2 example.

1 . ERROR:  regul ldo3: max value 750 is invalid

WARNING: register_pmic:600 failed to register ldo3

PANIC at PC : 0x2fff05cb

2 Next we tried setting the ldo3 max, min values to 3V and 1.8V and it was working fine but had next layer of issue as mentioned below.

NOTICE: CPU: STM32MP157AAD Rev.Z

NOTICE: Model: MelodySOM

INFO:   PMIC version = 0x21

WARNING: VDD unknown

NOTICE: Reset reason (0x15):

INFO:     Power-on Reset (rst_por)

INFO:   FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000

INFO:   FCONF: Reading firmware configuration information for: stm32mp_io

INFO:   Using USB

INFO:     Instance 2

INFO:   Boot used partition fsbl1

NOTICE: BL2: v2.6-stm32mp1-r1.0(debug):v2.6-dirty

NOTICE: BL2: Built : 13:14:26, Nov 23 2021

INFO:   BL2: Doing platform setup

INFO:   RAM: DDR3-DDR3L 16bits 533000kHz

ERROR:  DDR addr bus test: can't access memory @ 0xc0000004

PANIC at PC : 0x2ffead6d

Exception mode=0x00000016 at: 0x2ffead6d

Requesting for your help to solve this as soon as possible.

11 REPLIES 11
Olivier GALLIEN
ST Employee

Hi @NP,

If your design is similar to DK2 LDO3 is used to supply DDR VTT and need to be set by TF-A to VOUT2/2 sync/src mode.

Can you check this?

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.
NP
Associate II

Yes. Indeed that is the output we are getting too. But when i set the minimum voltage and maximum voltage as 500mV and 750mV based on DK2 dts file, I get the error as mentioned.

ERROR:  regul ldo3: max value 750 is invalid

Later i changed the minimum value to 1.8v and max value to 3v and it got fixed and started working. We got these values with step iterating. It was not working with any values lesser than this.

Indeed it was communicating with PMIC and giving output of ~0.67v at ldo3.

Yes. Indeed that is the output we are getting too. But when i set the minimum voltage and maximum voltage as 500mV and 750mV based on DK2 dts file, I get the error as mentioned.

ERROR:  regul ldo3: max value 750 is invalid

Later i changed the minimum value to 1.8v and max value to 3v and it got fixed and started working. We got these values with step iterating. It was not working with any values lesser than this.

Indeed it was communicating with PMIC and giving output of ~0.67v at ldo3.

Olivier GALLIEN
ST Employee

Hi @NP​ 

Getting 1.2V on LDO3_OUT is abnormal.

Since you are using DDR3, BUCK2/VOUT2 supposed to be @1.35V so LDO3_OUT @675mV

And all of this is turn-on only by TF-A when starting DDR power rail.

I don't understand why you trap early when reading DTS..

I read this in your trace:

WARNING: VDD unknown

wich is very weird also ..

What's your PMIC exact reference ?

Is your design a clone of DK2 ?

Can you share Tsv file you have programmed in your boot device ?

Thanks

Olivier

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.

Sorry for wrong info. We got 0.67v only at ldo3. We are using STPMIC1A and is based on DK2 design only.

Attached TSV file for reference.

bsw
Associate

Hi, i have the same problem: nothing seems to be accepted as the voltage value for ldo3 since i upgraded to trusted-firmware-a 2.6.

How did you solve the problem?

PatrickF
ST Employee

 


@NP wrote:

INFO:   RAM: DDR3-DDR3L 16bits 533000kHz

ERROR:  DDR addr bus test: can't access memory @ 0xc0000004

PANIC at PC : 0x2ffead6d

Exception mode=0x00000016 at: 0x2ffead6d


Hi @NP 

This sound like the DDR is not working well.
After basic checks (correct supplies levels, correct DDR connections in schematics, soldering issues, etc...), you likely have to focus on DDR routing/config/check using AN5122 and AN5168 as well as STM32DDRFW_UTIL

https://wiki.st.com/stm32mpu/wiki/STM32DDRFW-UTIL
https://github.com/STMicroelectronics/STM32DDRFW-UTIL

Regards.

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.

Got the same issue after building everything with yocto according to this.

DTS files were created following "Lab-MP15_FromPartNumber_To_BasicDeviceTree_with_CubeMx ".

Console output when trying to download the result with CubeProgrammer.

 

NOTICE:  CPU: STM32MP151AAC Rev.Z
NOTICE:  Model: STMicroelectronics custom STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mp1-v23.06.21
ERROR:   regul ldo3: max value 750 is invalid
WARNING: register_pmic:423 failed to register ldo3
PANIC at PC : 0x2fff0c21

Exception mode=0x00000016 at: 0x2fff0c21

 

The values for that ldo are kept the same as in the original bsp from manufacturer but that uses v2.1 and the above is the result of v5.0...

 

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;
};

 

According to what @NP mentioned, you'd expect the issue is that the max value check is comparing to the values for the 'normal mode' instead of the 'sink-source mode' (stpmic1 page 27).