123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- /**
- ******************************************************************************
- * @file openamp_conf.h
- * @author MCD Application Team
- * @brief Configuration file for OpenAMP MW
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __OPENAMP_CONF__H__
- #define __OPENAMP_CONF__H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #if defined (__LOG_TRACE_IO_) || defined(__LOG_UART_IO_)
- #include "openamp_log.h"
- #endif
- /* ########################## Mailbox Interface Selection ############################## */
- /**
- * @brief This is the list of Mailbox interface to be used in the OpenAMP MW
- * Please note that not all interfaces are supported by a STM32 device
- */
- #define MAILBOX_IPCC_IF_ENABLED
- //#define MAILBOX_HSEM_IF_ENABLED
- /* Includes ------------------------------------------------------------------*/
- /**
- * @brief Include Maibox interface header file
- */
- #ifdef MAILBOX_IPCC_IF_ENABLED
- #include "mbox_ipcc.h"
- #endif /* MAILBOX_IPCC_IF_ENABLED */
- #ifdef MAILBOX_HSEM_IF_ENABLED
- #include "mbox_hsem.h"
- #endif /* MAILBOX_HSEM_IF_ENABLED */
- /* ########################## Virtual Diver Module Selection ############################## */
- /**
- * @brief This is the list of modules to be used in the OpenAMP Virtual driver module
- * Please note that virtual driver are not supported on all stm32 families
- */
- //#define VIRTUAL_UART_MODULE_ENABLED
- //#define VIRTUAL_I2C_MODULE_ENABLED
- /* Includes ------------------------------------------------------------------*/
- /**
- * @brief Include Virtual Driver module's header file
- */
- #ifdef VIRTUAL_UART_MODULE_ENABLED
- #include "virt_uart.h"
- #endif /* VIRTUAL_UART_MODULE_ENABLED */
- #ifdef VIRTUAL_I2C_MODULE_ENABLED
- #include "virt_i2c.h"
- #endif /* VIRTUAL_I2C_MODULE_ENABLED */
- /* ########################## Linux Master Selection ############################## */
- /**
- * @brief Due to Linux compatibility, it's important to distinguish if the MASTER is Linux or not.
- * In that case, the LINUX_RPROC_MASTER define is required
- */
- #define LINUX_RPROC_MASTER
- /* USER CODE BEGIN INCLUDE */
- /* USER CODE END INCLUDE */
- /** @addtogroup OPENAMP_MW
- * @{
- */
- /** @defgroup OPENAMP_CONF OPENAMP_CONF
- * @brief Configuration file for Openamp mw
- * @{
- */
- /** @defgroup OPENAMP_CONF_Exported_Variables OPENAMP_CONF_Exported_Variables
- * @brief Public variables.
- * @{
- */
- /**
- * @}
- */
- /** @defgroup OPENAMP_CONF_Exported_Defines OPENAMP_CONF_Exported_Defines
- * @brief Defines for configuration of the Openamp mw
- * @{
- */
- #if defined (__ICCARM__)
- /*
- * For IAR, the .icf file should contain the following lines:
- * define symbol __OPENAMP_region_start__ = BASE_ADDRESS; (0x38000400 for example)
- * define symbol __OPENAMP_region_size__ = MEM_SIZE; (0xB000 as example)
- *
- * export symbol __OPENAMP_region_start__;
- * export symbol __OPENAMP_region_size__;
- */
- extern const uint32_t __OPENAMP_region_start__;
- extern const uint8_t __OPENAMP_region_size__;
- #define SHM_START_ADDRESS ((metal_phys_addr_t)&__OPENAMP_region_start__)
- #define SHM_SIZE ((size_t)&__OPENAMP_region_size__)
- #elif defined(__CC_ARM)
- /*
- * For MDK-ARM, the scatter file .sct should contain the following line:
- * LR_IROM1 .... {
- * ...
- * __OpenAMP_SHMEM__ 0x38000400 EMPTY 0x0000B000 {} ; Shared Memory area used by OpenAMP
- * }
- *
- */
- extern unsigned int Image$$__OpenAMP_SHMEM__$$Base;
- extern unsigned int Image$$__OpenAMP_SHMEM__$$ZI$$Length;
- #define SHM_START_ADDRESS (unsigned int)&Image$$__OpenAMP_SHMEM__$$Base
- #define SHM_SIZE ((size_t)&Image$$__OpenAMP_SHMEM__$$ZI$$Length)
- #else
- /*
- * for GCC add the following content to the .ld file:
- * MEMORY
- * {
- * ...
- * OPEN_AMP_SHMEM (xrw) : ORIGIN = 0x38000400, LENGTH = 63K
- * }
- * __OPENAMP_region_start__ = ORIGIN(OPEN_AMP_SHMEM);
- * __OPENAMP_region_end__ = ORIGIN(OPEN_AMP_SHMEM) + LENGTH(OPEN_AMP_SHMEM);
- *
- * using the LENGTH(OPEN_AMP_SHMEM) to set the SHM_SIZE lead to a crash thus we
- * use the start and end address.
- */
- extern int __OPENAMP_region_start__[]; /* defined by linker script */
- extern int __OPENAMP_region_end__[]; /* defined by linker script */
- #define SHM_START_ADDRESS ((metal_phys_addr_t)__OPENAMP_region_start__)
- #define SHM_SIZE (size_t)((void *)__OPENAMP_region_end__ - (void *) __OPENAMP_region_start__)
- #endif
- #if defined LINUX_RPROC_MASTER
- #define VRING_RX_ADDRESS -1 /* allocated by Master processor: CA7 */
- #define VRING_TX_ADDRESS -1 /* allocated by Master processor: CA7 */
- #define VRING_BUFF_ADDRESS -1 /* allocated by Master processor: CA7 */
- #define VRING_ALIGNMENT 16 /* fixed to match with linux constraint */
- #define VRING_NUM_BUFFS 16 /* number of rpmsg buffer */
- #else
- #define VRING_RX_ADDRESS 0x10040000 /* allocated by Master processor: CA7 */
- #define VRING_TX_ADDRESS 0x10040400 /* allocated by Master processor: CA7 */
- #define VRING_BUFF_ADDRESS 0x10040800 /* allocated by Master processor: CA7 */
- #define VRING_ALIGNMENT 16 /* fixed to match with 4k page alignement requested by linux */
- #define VRING_NUM_BUFFS 16 /* number of rpmsg buffer */
- #endif
- /* Fixed parameter */
- #define NUM_RESOURCE_ENTRIES 2
- #define VRING_COUNT 2
- #define VDEV_ID 0xFF
- #define VRING0_ID 0 /* VRING0 ID (master to remote) fixed to 0 for linux compatibility*/
- #define VRING1_ID 1 /* VRING1 ID (remote to master) fixed to 1 for linux compatibility */
- /**
- * @}
- */
- /** @defgroup OPENAMP_CONF_Exported_Macros OPENAMP_CONF_Exported_Macros
- * @brief Aliases.
- * @{
- */
- /* DEBUG macros */
- #if defined (__LOG_TRACE_IO_) || defined(__LOG_UART_IO_)
- #define OPENAMP_log_dbg log_dbg
- #define OPENAMP_log_info log_info
- #define OPENAMP_log_warn log_warn
- #define OPENAMP_log_err log_err
- #else
- #define OPENAMP_log_dbg(...)
- #define OPENAMP_log_info(...)
- #define OPENAMP_log_warn(...)
- #define OPENAMP_log_err(...)
- #endif
- /**
- * @}
- */
- /** @defgroup OPENAMP_CONF_Exported_Types OPENAMP_CONF_Exported_Types
- * @brief Types.
- * @{
- */
- /**
- * @}
- */
- /** @defgroup OPENAMP_CONF_Exported_FunctionsPrototype OPENAMP_CONF_Exported_FunctionsPrototype
- * @brief Declaration of public functions for OpenAMP mw.
- * @{
- */
- /* Exported functions -------------------------------------------------------*/
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __OPENAMP_CONF__H__ */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|