You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2024/09/15 01:56:37 UTC

(nuttx) 01/02: boards/arm/stm32h7/stm32h745i-disco: Add RPTUN support

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 46ef3f4f88747982317910ed9e840f350bb60da2
Author: Nonpawit Ekburanawat <no...@gmail.com>
AuthorDate: Fri Sep 13 21:22:50 2024 +0200

    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 <no...@gmail.com>
---
 .../configs/nsh_cm4_rptun/defconfig                | 51 +++++++++++++++++++
 .../configs/nsh_cm7_rptun/defconfig                | 59 ++++++++++++++++++++++
 .../arm/stm32h7/stm32h745i-disco/scripts/flash.ld  |  2 +
 .../stm32h7/stm32h745i-disco/src/stm32_bringup.c   | 37 ++++++++++++++
 4 files changed, 149 insertions(+)

diff --git a/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm4_rptun/defconfig b/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm4_rptun/defconfig
new file mode 100644
index 0000000000..f70cc6978b
--- /dev/null
+++ b/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm4_rptun/defconfig
@@ -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
\ No newline at end of file
diff --git a/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm7_rptun/defconfig b/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm7_rptun/defconfig
new file mode 100644
index 0000000000..ec037e23c5
--- /dev/null
+++ b/boards/arm/stm32h7/stm32h745i-disco/configs/nsh_cm7_rptun/defconfig
@@ -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
diff --git a/boards/arm/stm32h7/stm32h745i-disco/scripts/flash.ld b/boards/arm/stm32h7/stm32h745i-disco/scripts/flash.ld
index fdf76796d5..a9f188b7b7 100644
--- a/boards/arm/stm32h7/stm32h745i-disco/scripts/flash.ld
+++ b/boards/arm/stm32h7/stm32h745i-disco/scripts/flash.ld
@@ -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
      *
diff --git a/boards/arm/stm32h7/stm32h745i-disco/src/stm32_bringup.c b/boards/arm/stm32h7/stm32h745i-disco/src/stm32_bringup.c
index a4ec349953..9e633d7ca2 100644
--- a/boards/arm/stm32h7/stm32h745i-disco/src/stm32_bringup.c
+++ b/boards/arm/stm32h7/stm32h745i-disco/src/stm32_bringup.c
@@ -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.