mbed-os/storage/cfstore/source/cfstore_uvisor.h

122 lines
5.1 KiB
C

/*
* Copyright (c) 2013-2016, ARM Limited, All Rights Reserved
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef __CFSTORE_UVISOR_H__
#define __CFSTORE_UVISOR_H__
/* target specifc ACLs */
#if defined(TARGET_LIKE_FRDM_K64F)
#define CFSTORE_UVISOR_LED_ON false
#define CFSTORE_UVISOR_LED_OFF true
#define CFSTORE_UVISOR_MAIN_LED LED_BLUE
#define CFSTORE_UVISOR_MAIN_BTN SW2
#define CFSTORE_UVISOR_MAIN_BTN_PUPD PullUp
#define CFSTORE_UVISOR_MAIN_ACL(acl_list_name) \
static const UvisorBoxAclItem acl_list_name[] = { \
{MCG, sizeof(*MCG), UVISOR_TACLDEF_PERIPH}, \
{SIM, sizeof(*SIM), UVISOR_TACLDEF_PERIPH}, \
{PORTB, sizeof(*PORTB), UVISOR_TACLDEF_PERIPH}, \
{PORTC, sizeof(*PORTC), UVISOR_TACLDEF_PERIPH}, \
{RTC, sizeof(*RTC), UVISOR_TACLDEF_PERIPH}, \
{LPTMR0, sizeof(*LPTMR0), UVISOR_TACLDEF_PERIPH}, \
{PIT, sizeof(*PIT), UVISOR_TACLDEF_PERIPH}, \
{SMC, sizeof(*SMC), UVISOR_TACLDEF_PERIPH}, \
{UART0, sizeof(*UART0), UVISOR_TACLDEF_PERIPH}, \
}
#elif defined(TARGET_LIKE_STM32F429I_DISCO)
#define CFSTORE_UVISOR_LED_ON false
#define CFSTORE_UVISOR_LED_OFF true
#define CFSTORE_UVISOR_MAIN_LED LED1
#define CFSTORE_UVISOR_MAIN_BTN USER_BUTTON
#define CFSTORE_UVISOR_MAIN_BTN_PUPD PullDown
#define CFSTORE_UVISOR_MAIN_ACL(acl_list_name) \
static const UvisorBoxAclItem acl_list_name[] = { \
{TIM2, sizeof(*TIM2), UVISOR_TACLDEF_PERIPH}, \
{TIM5, sizeof(*TIM5), UVISOR_TACLDEF_PERIPH}, \
{GPIOA, sizeof(*GPIOA), UVISOR_TACLDEF_PERIPH}, \
{GPIOG, sizeof(*GPIOG), UVISOR_TACLDEF_PERIPH}, \
/* FIXME: secure RCC/EXTI/SYSCFG/FLASH */ \
{RCC, sizeof(*RCC), UVISOR_TACLDEF_PERIPH}, \
{EXTI, sizeof(*EXTI), UVISOR_TACLDEF_PERIPH}, \
{SYSCFG, sizeof(*SYSCFG), UVISOR_TACLDEF_PERIPH}, \
{FLASH, sizeof(*FLASH), UVISOR_TACLDEF_PERIPH}, \
{PWR, sizeof(*PWR), UVISOR_TACLDEF_PERIPH}, \
{USART1, sizeof(*USART1), UVISOR_TACLDEF_PERIPH}, \
{(void *) 0x42470000, 0x1000, UVISOR_TACLDEF_PERIPH}, \
}
#elif defined(TARGET_LIKE_EFM32GG_STK) \
|| defined(TARGET_LIKE_EFM32LG_STK) \
|| defined(TARGET_LIKE_EFM32WG_STK)
#define CFSTORE_UVISOR_LED_ON false
#define CFSTORE_UVISOR_LED_OFF true
#define CFSTORE_UVISOR_MAIN_LED LED1
#define CFSTORE_UVISOR_MAIN_BTN BTN0
#define CFSTORE_UVISOR_MAIN_BTN_PUPD PullUp
#define CFSTORE_UVISOR_MAIN_ACL(acl_list_name) \
static const UvisorBoxAclItem acl_list_name[] = { \
{GPIO, sizeof(*GPIO), UVISOR_TACLDEF_PERIPH}, \
{UART0, sizeof(*UART0), UVISOR_TACLDEF_PERIPH}, \
{TIMER0, sizeof(*TIMER0), UVISOR_TACLDEF_PERIPH}, \
/* FIXME: Secure CMU */ \
{CMU, sizeof(*CMU), UVISOR_TACLDEF_PERIPH}, \
{RTC, sizeof(*RTC), UVISOR_TACLDEF_PERIPH}, \
/* FIXME: Secure MSC */ \
{MSC, sizeof(*MSC), UVISOR_TACLDEF_PERIPH}, \
/* mbed-hal-silabs requires the DI page to be readable */ \
{(void*) 0x0FE08000, 0x1000, UVISOR_TACLDEF_SECURE_CONST}, \
}
#elif defined(TARGET_LIKE_EFM32PG_STK)
#define CFSTORE_UVISOR_LED_ON false
#define CFSTORE_UVISOR_LED_OFF true
#define CFSTORE_UVISOR_MAIN_LED LED1
#define CFSTORE_UVISOR_MAIN_BTN BTN0
#define CFSTORE_UVISOR_MAIN_BTN_PUPD PullUp
#define CFSTORE_UVISOR_MAIN_ACL(acl_list_name) \
static const UvisorBoxAclItem acl_list_name[] = { \
{GPIO, sizeof(*GPIO), UVISOR_TACLDEF_PERIPH}, \
{USART0, sizeof(*USART0), UVISOR_TACLDEF_PERIPH}, \
{TIMER0, sizeof(*TIMER0), UVISOR_TACLDEF_PERIPH}, \
/* FIXME: Secure CMU */ \
{CMU, sizeof(*CMU), UVISOR_TACLDEF_PERIPH}, \
{EMU, sizeof(*EMU), UVISOR_TACLDEF_PERIPH}, \
{RTCC, sizeof(*RTCC), UVISOR_TACLDEF_PERIPH}, \
/* FIXME: Secure MSC */ \
{MSC, sizeof(*MSC), UVISOR_TACLDEF_PERIPH}, \
/* mbed-hal-silabs requires the DI page to be readable */ \
{(void*) 0x0FE08000, 0x1000, UVISOR_TACLDEF_SECURE_CONST}, \
}
#else
#define CFSTORE_UVISOR_LED_ON true
#define CFSTORE_UVISOR_LED_OFF false
#define CFSTORE_UVISOR_MAIN_LED NC
#define CFSTORE_UVISOR_MAIN_BTN NC
#define CFSTORE_UVISOR_MAIN_BTN_PUPD PullNone
#define CFSTORE_UVISOR_MAIN_ACL(acl_list_name) \
static const UvisorBoxAclItem acl_list_name[] = {}
#endif
#endif