2023-09-02 07:26 AM - edited 2023-09-15 10:44 PM
The Device Tree configuration link . https://wiki.st.com/stm32mpu/wiki/STM32_MPU_device_tree does not include scmi.dsti
After a rough time lot to wade through trial an errors, we were able to reduce the SCMI errors. First we added #include "stm32mp15-scmi.dtsi" and then stm32mp157a-<board>-scmi.dtsi copied from the ev1-scmi.dts but removed i2C4 because this board if quite the same as EV1 but does not use PMIC/I2C4 . if this is correct change is our biggest guess but it reduced most of the scmi error less one., as follows:
The U-boot build failed with:
/soc/usbphyc@5a006000/usb-phy@0: Reference to non-existent node or label "scmi_vdd_usb"
However, the workshop for STM32MP15 documentation shows the following to be added
/* USER CODE BEGIN usbphyc_port0 */
phy-supply = <&scmi_vdd_usb>;
/* USER CODE END usbphyc_port0 */
After searching the whole ecosystem with grep -Rnw . -e 'scmi_vdd_usb'
for this definition, only the following 3 files, besides our file, in the whole ECO tree has this reference:
./arch/arm/dts/stm32mp135f-dk.dts:459: scmi_vdd_usb: voltd-vdd-usb {
./arch/arm/dts/stm32mp135f-dk.dts:656: phy-supply = <&scmi_vdd_usb>;
./arch/arm/dts/stm32mp135f-dk.dts:670: phy-supply = <&scmi_vdd_usb>;
But this is an STM32MP157AAA3 board. no other MP157 boards contains this label or value .
1. Why is this mentioned as requiired for the MP15 ?
2. is this needed ?
3. Why other MP157 boards to not use this ?
When we add the definition from MP135, it results in an syntax error
FATAL ERROR: Unable to parse input tree. We removed the scmi_vdd_usb form the tree and compilation passed.
&scmi_regu {
scmi_vddcpu: voltd-vddcpu {
reg = <VOLTD_SCMI_STPMIC1_BUCK1>;
regulator-name = "vddcpu";
};
scmi_vdd: voltd-vdd {
reg = <VOLTD_SCMI_STPMIC1_BUCK3>;
regulator-name = "vdd";
};
scmi_vddcore: voltd-vddcore {
reg = <VOLTD_SCMI_STPMIC1_BUCK4>;
regulator-name = "vddcore";
};
scmi_vdd_adc: voltd-vdd-adc {
reg = <VOLTD_SCMI_STPMIC1_LDO1>;
regulator-name = "vdd_adc";
};
scmi_vdd_usb: voltd-vdd-usb {
reg = <VOLTD_SCMI_STPMIC1_LDO4>;
regulator-name = "vdd_usb";
};
scmi_vdd_sd: voltd-vdd-sd {
reg = <VOLTD_SCMI_STPMIC1_LDO5>;
regulator-name = "vdd_sd";
};
scmi_v1v8_periph: voltd-v1v8-periph {
reg = <VOLTD_SCMI_STPMIC1_LDO6>;
regulator-name = "v1v8_periph";
};
scmi_v3v3_sw: voltd-v3v3-sw {
reg = <VOLTD_SCMI_STPMIC1_PWR_SW2>;
regulator-name = "v3v3_sw";
};
};
Solved! Go to Solution.
2023-09-15 10:47 PM
1. Copied DT from the ev1-scmi.dts but removed i2C4 because this board if quite the same as EV1 but does not use PMIC (I2C4 )
2. Changed to phy-supply = <&vdd_usb>; to fix the error
so far TF-A and Op-TEE passes the boot. Such should be part if how a WIKI how to build for discrete power board.
2023-09-05 06:34 AM
We changed to phy-supply = <&vdd_usb>; to fix the error
Could this cause issues ?
2023-09-10 05:52 AM
Still would like an answer if this change is correct and why CubeMX generated the DT with &scmi_vdd_usb>
2023-09-15 10:47 PM
1. Copied DT from the ev1-scmi.dts but removed i2C4 because this board if quite the same as EV1 but does not use PMIC (I2C4 )
2. Changed to phy-supply = <&vdd_usb>; to fix the error
so far TF-A and Op-TEE passes the boot. Such should be part if how a WIKI how to build for discrete power board.