Hi Patrice, > On 6/7/25 11:37, Dario Binacchi wrote: > > The board includes an STM32H747XI SoC with the following resources: > > - 2 Mbytes Flash > > - 1 Mbyte SRAM > > - LCD-TFT controller > > - MIPI-DSI interface > > - FD-CAN > > - USB 2.0 high-speed/full-speed > > - Ethernet MAC > > - camera interface > > > > Detailed information can be found at: > > https://www.st.com/en/evaluation-tools/stm32h747i-disco.html > > > > Signed-off-by: Dario Binacchi <dario.binac...@amarulasolutions.com> > > > > --- > > > > arch/arm/mach-stm32/stm32h7/Kconfig | 4 +++ > > board/st/stm32h747-disco/Kconfig | 15 ++++++++ > > board/st/stm32h747-disco/MAINTAINERS | 7 ++++ > > board/st/stm32h747-disco/Makefile | 6 ++++ > > board/st/stm32h747-disco/stm32h747-disco.c | 42 > > ++++++++++++++++++++++ configs/stm32h747-disco_defconfig | > > 35 ++++++++++++++++++ drivers/clk/stm32/clk-stm32h7.c | > > 5 +++ include/configs/stm32h747-disco.h | 32 > > +++++++++++++++++ 8 files changed, 146 insertions(+) > > create mode 100644 board/st/stm32h747-disco/Kconfig > > create mode 100644 board/st/stm32h747-disco/MAINTAINERS > > create mode 100644 board/st/stm32h747-disco/Makefile > > create mode 100644 board/st/stm32h747-disco/stm32h747-disco.c > > create mode 100644 configs/stm32h747-disco_defconfig > > create mode 100644 include/configs/stm32h747-disco.h > > > > diff --git a/arch/arm/mach-stm32/stm32h7/Kconfig > > b/arch/arm/mach-stm32/stm32h7/Kconfig index > > 70233a4b23cd..72f20c477d04 100644 --- > > a/arch/arm/mach-stm32/stm32h7/Kconfig +++ > > b/arch/arm/mach-stm32/stm32h7/Kconfig @@ -6,11 +6,15 @@ config > > TARGET_STM32H743_DISCO config TARGET_STM32H743_EVAL > > bool "STM32H743 Evaluation board" > > > > +config TARGET_STM32H747_DISCO > > + bool "STM32H747 Discovery board" > > + > > config TARGET_STM32H750_ART_PI > > bool "STM32H750 ART Pi board" > > > > source "board/st/stm32h743-eval/Kconfig" > > source "board/st/stm32h743-disco/Kconfig" > > +source "board/st/stm32h747-disco/Kconfig" > > source "board/st/stm32h750-art-pi/Kconfig" > > > > endif > > diff --git a/board/st/stm32h747-disco/Kconfig > > b/board/st/stm32h747-disco/Kconfig new file mode 100644 > > index 000000000000..a7b2c09a327f > > --- /dev/null > > +++ b/board/st/stm32h747-disco/Kconfig > > @@ -0,0 +1,15 @@ > > +if TARGET_STM32H747_DISCO > > + > > +config SYS_BOARD > > + default "stm32h747-disco" > > + > > +config SYS_VENDOR > > + default "st" > > + > > +config SYS_SOC > > + default "stm32h7" > > + > > +config SYS_CONFIG_NAME > > + default "stm32h747-disco" > > + > > +endif > > diff --git a/board/st/stm32h747-disco/MAINTAINERS > > b/board/st/stm32h747-disco/MAINTAINERS new file mode 100644 > > index 000000000000..d48649f773f3 > > --- /dev/null > > +++ b/board/st/stm32h747-disco/MAINTAINERS > > @@ -0,0 +1,7 @@ > > +STM32H747 DISCOVERY BOARD > > +M: Dario Binacchi <dario.binac...@amarulasolutions.com> > > +S: Maintained > > +F: board/st/stm32h747-disco > > +F: include/configs/stm32h747-disco.h > > +F: configs/stm32h747-disco_defconfig > > +F: arch/arm/dts/stm32h747* > > diff --git a/board/st/stm32h747-disco/Makefile > > b/board/st/stm32h747-disco/Makefile new file mode 100644 > > index 000000000000..e11f052cc88f > > --- /dev/null > > +++ b/board/st/stm32h747-disco/Makefile > > @@ -0,0 +1,6 @@ > > +# SPDX-License-Identifier: GPL-2.0+ > > +# > > +# Copyright (c) 2025 Dario Binacchi > > <dario.binac...@amarulasolutions.com> +# > > + > > +obj-y := stm32h747-disco.o > > diff --git a/board/st/stm32h747-disco/stm32h747-disco.c > > b/board/st/stm32h747-disco/stm32h747-disco.c new file mode 100644 > > index 000000000000..be0884bdeb4d > > --- /dev/null > > +++ b/board/st/stm32h747-disco/stm32h747-disco.c > > @@ -0,0 +1,42 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * stm32h747i-disco support > > + * > > + * Copyright (C) 2025 Dario Binacchi > > <dario.binac...@amarulasolutions.com> > > + */ > > + > > +#include <dm.h> > > +#include <init.h> > > +#include <log.h> > > +#include <asm/global_data.h> > > + > > +DECLARE_GLOBAL_DATA_PTR; > > + > > +int dram_init(void) > > +{ > > + struct udevice *dev; > > + int ret; > > + > > + ret = uclass_get_device(UCLASS_RAM, 0, &dev); > > + if (ret) { > > + debug("DRAM init failed: %d\n", ret); > > + return ret; > > + } > > + > > + if (fdtdec_setup_mem_size_base() != 0) > > + ret = -EINVAL; > > + > > + return ret; > > +} > > + > > +int dram_init_banksize(void) > > +{ > > + fdtdec_setup_memory_banksize(); > > + > > + return 0; > > +} > > + > > +int board_init(void) > > +{ > > + return 0; > > +} > > diff --git a/configs/stm32h747-disco_defconfig > > b/configs/stm32h747-disco_defconfig new file mode 100644 > > index 000000000000..8a0c72450d1e > > --- /dev/null > > +++ b/configs/stm32h747-disco_defconfig > > @@ -0,0 +1,35 @@ > > +CONFIG_ARM=y > > +CONFIG_ARCH_STM32=y > > +CONFIG_TEXT_BASE=0x08000000 > > +CONFIG_SYS_MALLOC_LEN=0x100000 > > +CONFIG_NR_DRAM_BANKS=1 > > +CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y > > +CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x24040000 > > +CONFIG_ENV_SIZE=0x2000 > > +CONFIG_DEFAULT_DEVICE_TREE="st/stm32h747i-disco" > > +CONFIG_OF_LIBFDT_OVERLAY=y > > +CONFIG_SYS_LOAD_ADDR=0xd0400000 > > +CONFIG_STM32H7=y > > +CONFIG_TARGET_STM32H747_DISCO=y > > +CONFIG_DISTRO_DEFAULTS=y
I'm just wondering if there is any plan to move forward to use the new approach? As fair as I remember this is the "deprecated" option... > > +CONFIG_BOOTDELAY=3 > > +CONFIG_AUTOBOOT_KEYED=y > > +CONFIG_AUTOBOOT_PROMPT="Hit SPACE in %d seconds to stop > > autoboot.\n" +CONFIG_AUTOBOOT_STOP_STR=" " > > +CONFIG_DEFAULT_FDT_FILE="stm32h747i-disco" > > +CONFIG_SYS_CBSIZE=256 > > +CONFIG_SYS_PBSIZE=282 > > +# CONFIG_DISPLAY_CPUINFO is not set > > +CONFIG_SYS_PROMPT="U-Boot > " > > +CONFIG_CMD_GPT=y > > +CONFIG_CMD_MMC=y > > +# CONFIG_CMD_SETEXPR is not set > > +CONFIG_CMD_CACHE=y > > +CONFIG_CMD_TIMER=y > > +CONFIG_CMD_EXT4_WRITE=y > > +# CONFIG_ISO_PARTITION is not set > > +CONFIG_OF_CONTROL=y > > +CONFIG_SYS_RELOC_GD_ENV_ADDR=y > > +CONFIG_NO_NET=y > > +CONFIG_STM32_SDMMC2=y > > +# CONFIG_PINCTRL_FULL is not set > > diff --git a/drivers/clk/stm32/clk-stm32h7.c > > b/drivers/clk/stm32/clk-stm32h7.c index 6acf2ff0a8fb..aa3be414a29f > > 100644 --- a/drivers/clk/stm32/clk-stm32h7.c > > +++ b/drivers/clk/stm32/clk-stm32h7.c > > @@ -114,6 +114,7 @@ > > #define QSPISRC_PER_CK 3 > > > > #define PWR_CR3 0x0c > > +#define PWR_CR3_LDOEN BIT(1) > > #define PWR_CR3_SCUEN BIT(2) > > #define PWR_D3CR 0x18 > > #define PWR_D3CR_VOS_MASK GENMASK(15, 14) > > @@ -375,7 +376,11 @@ int configure_clocks(struct udevice *dev) > > clrsetbits_le32(pwr_base + PWR_D3CR, PWR_D3CR_VOS_MASK, > > VOS_SCALE_1 << PWR_D3CR_VOS_SHIFT); > > /* Lock supply configuration update */ > > +#if IS_ENABLED(CONFIG_TARGET_STM32H747_DISCO) > > + clrbits_le32(pwr_base + PWR_CR3, PWR_CR3_LDOEN); > > +#else > > clrbits_le32(pwr_base + PWR_CR3, PWR_CR3_SCUEN); > > +#endif > > while (!(readl(pwr_base + PWR_D3CR) & PWR_D3CR_VOSREADY)) > > ; > > > > diff --git a/include/configs/stm32h747-disco.h > > b/include/configs/stm32h747-disco.h new file mode 100644 > > index 000000000000..393445a8ae1f > > --- /dev/null > > +++ b/include/configs/stm32h747-disco.h > > @@ -0,0 +1,32 @@ > > +/* SPDX-License-Identifier: GPL-2.0+ */ > > +/* > > + * Copyright (C) 2025 Dario Binacchi > > <dario.binac...@amarulasolutions.com> > > + */ > > + > > +#ifndef __CONFIG_H > > +#define __CONFIG_H > > + > > +#include <config.h> > > +#include <linux/sizes.h> > > + > > +/* For booting Linux, use the first 16MB of memory */ > > +#define CFG_SYS_BOOTMAPSZ SZ_16M > > + > > +#define CFG_SYS_FLASH_BASE 0x08000000 > > + > > +#define CFG_SYS_HZ_CLOCK 1000000 > > + > > +#define BOOT_TARGET_DEVICES(func) \ > > + func(MMC, mmc, 0) > > + > > +#include <config_distro_bootcmd.h> > > +#define CFG_EXTRA_ENV_SETTINGS \ > > + "kernel_addr_r=0xD0008000\0" > > \ > > + "fdtfile=stm32h747i-disco.dtb\0" \ > > + "fdt_addr_r=0xD0408000\0" \ > > + "scriptaddr=0xD0418000\0" \ > > + "pxefile_addr_r=0xD0428000\0" \ > > + "ramdisk_addr_r=0xD0438000\0" > > \ > > + BOOTENV > > + > > +#endif /* __CONFIG_H */ > Reviewed-by: Patrice Chotard <patrice.chot...@foss.st.com> > > Thanks > Patrice Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Erika Unter HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lu...@denx.de
pgpWiRfxSgKre.pgp
Description: OpenPGP digital signature