Direct Kernel Boot on STM32MP1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2025-03-24 6:47 AM
Hi everyone,
I'm attempting to optimize the boot process on my STM32MP157F-DK2 board by removing U-Boot and booting the Linux kernel directly via the FIP. I've followed the documented steps for STM32MP1:
TF-A BL2 Modifications:
Updated STM32MP_BL33_BASE and STM32MP_BL33_MAX_SIZE in the STM32MP1 header file.
Increased the SDMMC timeout in stm32_sdmmc2.c to accommodate the larger kernel image.
FIP Creation:
Recompiled TF-A with my modifications.
Created a new FIP where I replaced the U-Boot binary and its DTB with my Linux kernel Image and DTB.
The new FIP (fip.bin) now contains the kernel and DTB.
Flash Layout TSV Modifications:
I updated the TSV file to allocate a larger space for the FIP. Below is the relevant excerpt:
Despite these modifications, every time I execute the process, it fails. My questions are:
What is the purpose of the bootfs partition?
Since my new FIP (fip.bin) already contains the Linux kernel and its DTB, I'm unclear why the flash layout still reserves a bootfs partition. Is it meant for additional boot configurations, an initial ramdisk, or something else?Why is the u-boot-env partition still present?
If U-Boot is being removed entirely from the boot chain, what role does the U-Boot environment play here? Is it kept for legacy or recovery purposes?
I would really appreciate any insights or suggestions on what might be going wrong or what additional changes I need to consider for a successful direct kernel boot setup on STM32MP157f-dk2.
Thanks in advance for your help!
- Labels:
-
STM32MP13 Lines
-
STM32MP15 Lines
