configs/stm32f469_disco_xip_defconfig: alternative defconfig for XIP
PATCH 1/1 configs/stm32f469_disco_xip_defconfig: alternative defconfig for XIP
Update STM32F469-disco configuration files to operate with new kernel.
Result of make tinyconfig was taken as a starting point to fit kernel into flash memory.
Current setup kernel + rootfs fits in 1.6MB on-chip flash memory
Fixes:
- Move kernel to new flash bank due to growth of dtb size
- Fix kernel start address in bootloader
- Remove outdated path which doesn't affect normal operation mode
--- .../stm32f469-disco/flash.sh | 47 +++- .../stm32f469-disco/linux/defconfig | 120 +++++++++ .../stm32f469-disco/linux/stm32f469-disco.dts | 240 ++++++++++++++++++ .../0002-kernel-start-address.patch | 21 ++ .../patches/afboot-stm32/0003-no-mpu.patch | 22 ++ configs/stm32f469_disco_xip_defconfig | 24 ++ 6 files changed, 465 insertions(+), 9 deletions(-) create mode 100644 board/stmicroelectronics/stm32f469-disco/linux/defconfig create mode 100644 board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch create mode 100644 configs/stm32f469_disco_xip_defconfig
board/stmicroelectronics/stm32f469-disco/flash.sh +38 -9
@@ -1,18 +1,47 @@ #!/bin/bash OUTPUT_DIR=$1 +BUILD_TYPE=$2 -if ! test -d "${OUTPUT_DIR}" ; then +if ! test -d "${OUTPUT_DIR}" +then echo "ERROR: no output directory specified." echo "Usage: $0 OUTPUT_DIR" exit 1 fi -${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ - -c "init" \ - -c "reset init" \ - -c "flash probe 0" \ - -c "flash info 0" \ - -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ - -c "reset run" \ - -c "shutdown" +if [[ -z "${BUILD_TYPE}" ]] +then + echo "ERROR: no build type specified, please select 'xip' or 'uboot'." + echo "Usage: $0 OUTPUT_DIR $1 BUILD_TYPE" + exit 1 +fi + +case "${BUILD_TYPE}" in + "xip") + ${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x08010000" \ + -c "reset run" \ + -c "shutdown" + ;; + "uboot") + FLASH_COMMAND= + ${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ + -c "reset run" \ + -c "shutdown" + ;; + *) + echo "Wrong build type. Please select from: xip, uboot" + ;; +esac
board/stmicroelectronics/stm32f469-disco/linux/defconfig new file +120 -0
120 lines not on this page · raw message
board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts new file +240 -0
240 lines not on this page · raw message
board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch new file +21 -0
@@ -0,0 +1,21 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index 2da1f4b65f..96e4dff65e 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -6,6 +6,7 @@ + #include "gpio.h" + #include "mpu.h" + ++#define KERNEL_ADDR 0x08010000 + #define CONFIG_HSE_HZ 8000000 + #define CONFIG_PLL_M 8 + #define CONFIG_PLL_N 360 +@@ -85,7 +86,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))(KERNEL_ADDR | 1); + + kernel(0, ~0UL, 0x08004000); + }
board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch new file +22 -0
@@ -0,0 +1,22 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index d4d0909831..03f823f288 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -127,7 +127,7 @@ int main(void) + + int i; + +- mpu_config(0x0); ++ mpu_config(0xc0000000); + + if (*FLASH_CR & FLASH_CR_LOCK) { + *FLASH_KEYR = 0x45670123; +@@ -229,7 +229,7 @@ int main(void) + usart_setup(usart_base, 45000000); + usart_putch(usart_base, '.'); + +- *SYSCFG_MEMRMP = 0x4; ++ /* *SYSCFG_MEMRMP = 0x4; */ + + start_kernel(); +
configs/stm32f469_disco_xip_defconfig new file +24 -0
@@ -0,0 +1,24 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches" +BR2_KERNEL_HEADERS_5_13=y +# BR2_UCLIBC_INSTALL_UTILS is not set +BR2_GCC_VERSION_11_X=y +BR2_GCC_ENABLE_LTO=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux/defconfig" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_XZ=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_ZLIB=y +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_PACKAGE_HOST_OPENOCD=y +BR2_PACKAGE_HOST_UTIL_LINUX=y
Signature · 6 lines
2.32.0 _______________________________________________ buildroot mailing list [email protected] http://lists.busybox.net/mailman/listinfo/buildroot
PATCH v2 1/1 configs/stm32f469_disco_xip_defconfig: alternative defconfig for XIP
Result of make tinyconfig was taken as a starting point to fit kernel into flash memory.
Current setup kernel + rootfs fits in 1.6MB on-chip flash memory.
Fixes:
- Move kernel to new flash bank due to growth of dtb size
- Fix kernel start address in bootloader
For better binary size optimization gcc LTO is turned on.
----
v1 -> v2:
- Change codestyle in bash scripts
- Use in-tree dts with config fragment
- Update readme.txt
- Remove unnecessary target and host packages from defconfig
---
.../stm32f469-disco/flash.sh | 6 +-
.../linux/{defconfig => linux.config} | 0
...32f469-i-Update-kernel-start-address.patch | 56 +++++++++++++++++++
.../0002-kernel-start-address.patch | 21 -------
.../patches/afboot-stm32/0003-no-mpu.patch | 22 --------
...fault-dram-address-without-remapping.patch | 38 +++++++++++++
.../stm32f469-disco/readme.txt | 26 +++++++--
configs/stm32f469_disco_xip_defconfig | 8 +--
8 files changed, 117 insertions(+), 60 deletions(-)
rename board/stmicroelectronics/stm32f469-disco/linux/{defconfig => linux.config} (100%)
create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469-i-Update-kernel-start-address.patch
delete mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch
delete mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch
create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/linux/0001-Use-default-dram-address-without-remapping.patchboard/stmicroelectronics/stm32f469-disco/flash.sh +2 -4
@@ -3,15 +3,13 @@ OUTPUT_DIR=$1 BUILD_TYPE=$2 -if ! test -d "${OUTPUT_DIR}" -then +if ! test -d "${OUTPUT_DIR}"; then echo "ERROR: no output directory specified." echo "Usage: $0 OUTPUT_DIR" exit 1 fi -if [[ -z "${BUILD_TYPE}" ]] -then +if [[ -z "${BUILD_TYPE}" ]]; then echo "ERROR: no build type specified, please select 'xip' or 'uboot'." echo "Usage: $0 OUTPUT_DIR $1 BUILD_TYPE" exit 1
board/stmicroelectronics/stm32f469-disco/linux/linux.config renamed from board/stmicroelectronics/stm32f469-disco/linux/defconfig +0 -0
board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0001-stm32f469-i-Update-kernel-start-address.patch new file +56 -0
56 lines not on this page · raw message
board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch deleted +0 -21
@@ -1,21 +0,0 @@ -diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c -index 2da1f4b65f..96e4dff65e 100644 ---- a/stm32f469i-disco.c -+++ b/stm32f469i-disco.c -@@ -6,6 +6,7 @@ - #include "gpio.h" - #include "mpu.h" - -+#define KERNEL_ADDR 0x08010000 - #define CONFIG_HSE_HZ 8000000 - #define CONFIG_PLL_M 8 - #define CONFIG_PLL_N 360 -@@ -85,7 +86,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))(KERNEL_ADDR | 1); - - kernel(0, ~0UL, 0x08004000); - }
board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch deleted +0 -22
@@ -1,22 +0,0 @@ -diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c -index d4d0909831..03f823f288 100644 ---- a/stm32f469i-disco.c -+++ b/stm32f469i-disco.c -@@ -127,7 +127,7 @@ int main(void) - - int i; - -- mpu_config(0x0); -+ mpu_config(0xc0000000); - - if (*FLASH_CR & FLASH_CR_LOCK) { - *FLASH_KEYR = 0x45670123; -@@ -229,7 +229,7 @@ int main(void) - usart_setup(usart_base, 45000000); - usart_putch(usart_base, '.'); - -- *SYSCFG_MEMRMP = 0x4; -+ /* *SYSCFG_MEMRMP = 0x4; */ - - start_kernel(); -
board/stmicroelectronics/stm32f469-disco/patches/linux/0001-Use-default-dram-address-without-remapping.patch new file +38 -0
@@ -0,0 +1,38 @@ +From 8ccf9f625d00138d86fb7d70f3efd58a8fb4d7ff Mon Sep 17 00:00:00 2001 +From: Yauheni Saldatsenka <[email protected]> +Date: Mon, 23 Aug 2021 02:54:22 +0300 +Subject: [PATCH] Use default dram address without remapping + +Signed-off-by: Yauheni Saldatsenka <[email protected]> +--- + arch/arm/boot/dts/stm32f469-disco.dts | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts +index 2e1b3bbbe4b5..06845614a19a 100644 +--- a/arch/arm/boot/dts/stm32f469-disco.dts ++++ b/arch/arm/boot/dts/stm32f469-disco.dts +@@ -60,9 +60,9 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + +- memory@00000000 { ++ memory@c0000000 { + device_type = "memory"; +- reg = <0x00000000 0x1000000>; ++ reg = <0xc0000000 0x1000000>; + }; + + aliases { +@@ -84,7 +84,7 @@ vdd_dsi: vdd-dsi { + }; + + soc { +- dma-ranges = <0xc0000000 0x0 0x10000000>; ++ dma-ranges = <0xc0000000 0xc0000000 0x10000000>; + }; + + leds { +-- +2.32.0 +
board/stmicroelectronics/stm32f469-disco/readme.txt +20 -6
@@ -4,23 +4,37 @@ STM32F469 Discovery This tutorial describes how to use the predefined Buildroot configuration for the STM32F469 Discovery evaluation platform. +There are two setups supported: +1. Internal flash memory is fully occupied with u-boot bootloader which boots kernel with + root filesystem from MMC. +2. Internal flash memory stores simple afboot-stm32 bootloader, device tree and + in place (XIP) kernel with built-in initramfs. + Kernel is based on tinyconfig. + Building -------- + Type + "make stm32f469_disco_defconfig" + to build u-boot setup + or + "make stm32f469_disco_xip_defconfig" + to build xip setup + + Then - make stm32f469_disco_defconfig - make + "make" Flashing -------- - ./board/stmicroelectronics/stm32f469-disco/flash.sh output/ + ./board/stmicroelectronics/stm32f469-disco/flash.sh output/ <BUILD_TYPE> -It will flash the U-boot bootloader. + <BUILD_TYPE> can be "xip" or "uboot" -Creating SD card +Creating SD card for u-boot setup ---------------- -Buildroot prepares an"sdcard.img" image in the output/images/ directory, +Buildroot prepares an "sdcard.img" image in the output/images/ directory, ready to be dumped on a SD card. Launch the following command as root: dd if=output/images/sdcard.img of=/dev/<your-sd-device>
configs/stm32f469_disco_xip_defconfig +1 -7
@@ -1,24 +1,18 @@ BR2_arm=y BR2_cortex_m4=y BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches" -BR2_KERNEL_HEADERS_5_13=y # BR2_UCLIBC_INSTALL_UTILS is not set -BR2_GCC_VERSION_11_X=y BR2_GCC_ENABLE_LTO=y -BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux/defconfig" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux/linux.config" BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y BR2_LINUX_KERNEL_XZ=y BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" -BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts" BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" -BR2_PACKAGE_ZLIB=y BR2_TARGET_ROOTFS_INITRAMFS=y # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_AFBOOT_STM32=y BR2_PACKAGE_HOST_OPENOCD=y -BR2_PACKAGE_HOST_UTIL_LINUX=y
Signature · 6 lines
2.32.0 _______________________________________________ buildroot mailing list [email protected] http://lists.busybox.net/mailman/listinfo/buildroot
Hi,
For Flash.sh and README.txt, can you make a version specific to XIP like: flash_xip.sh and README_xip.txt.
Regards
Christophe
Quoted 545 lines · Yauheni Saldatsenka
Update STM32F469-disco configuration files to operate with new kernel.
Result of make tinyconfig was taken as a starting point to fit kernel into flash memory.
Current setup kernel + rootfs fits in 1.6MB on-chip flash memoryFixes:
- Move kernel to new flash bank due to growth of dtb size
- Fix kernel start address in bootloader
- Remove outdated path which doesn't affect normal operation modeSigned-off-by Yauheni Saldatsenka <[email protected]>--- .../stm32f469-disco/flash.sh | 47 +++- .../stm32f469-disco/linux/defconfig | 120 +++++++++ .../stm32f469-disco/linux/stm32f469-disco.dts | 240 ++++++++++++++++++ .../0002-kernel-start-address.patch | 21 ++ .../patches/afboot-stm32/0003-no-mpu.patch | 22 ++ configs/stm32f469_disco_xip_defconfig | 24 ++ 6 files changed, 465 insertions(+), 9 deletions(-)create mode 100644 board/stmicroelectronics/stm32f469-disco/linux/defconfig
create mode 100644board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts
create mode 100644board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patchcreate mode 100644board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patchcreate mode 100644 configs/stm32f469_disco_xip_defconfigboard/stmicroelectronics/stm32f469-disco/flash.sh +38
-9@@ -1,18 +1,47 @@ #!/bin/bash OUTPUT_DIR=$1 +BUILD_TYPE=$2 -if ! test -d "${OUTPUT_DIR}" ; then +if ! test -d "${OUTPUT_DIR}" +then echo "ERROR: no output directory specified." echo "Usage: $0 OUTPUT_DIR" exit 1 fi -${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ - -c "init" \ - -c "reset init" \ - -c "flash probe 0" \ - -c "flash info 0" \ - -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ - -c "reset run" \ - -c "shutdown" +if [[ -z "${BUILD_TYPE}" ]] +then + echo "ERROR: no build type specified, please select 'xip' or 'uboot'." + echo "Usage: $0 OUTPUT_DIR $1 BUILD_TYPE" + exit 1 +fi + +case "${BUILD_TYPE}" in + "xip") + ${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469i-disco.bin 0x08000000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/stm32f469-disco.dtb 0x08004000" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/xipImage 0x08010000" \ + -c "reset run" \ + -c "shutdown" + ;; + "uboot") + FLASH_COMMAND= + ${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ + -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ + -c "reset run" \ + -c "shutdown" + ;; + *) + echo "Wrong build type. Please select from: xip, uboot" + ;; +esacboard/stmicroelectronics/stm32f469-disco/linux/defconfig new file +120
-0@@ -0,0 +1,120 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=10 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_MULTIUSER is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +# CONFIG_POSIX_TIMERS is not set +# CONFIG_BUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_FUTEX is not set +# CONFIG_EPOLL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +# CONFIG_EVENTFD is not set +# CONFIG_AIO is not set +# CONFIG_IO_URING is not set +# CONFIG_ADVISE_SYSCALLS is not set +# CONFIG_MEMBARRIER is not set +# CONFIG_KALLSYMS is not set +CONFIG_KCMP=y +# CONFIG_RSEQ is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SLOB=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_MMU is not set +CONFIG_ARCH_STM32=y +# CONFIG_MACH_STM32F429 is not set +# CONFIG_MACH_STM32F746 is not set +# CONFIG_MACH_STM32F769 is not set +# CONFIG_MACH_STM32H743 is not set +CONFIG_CPU_V7M_NUM_IRQ=240 +# CONFIG_ARM_DMA_MEM_BUFFERABLE is not set +CONFIG_SET_MEM_PARAM=y +CONFIG_DRAM_BASE=0xc0000000 +CONFIG_DRAM_SIZE=0x01000000 +CONFIG_HZ_1000=y +# CONFIG_ATAGS is not set +CONFIG_XIP_KERNEL=y +CONFIG_XIP_PHYS_ADDR=0x08010000 +CONFIG_XIP_DEFLATED_DATA=y +# CONFIG_SUSPEND is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_COMPAT_32BIT_TIME is not set +# CONFIG_GCC_PLUGINS is not set +# CONFIG_BLOCK is not set +CONFIG_BINFMT_FLAT=y +CONFIG_BINFMT_SHARED_FLAT=y +# CONFIG_COREDUMP is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_INPUT is not set +# CONFIG_VT is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LDISC_AUTOLOAD is not set +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_MFD_STM32_TIMERS=y +# CONFIG_USB_SUPPORT is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_SYNC_FILE=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_IIO=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IIO_STM32_TIMER_TRIGGER=y +# CONFIG_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +# CONFIG_PROC_SYSCTL is not set +CONFIG_CONFIGFS_FS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 +CONFIG_CONSOLE_LOGLEVEL_QUIET=15 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 +# CONFIG_SYMBOLIC_ERRNAME is not set +CONFIG_DEBUG_INFO=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_MISC is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not setboard/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts new file +240
-0@@ -0,0 +1,240 @@ +/* + * Copyright 2016 - Lee Jones <[email protected]> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this file; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301 USA + * + * Or, alternatively, + * + * b) Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/dts-v1/; +#include "stm32f469.dtsi" +#include "stm32f469-pinctrl.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "STMicroelectronics STM32F469i-DISCO board"; + compatible = "st,stm32f469i-disco", "st,stm32f469"; + + chosen { + bootargs = "root=/dev/ram fbcon=map:0"; + stdout-path = "serial0:115200n8"; + }; + + memory@c0000000 { + device_type = "memory"; + reg = <0xc0000000 0x1000000>; + }; + + aliases { + serial0 = &usart3; + }; + + mmc_vcard: mmc_vcard { + compatible = "regulator-fixed"; + regulator-name = "mmc_vcard"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + vdd_dsi: vdd-dsi { + compatible = "regulator-fixed"; + regulator-name = "vdd_dsi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + soc { + dma-ranges = <0xc0000000 0xc0000000 0x10000000>; + }; + + leds { + compatible = "gpio-leds"; + led-green { + gpios = <&gpiog 6 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + led-orange { + gpios = <&gpiod 4 GPIO_ACTIVE_LOW>; + }; + led-red { + gpios = <&gpiod 5 GPIO_ACTIVE_LOW>; + }; + led-blue { + gpios = <&gpiok 3 GPIO_ACTIVE_LOW>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + autorepeat; + button@0 { + label = "User"; + linux,code = <KEY_WAKEUP>; + gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>; + }; + }; + + /* This turns on vbus for otg for host mode (dwc2) */ + vcc5v_otg: vcc5v-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpiob 2 GPIO_ACTIVE_HIGH>; + regulator-name = "vcc5_host1"; + regulator-always-on; + }; +}; + +&rcc { + compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc", "st,stm32-rcc"; +}; + +&clk_hse { + clock-frequency = <8000000>; +}; + +&dsi { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_in: endpoint { + remote-endpoint = <<dc_out_dsi>; + }; + }; + + port@1 { + reg = <1>; + dsi_out: endpoint { + remote-endpoint = <&dsi_panel_in>; + }; + }; + }; + + panel-dsi@0 { + compatible = "orisetech,otm8009a"; + reg = <0>; /* dsi virtual channel (0..3) */ + reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>; + power-supply = <&vdd_dsi>; + status = "okay"; + + port { + dsi_panel_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + }; +}; + +<dc { + status = "okay"; + + port { + ltdc_out_dsi: endpoint@0 { + remote-endpoint = <&dsi_in>; + }; + }; +}; + +&rtc { + status = "okay"; +}; + +&timers1 { + status = "okay"; + + pwm { + pinctrl-0 = <&pwm1_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + timer@0 { + status = "okay"; + }; +}; + +&timers3 { + status = "okay"; + + pwm { + pinctrl-0 = <&pwm3_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + timer@2 { + status = "okay"; + }; +}; + +&sdio { + status = "okay"; + vmmc-supply = <&mmc_vcard>; + cd-gpios = <&gpiog 2 GPIO_ACTIVE_LOW>; + broken-cd; + pinctrl-names = "default", "opendrain"; + pinctrl-0 = <&sdio_pins>; + pinctrl-1 = <&sdio_pins_od>; + bus-width = <4>; +}; + +&usart3 { + pinctrl-0 = <&usart3_pins_a>; + pinctrl-names = "default"; + status = "okay"; +}; + +&usbotg_fs { + dr_mode = "host"; + pinctrl-0 = <&usbotg_fs_pins_a>; + pinctrl-names = "default"; + status = "okay"; +};board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch new file +21
-0@@ -0,0 +1,21 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index 2da1f4b65f..96e4dff65e 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -6,6 +6,7 @@ + #include "gpio.h" + #include "mpu.h" + ++#define KERNEL_ADDR 0x08010000 + #define CONFIG_HSE_HZ 8000000 + #define CONFIG_PLL_M 8 + #define CONFIG_PLL_N 360 +@@ -85,7 +86,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))(KERNEL_ADDR | 1); + + kernel(0, ~0UL, 0x08004000); + }board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch new file +22
-0@@ -0,0 +1,22 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index d4d0909831..03f823f288 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -127,7 +127,7 @@ int main(void) + + int i; + +- mpu_config(0x0); ++ mpu_config(0xc0000000); + + if (*FLASH_CR & FLASH_CR_LOCK) { + *FLASH_KEYR = 0x45670123; +@@ -229,7 +229,7 @@ int main(void) + usart_setup(usart_base, 45000000); + usart_putch(usart_base, '.'); + +- *SYSCFG_MEMRMP = 0x4; ++ /* *SYSCFG_MEMRMP = 0x4; */ + + start_kernel(); +configs/stm32f469_disco_xip_defconfig new file +24
-0@@ -0,0 +1,24 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches" +BR2_KERNEL_HEADERS_5_13=y +# BR2_UCLIBC_INSTALL_UTILS is not set +BR2_GCC_VERSION_11_X=y +BR2_GCC_ENABLE_LTO=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/common/stm32f4xx/stm32-post-build.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux/defconfig" +BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_XZ=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_ZLIB=y +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_PACKAGE_HOST_OPENOCD=y +BR2_PACKAGE_HOST_UTIL_LINUX=y
Signature · 9 lines
Best regards / Cordialement, Christophe Priouzeau | Tel: +33 244027320 STMicroelectronics ST online: www.st.com<http://www.st.com/> _______________________________________________ buildroot mailing list [email protected] http://lists.busybox.net/mailman/listinfo/buildroot
Hi!
Okay, no problem.
среда, 25 августа 2021 г. пользователь Christophe Priouzeau < [email protected]> написал:
Quoted 585 lines
Hi,
ForFlash.shand README.txt, can you make a version specific to XIP like:flash_xip.shand README_xip.txt.Regards
ChristopheQuoted 566 lines · Yauheni Saldatsenka
Update STM32F469-disco configuration files to operate with new kernel.
Result of make tinyconfig was taken as a starting point to fit kernel into flash memory.
Current setup kernel + rootfs fits in 1.6MB on-chip flash memoryFixes:
- Move kernel to new flash bank due to growth of dtb size
- Fix kernel start address in bootloader
- Remove outdated path which doesn't affect normal operation modeSigned-off-by Yauheni Saldatsenka <[email protected]>--- .../stm32f469-disco/flash.sh | 47 +++- .../stm32f469-disco/linux/defconfig | 120 +++++++++ .../stm32f469-disco/linux/stm32f469-disco.dts | 240 ++++++++++++++++++ .../0002-kernel-start-address.patch | 21 ++ .../patches/afboot-stm32/0003-no-mpu.patch | 22 ++ configs/stm32f469_disco_xip_defconfig | 24 ++ 6 files changed, 465 insertions(+), 9 deletions(-)create mode 100644 board/stmicroelectronics/stm32
f469-disco/linux/defconfig
create mode 100644 board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts
create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patch
create mode 100644 board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch
create mode 100644 configs/stm32f469_disco_xip_defconfigboard/stmicroelectronics/stm32f469-disco/flash.sh +6
-7@@ -1,18 +1,47 @@ #!/bin/bash OUTPUT_DIR=$1 +BUILD_TYPE=$2 -if ! test -d "${OUTPUT_DIR}" ; then +if ! test -d "${OUTPUT_DIR}" +then echo "ERROR: no output directory specified." echo "Usage: $0 OUTPUT_DIR" exit 1 fi -${OUTPUT_DIR}/host/bin/openocd -f board/stm32f469discovery.cfg \ - -c "init" \ - -c "reset init" \ - -c "flash probe 0" \ - -c "flash info 0" \ - -c "flash write_image erase ${OUTPUT_DIR}/images/u-boot.bin 0x08000000" \ - -c "reset run" \ - -c "shutdown" +if [[ -z "${BUILD_TYPE}" ]] +then + echo "ERROR: no build type specified, please select 'xip' or'uboot'."
board/stmicroelectronics/stm32f469-disco/flash.sh +7
-0+ echo "Usage: $0 OUTPUT_DIR $1 BUILD_TYPE" + exit 1 +fi + +case "${BUILD_TYPE}" in + "xip") + ${OUTPUT_DIR}/host/bin/openocd -fboard/stm32f469discovery.cfg \
board/stmicroelectronics/stm32f469-disco/flash.sh +5
-0+ -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase${OUTPUT_DIR}/images/stm32f469i-disco.bin
0x08000000" \
+ -c "flashwrite_imageerase
${OUTPUT_DIR}/images/stm32f469-disco.dtb0x08004000" \
+ -c "flashwrite_imageerase
${OUTPUT_DIR}/images/xipImage0x08010000" \board/stmicroelectronics/stm32f469-disco/flash.sh +6
-0+ -c "reset run" \ + -c "shutdown" + ;; + "uboot") + FLASH_COMMAND= + ${OUTPUT_DIR}/host/bin/openocd -fboard/stm32f469discovery.cfg \
board/stmicroelectronics/stm32f469-disco/flash.sh +5
-0+ -c "init" \ + -c "reset init" \ + -c "flash probe 0" \ + -c "flash info 0" \ + -c "flash write_image erase${OUTPUT_DIR}/images/u-boot.bin
0x08000000" \board/stmicroelectronics/stm32f469-disco/flash.sh +7
-0+ -c "reset run" \ + -c "shutdown" + ;; + *) + echo "Wrong build type. Please select from: xip, uboot" + ;; +esacboard/stmicroelectronics/stm32f469-disco/linux/defconfig new file +120
-0@@ -0,0 +1,120 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_LOG_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=10 +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_MULTIUSER is not set +# CONFIG_SYSFS_SYSCALL is not set +# CONFIG_FHANDLE is not set +# CONFIG_POSIX_TIMERS is not set +# CONFIG_BUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_FUTEX is not set +# CONFIG_EPOLL is not set +# CONFIG_SIGNALFD is not set +# CONFIG_TIMERFD is not set +# CONFIG_EVENTFD is not set +# CONFIG_AIO is not set +# CONFIG_IO_URING is not set +# CONFIG_ADVISE_SYSCALLS is not set +# CONFIG_MEMBARRIER is not set +# CONFIG_KALLSYMS is not set +CONFIG_KCMP=y +# CONFIG_RSEQ is not set +CONFIG_EMBEDDED=y +# CONFIG_VM_EVENT_COUNTERS is not set +# CONFIG_COMPAT_BRK is not set +CONFIG_SLOB=y +# CONFIG_SLAB_MERGE_DEFAULT is not set +# CONFIG_MMU is not set +CONFIG_ARCH_STM32=y +# CONFIG_MACH_STM32F429 is not set +# CONFIG_MACH_STM32F746 is not set +# CONFIG_MACH_STM32F769 is not set +# CONFIG_MACH_STM32H743 is not set +CONFIG_CPU_V7M_NUM_IRQ=240 +# CONFIG_ARM_DMA_MEM_BUFFERABLE is not set +CONFIG_SET_MEM_PARAM=y +CONFIG_DRAM_BASE=0xc0000000 +CONFIG_DRAM_SIZE=0x01000000 +CONFIG_HZ_1000=y +# CONFIG_ATAGS is not set +CONFIG_XIP_KERNEL=y +CONFIG_XIP_PHYS_ADDR=0x08010000 +CONFIG_XIP_DEFLATED_DATA=y +# CONFIG_SUSPEND is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_COMPAT_32BIT_TIME is not set +# CONFIG_GCC_PLUGINS is not set +# CONFIG_BLOCK is not set +CONFIG_BINFMT_FLAT=y +CONFIG_BINFMT_SHARED_FLAT=y +# CONFIG_COREDUMP is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_STANDALONE is not set +# CONFIG_PREVENT_FIRMWARE_BUILD is not set +# CONFIG_FW_LOADER is not set +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_INPUT is not set +# CONFIG_VT is not set +# CONFIG_UNIX98_PTYS is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_LDISC_AUTOLOAD is not set +CONFIG_SERIAL_STM32=y +CONFIG_SERIAL_STM32_CONSOLE=y +# CONFIG_DEVMEM is not set +# CONFIG_HWMON is not set +CONFIG_WATCHDOG=y +CONFIG_MFD_STM32_TIMERS=y +# CONFIG_USB_SUPPORT is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_STM32=y +CONFIG_DMADEVICES=y +CONFIG_STM32_DMA=y +CONFIG_STM32_DMAMUX=y +CONFIG_STM32_MDMA=y +CONFIG_SYNC_FILE=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_IIO=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_TRIGGERED_BUFFER=y +CONFIG_IIO_STM32_TIMER_TRIGGER=y +# CONFIG_FILE_LOCKING is not set +# CONFIG_DNOTIFY is not set +# CONFIG_INOTIFY_USER is not set +# CONFIG_PROC_SYSCTL is not set +CONFIG_CONFIGFS_FS=y +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15 +CONFIG_CONSOLE_LOGLEVEL_QUIET=15 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7 +# CONFIG_SYMBOLIC_ERRNAME is not set +CONFIG_DEBUG_INFO=y +# CONFIG_SECTION_MISMATCH_WARN_ONLY is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_MISC is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not setboard/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts new file +11
-0@@ -0,0 +1,240 @@ +/* + * Copyright 2016 - Lee Jones <[email protected]> + * + * This file is dual-licensed: you can use it either under the terms + * of the GPL or the X11 license, at your option. Note that this dual + * licensing only applies to this file, and not this project as a + * whole. + * + * a) This file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either vers<https://www.google.com/maps/search/n;+either+vers?entry=gmail&source=g>ion
2 of the
+ * License, or (at your option) any later version.
+ *+ * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this file; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301 USA+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person+ * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions:+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE.+ */
board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts new file +84
-0+ +/dts-v1/; +#include "stm32f469.dtsi" +#include "stm32f469-pinctrl.dtsi" +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + model = "STMicroelectronics STM32F469i-DISCO board"; + compatible = "st,stm32f469i-disco", "st,stm32f469"; + + chosen { + bootargs = "root=/dev/ram fbcon=map:0"; + stdout-path = "serial0:115200n8"; + }; + + memory@c0000000 { + device_type = "memory"; + reg = <0xc0000000 0x1000000>; + }; + + aliases { + serial0 = &usart3; + }; + + mmc_vcard: mmc_vcard { + compatible = "regulator-fixed"; + regulator-name = "mmc_vcard"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + vdd_dsi: vdd-dsi { + compatible = "regulator-fixed"; + regulator-name = "vdd_dsi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + soc { + dma-ranges = <0xc0000000 0xc0000000 0x10000000>; + }; + + leds { + compatible = "gpio-leds"; + led-green { + gpios = <&gpiog 6 GPIO_ACTIVE_LOW>; + linux,default-trigger = "heartbeat"; + }; + led-orange { + gpios = <&gpiod 4 GPIO_ACTIVE_LOW>; + }; + led-red { + gpios = <&gpiod 5 GPIO_ACTIVE_LOW>; + }; + led-blue { + gpios = <&gpiok 3 GPIO_ACTIVE_LOW>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + autorepeat; + button@0 { + label = "User"; + linux,code = <KEY_WAKEUP>; + gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>; + }; + }; + + /* This turns on vbus for otg for host mode (dwc2) */ + vcc5v_otg: vcc5v-otg-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpiob 2 GPIO_ACTIVE_HIGH>; + regulator-name = "vcc5_host1"; + regulator-always-on; + }; +}; + +&rcc { + compatible = "st,stm32f469-rcc", "st,stm32f42xx-rcc","st,stm32-rcc";
board/stmicroelectronics/stm32f469-disco/linux/stm32f469-disco.dts new file +110
-0+}; + +&clk_hse { + clock-frequency = <8000000>; +}; + +&dsi { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + dsi_in: endpoint { + remote-endpoint = <<dc_out_dsi>; + }; + }; + + port@1 { + reg = <1>; + dsi_out: endpoint { + remote-endpoint = <&dsi_panel_in>; + }; + }; + }; + + panel-dsi@0 { + compatible = "orisetech,otm8009a"; + reg = <0>; /* dsi virtual channel (0..3) */ + reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>; + power-supply = <&vdd_dsi>; + status = "okay"; + + port { + dsi_panel_in: endpoint { + remote-endpoint = <&dsi_out>; + }; + }; + }; +}; + +<dc { + status = "okay"; + + port { + ltdc_out_dsi: endpoint@0 { + remote-endpoint = <&dsi_in>; + }; + }; +}; + +&rtc { + status = "okay"; +}; + +&timers1 { + status = "okay"; + + pwm { + pinctrl-0 = <&pwm1_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + timer@0 { + status = "okay"; + }; +}; + +&timers3 { + status = "okay"; + + pwm { + pinctrl-0 = <&pwm3_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + timer@2 { + status = "okay"; + }; +}; + +&sdio { + status = "okay"; + vmmc-supply = <&mmc_vcard>; + cd-gpios = <&gpiog 2 GPIO_ACTIVE_LOW>; + broken-cd; + pinctrl-names = "default", "opendrain"; + pinctrl-0 = <&sdio_pins>; + pinctrl-1 = <&sdio_pins_od>; + bus-width = <4>; +}; + +&usart3 { + pinctrl-0 = <&usart3_pins_a>; + pinctrl-names = "default"; + status = "okay"; +}; + +&usbotg_fs { + dr_mode = "host"; + pinctrl-0 = <&usbotg_fs_pins_a>; + pinctrl-names = "default"; + status = "okay"; +};(quoted diff) +0
-0
stm32/0002-kernel-start-address.patchb/board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0002-kernel-start-address.patchnew file mode 100644
index 0000000000..614effa85bboard/stmicroelectronics/stm32f469-disco/patches/afboot- new file +0
-0
stm32/0002-kernel-start-address.patchboard/stmicroelectronics/stm32f469-disco/patches/afboot- new file +17
-0@@ -0,0 +1,21 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index 2da1f4b65f..96e4dff65e 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -6,6 +6,7 @@ + #include "gpio.h" + #include "mpu.h" + ++#define KERNEL_ADDR 0x08010000 + #define CONFIG_HSE_HZ 8000000 + #define CONFIG_PLL_M 8 + #define CONFIG_PLL_N 360 +@@ -85,7 +86,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_tmach,uint32_tdt) =
(void (*)(uint32_t,uint32_t, uint32_t))(KERNEL_ADDR | 1);board/stmicroelectronics/stm32f469-disco/patches/afboot- new file +3
-0+ + kernel(0, ~0UL, 0x08004000); + }board/stmicroelectronics/stm32f469-disco/patches/afboot- renamed from board/stmicroelectronics/stm32f469-disco/patches/afboot-stm32/0003-no-mpu.patch +0
-0
stm32/0003-no-mpu.patch
new file mode 100644
index 0000000000..bc66d2d0efboard/stmicroelectronics/stm32f469-disco/patches/afboot- new file +0
-0
stm32/0003-no-mpu.patchboard/stmicroelectronics/stm32f469-disco/patches/afboot- new file +22
-0@@ -0,0 +1,22 @@ +diff --git a/stm32f469i-disco.c b/stm32f469i-disco.c +index d4d0909831..03f823f288 100644 +--- a/stm32f469i-disco.c ++++ b/stm32f469i-disco.c +@@ -127,7 +127,7 @@ int main(void) + + int i; + +- mpu_config(0x0); ++ mpu_config(0xc0000000); + + if (*FLASH_CR & FLASH_CR_LOCK) { + *FLASH_KEYR = 0x45670123; +@@ -229,7 +229,7 @@ int main(void) + usart_setup(usart_base, 45000000); + usart_putch(usart_base, '.'); + +- *SYSCFG_MEMRMP = 0x4; ++ /* *SYSCFG_MEMRMP = 0x4; */ + + start_kernel(); +configs/stm32f469_disco_xip_defconfig new file +8
-0@@ -0,0 +1,24 @@ +BR2_arm=y +BR2_cortex_m4=y +BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches" +BR2_KERNEL_HEADERS_5_13=y +# BR2_UCLIBC_INSTALL_UTILS is not set +BR2_GCC_VERSION_11_X=y +BR2_GCC_ENABLE_LTO=y +BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/comm
on/stm32f4xx/stm32-post-build.sh"configs/stm32f469_disco_xip_defconfig new file +3
-0+BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32f469-disco/linux/defconfig"
configs/stm32f469_disco_xip_defconfig new file +6
-0+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y +BR2_LINUX_KERNEL_XZ=y +BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="xipImage" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32f469-disco" +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/stmicroelectronics/
stm32f469-disco/linux/stm32f469-disco.dts"configs/stm32f469_disco_xip_defconfig line 24
Quoted 7 lines
configs/stm32f469_disco_xip_defconfig new file +7
-0+BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_ZLIB=y +BR2_TARGET_ROOTFS_INITRAMFS=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_AFBOOT_STM32=y +BR2_PACKAGE_HOST_OPENOCD=y +BR2_PACKAGE_HOST_UTIL_LINUX=y--
Best regards / Cordialement,
Quoted 4 lines
Christophe Priouzeau | Tel: +33 244027320
STMicroelectronics
ST online: www.st.com<http://www.st.com/>
_______________________________________________
buildroot mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/buildroot