[Buildroot] [RESEND PATCH v2, 2/4] boot/afboot-stm32: upgrade version

Christophe Priouzeau christophe.priouzeau at foss.st.com
Tue Dec 14 08:28:47 UTC 2021


Acked-by: Christophe Priouzeau <christophe.priouzeau at foss.st.com>

On 12/12/21 1:37 PM, Dario Binacchi wrote:
> Newer versions of the kernel generate device trees that are not
> storable in a single 16kB sector. In these cases the kernel load address
> must be changed.
> The commit 2e499dcff3ef ("Add possibility to use custom kernel load address")
> adds the possibility to override the default (0x08008000) kernel load
> address.
> 
> This also required changes to the stm32f429_disco_defconfig and
> stm32f469_disco_xip_defconfig configurations.
> 
> Signed-off-by: Dario Binacchi <dariobin at libero.it>
> ---
>   ...69i-disco-change-kernel-load-address.patch | 26 ---------------
>   boot/afboot-stm32/Config.in                   | 32 +++++++++++++++++++
>   boot/afboot-stm32/afboot-stm32.hash           |  2 +-
>   boot/afboot-stm32/afboot-stm32.mk             | 18 ++++++++---
>   configs/stm32f429_disco_defconfig             |  1 +
>   configs/stm32f469_disco_xip_defconfig         |  3 +-
>   6 files changed, 50 insertions(+), 32 deletions(-)
>   delete mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469i-disco-change-kernel-load-address.patch
> 
> diff --git a/board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469i-disco-change-kernel-load-address.patch b/board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469i-disco-change-kernel-load-address.patch
> deleted file mode 100644
> index 1f8d929bfb..0000000000
> --- a/board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469i-disco-change-kernel-load-address.patch
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -From d87969f72671cab5a88ba6e2418e43d0fa267d6f Mon Sep 17 00:00:00 2001
> -From: Dario Binacchi <dariobin at libero.it>
> -Date: Sat, 13 Nov 2021 15:46:32 +0100
> -Subject: [PATCH] stm32f469i-disco: change kernel load address
> -
> -Signed-off-by: Dario Binacchi <dariobin at libero.it>
> ----
> - stm32f469i-disco.c | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c
> -index 2da1f4b..3aacb12 100644
> ---- a/stm32f469i-disco.c
> -+++ b/stm32f469i-disco.c
> -@@ -85,7 +85,7 @@ static void fmc_wait_busy(void)
> -
> - void start_kernel(void)
> - {
> --	void (*kernel)(uint32_t reserved, uint32_t mach, uint32_t dt) = (void (*)(uint32_t, uint32_t, uint32_t))(0x08008000 | 1);
> -+	void (*kernel)(uint32_t reserved, uint32_t mach, uint32_t dt) = (void (*)(uint32_t, uint32_t, uint32_t))(0x0800C000 | 1);
> -
> - 	kernel(0, ~0UL, 0x08004000);
> - }
> ---
> -2.17.1
> -
> diff --git a/boot/afboot-stm32/Config.in b/boot/afboot-stm32/Config.in
> index 309b9e0491..71f4c7e382 100644
> --- a/boot/afboot-stm32/Config.in
> +++ b/boot/afboot-stm32/Config.in
> @@ -5,3 +5,35 @@ config BR2_TARGET_AFBOOT_STM32
>   	  afboot-stm32 is a very small bootloader for STM32 platforms
>   
>   	  https://github.com/mcoquelin-stm32/afboot-stm32
> +
> +if BR2_TARGET_AFBOOT_STM32
> +
> +choice
> +	prompt "Board type"
> +	help
> +	  Select the proper stm32 board type.
> +
> +config BR2_TARGET_AFBOOT_STM32_F429_DISCO
> +	bool "stm32f429-disco"
> +
> +config BR2_TARGET_AFBOOT_STM32_F469_DISCO
> +	bool "stm32f469-disco"
> +
> +endchoice
> +
> +config BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR
> +	hex "Kernel load address"
> +	default "0x08008000"
> +	help
> +	  This is the physical address in your flash memory the kernel will
> +	  be linked for and stored to. This address is dependent on your own
> +	  flash usage.
> +
> +config BR2_TARGET_AFBOOT_STM32_DTB_ADDR
> +	hex "Device-tree load address"
> +	default "0x08004000"
> +	help
> +	  This is the physical address in your flash memory the device-tree
> +	  will be stored to. This address is dependent on your own flash usage.
> +
> +endif
> diff --git a/boot/afboot-stm32/afboot-stm32.hash b/boot/afboot-stm32/afboot-stm32.hash
> index 75f47295f6..80b9b6a106 100644
> --- a/boot/afboot-stm32/afboot-stm32.hash
> +++ b/boot/afboot-stm32/afboot-stm32.hash
> @@ -1,2 +1,2 @@
>   # Locally calculated
> -sha256 9b37b661bd3091ceb5d8dc5a56a2dfc02ae9ebc0c63dad3c4289c9d6b3d3ec89  afboot-stm32-0.2.tar.gz
> +sha256  132f9817e615131856892cbe3df1502cdcd0700a12a48aa6bae8acfd5f093b42  afboot-stm32-3566acd582e5536fb60864281788a30f5527df2d-br1.tar.gz
> diff --git a/boot/afboot-stm32/afboot-stm32.mk b/boot/afboot-stm32/afboot-stm32.mk
> index 0fb4735285..80074a3c35 100644
> --- a/boot/afboot-stm32/afboot-stm32.mk
> +++ b/boot/afboot-stm32/afboot-stm32.mk
> @@ -4,17 +4,27 @@
>   #
>   ################################################################################
>   
> -AFBOOT_STM32_VERSION = 0.2
> -AFBOOT_STM32_SITE = $(call github,mcoquelin-stm32,afboot-stm32,v$(AFBOOT_STM32_VERSION))
> +AFBOOT_STM32_VERSION = 3566acd582e5536fb60864281788a30f5527df2d
> +AFBOOT_STM32_SITE = https://github.com/mcoquelin-stm32/afboot-stm32.git
> +AFBOOT_STM32_SITE_METHOD = git
>   AFBOOT_STM32_INSTALL_IMAGES = YES
>   AFBOOT_STM32_INSTALL_TARGET = NO
>   
> +ifeq ($(BR2_TARGET_AFBOOT_STM32_F429_DISCO),y)
> +AFBOOT_STM32_BOARD=stm32f429i-disco
> +else
> +AFBOOT_STM32_BOARD=stm32f469i-disco
> +endif
> +
>   define AFBOOT_STM32_BUILD_CMDS
> -	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) all
> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CROSS_COMPILE=$(TARGET_CROSS) \
> +		$(AFBOOT_STM32_BOARD) \
> +		KERNEL_ADDR=$(BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR) \
> +		DTB_ADDR=$(BR2_TARGET_AFBOOT_STM32_DTB_ADDR)
>   endef
>   
>   define AFBOOT_STM32_INSTALL_IMAGES_CMDS
> -	$(INSTALL) -m 0755 -t $(BINARIES_DIR) -D $(@D)/stm32*.bin
> +	$(INSTALL) -m 0755 -t $(BINARIES_DIR) -D $(@D)/$(AFBOOT_STM32_BOARD).bin
>   endef
>   
>   $(eval $(generic-package))
> diff --git a/configs/stm32f429_disco_defconfig b/configs/stm32f429_disco_defconfig
> index 2c0641a6c5..4007eb20a5 100644
> --- a/configs/stm32f429_disco_defconfig
> +++ b/configs/stm32f429_disco_defconfig
> @@ -15,4 +15,5 @@ BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
>   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
> diff --git a/configs/stm32f469_disco_xip_defconfig b/configs/stm32f469_disco_xip_defconfig
> index e8b2cf3d21..4c49ffcc7a 100644
> --- a/configs/stm32f469_disco_xip_defconfig
> +++ b/configs/stm32f469_disco_xip_defconfig
> @@ -1,6 +1,5 @@
>   BR2_arm=y
>   BR2_cortex_m4=y
> -BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches"
>   # BR2_UCLIBC_INSTALL_UTILS is not set
>   BR2_GCC_ENABLE_LTO=y
>   BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh"
> @@ -16,4 +15,6 @@ BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config"
>   BR2_TARGET_ROOTFS_INITRAMFS=y
>   # BR2_TARGET_ROOTFS_TAR is not set
>   BR2_TARGET_AFBOOT_STM32=y
> +BR2_TARGET_AFBOOT_STM32_F469_DISCO=y
> +BR2_TARGET_AFBOOT_STM32_KERNEL_ADDR=0x0800C000
>   BR2_PACKAGE_HOST_OPENOCD=y
> 


-- 
Best regards / Cordialement,

Christophe Priouzeau | Tel: +33 244027320
STMicroelectronics
ST online: www.st.com<http://www.st.com/>



More information about the buildroot mailing list