2023-09-03 10:42 AM - edited 2023-09-03 10:43 AM
Hi all,
I have been trying to boot a custom ST32MP15 board, I get through TF-A and U-boot, but boot fails while Starting Kernel.
I had some issues with external 24MHz crystal so I am using HSI to provide CPU clocks. On TF-A and U-Boot device trees I was able to find the nodes to fix that and used STM32CubeMX to help me calculate the PLL multipliers. Although, couldn't find similar nodes for kernel device tree.
After U-Boot is loaded I can see that MPU and peripheral clocks have the values I set up (U-boot has some troubles reading values from STPMIC1 but TF-A was able to configure the PMIC)
I am able to load zImage and dtb from SD Card and call boot command, but after that the device would hang on "Starting Kernel...". I followed the tutorial at https://wiki.st.com/stm32mpu/wiki/Dmesg_and_Linux_kernel_log# to enable earlyprintk, trying to boot after that gets past the "Starting Kernel..." message, but kernel just prints some garbled lines and reboots the device. I have copied the message I am getting below:
U-Boot 2023.10-rc2-00141-g30acd8e2a5-dirty (Sep 03 2023 - 09:04:32 -0700)
CPU: STM32MP157CAD Rev.Z
Model: Olivaw Photobomb v1.0-Rev A
Board: stm32mp1 in trusted mode (olivaw,photobomb-1)
DRAM: 512 MiB
Clocks:
- MPU : 650 MHz
- MCU : 200 MHz
- AXI : 200 MHz
- PER : 0 MHz
- DDR : 300 MHz
stpmic1_pmic stpmic@33: stpmic1_read: failed to read register 0x20 : -110stpmic1_pmic stpmic@33: stpmic1_read: failed to read register 0x20 : -110stpmic1_pmic stpmic@33: stpmic1_read: failed to read register 0xd
NAND: 0 MiB
MMC: STM32 SD/MMC: 0
Loading Environment from MMC... *** W rning - bad CRC, using default environment
In: No input devices available!
Out: No output devices available!
Err: No error devices available!
invalid MAC address 0 in OTP 00:00:00:00:00:00
Can't get adc device(-19)
Net: No ethernet found.
Hit any key to stop autoboot: 0
Boot over mmc0!
Saving Environment to MMC... Writing to MMC(0)... OK
switch to partitions #0, OK
mmc0 is current device
PB>
PB> setenv bootargs "root=/dev/mmcblk0p5 rootwait rw console=ttySTM0,115200"
PB> load mmc 0:4 0xc2000000 zImage;load mmc 0:4 0xc4000000 photobomb.dtb
7593896 bytes read in 1233 ms (5.9 MiB/s)
63242 bytes read in 14 ms (4.3 MiB/s)
PB>
adc adtimg base bdinfo blkcache bmp boot bootd bootefi bootelf bootflow
bootm bootp bootstage bootvx bootz clk cls ...
PB> load mmc 0:4 0xc2000000 zImage
7593896 bytes read in 1233 ms (5.9 MiB/s)
PB> load mmc 0:4 0xc4000000 photobomb.dtb
63242 bytes read in 14 ms (4.3 MiB/s)
PB> bootz 0xc2000000 - 0xc4000000
Kernel image @ 0xc2000000 [ 0x000000 - 0x73dfa8 ]
## Flattened Device Tree blob at c4000000
Booting using the fdt blob at 0xc4000000
Working FDT set to c4000000
ERROR: reserving fdt memory region failed (addr=de000000 size=2000000 flags=4)
Loading Device Tree to cffed000, end cffff709 ... OK
Working F T set to cffed000
Starting kernel ...
uprsrrrF CÂÂ6sÂsÂs s fF QIùsfo fM doùeVS_Cù30
000000s0 0r: 0ÂÂ0sÂsÂs s fF QIùsfo fM doùeVS_Cù30
000000s0 0r: 00Â0sÂsÂs s fF QIùsfo fM doùeVS_Cù30
000000s0 0r: 0ÂÂ3sÂsÂs s fF QIùsfo fM doùeVS_Cù30
000000s0 0r: 0s
R
r
Could this error be tied to a missing HSI configuration on the kernel side?