Hi experts,
My customer made a custom board by combining AM5706 and TPS659163, the OS is Linux and USB3, ETHERNET, QSPI, I2C, etc. are working fine, but there are some problems.
[Problem 1]
When they try to poweroff/reboot with Linux commands, it goes through the halt process but does not reset or power off.
Q1: poweroff/reboot itself is a command in the rootfs, but could you tell me where to look in the kernel?
[Problem 2]
During QSPI boot, when they try to touch the SD card, LDO1 suddenly goes to an unintended voltage (0.9V).
Q2: Could you please tell me where LDO1 is set in the MLO?
The following is the information that we have at this point. When booting from SD, U-Boot seems to know that it has booted from SD, and sets the voltage of LDO1 to 3.3V from where in MLO. After u-boot.img boots, it seems to stops bypass as initialization before touching SD, and keeps 3.3V set in MLO. When booting with QSPI, the initialization is not done in MLO, but is passed to u-boot.img. After that, when I try to touch the SD, the unset LDO1 voltage comes out at the moment of bypass off.
This time they boot with QSPI and call the device tree file and kernel etc from the SD card. As a temporary solution is to explicitly set the voltage 3.3V to LDO1 just before the bypass off code (borad.c) in u-boot.img, so that the SD is visible even in QSPI boot. The reason why it is set to 0.9V is because there is some mechanism in the MLO that tries to set an undefined (probably 0V) voltage and sets it to the lowest 0.9V. If we can find the location of this setting, we can figure out why the voltage is incorrect, and if we can identify the file and function, we can find the fix.
If you have any information that might be helpful, or if there is not enough information to investigate, please let us know.
Best regards,
O.H