I am facing an issue on SPI1 CS0. It should stay high (inactive) across soft reboot (using reboot command).
But something is driving it low during soft reboot, then it go back to high.
Based on my test using an oscilloscope, I am sure this is NOT caused by kernel when boot up.
SPI1_CS0 is driven low by the following possible places:
- pre-bootloader: MB1, or MB2
- cboot: I read through cboot code, I don’t see any place that can cause CS0 driven low. So probably not caused by cboot.
- the end of reboot step performed by kernel: at the end of reboot, kernel calls arm_pm_restart which will call psci_sys_reset function. I don’t know exactly what this function is doing to reset the chip. It seems it sends an ARM SCPI message to firmware in order to reset the chip.
I also tried modified pinmux BCT .cfg file to add an internal PULL UP on SPI1 CS0:
pinmux.0x0243d010 = 0x00000408; (instead of 0x00000400)
But it didn’t help.
How can I resolve this issue?