Files
buildroot/configs/stm32f429_disco_xip_defconfig
Dario Binacchi 72f7aa47e7 configs/stm32f429_disco_xip: fix boot failure after uClibc bump
Since uClibc was bumped to 1.0.58 (c7fef3704c, "package/uclibc:
bump to 1.0.58"), the board fails to boot:

    sh: out of memory
    Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
    CPU: 0 PID: 1 Comm: init Not tainted 6.1.167 #2
    Hardware name: STM32 (Device Tree Support)
    Function entered at [<0800ea1e>] from [<0800de7b>]
    Function entered at [<0800de7b>] from [<080e4991>]
    Function entered at [<080e4991>] from [<080e2d19>]
    Function entered at [<080e2d19>] from [<080125eb>]
    Function entered at [<080125eb>] from [<08012b09>]
    Function entered at [<08012b09>] from [<08012b69>]
    ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 ]---

The STM32F429 has no MMU, and uClibc's standard malloc() implementation
returns NULL for allocations performed during early init on this target,
causing init to abort immediately.

Fix this by switching to MALLOC_SIMPLE, a plain mmap-based allocator
meant for small/noMMU systems, via a uClibc config fragment. The
fragment is placed under board/stmicroelectronics/common/stm32f4xx/,
rather than under the board-specific directory, so that it can be
shared with the STM32F469, another Cortex-M4/noMMU board affected by
the same issue, which will be fixed in a subsequent patch.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2026-07-21 22:32:07 +02:00

26 lines
1.1 KiB
Plaintext

BR2_arm=y
BR2_cortex_m4=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
BR2_UCLIBC_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/common/stm32f4xx/uclibc-fragment.config"
# BR2_UCLIBC_INSTALL_UTILS is not set
BR2_ENABLE_LTO=y
BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.167"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f429-disco/linux.config"
BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f429-disco"
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/common/stm32f4xx/busybox.fragment"
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_TARGET_ROOTFS_INITRAMFS=y
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_AFBOOT_STM32=y
BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR=0x0800C000
BR2_PACKAGE_HOST_OPENOCD=y