STM32MP157D DTS v2 simple-bus node not enabling? No UART, MMC, or any other peripherals getting initialized
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-10-11 07:00 PM
I'm trying to boot an STM32MP157 using the v5.4-stm32mp branch of ST's Linux kernel, and it doesn't appear that peripherals under the simple-bus node in the DTS file are getting probed.
I copied the stm32mp157d-dk1.dts file as a starting point, but since my board doesn't have a PMIC, I commented out the PMIC element and instead pass a dummy regulator to the SDMMC peripherals. With no other changes, I got absolutely no output from the console. When I enabled earlyprintk support, I got output that stopped at "printk: console [tty0] enabled." I thought, "hmm, that's weird. Why isn't it loading my UART driver?" I edited the boot arguments to pass console=ttySTM0,115200 to the kernel (obviously it should be getting picked up from the device tree file), and this fixed the console printing issue, but I now have the attached log file.
As you can see, the device tree is getting loaded, and the memory pools / CPU settings are handled. However, none of the STM32 peripheral drivers are getting loaded. No interrupt controller, pin controller, USARTs, RNG, RTC, MMC, or anything else.
I decompiled my device tree to make sure I didn't have a freaky include problem — nope, everything is there with "status = okay"
If I get a mainline Linux kernel (which uses a completely different device tree file structure from the STM32 V2 release), and make the same DTS changes, I have no problems booting up.
My theory is that some how the simple-bus node that all these peripherals sit under isn't enabled or something, which is causing the child nodes not to register?
By the way, if I use the good DTB on the mainline kernel, it doesn't have this driver loading issue.
- Labels:
-
OpenSTLinux
-
STM32MP15 Lines