boards/arm/stm32h7/stm32h745i-disco: Add RPTUN support

- Edited linker script for shmem to have condition according to cores selected.
- Added new configuration for nsh_cm7_rptun and nsh_cm4_rptun.
- Appended RPTUN bringup code in stm32_bringup.c

Signed-off-by: Nonpawit Ekburanawat <nonpawit.ek@gmail.com>
This commit is contained in:
Nonpawit Ekburanawat 2024-09-13 21:22:50 +02:00 committed by Xiang Xiao
parent 51909ed59f
commit 46ef3f4f88
4 changed files with 149 additions and 0 deletions

View File

@ -0,0 +1,51 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_ARCH_LEDS is not set
# CONFIG_NSH_DISABLE_IFCONFIG is not set
# CONFIG_NSH_DISABLE_PS is not set
# CONFIG_STM32H7_USE_LEGACY_PINMAP is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="stm32h745i-disco"
CONFIG_ARCH_BOARD_STM32H745I_DISCO=y
CONFIG_ARCH_CHIP="stm32h7"
CONFIG_ARCH_CHIP_STM32H745XI=y
CONFIG_ARCH_CHIP_STM32H7=y
CONFIG_ARCH_CHIP_STM32H7_CORTEXM4=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_BOARD_LOOPSPERMSEC=43103
CONFIG_BUILTIN=y
CONFIG_DEBUG_FEATURES=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEV_SIMPLE_ADDRENV=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_PROMPT_STRING="nsh-cm4> "
CONFIG_NSH_READLINE=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_RAM_SIZE=245760
CONFIG_RAM_START=0x10000000
CONFIG_RAW_BINARY=y
CONFIG_RPMSG_PING=y
CONFIG_RPMSG_UART=y
CONFIG_RPMSG_UART_CONSOLE=y
CONFIG_RPTUN=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_STM32H7_FMC=y
CONFIG_STM32H7_PWR_DIRECT_SMPS_SUPPLY=y
CONFIG_SYSTEM_NSH=y
CONFIG_TASK_NAME_SIZE=0

View File

@ -0,0 +1,59 @@
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_NSH_DISABLE_IFCONFIG is not set
# CONFIG_NSH_DISABLE_PS is not set
# CONFIG_STANDARD_SERIAL is not set
# CONFIG_STM32H7_USE_LEGACY_PINMAP is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD="stm32h745i-disco"
CONFIG_ARCH_BOARD_STM32H745I_DISCO=y
CONFIG_ARCH_CHIP="stm32h7"
CONFIG_ARCH_CHIP_STM32H745XI=y
CONFIG_ARCH_CHIP_STM32H7=y
CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y
CONFIG_ARCH_STACKDUMP=y
CONFIG_ARMV7M_DCACHE=y
CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y
CONFIG_ARMV7M_DTCM=y
CONFIG_ARMV7M_ICACHE=y
CONFIG_ARM_MPU_NREGIONS=8
CONFIG_BOARD_LOOPSPERMSEC=43103
CONFIG_BUILTIN=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEV_SIMPLE_ADDRENV=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_MM_REGIONS=4
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_LINELEN=64
CONFIG_NSH_PROMPT_STRING="nsh-cm7> "
CONFIG_NSH_READLINE=y
CONFIG_OPENAMP_CACHE=y
CONFIG_PREALLOC_TIMERS=4
CONFIG_RAM_SIZE=245760
CONFIG_RAM_START=0x20010000
CONFIG_RAW_BINARY=y
CONFIG_RPMSG_PING=y
CONFIG_RPMSG_UART=y
CONFIG_RPTUN=y
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
CONFIG_STM32H7_FMC=y
CONFIG_STM32H7_PWR_DIRECT_SMPS_SUPPLY=y
CONFIG_STM32H7_USART3=y
CONFIG_SYSTEM_CUTERM=y
CONFIG_SYSTEM_NSH=y
CONFIG_TASK_NAME_SIZE=0
CONFIG_USART3_SERIAL_CONSOLE=y

View File

@ -190,12 +190,14 @@ SECTIONS
_ebss = ABSOLUTE(.);
} > sram
#ifdef CONFIG_STM32H7_CORTEXM4_ENABLED
.shmem :
{
. = ALIGN(4);
*(.shmem);
KEEP(*(.shmem))
} > shmem
#endif
/* Emit the the D3 power domain section for locating BDMA data
*

View File

@ -41,6 +41,14 @@
# include <nuttx/video/fb.h>
#endif
#ifdef CONFIG_RPTUN
# include "stm32_rptun.h"
#endif
#ifdef CONFIG_RPMSG_UART
# include <nuttx/serial/uart_rpmsg.h>
#endif
#include "stm32_gpio.h"
#include "stm32h745i_disco.h"
@ -75,6 +83,27 @@ static void convert_lcd_rgb565(void)
* Public Functions
****************************************************************************/
#ifdef CONFIG_RPMSG_UART
/****************************************************************************
* Name: rpmsg_serialinit
****************************************************************************/
void rpmsg_serialinit(void)
{
#ifdef CONFIG_ARCH_CHIP_STM32H7_CORTEXM7
uart_rpmsg_init("cm4", "proxy", 4096, false);
#endif
#ifdef CONFIG_ARCH_CHIP_STM32H7_CORTEXM4
# ifdef CONFIG_RPMSG_UART_CONSOLE
uart_rpmsg_init("cm7", "proxy", 4096, true);
# else
uart_rpmsg_init("cm7", "proxy", 4096, false);
# endif
#endif
}
#endif
/****************************************************************************
* Name: stm32_bringup
*
@ -112,6 +141,14 @@ int stm32_bringup(void)
}
#endif /* CONFIG_FS_PROCFS */
#ifdef CONFIG_RPTUN
# ifdef CONFIG_ARCH_CHIP_STM32H7_CORTEXM7
stm32_rptun_init("cm4");
# else
stm32_rptun_init("cm7");
# endif
#endif
#ifdef CONFIG_INPUT_FT5X06
/* Initialize the touchscreen.
* WARNING: stm32_tsc_setup() cannot be called from the IDLE thread.