From 9f76f7d35aba75ad256687565c4d0fc3c6d7b357 Mon Sep 17 00:00:00 2001 From: whik <1490789115@qq.com> Date: Mon, 25 Jan 2021 23:09:24 +0800 Subject: [PATCH 1/2] add support for Microchip SmartFusion2 family FPGA --- board/Microchip_M2S010/BSP/Inc/config.h | 24 + board/Microchip_M2S010/BSP/Inc/main.h | 7 + board/Microchip_M2S010/BSP/Inc/mcu_init.h | 19 + board/Microchip_M2S010/BSP/Src/board.c | 86 + board/Microchip_M2S010/BSP/Src/main.c | 26 + board/Microchip_M2S010/BSP/Src/mcu_init.c | 38 + .../BSP/sys_config/sys_config.c | 385 +++ .../BSP/sys_config/sys_config.h | 66 + .../BSP/sys_config/sys_config_mss_clocks.h | 21 + board/Microchip_M2S010/IMAGE/connect_core.jpg | Bin 0 -> 155363 bytes .../IMAGE/download_complete.jpg | Bin 0 -> 161617 bytes .../Microchip_M2S010/IMAGE/file_structure.jpg | Bin 0 -> 198013 bytes .../IMAGE/flash_algorithm.jpg | Bin 0 -> 158156 bytes .../Microchip_M2S010/IMAGE/microchip_logo.png | Bin 0 -> 28657 bytes .../IMAGE/smartfusion_block_diagram.jpg | Bin 0 -> 1030921 bytes board/Microchip_M2S010/IMAGE/top_sd.jpg | Bin 0 -> 122397 bytes board/Microchip_M2S010/IMAGE/uart_printf.jpg | Bin 0 -> 26893 bytes .../KEIL/hello_world/EventRecorderStub.scvd | 9 + .../KEIL/hello_world/JLinkSettings.ini | 39 + .../KEIL/hello_world/M2Sxxx_esram.ini | 26 + .../KEIL/hello_world/Microchip_M2S010.uvoptx | 821 +++++ .../KEIL/hello_world/Microchip_M2S010.uvprojx | 667 ++++ .../RTE/_Microchip_M2S010/RTE_Components.h | 20 + .../KEIL/hello_world/startup_m2sxxx.s | 586 ++++ board/Microchip_M2S010/README.md | 80 + .../Microchip_M2S010/TOS_CONFIG/tos_config.h | 38 + .../hal/Microchip/CortexM3/Keil/cpu_types.h | 30 + platform/hal/Microchip/CortexM3/Keil/hal.s | 32 + .../hal/Microchip/CortexM3/Keil/hw_macros.h | 96 + .../Microchip/CortexM3/Keil/hw_reg_access.s | 175 + platform/hal/Microchip/CortexM3/cortex_nvic.c | 209 ++ platform/hal/Microchip/CortexM3/cortex_nvic.h | 56 + platform/hal/Microchip/hal.h | 206 ++ platform/hal/Microchip/hal_assert.h | 34 + platform/hal/Microchip/hw_reg_access.h | 227 ++ .../Microchip/SmartFusion2/CMSIS/core_cm3.c | 810 +++++ .../Microchip/SmartFusion2/CMSIS/core_cm3.h | 1844 +++++++++++ .../Microchip/SmartFusion2/CMSIS/hw_reg_io.h | 113 + .../Microchip/SmartFusion2/CMSIS/m2sxxx.h | 2826 +++++++++++++++++ .../Microchip/SmartFusion2/CMSIS/mss_assert.h | 62 + .../CMSIS/startup_arm/low_level_init.c | 44 + .../SmartFusion2/CMSIS/startup_arm/retarget.c | 167 + .../startup_arm/smartfusion2_esram_debug.sct | 49 + .../smartfusion2_execute_in_place.sct | 48 + .../startup_arm/smartfusion2_mddr_debug.sct | 54 + .../smartfusion2_relocate_to_external_ram.sct | 74 + .../CMSIS/startup_arm/startup_m2sxxx.s | 586 ++++ .../debug-in-microsemi-smartfusion2-envm.ld | 249 ++ .../debug-in-microsemi-smartfusion2-esram.ld | 248 ++ ...-in-microsemi-smartfusion2-external-ram.ld | 238 ++ ...roduction-smartfusion2-execute-in-place.ld | 241 ++ ...n-smartfusion2-relocate-to-external-ram.ld | 260 ++ .../CMSIS/startup_gcc/startup_m2sxxx.S | 1297 ++++++++ .../SmartFusion2/CMSIS/sys_init_cfg_types.h | 212 ++ .../SmartFusion2/CMSIS/system_m2sxxx.c | 1006 ++++++ .../SmartFusion2/CMSIS/system_m2sxxx.h | 49 + .../Microchip/SmartFusion2/Inc/mss_gpio.h | 507 +++ .../Microchip/SmartFusion2/Inc/mss_uart.h | 2639 +++++++++++++++ .../SmartFusion2/Inc/mss_uart_regs.h | 83 + .../Microchip/SmartFusion2/Src/mss_gpio.c | 298 ++ .../Microchip/SmartFusion2/Src/mss_uart.c | 1762 ++++++++++ 61 files changed, 19789 insertions(+) create mode 100644 board/Microchip_M2S010/BSP/Inc/config.h create mode 100644 board/Microchip_M2S010/BSP/Inc/main.h create mode 100644 board/Microchip_M2S010/BSP/Inc/mcu_init.h create mode 100644 board/Microchip_M2S010/BSP/Src/board.c create mode 100644 board/Microchip_M2S010/BSP/Src/main.c create mode 100644 board/Microchip_M2S010/BSP/Src/mcu_init.c create mode 100644 board/Microchip_M2S010/BSP/sys_config/sys_config.c create mode 100644 board/Microchip_M2S010/BSP/sys_config/sys_config.h create mode 100644 board/Microchip_M2S010/BSP/sys_config/sys_config_mss_clocks.h create mode 100644 board/Microchip_M2S010/IMAGE/connect_core.jpg create mode 100644 board/Microchip_M2S010/IMAGE/download_complete.jpg create mode 100644 board/Microchip_M2S010/IMAGE/file_structure.jpg create mode 100644 board/Microchip_M2S010/IMAGE/flash_algorithm.jpg create mode 100644 board/Microchip_M2S010/IMAGE/microchip_logo.png create mode 100644 board/Microchip_M2S010/IMAGE/smartfusion_block_diagram.jpg create mode 100644 board/Microchip_M2S010/IMAGE/top_sd.jpg create mode 100644 board/Microchip_M2S010/IMAGE/uart_printf.jpg create mode 100644 board/Microchip_M2S010/KEIL/hello_world/EventRecorderStub.scvd create mode 100644 board/Microchip_M2S010/KEIL/hello_world/JLinkSettings.ini create mode 100644 board/Microchip_M2S010/KEIL/hello_world/M2Sxxx_esram.ini create mode 100644 board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvoptx create mode 100644 board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvprojx create mode 100644 board/Microchip_M2S010/KEIL/hello_world/RTE/_Microchip_M2S010/RTE_Components.h create mode 100644 board/Microchip_M2S010/KEIL/hello_world/startup_m2sxxx.s create mode 100644 board/Microchip_M2S010/README.md create mode 100644 board/Microchip_M2S010/TOS_CONFIG/tos_config.h create mode 100644 platform/hal/Microchip/CortexM3/Keil/cpu_types.h create mode 100644 platform/hal/Microchip/CortexM3/Keil/hal.s create mode 100644 platform/hal/Microchip/CortexM3/Keil/hw_macros.h create mode 100644 platform/hal/Microchip/CortexM3/Keil/hw_reg_access.s create mode 100644 platform/hal/Microchip/CortexM3/cortex_nvic.c create mode 100644 platform/hal/Microchip/CortexM3/cortex_nvic.h create mode 100644 platform/hal/Microchip/hal.h create mode 100644 platform/hal/Microchip/hal_assert.h create mode 100644 platform/hal/Microchip/hw_reg_access.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.c create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/hw_reg_io.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/m2sxxx.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/mss_assert.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/low_level_init.c create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/retarget.c create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_esram_debug.sct create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_execute_in_place.sct create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_mddr_debug.sct create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_relocate_to_external_ram.sct create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/startup_m2sxxx.s create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-envm.ld create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-esram.ld create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-external-ram.ld create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-execute-in-place.ld create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-relocate-to-external-ram.ld create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/startup_m2sxxx.S create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/sys_init_cfg_types.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.c create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_gpio.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart_regs.h create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_gpio.c create mode 100644 platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_uart.c diff --git a/board/Microchip_M2S010/BSP/Inc/config.h b/board/Microchip_M2S010/BSP/Inc/config.h new file mode 100644 index 00000000..fc189395 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Inc/config.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-06 whik first version + */ +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + +#include "mss_gpio.h" +#include "mss_uart.h" + +#include +#include + +void sw0_isr(void *args); +void sw1_isr(void *args); +void boardInit(void); +void sayHello(void); + +#endif diff --git a/board/Microchip_M2S010/BSP/Inc/main.h b/board/Microchip_M2S010/BSP/Inc/main.h new file mode 100644 index 00000000..1d4e7c17 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Inc/main.h @@ -0,0 +1,7 @@ +#ifndef _MAIN_H_ +#define _MAIN_H_ + +#include "mcu_init.h" +#include "cmsis_os.h" + +#endif /* _MAIN_H_ */ diff --git a/board/Microchip_M2S010/BSP/Inc/mcu_init.h b/board/Microchip_M2S010/BSP/Inc/mcu_init.h new file mode 100644 index 00000000..ae846b73 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Inc/mcu_init.h @@ -0,0 +1,19 @@ +#ifndef _MCU_INIT_H_ +#define _MCU_INIT_H_ + +#include "m2sxxx.h" +#include "system_m2sxxx.h" + +#include "mss_uart.h" +#include "mss_gpio.h" + +#include "tos_k.h" +#include "tos_sys.h" + +void board_init(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _MCU_INIT_H_ */ diff --git a/board/Microchip_M2S010/BSP/Src/board.c b/board/Microchip_M2S010/BSP/Src/board.c new file mode 100644 index 00000000..a024a8b1 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Src/board.c @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-08-06 whik first version + */ + +#include +#include +#include + +#define _SCB_BASE (0xE000E010UL) +#define _SYSTICK_CTRL (*(rt_uint32_t *)(_SCB_BASE + 0x0)) +#define _SYSTICK_LOAD (*(rt_uint32_t *)(_SCB_BASE + 0x4)) +#define _SYSTICK_VAL (*(rt_uint32_t *)(_SCB_BASE + 0x8)) +#define _SYSTICK_CALIB (*(rt_uint32_t *)(_SCB_BASE + 0xC)) +#define _SYSTICK_PRI (*(rt_uint8_t *)(0xE000ED23UL)) + +extern void SystemCoreClockUpdate(void); +extern uint32_t SystemCoreClock; + +static uint32_t _SysTick_Config(rt_uint32_t ticks) +{ + if ((ticks - 1) > 0xFFFFFF) + { + return 1; + } + + _SYSTICK_LOAD = ticks - 1; + _SYSTICK_PRI = 0xFF; + _SYSTICK_VAL = 0; + _SYSTICK_CTRL = 0x07; + + return 0; +} + +#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) +#define RT_HEAP_SIZE 1024 +static uint32_t rt_heap[RT_HEAP_SIZE]; // heap default size: 4K(1024 * 4) +RT_WEAK void *rt_heap_begin_get(void) +{ + return rt_heap; +} + +RT_WEAK void *rt_heap_end_get(void) +{ + return rt_heap + RT_HEAP_SIZE; +} +#endif + +/* This function will initial your board. */ +void rt_hw_board_init() +{ + /* System Clock Update */ + SystemCoreClockUpdate(); + + /* System Tick Configuration */ + _SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); + + /* Call components board initial (use INIT_BOARD_EXPORT()) */ +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif + +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif + +#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) + rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); +#endif +} + +void SysTick_Handler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + rt_tick_increase(); + + /* leave interrupt */ + rt_interrupt_leave(); +} diff --git a/board/Microchip_M2S010/BSP/Src/main.c b/board/Microchip_M2S010/BSP/Src/main.c new file mode 100644 index 00000000..5a748e92 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Src/main.c @@ -0,0 +1,26 @@ +#include "main.h" + +#define APPLICATION_TASK_STK_SIZE 1024 +extern void application_entry(void *arg); + +osThreadDef(application_entry, osPriorityNormal, 1, APPLICATION_TASK_STK_SIZE); + +__weak void application_entry(void *arg) +{ + while (1) { + printf("This is a demo task,please use your task entry!\r\n"); + tos_task_delay(1000); + } +} + +int main(void) +{ + /* peripheral initial*/ + board_init(); + + printf("Hello TencentOS-tiny! By Microchip SmartFusion2 Family FPGA¡ª¡ªM2S010.\r\n"); + + osKernelInitialize(); // TOS Tiny kernel initialize + osThreadCreate(osThread(application_entry), NULL); // Create TOS Tiny task + osKernelStart(); // Start TOS Tiny +} diff --git a/board/Microchip_M2S010/BSP/Src/mcu_init.c b/board/Microchip_M2S010/BSP/Src/mcu_init.c new file mode 100644 index 00000000..8cb11f23 --- /dev/null +++ b/board/Microchip_M2S010/BSP/Src/mcu_init.c @@ -0,0 +1,38 @@ +#include "mcu_init.h" + +mss_uart_instance_t * const gp_my_uart = &g_mss_uart0; + +void board_init(void) +{ + /* disable watchdog */ + SYSREG->WDOG_CR = 0; + + /* update system core clock */ + SystemCoreClockUpdate(); + + /* mss gpio config */ + MSS_GPIO_init(); + MSS_GPIO_config(MSS_GPIO_0, MSS_GPIO_OUTPUT_MODE); + MSS_GPIO_config(MSS_GPIO_1, MSS_GPIO_OUTPUT_MODE); + + /* set gpio output */ + MSS_GPIO_set_output(MSS_GPIO_0, 1); + MSS_GPIO_set_output(MSS_GPIO_1, 0); + + /* mss uart initial: 115200, 8, no, 1 */ + MSS_UART_init(gp_my_uart, + MSS_UART_115200_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + printf("SystemCoreClock Frequency: %.2f MHz\r\n", SystemCoreClock/1000000.0); +} + +void SysTick_Handler(void) +{ + if (tos_knl_is_running()) + { + tos_knl_irq_enter(); + tos_tick_handler(); + tos_knl_irq_leave(); + } +} diff --git a/board/Microchip_M2S010/BSP/sys_config/sys_config.c b/board/Microchip_M2S010/BSP/sys_config/sys_config.c new file mode 100644 index 00000000..b7d72fe0 --- /dev/null +++ b/board/Microchip_M2S010/BSP/sys_config/sys_config.c @@ -0,0 +1,385 @@ +/******************************************************************************* + * (c) Copyright 2012 Microsemi SoC Products Group. All rights reserved. + * + * Smartfusion2 system configuration. This file is automatically generated + * by the Libero tools. It contains the Smartfusion2 system configuration that + * was selected during the hardware configuration flow. + * + */ + +#include "../../CMSIS/m2sxxx.h" +#include "../../CMSIS/sys_init_cfg_types.h" +#include "sys_config.h" + +/*============================================================================== + * !!! WARNING !!! + *============================================================================== + * The project including this file must be linked so that the content of this + * file is located in internal eNVM at run time. The content of this file is + * used to configure the system prior to RAM content initialization. This means + * that the content of the data structures below will be used before the copy + * from LMA to VMA takes place. The LMA and VMA locations of the content of this + * file must be identical for the system to be seamlessly configured as part of + * the CMSIS boot process. + */ + +/*============================================================================== + * Clock configuration + */ +/* No configuration data structure required. */ + +/*============================================================================== + * Memory remapping configuration + */ +/* TBD. */ + +/*============================================================================== + * MDDR configuration + */ +#if MSS_SYS_MDDR_CONFIG_BY_CORTEX + +#include "sys_config_mddr_define.h" + +MDDR_TypeDef * const g_m2s_mddr_addr = (MDDR_TypeDef *)0x40020800; + +const ddr_subsys_cfg_t g_m2s_mddr_subsys_config = +{ + /*--------------------------------------------------------------------- + * DDR Controller registers. + * All registers are 16-bit wide unless mentioned beside the definition. + */ + { + MDDR_DDRC_DYN_SOFT_RESET_CR, + MDDR_DDRC_RESERVED0, + MDDR_DDRC_DYN_REFRESH_1_CR, + MDDR_DDRC_DYN_REFRESH_2_CR, + MDDR_DDRC_DYN_POWERDOWN_CR, + MDDR_DDRC_DYN_DEBUG_CR, + MDDR_DDRC_MODE_CR, + MDDR_DDRC_ADDR_MAP_BANK_CR, + MDDR_DDRC_ECC_DATA_MASK_CR, + MDDR_DDRC_ADDR_MAP_COL_1_CR, + MDDR_DDRC_ADDR_MAP_COL_2_CR, + MDDR_DDRC_ADDR_MAP_ROW_1_CR, + MDDR_DDRC_ADDR_MAP_ROW_2_CR, + MDDR_DDRC_INIT_1_CR, + MDDR_DDRC_CKE_RSTN_CYCLES_1_CR, + MDDR_DDRC_CKE_RSTN_CYCLES_2_CR, + MDDR_DDRC_INIT_MR_CR, + MDDR_DDRC_INIT_EMR_CR, + MDDR_DDRC_INIT_EMR2_CR, + MDDR_DDRC_INIT_EMR3_CR, + MDDR_DDRC_DRAM_BANK_TIMING_PARAM_CR, + MDDR_DDRC_DRAM_RD_WR_LATENCY_CR, + MDDR_DDRC_DRAM_RD_WR_PRE_CR, + MDDR_DDRC_DRAM_MR_TIMING_PARAM_CR, + MDDR_DDRC_DRAM_RAS_TIMING_CR, + MDDR_DDRC_DRAM_RD_WR_TRNARND_TIME_CR, + MDDR_DDRC_DRAM_T_PD_CR, + MDDR_DDRC_DRAM_BANK_ACT_TIMING_CR, + MDDR_DDRC_ODT_PARAM_1_CR, + MDDR_DDRC_ODT_PARAM_2_CR, + MDDR_DDRC_ADDR_MAP_COL_3_CR, + MDDR_DDRC_MODE_REG_RD_WR_CR, + MDDR_DDRC_MODE_REG_DATA_CR, + MDDR_DDRC_PWR_SAVE_1_CR, + MDDR_DDRC_PWR_SAVE_2_CR, + MDDR_DDRC_ZQ_LONG_TIME_CR, + MDDR_DDRC_ZQ_SHORT_TIME_CR, + MDDR_DDRC_ZQ_SHORT_INT_REFRESH_MARGIN_1_CR, + MDDR_DDRC_ZQ_SHORT_INT_REFRESH_MARGIN_2_CR, + MDDR_DDRC_PERF_PARAM_1_CR, + MDDR_DDRC_HPR_QUEUE_PARAM_1_CR, + MDDR_DDRC_HPR_QUEUE_PARAM_2_CR, + MDDR_DDRC_LPR_QUEUE_PARAM_1_CR, + MDDR_DDRC_LPR_QUEUE_PARAM_2_CR, + MDDR_DDRC_WR_QUEUE_PARAM_CR, + MDDR_DDRC_PERF_PARAM_2_CR, + MDDR_DDRC_PERF_PARAM_3_CR, + MDDR_DDRC_DFI_RDDATA_EN_CR, + MDDR_DDRC_DFI_MIN_CTRLUPD_TIMING_CR, + MDDR_DDRC_DFI_MAX_CTRLUPD_TIMING_CR, + MDDR_DDRC_DFI_WR_LVL_CONTROL_1_CR, + MDDR_DDRC_DFI_WR_LVL_CONTROL_2_CR, + MDDR_DDRC_DFI_RD_LVL_CONTROL_1_CR, + MDDR_DDRC_DFI_RD_LVL_CONTROL_2_CR, + MDDR_DDRC_DFI_CTRLUPD_TIME_INTERVAL_CR, + MDDR_DDRC_DYN_SOFT_RESET_ALIAS_CR, + MDDR_DDRC_AXI_FABRIC_PRI_ID_CR, + }, + + /*--------------------------------------------------------------------- + * DDR PHY configuration registers + */ + { + MDDR_PHY_LOOPBACK_TEST_CR, + MDDR_PHY_BOARD_LOOPBACK_CR, + MDDR_PHY_CTRL_SLAVE_RATIO_CR, + MDDR_PHY_CTRL_SLAVE_FORCE_CR, + MDDR_PHY_CTRL_SLAVE_DELAY_CR, + MDDR_PHY_DATA_SLICE_IN_USE_CR, + MDDR_PHY_LVL_NUM_OF_DQ0_CR, + MDDR_PHY_DQ_OFFSET_1_CR, + MDDR_PHY_DQ_OFFSET_2_CR, + MDDR_PHY_DQ_OFFSET_3_CR, + MDDR_PHY_DIS_CALIB_RST_CR, + MDDR_PHY_DLL_LOCK_DIFF_CR, + MDDR_PHY_FIFO_WE_IN_DELAY_1_CR, + MDDR_PHY_FIFO_WE_IN_DELAY_2_CR, + MDDR_PHY_FIFO_WE_IN_DELAY_3_CR, + MDDR_PHY_FIFO_WE_IN_FORCE_CR, + MDDR_PHY_FIFO_WE_SLAVE_RATIO_1_CR, + MDDR_PHY_FIFO_WE_SLAVE_RATIO_2_CR, + MDDR_PHY_FIFO_WE_SLAVE_RATIO_3_CR, + MDDR_PHY_FIFO_WE_SLAVE_RATIO_4_CR, + MDDR_PHY_GATELVL_INIT_MODE_CR, + MDDR_PHY_GATELVL_INIT_RATIO_1_CR, + MDDR_PHY_GATELVL_INIT_RATIO_2_CR, + MDDR_PHY_GATELVL_INIT_RATIO_3_CR, + MDDR_PHY_GATELVL_INIT_RATIO_4_CR, + MDDR_PHY_LOCAL_ODT_CR, + MDDR_PHY_INVERT_CLKOUT_CR, + MDDR_PHY_RD_DQS_SLAVE_DELAY_1_CR, + MDDR_PHY_RD_DQS_SLAVE_DELAY_2_CR, + MDDR_PHY_RD_DQS_SLAVE_DELAY_3_CR, + MDDR_PHY_RD_DQS_SLAVE_FORCE_CR, + MDDR_PHY_RD_DQS_SLAVE_RATIO_1_CR, + MDDR_PHY_RD_DQS_SLAVE_RATIO_2_CR, + MDDR_PHY_RD_DQS_SLAVE_RATIO_3_CR, + MDDR_PHY_RD_DQS_SLAVE_RATIO_4_CR, + MDDR_PHY_WR_DQS_SLAVE_DELAY_1_CR, + MDDR_PHY_WR_DQS_SLAVE_DELAY_2_CR, + MDDR_PHY_WR_DQS_SLAVE_DELAY_3_CR, + MDDR_PHY_WR_DQS_SLAVE_FORCE_CR, + MDDR_PHY_WR_DQS_SLAVE_RATIO_1_CR, + MDDR_PHY_WR_DQS_SLAVE_RATIO_2_CR, + MDDR_PHY_WR_DQS_SLAVE_RATIO_3_CR, + MDDR_PHY_WR_DQS_SLAVE_RATIO_4_CR, + MDDR_PHY_WR_DATA_SLAVE_DELAY_1_CR, + MDDR_PHY_WR_DATA_SLAVE_DELAY_2_CR, + MDDR_PHY_WR_DATA_SLAVE_DELAY_3_CR, + MDDR_PHY_WR_DATA_SLAVE_FORCE_CR, + MDDR_PHY_WR_DATA_SLAVE_RATIO_1_CR, + MDDR_PHY_WR_DATA_SLAVE_RATIO_2_CR, + MDDR_PHY_WR_DATA_SLAVE_RATIO_3_CR, + MDDR_PHY_WR_DATA_SLAVE_RATIO_4_CR, + MDDR_PHY_WRLVL_INIT_MODE_CR, + MDDR_PHY_WRLVL_INIT_RATIO_1_CR, + MDDR_PHY_WRLVL_INIT_RATIO_2_CR, + MDDR_PHY_WRLVL_INIT_RATIO_3_CR, + MDDR_PHY_WRLVL_INIT_RATIO_4_CR, + MDDR_PHY_WR_RD_RL_CR, + MDDR_PHY_RDC_FIFO_RST_ERR_CNT_CLR_CR, + MDDR_PHY_RDC_WE_TO_RE_DELAY_CR, + MDDR_PHY_USE_FIXED_RE_CR, + MDDR_PHY_USE_RANK0_DELAYS_CR, + MDDR_PHY_USE_LVL_TRNG_LEVEL_CR, + MDDR_PHY_DYN_CONFIG_CR, + MDDR_PHY_RD_WR_GATE_LVL_CR, + MDDR_PHY_DYN_RESET_CR + }, + + /*--------------------------------------------------------------------- + * FIC-64 registers + * These registers are 16-bit wide and 32-bit aligned. + */ + { + MDDR_DDR_FIC_NB_ADDR_CR, + MDDR_DDR_FIC_NBRWB_SIZE_CR, + MDDR_DDR_FIC_WB_TIMEOUT_CR, + MDDR_DDR_FIC_HPD_SW_RW_EN_CR, + MDDR_DDR_FIC_HPD_SW_RW_INVAL_CR, + MDDR_DDR_FIC_SW_WR_ERCLR_CR, + MDDR_DDR_FIC_ERR_INT_ENABLE_CR, + MDDR_DDR_FIC_NUM_AHB_MASTERS_CR, + MDDR_DDR_FIC_LOCK_TIMEOUTVAL_1_CR, + MDDR_DDR_FIC_LOCK_TIMEOUTVAL_2_CR, + MDDR_DDR_FIC_LOCK_TIMEOUT_EN_CR + } +}; + +#endif + +/*============================================================================== + * FDDR configuration + */ +#if MSS_SYS_FDDR_CONFIG_BY_CORTEX + +#include "sys_config_fddr_define.h" + +FDDR_TypeDef * const g_m2s_fddr_addr = (FDDR_TypeDef *)0x40021000; + +const fddr_sysreg_t g_m2s_fddr_sysreg_subsys_config = +{ + 0x0001u, /* PLL_CONFIG_LOW_1 */ + 0x0002u, /* PLL_CONFIG_LOW_2 */ + 0x0003u, /* PLL_CONFIG_HIGH */ + 0x0004u, /* FACC_CLK_EN */ + 0x0005u, /* FACC_MUX_CONFIG */ + 0x0006u, /* FACC_DIVISOR_RATIO */ + 0x0007u, /* PLL_DELAY_LINE_SEL */ + 0x0008u, /* SOFT_RESET */ + 0x0009u, /* IO_CALIB */ + 0x000Au, /* INTERRUPT_ENABLE */ + 0x000Bu, /* AXI_AHB_MODE_SEL */ + 0x000Cu /* PHY_SELF_REF_EN */ +}; + +const ddr_subsys_cfg_t g_m2s_fddr_subsys_config = +{ + /*--------------------------------------------------------------------- + * DDR Controller registers. + * All registers are 16-bit wide unless mentioned beside the definition. + */ + { + FDDR_DDRC_DYN_SOFT_RESET_CR, + FDDR_DDRC_RESERVED0, + FDDR_DDRC_DYN_REFRESH_1_CR, + FDDR_DDRC_DYN_REFRESH_2_CR, + FDDR_DDRC_DYN_POWERDOWN_CR, + FDDR_DDRC_DYN_DEBUG_CR, + FDDR_DDRC_MODE_CR, + FDDR_DDRC_ADDR_MAP_BANK_CR, + FDDR_DDRC_ECC_DATA_MASK_CR, + FDDR_DDRC_ADDR_MAP_COL_1_CR, + FDDR_DDRC_ADDR_MAP_COL_2_CR, + FDDR_DDRC_ADDR_MAP_ROW_1_CR, + FDDR_DDRC_ADDR_MAP_ROW_2_CR, + FDDR_DDRC_INIT_1_CR, + FDDR_DDRC_CKE_RSTN_CYCLES_1_CR, + FDDR_DDRC_CKE_RSTN_CYCLES_2_CR, + FDDR_DDRC_INIT_MR_CR, + FDDR_DDRC_INIT_EMR_CR, + FDDR_DDRC_INIT_EMR2_CR, + FDDR_DDRC_INIT_EMR3_CR, + FDDR_DDRC_DRAM_BANK_TIMING_PARAM_CR, + FDDR_DDRC_DRAM_RD_WR_LATENCY_CR, + FDDR_DDRC_DRAM_RD_WR_PRE_CR, + FDDR_DDRC_DRAM_MR_TIMING_PARAM_CR, + FDDR_DDRC_DRAM_RAS_TIMING_CR, + FDDR_DDRC_DRAM_RD_WR_TRNARND_TIME_CR, + FDDR_DDRC_DRAM_T_PD_CR, + FDDR_DDRC_DRAM_BANK_ACT_TIMING_CR, + FDDR_DDRC_ODT_PARAM_1_CR, + FDDR_DDRC_ODT_PARAM_2_CR, + FDDR_DDRC_ADDR_MAP_COL_3_CR, + FDDR_DDRC_MODE_REG_RD_WR_CR, + FDDR_DDRC_MODE_REG_DATA_CR, + FDDR_DDRC_PWR_SAVE_1_CR, + FDDR_DDRC_PWR_SAVE_2_CR, + FDDR_DDRC_ZQ_LONG_TIME_CR, + FDDR_DDRC_ZQ_SHORT_TIME_CR, + FDDR_DDRC_ZQ_SHORT_INT_REFRESH_MARGIN_1_CR, + FDDR_DDRC_ZQ_SHORT_INT_REFRESH_MARGIN_2_CR, + FDDR_DDRC_PERF_PARAM_1_CR, + FDDR_DDRC_HPR_QUEUE_PARAM_1_CR, + FDDR_DDRC_HPR_QUEUE_PARAM_2_CR, + FDDR_DDRC_LPR_QUEUE_PARAM_1_CR, + FDDR_DDRC_LPR_QUEUE_PARAM_2_CR, + FDDR_DDRC_WR_QUEUE_PARAM_CR, + FDDR_DDRC_PERF_PARAM_2_CR, + FDDR_DDRC_PERF_PARAM_3_CR, + FDDR_DDRC_DFI_RDDATA_EN_CR, + FDDR_DDRC_DFI_MIN_CTRLUPD_TIMING_CR, + FDDR_DDRC_DFI_MAX_CTRLUPD_TIMING_CR, + FDDR_DDRC_DFI_WR_LVL_CONTROL_1_CR, + FDDR_DDRC_DFI_WR_LVL_CONTROL_2_CR, + FDDR_DDRC_DFI_RD_LVL_CONTROL_1_CR, + FDDR_DDRC_DFI_RD_LVL_CONTROL_2_CR, + FDDR_DDRC_DFI_CTRLUPD_TIME_INTERVAL_CR, + FDDR_DDRC_DYN_SOFT_RESET_ALIAS_CR, + FDDR_DDRC_AXI_FABRIC_PRI_ID_CR + }, + + /*--------------------------------------------------------------------- + * DDR PHY configuration registers + */ + { + FDDR_PHY_LOOPBACK_TEST_CR, + FDDR_PHY_BOARD_LOOPBACK_CR, + FDDR_PHY_CTRL_SLAVE_RATIO_CR, + FDDR_PHY_CTRL_SLAVE_FORCE_CR, + FDDR_PHY_CTRL_SLAVE_DELAY_CR, + FDDR_PHY_DATA_SLICE_IN_USE_CR, + FDDR_PHY_LVL_NUM_OF_DQ0_CR, + FDDR_PHY_DQ_OFFSET_1_CR, + FDDR_PHY_DQ_OFFSET_2_CR, + FDDR_PHY_DQ_OFFSET_3_CR, + FDDR_PHY_DIS_CALIB_RST_CR, + FDDR_PHY_DLL_LOCK_DIFF_CR, + FDDR_PHY_FIFO_WE_IN_DELAY_1_CR, + FDDR_PHY_FIFO_WE_IN_DELAY_2_CR, + FDDR_PHY_FIFO_WE_IN_DELAY_3_CR, + FDDR_PHY_FIFO_WE_IN_FORCE_CR, + FDDR_PHY_FIFO_WE_SLAVE_RATIO_1_CR, + FDDR_PHY_FIFO_WE_SLAVE_RATIO_2_CR, + FDDR_PHY_FIFO_WE_SLAVE_RATIO_3_CR, + FDDR_PHY_FIFO_WE_SLAVE_RATIO_4_CR, + FDDR_PHY_GATELVL_INIT_MODE_CR, + FDDR_PHY_GATELVL_INIT_RATIO_1_CR, + FDDR_PHY_GATELVL_INIT_RATIO_2_CR, + FDDR_PHY_GATELVL_INIT_RATIO_3_CR, + FDDR_PHY_GATELVL_INIT_RATIO_4_CR, + FDDR_PHY_LOCAL_ODT_CR, + FDDR_PHY_INVERT_CLKOUT_CR, + FDDR_PHY_RD_DQS_SLAVE_DELAY_1_CR, + FDDR_PHY_RD_DQS_SLAVE_DELAY_2_CR, + FDDR_PHY_RD_DQS_SLAVE_DELAY_3_CR, + FDDR_PHY_RD_DQS_SLAVE_FORCE_CR, + FDDR_PHY_RD_DQS_SLAVE_RATIO_1_CR, + FDDR_PHY_RD_DQS_SLAVE_RATIO_2_CR, + FDDR_PHY_RD_DQS_SLAVE_RATIO_3_CR, + FDDR_PHY_RD_DQS_SLAVE_RATIO_4_CR, + FDDR_PHY_WR_DQS_SLAVE_DELAY_1_CR, + FDDR_PHY_WR_DQS_SLAVE_DELAY_2_CR, + FDDR_PHY_WR_DQS_SLAVE_DELAY_3_CR, + FDDR_PHY_WR_DQS_SLAVE_FORCE_CR, + FDDR_PHY_WR_DQS_SLAVE_RATIO_1_CR, + FDDR_PHY_WR_DQS_SLAVE_RATIO_2_CR, + FDDR_PHY_WR_DQS_SLAVE_RATIO_3_CR, + FDDR_PHY_WR_DQS_SLAVE_RATIO_4_CR, + FDDR_PHY_WR_DATA_SLAVE_DELAY_1_CR, + FDDR_PHY_WR_DATA_SLAVE_DELAY_2_CR, + FDDR_PHY_WR_DATA_SLAVE_DELAY_3_CR, + FDDR_PHY_WR_DATA_SLAVE_FORCE_CR, + FDDR_PHY_WR_DATA_SLAVE_RATIO_1_CR, + FDDR_PHY_WR_DATA_SLAVE_RATIO_2_CR, + FDDR_PHY_WR_DATA_SLAVE_RATIO_3_CR, + FDDR_PHY_WR_DATA_SLAVE_RATIO_4_CR, + FDDR_PHY_WRLVL_INIT_MODE_CR, + FDDR_PHY_WRLVL_INIT_RATIO_1_CR, + FDDR_PHY_WRLVL_INIT_RATIO_2_CR, + FDDR_PHY_WRLVL_INIT_RATIO_3_CR, + FDDR_PHY_WRLVL_INIT_RATIO_4_CR, + FDDR_PHY_WR_RD_RL_CR, + FDDR_PHY_RDC_FIFO_RST_ERR_CNT_CLR_CR, + FDDR_PHY_RDC_WE_TO_RE_DELAY_CR, + FDDR_PHY_USE_FIXED_RE_CR, + FDDR_PHY_USE_RANK0_DELAYS_CR, + FDDR_PHY_USE_LVL_TRNG_LEVEL_CR, + FDDR_PHY_DYN_CONFIG_CR, + FDDR_PHY_RD_WR_GATE_LVL_CR, + FDDR_PHY_DYN_RESET_CR, + }, + + /*--------------------------------------------------------------------- + * FIC-64 registers + * These registers are 16-bit wide and 32-bit aligned. + */ + { + FDDR_DDR_FIC_NB_ADDR_CR, + FDDR_DDR_FIC_NBRWB_SIZE_CR, + FDDR_DDR_FIC_WB_TIMEOUT_CR, + FDDR_DDR_FIC_HPD_SW_RW_EN_CR, + FDDR_DDR_FIC_HPD_SW_RW_INVAL_CR, + FDDR_DDR_FIC_SW_WR_ERCLR_CR, + FDDR_DDR_FIC_ERR_INT_ENABLE_CR, + FDDR_DDR_FIC_NUM_AHB_MASTERS_CR, + FDDR_DDR_FIC_LOCK_TIMEOUTVAL_1_CR, + FDDR_DDR_FIC_LOCK_TIMEOUTVAL_2_CR, + FDDR_DDR_FIC_LOCK_TIMEOUT_EN_CR + } +}; + +#endif + diff --git a/board/Microchip_M2S010/BSP/sys_config/sys_config.h b/board/Microchip_M2S010/BSP/sys_config/sys_config.h new file mode 100644 index 00000000..65c49b1d --- /dev/null +++ b/board/Microchip_M2S010/BSP/sys_config/sys_config.h @@ -0,0 +1,66 @@ +/******************************************************************************* + * (c) Copyright 2012 Microsemi SoC Products Group. All rights reserved. + * + * Smartfusion2 system configuration. This file is automatically generated + * by the Libero tools. + * + */ +#ifndef MSS_SYSTEM_CONFIGURATION +#define MSS_SYSTEM_CONFIGURATION + +/*============================================================================== + * Clock configuration + */ +#include "sys_config_mss_clocks.h" + +/*============================================================================== + * Memory remapping configuration + */ +/* TBD */ + +/*============================================================================== + * FACC_INIT (Cortex-M3 runs the FACC INIT procedure) + * Only set to 1 for design targeting the M2S050T_ES device + */ +#define MSS_SYS_FACC_INIT_BY_CORTEX 0 + +/*============================================================================== + * MDDR configuration + */ +#define MSS_SYS_MDDR_CONFIG_BY_CORTEX 0 + +/*============================================================================== + * FDDR configuration + */ +#define MSS_SYS_FDDR_CONFIG_BY_CORTEX 0 + +/*============================================================================== + * SERDES Interface configuration + */ +#define MSS_SYS_SERDES_0_CONFIG_BY_CORTEX 0 +#if MSS_SYS_SERDES_0_CONFIG_BY_CORTEX +#include "sys_config_SERDESIF_0.h" +#endif + +#define MSS_SYS_SERDES_1_CONFIG_BY_CORTEX 0 +#if MSS_SYS_SERDES_1_CONFIG_BY_CORTEX +#include "sys_config_SERDESIF_1.h" +#endif + +#define MSS_SYS_SERDES_2_CONFIG_BY_CORTEX 0 +#if MSS_SYS_SERDES_2_CONFIG_BY_CORTEX +#include "sys_config_SERDESIF_2.h" +#endif + +#define MSS_SYS_SERDES_3_CONFIG_BY_CORTEX 0 +#if MSS_SYS_SERDES_3_CONFIG_BY_CORTEX +#include "sys_config_SERDESIF_3.h" +#endif + +/*============================================================================== + * Cache configuration + */ +#define MSS_SYS_CACHE_CONFIG_BY_CORTEX 0 + +#endif /* MSS_SYSTEM_CONFIGURATION */ + diff --git a/board/Microchip_M2S010/BSP/sys_config/sys_config_mss_clocks.h b/board/Microchip_M2S010/BSP/sys_config/sys_config_mss_clocks.h new file mode 100644 index 00000000..1110c971 --- /dev/null +++ b/board/Microchip_M2S010/BSP/sys_config/sys_config_mss_clocks.h @@ -0,0 +1,21 @@ +/*=============================================================*/ +/* Created by Microsemi SmartDesign Fri May 22 15:04:18 2020 */ +/* */ +/* Warning: Do not modify this file, it may lead to unexpected */ +/* functional failures in your design. */ +/* */ +/*=============================================================*/ + +#ifndef SYS_CONFIG_MSS_CLOCKS +#define SYS_CONFIG_MSS_CLOCKS + +#define MSS_SYS_M3_CLK_FREQ 100000000u +#define MSS_SYS_MDDR_CLK_FREQ 100000000u +#define MSS_SYS_APB_0_CLK_FREQ 100000000u +#define MSS_SYS_APB_1_CLK_FREQ 100000000u +#define MSS_SYS_APB_2_CLK_FREQ 25000000u +#define MSS_SYS_FIC_0_CLK_FREQ 100000000u +#define MSS_SYS_FIC_1_CLK_FREQ 100000000u +#define MSS_SYS_FIC64_CLK_FREQ 100000000u + +#endif /* SYS_CONFIG_MSS_CLOCKS */ diff --git a/board/Microchip_M2S010/IMAGE/connect_core.jpg b/board/Microchip_M2S010/IMAGE/connect_core.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f75b1e2b1cbf0cb59f4d6baf9b34275fddf4ea2 GIT binary patch literal 155363 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�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 literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/download_complete.jpg b/board/Microchip_M2S010/IMAGE/download_complete.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1836582938b7baf08ae6eb104a4ceee76deca15c GIT binary patch literal 161617 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%0ARpaI^`^-z7MUAuPmwrF1wZqC@2myRp85 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�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 Q!T&jB;QzZS5c3!HU$SN*=>Px# literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/file_structure.jpg b/board/Microchip_M2S010/IMAGE/file_structure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49459f13b88f7cf99e46f33249f896bc50fd8545 GIT binary patch literal 198013 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%0AV7mzd~+S`F^;N=yx8s~bKR^!iIql{?@^ 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"F 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

iH|ZC zwXdx*E)f|wieY<}5oq9y+o2Ps9Bd)Vpyx#L;=8WA=ffFgK3o&tb%BG2`zps$B`q!9 z6cE!ot@OU{YQ#L#T_5I=8d7~2>)Fg1OT}Ak+#w7b(jf^mrv`3w1`h@o%+?≺am+ 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 literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/microchip_logo.png b/board/Microchip_M2S010/IMAGE/microchip_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b9765b0fc633d68bcc1b819c5c1d0cada7059e2c GIT binary patch literal 28657 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 literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/smartfusion_block_diagram.jpg b/board/Microchip_M2S010/IMAGE/smartfusion_block_diagram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a826bd8b3c9e1f1400ecab78e5be2c5d8e465768 GIT binary patch literal 1030921 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

mEi|+iQh*YVHg8c%9 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

(aTbI2BP~fW_XAcd@@@| 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%0AoRb$2V+ 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�nJdCdpO2~r_)+Ur?)U*+M@*^0BoS+`HV3 zeG{iCn{;+bt$AO4b<>ULHeNP1g@{wnPn^V^z_pSnrV2h?>4esF>Q}&j@;|~0rZ5#k{2JzisTxf-!eL~)&5SS!6FBX#z>ejtK;NAi2 z_XKIOvk{sT!PDKP$3W$hy6gf%ZrlhM$O%pJ{m4PAiz?}*5v)18bL22{98BkCTqkMu z47R1d1hsNkk|V>u)WoYgri%OVV~705XS0JW_;l{xy6GEnF8oZ%wI}8P^uFLA)ScGF zonhDFZCnQ+g)7PWRBs>Q>pi>nI*i|ov`M=&6>q%BZyU<;W8BexD|Tc~@EnI3+Uh}q ztB9eaNghmYs=C$;SsRYjsHe<&GkGRx&2)FhCOWaq1dCTRPFJMHTKS%JX&T@7REI5l z^(Kdk095)Wp};50w^njs()M1Aw@VzRbQ-rGbg;hWaq^-USgpKwD~mi(-1cIw{F+s4;yB-gw=Rg{Cdo?e$7aOKFuNkrA=cOuqExoq6U zmgHr-sJvY-=5H7F{5KdhuqOEFe?d$KFy)n}?djmR=_J7lp{0G|6e$V;vHZ-C0nyJo7bNy+TJ(#!y`Y)&;ja~0s@1n$t`-|jPLD_-fm*j5~X z8SQKasp^n?1L8|kcLZT_8@&k58;7Ph%hpt5IxHrcbsgaVQnhS;sOA+gCFp5m9$$Q| zueT%u3tIw`-b+C`-ZMKxm&d6h_Ji9h>WE-amtk0|tW$48ES~#ak*(l~*SsVZgQJrg z+p)FF+`u8r0FbYTni~fE&2?LuNtyMvfVk;JMWtE*$RW!5s$yxVJ8UdVX z8r1_mw~lQ%w;$0wNGR&^geXQtx^&HL!2%pt7Tt=m&k3t_&%{b_Z*rW?#*Vy~FTlig zc2shbA~sV;4(|07YTd^HZZPEls&!p26a?TkLb5R>6Rqn?GF?iOlEk!&@h?Vr z_S@QAck<=ke)71!bOd`PcYE+AcUizqwh}n;OQ-0dW`JWAfOiomUE)HKcfX+stSc_9 zI?^y*y~EmnF08k(b-CXpyO75_6UlQ%9Rq9u*Pts<_X{8_yNXe*2jP`(dhI+gOKfum zx>*N{4R^!hMokuv-xn4gT4(5Vo}tRO+k~ITt0gd1N#a%%mZAyKrJI>5C>jEQ0r^)Y zVUAJPK9+7!-S2*0vckso`Kd$ZVX+p6T4IlEag;3ft$2p+sC4s&`RwF2BB zK6-)FwarEv9~{;ia(JwOTl+*PSo-?Y$)Fx%DX>yKJ~0onLYP>h)=MYH-eva;=gs2f z?u8#4$qe2nKV}C@ zFIBV95oJwD&V0dfa(!o|yqtwoT_4Zkn|v9j)=zEHyFImGu3>Nlmd;q@QW2yRdTNSo zum$r?nMqDfqs4c1dvX$@qVzMvOA9-WM>?&)D&cCpl5Ir+_I}7d1S9|JCI9t%QdAdx z3kQ=|`vB{Cz8rvc>Ri?Ij4~LcD0aa4Q#2`D`;m&?m6NMOA4r_Py)NP!B8zt_626=8 ztqVd+4N%+LPI*qu9C4a^y&+CqOAok12j{|BAntS#BZjL&@3P@2GZV|Noe)aN3{mf} zb4duu-I07kz0drGaybWwUmimO_dXTZgiW`*lP_MDAb%U);9QGU%xqmoim=<-H8Lwd zHs{1B60W&yG_6V1?Ge0#R-*46EP~~0)4O;qo6paNXTI{~Q+wc=z#Vehuzsum56=ee?)=IBb5HcQ~y<70ywB+f!-RXA@=<8;^W8A!3 zdixBN`2Gr)n>MzA!(VmtGx|i4$Q}R0k8L9+N0V%65#gCD^JRS=9Zuc$X@!PDYJ zf>(^9#zMP0Ona3)nd)NA9^;?RY3)kdr_`3HI=pt*$v#A4xp4OD(p3Qwd!#GgrIIWd zm9ib9eJ&4h7sfG;#*7Zt8c*x#oiJAiUGv2#ln(i;+VqXrT^Hj@FMZ&N+%eL7@`1t8 z-48Wad%Y=df9TdC4jkvDz)kkJc8NearYmS2T-3V?#XW@Px7KL9=oD%FVp&1Nxx$B= zl|7E6ZCe$lY^#pzgn^fqrg?h-VNSaJ8qGy<@HZL0arr~V)}(<`X79RiR#^I@S851^ z4BNgXJ07kcJZ>0KNLrJ25R_Lg> zAQgkht=I0Wkbm@IIAVUL-S^GOr+2H?9n$|CQj?9KAWI;Arc6#&7A4cyZGTUWe>!i? zrm*Ka7pG+QaF*^q@mBnbb>Ha4!%jX;{d5)hFFcFueZ3Bzma*m zLDA07Oqp61lwrp`+&^8trs#Onr-97;EXmpC<$FY9pI*ALxzEmGsIGa~!F{(N&!`?P z&}6W>_xTn@wMfTTz%i(`_xdv~kW0U_m`lIakq5vjGFkIiU5hWrL&|92D&8ZHplGMT zoBBE8&^+k}xE3>RtvoDtN-dY%6E_S4cg`r+>DJe--XDCwytxQJC*y)--L?TCq)W}6 zjTGJQ_e|!hQ;X^dI(M0TGmB?@|CsU@Jh;!vrmuUG6TWe-Vzc>QW7LLX{8%zf%9mv? zTRz$hUVFWM0ejv(iTSmEd5Nj)<_y_#oAI6ySATEb68=lZedn(5vsFkvM94O-XWfA} z*R08=8+c@`R=Tv-&v|C~DSULYJ?*kE>xn8b$IeFCv4k?_ZOqUY?&}v-XsonupGj@c zf4o6n&+cg1pd)izW{K{+0BJJL0>D86z{fjl>A)5}kO}K2E+FXRIG;K*J6b=k>Jv2J zg8g_;g;d1Ezn`F=weurP%R>E!K@cve4jA=vR6W?sj`_lP0YPnL@y6iCD_Ifk3y61^ z6d6azdk*!ei&EGnfEh9bq0=zJ0zxbn7BcOPXK{ATod7L|Jz(o;4L?k#EDdYFfY=5XM|Z%eKAa;|v}zH! zFdD=Sw-`dq8~AUB+dLG=57`=x1f`d)?{ZkCyZcsA|4Ox-g5G zLXI64>*|3u|E=ew`M1Y}`uUXpgPzj6E+1eq=?0z<_&Va}s>uF6I@B~7QsJg6dXxLm}uEVU!)IWSf=)HiU@8MWixmb3jr1#+&BUz^^%^HXyClpH_h`>)#Qe^kD|oABvM!vG3P zOQ_Xk)_XAZRVQz}R&UlX(zmiot23o<9%YjjC^P~{9WQq>wmGH2Sw#zoI9{VcIag!b z9Vh*4?M>oskn6S;mLZR8AhofJSd6vGpAGK3ouGpyWw018Y`Hu8F`?(d)3n_ETNUIQ zb61ZzbG_CQc%>;p4mPvEzJ$0*eFRGkjT<=0b=GEP7lIy(Z@;2#HW(M)-Q#obUR!+% z1@o=W{(U1u_luFy^;3QQ2dS^0rr>{qDOkOL;DgJcHL9rSQzJ&O(4(zmwG}%{9F~sx z?UBB0TYYnn6!$XcM>wL>JzL7a6C{(NwSagM$&4nNZY|SY6Zbwm{NrTWR{m|DR0Bud z3xRijZ0a}9{Ocq~rS;#_9{|_W_j!z8?cKk*GKjCT969s9Wj`)iq#WM{zE}LkD+xm3S26vfo${c(p+ji_p}hex zjxcgr!i~2U5Ki7N(RLts@eSlK7UXd#Hg?P=JOg~?lLqO8tY|!|34^JQx=5Hf0T6V- z1y1X#{(6~DGcv;G2b9kSX+3-3A!Ql&;3EaW9-apZm|hHPCBP|Upvaoc z9Z)ee&o_f-&@iR=#1rs^*(dXP*nY@fmF73CKsN_K@xZ&59!1TLL4hbr1?bNQ6`s0H zn2C=I2odz>pZ6S@fx=ktrdnldNj;%3xG%MYM5rqT-USs&Gc|$Bh5@M@(s`!ke2KyU z)&-f+2pi4rtg$2>0REXS9mL@e;8GS4xH9^p&-vB(V@LT(58Q{)KZpPG?*CU$o`bkb z3~v~ah_^AuX*7h z1cNgxUOHqaIY^qu1zq;B;nQ-_8ARR;u2wgEMLbh^VrR2ZQNG(cdqw zAJ)=$*YnR$pxLw;+QF!GHzQ7x-aK|ycM<$nHheD%PR22-Cic&`kSgH;=W&4{?Dw(( z^Q|awKNm5jkjL?J{J#n3*l!;2&-?$KZuwX9=ZP*u)=lHJ*Hb%=Q7?USFHd_M!kkc; zr9CQ~UR5FY>1=ps@7m2$C!#e2y^rnh;~lz0KCy;wVt)7`nYzj6d5mA`Z??|o%!BN~ zBJnkis@5-)g7EQXBaQ(|D{RhMVa49_U!NV;N)P+^!KOuc`d=@*ChX^>p+Wj0M}Drm zuT6-ba^wHH+A znF{@o?-GFaQ}W|_qwe@0P07v;c0S90;WbNlKfS4jxfv?})p9f7ITZOsU-(#@uv&0c z-D%CQ_ka6A)zv#K;(SC*HlBVWe+zJu#AaEOz##tSQ;^dv(n7vWLEQmGiE}epK%v_Zv@kGn4SRNbnKcf2d473pZ1X3)gI=E<_R=Fg<(`97Gi=l z5e)3*uRqwAWx4LTvByRBIlwQG1z^=|T~L?gB7N7_p9b+)XxGNBO)plga~hRkr`bX8 zLB8gqCH>9E8u6a7{*V1b$+0j$(T_C50qQ#3@YL@~Iv;OOE7METR)@Ryu zcUE>?#)_VR3xvw8JT4C{*xQ>iI$CPCdz*UH`Sp0d%}$!t=I(s%^ti7m-uSfHq1;z@ zcC=}}P|JUIv+G>oKbbj-s?<+LKj-t}?EX2QKg)vu_QjttLf~X-#+oRWy!U^u$+E4s!-Vx5R(68kwsHo$CZF>l;uJ@1sZN&r5L zXXklIWyCdgNT+KZsrwNuM+dRAC{Qx$ql!#uw?a##yK0r)Q_>{lY?vyFU3Nju&l4*R zLUbFTZZ8x+>AX7V_hA}!=N*OCUNWj5Ub|+6Ag@*J5&gptLr9hv)|?5Q+G1DRjhk{;{ zJ7<5d9_eR0%3tVUUksCdQ!(|Y+fl|z7i;E}QOlu^=Rkjwh8!-+Xh3(YWdR}0-d)33 z4M;vpi1nA|0vPn*X>^1nESd*&4{-&p@QVielUt+|DAed{WP<8>Tf)5YGMuB)5PrNK zP$mG#lSO*%59P8`+4%{QF#8M?g2t-Ad#70^LA~CukP2+gZfu~3f1;bfK!S+)@GlPY z?%4Yn1k{&9mxha)F!RU7a0H`wgI%KT$fxD-N*Cbun63N-s`dU728OsP;}TTyivCry z7#E0ZB}`sMZv|~E+ZKmnFjs{&2nOhgW~3POc@=oamw|6vv`K&9b?CqFBmILL>`o~f zaBV@AV1m;?wOuvgm)|0ze{$NK0JsYN+1@Ny5T^y1t0%-p&?^j;=RAj+(+Tq{iItr5 zN4%{7vB6+kbSV9azX+B;E8jS=cW0R48@4!#m9J=9>Oia4e7sEpK zCfyfQaY;hWipg*m(uXj)Ly2W?@?cE=$QGHHl;8TGWJiefZ;2h|41WiX2eS*XFcGSz zG;f%~Q>f8cbRkG4_12{R*8THWz!1J8nj#sDep|yozuLQ(P&K0}I@RM{Grh<;HGgmr z%>O4#@T>!pvSP5|*&A1tO=ok)QeFm*IIK1!$=VeMeWWBNLo7Zwm_ z9)Ls`JN5x!L=kO^sUNDj|2`(nym=90!&Nij>xu3@$Y5iN*E0nvF7?GaORrg*ZQ$A( z8XWG2=#x6^%AUTxbcgA~aiQ7BDMAYh*2yWv%=BWWHxV_6w@Z(nAWF-RF#@FcElV^P z=gXU*n_s5$pWPC{$h%_+D|WFo-}2B4SDg1YthWg298gEByN~T>%QH5$MMg{3qmCH) z!(F7w%aLU)H_+xe)Svt=|60%n(Y&#%%M+_9<`f+vl0_r!a5&IOC>Rm97=@BgG z*rehlDH8s|MqnWN3P;VZpd61-Rs&Z$TiH^w)Zi43WPla}O{ADw(ijTlMq`?Cx6-cZ zlLgW&-UJuysnoq5=m%I)&dl%ovse1naqMIQeY12S7p7?bPH1ljT4?-P<3(4~nSBBm z@5=XuqBP)uBWthmve3nzIsEfZ-l~K zAj5~noxZr|`r+Z#t`4Hx0X_DELV0(sx6el=K$CgjIiLzg2QaJ^$5z>oVwX9gYu@II zW!5K>4T1#LwId@f%H%r-r-y4fn_~Q^ZFYvPzQ&8Zb$>~?e?H!=i*dwBq`A;+$DM)q zig&n9?3DZ^mNR5?(U}_@669vZX)h;>agcIeFSiPQqr?1=y={EzA^qtimB)%eP(N}0 z`iZhf`_ycSVGXX=a338*E_K>n^Y*dm=ZiS0Z|CM#k8!lKpTDw~a}IeFbe7&m&D24U z+~ZC;JsS(|@YFU0E8*&+g5NWq{@^~2_n7oS4>>nk@;cW9*D8Up5ecO<|? zvFy#P&8iq@pmJ@HMNZa(b`eF00RE73Fx1EJ`3JCa(tia~{FZ+VM>FasFb6W>Q9F1r zq2xWLzw5==19i%h5o{>-q(yv*mHGO->N%{?ethJL|6}#Sj z#9#RoyZYnMAz|`{d>Z?bd^IqGzNG+qmC(1-x1#ryS!G$%1zv6L$WidavXyFod1@!? zl8p-Gl*rhd3fFZsWU3B(C0WRZr$?c-`ngbCZZ()YCa3y6*C{-Fyn|2Xg}m|QnhI+l zktS!!tKNZrucjsaE|@f9`V^fP5T`*G&;dn5(g9P{lCQ9_Ms#kbX8Pu0x8|BbhkV1t@|o{O6p|nl=Oq}T^*7!T*Vh2?d!X>Pi&dM z6hH)2^QRdDpssKhC^Mn-45OIAn!mGeA8Oz6Q#FOUfo5F5MeojX)9S{ob+Rb!6w3j2Z(VQt8yZlt0dx=Q8O3`b{og;gznTCet zu3VEmtHf_SK$u{G3T1wh3khXAg`p5Dx0!(p8Cv6rV*o6_=4x7q@40HuLU8&u1E zM}Bxda=y6-UxHojc8Owu_fTP4y>eGQJp`XJ5_umhMr=hff)jW?D7imhS*Bcqa9Jimg*?Fp z_Dp=tEE88C983kx87Qv)oEX)}+k%nq59I1?s*5+XBTpnBnB9ctGJ|SdjnEfpH zx$&jQ3)AOJt#kG?Imz=(n>%bY)_pE@Y+36+Fbq{gzpoU>#$YmanUN$vXwm=BmLR?# znNP&ik&W=7IkyS=X#EV3>3@TR;5bd;fVD{;(3sl!#bVLs;ThZ+=8vw(PJ-LjX>_P0 zed7oa0#4FdUqr#L+mj?7Sd#AAgYuX`u5n5;t8?4l)3FJ&m!aQCJfE7Hdc><^>xUgN z@`r@aEkE>x>!oZMU5#2(fJs;K^!CYRBO^KKgGJ*z+qiU#=F>$UJqX*LkJ&9~-u_1T zRG<09?3W0c9JiX&6n?8%RpI< z?TtC#hql6qX-?Te&EL2h7}t9J|}t*Nz1Xh}Pw!QN(#m>KUiBXj}SEdrvJ=xEzY#in`#LyyHGqQoe~at9{Vtn zI3v3%u7j&Ov1-?j0P>cRLy{6f$V-Sf>H__Q^saFd#hbRh?hJ|kf{H3cFS|3wcRBKP z%-#0Ww;s+N8+;ckgt@AF7%{U~maM=A6%?UTpyEJ7Yc&k*CdDSV_EeOi%?a7OEgQOT z9h&j2~%_^++nFTf2E$^PL4$ zYDP!^YB?{q6#Tu($s_p^e)(BM5P#^-B1{I^2|~@EfZrJxY_v&*)rkuj zc?$qA4mP4dm1RK&Y03oii35P)h_DV3t04OBOxRkJ1->yWiG3juqz8|p2m{q=y0b6b zNK)X*xkx`=e0~D6WlTO2tW%0)tT+WJ5^s%8;OWv3Gb#W@@p%`_a~i7CybP$<`p zFytBscul3;k9{%u|H7875UwXo+TnJ9nSKN?G_n!jwf?SSDJ)2d8=XffK8DtyZvp9@ z^-Y5$$FR~ExNDm_dQkIJ)I6V2tkFXlIPa4-oxET=gIBboi=rF1H2uR2^kDWRAmgaR z?FVyh(_gm6%@i0o;JBq)qh_dJhQ@~H#pGgXEYQ1T4lr$dfdi!}=Wu2*S`c)~Zm|M( zZWau`1NBXdslfaT$^@(hgF3e}42ZQhW6lWslE4kzCc+SwhRj@SHNavBZrkP_(*Q0& z|9lj9YTprtasUxanTBp*C>;b!HHz{GDj5gYZO;${EBXmUi(tAtqkyxH*X@Lo77!K_ z%#7(}i_K5(XSxPq-x+Wf$2bUZ1C)Wfg*i8IYwuujjc?>2Q_^fDrK@EDk)ENDa>~p- zswT^?RiVSQOe!hcDi#~Ytz_Q4WIsb5*MM8fO2;i7g80zFqXbF_UAmZH30F7dmt3`= z5jOOiT0st1MXx2dLE={~WD8U%UJ?;xO=G9s2ZM8G3bTm$f|t-dV5mg| z&QX)2(Y8%J?;r6S85*Bh8b0;XcYUzqn&jI&mh83p{BEX{vNAhw7hV6{bwn#OY0CQ? z#G6+Q(`{i{ud@SYjZSECNCZ9cSh1A%v;Yo3Q~^k;6vFs2AS*jrvH5Cl;?y$lMcgS) zb%l#0irE_%s@kK5R~`3N%U{2qv5s=|I}mqZV96D3N8FoZ92n~P-f&NfN{@wau1#;$ z#29Hc9dkIlX~wl?lNMZIVY8}QHUHG559p6|QI}-5mm;K>ELwwGSa~=;aOz)hYcGlK zrmOS<*a+2~aU-dg5k`cTh)5{RS#;YwsXsjxyQr?gN%ZcOrJuU!m0$ zt}yb$OxHPJ!J{t-!+?D#sKuZGny!njd$amyKUAkK~#JOn0dCWtV_1F|FtGsJI z0(*>O0`hY+c;MgxOoU33*A zni_q5GIn?#mq*6mpb3C6+B11r zfiQyZ2<$U%ra+HE$|H2ARz_TXZ{);j`!xe2#vcXmR?NORhfo$0J;relF2PW)42~r+ z9GRMF6uaAQ?z{25<66ZxM09yU-@#)FMo7K|chixC6H^%AVJEz4E z9Pc42zulNLKtroqKy0nyfhM`I!0HoiWN^`m2Bs?5AR6zHk&}vpcQO)WUM+VHvEH@M z-QS!>ti;fFmeID-wHR2iSk$4y5A>_u6Fw+P5C9@kWIbTz#g(|zkSYw*_mj-GHzp=y zI)d^|<~dn0RE|aL!Tr?Tp^9N;W22O3$`&UQn<7OGLlGKi;|-i6&LfFj2v_g1Iff2X zjg`P;NBQAI=ru+8$`nRB}nCX8XE&RCQWbWJGqe`YR^ z9{6k=EE))>DP7C}6Nu$j2IM>YM=d&Q zn4i0*f6qim`k=Q$1!aU3{M!jX+$M^yA8rS9fgV*bpVZ`=02FWG#$;WZc9qp*;od39 zRLic*K2>jo?~x^fJq=Vr%$P$SR|M~AS{4{l7Pv+Dfun7MDkfpLmMj4!Wu+gQDktB# z8d|#svlZ$N?n*-zky^`OZVOgwt_pQ$ftd((!1IDD+2-&nF55ztDkoc`62p|l%Agh8 zYmE7oPN{IuFg7Lv`OE{Et2ye1G(j!(J*rpBS8VFqcc*oKaFF=6#J#i)H`PepO5<{r zSz0XR65X?h6qu_(4&;B7pL`P-RNBo<@+|00!2Kx;L$e3P6tIU^l6wIf zC?DDJHpXfJ(PC=SG>!LmY)v%L^;O;M2+1{O^LQxRzkgU!l6}vT zk+rgwELk#1LXtKVF-fw;BngF66xllN00_+={#}a zBMks*+5T*%1h_y~LR)b%^F_142DFvBNx%G~JF2421}#}ATx&iw`z}FIOIx(tM&zyyU}$xSc%A# z1H-Fk0xNS1hN*<}LRx;YMXP7$v&v=&X5c1~xo=s9CGB7^{D^TQrK@H@1DJ!=1J`-| zPB59mVOdrLsHBxJ(KO84!;@FHvRL!lzUsbDah$>Jy^X#;Ma5gZOFz9ib*=d=88-4m zyaSLQL{`IRPBKvIf7J^Cz_kid22LrJ(L{ZfK8_Dk~4nIhkZZyZa;eB_@!&$&MggP9(Hj2D$OrE;cS^Il4ID6!uOC zjAg#Xci#lDSnKgvfB(bG{4>A&6iyjsDc9MO2&Jz)ZS{>(@@kX64m*7+G2XaY@A3`V z4a?fAr3_$I)Q2vSc`N#(5blB2A}95q<20EZK?n0h>7lx--M`qxJCu4k_*3ig)%e)l zL%R8hqxHSU5zqeA0zA%S$FwHcyIP)Z}6WQ8IU1@UC=-1W|n6|@^oagY0ntM*>4&RT_m*aUN7nWnV z0rOULzqDJQ?1YyWwq88Gf#u{WPDo$B>RvUjU$y^U1C{kUFa0W@ASC$o_w>lo^)hpk z=$U3fB{`w{t18n+9E~g|T@G=i^XyL$dCwl4EMoee-7n^mg{hw9r85`Ddu(S&@Lig2 zBgAE>ty3{t44G1glQ@N(rqWAE4%su@ZHLC!+#XYmP{=S4SY&tLv+cr-MA6y}gFYg86|HPd#LYt^r=^C)ulw>nBg%B|?i{^kt4C_H5Qrq)Fv!n%Yn^!@XL z9Z5V~T?aQ9U-7y2v{b3~CE;?OfF*9l_e-bW&w}y2-&ell(^{7YO+(F~dIFhxnk*DJ z)@n^P8x^bYE#{6jdrQq_&1AXucnhVay??H(sgWjm_|wrTJO;74_iqT_~TCf zSKpIh09_RM*NLilA`)-UAQ8C!{*m21!v354CSRk%L-WBCR=*7YZ=;X@487ospf;sx zIS*Y zjroK>0zI?W8(8jQM61F@Wjas~DYvO^tVlKD(#8JCir|(IruiDmG6}$Qr)*%m-?`=d zS9cwT?QfPWahk#p>l+{^)(;Z}wRYd*!3LTgQviqXF0#^yKK!sErlB(iEm+H6=q0m{ zW=5}~-~DPNM=ZA>bQTVin(sYJJ?Sg5H-YWFgkiGRbRv9Lm@W@I!(OidA?x@OqOCC} zz-gMvy6VmIKMkuM zJ=>p3a8J1LB!A5Xk&9(Lg(kP7w-Kpc1<*oT82T964Lz7QV$Bq4ryuVzJU|&bSF1uL z*O!pJR^;Z^ygEx;Bj3Dz@Lpx#{f%W8vJC7-`)Bqs_6Noyd|9lr;1F8lSY+v_gT~-c zoqnN*kvP@6c+sI{;R;_`U3SxzlG;<}kK$^RCQNP5uql5dQtdiP6BsxaT(twtBXCYZ zpzdj^Sj`xQYm({&`_Kazw(+c-eA1vLPXe{2>DlqY%?ipd#PuXGR8QQUBBmZV=m%iy zper?(`{(_K7-g(UyR)@boCs^E1-+GR87Q7DD26l~QRf$U12ecdG9$L{;DyE6E2Lr8 zhEp|Zv)hhub2F%#Fr3g{^{1fj-~@=2AuOyW9%+c8I3$V(7Sb=k-+ZsERASkOUnQp; z^N#&scPFdcDskdMP}*$y+=Uw;+d=CDXF5W{RoF%_1VTSJ8N#KbuE~z5I?}P~xcf)y zFV#M9cCI=U$gkQV?P)FbTokSW!-l}_IZa`xj%49!sA6K)|K+sI-p~H;>_^G@e z-b-CP!lEe~&Tg9-OOh0c)XXLAvOm=H9a+Z)t%&@$Kor6y;qtzZ>au<= z&3!lfQ{lp#)XZlW`DDJpdWJHxWn@GJ4G0xw=rY4VbdZP4yQD%#E%p6qk&3n+Q+NeQ zvW*(4gA0sUN^U_#RT*ushJ`8b`1HmGwI>vk{4JKk7e5h+##vDTY6NyYA zBTOtrHHBc+<8K+V(^XDNw5U3a#PLPg#pZEGZsnJ}$HKne`~6ohc<8*V?TS;es%W^q zs5{pz@>{X6e;^GvjN|_5w_yqXEvl^d5>yw8UodN*fLed2&0E*+6aD!x^n&BMPuqDK zQ0xgr>%v7&3O_R)0@nG!&DLLRN9FNfrdFRY#uBra9--GA-6Gf zqbnRAiwT1&F71=zUYPkjSw&A@oP73kX^X9U@Y^U^6GKhm1#kS+UTO2}2a&cC90B;I z`2kCWEAcrv!e@w-9^&25jVUvIp?khSBeK1aSD72n z#{)nR;RaFi?E7a?RLiq0T&Sv4vB6kC-L>nnZ?q*O@cxea;tRItbgx~$-I}DVa9{44 zgu(5A zhr|xG7k_nXyv3WW-BkDJ$$ODP=_`{8K02@Y_yXsMquSU(H{=eA1Xi2lrWv3Lrt2We zQw;UGQ53-J^6>WJ&`xsM%I)QM+>Y?u4b+ZLHDj|5R-e7E%&MEEUVRzb(>0&8t%dtT z4qvG4{!<&)0PnN87a2x&f#Vep#=oZ=5(peS5#rX2aQD5cm4E4ZYM0QI8dh4kQ8g;Z z+n5|(+Vt_;)5&%)YCBnOPoA_a+R;D@%Hiq1+C4vDBd*=&7e3m?*Yqtk-4oPR2 zv@aTFs1&V|-9u_BUD~eryeDm7m;pOTtC7CD@A{+SStkEzv66?#-Rg3hg;{m^mBzlrNhn{jFD+myVS-HQvs$MQ)Bjj zaOK*6ejYYLjUHRW)Z+%{>!*LPGS2r^WL`WZHBNTh^jszB>*y-=R`75I1ENmX>)?2e zQ0`7rUwUmD8`nYz8CPD`9E{o4r^R+-^^C7Me{v`wTI%1eSFmnLWIG=iI!(buTo+9{ zkmM;N6Ev~kb!K808=g`u%c_NMq|mMOj-Dj z45LBwYrfJak7q%%c_(XDl&p6<1SK8mOSP$ES74MzMj&equ#p48jKwHK4a? zTMGxGXP_(9U0TKZx41&TxNRB_b?68Yi4y!OYmjq(&jrmr);kynp!#o68FqFTFjoP9 zxvs&%yjtGJ3>oF-=bc<6|6DtNqvWg8`Btp(hxhq4Mb6`=nor(i8?m5-h35U!75$x9 zna9lFk3~<%fskC$&};pm+)@E>y)=$?u8r{{4@@ynKo}s3syMwS|6?Cr~ZT}WP+c`nzF>-sC#5}z!rS&&I$A-Uxum6qz-lXy8$XFKUufem=+irls zP@`Lh!=Sziz^H5Nb^pew{}CLE--Z8U+-&zFO(md04juX(oBv06?ELh9gv}OYH6LD& zauo{y{ojRMb$=Fiz_J0VgqjjJPYMnU1ty%E9c4SBPDvQ~d=u-hmU!{_UVDg2Mhg>v z>Vm5^97e-2w3jNGl%Ki*n^xqrFHYyW>aLUxLL-DwW$3d{KM*S_;9Q}`VCHe)@cD*E zxGBHbMpat!bC(U#3mR|vr&E8iWwK`I7#NF-CND`<0J#cAF-=i_d(6(YEYzy_*NFf5 z#{aC<|L>$^il7wiO|xr}x;IV}EA`7SQYb$uP}(RsnHqoagl~)QcJz`1lOCFaDLm_y0;1`53|lST&_FPSzcD^yB`z<-a)d<@JBD1+3=uy(bPESuY*v z226Ca(YhV}Z+_-a@7M9%WzgLXH`C9!6#BV3s(~0u6!s3b8tYIuC~*67`bdxWnc}iL z51%hOJQwo5i0*A0iadAiY0}bnHW9n_Uu>0lrkKmR866%FeEJJhm=-%~#@vA@^=joW z*EpbIvt=ujjVJ_2M-sCb{ z$G&w0-HhD|*Vs7tUccV<{g&h5!$&Mb()<&yY*-;!rxR2Nto&bWp6HFhCf?}Z8I2Rx z?u3uj3Xc%WezAFYVlKX^W$5C3MawbORS6aj*S{Pg?w0m>U&j%~fAATB4Itbc$Qiw+ zj#<4N2$c1GuN*i8p#SZmASOfDCr%&R+Q~bl`6f}nG9!OdC7FxSe}l&3+rNK%2V2Nn z)05QB7%j3Se6!QGtAcyGgGEoaL#*Y{uD;RXDIE#Bgu{yG%*O@HwQq*~Tfh8;TiPyNjl*dji&jTJJ&SU>7b^8Kgq&>CL{lg&s6{p z#*$ZctXvR+8nkq+zx;2Z^F{oOrUNJ2a?nOUpT#h8M*pot*LCFIqTz|Vrs zQxg)$h_N~-7o_3y@(HU<@JpNOx3@5@IloqVjHBLR9&rvc@@8;wAeJe{jl@e)=2=wW z{;$OYM@!~3v6Ce{#X>-@3=M>vmvIT`Pji9_RIf*nb4Q`jZkR{{2W$ngGFUaQJj@#w zS}*5$C=xzSm9ZG9;rkdbR?oA@wP;H;WuRE5zX?q><_}*BS+2FS)%^@d4v%u#U9*y! zUVHqy1T;YqoVSH2Kj&AC&05inFlfs7g86g>N-W zR>l-xt_nZrz05jlYrX5uwYG$({_Q+|F>Ew!ESc(!o)u+m4!+ro$cHw7uF^w|X^+ca zSQzTQB!{HAe^GDWa5;V!D`z!e`o?rOzpb82dJ%Y*4@7wmSfyEgfImp`^vk6*x4Sd- z4BKM23w_gU#_4YFN^Zp-K9!wdZ+O*wKZo5ghKfZqMfInVtq}~~#-hMRr*3VHSQ+si zpQ7N?-X0rCTAp9tD?V@7#I}X>E$3i+s)opuIUdg8Q%z+}U2QLEZ+3rZ+;Mwq%L~r+ z^L`WstFAO)VU@(N3YAU{Z6sop$bZ+{tzoUyIOJm7jiR;_sgE}sa*1clY8J?%UKOs= zSP{XfY>+R;F9}EIGR31TD&Si#SO8DGjW0ZPI2ix@kk8n?BRV@B9q+q@?J+x{vc~uP zx40QwjaAe1SvAnbp|BaX=3b2tgD4+x;Il;H%*!eCntRvuQafn=X@PE?9~c_#51T#w zVxnc3r%!9!;lrF7{w`YF<@b;H$+j4;Nit)Byr~e~Gx?9RvO?9Ef<5XNzXbc{1Xf#% z@M?~0>7I7z@bL23wWZGOL-I#X_EgPR2iut4G`4^f)$)1wa^iv znx6^U!TY;uyb1UFZC7GFHg{FIR;(tt+guef_1?Gh)72y9YdHw_Jb2hixD}Yc2x6qFxryF z8MUl(z{RAm*yUXbq5Og6rmvbiFC}fe`r%AC5Qb5=Mr&AqdNgmQlxA|Aik*#T?4QQ) z|9HdtSWQTB^SiWad+>{5W|y3M_?ye_ZU-tOzp}BiVO?5cBdQ$L(80aFQAM>TBUoX3 zMS4a)$>`^+i#~S(IHbe#Hkr$Y8H+CRGsXMs$^6W7U>5Q4cjYD(Z*>PNm4>RSYSsRj zjM<92cL{aQmnF_gjyFYM74~lD!e;`upz|K{Fpg^0?pHjEbYLYtTN`0sT*)ZgYNrI_ zZ0%&rUb0pg6YzWyH_-0bA#RGsx}ERJeEC~`xrZdSH!tJY zI#wKjD{L*7L2O<#9>onY5N^Q&ckvVT4Ao$@?n{>x90!J?eRj0!nWmgg+QtyMvStSe z!TLC8@j7N@H#Fx-g!0*`x(IK7Vk4S|NO^%0(C#F~HfQbZhP*XoxQe~CP+}fJ9xv$& zn&rt39k)5Y94nQL7xpYNx0R)oV92|fKnF&Y20P?2t$_?ZK;9$VuvdsDS)$yl&*DcZ z%Dv{x@Q=0T@`@ypaZU4dp_kIq7Flt;fVuemSL2Mc14BKXxT`Yq$`=Q6Au6- zB@eZ5biJpRGnSR37<>}r3_N)?8n(d+-pB%iSx+gNl5zjt{G&>gCwwK0C_0DyPRT1Nn%lm~X@kY1FYdk$ITT&*3VI zQw96%_0AQ2&3Bfjz7aYE%g!d9Vc7lFBrtqBv>l)m#px_QT0m2KF=x}TRL!mJM;gW& zZjv8icS{Q0y5qrpW3`@eJMXhcpJco~wl*45m_2lpxcHmSlYj9XJ{-xC`!+pI?06L}j& z*3z^N9BDByeek+9{cX6GYBOpp*G0jEJzPc5knXy>5Jl(iIc)_;kHtD*1k7XQem)M? zfb#ENI9k>$V07v}pX8yZbfp|pWBTK%=39E0G!oA2B<2ai1BC54+7%Mm@F8wtV%WAm_S ztx5i5=@gxg8+aVQ^2l?cUFbc5G<;YhP*KWq^QvE*fHgQ-O{Re7!L!6PnB~izh{-dX zf;>0HmGE4hS1F9d%6$9-0zXs_+=#B|1cGwx5$Z|{mLHtvPSvX>GKC&NIYr&(=B8$~ zk%|}1TST4+ar)v4g-laLQzKM(!ugCvPZmf7tB-%sOl&Gr6J6kM>V!3{XK>V8qv(5v z@}uY&^5F0eYGtn9bI&v!HEvosByDQgHpYFW)xB-Vahs3rZr}Un^+jm-9+9pMyh8we zrDeSZ$HgCYHV>2`G`%H>`+$tizEl|_g2?v};w5}EqTdy)oy|PUxKS~x0&8^`4IzT@ zm(k_tt>jvTd~O{qd^>pLY}mf!gFgsOh4JR?BLPY$9)v1hct+4=y#&kn4pnA0lQ>#f z%x+IB&yu5UN?3mTg{kZAuUzFnE%jl`U5uf(=0^VWcHC5Pgzq9N4bk;VTML8| zs60-TsT0@>$f%_6fRg%mW}&dh9|Ds`zZoEh1fYIX#Gjt(JG!=gz$hE|{3O2q?lk=K zD`r2^OQzc52UqAQID0*LYz91ICdCIP)cs$^62%Wy5tR@vF);82O ze%WTo;z+_AVfX3i&Q#XAvRmiAHD(=XkOdVLhA5j92bMW%a&t>)sU2^h zRoYLo+h`f-EE~4Cj`;tOy#+kSlOZ(I|Q-XyGD9f~`l> zn|2288&w$+>3R0rQT_xGTUJx8Qd${qdcGWc_o5X0{(6p{=g;uU&i`5`ExV6IF^E!% zDNC>Gj6^tS0Wru9i|2vRsOy93#K>2;#_FP|Q&rJPPS$E_kH*;A9xjSnZsxe;XG?Uo zhE<|w78%}5>y&yTPw0-;QEQ=ASEXlHGE94}ScL1C-r)DcO77j%|DDG{Vt<{2b>-bz zf9TY^C$qQqO>W(Ze@yh$fK`CoWRkHh*e0bOEkuwv8zGCBc!`dusXX(vYuTU6k*$Hn z%56OOse7ozSf1l@?tZYxO)cwt++A)L9omYfo`fQxs(GdYhMLcG0lMFfDFKGXOq`7al{K(OxG?8at%7C$$|0i(=qR$x_I)GXb`b?aD zK<-d!DIA3U6a+VU0+BR)Vn*8rv}x(Rb!Ga;{LYovM2`O`HRPo3`-@GTW$glNrSz<* zdDq`4+uu(K$_A>}K#x1qK(zr92r)cmH(*1XX9_JMM^M|K{&#rfu42etj1=%Gy|etj zigJ7aw7J>DD)_#W$K<9zoVDNIqr%YCgTz&PFM1D1R+#w3c4}IZh2ZN@uq=jItPN^1 zd?7>}*u(_D*T}ocp#l`}RfI70v_Gb_gFZ2*Tq$pz_GX5$l0@ z%10W^7zJ(Vj6IBq*qqnj)Jl(_T}y_Gt2%=oDO|Ol>r?zz6(BzpVKl-6LV7+}+11`((KsfdUco_rB_`bSzc6+YJ%{ypL0dCE(&Puyzk|)e^G@ss|=5 z1)G4X#5cY{Hi52eRN}Y>pS~Jwak&>so_P8%k$KuEqHy)~TVBcI}yDxa+(vy@Wo6sOI z;bN4qwnjAYS7Yu1e3X9L$$Es5dHP6<#la8tyi3DJH|oDU(iU;x0pB1x`@w(epl0TP zpSlc&z)w;c)ks*zh-lnXCnyF=e)>L9*|juaRr`3S)G9+LS#gJjjA#1&IX#<`nDp08 zpO1F66(!s$RN)bo&zB<>#QPy8cDUtlplpIXMg~wrok>e5wC> zn~2teH;L#GdpGllc!6DAoxcSBdCR3aEa}uuIy8Z}eWEP7iq1?Gs!ubCZOnbJ0oAVw zheG5h34+vwhoshf6a>T&G z{@r8uyC4rRSj$cojn_ofBKipm_Fb8^`o(rQYXzKVeJqFqKM5Aeh*d!RnKBHnnF;Ve z$77Jhd;q)benR^|<1Wll#cxxE_M@p|^P~(U`oKKGcb$xw=OEG{jMGq;@;e};pTJ%G zUX+D8X|_f*`PWoy{@^8tY1yBlu+>~z|5ED-pQ`0 z>{F)4-h{^ER5KCG`2L9s?7XQ15ZeW7(~wednF@nLuN-`omEivl+ax3P1#jp<{WSEc zHu3apYt0FZ%2N*FzWfh^JXUf~xa_dp{v?0Znu4#xZwu|pGKgq2;-t}}YyJ5`g&YT_Sv06o%5uFz!(-6AukCyC4?OxLn#FM|L4+tKJ?{jWCfAHFIA6)vIwbu#`t z#N~gU_}{UrREWe*_oL;_l+nbjx!@I(ltx50a?6}k$J~x5Mb~(8e4@VvvA^)c^j1J< z9M#v1`8?+g;8ivQbpDJ~%j{Iii+ujlxN_dxdtyA``(WxZQ#-EQiltRlEtwl!B#+<# zq&|(jw#(~A2|*m(5BsR|tOyY1c&cwU#1Vb_CQ9Si9SOTcE*nf4R#5_X(Ezb1EzIoucSv#KyUt7bTBI%>pZP4YAglUH?cU3utPJvsH@5zXJji(;WL2U;!sTt;3LxZqB2MFp(^NctJpu>Z|EJNH(BW$ujl?K) zd4D~I8{XGA4ADa$@pd%5_nxp;YiGGC|Yl(m{Tna#QLi1I> z*uHOP3kB%7-UhJ1yq0u8LxlS>FT?)NTFSgYX3M*;_Lr<`gdJN5*SQwLLp@wfDKhW) zkAjKvOtM}r5$~Z(F2AGNuDQOZr8jurn8MCXJ}H{dbF!G=I;68@=vu$v8wt`4;c$u_ z8ACmWy+cNY@`Qf$$O-LsG6Y_lCTui@RJD(Q&)KWbe~su7UYt2A99Wv zmWnn%^<3d;R$*LCq6k#)X6VQ}5itZjFPoV9#aAw3Bo$jS-<0i?$}#rcA+)jSd-28} z`&#x$eI-&7a8zSGqH|&_slU}aUPd=%w11X+G=E&&zQ$6u@22rXe)RjGgUKG44LqL; z?ns>!5c|5J2deKtm&uee0J^V78Oaa+6e|uXgpDjQVx~U#J}or6DNV;`8!O(eIbP?I z`DQF14`Q}Hgbqq-%mR~&;~^aM!hZPBumbGhX}F_!kSpN57yU|c;r*aN#r){oExKGH z!X^DbH}w_;^mUtP`F8MpIA#9LM5SPxY(zbWZv-X|D(7cPHPeW6c~*hHbsV__-BgUO zBM)^)_0)2|d_O*LXZVu)#mnb*JSN}JY1G_xPi#=*pa7~|6lTz%-&S@EXuWnyXBc`* zZOARo2K?qB;J#?^eKAOKu<$lad$0X%BX6_pF9ig6&fWOC-SD3#Oe( zCEnAn0bS0|GY`UV$C9O*oOV{*p0M-v+f-euD$r(G^HxLULg@w@o7*5``=t5C--CDl z@cRFSqKE$wnu;$|sY6o=h_CVYh~5ALE0de~@5%_*c3lVNTj0=9F&$mW^4E>7!qGV? zn&rN2BUhv5a-_#%*j52P{+o#!49sOtp3wJ3>Z~xx6SD~+<2GJVh_a=2Ea{L1wWf`~ zn?ODT(LQe6D>;w0R6d+l5WBk;>AWTi7TJvzQwwebj#;quSD3o6!I-y6<62&HEsB*# zZ!Z=K$}35q)zAID9=axSO4{sd*j)V8`mnZo^r2u&7@Hk@5x!LnTQ{vaW>t)k1qUtj zJZ;5KM(?PpO5JK9wQFi?@=kUt@T<&vji81y5WZnpm}XtK66-$#vSI=c%q4LbTDod5 zANDlqkI=*Sf6t+fq!{A3?tl%mMZwT}oQ^UoDqNd1O43+bz zHS+93DpwF8cDH~R!z2g!Chy<~IqfFrPF#5YN4*^?!)VI51}vA?Yz?cTn7eSWEih>t zS^S77nN9|&_X;chHwe%WRK~#iE8-U_OdfgdKkJXF4U3lzn5Z#;=y0|vZEj+(tUi7Hm zz}ki*G}?~l}Y zHD{wXC&-gzMUM^KT9WE``-HKOG$jGjLAz+cx(3MBUEoLPfI3YaWu~x~6|FCtqu-9qxm;T4)F|oWl6PJ?=_*8l3*L{%bDeZgH>&Jfzm;Q{K5!~n zQBGDi2pfgUk5|wP=v(2;+@JdBXvK5>)@*Qe18KihM*ETLftTZi4smf{w_Ox7IfyE$ z#)T~%@T6N7c8FWlyiJk%{AoPFS-Q`jcm~> z6>q>v!A|XGA2*ANc-rZIFYm6q5hpBS>BIHO#Gs%aweDHMdm*zu=LG6^nkMx_Pb}N4cid*^nTnkHYbG)K|5W91 z2C1EUfFD&GvH8DUmFFMm+}~;4|0k~kQ<8THDb5Fadp-}@lUlkvv|b7APdak$Q6d`~ zm%`FUq9Q~of~a;HTaYdcuYc!VBhGH03P<(PDX}*+k?z$!ZJ&=O^OrS;f4cKZxAgd< zt;U-Pao}971!H@VZK16SwTrzZ1;tHtcR_K$g7GQDs_SHG!<&t!*xJ;xaB zI3ZwvtA*thl|*8$p^P6;E{+y<-kMx60(?cd9aL`y2qai}C7O9sredV<+bvUCbeXu{ z;Q8H-XStny%Uh+wUeE2Lgipr5eLsl-aAR}mzCbVfZ5aC^u&P1-xnxU3q1g{(Um0T# zX-)knBL1?Gwg7p1t)}DgL`oWpdiox8p@4ZZ7ml*()9&0lJ(Ygae!wu)HFwJSSeV|) zsKiLU&bb^4{d>Egvc*dqBUIbu$7|nh^dBG^A6ebch=#z+r4b1&$-&c$6@b($hnkLH zz}@)Ml-57t1^V54eM5Qx3`I{MX3?ySXav*F?7Yr;gQh%RL(eGEu=V=Z(dCu^74gB9 zq*06cqK8uPde4%zzkSbAIHaHuX2M(R^GSt-a500a0kaa6hlZvUoPY-++wI1#>0q%~ z*W`Ao^ob#MDuJEuA1dnwys|J zrXxME-86WGdU|XH?3f!`0%SLE1je4C&K06IJJ?AnVdmaTZA{ic`}al$H3wb$bY2Br z!I#;2N>4vilwCS$j!Os9&d2K$~kIV+!T9q--a$s1P- z({5e!Yv0}#Cv=Wel(iA6*Iv#*3x>Aa-^kAU=0HA+aqRH*_QT31OWh-TspP1esBGLK zONp?*eDDf<~zRW6c5q6;dv81yojmQ+Qp#wHAk_#+{WAIU$ zYdoclcI2%aNWSijGACUU?|<5)aPX^Gq`c~YY~t4i{-X>zA^-uDcUfA%stQj7OXvl; z;RgAJ*R-ht5k6!6!BB@1-cz8!*L+5}l zy}Y9IP2$j%2={LEBdC*21Y((Lk`J0$r^7$}{rk z%ilTmsSFw1TYNn#A)vp%bHD2aND`h#xP2M=upONYhGZXn0=|_yMdGJ7CnRg*`0BAC zJb~{@nwtckj&G2SYmB@8fP&`;T(6vy#JCEe&^f4Hy&T6iC5)vh*Wbdyras1u?z49n zRWC7`W(88VOm>v{CRnnMqTv07_4d|HI9LxyKSZ6sr!{oI#khZ_R^r8!t++3j_k8gS znr*gpNn2E;*%8;>fwD=MS7hpU+@LZN-%6QBgy=-3X{Z)hvd@qdz`KK>@`(uR5h6d; zSCvk(14@Vwc4$hk?7MB%+@uq#*z-!kd_|yU&_&iq_EOw^J$x>4R0lf3iw0x) z1*jrrBWnZ!O!g2>0b9WjHYRn=4xA#A1KqEp8a_E{9_-AQbf7Zv`m{H1S4Gy3;i)YH zCDCE!Nsi(xKGLq&90IAT0&f()m`1mt2Y z4&R{Fyx(!T{($%rNW#>Gee;61gW>uUlmpGo65G3jRdNF{X0MNJc+DMxJsPw3cI(!N zT(%%g88Pv$?T{>VS~>#UMqnV4v= z!=}{U)JWs)dshK&;rCV4DW z`>fITcI$1dZf3sG%CJ#1!v*QbP|u>`P#d*p`Nrr_S1{)bPupt_7$;b+SzY_`?FXx| z+d>Xa_PpNg*d^;*^L~&~;E_ z?9INR!%f%CD$i{lr+l4Y4?tInt^&?wGrpC9X6mzIm$4g}s|J+R6 z=LLcapMZShTeNgmIJgf!^M+pT@419&NXP#S?h68W$3UYxjg0Es_h&D4KW@yj7jgRr)cswQ>3aQ`vl)N< z;jD^K)AGt&a4ErRGLd4mP=jDppV7y5X*0>^^%j|FmOul9^(bBc}u+}?XdbJ9e|Aw* zw>WmoP<5&-rJx!AheXNGoTX5sCRFcE{5fjG2kwI^3qXFUT?}>viwOo*Z-%C%1c*5) zv7UztfjWgy1EjyxU+q@IhthXhE3KLh19!&4+$zrwJ`yoHu0kI!4V7mad`8q^c6%y5 z`g;2Tuf}1y*BQrqiqvz2OoFhxMUr(-*V~>lWeb{^(Pj7qaw1#B8M;3q5hLj-Axt1- z&numDJj<~!^V-8j@4RD~ud`(ZxHtqp94%3%y3j|#YQ>;EH3mV{vM`OifeKGKT2jc3 zcvnwAa8cq zs5Pa#W0U2$+mHZ3-Ge0dCF=#eWtfju zt>l5X=nI%3BEscD{o!?~vR@4wtXD7%t6F*nI4MTnx^HK z5erdXKtiA-A4jkv>_t^R8)XT9qvbRUOjaAd_`nS+XV@huv3jWOVy;=Y0&ly1;<9E3^d?^$ed(w0qvQ`R76oh zh(Ut~ogW5QI|vqVXC=;5->sNmOVm+g5IW0P7so>9e9LiEOCoSz*Xt0SQS3}%tO&o9 zM#Pb)d?nXAXXYzeg(u$Df)wo^?Vt|N4XEhKOs53NDC}7n8qCfM4QqdwW97Ue><#?@ zZL63coM;vQ@~*izwcx?zYlFAR#=;Gg3VRLisBv>$loc%JQS$?u(;N-&!n7QaVKfqq zSZ~U`RT=|$=%LuCStYOb*drS(^%91=8dE=={^X1dzSm|*nSv&WKwm!tQl!OH1AiZd z`Oj2PZ+Xhd)1soc=+DPgTzJ7axgl2dsQC97QDp;hg{*TADT%Mv^I4bx_lMts>PxFN zT2Z9S*aWC-zNy23!r$yr*j4bY;*KiGySGc>y)P=6*6ytuXJUS)T90#Y_)P2asTelq zsR*Vc`wsde+IlSBRwe{uk#Kx$-gALR5R|K!N=E)m|xPpNK zv>DFF1e!J6%!8CxkvC;GYzSwMsyKVUgz=|tJ7168-HG+sqBeeLVdstZnz!6<+iYwY zSut!2m?0Os!n)*a+RVZ&TZ43`@*BNOy@J=ribb-ldgCTP`qj&Fw91WBDB)Zjq6(-F zAb1O0^R>82^bBfqPA&pIs8pug-MN(V@%886lRTeELtWnt zSI_P3oYtr(M<5a`93uA9Xe-qx(QO3ObcQc?sA_#P>eXrX+RDRbkQ}7&BuydNLZRQ% zlr2<(sRSORkH`kIBcB16CQkoKOAr6WR#8i=f-b;^Caf54=|qrPp6M7cvxxGU8N1~o zq21pOa8DI8G)u`0tYb{D^YyDXspXl6BRTWs8JJiGSm6R76kp4sI<(l^?S0s#4( z{zKY|zW>YBVyue{^_0>E`P+7!JdKgcIMTcfR9}XE4aFF;`{sHWfgY{eg%&k`C>wL zu9ZCJ{X>_prW|(64CC2uOcE{O4bB)r!8`G@#XzY0dM|V>V+DhcQNNYz@)YC-_8(84 z>+^oYlf)|BcIPK_?So#M;W+GDq0}3Q`MCW3W`VwDRnn3jQ^<=h!g`6OWTC02HTcQE zt0#@x;OM0>f*14@u+J~)DIZkaQ#=$IDtBaIjy>f27T+hS*lR#!a)Hu+Y}RZf`I_~N ziF%RNqjf#eiuS~oCgw34=y2;tJ%}(i6V$6$l+iR7d_04uB$KJv%ApFoW=HXn#Fh|# zGmrsiXskK-lY~6zkjcn*+$Xrb_H*0E&uyU9ki5$4ni8qg^5~aN`c$J7nr^*)Rg^Z% zsNeSU^0eL+ZElqZ{JcFv*%tDy2W%eP53T4u60iT@yzCrN$?r_@ew$OtKrRzMkYR05 z0l+X+lPU5J<{!-%QI0l3HTW;k5SJu3u*9v;_(CgA%Z>M{KEbi4P(>h$>QD4r=94Vtk15v355GYK6(++8R^FsZr$X?b<5o8*zsNPjFxU^lOkg;vH-?V6#V<8Mt>V^!@m+lpQtv>hrB8{`mN zk0`7`m7!<#7{Z|gE0X9qf)pr^Pvoifeeu=g<$BRNGr;$#*Fwn1df%zxIbg^+TA2B=RO`PzSJ$UtSbCYRudM zX0-)qijA~`#6rN|ZPj2vh(M+cuQJ075k|jeRed-glw~)7x(wC4E1mK(^0XAx@G8xH zslS(g>j{b}u7PZE9kGU$>>8l0Fr&_CH%+Hvgym%~x#@dW?Pp7WtU2Ry06@aINOMhbq@*oX!~eL|9YG2-uhYU_eWtL*)2J3l}NF zdwF5+eLSs0zaEJc@x;K0Trkqi8VN1k~Ki*zRNSx$5RTDb1nM1S?(kwf1VO z$jPGan=j@|&J*lvZM~-N!ET=Mr2W zGUER>rKt}RTP|2it*R2=r%jp`*4iPryWz;<#*wX=t?Zop@pw>&i-H2}GuGIc-hkrL z2EzB@!^E@6U6v%%cQ>WZ*hss)S130k!P-EnzGAAtYBZ=JOS2SCrEQ*DX}H<^q72JH zJGXk;!dw4XKEs96W9No?&duovANaZOWH^F;9F_pr$z5b~&nqoRB>0%ccu$3tU!~Xf z-G=hdeYWgUSTOoLrl4>wfqRz>P@o*oK*|Fso+CoUcC!6MOO@kdY>C|S#By|HZZ9Iy zm^1jQLx0NLusyf*UTenPJ3Qt!4__|UaDKr!=;$^&XAidfiU{|6uRU*PC?-iNF?O;|_9RQ$x5ij2+l*yg%*@sA)cx)Id_T+m{O;xTdhX|s`wynq zWUiUH&htE$_whd72l@5>tjk^)xq&o*D^%x#F?v<%e#+fiMpVZUvml-A-w=LF(e4Tj z-yA2igyR0|Q`_It!}fd>xpYq9@vB2aQul5)qVv??wzUNS)+9_v4H?3eOa|b9&KEGL zytn2AeKHxxXS^j&J%RYgAjgiJoVaFZth{bwAp1wuqui~BF?2ADsGw-fb}oelS@N@&6iF_2Lf$tJe2>Gw;a)X}k#L)Qlor za`q2nsj5P63%&x~0S(@N28X23GeQglSd4BATSBA84^rhjn97t&jWGAw2nN`6uESW)_#r!c z*#k#Xc@FUjnkcO>z(VGb#&_O9vmPWvNIcmTxUm9yW;faa5AWt|t7b$wNE_CWHbqS& zDfU_OMjb8!9MS~I4^~nK%4+4WcKS{2v7@GofPFbdTro(+1Jd|T0vOxi-4(r^R8;Hf z^)5p~r?s*oIu7Aqi)o$+_Dzl6BdyoE`g#W`7`JVRTlH{`{eVo$TlG%!1|Qy=Y-c`^DFlr1RMkD7qX_5%35Mmu3FdN4+Ma&THS`Uz?qgYQ!&UlVmwUnw1D#$~-aeLIi zZ2j7>a;yAgVU&U@c!XYbxEpvRaZ_rdQ*ku-L!9r zLMYD0*UY4Np6C%c-x}=Exb9?(9uIf2mz49zNQSk*i!GTFd2;~nf)D12USy?j6twyb}b60I{t+ZM0W1!W9#0b1=g4%V@Z4DlSnjyY9v-_l>U3e(AxH zvr@MiqksekSOwvLRRA2_&8`;k!3LrH@9oGgrW#ypFSx2xX|E8XrYBg_#_l{5t!;C7 zr?~VpY0Xb*etR5BFcVhx*Uvm(1;auZ@f5tU1>9JB8Ap8ispK*)%T0RxZS%5y_(_3C z?eK??1Y!jZgRiNEg?E#gqUbsahfvi5;)4nc>~J>Q^n$3QPll!HBTn>!?7+KLTZOtQ9Y;@1J1gHnp&Oz@3^ zoRAJNRGz}jXKKlaT2KG=#kqGap!OolNUtc!9{cUni=|lI_`}eN5#TB;QZs?>}}$gPpKMky5oa5Qr_RqDWY5l#N2W!?FC{laAi*b_&4>PcEcv>^HyCfLpe* zL-n2B#W6yJcWN*<=>dI4;bxN~%fYv@4eP#YC2*`y-A&ulmJjKdI1r}!^c1rrpn-Ao`njaLR=%=`dI%mOYey&i|p8k zbmU#`ST}-sTEU~}hK;uvftmxrZrX-lw{zPt;#zXl%q8y< z-_b)#F(vfv;cP%>1Oz`d0o1SkTy-X(9W>>W%XUPWHCx@C0hE5X#9c2?P|iEY>Zw5BL!OL9t_{6(;ch z;pp)l5}B+3)j5`E7mK}TVFe^(TcD4p)r=Wz&g50)tXdH94JE!|CQXk)bAq1{C)Nav z0q}EMEs4%o3_xr{%cA>K5@J9Ig{H+pO#eKg#I-Mzs&f3pYudi&;fhVa?3gz_@UKMR-yrV5piABA#%xoB@$Oszj{!=fNDK}td+iM0YkKl z?Z5cL;Yw*_KGNnwYCz(&s^&W90xSIanH8JuFy&j@%MUp2)o0)xCym$clnaWi45}mLS>;^3ZuWaiRlFhD(Slh;2!;hd&_~`Spfl_hdd8;*@Bej zB@qE&vx4^F`)w(pmYzgcZ$2Dy`_BET$;ONv!_V1=F#S4Ti6ewW^@-Pdt<0R*{vZe{qN5q(Tg zj#*5%7Z2#n6-oNt+RNp}P=}h{!v~RCQS$13*TsI)0q8FS-9I^!>wtvqI}~;N*EB-C z;@_w0zxwE_@Rw2Tq!W-kVMPtv@{?^K6G_m;q;#$6I-;_eG4m^AT2JPW8X&slL<7H{ z36%d;XO~$Ga{z5{ay6PR1MbF`2UClyRgOCF=r{kJdQ`(su#c$5H~w$C>Hqfs^W;B| z)m!}4Qyh1d=E(901wy^siLIB{#y<)#v4j@H$+X1ZA3W%n|GkJvLrpsE(DYg?^t_v- zq_kvA>0!pra3R&*;9UGcXeuiCFXf{D%IRB|7=|9R?nF=Z8?)B;jC10Ma2#@S=r~gO z0@zR^oQc^NJ54aWo*!C6Ra8-b?TOPJqxjhBTGj*>>&uRq%IVzxN!wrOrC)$;mnu z;o6sdGne92T$X2>|d zDk%I6Ibe9c7aK~qWH+Q~&AFdvQ~3=Lq`atD7Vy&Z?hvxK+-3J&gXOE!X?^~Uo538`sbTUe z*iU1FpbTq``pbo7zWDdv-E|w|Q3sHiBd`V%@RMyt0}WW!E%x@gP)e%}ARzyI8J z|GFO{{VuYS_RK7X5t-VPC)LUlT~B##|BxP+n|j<HZC~MPO-~( zozlsB=v9`Dhiq0%y&jGp77_~bz<|<xH^W`_aR>pzb^u0`ci^!RaH* z_h#lm1TUX;7fbJn7T?a>ND1UR`UZ`@X`t1kZkE6>y!4t%pS?9($=?(1Xk?=0SHL!?xX(vgn!b>yQDrCJEj-5#ME0Tpm8C*atuLOkiMH{ z7PyDWi+ycbJHl(&lv6)GY9;FQRkqwf>c&Kc7~Px|hLgkfBJvEupj+ZO*;nJ5%e(e^ z3J|W{5S-gtEt#v^oAxyL;Y$*5CoV)-Au|YlofK{(MB|Fam{fHz<*-`koc9@y9ryc^ zAM4%m!FV5B8>H8A?Io@On7UKM(qn*BAAY zl=g#(fERy&s<}ZLF#Luf28Q<@Yey6esfmp!zS>5CEU{2CbJx1fJL+@$-DP{PB-we% z=jwR+Res|bR)JMA*F;eOJTVxxri!vQtJ7?fGy{Tw^@?SzVn7fguLImCrMZZ6PTu4V zly=e4;}JDgcU<$Gli&779BHH1GY&oeWXn6=JU-KkIYev+`6J-D{9!&x{4&e$CmV>2 z^;jWj$~Y>Q5M9Ls)tvjsjHoMsQ`bhv((%1W^D9f6pKPxdu93^98R+i48ncs<`dpxb z_2=f&lsXrnF?KH2*oAq9%EgqpN(-i-@40EADcFI@5wnm&X*AS#Ye=cKr1;Q94yKJ5)rlw)To9Nktav z)ot6-ubet{_ygO#V6R5~C6p9;n1%^YRfG+E-82Hy3OXgNOFKeSoL_BszTMr!Ke2lt zwCk8*`NK~YUK>bI);NGL0T>~Ca2UiE!l9H(dIYuSOhqZ6;42rAgk19Xtfs#GuR7L_gs=UH8D>$Pe7ZPu>X#<{`C0&GooiRdb*Lp2|ytpIgrBg;CgU8RO1G`Fq60I z7D>pb*)q}Qv+`u}$m~|8q14Wndm5Ko@{%d?@*hrJ!902@!kCyu`0e4DH%Ggd$yAfM zh~)%Nzk;KyXP;fVIIH7k7wuoYDlsqkx5_=WD5}96EQ_uNOi!fpjZcF!T`M>ze#5Q z9IFLl+UQZNz6kNX5@$M`B4AMg71?C5u+{9f`UJ~Q%eaeDNiFsz&8?rq@} zvH9HVcB!%-2i4Hx64rBQxBye^*r>eU#$W7wS?8B8KlZRvI?Q@xR@jzy?5UO-<6COE zMWX5(uUHz=8-QkT9bPP43j#U(>eT zqDjlbwlKI@=}}P}y5{-un5MUYjv+XFyJ!@B42u+*;Mh zaqnA~%3{6P?A(HMeBM9PibDj1ezL{iM_)lRwpM^R{q-KTRSRHz9t<)y@%-geZZQZH+R7^ zrIu(M=UG)i{})J>5vDCDN@3!}B3FOMx}Dq6pY6*&ode^5-KOskP6pj>-5*zd)DL|B z^@mvRAg47`;5gm&_T(_OH*{pV{xNQc%kB{|+VvwgZ)H2Pnem2R_n+s+%j}S`4HX!O z{Nx$Q4wjX(la&wnOKtG3wp!rDvl=jY_uBVv? zBp;HtQ<=|yxWQ75rR{^NPR7>aIh_#c&oc>a`t8@RcD!}#nXO*G|E6x^m;@_SBt`xz+0r%nojp4Psv}lzi0Jktv)`ZwLIR zpg<6C;l%wehUgEN^b|e{HIFi2HDtJ-5pxb=Z%mPlX;l1pN_Rbr7jqAyIx92|xze3k zX*exhBTh5rSvOPZ&ES;8Md5?@#YFQXv~}h9bf)eX#~*Dt8k2idpEdYw-M@4~|N8e| z24CMj=|h?UrL>(*Z=s%gA`*T1AJfXEO3BNA+VPw1EgAp?OIiyn3bJ+plzf?Gsgy>M!(@4P5 z;S+w4x%Y=@s*0+wNsYLu1K+d-o6=$=dHm&Zf6!!vu^7yO-Id2JuEqNUs*_%6mKu|R zbP@^(4JxqOg;7v{Q}mOjC5Bb_GY-iLP>v@2zjtQ`p32Fvsd-UEJkmXT9yoE z99McKbtQe(aRtr`G)ig`%rYmllX_eR>+dN_O4Ch!6R=E4c~H zhz?Q08ybc+ecQ{i%D0AxM|mn7M7UBEkcNn?}S}7`&OX zktWpM9B{=tb${n8Q7_@_X}T}z<9d-pVXMRFA-R#ZfpmH<403kPuVAkyOp)_3?@?R7 z!o0&h0TSjFo+D4#Ws!C#JE2w^{SPXe5|_^%6+iJd2dtbTJA-?KI1oHc4D_=W3|%4t z(2jS}|IT>IwhnBCsV&x5Np_HO&G&fhv!J6=94&VQLn=%&;5L1{$>${{{>wGjj#>2$ z%2VHQaS6N#4xYm#kp-cD+Xy(ml8&V)un`nHzpOVXvTPH!vTWHC;MXb_&?r2%P~yxH z*mi-YGSkEmSZj|9wyN6g<2^b#JvoXMf}adWzs^z)4fB)B8BE$9H9mIohMZ}%{+Kyk z?}m_lSQooW`2-sh@+wD#?g>w&Asu9PElHYK?LpQ4HG^R7QvY~U&F&G4b-A*en#-Nn zuiLo2{50FHHCesCi6BAv@^A6pHJ~zLf%`(HpRNGG-phzLFc-r2dhJOtujXS;I(RNh zCIF3j_3!BOv7Z!SCV>qE=#(egfHeeNzOWUVn&OkyU?UE)FE3UE9W^alj45Q5Fphs( z(E9d*K>|u39?MS-kFueW{Tepy zs>Yl@_76IDSVMMtnNi!BLgQ-9V_Qf0h?2tl-u|%Ud8;?07e%ZP8YP63ocD>w@=VDH zRy>GE?6l!t>>HJx^!00Kj$9fQp&B!{lq38k*aPJ3%OB#c+z(TrFwn57@u(zRMK%sly~zwG0tBc05P1R&P9QKiy8+PH<9Bs93Umoz zn6hYUNZ-(9U(DK=au@%CRv+?hT!%nQmCgQ;);p1AByc{Cplylp6_wtBYVt-AYKVoFwKU z5Tfh?1`?uX(dFQn5&Zr6W2uL!Ut{}op6+UO`0ty5k#7~{71388~~M|d?;*>AFOq+a~d{nRS`V@#pr*+&xRE89L||4aZ~f)H+HhL#_i281T` zhNIJ7`-oNd-(Mo%d;21FV)A5hg7f3X=7R@>>sI4zY{7;Cs6Y_d6SV-WaGDVt;bJOd z!92J;rUqAN6@XAa- z8_(i5#Ie%pn12vNFD>^GX6LToN$!v5R-AvD5ZRjHRJK3TCUcC;ls01U`W=QXsY>s` zq+B_QHdjpz0Tt)GpZ8UKN!styUVST^`=paU~5O$ZXov1IrnSiOMOQVmthg4ilSB9tkdMVX7#Qc4H~*GZrQaYvl! z$L?Bh;GhtM^uxUeY8J%zjJtajv?Ta6H5@nGI;rLCCjnk?8l27Zei$lo?T|i07osWR z-O6fMkf_w~kNanSNZK*K47Qv4(7^t3=LXN^D%Dx)x<u9(j?_CVD0Bv?tX26TU5=srC~ zr)UnLSw8*qHBJ?pY2TM=ZN9#@nu|5;k2M^MNwRoxg^exn-Gd9%%o%&IKo7s;w$qHd zUsEw7ASW^|-TOTaj{R!*YUc60sAlPcLgIj+WG=^!-X2W`ut2FUkkBp5 zD48y1(;~#pJ?1)iX!}7gEsw`tkEH9bDYvq7O}tItbH;Xh1?P|-EpwipxB?W8tIJUH zN$6nGGPtcBGHIAjFWem_Cs;l}_|ynWf%9e1$K?O$Ze!Q=+$!!g0tZ=}|$FF9J6K^*^ZCB-&S_~QO}frCQ}m4ko_UE6@NLf!a^OdR$6X2Mmsg-a4&}<8|Oas#CPba zZ8DtzD-xJO9UzThilA!M#UzTx+wS{$KO3m5iW||?Kk+GM|InD#vD0B`{0SU4^Ap_O zYV5kRf*zxu@;+^=e7(2i0HaOrJ)hJGU0uARtR6R5wI8mm| zgOr3)nk0;>|GFiqyTb}^gtRXx%TE|OZ(DfIml1TJn3={OEgje)a^Gur4kk>TLgU%& z-A7on$0_Iq56rSMG<&%Ua9M(8k!CJB2vLIU{7!tCaWm?EN3ryx*~GraPBu^WZHPS? zb!RSiaPWls0^@7w>{ARZmkD+iB7G3pWJzSN##-=3C4lS|`ozIdnnu|&Ff6T>2`s~m zq3Kt}C}mtQ$ql`fo7z3GYqI2B)bj)laSNdko|tdC+Y8f9G6Wsb2b4^022yqOXqoA_ zcAH)8Xvdkml&G9%G+3`LxhsKm*F`*p@x(l5J3g(UL2P~g!<+3jKD(4wrGTNeMccoG zdBN=;Euxt&mDj%YyVyD2gTiU>f>_PNr2^u<=z9v9B)P{gK;h`&Hdkrmy8fuvMB2QO zieYJ4f}y4Y)u7Z>-=axBGSlS3Hq&k1n>1_>iPz(5{dU2w8B7TnLm_Yc_Hairp5lLi zd^$hu;x7FwVYa$~$j9)BYKqG-zb?@M$&tKGkAPyK61cyAW_ae|8d3R)Om)zo)Rqp* zd==W8r=FDKav3d;D!DvWvb^b)EUN1BieqqHNL3J62Vj${w?dTZBjf-qnqmjlaDb>n zORODijC&BnY=-3QB;ZMZeA{gv>TjLxog4zrIt7*2!`vq}?KV6I@T3^1#sa*CFaV9X z(gkzGK9Pqe4}wxMyv!v;=WBsq=CijOYZfS@~xnQZCjNZSMM zCYoZ=c$d3Gr&5|^Cx8O*xPi`e!7aRSMDX3bXWbcH&2Do1yIO(@a{B*oq zTFaYO-xaC&uXE6y3X0td%qmsS=9sXL>vO#IhESh$5jXMKornadG9zP%soAU zbRw-t`@Bw@rxZNz*IVK~PiN60C!b!S9Opj2k8q$XOU|YD@#%Bp{mYIMVt*!>R_y@S zJ_1_H(3B1|HIFnh3Pb{ab(PW`neWm0Rn>Gf$ZI-2eRTjmn@~YX^ISQ;IIEoZtjUXX zWpKBjJ`Q_*@n&>2P@d5Z_?Kebnszz+AKV7*4IMMUfgHOm#=7}rCBvud&P8+xUO|X? z3J^=KUt6OLiNN3h9nSvARyF`I_aCfjVl{fD1P53Vi@)v#@4tKU^HW{yr;-4ah1@w*Gwt^$xvLK{#^b0DxzGr(LmYnb@SHg|pn zr`KbTp8dRnTm{!jzN7nx!imVjnwy9~&e;Py*{2AGQ77+x#qo_tX$9PwATYh892|G> z)w2nCji3k%4>VNiP`_q9hg+v=JuIE@PQ`P4m((@b2U_nB__}6tacwmnJ*+S@V~g;8 zp`rs8`HxLe9B0^Ro;5m3PFpVz4QiKL76wm5>MO@`tGjc^tLvF?Z0i6L@_LAOG$I*Yn9}TK-&ugYA2^bp~4OHW*NBD;b8Oak3is z7BP_o9xuFzUaeENj&g2kr`YUL;En^3FmM7i!E;AtvQOd^m|z9tyQ_em?o9-gnV0-7 zr0alXSn+(0J`YP?rSS-E90V2LbAsWs(Y?1Uw5&68(sqwgt{hkioh>;z?XT1oQx`6- zZ-4cn-W|5fyNJ61-Zel)R}(f}s5#QuV0{0Garl_#g_9LDw|f%7PjlY~W(doeh7KW{ zzd3Pqy?Qm{o?cZP?PM42h-0CM05Ir5byFDX zMSOo=1&RXA7#iOr2`q76SLNTI9=qEsYq(*z8h4tk#^b?8VbJVlMDKMTO@Iv&8z%H@*xsJtkVpGd;gf zzR5fca})U265v-(eSn4^lk&;T9WwhmY>lH(!r9N?^;|aP-y7^)Tl;bwBK#usiF2)C zV1m##Kw{UIUjM)}!2W8`#^LalyL375*)`T8OR6y;B2|^vQ;X%SzB+=JARBq@nCaji zI2Cl^-P`LM+Lg1t?WQr0$2K@zjJohc5gg`HY(JVFPgR+Ypx!m7E!W{UJEsa$6Yh&8 zc|&)`cA;w}c5#l!w{c5s@V>V0wSve;Ts5I2w3ZC-TArq4Fil`be{V0!%qicuV?p#C zA_YTc{N~`Pj-@q+_iv7q%bLoC7?OgZX>D7;RTt{{zJ$B7)}0VLH%wp%f_w4(gx9J+ z<{-h(V^Jqg4&L#Lq5yDsZSZ1Z40hTR0vOHeM^gK@LBt&Lr9t-JD6# zXk9>eSGAPmuFs;N9>6Q!q=H;ZW)-1leE~LF)&S&M%ftEdwBXH4$RL~kI1`0vi zR7QQOXmKgEr>@sMr$}YXpleM7T0oa$mm}kFAkwa{wJY|(*)4W47)8Lg<+WhkK{}H! z!yR;c7XIyCoXFP@f__(peU)L0OQ&Fh55=eaS)xFmD5eoDMFwJXHH)?i(;7eRwQI0pUK( zIO$B_Uu?U7!S8&xk6k=mo7iCR@jiL$SPAMGxuCI8T9BRu z3l7gcNELrFBf<5nCRDvLxIJ}8jA?Ymy>-J+pfX&b+_KBk5y@JsscWnRW zh6Kc#)Uc6Q!AUWgj4E+3U^p0TJgj`buUbf3kHI-*y|-44t$AnH`rh(}`8O z=T^2LU6+--6Am2Rcx$Vd@s`0KiC>J;eH>;@L0g!I%TD_-QRi)YKT<@35?*jkXNbU4 zpiM|XA1+|*M?M1?0b7PAQ=kY|(TF&^$ImoF-1bY_hGRhnadlK1AbZJjup ziSNYs6GuNHpUC-yI(!)Id)CNC1m$CVfp+Zslo#FOHLvDj_Y>RQh~q1%HbV?a_vxAI zR|4*ch`^*_Fsrnr0qDV~1Xm~l9wM3U+F9XBE2vvHJ9(bE(lu7mp>@!8OJq#5c6$(8 z!x<&%ujgfNZ8+t?YoZIjrx?#Wis~sMwYN_O{>d>*-cQ zdIw((PV858zbO3X_R|1d0n&{Ic|;-zQt@FBkOcrK4w_;On_Z-#>DYc;Gb@d*WZ>?H z*RWl=%gipPs}J?{_g2q?L9ci~r9)&A8Dh>TF%m@(BsXFVvvZZXVCH8x(m7w%wi^$n zjMb*}wyN{pYMRnxZV4XQ5J3Yakr~=Ty^Lh%^b%3fCj#uaBH-={<30t^``tt*^v6%l zzJ0q{KT4a z70w|){_feuq@r&{_bcM+9HdW8w151}>lCRODdWHwd!_1tN9jCpiX5yzW6W*G9V(iKCGppPX`y zUMq!x0+e%Guj2^$-YsarknYl<#YMr0e)WIs6H$xbV`mD}o@Y`667c?bM_GVV5f)M!^*C zH9wtegtHGmzUuDq9jNM;WKVC5-2h(v8C9Y%^KKXgD819<9H4(1^~%7O!rHROqkf%l z;^nC3$&bZ>2Q*HPZDN;Y15=1z1PEF`CkZn_?#MaJB9Yv!1&qakl3qS45Y-$FD_N76!nW05mQ!;Z=kZZq zW0X&dmbPXKk$=1PHXbq81kd%=T}KaJ$i3otgZKys;>c=Gw98z7n@zV0`WmS(oIJu+ z8zqBStD_{~*L{16`nJWyniWM_^#{w`;NZ5R-h6ZO8OPGcaAq~w0%yQn(F!xhMWlN* zb9$6<+;3m#@K3ge8J)g~!jizT=#ERVyDIw9%pDwJHRglQJdQQ>>1w4Ein4T`@z}_N z2+-RE^ddW>7dK-biL8=Fj90|G1Xt;CKiPEER&+524` z68X`MqKyi&JTc=o7i_Wt3i01ox4x?~4bX;d%HGJk!I{d{L>R&6mLg?gK4Kh zsi5QDTB$&390e;And#U@Xo-9Vz(n^e{jD*(z%sf)RW*5Vgg*14rb8XK`nJ&T571pcVBwU_g2vfZLv2DN)6> zndy9o^oj8nO-=tsk_A`UeC7Fny~FZXZ`l95up#jvtFUTM6LmBFFkCSD%BZGgn6zO^ zVty;z!tu+!Ercx#vp^AGXn9`B z@%2uUixRa1;Twd%61XYw65}BJI?;gEbKlQ+XN79h3zPXHZ=9Du1|N0^F*N76Vk@kS z8*k_ONT6C_@2x@&pk=^#Mlj>YCHk_EGs4wb^zB4bsh$pj7jt5&x|XZN3Uzq}h-h%a zEnYOUH3ZE$W5~$&Fbs{bF4X3!)w=VFTizYNcv#_zSTEb?`b`_y6nfFa0AMRP$w~kv z7K~_gn%_eg!Y0+%TH@*bVWtk1$t!0Lyb031k}%;bDZXMtvm!7hJ~K2hxK=Rj9nEg| zy6>dzE5BnE6|{Q~UWtr_kH;&&xXJa&rknTn`mq^%>0CCQSYR0QppSb<&RE6{8*nr` zPImc$gSX-0PqvSHDuB1OH#-NOJ%z_WP_;Q}TohAS!iptsfxbWgQ3bNWU`1$L)JEqg zTYlCnkP@crJrnG}4k(ON5ZFm}sPM0cqYbvjRi_GeEp^7K4SsXG{_^Q2&6omNvvENt zn3mo88GY?1TO@kZOZ~~73WHJ7v};zAj%%20VP0{mNvp4HB{Qlg)_~YUz!P|~ahgmX z8ZmILf|v(4>sGbrXmtvtT6a}ER3DcO+6PuVnF+2Itce_iY94kXI=JR45Wa_@@mfkF z&T3;F6aFu6pETqh4!>a#Hj};3sI)z`lYO;|;evc6af7TOh0Lo86vq9o(J;(yhna=9W;HPc$lO+a5u3ry=jh!0I)_uH~sEXjT%Gzyl8T@ zI92MB!=mzQf(T+inv#RR9T9(4W`X&P`ve>gx-ZP{#wi?NTX$$IN2?n)ttrSedF z@T!tZot@8eyQk$UNv!Aht>@z26E2w}9eRh^2HxT)8xC0XeC+f|5XHO&Y6saG z!=W`K0l45|NyIT~S64`&EB1~WZ<47<+Kp!+(fjwjh(1==I}w0BLApwg#Bk%ZaUT&O zn%;ZTGz6Q9eKy8YmcA4^tKK~{TJkR8>xu9$`p=!>9l}i;6Q0d{_#jI#CkCL0dr&L7 zdhgp9_@8V)bYJ(77unYuW;sDUEdC|w8i^4@TH0GhB>!Np2X{Vl1jR=h9!2$%8dvKg zu#{5Enr3?nA@pKSnIMz)ujqW~%-2eXxvi zHnLS^rsi4(G}ML8>mS-$g!`Pk>z)SwWK&jtA!T<(!1E!SjtjV@oM4l8V2U$YZRpiR z^PagS9H@#`uLCN{&P33#J4s*}zI9z*4d6kpgUhy|28<~R)8I1vA^_qy96<+Hp+H;* z)?;H2-H}dzErK6l5@xWP%?lfc3R)s=AMuU&p|pC2IKhSR1D->Wl^@t;L64xCRlqmw z8OE&1K!Z}jy}JxaMB#GC6HrWnTmXJR`>tiV?4ODvl}jFKu#`oW$tZ!>O&}k11lsp{ zDG~eSC~kG4uk3uLy&liyNU@z2-s=5fGCKT4G7}`fLE1l-3DiqKe=&MM+kMORkkvZ9C(5M>*8)<~1dPuh5r9sAU1NHG+K(GH$Ek{a6D2pk zmB=XdxNnz-?i^OJ*m`&0_Nqo$lFCtyDp09?g5Jo~rltlDllXcIw2rvr?Gh4xOy8U} zWoynGe?0zp-r$*Ft>E9$In4l6BG$16l>olS?5Q=ZWR(QH`sIWE;lutX1vh`ee!tC8>mURfyivh=UpSSd`UYp6S292s(f_rw0sjfAW z{#u4}$0AEAiDUk^FCa50!UVX0Z{~~NmsxxKyK-CBH=Y$xhT^FQIeR`UgESrQlm3&< zNbDjzEC+lSuuau9WN^5L<1l$p7$U_yMQyC-ceU)UaP=C|R{;D0TThpS`QBd3HwTS< zdBZsRKj?2f#lx(Ne4s5)N6<_U5TRac-w?#+}or4nihY}pV+ zhDvJ4GLrVYN->gup!&&XXsEx95jkxdw#~4fXG6DgAzK~l*qW8U^-T>AD=#xQcYpb@ zBe{R7LE`#>hT8EMNlZsA$F%PDSArlz2)YYZ7k5JfI1Mn3BNArOG#k-EXr~9*bec5d z>4AC&rlZvmw~ zb*MKHY`vHKq7S8jBG%>+LLEr46_}!!T2d}KPz&=4Hlu{zrx>=$Sbd+pFmqN`OhZ}4 z`0%x`k&r{t7up^ra5?Q>%zW@~BzRNURXxHn4IVJ;PVKCfA)&(d%9lr5mu}wr^vO-n zCd{tg4f~WP);eu6rft?Do%d)LevLXlbYT&T!xVpd;nak(e3{YMRl_UzMSb#CWYf_V zU*ZrC8{!0ZUMh*dYL6cX^MbRHElhQ|e#Es+9FCwArDjuD2d&E1H@*JOO=&snDsGrN zv~Ay~X9;^g>KZ^DNlw4Qy*Snm@{QqAqYPlK2_6Ct`C!~q+QB#RjQZ2eZFbC zJYRFj{ITO&^KbU;&3jIWf2<)%^Q>ES1mBKMynkuczpJvo0Z+Lbp{#pN_VHdcMWV~T z7e-VR&GFigO$7(IE}}M|hZl?k5m}m?>JjvV!b8f1eR~b`4XwW4iB1tt*WhC9E)yKN ze&ehY$2St#Wz}g=zCb87hkT+-l^`*dDr>2`1=$X5YQuW%893^kuw^^vO8&8}y=*rO zy@;(q?R!|T4%;UO87B3FKwit?r7vEHYaFVyLN zv#p5=bX_$g)&Nv<!D@SbjC6Sc@u4n#|h?$i9s0KmHy<4WbHv&Y!GHUaG)LH^jfxpO-yhUu|-p_qAPr zHT~F|{S$VJGQf`q>yqrW6)5sY1YT$QjGEEJ`m~ZN3<2o7zI)kC{cw^jX3=Z%;Y)Rn zw4v@_bciOT)kYm=fKzuG-dtU^8P3QC{V%Afirp@^RK%RyJfyoHiq^1BpJ+GSLa1`u z888DdBzy>$oGc5ViJN}l`Us1$Dv=m?e-C=a@u)ZiB+tVT5J3m6SpdtWxnAQDu?V8y zRq9;5DF0hOwNB#WB;|mxiRc|tE6(!!22Xt+lTGfu&hcrIUPBTA@-VP0D*Bg-jZu{_ z(-?luaJBR^q0I%k52v>2)0Emga$H0e9nlVfImC?kYdZ~t*1fhWyvLWI#xVW+d67*+ z|1$aAMw@W~2k>wK$d(8oJ|`bCCZu)3PQ^K6V8jiW11a3>CeKLPyW(fFHC2EZ{%f>^ zot8J%b;O|@um!4hgu491{Q17fC(|pPIP0d~g)sEb+VO%RX-b#t#=>AlfCm6e5_J0EdMCq z+w8e?fo=uf^gUclUyG8%V6mDb4k=g)CUp6{%T7b7h=`UGdYMB_l196?Vv^+CVgiFo z_l%HEXRW+pC8M3JJ?R(Wf#)!z_Qv-TiSFP@R;nhPY$buAR8$YTQ?| zyuZ%A=v8h1*>0U|fDyE7QP%=2q7_k&XqCM?ZVfj$cI-FDavQjJAhK<`&vXYLhszq| ze7Ba?cKL>O5F{Th0`?e7TFm)Kx&ovEq4}$jBxzc=2U;A`#(}L{U5K84sO*W@s3h=_=&NGB>HAYv%eA&VltL{LF2pcFw`q)Ux-1QDeQNDZ9; z2_*zld~crF&z`63_np0Gf5#l(%Ue#MxuLoc%GN`>E-C|cxkFprfQw#+#Ef=Yppzha> zqzRN(*>nK@XbD}T$WQ^}>*xRC-!W3hK&kC2IvWgmgKVDBG&X&n?&7ZxuA!v|j;{o7 zvQ`1nx%Y9I^#JHIX%!uol(o%PV?+EM<;_3pl8GU>;gfG>;Ur!lE#Gnxex`NsKmMhS zDAdApE%Ivw@8qwVJ2_{L01|oGD25I8P2>cU%3DlAkqapvWFt~k4;4AY}Jk#gUN&AT7N@j}L^^7d2SixQoOsc6d+fH?KZ`?OqIwpx(xbRC@Uyda>g~!01FhlKz0CQKw z|9JWwj4vwz5-Z4jP*zsSMX2*z(`C`WK9lfCRM}_f+4$`P3~-NcjS>IW9(4MUQyZvl zzy>xfXiu=WI~o1ei9E3$JQ2^!Lmp(WRrsIsyDvZ8vq$Ny&&iI!czn#BJGTmhKY!NO zd3W+}3WaGOe3Bnn1uMj+XrakEdXsq=>KCG)%h7yeV7od3a*|!>&KiiAC2L?4d zwtMAHDsuf~80CkEZSe8wTCk^I3xSI4awL{K<%9T6PHA7(hA;Z7du_m+jsLErV80y1 z^RHu;|Fs6~|5^jEf&NVnBz`hb9suK;OU|MX!`F(~sY{qUvL;jIfFjhQ4w%KpTytRJZC>yuXp% zMoJc`R;-GGF3bLp4?+KOMEJiB_`S~k!@~Y+mHsElQX1UZXj2Wg2kIAw*3u4Br!WrW z7K)p9E>1B>!5{8nn?6S}jS2HC)z|tYXm-@9_z}w(+s9AMC+u|;ZAhk}uh=iCs@DKC z&xX&$%NXMeDSg}3P^mA!xCykYWZ-2;Q%(Vw*y9(Tu{=yKJRGrNR05;0TK3G+oXW5{xy z_(NmEZp@Y6v@9_evx5&6-XuEty}H{haxJ88=iV@$eAJYg*{Mvk1}7)Z?f&n)%ME>RI>*W}4 zO+0kBrYpTj%{>6H(KQZCUqaVg9e$a;`2;7$Oon|l+O&4U+0!CDN4IW#b0XCT!a><~ zECrnEfqmWfEHid7U>p{L+Czqja%cOiZAqO)BlCp=92%$&J8j(Z%8b{P{J=Q@>SyJk z1ke)0ia-tJQw{=0SHZ)GZ7#`>HBv{#8qIO){fojl#o9Vo3*%e+&=&Ej<=DZyf(vXK3{!plb= z_X1oBfC*Ph0X|!uCIkvtT&O)G{%3pAiQJE~XvK~4$Z_i{XCGg!u+{zoYu&7`de&Ph z80*6D5tBe?1jiWCcT=~MATLZOlIl_g^!*54xSAgp_L0n$cFix#$}Qr0pOsw7zBGJl ze}$6Z%`$rtSsAPkb{z01bkf9(@Y`c#VXNl>;-xQj44fwoK88-^SW6|#bhI=gAHvzI znZ~r;$K&$3-{nB{a^un3N``tDlV}olPlht=9vVq2-(F%b{PgkD4aRj=aOWVQdyqT> z(3E&+=T+Le!5N()`(f5GAu8|CIEMp?7~Lu2*g4^BvCwXkurxid2R#c^o@$wDteClX zt5$crch4C-uAN{xL*RfLhI@YezSikMukbbW?y=pbS4xQ7$;^27)b-HoH$QFOu~0?&aB5#(66FoPFvz8KrSW zYV|^qe&9*fWqrz#QB)Ixa4#uVM`S*cM5^o$LjlHW%5~x0M_ds`nKo9#iVU|SryuQU zHk(4r1ZvsSIdQbq2e5D~;iC4Lmc%mRrwPRfn}ap#{f45OkvrcGdEelQ!CxuT4@RwZ zARM8(+gPvyr0pxbMRgz~Vw~(<_j_AVOuI5Zv|4JP>tg*-`od*r5?}M{r_4|6g(V+B zirBHQisZwJLH@@nI(Mxk%BZa|7iR{MKKahK7&5f_7`ckrRtbGZV6n9o)+eD2cAMq25GtK#p3lQ<0SO zH$Be#cxer>`h)Gf7kM6I$KpmM6zR%9>fgdkWRkM2Y=-p-GxaGa2-QkfWw^;$k>&KW z_Y#cvkoSkgzEKM*ym5L5wd{g>?>o#bQrr#IRl`2no%*&1eG~HZ zmZ9kCLs{h2df&IBwLo-^aiqSmU5c;C2pq~v|cuXn3FDr-8}B*?hXc4*O>XYmcVV`1`D%5M4>lq4XZ z!ispiIzOlqv43BLHjZ5K$bIy%$r&l^+@&w&%!Fjv+Zf7>?!W|rwoxHKSak&~W(BMS z+1wc^`owdKUYI`5HqNH<>iC0-{Iw4_vjXJqv|RVf$-JP*9So+d37kth0JGy9kegJ( z$zd=i$3cgY2Ny0^^r%Lv%HQfdqb?!+TrM+CgA@4x?pAfyY^C~hF0z&RIhhHtRfC0V z0jsxDo%RTD8j%rWh$cm5s@7Mk9Wq;gVp-TRxP4JQteK>7ZK~;TdVzD_NrDf{l?Hq@(llF3pKHmUemWr@=w)gb7!TFg2 zr+R=5hz8WO4KScDc2o-z6zgiGyQt<9HDXOi$rvkVneqFJYYw-HE6d^zWt_fjAY~I$ zeEf3Y%llS=sB!w2(G}zfD1a6EfjGa*VPOS8Qg>d5ofgfBocSE@OA>gMJwy>JKZ2(sX-k(sc6wKhFI7-<=)E>vg$Z<{V1P@T^UzA{p7kj&JLUJA ziN~}QMKmNu9>4WrpgkraLR3=2b$Gg};jiaNm6syl4C>y@8nBd%6EpCBB<-3O7X_e8 zXXS`a+a(8B78yR)Qinhfine4>PZBUOX$1U<%nw6uM17=d0HdrhQpQQ@Vg-n4z;R18f}M z7P{607+>s((J2nfhX?(!-s0Q>E*h90zPI!y0Nzec^IiaIzeRg|UtY@6ah->Cz`$J^ zlDpI#;Je=}t|C?tK73h@G>GK~H<*Q8DTnaj>EE(Wq9=L>WA7c}%=}~bWG-F$4;_|k z$=uzWsH{%=7Y#Gp{Njj{-hWMZ{;r2|O7-8{D=n_dob55zb@(;4%V5e#CrHc!@ane!y!x~eZCC$*$M1i)5%P4woe;=Qi(1t9 zB}rcka^k_D4AZ7Y_4>(Rz1B(7u{El4jP`B?d+@sxc#%_M`^$5<@^&b zbX(=0>7zHPl=1M-8%6LaNU`TTcz)BJX}?}E{4m&qKn4hBkP#^-XgMXo|4b(t5KS;a zC@n`j#Fg&pc=<*DvnFRzH$1NjKTY41)(?s@VRF5~cAw({kU5~F>dxwjn>*4)z(5Uu zfp>HhS}0+#ES^;OwqyT6d8ubtylsbjm`(({32C$9W48k~0NN{!SiA}}eKIYZs!22; zjlD1=C^o=%{SbR4G+vOba=+`H|K^eS>S#Wlo>l2Yy;uE{j4bT*{yAT}+Q_$-0|Rw} z`I#>bICnR`v5gd9$a(Do!bH}ShkXw+fsH!$2F~HJ90z}|*uuk1wrHVTZ5%mDhAwXZITQP9WUOMP8LK3RO0I@Y~LX%~Yc#er>X6h{hnC+p< z^y*03IC+*qgPy+OFYIMry{%8!Oe|^_{+zg~&{Y@qIX;+;2HWO~1`jUyBUHz(WlIbv zp~2EPb`ID!UWa%GJRC)=Kf80MQ*(#(ADhMJk7B@ zbdED%S@w{vZEeTVBJ{eg{wOW8wj1>RZ&wx{3|O-mwB9g?;Fm;i-p{$@xy3Cs0ea-6 zNT0y>j?SSZiT#ULa~wf~$31_|*YjM2h4C+;DwejrHph2XC!MTH+jmpgKH>V)CyTVU zV4fxLEC89#Zc~yKaTE_WK648BDxq`YPB`dT8;z}21vpHZZ)s&CtN0OAVSu~Pvh!qu z%rNJ-^0pbV_b#WH7Pbz)=6MK~yBf&Pxfh^ge+EDBc5drZrtSE0WD4tZ5bxYIjR$Z< z9n*&+^Oi(RGR*7-M1BN5@%~o!ey33roEbj$21dBbLzY!+aL{5U%8{=2)oNOhP5124 zk^GioIW*L6w?m^`|8}{A%STqfvqd-PtJBQrABPVz5%fqI1X-$pEuCXiB8f26h-JSA zzk?0#>fE_ho*!l05@!Zx>Z3s4lFFCjt_vzRJ4jNND*;XCjo=K0&|v;b40Gs=kNs zoy)Bg9F#C=w4SW z3rM0|1xgUDKLrNScGGATqs=bgX{dkWKY~jF5ESs#4A60-r2w6!n{?-IwY_OC>4tT95poPdIk@s9Cn5DIbPB7jr9ujJIfi8HD|{Qo3qN6~NK; zjer2*<$>dJ8xtkB2>qEJ`}=Ls+}GZlD)j=Y#wJYyTj?AA{8x)9=+ywN90NkUz6zs1 zJp9y}FiMTFfN1_;W4~c%-P>6-n-)dvy!X#Ee=Sncj{k(Y{`bZwVP8O=j~_vD0@s6q>f}%?cSm_p zA^^~qvEr*otS6H9(%?u<+OQQzvh(8NcR87SVYZ?^Ev}5o!cGm?Y0M%}wmZ}MG7RA4 z%V4{yxIS3mtvwNzQ2&*W@ez8_hmE5rFvdmWiZ^DU@*vZSJDm-9EX-o$H)D!J=N3rW zw0tceJ0dGiC2BGAyZMLbLk7w5Z&oK=A|)mx7NZUt-->pXOb`M)88nvB*?NhONnj%d z=hK@Jd?1?zI3R%CkR@t|rBCGRQ7oGKDGIwvqvevI!;T5&uAEoY_Up;sX8^dd#sK9P zt3c-k_VYxolD93LJA|B0(M5Q}Tgk^K6gkgiIgUuu`wEdImnzRC-Mfl!KUQI7fK-}F zW19TpaxJyz0=W8cI!7kB`XF)zQJIuRfG^rnj{F#~^uI^oG>}NoY(K0kQz3A;USyvV zYA%zv`cd^2LB7T|CKhW<{T$f-mVlz&D|&4R%{+&FZyJ$@k_?C$ibbu+4Fzy1cm~R{ zI3x@|QDzw+6=_I$GPdBGfb|9*7V`|aV@Xsmq8LLJk{w63V4|)&;y5@c)|S@9{wQ2u zo`u-nE0l{pW0WH4aT4t z826M9^;kh+{0)ygdQOg?p%Vq5WYHEkqVLvsN`)h znmTPA*OxzJ3uJAe}>A7q_g=En}pW4wwMqQKk}*fpE&RzFzOqyyG@XrS0y{)8 zAix@zLo6n31j(C(;DtpUiQ0t8p-ie~V;YmpEpWBq861PvFavF{Fe{S8rk}FlRyYqgyT;h&#)0csPQM8w7k6=&W1brT| z459@v!OL0iA;`It zEIArgyC=GHx4+DX55%|-VaJSbZ$I|t3xz}wcKl%MWO5=fn98bBUJ#%KFk?pyDaZ=I{Wc4h=bhF&}Z=~Iq6!+Ghx6M!tS8Sv0mEiIPu17i@czr$Dh zek*TxBMCLa^7A9>-jCZVRp*~VOkozbdJkQP*|M(4J+Hg0@=Yaw&g_k z)zH4wxU9s#abi8{(V04tYpZXY85pnh&F2GZ2nz zGss5KPeWsvRKit7P?xE5*+$zFLvqYjHjW6EVp{r;zT=Mezt%2l0$lBxYXjFp|)b( zic6E{I7JvSz?&tjBk5eN{m@uSstDDXXo(9g2!(JRqVoZ;x<_VK`BRyhwd@8tayNLT z=P#Vg=8UZd+a%8XJW+k?({-SN)7-s;!O`n41%+IN-8tC3jR zIys}`<9p5A^0GMd@-lYpDtP;6P$^6v)GD(;|A1Xly_LHFTVbmNX)Z-->@}~`i7hiV zAZ3;bOZjX6na^I|DWARem$O3!jLo0?>Wlw(c@_L4gv+M+pKxB_ss2YdQ%HJ5qse>y zK$IA;V@a?bkR3>Pq&8zksT^YnJUkN1t1}EVJ9jayG}{_-2q;_997_FRs97gLi2yR> zCAv6N>iO<4VB_6}aA^c_J;)ZA)?o*$a9Iu5NE0uD^ z2=QF1&eI&Ti)MO0&MMC0g$Wr)f8?FJ7JMR@n+pkCa*%r`Si%8lKs`VXfK$Z=D7xOZ zW1|nJ2&j+(#H?uMVsamHT_ACW;(j5bjqAtClLNd0c*(udFUL&a148s&CKTXg*IfqD zE}}RQOXP3xjeCJR=)cqMPVE80;@JD16v>Rktrx1V-orUQS3k_cA|y$Fj_QGmW`Y17 zR?vx=26*Ii7*#rjji@*PBFmD|vLEKOtkw@v(~2WQpTu*^9Bh$Kn?1)S`M9$_rUs4d zp*`2(@%H+t!v?Z2h5oYRn$q1Rxv-KBcajs%{gHKG zYe&UThG-ba16UlKL(6b1Rp2{-QunrR7B%UM%pKV5Iz_6|d}bpuu_|R3uYL|+75_BM zZI^}$<91It^D&^IE>Jna&)48;cxqvTRC7XdkE%9Lqv)XH^O01yK8ws?)uF`LJ4RR$ z=~RW2b03!2#h!0HCV_U05L37v&v(ki{TCDDHLS3|Zr_^a8^0{|m{JX-eExyUYU%@v zW5FV7@fH3({>M5mSD|`n32@uaaQJ&nogX|r6;Ky|$iF-UuOL$uVnhk(C4IURu%e#q zE}bA=_=RJ)=B*l~K;ZxXBAT!)Lkp%SEQ;nT zYfADRa~y+`%^#Ywg|RoCGcMmZZ>rV*^~q({sg^n{Sw)O=hI|#b-mkg~CG9;gytHRx zuWaLqHN&h%ljxm*%Y!*V_T+Uvm(zjnk5jv~H9u}C#E-T5t2<@PmC<44#i9=^ZhN+t zxehU}H10TZkN4rGr>!tfIDb1}!{Gpf7!PG1^%^;BYdr?er^V0QZ|I>GKTh)$=+5|2 z7jqLd3nyr71r}C1bDnG#l4z2piltKy522cC_mgEa$$%B@E7e$9U1)3Z)f{s7Cs&T* z2KB)yZvB`l=h&xdj4w9qW#Mk$PD%)YrCS7|x1J5;Zmpqw5PqL~`fp*@pKtvHw({k(z^;};qha;Tu%m}5bk5r+7T(DH) z?1ek4gB*Z#-d>6CbCXg_ffL^1AQRAoPCzpNJvfAJhIpu_hz4~)Wjt|$aUku0thv(i z1MFzYT4}TwSRB-bPoxdMqlnSbXz{_A04;UlU|s zUKLtr8h7@F$xHt_2Yu3GRLSSP`sKCo9#PC>sJ)R;`>j`zMt}4l7_3 z!tqC?ew@e}z$H6RHdtSBm%a!2^s|51wh8}3!9-BzK%s#QUb*5T8-*F+e~c(pj}ZGb zp331Juc)$kMG^0OVpDhW-0}Ul`j4I;t42!Jzrt2%?eN)(rthkt+*}wfm!5j$;!SB9qYd-?iv@ot|smQJS&WVTi z^d_p`RGt3m{|wGwk)@r`6wClyalrW+w4U$`FFh=YZT#@<^V zC~k5YqMoI2mn}`)>86^D3$InAC@Asci9<(OUmoKM9&X-gOUpDWrq|xV8owKcbqNZt zWC7L#I(yX^mV6jiuNiBg4=mh6sM(i2%{!!_sAIb3vD)bl{xP3N$61|j>^{ZG*bJ$| z$FkrA~Oah^pS084;4kXkOaj9nfA;d*=EJot4nS6Dp%QS*_ubB{MdHx<4g-&<%c zc%k(HrMIH2u=?yev}U=GcE0RKDUrX^C;FXdD-vo zVFL#uoVW3HHB@^XMhT{1dmo&MSo5oFh%RVzWxouJHL@ju%OFM&#* z12jdn!3Q0iOfLb=d|aF=dV_7x(GZsgH+|W;!%Hz0X&IF-6VP&w!1=!R*W&bFi_gs| z(xCbs4YHY-WcZpC!mj@hf3fzq9%zV}y^?JK8#XsE7wW61P0-t6 zvZ7gKSeyQmVc)AGouvovFlZguVrdIbueh_y_#OLtraj? zgVrhewK(w4y#5L8C!m+&P5&y22&olCkgxYmYsUInonn5}Oo`2q4#tyb&Ch-1k@fWD zMhRkaKOJgQu}m1A^{@4~qLlZE8eXnt^?1B?We^gNCi^wOqB8 zVf_|e9GN*6D2DhWO<|wc?S5R#o^fDJab5H9S5SNT#^!?c0Ev7e{*~|t()OAj>iTDc zy+4<)2j!-C$OoZC#>^428=TqE>)42mYQ0f*wNZt9uhRAXdSdN2;;H+5CW%8y-A{~>2`nZnbs!H%t3lsEL2z{ka=ae<6uw*aUnOuAr|v3#8OYdq8-pWZERS7EToq!;zAS zVpiS$>S;gp{2bHHuUh|T9!gJe+Yx$2Lz4v`|H#0$u(M;Glx%(c4Cj;TPISlNbKa2} zKr7e;&48c(HZJ!2f>`FIV9&Bw(y?XL_e9R)_4Wtq4fdF76L1sq=td+@lZUhPt+9hb zdp0-6P`JIWDdE@|Yc3xy6@2G?B}40-0>?(7O(?P zuI~6vos6wyd2<)Y7g-B!_79p6FS@B*%Bxm-88Yj%U=)_hn^!C4?J1V)BPDbp&}wLA zI+Q}}chu%_U5>YUmVr+m3Q4Ha(*@GaJMzy;w}7$X^V{W-8S#l4U-tlR-`8HCAy$+0 zaT``G6wKY1Ml!+Nt{e`^0bT~+4f z$^Ha)XR!7b!oNJ!-xcYwesTmOy1OO7Far|q-a9b^TUqWQDWz`u%%VsDIc`xx2*q zKKak@kk#cuSseW_0rqjj)Jy27TA|7jl?C~Mgo!hcGBB3|SIme(aT!bx=GxpYNA*6w zl5tb$&^>g=;%`RHO&q)0y4$|AxF0{#xFPcb@j89%^j}1U2PCw|s-YEhjRC#E6SgIS z(FWGX9hw}d25q>uaQa|_4R}gBaUfm~m`9MrfSvf-;j>H?djT4TI&c_@2-vKBqQnDW zR^q_imhvE)8jZlrqrc9BDrs@kFICO;wv`j>ZC%Mq;J1>$(tWOg8XAoH4AHzy+3hh( zQ#V4Ou>@xxY6gcD$UMkUellFZ=aM++?5yCMgosu2#=TwujikFD2fqCbm?GZM56A1* zf=0}$!vuGpjX`+-)gd5O6}|LISTzt^zm|xOGy6e+59J78A}N``UQy)!168z(L_r( zO8xo&^cM`Tzss6^_iZ>c4YcqHu4Zj74(~0_PZ1 zY2Wdlf8LZe!g(L-vcZv1V}P^X7qPc!;D?MEVs;2$B*;wa)-*)FriKrcR+ajKNzhb5DUwxRs*uVfp< zh78gitQVlV-SF{39bqef6!~U)a_u4V;YI~)mW3XrQ((?@hgT>JH9zcwm`ISkI(>+* z9}hS(sH?!;d=4+0X*x)?oiGY2*AXQuM%MBbb>x~a#9LM;+Hhe9t;Z9tu4I^=(&r6{ zKl($6??S_ta2`naa8|1mq8kj-0H4SpEOgC#D#4?$>)!sNGIQx$D;jaCCO_~7$C~w} zUp}_{>xA~NliCdbpManL0|pjk-~X76|1bRgPjgXiZGW1c`c0di)SYUG)Jv;D@q@>s zS-Z!Pz76q$C7+=x=iDuvO)O6xNO~Ur!be*9V!V%Mp@HOQ&sDXFH|IX{Coq!OsX<`V z_5v`yZCsh6+$?A=-E4cJY6FBQQR*ac&a|nY42kv;@J*H))@_pT;0;tOtYjl9{{ftp z>Q2ZTEM0FIaL)Iz^sC`BNIuVeIG|G4i~kXe^5c)6CaM8p;5(2TilZfMx7F4iM=^Lu zH^La`0t=!fEMc^vGBFeK8gF;JuUK%WTRtPvQM|x>c;H##WP+g&s2DN<$Qjy;b?kT6 z2`_Xt6Jh2w8Ht0!YQ?Zb)u%JzwiK?K9#0ps$k!>uMo;F6jUUy%&NuG<@%{!+pM~72 zEuHHjt;_>Cs0iSfvlb*y^ee1ec7|HKeKY=I@zR2SKbMn}fV#`FhWx&`!D(sc+fQTN z6Tbv>nuEKXM73|};XP5B=*Yfu7`Jp!=C^xGp#G^SzqGD7`$T!ja=5EGY|exgZe95QUzU1zjxXDl@(I zFqdWLfThTf9B)h7`#Zf9wuavG3QKFo)B;`kiLQ-JDm#0-+05c52GNT+*{GG z|Iz8kFL$43owpNQ<)QM=0AOe^D#w05sSosvR^KVFBqhOK`MjRL-gz_Uln_(LZtPZT z-3^Xr>r;|^Y)t_iM4kzm5W?e+gXNLc#(9plFv3#ky^YGa%xo+9n*1jRmAcO3Pns}Q zs4y1mqRgpAKs9gUa3k-H@)QTU|0Q|_35$1d5=wfX>JFmg~M_y ztK)jqy*SD~|4ZbQ6tT)ma^yINW5Jcaz3$du)6fP_s+_qkM5YooT9``;Ute}}VQeY> zWjt}5XCRBtRx|N{upCX*&+$%girw*}HgsI`Y|s5goX7PuawYL~A|5Vnn1i>fam;*- zq(woZ5tScJ=h&bCCMF{-&^EOzD{wvE?+h{Bvb4uWf~b&EW?FtM`@m;Iv3AbTlRr!j z9AW%&lv}$ShhE$yph?c;^)XnOjvCR;0f2G6TuKq`PBpAf_TY;VELL$G4e!W96U=>HaJ#A=f7y%%k1Wgg&A1sOt^Foek1Tj4 zH7_YQ2aGnr2-dKHkS2IxY=6r$x{M>KmZ`8RK*`mEIsUHkXbzGhG;nOX1pmR#gjwm; z$HjIAo`P&lJD5Zzc*F3aIBcZU$!aLFR;b9QPoUoe;%TBi-@Ne#(2}_xnXjHq3Uy)Z zK&6mPn@%9(w3M?JEVS1PvNGoTzKxgzvH zDUM-clSrC97!So=W#uCM&&NIN4h2jqe1(@71C44@zGMf9_uB*AQU?M-yBe`^L?cYZ zka(p@1rc_l%G=LcY0j&!`)vmEv*O_6Z_ZUb*;KOq#Em^99n`@PV5f_^?kz><*-d*y zwI+%?n8y2GBP^wK`8Z+j+DJT{%bI3TldMP_JM`)J(U_gb>psG>b-0L$kBR*C7WZp_ zmho+l&IglNHv=3GJ|9_P12-R6v7NfoyX?SpA&QLt#T8}UMF(*i;gX`*u(wgO&7q!Z zU7P{4yw^DBHyMaMP5M-pd&FH?%cV(*g;_d5&NhKTGR2Fu?NujX?chT~r-=u8Q=?Ru znMS=$&(#oj(vv3gmGK+-w)UKle;BY2Y0bHO;xv+d%2A!Ex9ieL2Fg~{Dth1ysf_GL zaq;KvMoIZA5Lp3b3}@eg6fwgycy%=!_XauLgDVA6amHn5Z?-YG#>a=)pic@^>;Gif zzXYDQO&2sPgFPs>4goJyVIH==C`%7^S_!Uwyl)V+wr}EBz5M|$35Zx`c^H08-^lgm z!Ew#7t!Zpq_1hYY2D;YG?RgJs?uFZ}&!Z0Jv;E@RZFkGETSwPBoUjE<6SCBp zSP<9sz4a61X9v(K7ykM=65{($20%r&Omhq0tnu#sJ=%65hN|WqPT#Nn1q8Dy>%qSX zW_SD=tpo#VjLv}tx)8{bb~ahW);y~2)sYw-^nTvYRf;mIT;ok>%@m!#}kb4PLM&xmVSCb8A zZ@Rfk=N?BPU+u2rS-hoBeY^d%i+z}HMovT&0^&|zbWmA2w={Khq#D{#h?V zb>X@mw@h)@;%!TfI$7q9Nz1d`E}Rv!a?5B?OT#6-dhHK%`LVk455+{)XQLa{O-_z< z1X5url~i@Z9@LgYbU`UagL(?L9Q~7lZ=FlquDp9~2+97vW8aU27fH&)l2*8VH_ARq zWqe>w6kHX;zaYMalci*-f}IngWtm9Tg2&@k5Fgp+vO%T3q*>;NZc?I#`;kZHq1<{~ zUoY({xL_I*>*H~6?%ndcE7p96=-nqEs#YhRV>xg3n0(W8@&qQr*xRQuK~U;a(e2XY zo_B4SfyE5h7;(S;xh(45EM`wE!4S*TB6`HNg(y*HEZ}UyWYBw(!E?tp=39uV4s$0l zgw8GkreQ4-qGxMiv&zE(Z^x2l=wEA*`^047%4bMLW-n*@rP1Zk*dk_APbe6R&j4aH zhcU@_Y$p5k1YDfI(EDcR*J&(ZC)rd{j6#q!Wa;r|5NX)5aJ<*p=n#60rDjY~#L?5M zY%4RP@cYQ89oo%kx7M>>*O%J-D|p|#od^ovB@O$6A*<-o4LK&jj3?VqhK$So^E1)@ zrdi(n^_7Vgc{Y}yLm%xVzqr`5#HZT@yJbOc5+GFp_!^tvV+fz=_dnBpGo1U!MXGb)~#5~loy>X zGXrX{gzE0=z~;-;HVQ50vAoj6sAdLp$*7SD!}F};fedGvP?ASm@6xk#Im@W%(vD-J zd~5I*fWS1IekB4+lAXhDDNSHKp|R)imALJCKmAjAIJDO9jCeRo@Zh0l@#V)_bt03d@?|@4Hq$zsa>na$v z=+`pHbFAb>+iJyXPp#M2aYDzM%_Bs#8Rm_4)J|ePc9M_SQ~Bj^vMrbhUr;hp#L1gZ zup}WpR0_SXlgt(;yBXs@l<2Z?2AM>(GafTxD9O89Q!-cA_R=T$Wp;fAPBdXk?*Qc< zR0lmxullOPW?uLsU(7r8YFYCSbdB>p-0{87Z}vdB+D_9*vW#NWE87V;V4D3XAwvwq zdgaWUnyPoYL+`8-ZC`NYaea2lVf$zts2s?8Vbi@)LZV0OK)%&nWq#~*a`r$))I{IX zo-hY-57TpuPbj?BvLE3=l^ct)M0Y)cQJ7TeW2=7Av!#}i)z2d1WSkV{TW9PG*9s_PVdMh*qrzHkr7ovs3wr<+1Bf zq>g-#>Z0G3s@~GrE4JFhQ$1n&_U=C(Z!&&mVE8Dw1S?gf^7Blz-~$NrFhTDI!>;C7 z)p@hzdy2Z>!t_k-6c{$I;iX)0uEsr4n@iRA8U(NB0d%+u=dYxr!oJtuP|7<{ZxBVP zU>0g<$c&ce&z0-1NleU?c{hRFbu!5!V6kE81Gf7UZ~Q)41>$jC1s}P?_R@Ti=mJo5 z>W}L!!m=ngy`#;-j>C%|q;eW^^)!f`>2PIzDzcooG6}4XRfmYR{uy3DiOQp&-!*&t z9DmRYD+Z~FfH%Z9f62D8OeKNZ2;W>^VI6W}uiJ=lb5ES+rpaYr2C*HP02aDp0=p$r z4bny-B3N?HO!hmHE8esu$^Ffr{trHW-y1^@L+%Edv1TOwaK-#V@L9N{0)7_y!+)X4 zmML;zy5dD6oO}!<#G(p(qqJZ8v6duxJ^-DrTBe{kR6PPB*n)saP>(9#37+oPjtLl5 z81$1inQH4we9;aWG^jcO`{Rky>3e2C=4AE`k%!KC2Y_wlrlg_mCF&Lr48P*}#~JrNf$$vR6v30*y_&bn?0QZO*5gNm{Je?zFU5l1Psu}U(u^ddK|H+(m_Vmlo7_?bCtZ0G? zhnBA0?rZsb_Xn!Wdf@Bd^NhDIlILGf_?IW#tJfqU+f5Z5&p%_C1!~FA-;{EY-r+V|sUB0U%NncYo#43T zYIrW7&vT5?)%_99(ZnU&ciF||^z%jd*t1l^6*ND65GrPQk#FOjYlRSWaHb_;PFFqw z1ObFV=V!OkiPr|HF2a?Qi!xZ?7aHXsfDSFXR;8ZRwXDN;y!D|M&1O^77q2LCD)htLtF2Sy$ZX` zVo`hN_!Ct5XF6A{HHfLgzqKnS_4=5$U^@$GAcONC>V`@F%pNxB`$c;D!}P8`z2UtYNALO9WooE(pf#e0Xe z=TVk?lOyB00#|qcw)k=_vHyy>mGsw7(n`%deDJQ5BMAq19U5yZZ!g{*3!Rk)O7injc$ExE@1ib8bU|)iU z1Rk7cAw`dRmna*jIy3x^97im8b*k;-%OkFbK5p8^8Z$0D6q&BRhvOB!OmZ2f>tUXZ zPhCNESt@>}$6#$ohuY0(1&}?&MP4u51$f=uQiZ2SZa`!Wj_F`ysxAmk+4IQ zR!~q~TO#-Eileo|7pwZ1S(7Qlf%&+<%NHzIwwGuDhVy@;2m6m~Cet3ely|sgv6Eki zpLuop<7Hh{e1cTKse9K||KfUp#-qcLe@%Yt1UA$3<|Z@L{u21O zMjv+eSPnFHEfr_}!1(5H`c*oAtP?#%G>g7dpRNMcyXHe*ZLj@g`1lUqTr`{67XG=z zh4aDl?u8Q$8xiv=4^Ex>?|CN7K3WBIm!?coro9Aq8R4UhIGfgezSxT$xqO?oEygz} z%(G>ml>1;>M*6Ob_S+^JU)(Oo;Ww4(?B$?X@`woGDHJ2JdOeD@zf>-aAU}V%_CWMv zQHIwN@u?->IJ$kZ6+e2YL0@G4q3Nt5piU5}RiUbWrJ9d#!w4n$sz)5b)s`eJDjhnw z@bc)FGu)?GAD!BpyBSSHM0xOtd#7LND|LFOSZa7{-g2lt@>u1Bqg8dBYqR;Y6m6%q z$Mju0DNcKZ5Vd6a369P+!}Fisc{^qx*WCjxCVKdMPoPy#GTb-!P1;clF(n_rCHk(U zYy}^{qNzC5ki~_=rn;{;{69qmlRl;QWmWnAEl253S(R0PCw+QUSeWo{V~-^ zA?o;L_y0!cP?(pH?(uN&ugawiJzITM^yLdSUiCuMp@ctnF$f;Wob2Pzdv74Eq^K7g z^`5G$r^|5n_uCBp+x^vNEl^=>^*?tz{U?=0|MU!1FpJK?h2t4mCB+j=ANq4l>^P9Lt=09)@ zc99wkjDyt|aU%GxOs@0`_ZZ*yGEDp;}kLk5{^f z>@^sBFGd|@nR=XH#ZJ40Il~kY>w6)8uU{ByJKxSmP(y2r!OGsGr1c@SmvJ$Gpg7POK3ye zMgatU3N$0zLq8dkQo@(*K!fKu++XAQyACNDebvhMzs^-QzsqWDaX(Pn6E6q5A`sP{ z_E>+mIioN8@AAxTzGz4N7w69Y5zpgqj&o>^oFDe22d-F5jz3V!xX2 z-op5O))$;N+zZ(RTD@2>mWp69x*=leXr@9+El z-G7vsbLO1$IiKbId9SaR?h?0tJiKX=BRW@4D~!$SBQJqR>t2raZ1FF>2N@@@_jy^< zlPu&|qe;7kbq3eQU(w>TqC=kro(tAPZgmWf$*loBQS;+;Fwm&n=?M>OcH~}q?>twKuH1l1M{AI3R z+hGR>fuwj+(g{4KCRPGRNR|x-UQwjPV}Oz<}PE1o6Ge|WV1t(gDt z$^WsH>wrHezCNS1*-O1+&FhO(hXy-IFLYBvBiEXDu6%>L0(1ehjsFZ9@YO*Kd+fYX z4~P()E=6+%IsisWl@}mS@WWp~GL}#&AZZ&OWrD{8=ljhdH!@3( z1`XRK`e=o*$1$T><8^7s9S;r~9>bvgv#Rvys@FXi+B$Hk@~r0mKD&FoRcrQ~jadO7wrxPFeb`bT2I zf8}o%40evq=)C}^E{2N4*s!|*4%zPxS%p{Z_EQ_q#{?4>xvS?}7d!G-2m#o;6j*nz zo-AF2k0A=Y*B}UuXyeD`GHMde+T1Jf{pi>8jJZbVb3Suz%Y(Chk%y(D)WZ*Y^Und) zBS~qH2Loa{VONN+9qa9PwhB^fsZnC@Y3Iy7A6U8|c5iO{sn&el>(kq-L(1dUIj?q` z390K@@*dd?Uopkhq$nr!3Cg=}N-cTzX=AZi#K6;=ZCAa_LQ8)h6nB zJ3htT%cA<1yx9b`*>K)~s979{hDCtn@5;lFOEZkq<;$!G!J^XM@jJySc~^7#+)ySB zkF+K?Y))O`BV;YKG~*`kIDlhLX4NzB~A1u08>AFpD5S&Q)tMxdv^ z%))&V`_23lXAWe)%%o4hO8aMa>>`~PMfT~4=xT66HTdUjl)Q(-R@xI;9w1*QS<^fI z>1u;@pFfnY7Tq%|7i8bGn8nz4EKhM4IkWDqsu`vK4O{9A(J(J7{1Fb0H);ELZ&jlH ziejG_5Orlt5+bnELqPV>FPZ@&I2N4n9i{JwNBB0o%#LBFDPSmxnnln0y&T_!UaqGic?16>)%X|I$Isdq^envQA zG$(^G@DKatoqqF>4lv&DDi{k%vh$eFK7s#vlQH(y-%;A^>VG#GjOM?4`CoJS-xK2( z%lzLHni~_`>wpFu3$fKt{aJOCR~UQH<41N3+++h-CcK3 zy4E+xaS@il5V13mZb;(w^W4KXx;=E&qMGEg%>eZL)0NKMz*5~)^y zbU2`M#wZf0B{RI6L0*4nI%_vg?27v&=^ycQ>~u+7|CfuB zj_PM(UP%exK#PX3eW1#EL>cJ!`NVf1QC*y^!dVI@K0Zel-iTDS&njjEc=)alp7|%@ zbsRS-+fQgEcLR@rIa^m7Z}QQ=Klf&x|@yT%T04BE(f9KS9qBy^|9?oCvXMnrFKhUGOw zsq_c>==L&CW?FlI2V;_sWbKNhgL(-3w&I&FW4eqy13h*3pmkQVj*2#Jef@dG0p5kx z+%#x_wpg*}zyezI!w*)2WR8TzVka`^Kqne4cB0-6T^b@p`Z&PIB?HcnI@k-Y znsuf`d1~v7;tF?aM4>BAH}ZHTb}?hGFc*^9fZ;*CLI|lO^QeanGz**vH^;j>ce7z1|8KUfLQx|M3> z>Z;JGtM{l3n3X%m*P9muYR7cJmj^k0JA9|^WNL9s8TjZKa(EBm6WDuyMC@g8M6Qhi z^r)wMcf4e&?@`^0vO-VZybAetmX`rgKlgEOs8eA%>bNH02zU*n0f~yju{*V!>TA|J z-&tM!th{`xr}yNhm29xGv;`?QE`GxRydBu@8)V zT%UBG`8v0?R-u;ODG`dDGPWD5Ns${&i(W z%aeJ&T*xybTyk7)c%kBQ$I~ow+35gB*IYCrbQreECIXdc9WbkCF&4HBzV|sBo`0Cp zGdxSW)o>}Z+09?%;*x|-`!8B`ym7y}^Dr7@wRVzNOW^$gP|wc1(0NSHHWuLLAQO z7gV%J-dBKAephWCa=ak+>j_6bcQ;kNQc+9Zi#rEai!VsS)=VSNMoFU7S)wu{HOG+x zYC4iUN7kQz;JP7R^10m6HzP)Q!);O_!HSGEh|o%IK1Y!aEaFOEtP?2=5vPV7Pw2%& z&O~`QjPO~7>ad%RzcVU1Ztkt_St~XrCF}n1CQKy3c`CdYiKz^vDN@yD^FCzJ+(1 zTtj6X=*9pGtkOZ(lx-Doo@o`raiZVR(@^4Q_QqJ?0IA4(x$7HZd#vq`Pu-GNmP1iQ z-aZvNwtfIC%u=Xmatsfa*V1|T1wF^VmbLgYd|sxR{;kz|M7t>U*?aP{ml+j9 zA?{85YP;Ucem-J^2i3I>&A~6jI8vaOmu=?WFT#=RwV9p(FWmcBWb1y$u7s@e#N=d+ z+JRj(g$<&yEh*M(SIWh8e6_417kt%rjSoyw9uzhei_d#ExqrKtx9)1@aE+IA;RFBEI{ z6cEnKIrJQMU>UBch?Kb1|GDE8jd7kbCP626%^|C9v(4bfzU5?eq&h96Vn@o5!TTbV zLThL`^cdead;gT#K*aVH=03~X=!xc3AU}UYykpf2#@dy}Np%_LF4B$N29AuL4foN& z)DFppoM=njz_l8vz-l*4j>b-C;BR&5vhJL$rwc*~SQdX{DQi80WH^8=~-=ng$ zU7>{=u5C~ym=Zs63Mmi(rw|@+3VH3oS^_a!h3Bi_4M69?mwExYif}$7Fy_%GY5~n8 z)am6u{VTWf6BJ*_mFk;_$t9$46u`s~0t`6B^&BAYgFhjysZvbk_?L5FDY($YM(V5e z*O%#^Pbx8a^4Yrkv&s2R=G3Xoh%jQ(}nF%%|4@!O9nb4J!|PgB3sh;(pIS@GcCq>6}Tpb`H&m6Mx6Cvc`4jxL*Uf`(T8{V)}T3Yj#xKK3-$n|2`f#Rb$Ygy zh|F{uh8|;EeI=v+&o9@ZeH5Jmd|27;?iC56tt*^^iM2%3GZ6)%ouHgM{F6CqgC|u#*JHJx!lBZ}RZtZ^FNu8P}I!>WJ_k~Ij zK@%`~z5pHu%D3zo*XnN)tFI%kC2n_1xmRQJuHbx$d1rU6x18#_l3+3G^A7iV_VDhq zyma-_7@lzv;;b?0ogC)@!%T;Rn5(L*7jU2qCqU_gQ^(~m7pvNpCY*{Qpbuk%XS&XW z+Fsf=?r@>|AYbBn93r@an^UI21W@2!k2oqN?MhIu5{!F-ulCPWd-9pzq_Kgr@i~8c zy36xK%`0bL_eU=P5^@UL3ASQcf(Dy&4z|oj!BDR({2;Tj*ObrH%EHro^XqQ)JI2k) zYxNz~`cY%{PYZcMfLACDdLxVgss0IP3rN&6nuxJhLm19_5USf^1OusZT95D@btGA1 zLF?fEols!-Mm$GKoUIR4>qC{tDrAiWi^_9v_lt+r?owPeE})#CmbdPeZ~EU3ojwkQK16jiPJp`JzOv?w!(j zbAF*1^Eoej9-vKv`N+6T9s@#r6`)}{q-*8jGB6Ah>@V}1nq~@4nRqYvkVjqFxUs}B zDCDb4yeV|>=CNZ{S?0$mdB>Q_8qy}`iS|$>NH#C{z|rIeYkWt^-~F4nYG~>rBQ%4`vuE5VVqpVibjq? zr$9*!u67cZpR48)sv#k(sz;{G<@YsoDC2e-xeuogxMAKLh`QdD9_>XjT=bbQJHXAu z(x1wRfIJwXx<;Fi>e72_izX826!f9Ia{`BMl!$Eb?%KWC)up)Y1o2ROR$$Y%<3qvMi-8aN<&j^a82wz)Pl?er2Dlqy z4*>6tD)h~;qVcy!UNTAx!X(}^NL@4*5A4D|d)7lds&IGfiCER7mtSHxw0Zb!ATrQB zTi#tcD53UFttr5WtqN7jast`nP^AHafn$3P23XT2{j&H*98UehiGfP2%QPX7?V|4wB0CCo@scw^HJ!8q+_Oy zHd*`Vhu35smDi<545vPOh{7dI3bL}1na=Wp1HJkv67Z&egZJA9Vz=gYn-$!WJy^Ng zBlh_D6G5*i-y$pa1Gx)S+Bez(KwUV!81FgMPr<0as(a{UWBNr&e1AuyXZ*Ev!>!ik zc#A1MmM=G4e=D&)Mft(w04(ES&!&P8F1G$JL|9$4hPdPlCrvi3iF>za6V--FkNJ*5 zBkBQ5VB04gJvgIRa$MHv!=Pp=rXn8s*z0I4mD1ezEe>V`XY1J5%cQ8oJSNe_Z7eV13UePcmBWQFXaZ6PU%?< zH!$ze6UjguyDqb~?4wfIeudk8{NE@!;{l~UueZAEb{-|~oOkyu+I2Tu7u z^>TL+Tk>emSY~G8_-EuI1Yibj`%1>LdrPJ9^*thYs=KaaTw>|CrY?N!Z%TFzd>&~e zJ7|7!kJRz7SCg=UcO9)+xowCobn z)YAE+-Ng;6c?WMM4V)^7{U%7XMp`iWMm4z3eQc8=IH>nUfR28VRD7r6mrBo}r%wCH zpG$*+8#|=k77kJxKz*H-IATP*j%A_SK%HZG0OAo88J#CsI{eLl-hS5+v-|ORQ{KQ| z1IvrolcVfcdyObEcFfw|u^PwvN*c7i@xDN1Qe2=qdRK4ssZ-mo-u&pt!VIQ*kyR=X4hva35A3d>@n zl{da8>zWhZB4-g@Vza&~_jbUA3Q6X>DEW{ajeL84m*4-3E6tnP{j}=xw|!|QJ<<%fnv}Vy3bAk6 zq{z!#b=CSzvei9shkfG-`6qcIMC~LJlP_#Oh`k(5AFwht5S`t5{J6fuk%@1hqtf>M z9JvD+-v14s(Qm2nc9pSS_C8`KUg9!Wv5L5)O_{^fyF1TmOZ)a-JHwGZ0wv32E?h_# z&K+Ee8cOf@+EGvI1PXcnT+C_4WbBNVx}bAki%NR2f4GYhe*qw;yO*34Q>T`yeVH=s zOceumVlRGPUr8LPVPm=5$|!f5p6$G5=U?2dAEj9L=HjvK@du|>!pIC0Y?tF9>U)kw zFAYW8>*=w%B0JN*HrsWiP=_(BRMmHh^fi zD)a$$7Dsvh%0GKAwiTREFCz{w>)To(`AyX)s;<@cj)#1wbL8eoYkj<4%5lq@Q^}Rs zokw*#(poIcbz3~kBd@(Uli@~grqp797#Qbeu&Z9uqRK4jwxfZXrlEF57Sub(^KT~_ z+89f^kB#{yTs5Af=y6jaCrmh|=zQK|pa`QmItt+w^;^gLCe&XB(;8y#oYhKvFO|Bx zfzqP_Z=rE+LA4aNmnrOrXS3_nm0YG8XcqP2jBZ0$PGRI|yzkOYky51|r z3eP}00J*)BBLvT~H~S>mF(6WzaNr|&jhzMLak(qz?r0`{3yKr>rn&eGN`!|e?a1;I z9U#xds-^eYNDS8bj@#S$u_GHlk_*o@FD6WU)2jN5v;E%~a3~@UD04Pg`a^0VAcvb~ z-A*w4FpCrV?4wX~^xppJ4o&Ut=Ej53D^Fcn*H|+oQNOJvp+RHbn{A1-6P3C7h;nm3 zK@#Wanfuw+;B1qtyHej&-@2n~y@zt3y<~>vYk*Rck+!qvo#F%pn=pzK|Dbl#94ZFW1Vtci1=k3eXRS%y$mBGKbbVXHl zS9H}w;YL%iWmk0+Bv@pRmFHM%1||feWp~|EaUB~rP(1%(1V{{jqZ>cu2DDorI8AQ$ zk6>7K;6v*?<=X=FE=B};<2j3FE5}2_oQ|15dm-a;JbqfQtiLy77}*OXM43;}Uy%;~ z!Ecs#RFmen_@TMiJir!xuA`@&f&1-|sWJm*bqm?_24~Ie;uGJcGX7QfVn{j#H) zYf?qjXV_h{dRg0(nhBv#J|qpM8z^E_C8R^*mfneNbI8~4=!PYLa)slTS8M>6`cvr- z{haU6%T=qMRQ*S|fx0VCJFZ^~Ho}Gd!_&GQtTzn^*Vb-Mr_fBoA7; z{xXJP0;9QdJvMYka!cVCbTw;->r1bP2gZtuLp5TzbjaP^wk;?gCz=fuQ>&DKb=*8e zoY;b06W~Rs@%r@dVd5f)>%SN{^|?vwLt2Gd4+ShGu6EUL8R_O<>hnd?Eqlw%%b#Ix zwpHYPM{T%6S?B{r%3E@00dfRjB(c^NgMBm#pV>YwF~^ks7N~5*(eeYi zf%d}VKj$w0Heu_3<98Wb_Bp8G8C-xo2S!nbu+@+fF^1Sho^sdU4ysjm0H}}ymh+8x z%Q#SLWKT`gcho^tXSgSR!dTt0*dtaW*@9;;`lzwoxfERubamp36n|4} zO1ZIs2|T*%QGJc?8OeS1TW#nnC#)5g%&wlh{O?R4NSGy{fh*i{HHljkE@3~Jw6 zE3;3Zani`0EbBz^6s4Kd*SvQmE%RRHZMgJwypg@y4W9XiG^p~CchAa-*w$WXJdt^) z5)vRt3;}N)vC)6N#UyE7A$Ve)uVAC(l`rxB9Zlqt4$c}%FJTPy-LhTWAjo+##Iwn_ zPgoXy`*+vdC`mMbt;mZZ>5ddl^@Y_Lsoi%OC|B2 zMp>kf71)3?aPkw*1$dsay(Q)%OFpvoptWJglyK+mhdYt6on2WHJ0G5Vu{r27fb)Uq zBn$%v!=Nw7AaSzRo!H_l@`Mx2chBPB2dQNVUm zyReRInxD9GDU7r zAxG#`U@6+VIWJk!T;QE7uQ|lG4sa*$|LIi)$Jv*Vcc9i1>UDssK#NzQ zZHhi(^Qh1Czi>+jM#Sb)@nqI5P7KYZv$Qcmayld$Qw)sI3SbNcgQ-|4gY6B5&O=?Y z{kX-6aR|s0qMMaXJxi0t_X&DdHomWKx^Wt5RUns)OKSRh4mn>?3tH?h;J_=vj{z5u zU^W{Alo1^F1$g6TjzZV=E-Z`ksiKpG*}((k*BPQSwzT}xh+;B$>;a*Xf zVSBfL*KI{sQ%k<1YKGXFY@KoPxi)12)aIK%*3F6`k4oxjdfrR_w(6(e+N8PITT;CY zmpXglMVSYZe+-d&bT{l?p%2{n5#28ir#B zE&yRt5^V3+UYy6mjiJYy$8hq2`|v7Im-F;oAXT!so}{>2=NZ-AY!8s;Cl=|PLhl1< zzL~Qq%@_T15xsU6|B&WZEU4RK^P)5#{^~yM?cP&b+<$RMww_8)#6OcR;fUZ^;sr3? zx8I3*j~sS>a@KdY_`{J~0+$Z9?%1(1Q})#Bchh$-ODm47H!|ClcuL~LsbKB*eEsz` zXn14&PgyH_;Rk)#SaLpYd}S6u+*4}j6nFJx&~->f!)dcsrW>amlUAPg7RY@Q|754u zDxpg?fMA$$0278`m_nZ<`$=_^(O9uECuV=&Wf`8f0JUB&zD``ucDN(udSTK|$rEx( zR%&9;=e-ZHms{_Vy)a7wF^WnmB!P8QA*F6%4vp<+PIdIkC-;peQK<~ga8OcH^v(Xl z_C^t5sRyST*Pg686CotpjXI8tq0)nZya4#h-t~y&OKt(x)lRL3xSYYQ@5Tjl_)dMi zqV{^nuKCO@e2Q^Hx~hjB+&h{%UKuol=17V%nvX7mRxdS$HH98$>fCeIGqE}NntkKs zh^FeEOR3%m9EmhYI-fZIl)BVM(HQoiHz`!V6e4>({N^Wm*M>-TI)7(lVM)XiqxC{> zp4{j8rf7cS|32WszwJ1xP-g-hM4K>fKm)*sTF+Mg&4JOXiFZ;i`x4ih**#kElgji4 z%do}I8`6O2AFTjs6OZ`)7GC~gkV9FA+e3^Vsf5b*w_`vg``1wjN+SgCDnZ`e|Ip+3K>QJx^aAe z*{}3NDgP^fi9Vpwb$C$Pv+SRxJ;Vu`R^zI=q1{>A2Bqa;R=tNAO_hTvo4)Cfl=!c`Bxh8cYh-~j|Isi zn}B7)W;{YF7f48S3FYG|4jJeZanL~EPmX4;(RY-gZAbE5=p{AztDiNF{bn99`b=Y( z(B_RMtH^8~pz}N^_iy)6;fTy3W{bCadZc?ehNp52V`RO58#zFuidX7I zvzJ&y->&7Rm2bl@nbGZ{O3s34U!mF`g#iEX7zd~}cRzkdeF093&$C3P!XXZ=bRAN>~wS zY$bSNdJ{1Osx$-~GS!F@^eN9DV5v6|1Hh7c4o%q*f%E2*NH@r#OJVLLPtKHM-?E;O zCp7e+*WAV6UAOMh|KQPo*qnYWtb*aBPnrYi@+Axjb!!HVq0R3iNJF2RzoUwubv%G7 z!EzqN_$6~g$FMVM_Mkn>zkglb`_5p4kWf-?MCKU+@LRCXQ*JZ&7!Bb$<8OstvoB`jP!^ zAF4hyl*UcN&VM7%wPVhb5I+U(ti7oLt`M_z6#LKbMqRR?!WHOXfmR7-MukEaABim( z&J2z{LMjBpKyMAQK#@-)ot1j@^bc+&^Ii*Q%{~B4w_qoq=>PM=vXn@@`xjFSSU}?+ zN`q*}0{__tUjS#aXHd^&F;A=cz;{%|;~$q!o!i0+dgIspug3HPH~>7dqW4Jv(7=O( z;Qhy8=v*c4Y2Tw;r)#IJ+K6$bPvNjbi6x;}rT^al$}19u;5cf(PsvaTN5xnOn$UM!(D_#&c%0tF_y5N5J{Rh(75%C$ z9)4b3GQ+1c+IPNRVemAfKRbM7I_ItM>$^`QC2)^*+YPPO90#>?mMi|VP~+mc|K+;M zKIkm1v%8X3M6Og>&C!N~(vAAid~oJx+jGa!>Ng@$$pUb#4 zV~E~SOIzy0Uu(akMIEy);9!zZfJVlbropD{vTZq=>g&{|xA27bycPA{S?ec=`bkbH zQR!b)uHhLbm@YycW{s}qQ#XC(Hm?)J+TMpB=@FTXjBL`(HDjwK)@OF(H62uIZw~nv zAR&Jt_$|6%P3&aKq>+;0Lb5j`6W=I0wOM5rHaAsf8Nj@<mfyJ5H& z6>?+GhDZ+3WI`SR=UTY-qw%O-ehdk-B0$6IDd#9-z|*y7LrY<{Vajx^m}IcQcF+6r zCQ%nXqs4rVsIhNa%wRZ@c(y14QkzL*dS3MA*knJ`^1CJdM;Rqyeb3n-i!Zb{88EVW zZc7mBxbZYf%BfhbF{#mG54r_Vg#Dv*_7^VI|1zQW6|2DR}cTA z--|LIMPLUU+OVTvaoiOho#NucUA7JCPxI>6Ctm?PXBUkr(MA3l745m1hsRS~yqX`# zbvTP(xzMjI`YkPTZ1=uJwe=4Ty!Q4f5=X29F)Qh(E=+=~-zU?LPuoww{lUzL`fO{0Sh#WtfTMUIVmPim@+t{-a@hiw$GaV9hniK~fEg zEd*NhEs`rkd58Jkv8Vaexf4Kl{AJtT|Mj;0)pr2D??1E}fSy?}~okLao@CNF!YM#;u>Tj?;P(ZQ7#UT^Ias@|wvMV8a zGIffym=MKF0>-P~+>@~?5Vnztn$q&b*ORk3RgqhAL+<|BKL1}i&jCtc$W`nBN9j9i z>_k2=D?rYxC}Tfzu;dzcY$dSf(nP4z5S@;m$MQpLF<=J*VEWpCUl~l4HNd&+pEJ6U z`Vq_h0LB0yYy6K{+lyTCe5-(J&pZpz^gBVI%W{zT!K#nOkx~SA(lSTdL*8CHn{ zL-+~60q57L$*yl8Q^>!{VtSm5|E(Q3Yz~OvzP7`($H2yZ01WM);)Xx7g8fI|e`)3Y zEi9zJAm?SkJ1vt0TPPX^K3s>|NhC^R9(dxH_ktd9U98hRWkTS}xXnl+t26-zABO1$ zvbJbkF}LXz!v&f%w!>y`=|t%hnKRsm$5!z-TV`|#HpU+-+&BL9~| zTPA>qX;srKb1veck3}U*DKJp0(wlcxoZ-Wmsn>(D2i{qKId;*lobnpbS2VH&xsRwG zv}-b=_-jWi`^ce)uvJ?Tb;WRQW6nA8ejnS!XikY)y>Qo!2h;ms56In?L}A4_R{b;p zXz3Zo5$&q;*gB!kg=)ozm*2=%)F=s>vGrD_lwa8Q>UxIrN%aIB56J;De8*5Vw9=H0 z4)YTV@ys4c-9SFjnlmQXuCaA#$;$)-k-GB=7f`Ne6wAYTx7YMhb*c1j6<9VN%t|%L zi2$4Ex@H=Q*AXI;n09XZ?huv1O-2jdS~++E(_rUg+3hR4HnXgL~#SssB3_tGlrYjZT`fE)SKb}<9HbsUks$P{b?q| z>V|i+_0Nqyg4unO)o5N?URAdbD7evfubJ(YPs9z|g;kRx5plS-x9uZ{lbZ6@+8n;s z>7PEbnr2&JXebwP8z(h;UvOcYAnsUki~8`Sit>hn!lM1#Tbnk-?mjAzGJ=7~3AvRaD`SvXa3Kfq-9pxJ@5*;M2;l8X`0nhbG z`WWqp>lqXqro&xnvFh3+@%71H+Vc=|Hpz$fzd{>>Wy*RKYHL#`U5q-#Yv95@+SHN;#2RaR-+mt)5!bI{RU z_^N8gGkA%LnCqlKS8GpmmMnC3VBa%!^bPBPx6vND>$&?t^_VGB6O11SoOSUYg)4gj zHnL8A35H+yWXHmhu&m+?m$T%~l8QqSx2-PC+iLbJmhBQ+f#MxIq&N=&eTN6CECqo@ zFoZeey!r^DEZkjJq0i{aPJ`c#R(sl>C7msv6ga+1lc)RL^=@CcMcR7Hel3Lw931Sj zNC26Z&5S~jVJatT52oOz6_DGN8sKhZBG`(89g#N+get;{QJV>B+OT(rRg2xoSJ}%= zo*UzWc5YJU(LHS>Q#5X`%uFRQfOx%Q*-_-7dEmqNGv_kuOA|Mrf>)m>_K|AdFHaPW zVodj8!zz@0RB%j%YqR6xHHdV3`t(yTQ+bw7w_;m^U5lxts`h|zqTHGFbdCx83J1+_ zsaea2&0{9?9!cnXA=K7F(6v3i{Ql7P9UEK^ge9JygRU*CN6ntwrephfGABJnLN-O> zCMc3$Ze^~zLN<8C(5AGH8h5a0S8wsI>wx+t=81&M^XG{Uk!z)`Z-=kq%TniYj+_D^ zcTDkIB@}J1My@6b!{rQWt^KB=8`Zm#)8Qv|3oP-aS;s@ST30W5cq)28xT}2MKLN2Q zTbU~3-3)9cd9_8Ac6}Z0x;8FyK*z$MjOlT0eaPKsuYxi}WGutJAZtLye*5FcW ziet~7i9PFll=(VZ!tUVf4Y4a^??%S|3S#RIz2E=zCFqv0+JM4xn(4yz32>LzTHK%hHX$k4+5m;< z-;-F8KWCTyxGn=AoQZp(7g%83?$wyzi_b>n0A`%`(eEgVD|TiL{-)^6ZK2kA;-hAl zJJmxAKpn#G@%h=LW-TiTXS>I8* zjt@kSN1|9B;;gb1$<22A4UH$(UXoig4|1~@B9AclP6CI|E1)Ic7ofpnSU82zrHILH z9V5)9+-tu0n{(LSXF&7+#;b`eBO&r-yCU@|xMxU_#fu3%;}b}7pW(R!ED@m0tuf;4 zT1MrfoB_af9!N*%2yHQHA7-I*j!pO{|N0a#c?E+AfU8b|%GeHQl6nixX8i&~MlE$x z2Y-D^9jZQM3yNfx6FB@Bj;W8w+CY2qsfG3vGaAhEe8;Lp!(0&c`3p<3Hs&hMJSJN;NZZUH3R!R>HKQXD@J-|Ag!) z`a8!>MK0wgL@%aJ#ZaZe@(lzg$`P^I#@O#DZ*sc!GyLT0S);dr_ng4_NMeKSXTp$b zt~f>et%K+EO%U>|ADS<4Z{?2QRT_YNu#Xr5Cf0up`S;6n0YF$TYXGU%m*Gc96(BiJ ztjF71y@nVk$@50INN8*$AWJ^!)$pTP*u`dnFO|>9QwNB0(5H(u5YDvvHcPzl2M3)J zLF1}_-MFB?-nd^j^iMuxQn7#Ls?h^Zhd-;E^SJ?J@6B@T0e^Gw;oL0On&tGjtyM4t zf35R>DlT|UozmxQ1p!SW2uP+Yjm`#B6@a2KfSir+^aP##M z{xnPvj{+wO3Tl9X^!=3Q1m0Fzk)`-+e~8a*i2a3tZ({**KLG|}|KtBbhgvNa-fe~8 zq6|Q^R=*i&4HQLI{2#>k6+nWr_k8-t25OJ~VQ#?h%Ammh_G>Q>kM=>vv=DkP!C2*Xw8LU6hA6O)*A6mp;`OC!rS@qF< z8pDh_50r^0JZn4f7=A0jlR+gehLc2&z_OMuCaZrfJM6;ds^F&eo+_|oaQG?g$;Fm5 zul*}6`0*PU5QT!>{XcWne8c}a{;mjqO4Xj6uJ;&Z!4xeZj~CNEeqnQ;R8Jt zn9lXmD?_vI;YS~^D}Sy);Z?@=_u%GCeKq`=ezyAGq44c)&`bfSiXJ zVSBv&gWm6`dDJJcpOirhE5Pe-8vG@;Fj)S7=!5VG*bSU^VfVqhGz9Y8Feh*vzm)U) zV~RC+DLsjqPIM*q7`Ru!Fvwi6x`%X-CBJfSLuV!AjFv+anWUKokHyNue@MQb^Gm?Rs*mM&WML*X{;>J~(Q7Rphjw5YekGg?%~x2~p~6Y7&ZsDx z3)bsBASkVgfHCt>nF>Hxh_Yd#0c;OPvXy~HRy8u`jNlliWX*TfT6H^u0fVD28H^Sj z*|qB*N7wqC&64*&&^dexo}zVzVaIdMOQtGd|J zz2*A;bH>V)AAjNg1(eQDCe8mjVNm>4EF)lu(>2L$g4ow7 zv=I&u*i?tGUpt@)H;{d#gbD-)gtGy@`^*O9Jpd~EfSq@-2kPR|G4R7g;xaJwhe16= z6SmjrDo26oV$2lFaJm#IT1U-vWw8$3F#5XNIh5t{c~AceL%%pY2(naB7|mS%m*NNt zi0PX47?oEqWy1VQ#BB5vT`pX`p2UB!->aE#Da!Xgx()~HtU+*UEYOI&RtsSAO`#&fl)bAT0P4mam2~UDjLX>Q)KNgU>*revxYSc>y|Z{-t9_56QZo zdGUPJn{lag_uUPbr5unjOA!)pQX zU#`--#7nASZurl;m6=0AQ#wh31FLuNHA5@Fbo!!$tjGY{=AM8ZFb>%LU6rsu(`{d* zhueWNs^+G3L$(NJ%aISO zNgDRWUf1Qz2#oJHHLTv8_x$?!TleL_g`YEYF)1L45<8256)LWSi$86%Shz zX+pL$>#`XgbbO3Rw>fiH0k7|s4pkhqIotQq1i7GIY z!WB!-9mk@_bd7sSYwb_?rf5dUGDT|_=DWQOrwnA(RSyhF7C(u9dL{p^@XQbg#Iul< z!)&lUS6UWwReDLag0_c>n5=mD=Zu-I^ArN1Pj7pJ*wD@cHHC4ihSKSm&zxR;epM(Y zb$vZY@&VfssoFJXMa!p*yXM%rvd)P$S8La{Ew~fb@eZu8@z=ay^u~U7o!Xn3E$A0m zI*k;DFKn(<`Q%%+l8rlCV&f8_EBmB~9Hy*XbVtd&Z`5c6)NWga*j-OeNjp_i*fe% zJ@EcPr*w^)eErm`n2@bJ7cK$!@gD%L9iTBRAy}iCMS%6#sDOjaxvD_Tnp8pNqiQ_b z4$kB+=};!5Rm8qo{yb@`i1R6aBgyfztQ%~c>>wo%WXd#mJ*veQdvin-dYdD3owDrk zKAE+I0Ib&&9YQL@=A^NJT3%px#?%4Z+XXM$Z^e4r1M6a$!%x!o0}V)9pw4DSJ(ZDzO?$vdp`OqC?g#;sMnq|;ITyN(lqfpLNe$g)x5J24cjtNzndF0#) z*{+$TeSgWp^i3PDuR69c#Uif9P6;d_=DDs@pD#>7Roq z3zvQNOt`unhq_EjQyc;a55EQ0I?6{U0m%=R8GnE{7$H+)EusKlVoFwH)@tMsY?wJ6 z5gW+WeqJ$6Piz|q&J`}hj!bzVdFZ*X_12%AE@RWEx(z&0$a$3te7Do)*lHR zi4gi1ObtjZqRN;)cGdQnX=LJ#8pQXtZ$3rs)Yf{nePx~T?m3MG(4G4#?;YmrT(hoXA=CS1*V^Si@c-UH;HF^4?3|2_*=rwVoT-!&()X}5PN%9eU zrsH=sNj-GmR(b&l=V!p=8}$J^n6cEt?Pi8?wU}Unu(0^K`>RlZl)VffiMh1i&j-yB z=ZMCyOVU!2>&U!)^{df(*8QvGz{ly|(#U)C7n_?4&(+WhQnT2g##IAyD)&FeD4&ZN zKdxtCmoomaP5s^`>#v)zT1&i6Obp)0LJw9&Vn3c?W3EH=_k>QgF>EXp^2D`gcRR;` zg_9?UfDK@;MtQestn)!}uC(vK)|ji`yuBz95Ir9%NRFvkRLee8EM*X`AzR(>d;v!N zgjF{8_-nf^eKzuXxa=9#JWgGtR$($_<$WDHsJ}Pp^=s?_s79My?823c>K8`@yqXc~ z_sj7d5p*9!qSAo{$T-gRX8{tuzERpbz*lV$;)W6QQv51!a%z)rdW4a_jj@2HaG~!C z`C>`bv{ofNh>fJu2MDktiBz#vC8~(PPizGER$nTkYIY2Z+)S?Nc>nhF#<_ruls>I% z?v`<~CCc{;LhKaArh#bS1t_{$cxy=&J_3|fVLjXkkurJ=)6Z)m6i?^K z$LMiHd~V#~9@3lQri=*83&q3?GS0{DoIWGGV9hp$Dj$GW5+W-^z8Eo*5s~IlNLU?i zdKZT~>2RE8)+kpmstn0jeNZO!@|p4T?c$Z`JKLG?F~@wvQ{QY=Q_t_xC&H8 z-*OnMiNCa`d1D(ye?#e{8MRI*Paw(xCyR=TVlq=)bJc5N*P10cJGx!HzrDn(GpuBG2bXB zyP1s1pgp6F+0x0d!sJ+EFXej0k~~{G@oI*Hbtj5!@#2&~hlTK5MqH@z*pBq;DAZ2{ z2$j_0j+*9hOyN)!_EQ4=d>JCnd{h^ctS{G*GvG6!o}+3Mw?tNXRqzcv6Zwzmd{Hx! zn!S@3a^rh1Q=R(t)bNUifhGV$X4Ci?CnpiyWDLvvJK2dnJSbW4>KKR5#?(|-DJ~s*{ zV273j-!~E*X2E(3K!oE0fH<#=1rhK@Z4{X3!FxG4<{U=^0~90*u?kvUX6N6J4kK=P z=Hb|zn-Ngc;Jy^6?zv^C(RgEM-!9U|r5~$L$+%#PMd56=F1Qtn;OxpXwoLW`{~=oPpz32qjWvl^Pg${zdYwl z7|#NU3e|nh3;k&1rUCwL(Sip1x5dnX$Bj5E{gCka=t;P-b@ntc=L&s*QFoLF{{#}E z4v^1cSwbcM4}0$&&{Wo~52K){fT)0ol&F9pNRDMLj4G zLR3^lgoreyg^tun?E;^)$jPU6#f z$r;$nya?UTVbKq3Le&MF^{-&nTD3w`hq0pK)3W?&i!?+EPB9p_41$T$dxU=n6H3e~ z>1tOt@P2AWy+g-4_-GAmeF9q#*zF;2UW9&m_~PG4|5=P9pd={*WJx-U)`!&(L7zVl ztu)!&W*bU_!0DEEAGAk4%-6gCyyM-3-qFC^!lxWEDKLcF^#9g50q2{ zzg52md{hT$A{Xjs|Hj}dzaIUIHsSYxDQg<76Ao`mx{h8rzlPEQ2*ff%?Kd3a?_R~n z;ABYzH8rgoPTJK5nENX0i+`$e&D3tNXjF|NY;oL@-u=2Yz}lQ2D@^9&Q>&Qb3lI)M>vgMLsYI>Maa5 z>Mek;9VA{AObvfEy)M`rPYpA{%;0jsxBMs3pWk2CU;Qq=2qG~}0K=~05j6i57>&mn z`R-5ao}>U$;SNbPE`LC;#w}5!K4JgBZ6hGb!VA>YjZ@tl1<9Yml9?iDY+3LNYNUk; zadPGxgERn&o=yH$j`3gp8=T|ssBE>!zZSo$0#`FCobB~PL{K;9U9yPW{Pk;{ed2+EdB#d zddH}A%anH>N^wK&<<}+vzcJ0NN`B-jd}#U(lrVn<-fw>g%-(eXx0~d9J^xRD?*A8b zALDTWY3oI((4j7))9E*?)b`w)Ku$x`M}IaExPY%rN zfY#Cm+A9*fxZ5%P3FpOExb=6Az3QafHSAxw)+ivT+Y8mDl0jbsGIlxi>nE8G;j;m0 zY%LvrY5U_wx6jpMbJ(feHI=0MWEvjHG=pU8s^}a%T(XxXy&y!rU1I#!X^jTTQJ;dk zY;|%CbtxS7rJio%HUKjtob`W3?rqkv<4epXt>3MO4Qjhz&(D$J*|&yj+r;lJ5`~=V zBH5B#94M#hIQlMP$%_}-BL#p(#w%vn{?y*!|6GR34|ML3Wllhz!Qn(dwi8?;IEuZ5QF$~bhwV$)*6;Tm1X z+CG2-VAhU1b3)zGo`Ceae%H0NF~g`@H0^7F~Nh)gHd^%a>NHE-aB1jUoH0%?gSWupTB)Z`Wj>%rPbD@+xL_f z-ymFIi|u8rJu4HrhG}Q-Mw61r9K>Vzz5aN>X)&t}SSGiYZz4>~m|2w<>=@DasFd01 zeQTeLV_(uO5j$&flPbMO_O7B+#f_=Kue1W}_4vM;uL&I4(7ko{JxDoC{#sjsI`#!w zRydfcRPesg9GhpidS2#SbWWUcNKXjk0Sw=Jp&b;@8oEL&ikGZ$zALYfa#u>bRbp^v z@vBE4-|jbc)==7cFTSqH)p-mErH;UIxoZcst4o=?idBb86iq^e3fmIvwJvz#62t-y z8o}#z7#Ez5&t`(VZR_^R0k}Wm3@;0BSjO>Fi-W7W1w{FFomu{hw+|P!whL`7ytIw= zEN6;tc~+=9Q7#?Vm$5iUd190rlyP35x-ZGSdl4BqL~sf4P#Ks-9%liC*(m{i38@WXP$Q7aXx#z^%N*|u1-CK$ZzhDxCH6qQF4u4j5 z#><8?u0|?XgG=K;wP3fZvrG+&WfSvXfx%|;8X>J+&*{i>*SQ+g&=BGK=o9oyg-zvR{mse=)>dbx;Vex5tx{>i+1o!TJTB$|@T_=F2aCO(8dBd1<1Yo7^-GpWb z;WQ?b_^$6*w|X|8KWTCr2LK!Qm-%5{uK_eQLdf%GvchyVCaJ(0VXUF)ub z1_9Br1w?ymykoi z$S5F;awmYaGkQS7+1pXL7{j4bc=W!I^{eQ62d?Q1--8t3glhRH0W^?_!rzO6`OlL6xHvAw|iH6(XWdwqvN6_R;=)M%L0wSCgPZh@Y z2xupHdOMDJBdyUM>UBjZBKjDwRzDhxwONQn6WU=PYAX>T=pLvWB4n$HzXGCBit})L zI*#J_(nMW5DO;^6#c6=T?a@DPG0boWjOK|gCY|sx4tEd{A=mb2|Bey+R`t35)ull| z{c4TEZT>B7yHPV-9GUaR=v1iayZYZQUe);zGGA-46a}cRjC_nu0gPYEYxewvxfQX9}eGhCN zO-{C3ckZTl(Bj9S+J2(*0Li;_V(#W7j|Cn3>pX#p~O0TzJ!6IoGbaDqhEGzX2H=cp#Qw zwm=p&GBZH?xx>1ps?Bhbam=PHC*|RbpFNp~Q>Xls(09#=4IL>&DX( z4TWsDx%V#C=pCzR$PKbE-UO`341LI~IM&OmmcD&yl*O5QU%26n=dKyRip#EycW@7R zXmd+4`1K6!(TjWVW6)V9EC6w{_e!dP zv9HW?=;SP=`pJedi@Zk{@!j8bh=8fZ1#lzn2rJ9+hX|ZebMGh~V`4Iy8wY}18o+6I2tIg?>OoGXpk{~igXbL`UQc27NX@-$D;CD{ zn&@&@-jdy?`0(BA-agl<2ST=oMvNZ@TZ@CNp5MkJlEL1>2a8dZX_H)cjXmHol zv`Fmm8<6Rc;HdgSRi-7Pc##fPvc(jqyb(6Ys#R(w;`E}iBAQ|edAzgqyC>V+=z7*+ z8bP+hk|nrlyx8&~DvuqUT8QbX2UURabe2GH)-WQL%E?iVWSwy(Mt=#@L@oRA)LboKHd)nsM%4rkTa@N*t*D-Y~AN%xtl3`%tEhq*PJE_^AFe?e-gAtKaCM^!dNz1M_KPI0u+|% zS>h_4?K#L#-FHBfgodDL%Q!FPV9GpfHhq2=>IWGGOZGt!3zm#lZA66sdBF3J*d_Kv z#uCt>I|{Buo8U={AVSkz1GgriuQ~L>#Dd6S-3{LjI0kG%2Vx(O1DW<}<6$Cf3*P>!n{OEbR&TTU% z=ZvDsUE|L4%!H!zv}AP!&^|Gq!%~|TlHPFTfNdY?^Lc|WpUb@t#@qPMuyYL?O+4S> zjwiinqhm9p?w}>?+Mlb(AlB)H=!@WzWa*p1-Dbn*<%udY`}*n#LC^7-Dh5rT_Vp%( zrKm3;J`68q9}VL0cQ`3z~miO-wajCgR^i_HSwm;rDvq6@OEc+ zE{Ts}MPYWf3Aew@+ltEcFk9sjk$?Dj<`wN8v+7eDdMi|NX*VTc)Ywl#9eu!ajf zz#YLxo@f>t;Iory!@N=+^LC|Ax!~5ndXt(EWU=D~Rk-dh(sD6TGbnRp8&xsWKARk` zu_X1?rfu?}N`rinB;liJ!Sw^Tc6aS#+O*1Efh9|(l_7Y%4%Jht%)Y)FrdjLUFKm-^ z%P2}^^$)uEcv~{RE|0OWE|blX&-`5K84of9*vP4z=NZ;hGkFAv#V?c1$2>qgXx*o4*{zoJDlX%l%>lZswSLP>xL#OeOci+j8+wANO3q-?U8+8OS0Bnbnc?~%m(H` z-78fA76pnEdyg)OoavlRLr63yVV=CkE~Q4V${h-8nZKknjr{Vh|n6}H-2RIGZR ze!A96gWw`b#MRM!_$ zUu-hY0Pt+cdca>_gXRxoR@M;;!6Ng@?n2GmvaJ<`8+_S%7zxOk;{x68EGjYLic6UT*ifs0mT(8qzUAR0?KB3F5 z&9xui)QPO6i0>?Y25_P)cG8GZh!ZKh^<&=cbrvt+6mACjIdV0OFt-3O;xFdaLu4-JZwxi! zQ=y{tFMtuG%05ShFA7dVKc18ms>~^71_j{G+|ckvEa(l7c_Erg(cqxY!E*p^`Z+2Y zNWlMa0|4#+@oGySyoj1-MJ&Ci<0=7DOx+V?6>PoO>3)O2Co0Q;=rY<=Rn;N8?fiT?{{xeaj3xp0jUR*{3{{$#O$K7V<~i_k%J%nKyrsPstrhNg z#4x;5r*|8pT33_%dWVpM+|9_h^_8qIZFWyNEXG%R7*3ZSY0t!4zV92*-_NeO^8{^+ z&zhF(s~h$5@($_v>)lF*_D0Ky=V;)yy!YO;u^AynK|J6Hjq{>Z0W)&lmi|;?c4lTx zo6h0@3KIK>Lp0Ae_%hzv;^V@q_xiDnEp#HgkuOLzZSDNV&~)P)!$%l>%wgpa7GMU$ zy+do6uvK7H`Xf*;jd>81cPJ=Hp$R_tYLWU7?0-`!Ucc>&fA{*wlIwnOq5667FoE5) z1a~P;--ATXLP;$Cx=P^u2fO^PwDTV>s@uOwRP6l>_u3KuFuXWMhKwUN(07;;b4W2{ zcXvE|Ke>(KP`Ua+`)DV&XYXE0uj0;NUunT`Y388G60fxsm0jU)>QwX6oEuj@^z%)M zc7_=vK#n|mb%DwYJRTwK5p7y9xY1=zRFuh5JVgmLfaSv4L~xvMLkVmUa45&E+&>jX zQDmDJnxai^D5r=BGKO#7f_e{?^P!GXooFxV{Py1%cBzYcl{zB9mGJU!ZJ9k!=Hs9Z^afG^YpwA+k_v z5-k;SjtWEOr3Kw|gC1;jOA7EeXmcvW)66LOt0BS+^t3Xy3E%dQPG zYKNY?`%nv(;m_B_C(vZ!_z;u?Rgac9?`ubNu4;3*6CB3lESF^5HZQTaxfWIgEqle@ z)(5+b!mT3dO%mu=8PjjtNe?gRb$#_6uy=ae&s$OiGU8@De@9yQC2jsU#D?#V`P1U} zZtU=fA(%QGRc99IKMD&jm5WCZB;TeYigWi%M0Andry9h0gae0eW<1?|YyUCYu=wI6 zDVp}4E{N(fSvTmag71bZG}MFnqD>XMB^=e_9;UlI5IoT%hV@aZb#<+!@S}{~?cF)%JSv zD$_&7I;Z9V#8F*LpHz1|f*kEgQJzvn?v=00!|~2!(+Zc5C+A^EUJo}v?z?>2;>D=T zf#m8>WegtIx~DFNzT#Zq#PlsG-)7~U*6oNjcI?BB-Khq&&gbL*r5HO(&cfX)mj0{V@X!p zTHI`6OJiZWYbhLHs{c&^KLnc=sR>SDb@SAmq}%*T8vLva6xNsgVHjaM2eQMb?5=JA)(kjS44YP zGye8|x7p^@v#ovWpO*K%D}AN6>vdwWC#8gaFjPE_EclF^R0-Rj%M0Uih!{a|Y1}~f z7Dn~p3(Uj(8|HPQcN^;Vezd@!R92SnFlpB^F;Ty+*9^khU*$ReD}xHqcN+}Tj_<`H zeL&$!7b%^V3h=|Bh|aD-ZsOQu&^)X7A}rxm8fhz9y6ts@k^aqAUB+X4bfUh3-Y32} zA-XeYxRi^Hz}jQ@G)53G2V`GwM@ix(Z5NV~ghyHU*Ytc&P5jH-F~@LLTYM)RBLhaJ zOkbnTp@d~q;~lqRFm7#@aD3EM!S^By?p$Q?VHjB)F|X{d9)?G=lNaqKqMx-c_bC;_ zU)2ePdsK7kCs|*L&C@yyCO7V0DU4_mNM{G+tlIrVqGDKTu5m{mdrsx%rdvI>MmmPO z4sm4boYQ+IA{291ZKn!X*HMlZ_ky()C)F(~Qi+aW3&;w#1e@?PZ~X5<;9oZ6KmUKv z!v+?yBCW=4J3sc9jvk0SUe3udLj}|CKN=m}v7NsU!eLfg2G$1I%Uxx)rK41+PK0DZ znRDu^yknM0OQn8k#7;fqORv0o(9+UXFOfV-=SGBJ@$Mk5ucCu$?a&5_Gkp(yo;?R3 znlL)ltF|ES97ivh=qa#u{5VpIlxaL@Y#3^wRO0Nsq@E;Ib~f=*l7X%r@D-wI$6Ame zD$d@ZSR5l|(Xy~NkUPoTy5v|Ps5f?@vf5F_^h!pwa`sfXHr5ykHJ2pdC{iZB(A(?_BvL8^ylP9|CvoCzvb=`G5 zEDmG+T)<9ruomou|BT@01TGW~%13)SMx6cSG26Y+wdXDEREqc5tw+R8nYpnN^DmAb zeLORB2dH=T7SEDy(XvnnQFZ$}U%l}?PGqJEt|nHoIC_e7J7!V4I|??1jNX#={>;$T z(A8*%i&Mz5w^F)pR*$^Z{VS#D^< zEBkW!pIz;~wqRI*Tkz=a43fnA9>jD_AZ5s#v{555iutuhVn3*n_?w;-AyR8RQizt6 zc4*9u1{tA(!9~och;F!qCIBqy$})abw{c<55B>(10BT413BW6_pesV%{#ih7w(t)1 zE?~yofW{A)P0~UXLBE}A$oI&I*|k z-io}xdh(FWnvIK}&gAP8m=iBv8-~XpjcYM{^kVJBTr)GtgZ8ADjUqxmJX?unUxv@I z?I*3R9Lc2jxVV?%QzI4bwiUgv*W6d8w01i@1|dk)rf+W}Tpfki90X5c5Bbp0d7^U? zQ`21%<>P4#gCU2SVSTppCQjdaS5C(0YM*OdvZ)5O(bcAI`GHz_nv(7!o}Cl$D)vp& zaL!`3cV5m`c@&Q@jA_G_yUr8ER=#_VXd8UikTi;pI}llA@`T>(>WH9z14toft_G6Ak)U$B3>B!Hhuz2m05LW z$5VBgFINg;eR?m=^5Q@7Fkej=jjJGNf1W{IZN8=5n`?BjqV>(f`6KcA9L9;cLM_7p z%Z#FOXb;!UWsh)m7K;y4p!q3+b^FTpvC>Zks;0MhKaAde@CnDh^C!!NF0*^O?Kxo{~fuJk*3Glb(AZbORU*B(P?hYXB2e1>l>D;J#M{p{uAM8DSwAlTyaD4*6DXa zB-{cMTuycIHd-pST_6tUdkn0@eRLeywj^&(6t(0na3O3D#F?9R@H{@xduxdAkZ6xK zqn*Vr>63N1ZX;tU#$e}!^1C$+yq1y|6;~gDR%gkI2w%S$JdAz|&Qt2P>Q@R}dcSO_{wUVYnIdcj;>kA6 zj=P({+W1!*(;Z-31Drm8F=+hAMk(`$i*LYUAJWE5uVba5;ZQWeae=D5L`v(TABHL> zHagwWKH<%ySfT4+dJ5B`$Gi(XJk_BjQqStuxg?L9JWIzuI+oMa|AmhBWFXuCcGTZ$ z;C=75(D|rZgxYF02lLKiIQ#EP;BVjlV+lNxjzjKW#`azq=DtrCykWc^_&Q{CfxX)+ z7U4&ii=5&0X}IzAknTmE7Mtydf_BVpVrJDAV*G{d`V(aSaYyJ4iLR4 zO|GPu%tOmZ#K+CnGw9pBK`Mhi96meP^^M_FOfj{M)(J^9@o(hMp{#Jq4nXb>Q~&(0 zK?>jNdx|fn)*=^GXJLRlPY<`JnPBRp_@U1W@1U+_klT{Un39EsLQ?I7+qfVY{7XI9 zny1;5f3a78M5K@=CiQ>p1UOy`72#TvFG;OFxRW}8{Gq|$8nA3X09Wtpp@FMQ)Si4h z`ifNim>;;?(@PbRc}OZ#EcF+a zk|Rhe$Ep#Ku)WTIp^|XpjvqNm7v7u5wBR7x;})v@SO?}|B*D{s;%KIykx6m_e$?tQ zdQS%wJ$3D4h+#$+PMdCvmzoQt$lDL))y{9n4{e@4qyu_|iVXO;y)nHh!7-6|efWOf zre6Y+=1V5aCWJ{mJ(iGKW(E&(6TkSOWtms$-OXX-nk}C_m#a^TtnOG0;?CMJ`Zj++ z8=2_B+9L1o@tUl%;_8&}y*B!4XEyH2p{BIyvI)@#<-M)DC*BVa*Sy=Lfpmc?ShAom zyca{Rn_<_4~PXr@!IT*kVI=oF<4S zzdK#jck`>UDEMd*&)=Pmui>NX&vR|8$DiZ%oAvtt_?$2;l_5kXfjDUUjF~{T?at>f zXZLV~it&1RKI`S3T{>B4`Yy}c^n1M+`et1^=l82FSTygtJdcPQq=3#}oy$x| z)ePmLN`}Kmmj6+c@Jcj8zxln?iJM}dpK?4BlPT_U0agTLO#OTuVA%z8C9ivC1o+yY6Qe@n zCFXrQxm8Nto?QY=iT!WQk8?u*U8qpozUDXA+PYaJ9N86F2 z&CB_2mG9U#8o_N}^XxLfDL2)K>HYN4j$1) za*tcxBW?P(4ewx>h#6uQvB7d(mNKUG5J49fc_~ zWnIgwe^^D-MPLI)0OBR>Yf9{_tpoy+#T@wK*54Sajc=PznZ-R-i1AJg;5Z{#;DUZ6 z=USJWU0Ww<>Q^IP(=7e=<6lG&c%#0 zA5>5Cczj-p6gYeD`jasZzseokl{5`|OH6)m9k{yU@uR0=5S|(I;z*0i-C`?F`DRkH zjrA|`zIU3nfA8Ih7bSQqd0*@P>!U;`EGr*dhQAg6?i+tF>yg*`m4BY-=NSFPZ2KRX zM;LBeDd06G!TK~vH@ehd(m@iICiA_*ZTIORclRAW7PFIU@v5tGkKom(Cg8w-?9m$; zg^O@+zuEA5a{G~5H|Xe~AYo-Sz*pn$%NdUxQ+qSZs>ksjixD4A9=&PU5^Vi$oB9Y= z3k0h7hO!YOFJ3D`>Lw%^*s&_FV0&(La-&-0W^+{ zkaLOv1^cR|_e>4Ka`p9ZRKHBPtZaKV(y}{8=4&Gem*#dN8$fk$OCK(KdEXqQ!0&T> zoa`z0w{h|M*=zl4&Hq2DBXLI_-9OK^Uu9tVr*& z&!=4+SAF)WUzmJzAtoYHPjv^~lWK?u>AWpoNro+X=B7vU3=Yqji#K@7lx|OTjSS|y zW~xIKUyuJ0j6m4{cf}GKerP32ZlD;DrK(dH3C)?I4WCbvS zmtDV(Cr5c$`*ZlND{nN}Bb^ z-be%X3o*)@jE!?#-?5+55?_p^^C2)$SVpCH&nK5D`Q%5mF;pm45lG&*<(bezFK?A;iTIi`xMIBEKr84I6 zTibbf<6TqsbycGYrx(b=$gomoulQ=%u3~q*rQT4L0(ZQ+K+Ch3dJU2bYXnzQeT<4u z{Z*|pRj$wVpT#F!OdW~38u-Vhfay34(+zBt2y%ir-B#uS1V!N{nbT6_pdOQ9c(59RJ>5cWalNYrY)b~JK1GjjdN6G&R)>RdDhe?ufF!$6vxqTow(V z)c&u5i!OK_yObaDGFG=eHA2fYv7?N!e4T)*E_1k{4*J3#rxVQyj( zy^7!S8-qbx*C=56XnbQhvbhUBrwbyK)*>;QA6Nn)MgF(#V~Y7IX{4x?b`k;p)g8(T z25nLdt%xHV{8!eG|K8(wR`E9i4v>yI%S;NPrTxl|>8e8RlE?kRj***kQm_4m9TTHz z@LmwGV-D8sTXT8(kUbnIcum8vL+eM7YtHsqYJ?S7G|a%8sCz_4(rbMXv;*zpV_32< znz{#90hF&Rq;`9SRaqS(9*%NPorU$ZXr_6qo2SL{B_%a#DK|vd?&HFbxO{vtay*bT zB^koE%w2i!CLBy!NiqZ3${@IY>3-n#7^*W+O-s!!VI#r8og=!Zj|jXt+}f+HREEqG z^2vF)^;m4J+3K6?`cI5?dTb(3@R**xcz^07rVif6LEpyaPDsONrH@1f(T`w>Fp_Y_ zK>t*4#2d=BsvEDKmJwN1hh2D1Ag+rr0QS4zZXmMMgsl>X{7OZzF%<3g%<QiqX?OdiQ${ffyZJ)>j`IgDc)J$iL=9`FXY zFq1U^@u;_}61z*yl6L>yVE5}(HZ1Ald?&>tMyF%-B+HwI>I3D$9WJ<0r)w(#6qVoXLW=^IhqvZfLVRn^ZOT=Ghu6 z=Evd=4KX|CPxWd#AHsiRY&@*I`#nM?NNI43V_>6*SZPJEx6ReivI@D9lI>O^FR38Z z^-HF*(Nfe8+gq^{gCpVDRPEF?q(d&frd?7Etss=3?)A(@Ir6lcOwFxZC%GD+@8{+( z%FJenHC?C*LkR>Fm$%KOQ-m%mZw~=!N|-=Pl>P!KGOY$OvbZ z;?y3#4A&JZ(t2PTvXE`bOIgHQAR1@A*IUT++_f&khz_Joa`gU*M9Azn^M0*Qi!fx@7QPfq)Dn zqtW)2s9tXRjuHZ#bh9hV?XGRLzfsrG%I&$dy<1CTxX+)A7=YYjY}ygBC+H241qWj(=Y5sJ zMx?47GS3fHddBb3d^zpmbnvdGps;|QQ2DheuWOrbRXtZ`P= zg}+=FYNYXfS?PmuOpyvBle`_?*sW&2>s(c6efPdOT=re$%b@ehOnm$Ekg-UDbJRTY zotf|HPW4?gCLESiiuvbf_n(M4Kh(3j`@>rHv*UX-UB?*jwZv?-j6l8iJxLCJPCY`n zyZS&)H{;S&qGV#qwWjg07fR20%Ic2S9bixvx+iOJN9l}(Lo2DsQ?1{4uaQ0FIE7cv zq+0zDnCNR%#uhaMTj0AC*-i-?B}ctBZ59Xa zoZbQ_oP&Ph8D@g^5{%VD8#KdEd+9#VaOW4Ep-=?UZC7D<@p)Dbbi7hI(;_z4naTwX zW9FKUDiqc}$dZpRb1*8hJf;mO#5$2-hqg0v=_JHG3XG0>fAYXiI~-)3stig1Q6uSs^k28-qe(9?eP}CIg8F9GFTv=E` zj~~&0Y3r}s>8P1mMLBtNcU+3dEYh+KzT;MS{?{3|ukHcKm^HPa?`%0*TTIi`h z&?Z02@7ze?AJ3eOkD#AvINUhNQ$DH$k2Ay6AjyZ==U)+Uq>}(=18y4&M-`R;3~hxb zEsll;bWlnLHrE^OxCFJIrg*Gn)8=eFdCF_2gXe+u-m;UdN;yg{tUXDb42QqZbJRve z85Q_b#7MJ^`JT~Ss~W)EpB`ljTDx;Od@`{1LWX{??yDioJeq-w(*8#?6s6Y`yHE2* zCOCL*7nO?xjLuy8mQXK$%ffbf1HC$V7Dp+)JVov(mNz!nSua`-ZW9x>5h2J=_nOS_ z#+#!-jHF9WNVnfj_N=&*ALWo47ICqa(Q!+au8_lFo=58ZCiXekA~&hozEBEv{FpAG zs5~D0CdNt1GIAu8oCbQvAmR7!h=kzZ=f&2TRlf^nOEBLcp0{`(bMx&J zvoBF{BdteJt=RndN_Y=5g`2)tBm~0q1B4?Cw?XX;x!W<+tA>_p0=mK+^L-PwtJ%r@ zw#>{_1@Hm#b%<;MC&Yl%%qPJ6!IJKFQE7K$X^6N<2(t$7pwI>#K%lCuPrres)xuZ# zwW+fjbZE*x>&WO^v6Uk)GxrVL>G57meppuCl4e-ot%qBH#_rBjyY(030BQZ(qotHx;CrDB{o%~!X`GfrfnSz#$Wd_4{Yyq)qq?2;M$EAZSt?Wb*{ zy@2ecHlymTc348S08IHZCk%;gvGGnTils!KzE>3e@a$GjR~;Vtwt#A%Gb)+q8+=HE zwd&$5pv88YXF*oi@y(%RY$cjtg}$e<8ZOj2QAoTVYyXZ*UcX6@w$oztS;XMEt=sgtnZW#bhf*20>5FW?vswnjx?%H z?hQjLSSnPmqs~J1AI(Lx&QWbAy?T$IcjU<(noAn5?w70+LfHjqRtmE9k)GZ{aMhEO zKtBzFvnHALf~wG#cl<)t;Gs_W21iCz^oLn|#79Ch}`vVj_HX+m>6fsQ*} z2-GM7{Po+Y8J}19^=!i$3O|KvJotLhv0N{i%zWVfIv4;Z64@N%yOVYw#Y`5dR)F`Q z4ilhC8uRInIqK9TMR+_v*_oB-9i5{^vC*>p+?dA06uzH<^b0@mzoKWL#TWTLEX(ZU zJ8=O`&Ue!q<9F#jSc8ih6OMXw8Qi7dMxB zzsSxEdSyb6KGXa7P^QF@`q~y4VF@MxeG#dElUV?>qjn0oxlhPT^!w_&0qx5?iVjDr zwgCB2+bh^;Ug(B3JQ;l&s%-T224q0=Ht2@AFNqhc)?r|5Ki(Q5|N!#oz2snoYFe)mF>>U*apW?v7s9Qj6HM+7?!U=7B2{S23 zaII%qo2ph@i(cMNh@x-qhluNN{Dit1FkXlNh_H7Q1Y=#z%Z9Y%Ao^)o@4l!>+kfsx zv`HSkYrB5l#?Pnmb5i}d$bYVlpO)&U!Ts|M@c(RW+*zoR>NBZgz{@@Qzz>nMU+F&R==l#%Ue~QL#>fE~EkNf|R zZpG~69noLDfqkA;dnpHWrTc#SU;d*{fk~c9rKqw|9{`~nSTpXQypO24ImJcL#Q5iJ z{LUNu`80lWRR51B)$u-1b51z7AmCM0>6z%>NcCE(YyvU3|~v-^IiK z-l5{gi~Q8!G+ndA>_D>>v7&ZQ5CP=N{t^ZNVbL8c4(w!NF#Qu|5px7%{2q9;`=Hsx zZwz9s39^U5!awy(;$tKE@sa%jdQn!9cH3-W_8u81ya)g`^FZ12OH7=@42CQ`Nex$*2JPm3khC3oOG}7VQz}-@^BQ(RhF*AV zP7D-C9;N)2%h|~1{L4Q-7D}yHVa3$k!3CFQe`7$l0bsrc^XxO~2o-yw9H+j|_ZtJC zGl*hds=IB}ZHbS=$PyT8s&g&0G6Y2Y+5$`NTK<{xPdq<;0j}kK89R7zCMp5?UeL#6 z982W|D1&?|eHfxdW7_<{vZFczaq^y!rzuyr2HaZuNM8yf2=2J7}JoZee$C4?QbDS>PG z7y|hWhZUOPMjON5TH{%LveLHtWOm{3$=|m~63_qu3*+A_FQdw#e?l<9YUdR?MSFe5 z#|yTqg6+~+1r`tEMcfSR-c}2!wix|2anXJyDT=%rOKY<-Fl`qTDTfnWq^Jo9kh7Ze z%mrCswo@OV;r@j+1sLBqhVC!Wa?B2(4CWsKjn(@~fg3GJqd&Cg8b=dOIrqlnab;0G zvo-rY!$E^xEGyE=D{Nl+DC@S0ZIAR5k8=(K&JE z@=?~w;|vxlo4D59DHZ@6wNc+g-9tvcX~4rcr>*3O?j5;duS}=Ioi6KU2YQboqYZUg zO*|$T?x{xk!-s>RoYFiZmV^tg?aChLzmdYsVb5K#n43}3W{Z-?eg zfaz}0Me)QCj z-Ts}tP9@B+uCHtCsHQSvi-9JxZQ>4s$~jrtX?2)(k1p0XRL%FL@>!F|{W8^S!F#GI zk5@f->4^avs)~xH?FVSDsqSgDEDEvicqrGRAv^RXaiHvdx^p4R(VV9OXWJr!N*L)Z zV9ISVC74t>`vLAB3w{4Aobb@XAxA5*IpYSuiS)4ms+9Twes)UP8Imz@kPS9LB_(NBm zJ)PK=CZ@FgZKCB=>F5YVmJp%7#EzKIDuC)*hb_|J2AF?9*Yd92Ll3FH!T+eBg1PV;$eC-F&a3)-!nEg4;zY@im zn{&+6E_%kSRO0z#*G!?<{tu#S#c$d{!7l^DoqH32Pm3-(A1d@$^~Tn5W$6euE9H90}l&RaYQFOrU^cDo88m3)9o%hXcx5mfg-wQfQskbNkWjSueamyyx4`P zg_4(N!NXeGzw(w0MB!S%q}oe}0>lm5CU!g~OnzQbgXkI1Mp3VJPBVAwaNK%E{el8# zq14xU#-iOplOh766klN1s2mg#DtnitN!5M>AY3YSG)012C%;hF$u_zCbab@2_#T=5 zMwg0Rvfa!#)g|LQ+P}VwUk-P;Vo$qL(OW<}HdX(Nc1!?tqe;ISCXfpc@>ta?WDlIP z?vT8!HK9LUIs9=&M{jy8%0+jla1 zRK4%5a!p*#cE$LULQEB%T z5E+u!&>&3j>cDW(J0vQf?b&CcFvW$~A$TC1F{Ub;iYEllgTCW!ATKWI|I)s-H1PH8 z<8{aBkB%9)Us-K?x!I~Z=16qGEyWsM1{Wl-NLx!Kr?7mboHtO?Uz{BmioMt}v7+9I9{oYbR>?yr9^duA==P zuL}w-Gmhc@aGrG7`$@1dm49QP?2$v#4g_J?wYX&RygTOm!!_+HnGw;ww5Td{Z(o@) z{Jj*F^S1GO!jnQrcv<0iP-dE@aNQEuesQ1b;KrI;YE4NGL>QB6h3F5#zTphNhG3W- z+DPt-TTZEaM&;^TD%3X^Q5-AQr1MjmuK7kE2rShd=dlr)Xm;HMLn8^_Gdr;7;Tsky zg8knNQfBg%;4}e?GZHUKiZdIXAEZm(RKsNCQRy5YS9pkh&Kx9p0m16mByS~>5DitR z{+i?EV97w_tPO4Cc=eJBybWn{qt5&48sNkD?!8?k9O0>9R`)1DKJg9igcPPMYk|(z zMvlfWY_Ugj-&{$)t<&n1w=Fj$^F?uSy%F>ba?&w5h9oS82(rPh!ml`WL&w&bIu9t9{UAh%AT+C{^+0Xr&AJ zT9Z8 zU5JPZh!9bl5;GN~NEHxJkSd5uiFB!*r*_QbxWX&H1NEktrxN{&8wvg#9p3 zdXhiUVsZMO3SeaIhdzk_QPxS$*sEWNG&iV=&36H6{D4_9_=T9)2LCgSp0r0T0f*H} zk+=ZpKMg?FR0lI(hHfJsM$!JJS$zE+xPz|K%m9hGpqKZ;M&%;_IfKR_U99T8oW9Oh zQPE)QkUn~5n`|qEI~gs@Ph>G8SPDe_}z8g zUODgHF=cZ$JyW@&b_pSEv8NItlvr{^v-2<~|HM%V|2ZP2W%_0EK)%@hdff-R|jbJuA8 zr`txor$rVq?5s->TfaG5q}&(27Aqsk3M=;u6pw3Z@{7V;S#=6SRpcpajNLKu_i&xY zyW_vy^{WF}#YR*7Zuff8+LY!N@%9!+o6~R8wNr#+9HI@~Y$lz6GUHas`yMOj86IFN z_TgmU9k~4km;=S5DDi;ni^CVhOGi4e0*=jlKjiK{`PNX%P^ePU*JXfs7@E{1t~x-g zM=^CzN@_KA;-60tTr-!H4UA9h3@#tY`Y)8DYAptez zZ8VV+ZOiEHsSS0?y66fpn~wPz$dQtj%-^4Ms8axP=_sH=MrZV16}~Gsfg9` zrhwlvg8wU>8r`_o01M=w3P^2%C?w#1{6A@G?m3XAb{xY-VfesYB59vr(>P0~%4`2f zQ}^i&cW6o-z7pA4UX^tG>D+{8>xt;6^0Hjax<94K|1oX;r+*8L|3Uz!s3#e)WlJ#; zh0ChpWRZFin9HH2%mLN_%$UfE5e(C+xlcx4S~=KfuEx&VPW4&t@;2R#eC?R`}~c{|Pf(v;HU8A{wj- z-;B;BBR>bu5^Cm!{%OS;aIxF=;7EgK95ra zwa1a6l;CE+3X+zIw@Ue^rW)m?rl5mKB^ysB#1r>($1R88kAc%?n!FgPiui>XwCW`; zcNd)904mP&@tx>pfcB$cnI80-tD|bODy)ZPoT5(@3=9<#S_#}uVuFqyPLe^k#y5V9 zex9Jx-ifWUN0Qr{3C8Q`s{H*TcAIWfr z#SSNMwxdD0sUSOsB||5jOT7p`psluxe-z)BaEDS>PIMnn8JVVDVK3A2l7xG#uun_s zHQnHiO=o(wgOS{-t!(S-OJDpmQL?NdC1$I<#6S>oTP~fi3{QF+oI=9EYmU% zc+VY^mIqN72$O?evVh|dmoM13FOJt!R`vUZM*^0cCd#;CD# zLQJ_S9g#4+iknXI5bk8f;?V=-vjGuD%ZH^th@X74_X*;3adoJS`}g&3YGCJ_QM0{o z+v{u9_}rrfw;YEGf-F4`opm}m7CJO2CMkLCvB)ccx&LL)|LxB|>z}?3=Icf2~cyb^z0kl3m|^7{#;2{OFTruC~2=tDjE0OvRs zE6~b~aj#82J5c`pl;U{7fnD}?6J9xqXYHzFk*2fx&rc31`jq#3d>PAqVlh~q=+iyb z$7W^MR&pc~D0ysQWC#(q`U=s9(9|mZZBX|m7^D$G9K(JgqzDef=Q&qb(=o-bS%mqc zru8VWK7Me%q;Ksey2J{=o5xzJF|2)eKUN?;UbL$|^RqfInwZvo%f&ISikEr3ZG-H6 zes{`XOinCo*XG*V!l^tsy3uPAbPY~ra}OJEqs%# zy2#q`#`c+a+Cr>K(#$Gr=WWLLfW8{+VhcNr)=ZVF*fdq-zj9km<}XVY5jJQt5h!)l zKVN(N%~)bso)mm)@D5z|u02a&T;QR{_iLzRIX2X%J6I)9KnF}&%%U^Um|9dJ$ zKcZyNEYV+sITDkUm&p|1T9|;?LV)vWU~~XaVy7_{)USx_Tnp6uO3y&+R!VxdX}^a% zIeS0|_y&NXN#H>ABTX9!O%61i%|CEAu4V%PDkaCqoKaF@>2Sp4sJ>5gN7ap7C{gfONptA(;UqAFGzA>F_10D3xu&gUftE;U}wGBmk z3;lkA?!Ddh9qf?bPp~R*CzaDJtv)&C)f-*abwqkA=x73f@_skqP=Uj-2DF2T`0&yp z?6tghyUoNe#K)d==kSLYWK=}rLB^Uw1l|`7JK01Gt^S^rJNoIi6Mek(na$yZy|zP}#EWW4gc*cH|H8{AIj{Qn8)|wk8UJv=K>nf$#FL=KBe4hLfm8{DlXFMRNyS_zk=zc-2bM zGY1ldN^PvK?Jt{;{n!QSqxeWYE1&L;f<>4Sy(7%ypsTsO{evQxkhMMMs5@wBo5iHU z&V9OwZNkD@s1}laNNu_f9Fk>gUr?38w|U5+N-nnh>a)vR+WTH?_<7f6Mn!0%bAPk; z?OPoAoYEVn(F9mhb#{)a9bm+;g`HigsLk$?FQ=??-v3Bja{S<3ZHLLPxpeC;m?;F0 zI@1l`QqRYJS1;BM0(7C~qjjwhL&wbeRg4`951%_|n$Rr6yV>wVg&^%iL4BivziE`@ z(Nw1emk{fej4}(S$#HJ5Y>tDznLD+_c|te`r?ykRpUs#P9SWR5>Kz;!E|lRn*mnVO z(pYV?j!l0C&B6kf?E=23bM!e2{)^WW0&3btc51%u%L$%kFb*B+RNgs%LmiP>bLjF0 zu1nX>ucQfe7^yV(X6RWHr|v6 zQ=TC*T>B~EoB0Hmc`BeQBf93y;YmHpJrkN1C`{ZR8NdOts9@ew*z9C{j^)rQ|GBBuN-T_?eu_%grGe6?63dpt9TeCST7DXq8MIs z#z~02sRrcHc9+JtEy~@N(C|8VvpG@bl}y&g%2%)RLUMWJh3MEx_Ql&ReJK$Mu-_u5 z0DleiG2*NGLeN}LKM51^-PbXwpQ}TH{>f5jpt}jD>JFm&X~*@JrGNYKU`B$Dft}{d za_q)k(BA_!DY0WSk7u!ynLKkN*hG!RwVJ;@DNyc~wgr{E*`qIBkZpP=ZY)Wjj890) z?||YuaeOd9x3;-Z@`70?26;{uKDBJ7A~A=zNMI038y>HvY90PGtX}Ee=AAI`E*6L= z$I)(#1qCsU5a@n-^+zm9b6f&4nz5Ky8&B zZvD?)yF^~E9Y?cvo*z?v$k+CO3PtIhfVD2jGYt=?uQzw`9r@}06!Lx~aSk3I{&g-aqzL>TWA-T8XCf^H`qsz>v8p9#)(JBJayyr?PG%4X39l6j#~m1h4W441Dw)(E}=>Kh;95P5H};j`bA@!N&ZO;& zkA#9Z-1pyfR=*-UZ`#LE)dlP0A!cXAAg#uJ*bc$FC)>INpW<{!Eu!pC2FP0=>`o>7 zuZ|dB9EOHe?_3=os%Kiz#*0|e^D zVk7L44GSUZ`{-u zB;PL+VCD8%FpHaZ!FjI&vyn;5M_)w2r&?Ssy^mst-Sz+ZA-fPBB7asG+q%a%#pm2erpE1 zm9JUJWI`3aXUggKeJHXYX?DR1sD@}Q>gQBCx)rl+S@+W|r3^u*0N>iWlXg8xBUIVm z_!HiuNp`!hT^2KK`Cu8m6UU_Fu>`sppspxLm!%%tvJ>{FcHQ?}rqyF3YaM)fQ=)nl zA<0u5Ew+lGrJv;g`^|g%Cu>7_7!SEE#)hk@u%NiT#=vff%@?7M6B$o4p z&#|<|l%j7_G9s=%8Geeh6F-nT5wq=Hh1xki$sjM`U2!q*2)%qtR^=q0&cGRo$iPnB z_ep_);j;V&dN;U~@_9qgZP^{OMRSZ;Uda-8L4oG_scRsW8$sq}DUD8~sPmJ**@c%Y zIagxm2{OZa0jO`@U+&sG2M-6Bij?F-;Kczi&h7yJCi1RY%xG+g{@(Zx3(eA^q)Db( zfc_ON^bOm6qI`lQSF5%cn?5y>8;snEEcgqI!MOxcR!`5>Qou*;q0uRMI~+{U$1!k z?ZE3dH79x+1+w4s8-LBx-e_>7nU_Nb{Yz`*f71lERx-AF#6vS6 zF9yk4WS6^Nhq77=MemkOzLE^$LeLiOvpnzq4S@fj0^$EP0C3g=5EAth$Az6XfYR;! zJZS2LErB%s&n{;oh1ij3FCwg%{1ELD`>@)gxogm$Y7wrtAs1FRDg#L%zgR}J+3A=z z!LoM=9Qi}6#S=2OnPua#AL@7jNV-V{999ufqs1kVgbc?Y#K{-KN;INPlzY7lUF3m} z<-L2Z?)$gyQ67q#*f~9{CGt>e_*BFh4@Tra*&;tNSOY=9rW!@cRv-@O(c)1 z?zk>~@8fwxSwj<*ALkzjjA=_h?6}QhC<}=TvXMl`dFGgq7XNNc!DPWi*zp;b=37WQl2y znMK<$c;VMs=H9Yze{yt~r*~=8Jlq&4aq|R$7W5_I=b6As^b0c0T6N7Jc@8}ImHbxJ zx?6Q7@;*fQkO3~n5@+8`qu1TKXO>+!+jNGSphi88US-%4yOy|vb)HuIYrxIfeBl@3gL3UXP}^@~3Fujdv6v!h1=@IC6i)Nil=wruZ_H~CxwMaW z+Tb7OqSWVezVQ4&vBZp20PGOt$}%)&5#~0*X@0#3^qp}jC9}n)xp!u<_xhPam@W)J zb;p(=+6fG-sM@AFh#s@f1=?>5A-JorPilphe>Zt}SVc!fIGImL@m0*?VE5^;al1@?!u1wj1c1s((XQWbXP+dIuf?JAU$1(Z!4 zxGBQBT@lX%#nT6-b!XfrLX9UvuOcPG8x#AYg0@hCwBHjN39vTcxjX@8CE#x&?J_kRfPOhUmlVeyLig2oQ$BD4fqw;6JtVHq*db_1}Y`fDwK+Mb-!ZMD) z{!AzMqI<^&9fPK1j&RXK z!(N{pC4@2jZJc~NM%@9l65n9wl(UCUosC7P^7T9RHAWJM`GbblB16`)FI7^+J!InGs z+9@`3Sm0Kt!nsT_mJ&u3PQmg{+iMNGlsqeod|f14;m+lGhpXwq*^-dY79Xb%eZqBM zda!C4B<|pbb$*P~6w;iF3C{J@1OwukKv4jO&}1Db6l)eX_-uA+G%EHkBKX+z`IZ)Ia`A_S!C!`w>PR9T$T!?|%D6 zvyN2a*V~j@eW5Q`63*7Vd-8ocCFi}cry(WEYxm7pnVT+fQ+AkK{^+XM_}SOWx~{*F z8LQEDLNHC1J^6*911ciktsVPqp#Bl4#vw6)+XwuJAKxwk7C}h+lKrAOVHHX_dLxxR z_5%=Bz5^d*O=ddiFI5@;{`sH#^Z#AP=N)F~HphIS4a3+9WKoW3ez)1qJOg#q0i?C@ zH@SavMe{F&uzvoM8iA#KSAFR)AidY?@BE903wLq0xBqTe+((?%at7(*lqE8tN^{Ip z+c6CA{<#9ppBS1Gdd+AA*cRs+B%7C%4o;0K;^K`FaDovGy+#WC#}ljbQiRmLnne06PJkng3Evjd+Pj$%Gc2AqnE_aT2ur z{U}}^+&~$6@v+KnPD|pFRP*!Erim&a2_S}H z#7D4Hzo6Y!V*vaeC z)BP1u`B&$kQ>8s#Ya{>=Jb78xKct7XK)Vei99Vv>P+XmUJw^JvF*H^STS?Gd$82aKoKB61*oJc#a z`ZWZ{MOz;m6A4!y)FcSBFjBUeikX*(QtLf)kSVU1#47esP#(V|C)yge@5wj65MR!@ zcI3^WT+80bI2aa)m1$`dARh6>vID_(%8UTj zcL)Bqspp3Ok7VO!QgiH@!d)c$p(pS{u9HUkX%_!@WwF+P-rSvG{+K23JDF+oIh|(H z1y;{L`l^IXC9u~iFY5*Rae-j0huN9SD%(%@X%=GbVUJN=KD5Q#%D~io<|Ch)ClR9A z$DB;02CXcQD;p#D0g((Wt$#`+OGCjL=NWt9ZYD^_G@9sv?yZLKN&3kKaXE6c19OWe zl0U$jXj(aNZX+K-lpIh4VDSK=nIU8BZJNoC z2I_TEodz@%a3{Tn4kQYFe^-$-I{N*j`p1X*OgpthQJ&h9T$5xtDwqKTNHdU;WcbW5 zD4w&zhvGcg;q}`&J?V;-B)kl64~!XOd-ZhR*xjdRLUoX`o|f?S_YJw4F7F$q7k}{B zP2MQ)B<(dLMq4)#sF%IfPu0i}(wD+_N=p!9(1(0NX#3*)^UoY=>pbE)a%+dtr?(34 zJGfF1i>N<;If^dEGaLO2p^p+F($Xq{6@LRy0xdPmt`K5{YXm`W4-*_6jhc92+zF!1 zL8!@W6d7u7S6ZgWx4?Zcd=&F^=hAn>%{I4gNA$s}AV^4LIk4aAc_O2TZVQ4qP1wZ! z&8dnNDMD#$OyFs?#8-eG8AKcf@}Z=kuDu%GL52gp-Lf>oA>Q1?N< z>>X1*PVY-Dc6hpCrE1NU6yKDE$ee3Y47z<^$Hwum^gn4}3N~$FmuaA2`N~=Ev98FG zy&(kUT2$WJ7dx5RdxrByww{H-w<|xU8~0W0=vV%_#~i>=e&sB7crZGlkll(#~5~fjX5{yy}4Pn5@f@i1EGe zXE+40xfrE!?63=mPqLRIG7L4nXUDScfUFWX%Y;^?6Po(sx_I%SZ^jX1x!mc8Nh8)M z1+~%_0_D#HlTejU&hku#u_TJYXk7(<=1uY2AnqD`{El?&Xh?wm=khyxkw}BV@zhZj;?Y%vyno;EN&_e<4N{2*bBIyE0TcyHK-LpsPBLP{n@D z80K3WUYuX5CqHKme&_V#zx+9cZ?zJ;#{C^4iEs=H{+1j0Cg$h4udG#I_m*EQHT<^B ze^_T3naw~J6+oZq;t8gGvhNI3Jk-5-dA`XPa}v`|WIJ~o2t5O*&Y!>MzvDHhLf|7w z180Mz$+4Oo5vKK}tSqu}J;!#xpUjdD{ziK7;DP;lN0Yy6=)B<~Pm9Hxm;|S)(0`=? zcM8Ovam1OFzOKvJ&cH@I`s?Uote{3!^bcox7&~wX_-^NHK9sN6u=tlahA2^pR7c>1 z$lY1XV-|2QDY_-()u+D@j$#ZUz>pEX2fp#om9RFSfSI`Phmsb6F$#!?GAInas~i$_ ztKJtmx&>##&5@|CsHhGMFD&xx7t0H}a_C9*zkjaJL!veaV~-}!6<#Rj#vjoiMu z+4uE9&Me3oY82KN1!tlh&TK5TD}*Bt$KA;bV0LI#AFg{n^!=;7hRU8tlwHF{drJz6 zp52j5l<_m(Tp!EM!f$hj%JLdiC2`s$FU{@d0__|Wkv5WbG&slq?C^+#30A4)b5Z1O z6VcaKE^QGzcLeCyZdd|LIY71E3V}ZNvZMwT7iw2?8m3Kr;89^f5SHHp{pdhpkyrev zgNKKof!pp7Zf6yj-GcIR^_RDBO>I-iM1rci9Dpf+I|t-P)s6P6Vn zJrm3Wg*jNBz1lae#=7(`yrEB~RW%YG_>f@@QmeE;Jn1BDVJ@GZe+u^J)jyps6}t68 z;@aESvi`5PDXi&ZN-Mv6J(Ga0g6{#LeKL`D5)CY(sj+;Y-u9Q*#aE*VnTJW~N~D~a zv2y`W=iRcuMoRAD-)yb9DX55XOC96VZGiX-_2eIa3awd=5!R$uV%IsqGdI-4=aa^b zVu(Nd2hcO?5L>i=Sq#~VPM!|Xo@_>D{JaX*-*VXJkl%u6H~?aADhK_}J>dmT%~Zzv z%}PRk{-2BKZ;cVZPyYN|Ai``pYPqEPcNGwQ5iDR1gFT>$GUyxf7vh%YdYtW5^nCFe z=f<$cFT~yC&c)v@O!gh>@8jc7K`<;`4}(GX2XVnW;Cwo7kDVz0;fk66h0wS=sKspW z;Dl9!TV6Ek{}b{2pJ=-MYyOT+Dv;|fD~e?T=fp`L&LZq$CsXbTk68tDG`{mWIer2? z6n`T8=r>?$_0~*Z08oL+o%B!QVh1w3^G6m|ZTc)?{4#s>Y%!&X@ zRM=1S0;x^{$UsH5B;}oh^XcujHT0L!K4%L^$eeHH-sQYuZcOt|Oq+4T9+JvpG!g8Z z8_-+_XjPC0J|LfVuRixK39kg(Pc~Lp#T(vn^z1j!DR4-r?x&s`)D9p&4?^&O(6aG5 zFqiodZL(|7WsA8kp<&pCsl~)HW!^7&svf}oLTJq{&9@I8p8cvm;d*m8 zcmW{2{_PgyH6HLs;>mN<)sZPSH%SQhM5Mn*a0%C6{9%8>c=HT_zbmKQs+#>=nh zCK~kD2ALg$WRTf;Geur^8&FzUfMpkcW5*zeTw+Cq*c$dT zm#pjT6g1TaY66biHi&tfqlku0^oQ9X%*$_l38e1`gD#6WvMwmdw`U%nTPuABz+cRL zH0>C1&EA922jnUze<6T~ErO}e*$(_fo}Jf0NnqD7stL{GlkvbmLs%0d8sOLEP?FT! zGMD$wO!L#q_ve1z!z$6u#^Z&@H#sO@-6kR<-wKT?5Qlg;alQ0N;6qj?gQ(4;9ir4{ zES8aGZNTQ!;^dNmD(5lO6HF%-#*5ll zqfSt7)KJuSOc3pfmmPIm?xJU1Xfa)FJ4ynoNsV_kbcXNWBz3xMd8c>(&J*-mmn@S8?(w*5F~>hMvo4-OUr6&c>jBrTGk_h9>t3N1dF zq;hVd8^uo)E=FbaDzY|!nOKKD^kRxJ?DypLWXxHfVyMLuDnqhm^2Pua$XAtfjs!6e zfra&zyd5vgg1R{pEPD_n{6ahspD3d{w0aZfl0FaJ*>b_IQ}$d-RLg@skyu1UcRbq0 zgO1`LJ-)DZfQ5i=QZXI(DTm`wkwe30ZtSkRCs$BpKMMu491!lT=Q=p=#>E(oSaY#t zzhD_Lw?d7Q8qlNkgWbukP6uEtt=+t@yiUVOV$Un`NoT}6iz96lM|&35qOQcwlPtjg zc*h359d#V_Hsb+a^N%&P1rUHUu%Mn>i;>Jo{>tfmb#V|PEM}8yW|@F?R-`pIDG|=| zMbPFwie?XzJLKOT;%&d^gAVZ^z}_yvyxr=@5#@a140GNu>J6K9W}rVY^_ayB^P0oF zYtOzNrZ6*FEQa!%QQ+6F)R3c`)Ss21xBuiwVRlVBsNZDJMXk?^BR0f!T#7(!divl& z3S#*K!0?*@3`88xXDs&2*E%zmIUV|_K7H}_K$SEg>HchF)ND+e%hUOetMqZ|L;U5} zALixE?`;K7SOBJqHH|9onzJgzccCTgMZV+s;jx!%g;#SwDMw@T!(XU%ifamd+#y$_!`bkX$9-J19(rC)$Cm^2vnrWZ$usXTP4|aV$G9{vu zl;DTEpy}K9GT5WTvvl^c5LW)va@tj%WbQyk zwg;vOU>03Yki>mbyb?5wTZ#9RYQnyb@OtWzR>o*c?bVo83xpe9;mdqH(|`_U@{RlI z{#7rP$>^((+Dm2jv)s6zunQq~J`o0*{S4<%KiQ(#<1W3a+spS6)o^IlP*!fw`QXqv zM&^;-B4VTUAdM2F2sOUP&|vgX1_pKor;aN}h|EBRc(LhmR=bNxnQ^n_kG^kGv>EzzVkF4`Nr2$9D6pg zt)IJ?sU`Yj8-o3kkbwv8cjFm-@J#GV79Ud&4nEhP4X4uin^epUO2f?K9o#R)n?3DM z_g>ud-Ch5Rd<2<$a2NWYlwWQ;$5Qwj4BDxYKt4Ub~lAou{XfgCHIF(Z@cK!Q8r|BvWuiAF0JogmusHLp&ZYGb;EvdG}!a6#P1xj*LJ`@ab zm3M{zLP*xjyK%K7OY`>ps2Y%=wPrmVv(TQS*ty0vd2NY%*?;xgZZ#}o9TbZIGqA}4 zP^0wmo#H$#UGOm?^)loYP(*G<4HAc;L208@_dB;I*NCnee)=7i*BUd_bwj_QUUQ@Z zDmelRVMD@o45$S1bZ4w`00N`lvE*ViSi|L~<#I%<{WvBaRT0Y)R&7VWm1pr=P*vNy zqKRBSb%CR(DBqtNQvSe)^SHNzPkh2ybL+$W$<~0et=BfUb?AG0Qg~4qFcwdt#xr`( z;FwrvhqH9)rOjyW;ZgsvYoP=8@SlfUG6v%Vu8#yHzIZ;`gFP(dXFGV`JooXK`{hj3 z6-y^|CW7*y*%O_p;BqlmBXh8`@g{%u`}uq;(JC89vTTCkC9?j4_v8nb-yC)_wnX~r{fnc zcHYV|+TaqKj=*%2hmnlLZjf~)40^Pa1vN*}B`jq2x9bG4BU(Gcaj%S+=Zr0RY9bIU zkY5S{#aNB~`asgH^dXFZ-nxmS6>9irSiby;HMEr0u3MF)9RiKWNK5X(eZ1;Y};awON7 z%5EqDG<73j3_oI5jn+WC&^2HYfQ`E&?U_5?l`+9izxS27?|bTI+{bx|n|NW`0!zw) z-rUMT75A5A!1Baa&-14JDq}Szb!7t!la)2021v=`_tpDt49|(G#RIoEVw(6rn(ch(tkOEPjWlV!RBSMWQSZEhFQo1ZHBV>gr z@>Ahep^W3;_3D#q`=AIjzjxu6f|=w7&Ky{PV6r^1uooGYOKw&b8gXQowxkGUu=a9x zU)v^0whald*+kJOzN3C=1LxgM1+Li?);$2N1(%g!1i`z_HHd?&&BRT^w%z5}@QV5k z74+Ky#Ezv?LqT?$(}V1XX<5(GT+}yy;Q3fJHV4Y!uyZfbm$2|Y|5nv-;Z>9?37~Tl zMqiG|#k{z~iRI#jy3{7l#~%r2+AKBG#u&RXU-KDt;F+$ltJ`PO72$+YBoc17SKSbC z$*b1L%QO2X{*p`i&Y(Qe%dCy&2s{W~8;^svn^O1D}$ub{u$W8 zl2rdm?=B%!vu#shiXCoDVAvEL_TJhc!c|Qw%VF;N8j7<$pQ+f$1bE5*dbI$DStTgn zeMoR*Pj`YJNn}9L>++Ucn5)Ch=+)pQ$U7c1;jg3 zYJB|8{A_IEL@}yWS^sq2gO7PJKe%Q;{4ICl|F+ju$h~V#izo(t-3PG|B;P+3_6#Fg zw(EqCABeQ^pIsk^Kz<&E|H#h+B=o;=_o)*R3I!kjuFm?8l|cX)TF?WW0vt_$!SJpA z0*ac0#+vn&Q`Sdp7pVRFdhPaD?=x7syw+y8na61*&E#EchtitJ8O3v!UL&r2!1G9= z*O$|l7@O((`BXOM!j~0e)f>XPpY*5Zykz)%#oz9Dc<{Zfr1bGZ3s}}D$`=ADv_?I= z^z;zp^=l9Naxx=1BM`c^swLprH{b1V{G-&_>cSP8;Eo`o7UXI1wVja-Ycch&r>wRt zJW2_BghP28t#-6E8=aXmxayy1t^VV~;lq-zJEo!{%9&D}mS2c+o7S$u_U8J%FqVGu zENualk^*Dn>P`=6`-QM@xR-q1=)j)v8|FPZ(d~|ddI?UF-ii7Zle6UJO2^fs9hayp zRy%y@*j~@rp*KqJA!ke|UJphy)qd)u;AchVqZVRzCO)LBZEoJ&(I&qv=infrOG zQ{+sp>4n#-ek#~$yyYJ}8cMbZnP%}F+p3j>7cQqCqU#CMs?Bi&MAt?86I=F3_~E*4 zT&@QQXLwwB*ShSw1qTU+eM|@hjg1KWHdt#+H44AaU<|o6z_r!;tDXDY^^~^cO^d_A zcbWzH^F8IcjD6!w%9~xjM}gSgF)00{-e^tMDI9V{!CxWrh7A6Q!m7vxKDAFD1Od6O3Xrv1)Ma8 zgQ-W&P7d6l_GzSD9x~JIbWirV-7;G+eY8?C9meeW{#X zGg(k>hwK9z`<`6otSgF#mNEm#Ts4K=?-jF`96X^ zvHet7`qMEnZ4kW&`>+n>4dXjFY6CAyD;@1uTT2Ele0JU`Y2-_L(JJOuW0m*h!PoaA z<*kw^CZ?Y-pBIQD=J=V3aXMB~0|zR{*y;;uJSR$N^b zrX+pDwD@=fny&wr?i-q#pYP{#oBRFZrA6TrGo*2CjSY;9CP$Gb9iHa81LTGzykrS2 zBOYZQdptsPc|l?MVED0E_gR~WpEGMKbRHJ}{3>Vb+URxyKOW?Y&&DEt`f;4!=?l

7ptM)wD@Jwv(fGB0dq?|PEgKp)5^Uy?4Wim!s^Qbf>$UJ&7cqR0m zq^nrykTJWSqjprAkO+Ck!n&~*a25!NwvicV8Y+^7rOUT+Ppx~EzH*l}!ph|17)hp1 z4v#M28cbhB7*5!ny}*7=0FPfrehci3-l^)`_6E;=x;d8`Rea~1ddPbsZ*$vt>=HY= zjS{27Yx75$2*9%`8MAht8qhY52&~?)bWuL}=t%0z?2&JISL4SYq!=(|Avfz6X*BW zgBK-MfH+UKC6NCq@#2M_xVqL)8ff;>hWNW|&;{X(oZxP*|`WDP=%wvd+{(ThAZY)vYd--qS-sojIq;^G&ye<9U7_nGVC+O3;A$SM}! zgnmqX1tM-Q=w=4%rM(|$=|hF%w039_?TMx&p~@Ly%scoG;ueqODoZg!Zo@tq{0;@W zdNq9p`wVzsxpO7^xgS&|YoFukLI3Rm#qj~BdknfV72k|1PmCJM?MkFz#h#YM?%Lee z>7$HGEin;YbbRE}H9vB8gRIT6w_v`;^`9T!H>i~W@n&zUL>HmE`m3!{sI^G-Cg!&4 z8!MO}=l`<<&*t@&JGuWpF#l~R{%s)tWgG*pW}N^ueH{3i_*SRv$lVf>9{iiEtgL<_ z8U&~R-xec(iOv2)J@DTxNnAP4Rc8LrwIpGVakhfMbl(^c`{4m}3aMdbwVfqERqCl~(p&DJu%I#1a*koWVf2zqoZSAv0PfWK8{YRf z-oIzUR0c2!`7LHPkEsERP}9Tc687RoK^nS_!u)!B-rxb*?U7~9jRw5yrO&tfiV2}a z$_QpSmbyB-3cQEUa2BnXT3=5hbK!NI96<|Yb^g@EOKFyaccGOx6E&+ z0vg(&n-H~^SklFou$cXY0F0$2Kwa{Vr3J@dPe zwb)6C3FLz}6FtyTsN(h}j7R{M!GQ}YlpsEZ<|9%jpuz1ePP_XGmhbT#E1_M>eU174VQ*z|MOdr-!}w1!=|a1No)%LO z=J*<@d5U-?WBtfNFcH3B{|iC)*#MJ4%~vCDy&BYbP|qLBw8fnw`D6_18p7AkpC9lc z@L#uK+>P=!q$d3=BY005Z7aKlrekElZh)3|~tYoJbn^bpOqs-qssCz;Y^vXk}$FTxW8rq+|=e0f0wQNXyPX6DRh@T&b z>0l4%w}EnaEUcZuI6)T)*Hk)+I{rnuR_yh4o7G$4g|nVnbn7hHQsc>xQwGEB3ZDXKtlH4F$F!C~i!uZQBr)y3`F9 z?zbL0D#7^lm#GBPbDN`vv!kJhclY=%a8K{LXgi|dkft`jm;di((+g~oBJ^TV?1PL| zkbvn6K2LZ;bjE&_XvZLk6tI(`oFw{v_|EjUVRkO_`L~@kOqA7%YnLlKAIrw&LISqkn(T4-c$ICYv1lY)VOB%PID~~jNR|7#Bmmq-cCh5#BYI-7sA@a zV;|O@L`Le_+{;0hfBlL2NfNGjY<}~ZLDG5O{e#c%=RX%d3t6B&7lz2~n70`$etlFV z8p%@1g*$C&m@tjV;X*Zbj%~{Ooc-PhTrQETjh2v@LX)EoPrRd(X_?-=6oB-#PDl z=8pizt1)c?&}&68q3cd+k~11Z+;Bx;0Sv5y|OR1Y5|jQFl@(VI1Kra!|B^@*T`U5Hh;PhY8K> z@DidfT9y|j9=8Uu`C|CAJ zwIc-N;OG~BRQ-)=&Pn52I>VO}L@IPOc93HVhNQK`MW=9t``D$jl!aJ8QuG~QIJ1HU zYumy7x}h%ZrwM>d*c-%F-iLN38#adNsr3c5p0e0mdH!IhmQF}=4nk_21AR9MEet-l z3pMGXIxGe^jojSS99Ndo1G{F(Jy)m@JAapU6|l{vQCG+2ATGKE>HAZU>O(9WPuF-q zvv_xK@4NaoJm6^QrwB}aj!cO41*P@oc(4syAi(#W*rB08z4-ECSc?4-s z%&6WVyfIM!9uP9|^5VqZQh3ci=ozUJ8G!@FpYR=uvBZ`9RH?j*jaYDrsPmQFlYFqd zwttKD6XAz)dX9P@*3{D^IU;=7pF?QeHGrhsvsj0s%CpXozwu9RblgLF^~616NUQ6B zBKspu?;HDzF}{>O^3%jmhon5r-#xms;}z@FB3(oRc%?4n6u89*wGys?B4pu~%At8+ z_bxf4z{&n0IbcwdL~Al5=F`bZCeLR_CCsQF1O;yx365`RW76I+5|iT#^Uc_RBI)A2 zROCEJ_p%yc+Hl-D9&c>@UFvM1&^+EbTO6d&{x$P^3G(LiZFoKLr1!jgwfKFQS6pEB zJkanQ#7INUo7BKZYi+<&JBqu!$Vrz518*~f<5ON4J~oDn7R`ToGca4Y=c|~Vc3bYt zGJI^khI_!};isMtFNOEAL>Mu^88hvxej7$G^9miwk_T+y3hCj#99(w|Bvc{zI05 z%0dl?gDgdZPHk;24&Gg)Bv=TQEcCuTD&?oMH-mL~op#ATYaB%vyGc7v_hMjSacW{a zDgq~QAft-Jpsy*di7IC-A27L*!F{PRZg)kQi_Cpq^AE33w{e6h6zR0rHZTP0sEdm` zsV)tE$$CF zAX^6T1>H_0E{+K;?7oC2MHrbQVeXLwYBkS#)5=Z->~DPij%8S`%k=rg3Yz4py0AVL zKbSsl7=^oljkhq!qRtUZzkcyon+=R@Fe^7$wr$!$ymK$Fkwv^jZQuK)eko*$00}hz ziAR#Rj1#lyJc{E}>F&tKyPF?6XL2JwdDkq8i*G)ajMNtQYgSWFSlb#@1)gp$Rm7WS z2<~i8tq%3fhbAB8qjU9sniStEftY^5KriX@9Q&(2l{;j;zQ(OzhmeGT)A^OE*6|)s zI=*;^Qs#Kk?z76W`NNFicbOGEo>@Wnw;j347PBO9j@LVtiu*r|M}kj-!TG2blHR+v{2hXe!@9_)-Vwk0H=fs^IhvaJ68DTm+z#*fmEYiiD$?0Rb zm=ax~W;`o~Yp^UOV`eDtfnTc6*xo=z1bN^7*2D)j)mu*E4{E(I@c^X^SfOHLT{6VxGxObDpEI!MwK6j8f7s^22CK@VBh?Sbi>+C7R5 zP_WB&+N)8WkSvun)vT$4P~y4)R`hQ4Mj)VvWeCkVr1+E6 zo5(t>SP=X1P9M{)4f`ufOTr|Gyu%-kTxl$CF!0b1cctsvgUa`GPB3T+pC7 zxTOkEB8a$1+wkjQgDtxlg}8Z#e$>ihTK@~Et^?xoF+_nM!kx%r=HKhayu zOHITZkVQgdReiFIWlVSvX=#gTno0W8F4S3k-lqmGskWRKT%Hk*kP8(H&AVhiRyiQ1 zO&<3W3%FjDYvyr7;GWc8JFWcdx34Vie@eD@*;EfWQ{D-_NdP+$s5y)-5OENBADmtlPI1=nx~zdwdc(BH+pD<3yLY*Cur<;b)y zdo-_(Kr(eyB)h;I(d5f(*h1hw#qLNoEt;v_Uxte{33@qQbo>%)wqRQlp1BKmu@*%) zE~l!KkjTaG3%*#_sPVRCANI#d(~*yNIwf#%cs~{AHV7OM=veiCGm6j4 zoA6qVJgnD}xi|$1`?rLV33!qPjw&bLqB?}6jFVepbdZ2oGJdB!@&au)p3;u>nhvlH zE>T@FIb6}0P%(MJJK?^5K_7C5^~YEKR;S9I1-;8#kd88F)wVI)qNX*gZ5bx;@fa)H z`Q2wVtIH4PT$;Az$x^h{-s%t9GZzWvkvLaq;AV>?7YWcA6praS%_A?D(2iTeeh**U zo%(^$$$hV(x;jI3=UpUed zTapYLj<5ZMBP8P`N&tUp?c?z_I{PH`EPhPKb|nQrY#T6qx$@D|kCTz~j#Ve$FI81e zI#%MK19?K^|9A7|lPZQ@rF7l3lzq4#>_n#TsNdNqO+^z0!psea)T+49%F z|3|>OK(86_887{eJL$p$+zF`Iyo!Fav85I`HX(%|d5XL0MceJT2P97odJ!1#>AHug zr3ZKP)4j11^@>F(^t@r96#_L2}lyhOdf=xm%S-O-&IUk^>JtZFQVIVsw3<&?E~l<~qn> zDL~HH4J6K$i!ON;Nzcs(UIT-63e$xqnL$(~aa18{9snb&@L?OO;kTlL4V!G6Vte}3 zjhxG(mW-XBi=Vn^dh17ammEan&6&w!cU>A#JN>vLQv+Wj}#x=f!+#Q z0}2R2cVY2wR-$2}kpwQT0e>&k=Zr3s?7aDf^zz8b%jZtq&v3JTvq$#n9`T*^f0L_c zo(5jC0&0FgNRICTEV@1<3z#>adK5Ua2WYJHGf**9f@z^R935I?7(NkX;9UmcLT{X( z)(|8Gjcr41RI1VenwYUtFkCRyL3v36cqp1CwP7qJ&U2!egbP`r;Hq689OxGRDN6Xk zeNh`{|FI)RTPMtn#N*olZ8m5&i>6G0Ia7ogs^ud?VHimpDw1MV((fp7#Wi=q+TJFu zs7PZHzo@dCt3-34)A#vyVc9zYX!?|4@|O z`hu&=l)5XP&fNlwgX9RiA*>QlS1O>|pa)UQz|C_4pzGj>1>DN2_f!BD*)vsY8&Yl;{YURn}NJymq%;VbTpolyApLdQRm|2 zu($mC&eN8DkqXnnjicucNNCCf^7+~-vKW!8{s#g%=bIdTaofu=Q?`NGawr<1)Pe$5kC+{UhdP&FJndiH+^|XlL&h)CU z^qZjDUxj{(I{f1F8z6bvA6M;=Is8>4qdZmRuFq?`7PU9;VxR9BJQjBAQpNLRbwYPZ2vx%``KcW zjzF%76ReCRcCsHMz8|~c+3mh^DQD07Jtws8wau35r#d~IRM@GlD-7r+7A3*Y-?OXy zcfDuDMCOA}ocMvrcXwc1NAjR1E_-cEm8uWCess><;F8&2ugj_zO)}|N7Y+g@+L40W z;D5N37pxEb`TE`$q0R7~LKk*#A7_rvg0+X@;q>Yz`dsLNO)b9FUWq|3+9%-U4L$&n zWpm0e1U3H=%AemeuFmEr=I$@9Qg{c;-m>UG|T7LO6dkEM^>O7!HF^o1Ci;bTP=(DryhA_K3Nbn7l z@eIFi)C$qdzG87LU_(7;D@^7(7xWRNQGi&$XOLp6K*AG1z6A#i5@86xo`+lm*5_+1 zCc{$1l$MKuo*ev)8qHjyZ?gG(d+xtEu77G!{Q`|<0?%L@6s@!0WgKF6vsK9yFPhn? z$tbfj=3hFp$bZkgzD>mH==nGi;eCKoM05!?0C=H0NG|Y>Ho}7Y5vn?&f-aUxjav2L zJh3Z#be8L;+KX80HlG9e2=hBHLt>I*5>3khR{lDwWN{uxKn<%B;z~)=V=fUMbPGZU z_q{OqnbNY|dhNMvrOU?b8TUR)%WOMg(PDq4YIYCvB*Y8V@k3Y8LU5}jlDZ>1NHckn zs2b)|PL_Q50vG8MWP{#U!Ku)$Qrj6y$qAi&%y#9h?=(v=4+%^33?*q3UBZL-i0;UF z90wJ3vb6I+H0rQ1+~(rJc8taGa!i-rK&REs;{DA)Ijs`x0|i)^393`kV}Zd0D@Da( zG^j%FaRU$^Mmo3(=9O@vxtmo2^$U-$e&wi&RKF12H69uGyT)+2+rrs%3?`tSh@$}x zlsXaI72uzzH0h$6@xq&(_4OCWJXBA{|C?Itxo&!n)>P`xVy#i?kt%W?O(qglc?8o0 zlFS}IFAo^!HGd#fQQXjyPw)=}IP6237F4$bcNrSgZt|^M4AEnyT6WtMKK(j0I(yT> z-NLr5MCIGihD{VVtC)9a;yz=I)x1q^9#wb<(6@OF7Q<}2$)={{@@Ca=fPi@9|HPy# zy;Io>MU?6V_Clfk(5uJNOADTtV#Z7&pLm~b!R&aC2-XK@W&-J}3b-CxIR-5)lUaWt z?MTv5uR$c`4A~*SiV%Mn7AWbv=AwD9yz*(kZBJj32Ycng+T=?=F*Sd^FcHIh zI@sL+anL&1KXo%@1X^G(@6**6SdXQhfa)^PMWzd^=AL zHy>K(6Dq9x<+Uwbh2Os)tC@y(EC9PK&3FPVQL3K2o(wgRD3-G*{0P%tD^1=y)8n(< zEJW->tMyCeM3J;ucIFVH_XUL@6e`wnCoE`=$%p!Qam@*Wx_y_%$Gs)AZ#vEK9UnBvh;a53w3$Efc_c|{%frwvQHsEN4Fz^qzbcXa)qai8{Y8<0_DK%LB%E++OtB* zYPKR}0qMcHo$BcU=9A(@iFd{|7WvIs4tqZHN}r)nlHay?xx0%taG2-!MDkxe$Mgk( z*ivmuWTo@D5DMO-hx(h*5<2ogwStF3kF_@?-O#bP zCi_sWx#@=Cv8ZL-0MPu2VmyE@p^;Zd6$(kCHDu<-RGpAOcDx9_<+XCg%Z7{`7IOoy zsa?$O!jbk{^t@7WM*&+`B;>40mC}3ef@$9u}Ss8@{YK~}`is%DiK{jxCrb+?HFYaEJpCa-5*^5erJ7D>FEcifWoB z)?4`#uBIZ<*zQ)h5nlbN=lk~vt|Mu8bRY`o+^+?$UET3o!K?5NY7@~ENUf-6&KA!3 zmO(>)KxrjFT>WU`dU8?Iu0}sTm9C~U^o0A{L8#)kNZsxA9vY4?A~`-GThysji%qDv zLv***qq*ID`+P4bsMrdt@E&?{&8;faYWEHG5d96_C`81W?!1*?z0t0&Q87C^>ptO& zVOtE@_SC<5O#tpSD}s&0H6#Y_I8WlEWPwVXCi!ObC^OBk5xYH?J<~s=!LH}llaG+x zFj?oL5*kzMqkXQ3*nk7o)59RYt_r3XawQgqFrV)$h5UC2dHt{^06_^}>T+MECkN zH%Mi-bz}o+LaqgEnktox@{uZ&7jy_fYlb0ys(PdJE-1@Hrw{ges9++(dvr!xt@U1A z!UJ-@Nd86?VjbOxB^e+GQ<^}l3u^?t#SP6lSw%G=I(X0xGhJ239MFPRpH!Gn7DpG9 zTwuH*tY10$_yORslLR@7-&$<^iWzHz;}&2t-Eo(Y;jom0i7Aym?W?`Q!j3oYxASwn zVnRP@TAe*^%AEMF+3=`7&8ohZuZzx3{HTjO)_sd1X55{|J!CyFoLN(v>y#$zy5&v$ zkaC2tAZK!SJ%$}_qh^!03ard|0LBl1?CGdO4`orpNUTk0NvbL>um#Va@9~|!{|)4h2Q-aWOtyX)IX-$yT~=-3 z@v*UU*S$m7$c~c+2+S?0?h~ryRUScgKyR4P5t1j@3(LV>wk3MozT6u2!5?_r`ppwB z!s?Z5$@}$==edNKgw^;>l_33Y)P;h9Vq$;2gYt`1)V3L(VTZ3x!m(an!jC<(K#Ame zQgwU>O7l=2mjK)dvD5u%=l%W0uapw+<^-9L;-1MpOmi#09s9NO>OSKtD8a4kiR;9L zd5#?J`=PM|V>PzFgv!4(F#UbT`~UX8|IFC`Cui*cU9)7B3%~?hx3$1E<3A8z3<830 zM??TLDl^FaIFbRosdUM!Q~$NfV}ENC1et#XMiHtr(Xq({rW=VO;A$lpxf<@#oKEji z{5pqrhK_sawNnK9R=AzwJ}45epxYC_GU5gz4C?l^Kiz-i2O_N&82yk|xUE))G+CDI zL^BHF3+bEjlXlbFSJ>@&4l3W;nD8ND@V+Rx-Jd1qj&|HZk}R+>8!qt}g&EB5TJp}M zw5At!ZCUPWHpi8no(J^sn}>`#f5K_LWG?kLr61i(69Geo8}Fbi$b&vj#Ks&f*+f(N zf$02*=>S>D>nriFQNeW*Hu?Zgl4^Cj|CX|eXg>x=7Bo_a+vWb(rYYTam54>N+}Cbf~ot7NG5+z?R!DGgjm6j zBVFUqEtIm|-M8p(chM={K5kz)8}I_K`Ts5L&h-IB)qxr}l0h(MI9 z<8~kn55Vtkw@)%DoQryRk>FJ~=;UD1fMX|gXY?wc zo06GmQ7QMCk{rFPcl;F0xM%!bt%=vx-4e}lQOlP&ESaYwO;(W;-$VwM9gm+qX10*&|M8|++_#VeeHy-DT zNv0&%H;>IYIfx$0CmKsRTaV~bTh^8Jig?FTr*(v9!PGr7um*!Tl zg<4hm?Vb}^fmdHknaqiy)oea~-P8OrIx;KKD&~%v(vdKa54h}ezf>FO-@tiCpt8m0 z_`w30&6x0vo!HT|7$u45RDneY&>dM+uO_RZ^SS+;Z`@vYA22(4uZurUL*;}~?1}5? z$Z|aCRDqydtu9zN9&ktM_o{3+(Z2G$APv$a{PH#WtM2DsMq{Nz@y7#2?^I>u=0CMJ zCd(!oYtX6Syt8;v90665L4|JI%3`k7;u@XT4>otEfuM6xfrNuom0g*?{cM^Fa-mka zIk*D1q;V-{4!N|W5+sCF>9ObhjwZKE*8qa#Oyu*;TIK(!7v>tc%MR3%b1f@CR1P5- zyJ`x$+~|YgAwP#EK5n9{ok~y}#{wNO?(huCwCDRrX!PQ&Blv$OXri9(0RDe<8h%nT z#1JlMho}cN;Zv$jpt;)-nyETn&>59m&ghd2`2>x+%mM@GC;p$3$NP`u0RR5Gf0Pv4 z4$BEk&tlnvT%7a2EeB}!sU}o7@3v@=**V)F75|ZS+uLv156(S&-gM%O%G}L`crccA zr*u>UGg=t$(%laSQ<2qzZ&JATuUabQb=V7x_w)f>(g@-jokmUifj|IbJ^qjsD==ju z*Pt1Qs$NNddWpBR|7-9FDF5uD27}&hSoR0vy%sRPlStAMG6KK6IA%&`j{kv(v#LLE z7H(}Bmxe1?|=wj@#_b@B%lEhW|Y0{ zk5pY3Q8n#+-UCh8GN5yq2v7lAc)sW73Ru2XLVv#HgSKC3T(I5;+b)QbChB2LXdpEI z2V$o3HXZDqp{~%Rl%Dq{uavof*|_4@a9+V{R3oCR{GJtA%k4cgVop5-mdIAvPl{B`M;Pl z${(Wh_cx^$+yPuUP>E#KOE=r_=)7+@&LBf5YgSN*%fsiQw_wT*@@f9p$6BNh=O|`x zHDUoMxUheMNq@v{o%OKu@($T3agMt(9K<*%ZFW-{8R(*(^a8r558Y53ew}k0m|vh-T zhXCR^?82_JAS1GBqp5)Z3EFW|kECc^$Eo7-R1q0q?yhC_}E$MGCrS9>n1Kz(E1zq`Ng-ayJ;ER=gu;s>wF5=`> z6_qjTo)M+{%?X(?-zS&3;v_w4m*-zqGuJ1>gFoL?$#e3pgPW!I>Ehv&i z(Qd;-qXHmW^M%_+6{$_*9;imqtneTt1yyGI?fx-cI__$9NIObdE_qM8Y{gMOqYAUe z%LHUQk{WAAu>tadtdu+8xk)DcKzuyRkYiMU5Cy#*yrYkDju#A)BKK4_;lipfN>n^bUN+_wx$|#{Dx8SFeU9V5Qt}?fU7LfZxvWJ*FS(&4jP~o7d$SVR@log{y z7olB+-;eT9?edI{J2`xzGrLd}pKrTt=Y9`%ZPr)a+Bjmwo)EfWN0ai$Qn(m32f`|; zrbO@n=9-GvF_%+sISO_!tZMr--`xH5i|jX6og${X=_te(FuZ4>IyV?JPhS9-GF?C= z=<*`y2za090Dw@Sr4*_+b-L<4%_v`Rv`V4`K3;R0PxKrq7fTW=@?K@!K(XOm@JvBF zXb@cr-cE`Sg-UgBWk4`MCJ5-adDGciuEzR`eBi(x&A=x2&T>-Y4^?#@_0l3f7Bt zS_rNefO1{=3x+jFiPRAir0m2PAp6g&}UM=0&kA4cO=hwXGkI>P$c}z8cf%-l{rwiD4(Q zM-PCwe%A{5XPeP~$NPVjq2s^m+G@c*6#}fY_dHFbQ zWAPO`+-R9{DHWRVzlcFmgp198wJ6{<0rT$ciVL#GZ2tdf5u)(djhpire^{h8=+tghSwVAZ^C^q0A{ zAYCIvBF?WmJGV((XK2Y)=Z>jZdmKK{VIiLyC*$~fBN?!2+}C^ie>;1|pV$9i%Zj4- zTPNS4*B@FKCu17kLt7V1OiN_kC8cBR>OAw7a}6RM%k2DEA|RPrMHo-t!K%<{{yi?} zT#xIAv-2HyzNJOc8i@7(wj8-)fag>VEydTEzzx304Uqz{+l1bPCI+j4PvwMyhZ-Ei z{y@M$-VKngyJt4khvMnc=z`h!FSC2nYKohFPQI>wSUSA=0SKOgf0fAob*cc}%soh8 z>zWs7+&*}QrYSleNAlpJXRzCYWTzbM2jb*>4uu_N1M5*vh+G9XN`M7^y1RcIge%7Y z0)9(BYTmdObeUHvkZy9V4WarihTns=+Y47BtHGuc*mCdZttAwQ$TsA)Ux_m<{)G1* zR{&xcd0yrxXm^_cbSfV>AlTQ?Vv-?UVJ?1sBLZI67&5nLjhb=+9b9ac<1pqWz)GJ+ zl5+A<)3Zq0ME_L-@q33J|MM>!O7Fbl4gK6G zL+U^6y#4p-w*e+Xgmx&%jp{`}@w%Ja&0+ZpGK#wI2*(Y(1r?n#Ubi%kxt`@4phdKf z4<>iSmf*r`*?X&xve z6K9(b$y?vjzCpX(HJ|20@vpOJh)KD`wb63paDPgwlcnfh!!alYy`-yDzI8QHQ#A|& z^<}L*`}-mJyOE86>ZDPg8H`HY+wGNb>!{% zD)ia@V3GP<0i$c}qCJymJfD^u{`1G>-Ws$1?|ohmr=e14VfRb86;L-UM%GICgXQog z2<6(9!4%RKcxe67T{Z7YW46~D(=W2IveJ{v_s25#?rHH205`e7L&(#lG#66ERNk>s zM?r`Yd`0WSm=be>*VAS7nChii4Lb+nEGD;6$Wj$HX zm~d!%^1e9V+Jl^(!d6MiQ#_3y%#!1MzTFN8cO;Qx(#tw}z5$ssd#Ixawbqsn3;49q z8DL!nr7r9#a7vIws{=lp^Zm%>RW8O7D8hv~c>h44%zhy7a#bhyOz3}VSN*&1{Ow5j zT~UX)Z>mTC>KpOD9Lc>TE$+DZCxCtbC+AL2VEvb8_S2^Z?o7E}Y;R17t?cH~2ic8S92{#)8v?AqzkAE-Uai(`^_e1M2xgP@ zYQ1}uZ5mbz0v@gwU5Tt25@g}T$R=WiuUgs46#x&Hb!h(kMSqv*PqE3zN5qQ0pRg2Z zl_G3s0@m~ zMmHy05Yb^l-ec^Xx(9Ls8E3X7y5^lV-fexCL(gpaB;HDch!O?+MIsptJ%FJW3xwP`{e4Ji((AKdF`cW(t9OuER0o*LDgh~x1` zzAvoXc{knh=x6s#S?=KHJlrf!mr+s^o3&|eRt`{IHr2esj3Y2Qk8 zhn$gKzspUw(=4_2QAKj!M(o_*ylvmkDqYFeLJcNJh!IWi01-8+-6-87 zn^!Xo#8Z+=o4y`QP}m{C$GAqGNEUWzN!$l<1qFiWLl@Ht5@{WR4pbL{J)UJ#>4wW| zf7_Udh>OtdQ6S!xOq6%KRFo+hU)zdu;Z{Mh?; z?fyXY{JT3MLvuH2<$6*2@^1^Kl3=!XJ~RXsH+Fa!)3U+Z^bsEe0jy`FI~~P$j5zhq z{zk%AMf+ryAe__jVRcWf9EHg)NfC}`@)xT}sg4FtAz#{n?QgM2J#>1r98{}wg( zlB~)l+PO7lZG-oShYM{VK$Uk;i;^&U!bU=i@=_xP!2x z15^BJzw-6&Q~u(u^ZqZmWHu9uI_fkhe|JJbTngn)O0$b$3QdVBiWIbO(ktZMT1oSI zlIZzBdP9|dU2FVC`KH}gUoO)V3Mq+I_Todz&W%dKr{*9rFDr7Eia?jj5jb@zIO03*V#3? z7%;PPLSu_GWC3brK-CJe~$)fM8FE@A-jMBxVb{^=nPOw4&_-1oODf==)<$_xa0 z6=OepuK!cg3(Y5| z*G+gvx(r3^PmN&g6oja%Ua(4q^JAh#IcmyJshqcW9VIhqt2kRg^_c?WeJl(Mvk!w} zLpm%G@EZC;bOE6_1+1J|sB|B$gNj;0Qm)9aLjthNhmy@+qq)z=;0SgUU8wvALdcMQ zco}#TFYAGM-U`6&O`VMFFc_-)fw&J{xdf$<(NjS=2Eic7xwE++?E1U2P~22)9KOQPvC9y=pBnLSy023AmB5-ELw)?AfRb92maq< zvNjz4v4ckD`hnnabTatMSB`D;dQC%ty4tXq`j{VsGX=XghJ>Z#sndVm*22%OKd2FuQ=g+XGJ?1>kphke^^@9Cr z@ozd|gEguDch67@Omj#Pu*zPwdohi;EgsO@pi7^}u4d`xS`U-+_sg&nRr$$uPY=9nmneR{u(=P8q;qr1X^t2dezQyonfb#?MJ z+|Nxtz$z?5-V71UM zc^pH3J3r7NDALizVHcR+rA40Vp6{UKC`7%hB^Wn({@Uv4mrk;YdNvP_AHQL;uDfj< zT_RA6o>%NT>uqJL%M*thHhVLcF~4g22d7CDCdY7H=xdznpL6Sf`3h7dVySynH@Vo@ zDQ1jZovnl#R8xx3knfXQDbF?bH?ivoE}!UZ*}g^1FU^<|QqeZNy_Lhg8|PjyWNOSv z#JP0v_|I7mOV8}{C@E|EywFX5Tfc9|`qLOJ(V>yV2_44q)=Goql8~O1yWXDu{E6B= zjk$NKo>P}F0TPi~E9PGSBNgkG>T5%p3dR;$0-tL?0;WSj z%vUsz21BlIqop}T$kOjiW>a;i0kdpp1xId{i&V&Vy;Y}QTT>h`kAx6xSt0casc4R< zQsa-bBVB`BJ0Ev^zL~|#6fZlODs=4@LZ+E@L}Nq3F-}nHcF#kDt!v61+5!qIZihX+ z{-9C66>J&5r20-c*sXjSSMwYgEXWRn%f5if#}P%m0@zu=eFZ+O)wL z{BQOa{@?B-R*yOjdqFNtns)!sbNqTA{vR?{Pa&{%zkphY|GGDW%uX1Vbi*)C2Lygw zRr~bB+QttFy-)clc{j~XY}XFCZ1&n2H7BIf_bGw8L;H^!;vV4N@va* zJv(#$VT4o&6Uz-wf170KX9|U3T6r3`RV&uih6EHWZf48pM_a97`&xcIA(6kCe*$DL zI-fS>Lj;gmdvxow@2nBXn(par?OLUt_Z^$z=h=fCdB|4Lf=EUaHCA>99=LjOR{zX? zONd*clbxdMtL^!o1J3ZA;q2hf=7r zCpgr!vzytTZS*UGDFG5ojlC)AM?tHPE*7?a|YG0k$bG@+b1z|X6)R3k% zBMH`}`nA|9s+*>Ny)rf&aIUt@E7?_S@c#WB?PBge=4johrmpb4dzx;v7^d~(z6Mh5 zm2HSm9$?jb-BuRXus!|%!YqzK?3mr(ejr5j#9c88UsN!IY1EK*?YTqVB_*CO?_3D5 z6sfall?rXmo88z>{HEa}uqIQNEM4h);}7KH_A-7B^w{UlgFiDpVKm-f1cs*vYLO6(%7GK>Az>iEdgM< zBFxr3UNFc?@g;M`X{ZX?pO$;Zm6A22j(FW)k z568Tx&you)F`G3O$>}(BWyLY}M!%IZZ zs;uC~HqI{|&XO->ry0D|(>rDM7mk6r<@r zG#N}gEKBao9;?cZOY$oF(3>8K8Sw=Qg!@8dWIb=F9nn6g?u6(Ey(@JJ5TOj>LwUpx zE?nuYzN$)>8x_89<9QC(q&T=ZPL0ZvjZ_*uKqX9PnZuNBygQ<(E($NY6|nZ>KQA=TR%_jsPUN zZ3=W?75mS@%@CtByxJIQZM%($p`?TQPXF9S`pRL@n{$nPbhA~W=02adrpeF@@4A z^NF~1q}7A5*A;L0yDP2y%GV#`NXA~n&rJtRC>32kA8Fa?B(HmjE*)dGWM{$l29M_V z*Byl#LPLB5-sr6t%&2^zNStUFiw3rb`q=&eF+0s zDP0aGH~L5?4rX93=eF0KLul@QkGQp^CO3=S@h5S&17oX}xOK@BE>Y=@C(TZ4q}Sj+ zje^oxYSxW~Mb8E<=ntL5zK=8Pv1&_=pmR4+YGag=j#oaTkD+O_UqTSR7PP0y!|vyVfaIlA*nPyQBA}q$TW9L#w{sE ze(g==y8efzSB-O;R>2e2e{|_vb86VRh235Fso5l}vwC5BO2bI*q&~8b6j4THs_aZ$bIxtON59ssK&y zt<~E+@@oKb#TypPZ2W>QW}|O@;8Mn)0y4 zSLIRPKQet+p0bQyTW0==rD!i_ObF9Tc|CGnb`&JB-Wp`Vkte_9e83>#USPi<;(=1C zQySfx>hs3G!6;G*db^9P8#7e@s7FO|Pl-1;on4KQ(-UR05319sS*F#3{!jB@1f z)E@t_scBjyl&dOq2d&Rs>R0!Hq}ET1EQG?gT0 z%ZDbT534d!yIiNjzp6{L@g(n6MjoP#p5u)3OGbQQ^#gpUUT`aZ89>p%mcph8!3OED z6rPcQ1G8mp4d%B56E50u7myCMK@oD%#Yt^WHHryu7hD^Qb20yFYN7O*(FT-~Qlc%-ah$ zykoNv$P6TC{-?@7^(d-r7F`}mdh=ZejiM`Yy#;V~Pq+P}9yH`o5LWfFIl$S*XZyJv zTEFdty-eK?=u!7E(rV@WyXz&H$z`Eq3xUJ|5cK{Or7TBqFvu+Jtl(~5mb;|J=YH^8 zZ?s&;Bb5`7G9C0yu*5K`afI}RDoQycLq$)L%0}fXr6S*-Z4zke@!ypo*|+PyZVs8*)2TXNDq-V!=jAvP8#Mq8h#KjmlGBrp?_}jUbY~a{GIk7nYR< z`saIk3JkgwKmHW*Zke0SjAXb-IVP!oJU0B((57cD%$8o$mm0`&{QC*Ekk zG;vxU1ujBYe8-mms_y20?{RSlA;L6vT@B9+OymL=e1EimM&lpR$)PlUAZ}r^X8oLT zi~Ckpp??64x0(jJpJKno(OcTVb6omYP>brTz#XcJ1MSg&(K`8`@cZvT@>LtZfal#@ z3eESuPK#=M@z-lC00ui%kE^s#Pu|_OrqNw?LpL$6Y;pZcSK-!(+Fs|4Lj|dG0Penf znjWLK?+2nF5Y1paN&Ga?C+G{8Y8Ul9mlJ|Z^y+~-FlJixSGVv#@>^lfR-@ovNnoBH zg}Ch|q998&4t`w*@kQF=CcXKLj^T=13LF6GR|`{6RlY>h4}1$}Jv*W`YB+(run zGW~%_7p;xhl~moIHR~@jW*NH5;CQnqtu|(zuzAx34?y^aTZ+X={6O>vs{{2Y!PQlt zAmH+DEd^~P9@Is+Y6iP;y*%IEk5;p!KjMv^GuV9Gp{bJpkG(e!gzDe_$4Q}- zDMDqLic%pZTgXY0q>>gyOp=6fU$vbMO6qxBEwCI&)^u_If>E&*$U$cs`zR8{p4gQkn}TfEAGL;Dk1Wu)xAJ zwvTdDW@#L|0fMTc&XLBC&Jy>7Vv#8WjUO!;LF6&MJB-xQL-ZGoU7)MEN_V2gaLJNP zwb8zZv29fG+{nyIr@npJt_OxEx9T;$wY<#@ul2I0XBX3!5i3DIC=oxGQLfSKJSscZ zQjSc@bR3O76V&Ru)w%ZKv=Doz@n;Gu28wwU30Mz_6-*{oy^(u$=2S+;gURG^Yqz>b z7l+hoX0xZz&ve%Uc?l%uaC!r%)543`DF=Q|98Y6!={{d6dHR0n%D{vLsv0YXWM(MX zVj4>eSeG>2k;)i5iEW>zgK(v$2LNkmc$=N_(UuBl#nYUZp4MMVNow4%k4xm#kaKjNX3S@m@&blq(oRx%bL`bR zwj7fr)_ma*8%0-lk+|I&SOuEg8}>3=Z=G3IQr%*;jodxZ0WUQMYg$--;ebT%IAp4GnXJ;^%7ApW1sazSURvrc!5%#EDNS&poam z^8(ILD4#YswikX*&i+j91pXNH{fHwe#Qo}(cFbU= zNW{{k9Ss{Jjh2|izm$5!Z@~4WFAg+i;DVe)X?F-2Hly3gZZ$n!)MDN%jh5CirWH@j z&sCSM?>LHYXZN+$s1Tw-O(XfyYp)FncF`Nmg&PmnZB@GUQ|p~oiI2w)KDm3WlIv=x z)%ejPFaibEVH4eEXJpF3vPdV zUMBRAw8U+P38OD5i|F@!$h4ld+1bI$Zbnc@{BZHYPFGd(N6;l!rI_GPN_8qtATM+y z6%ZAZ=}tjSLT}%Fa+JJ&h;pLvz=!t>o(E`TXg-t7U)cB)T);gqKnAmY#zCpvB68c7 ziA#_89w(F<*)n&Xs$KPzb$j1nQWsEBtHUe&$T<6F_7Uo%rBlj8sm-)b9)AtP*nuoR z|MYAVjYOG4Dd}N-`q`PYR*RMkH{m|?rzE(RcpMT^THj`RCw1(&)ct#5Sx_XXH6ZZh zZL;%tklr04=mwP*+E=`&OW(C`Qs?b${p{5n9_Vfox>Ou?m`CXYXqQ#ypC{Q?h4Z^2 zZf_CUtX(DX*jlc3@AFP!-se6BtCiT?aKS#H(N=`X!A;4)pM6$E^a7yYTX@2h2t-bs z1X@7@zQ|d%X1iPK72Wf;W@yF-pYHbycO>}5QUN>BR{%9-G!`|v7~JSk0xHy39bk1309T;)cMC4eX`8FN(z4nivf8h|7 zHjG5Y83y?jQ8)a)dxi};;@ydO1ONEkdgi@dIh#y67mWEVy?2eek@CWB7KiZx_+`@| z!+?E5ahxp^oO7yn;gIyn$}UqGiE87(<1No(7`x1=#Z+!DDF&g~^W+Qq_$>`>vi607 zjrR`MzQ{89DbS~6rH^y zFD!mNq(INC3>i~&s}}vat#~(Fu>uJN5>J&ddj%n;{=ubElG%>;n%~^7o{t zznyPX7R@_f2m0^)XM7DV(1Xs)ub3AgPZdsve5bsfOc>EQaR+Mz52l0->8rS?kNvbh zz88MRNBt_PY&4cQ*B6FeH0n}z>CyOYQ3)?biys^vv)7f#sL=s-_Z z4y7h(t^W?OWz|F6daAt>hmO;23Jru%-SkK&e#EL+ZA$rrfUV-FntkkT|MI1V`+3AV z8%If~h%{zc+f8Ee+5$;IaW|kBa{CL1ly0{!+fNS6aUHMMDRs&ExT>t&(IM}>mxbxn z6_u$inBQd(*X%*+dk$%L#)6*Z5^k==ExTr}@AeiRK2|H8p`XAF4QZEi*xan(aAsxh z<|#kqU8y59g?MZYS2~p4H2X-$+9>8_coMJxj%R+<4E*0M$T%PG|HFUe{z;4Y)+NICvm~jDx;#T(wA;ut^1@JO|R9jhTt+g3)^r zKQK!Qz%1#=IW~wCe&LwiNCeL98|zFgz_guwj+CE^TOU^p>`B6J(lgjaFFo+%Wp&U< z7I+gkN%%Akt7-xRcfV%{&ol>bYG=s@}$~v7tU|t@n2_S03Rh#MAWwW~CC> zNdYzKJ!8qB)g|>dw#nYKBfV=jM@2(Is_ufL!_f}2DEnJ3CbC`5YduZ!HnE=n)(K*>DZs=)ptDF75v4bFk$lk;&rv*G zoW{KMcJ71W?XU*DGxo!ku{S$5`P>q^wNfG3R%-1wg-(uB$Wwqd<-55uy}^mgRxpML zYY@soWVnm8OsA*ve(?F8T8EYE+eD=T*M@HhP~dqaMSXPRTAB}Z4({{^8ZPIuSr^~} z8O^2We#Ty^Yqy-${s)!EvS5m*vz6grt_Q*ALt6B^LDCC8 z3;94i>12VE=y7^gVn=p2OW)l(GdUxAVra4KNhY7?2^qWCz6XTq%i&An_=(ft1kVx6 zt~0sVzSt_Sb@owatyJ#w!`x4u?P5>A&3&NzHp^{-v#C+=fYw?8Ua1B9pWs}c{r+^p z1ntFkpdNJHk^atCIeI;yNXX5pz++jSHf`86&`5cd8=Y7hD%s4K8?920KM^HMS;1>c0g}Uu? z#F(L75Um>7u2C_n*siyR*{rVk;KSZeb4kexSI z7YW@=LQF`l(L$LFh#7%ypfpS9M!C8>^tuzykgjT0WD^;r9isc%NEFK1@n90Y4xdt1 zWN@3*3^&2_WDS{Egv3%Ah3qgY%i+1PrfyWSMpd+9J4@th+vurISQVmsWTLSu`4IC! z+BjQ%Sct_2YrsRrOP= zaV1d1klW7wA{=SJ8hCh9e%1f0YPx@9od1j)U5Y?I!K`3-Obx(B6EuwfD9~aAGs~IE zE;D`{1!q-$o{jnV{tHJ(%q047su5iw1Ed@~4d%vQfy78*cV5ywj&+*=aI6JzqqhNo zu|$NXUFMqyyZSxb4$z1kgZlY_r~9)Y^^Xh~<1WzZI0`$u=q235U-X4zw;j9iTlAx+ zpENdHPdvy}AoNfS>hb9W9Hn;;NaBv*d9XXCO|M};+Qho^FcWtjI3$S|j1vvIbnhMO zw$xd9Lf{`g=s$iYgy^%t1bT0C1@z_KWa@{7yd}5CqZ`-&a{Ig^3ufP!1CWSroAK=^ z^hz#V&P*ZslH+Dc*~fwAolU?Wf9l`$UMPgYgYA{Oj1^1*$0Z{%pbP;QxPD%e`}8dE zsLhVoAt#SxQp7D_rT#jcMt6bbY3Y2TI}KbAC&9J`}53$BB^3#8<2k$d18^qtre_EVyub0vVe z@eF&c0m4g8+DBT^u}k%B3P0jC)dy+8bzm`Lr(h zPr+N##9pEl+;j=t?7hYV)5MG4*=QXOtb0-aZ0dzt_7Fk7ViCBIYyJO;3&8_;vfvW@ zSzL27@XT+4fEY0Z zGn{z^H#vd_tgX~fp*uREQ7XZd`7T(kCiWjGe}83+?j+VM?g|G}~}a9N7H~ zx2N+~(BhqiuEjgkV;i+V6N($Z-ckuLZ5MIPw-iU(!9e8C28-z6Fk=Q=20YFC*X&75 zDH=Rz9!@NPe?TeUg5MHj>CO##y5VQkD2>`P^U=Z&#wQdK6;X}BjvB_pO}4IMyi5!>(Nf+ z9(F9`CER=kOhSV`O3V=b(xIWbFB}g?`|-=<4JPJM@SfryMZv$fpK_iUT%r9D9+7kc zsS%?*CfS$x^_K8%`Cy5_xeI=sqqI`kVtf8`*oRx2>z_;ZN?_|&l+F7+MyfH+@#z;>X|vN zI>AUAD`#tx`*^UWufQmIfv|wkSIoT7mjoqlh~wA%3b4Y=`7q!nkqW;VzwvrBZEfV3iK zN0+F2oWLROJM8hmRtwk&lN_*C^*`pQbdFyYC*sHu$$IA zUWf@@KgiH9&PsEZZxQG@9%a*Uz@T4`gsmz5w1t`i1DGmODe7g>n6^uTS}g30Xq)U+8)=}&ez1&5o#0>{Q}Ye_ z9Q@5$Vro-gpeOJqCG zD(Od^#&57<0$t0gxxWh@X{O&q9q97;G2L-~UOQsMiKz7BZ4FP;{YH1Vzhs@vt4V5Y z^mP|I!qaj858M_vD!NjV`SByjf76o7LNw*w0)%r?=tNS#*4dEcY0-D$mKhn#s%Z-D zl1H1=kEfo#sf0wa=0n~!*mk&}u;l|jt!&hqAyT|X{#uTXR0?8Nl%=(zZ5Qcb$kf^U z8dr^M&ef|+ob(-+4iCk$z^$o(fQHwnIVYy$crqAf`5+~fo}7*C%B%9uRPDhuHK{Xi ztJS+Hy3pB>5d*{;x&_e#XCZnJ*jYLjwsu#Yz$%!kIghj5T0f7Ls+Jw#K(dR#L$iw* zfnwY|M~v}HTn?G`+Y&O{5sHafU}#{s%>6r(T z@1TMV>B8QjHI6|q?TX8s*UNZ4h=><3b2ssN^1eFoaKqW7Cd3ZI-S}uc-LVW6iXecY zd=IP2TSp%+PPlB%i0WF@>j4D_b+XilHnld0X58Vb{3&gR?iLP?u=V+y?ykrD8oTEe z24yM%BL0lxKt=X>QINfGNEXYnnk=kX#={Uvb28d^@b0I=od3l z(OO0fwxp7E-p#68rHCYm%740YNTk3hPc#}QV5id1Xy7a~%`Q@VEqr-hU~JuKfzDo) z_Z$l`60w-DNQux)X38Vl^YBdV*ffR1O=cgxDAez zTC0z^Nj&|p@csWA!uNUcU@Tj}! zwt$65mbLZ|aL7M|QUB3?SOHaY6-fAKZvnoZ8i}<1N@z~Ama1+{JW^x7Y?Nu45&4RlIsGB zfG_A0LY+L<9LK85BZPsKH&>AQy*2#1+t5s4>F!hd?ttIF41DqWUpNWB$Cf!Gt?UMZ ze3is4V{95v>ZQJ*d>b>)Qy&%{01K-FB8X)V!E+bik`ofVaI74l<)p&yCcXyuU})!_ zA4PpBIJh&1HgQ)@8_NfJ>RiTSLPQC0uiPmh$LPoQ0o-G5G9I{9uJc%Sa@ZFR@j2p4 zcKm!F!S%wx-#?8&Q>G0iRw#f3|CIZ-gO_MT{_Iq}{MD)Y%Mn2?Bs4o=$JFBh1!_+n zH051F95wEe9|8An^JDPfN1oc@=QO)>4$^vJK`fJg9~JV3KCoK=pQTmf$UhoW|I^Q2 z!~W33I^gQ!0HC3he!&PT#?LMX3}_zUHa%;35m)#=jv>haJxF%UOT5pYBMIu0D8nU^e4E4 z%o3J|r%sZoBt!*==^GT2SPRVHfl0y>8r_gGyA4QU5}2|UU}B{bND$o-k3JyXhL{U8 zfT!J;bI^vxmN%H(^;()0WI&jJ<`bSw>dJrTng04)GQAM8)c}o&D}k8HL2e~UZEhk@ z8`z^>5RR*P9RvBoWncmy=t(;GH@Xi%PypRW!xdXr4B}o%h9p)5P=~qo6y1bLzwd06 zC9@mwf9Cw)ewg#~>skKD>vwXj-<)Lbop186-|UlffHa{H5;s7#BcXS!=UM(9z|{T1 z^8dj}{{KMJgueoggixT=T7sVl3p$4717PBg9p*DUivp7z0Da!DCXVd`^5DYtUHyO? zRyhxtU4mx(1_1qvIO!!1MwU$%jl~V7Ol)FHAp)E|DQXdgxpaPh=$oaF)FL8JdygYO zfx!Okufa3E8h0D|tUBk%j?jaqF#9=8az9ToY2uN$HdgtZGzTlO@y6G~oQxY$s*@^W z>jBTVpBtB0`-7Ok_j2N#>GU4#fW&n$O+;b#n)I1;FTroNkXLwJoU*As3oT?H0Y{vS z%Mk)sogR`;MeK0RR^5amXw+Z?LQJBC>NU2rW0_9runjw-#>@$N-w}O|s&chzINMQW z>!n=_0yxkDFgdrt1(_6jKedHKKtR~U7ljE+Gy88kf^SEG@{S0mZfIY7bK5ND)N0cn zlH$<(#^ytHS0>NY-0vwJE;?w(3<$`SU;^C;LgYfw?SvxOzmc>QSkd~SLPe)2lRh%!WySsGp! z8zKs4zHr##?oD4f}iR6;BGR8m*zXa`jbkx7r`eUCCHjF_R&ait%4!r{pcd z8bNdDUD8Gffl<_jzpY{235g66WokwgX+nb&!%LqWy3k?%DuOCYu|2tF*TV&};f1{% z9ynBluZJ?43s&_}gyG84_L6B(ganDzk#f-_;oL6KaQz3Fr?FGD`l5SNbwpFwPRjLd zxcshelO1~v8w5ahyLgxl><2k~46~x`Rs2Cck2lI4UbW$Ljj6h`EWhrem{1D^-Gxud zpnctzMsO^qGXf%xg-01BrFR%R3R)WP5VyFguoTJ)BZ+ZBrO7t#u4`gqOI~VTSg@e_ zLruJ|TB(zpa&@HmOg&=j0x5VPTfJD{^tS<%kZ4 zcgY`Mbshje7VLq}uz9d0f-Et&$u6A#3ww3>Rkqkck(W`l!`VR%_V#yk94GpNm1RQT zX>Z+aMYv5#mPdt;^@xB7=XC*V2i8E~&(TVB6D>;77rB|E^PF=-;mKJr(Du0>(Dgj0 zGG>^&;f8Xds!1&qAfmTf&PXb@c#tAgz<$G5I5K5NHVLm!U+X5LB&c>+oi=9 z*Y6n12-|&$=bntJ%w3*^J~~}gL@kvm(WoetlZ7O|8kkuqaKT9f|5_=(NA-hpjqd0S zBXqFJD`7sf+U5b5@Hrtyprq;xhYw2Vfp2SWk~XMyd91CsUfo^XtUoQ~=tSFrn7#!k z_8wJH$nuRF1rYYKS8TtWW8J*dws~9w!xwp7%nrfE=^3gHMKdeRU+=yAF^M;S@ET~1 zPzl-`fYA>pTc>?OWe`Fqm8QDHHj);hw&HclGY>ws?G20H z@vK}xXQ@!r0{&IO29s6*fJuPgAM@gxhpPY@SeutjpwQ@gG=O1^01xbJ0-#mQolk#) zdosUNZW1x0%<$1uhC0OiM7O_MLjM2$T+I8V3-$Xl|Y-4r$U3 zHg2_vHb0^yTB6U`0eBbxef}AY-s)NjBCm zkLW=|1gsg9+~89{QUQ-3prr>pfHgKWq%LZ^F>-&`Eg^ZS;DQq?mxk$ea_p=i=Mz97 zGw`B5X_Cp5&Jjwhs}U%*?EGoM&88?K)pl;CRQ!aOLgVr`C)d^9Fi;w+ZS2?C&(G8T z))AD;Tq5DYpzJrJ+$P~2iNaVJVbL_TWk<28S71bB+dh*kZW&{XVw!G7%e{xa##h?l zH(xABxW$M-MO>Lv>_Ei_44ctKtW|>yWPwa#qle$EBn|o0o$PbEPC_TUV!L^@(*3OFw?N*7Ie0;f>^@lO~dcQc7(W-tK^Z5(&+Nq z5)%EOJhIuK1oH1##t6C9gKS`|QGXdj_j3NQb!yu72Gd75|EEkV+4DP!kKWZ+k)F!< zy}a)0P7hy|R8UR~&klkiR!XE1mQ$=&PiuFM`(;MZY3BNr5?B9?HE9jD0XMdnw&oPw z<-A||PUf2QmR+x-(`>igi*6ytg+v*K8}n*=!`kgcb>b(BCG3Z&khH&sbGIB+G-o%q zBI-8ed8Jc$qASq)vlrLIlZ_OBaXU~DdHI06O?Rj`bVKG_y5se==Se4{c#N_vxX%>G zIN~&dsO9VK1{xR9R^_R>Wiziao@477asEp974{-xtH*k&4=8PWSDAdgdYn_&@>HVD zovNYw8CzBYL!R$`ZS1%~2Yija-;m%(p<_-hJeaS95O}l-FylB}G)p;;pW}5i2BrWk zZY9Qv?00@6*k{b45ylG#R3NZH4J0uQX~BA|lOUpRzL8H@^oIcbgL zvJAZ>>v9CUv#S<3;Ec{&bUCEe-#U6Ge8a(Q8eZj;o0k67n~ukB(os)qG?-K_`mFS- zKCsoufQp8^hW-jp8ha17TTPvTnQsP^|A95b{RAyPIx6W>jYNC&2SZP zV&3*+JqguSly>V0^wWSfJZ?CP9h|erc*6nbx0NoV zLH^8CU`$eHT!ttcJy**!XmLX!E#yD55R9Or@!92R5Q_&y7tb0pWE$e=F%_>E+nxn% zx&2*m?d#bv|Nrk05XS0>0$3$H@vt4j-U~kk3AQnr;wntdg3{}G(xAY&7Nxew16c2u zK7il*)qiE%*CYfZfSPH|qh_Z-0@Dk)EOPO7Ub6A903-x=UWWiE2VwcHVEcl`Ur@QP zsR|PyOm!Us;iyM*BLh@WfyYHY%>aLY>s!6x-}D{_W}0shARzdmroe$cGXv1DNOTqi z&>&Ucn}+IvOW2T!g(%G}19M08uh|R5r7)!i;JZ6o3gNeP(*WI_o^zXtxA&Il~s4 zmXGN51=q2A5?sx{|0&!BE9N_BBAB!iV2awn_pNz5{LNW{7SVsXPw^{o$2ZLZ`3Uf) zJi~$#59z-Ar*S=mitz!@W)rK9GNJG50AWJGf)umsB{-GzIqW5y|93!_e2OedJ_UNx zgVch|o;|>Dr<| z+MjCz#~cA8ix<^oCqkWXFgYZb(cc|+%M!8acHsVWK|{7fQq3aORzvs!^JQg@18cL} zR;k%l*1gc^IVa>+KeiYwf7&Y8Ss>ehWX<8RC18+pPoZF0_Dw;(KVgzy`xsEkG7+;+ zUJ&k9=k+3wprG`G){@JYFD6y)dQ^Q@-es+n>MFho-^GwBTr32oP}w+I8V`n348e?! z@aWK4*s?+JYt9H?2~#a6B5P|dbM?Xm>jW@>k7?9bvcbt zkbR1@5ra4I8TJGDH{O0W%|z-OccKwBqOv*Dv15CnGoe}q6-vOCU7%BeKiefmT9d<- zgv4|k7m;`j#4tH}M!M^==p;p^bx>SJuJ78Lp^pTX;y2CaU5qst>qiCcOC=UEz*kwF zB{M~<(^q5ovd(sevOU1PmQC z$2&B*$elD~XGk$ECGO7a96ZYos|I`y$=B7`0VHI9hPSR(j^o(%4FOA4=59M0R8E(H zxl(LMc|&50$fKzmTEN07h4zq;o!TG}VQ3ddMB;Ae$=YhJ|2Vw~O~_S0M(2L#YI}v$ z9=2I=B5;@gdLPZgc_O7F?go@Wxd~hSICz4sXo7aA@&t#O)OZ zA5?pd_dOLyY#-88YHNMisHj5bd!ggE1%TtNPhcg=A z?2G?ARmx#@Hz2AR}JnKZd>_^=5vV`PX>UL)6J}z{P8A{PWb2kqY>Rs zJSg<>${`DCbugS_VP@Mvr;0ojRdmYOYuy(3-udqS0`h6#z0Lbse?V%^{E@nT+;z`` zvi@9PUSjdl|B6NXk9_xgss%N6C>WjBqv764FC6Good(Tmds-0fu|de7ZXS=Y90EYx zbt|~H5H$y%PxoU{X)Wwk2O+m(ZAy1w5F2i2Nzwbtbz(!uJE*VKW3UDOa(- z2VneZnfl{=`%k_<#ZzoByIK@`m*_g3@3j|rx1p5b$U5qoXO;k9y8YX^5>CJc@=&iO z!;kIR0uql$jo+tF8>0e~*gpI!xG|TE-Q3_l8^?N$5h8!4^MBzmU(FN(&s^9WBuc(p z63B@@1WS81o_?4dNXw+5Tk*(oIL$8*beciHnIyyMlsAq}Pca%xm+5z}&-=m9(pk;D z*{)*%A!=%^h7UsB;s&idurM74$kKDG^#e08?_HHbvsv=2aA-z}K&j*WOi6|c@Ipjj z=u;@ZD6YpzYzP)WPjppEI=nB_-lXqoqB`| z90DM3RiEHC;DWu2=YaY>#wP*)buJU?MB2HIzeSu`JMHdPtsi*c@ql9Q${XsNTbyj7 zxYT$o?A5aTg%c`|E}E@^Cv#oFQu)lA@Qgrr#-oC;A(*rG;R4m^Dy~8%?8un$9lKYI zt;r-zN7NPuhqb(F;~snxrgNm3TT8;Zj>9{*>+z+=Voa=dT85iu_0mlDvSYs0700Ld zd)PHwrip+;QIJESo8$d}I5Op&JfD{!lHPqsp3CbT;^Y{;ngwztnx!s?Ttwx~8a;pR z&ys<uio}`>gidxC1&La& z9XIndvGU2v;L8q<&nJHV_;=?B;XW)NYgvaHlg-+Sgi3N|Tvt@Ad?_w8e7O!7xc

##@BCwCL1;_`gsIZeGm_O!c*OYYDs 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

#J8*dv9OWq8w`aq1d}6iBd@bBH zT)1xg8aPni3OdJh!hY^MrM^~AtHrX8Vwf7BR|Ial@C4>upPkF&Sk4hBU~okz=2n}{ z+Kks_3DJ9ul~-p|k~ht1WpqCJD1q6n-ka3k>eV1gicX_-r=EP9)Hm8JQPuvEDLu^0 zM0DH#u=PW}7?*8e7zP5@A;lXoo38+qWf;k`;i`*sAUxS=ZEcMWS+5J1=?Pb?TQ^Dk zbKc{kyP6E^RCWon@*&2EKV=Ov9=j&~dj zep69lYHlX(YkFH(25YZ9SzLT?<(|JEg^Z-LbJL<4;Ly5{i#fD0Z9jnR9gL=>Iz4`8 zp>edKS!8CA`N#!9=tX0rgfin$?I?B<$%s}}A-=bu^K7+T^#HYCoP3xQitXX|h$3Q% z<_eBWEgc6}r9X2%yI^K+#JIN+k%qHJLQ1xqy0kRV-bS6P0n(U8h&UTpcBaG-W^@=E z`W4T0Y|o8vbL`b_)~YbF6^g>Q10Me&Di>N8EV47M$pL9E%+y%r4SL`lP<5CsIP(E3 z@3kZZ_||fPCZqKp@G6+vsk>XoD&=1jGf{JTU}^ zo-o~MG#AE;RQ{;nM9xXU+^*nz33q-+ljX6LZho7vJR#ww>LX=a7Kqc}`1y*e42`Mh z28$DfEHi2Td~H^XoU<%e7|rvYelY*(@QYWKhop1ILwtYPGQO3#YbYle;H0 zT%{`359H$<0E>ssoeXCyp_Cb&Fpq62R4|_F)y3-TR$#AX(<`MT|L{Q1iUthR2PPzp zR_Liee3Q1OukcAT8+jStWbZ>GV;x4GW3tUkst-U^^fOpOB(NPw z=*@as%=*fx{%le-VB8J`93r1}Za%LH`}M89syv2u#8o@~=$PG$$%*m$y5hoDwlC=o z*dbh*TqxLQJtN6&Q>>U9_PX$P0i#;GPsP7s1ywTg@o#)41cM)>%V!V{(z&pmpkCGx z4=Js#8GfO2I@aRaR|2IyWvP!mvtRVv+IS^=_wqM;_c@&b}4@y(wKYLf-3zK=&_YJC>Znp@$cg`C*8` zm66MvwU9Rjjp6CTielu*im?&(a_{U6zfV2XW(*X3opN^1OyWcNm_7VL)&UogFoFwu zG6N5u;wT@Bwrxt6q$q6$XDK}#Rh@DmshSwrn7*)lAagqXKnI^Hr}TOb z{m2zs*l*a+ltlt$;*6(a3350zYRsY;boiTsR4A=DzIxXjD9{L0q|w_qyDT{mI1rMT z)mZ|%k+R2=cB{uOd0(x*@!>8JQH`8YM2|SogAk((zz}$(^&2KLzh_m6$^*#Kc2lzV zQ=y#c*kxIYtPlRfB&&AC25IA0qB~|QPJH=bl|kW_%3M{Vtex4BXVu4y0?xyyKw3re ztOBCkduf8SH6xsVbaJRYU7)XCA$7pZVhaG`ph&a#WX&1}k+R1}Gn?%KKHABih+wv3iDOoG()NnhLVihZ!S4Y# zu+T+*s`K`WIhNzu<_C8y<4^C4KOknB$>_iT(%YZ=U|8^FO(V#1Yz>YiHtoICLNvql z2x7lX9{+&DcT%SIv7ov%5Q6O-*o|KCE8Xn_2aYTE4UQp*Q77n`nKy$O<^LE>X3h>h7&6 zcAWiViC&L`D;)LY7x$JsMB?>EgL~8AzrGy0@8V8pAAr;fG5g5vOWPEb&+)UNACRn= zi~D19by@CtM_oh9)PH39bd>X0|CK|X*g+=#BX9q*q5sKk=vj4eOmsZMZ>-`!=C$Vy zWB>GavWpP7ri$?B7q=!)RX=NL}T_qE?_G*;y%`6fPqjF2~ezFN0&Y%XtEo5{zsDvDh6Ky@XD;G zKAA+Vh?8y})8beZ{*LNrp*N?isR15qp?s|i)X(XvJ#@JLZ&-p4#0nB|cyfNjvc3!f z+hv~`=wpzCBt3vP;zzG_b2$+8WA4NEK_6%Q5757OStyjAo$ftbnwqXZ{E|8zVU6uI zSu@*J4j8Q=B=HrVbOSEn!`ot#TF+0BfH+-U%wO2XUrpNam95|C_HwgN>E!qlC`5Sd z#icoy030)9(|f7I8Ss^W9s|>nQX{9UFqh7q|ExmXo&T3SuO34G*9o8U1BX zB4UKH$qo&@UPN(G5yVd#v05?!Eg1*3(2v#=A~)K_T8;K0>UrhO#U`E?l2l)w5t zlW(C^;X4!|>}OnwLkluQT?UeSP>`cm`DxRxW2 z?mKs-n`0|QkW46*D`6VB47?Y{d9qSFB5a5IR|zP)n`(NmZ~Ucby8oA~O+`)Q^^^_a z*U^LLkXVL0O^gRUX8e^=kmBOz7U|@BaO*4y6{PxroY`zb;8DbJI6u(HSZt81O88(> z_X{4MhgNtqy(KCLyZKakrao^opgIP0Q@#nw$`r=6A_CkjC%OkNs3HqEwU_qUgRX>A zq^rMSPjEa0+bIwPDL1Z~j=nTI(;iCI#VIDeO=<1FpJ{Qs^pbAv$GNk-fr&o|szV@^ zrO6&=A8otY4x}loL4+#z6{C^sW2`Ueb8SeMFrYy7dpD))B70$BuPV7_DY(-;ZfzBQ z?G@6fK?2v*4E9`XGXjBYK2v~sM5=QJkUxTQwwq#95piMqz~fX?@h33bt~0^A&PQx+ z0~^(a6uZnu`k_n4J;7*a`jj>AH1o@BsGXcY>6!z3+IT)*KL3D}?;m&~rX>@Mj({(j zj3&Lth!XbH!`1M^^tRF9*4$)c+%vh<%{KM>&t_Eu8D7RkKxgP|H_qoQtxz24BU5GX z8}ht!eWa(WBEH35(+Od0k*$3F_>OpH?0bd#O?8!bZtqEW!La$g0S10{CSh(L0@UdL z+5LhJo*fwT9dUGItt1)S~yVnx!zLvmVe@ZmZ-^Jmh^bWSkA zX1B2`j|YMcTQYuBgwLHAZ)lCxNn=V{Q_$k9`pnVYmnafW0hV1;Hy~Cq zE+dIqm4lc7dbTJ?$t3CF1^V&9+5QU2^$I(cH_^Jmr7{tz5oKjkPx*3T0ganI(3!f; zRkHW;MaoeKwyw2Yo-I#!lZHvyHvXTR8!I|4$rBnt9@}NU{aCa!5g@X?AqdcP`psrABY8&b=HxJ^dqmeBurgh2(VPS z-tQ@R$SfjiVr=ZA+kP$a4j7-f|3zT?6Tji3u;*!20El>vV#M9i-|J!`g6PHEbFDxf z9)B~Z6DL#pj1$)KDQ1$@$zhco;-&X66XA{F1Jd*VvG?9lO|^U4FiMjerAmzoib_)u zQCd)>iHf2~6QY6?5h5T05)uLFO;ABWjR=TJiFB!vF3r$;2?>ZGB>@c^Ql9tbeCK@g zJZF6~>zjGknt99op~=o7+4sK7um7$q80!KHN9_0oGBxV;>by|qoh9arGVIQg!puBm zC8M|PZsT27#h0cLyGaeS#Jhh4z{ri#%GuPC}<$%uA|? zzw#DDeoG9ac-Nn<~HPUwW4k2yt zY1>rQ1tisHy$LUd0gPW(mJhL?DkA;k3V0jq4u38iLfiOA%rXp9%+H4LpzBdyD82Uh z<5G(8Po8qy!hILOHub?TUV0n&TTffNbxN=@>FYe6uQm(}3pu!BB3$Ag|=MTwV^U&QHl>IW#R@loWI=U@P$kSP*QvDqs7=GUbK zn|7zltc+N+w69AeM*T}a*A!Qtk{LVs@NxY!d(VK7%EyZ5%=v}(=sh7RF$>FRCG4hZ z6zhn48RHb0DCuFao!Z4ND_nShiOcf1s6Vj8VzoQik2HjihDsBTRO zydbc^lt0Nh9hlp!(}J7+gF`qF`(+pMwobyY2ASX!qK%`RSSPoz8P$jc%nYm&8-K^iS`J-}E=jSw&u5K8_Sl;Rzd9Lc+6S`Qob zoF*)3}ktmf0cbQ$8XJCv)pdxrd^C;`Y(RNtwJtw%9I>-#@}+2 zZuxy+QR~lF6KPnP86OJakH0GJc?`Fc-bX($?3x^_us2BWRSv$nam#u`Yv$Nd-9OMHuZ>q{-m8I*$OiWIc`L? z901=#>IByti-VP=UPemXt^>ALm>0YI0pO^(Ev;7Z7GO%tv2pKhuj!W!L^Rnub~GQe z%7n>AFXR_yi|^TaN^IM*n9Ul{V?42#F@iM0V=GCWP^un1C0Tbc@DGkNrI05U%Y!3Z ziX(5Ae;QZ&kh8C|$Wr<3R}piu6H?nvq#A)@GX4*AM!W^$e*ytm0kQ5$kh1h>poNvA z4O^V>$V+c;e%EfE-MOupNu0IYGoNd~>cntQS}>L=qbgWl&&I^lqryxS!m=lG{6OZ$$P= zsBY`O$!|3)^~o+;u8)ViDhW7amq9~^IZx9X|>j0TYR7l@dw zDzS2e{*Sk@tbuk{P z{y!us!C3+Uaj1|73d&3V;LyU~z{~&h2fRnw+F$8M5RDt4XYrcS4agG|me~YAV3BSv zPHo2C)|$Z9cTNiT6Pyu%;lh(uuBUuM5g;T_Fe%7TaOv_P*$HoJz%~Ir!FE4A*Y>}BFqZhtxA2#njt{XJE zL(U^~!;fJEeFT8_2;evEWA3FI#N10?Z-9>wjKW(U#P`J5kA7b^4x@_rimfF78vbNR zJ{dZZkfr|r;jn>xxc3TkmwFShgb5s=nh1)^543Co<(odiUOTG0)x5pEyZ}}^@yU+h z=o{Bt%=fEocNTyv?FQI#EpVzSkQ-R44K@NR_zMv^Iv09Rm%wwoB5epycIe1+pEb`+ z5Hs;wn%f_G`BlBi(Y9=$rkHXdyLRv(H1`L`T^P&kSUcp&=7*7h$pY4`{w0!kIsa|C zEfet$LS3p}?JgfiQ+OPDjJ~~O8I*0t00;9qE4IcOyovzHa))UK>5^Ut094#N~XX zdt(RDN_mWMQ#~vlzc|E@1dv*Oh2tLU52haKiDw0(F21gxw6H5wS-epJKnt$ikFU9N zrTEaE`1g7ouvXl#`n8I!W*#bjRNypC7wa~TKHsAy?jPSDk?bid-z?VBR+q6b>T4u^AH%v4KOHk z1nKeWZFyN%23sLeiNf3PeA4rkW@DW~>OrUNwx5h+XWoR4xpNuaE7EN5ydq-Df%$-$ z1Raxv2FtNrl3FdGr<|1TE>qRBJ=eXke)T=-n8X!dwd=U3n5^-x)lXdBynCY&&j?f( zn(cB=}C_62~N?XNtAy+n;;-(F0y(3%%43cw{2Q9Zh0yx&6n0 zv-8qm8+blPOs74z(Q;d>ev^eJ^7d$1@B5m;6-R3)vSSVGnYA_Vj@Yc1BDQc)t4KYq z&(jK2!o8%W9O2Ac9wGb{iE_@LBW_)sqNWbVKl~C;O2+viYjM;(rsf|UrbxbA!e{IAmoE@(1)}6a6n&hvO%gzqE6C-ZXlFIcKYCnDjf0X z7Vy-4C)s1~R1~`>YkhF&EWFS$;Cj(X76^}oO<~4?6y(|jZ{3(@X}=4;L^at+Acmdf zc8_SbLADkb1)*PGgJgwZUilg0$;SAhQ~_7 zmmDeTp*U)Z%8aA4UGMO6+di!0Zl4k8VxK=$!>$Jh@=E7wR6qw3` zrCrYSIVgtG;df_fm%Gllm|)e^96jgGNNtgY)qUTMubng*y*qpYKW51rXaPt$9^I?u zH7iT(Fz>lD{i(RZvYKnx9<%P?!|&k{9#)*RDYoDWs|01Bz;0!0K%(RzwLLV``h**k z-@eT&CX(fj&rigk!+&-69-K9!Tu;$Dtb@}BGkqG{K8h^YX2n&_v0weNUtbvklNtvg zMS&CwTL~kHMbv_x)F3mLb8Yyr6*O{2>9^L*CtT6+cS$XoQw}HN12# zWIZB~lK$WT3eyz^sli)`qe$eCoGEYy3Wot2+%m&tifRF9ub+@CmlQlI|M)LT;R6ADYFYfWuLR10$YEz6pcr1fHp9omk$ zd@L6@H0l!zl2KtG2U@RM27~s)7O$}RXa<>?Kb;I{5@r5{fk{@quIa%JF~~c2vwhD2 z9^c2U^1g9vrBS>mRbZjuI8VbjY%kL}w*uinyKSa4A}g&oz&q}<;D-@R3swb|^Z{1_ zYlZQ9zUJ-&dd(clZY9JTS#a2wM^RO+f;r{5|k9k^Bi5;h$#zukWeaA`<+ke>%v2Zf!K0 z=4C!Tk6@2tf8^p(c$fzJ@Gq9#&+CXt7WOOfde**CsJv_eFwM&6G0oU@1?+-j2$C?c zu~q8}qPAgD?Cz~R1E@=G#3oL0F}pTT8OQ&#x#ie_hoJ^iADIiOR~+ zFT{v^GDMYlehSwrfx4m&sYtTqi1ky9CBWluY6vfR2A!hf$oM6YP~nARrm!+K`?Hz1 zX@K`^WR0}6Ilq(}c%GSH1SqJ#%Q!2xUz+&NP%N&ayHohzzc-)6#IYV@Z^EEM>kkPY zL@rN+1i>RIf~^dBzFR1=B&#Y|1~9H>x*ISr0gl|a>d$F^aHxtdC^zXLfmBXpl_5w^ zrz!w=UCdNbFobAz;)8PTqELET1=q$Lx&-taJNMjsZKiO8vqSya;d2GE)rX`Qox*rJ z5SZZ}pgea3K^KRnX{NSyPy~&)6(a*!k=~DZV$^9;uM*#;-y;uNJovb1j7;Y6>=V6qzD(W!QA0V$;J?TNQ;A z%)SuIEx&sLcY-t@bbtjStfX9ck!7pu1u4k}CyAk@^GiLBJ%)qQ1qEx$+rHT!@a6T9 zan8hl#*!v+(0GGUjkN#DiaQj3hLo98yEUsDfbq4dj#QECO?NOic7a%XN zHO#@FV%QzhCOGOENW7#?S0f&6UJv$EUsARslpgze)8V#}!00$PhrGD=B^$^m6sgRf z08&0di4GztVTqWAI?hkD3k5V?icMnO9+)WfvpGHMXw^W+g1vpita*S%pm8llsB@_^ z-}3sG-vme(M^ek6Nz$3DWLKKk;D>BTpm|-XVf0&`XQ`YH=ljtY6H@iYPmO%PRj2+|9uonRpOm^Kjl!-^7FPu?5d ztx63qXx)+OCA}g3%tau%Qpzs5PryS1VOe$0%_ zKUmIvZ=aFjU`9<=N$~Oa&=mT-=g6}m51D9z$HE8zA?cO2=)izsx(R~6h?49cP{fL$ zphR!ed!fr`t31sQ45~R-#yBTPC~Hg|BT5TjNg0P*PAo8U!SK-7dTE1`Xk%9G9Z-ym zAJc8IhsV_I3-ngteZ)Naww#4Hz0KBS(fX>^YG=yR7|w)6MGq+mo+tKj!;&qa&j<)? zW%HFVcKpOi)<{k#z?;+R7p?{#e8o|nA%Q`_8WYh3p zFsVSy=J7;}^HyDI;+o-A8jbh7`9BCh(s%~)RMJdf!-QW|MHy`QE)E3GB;Zd~)%4ei zLH@tR$|^lmx;M&oh$AXES2K0hl5ZA?Jsjrb+BhewDN}-%-cAjMkWHFsI3$q$Gkh^U zF*Db(o|Wab?WSCcMG#8LE-m+I`*>*ONd-WApnzlUnyN>F;6|8EWK#BmNMK&8lXBoP z`Vu)f8vQ{_>f-UQS?8X}?n?9hXq)2rB1Y*UtfR})qHK^r+LTg7sgkP8pU9BYkM1)t zfQM=1hKFt2jAi`*-5Lp z2xc3j7L$G>T~`ql%J)AwkZe4zcGYJ7H^<+2F2->ssWA*isDfm(q)zQP_lb&1Dh0M$ zIW8zTXDsJ^UHUP}`z2=;_??W8wCBWhC~%+TaQ+p}768hIn>UGm1Z+Wzz*chE(>4@Y zDA*|6k~;b^bO>*= zybSG{^smc-VV==zabWpQxb0(xSL)SMhmzLQgmY)N#c@(_|81ZD zw|)MYfyg=# z>CgC2fNUxJ~TPJQ0 zHB2gnT6gA@R+1~+9-Ej6`1lT{$ z+lza=bY^?`ys{>J%~hHt6jRJ^`XO}ykq(wLTE$fzQ+tD%BTgiwU$ODt6*Yb;R^=fdi;XN?uFlsT6tUiWi^R3g2rcEEM9CJi8 zIUVnfNJwZYQ28`+hU`AmSs?3s;@V!u`_>cW=WrO9R$1)rY!+bF9zY5(?YvHE1?dT7 z24+}Q6a@)-1l`qQncs+czTMjXs-YRzLvxOy2yFdH0ttteLy&55C9Jg8l~GZERZ)-$ z*))$vklhVLsm7xo$3Kmo@>i`XDCLPj1c|o1X;>*g(z$G3x5$bmkdjBE8i~-}0^DLU z&B3N;SxcY*Zr|&#Z`qjA=Hs=kwjZy)C!Oc@!IAX6dgr4OOnxaOMYs~Enc|=} zTb9rP3GAaMphQFM%P0H%B19xAU)c!M;srxSm(tm3+0z2nqP$uN0W89hQTb{I)oX~8EVsps@9r}0adGJhDz z&;nwPIjrza+PU{OAM=^NY!`P$t>?U=*HM!v_gh;YT)+8HPn|8K2pXH!AX9dWoZBB9 zXGiO>&^qv73(%rl6&+xco|7K9Hw9=Rp?&L1ZNR>tfCjdFrFm>Ays_4T?$cdk#LD{c zV^h{%d0T(2ciXNLRk1shC)UFGruM=YkRC8qXBnUEwM;gen2UDwt!kj^q6CBo& zJ?YUq=_urFjy%_|x-D_9_YLLmjxD}@heiv19&h7d3FATZ4$=;1Uj`w>t;9=F-<3Z& z`ok~b$M~7R9}NTfnEL$~1xzCjbnA}dDX=&#JlBG}6f{eg>2f$#-m9+muC6rJ%W7fC zxYq(Dt*~Rx@QkmSHjk77*BgXU9tj5N=&~|8oa^C`KLvb? zf2!ZBWBZF7y1MOI#nvh!Tw*U*3gbsNJPR{Ms7DQJqDEcCq-2`g}*nUPCB}$N$#3z zihtyKAnt6%-H|=FTu*C0_T_j3JH!glt$;vak2eB+jha*scKbZ2eb9;vo~6m-T-c83 z#q$@(Ez6I|Xq)DVyt#e{wr6)6Zx4Z#OIWSIE{225q+=R8H88C1E0}F9Y`p*z9B-~C zy=4=3J%^@t8XOL6*dOOWGyY|8Vc*x}f+fm$vx0{S-PJW{_aWy9Ygyt_0{Hu9Py*vL zSSo)E7pAXDt&Eg`Ih^pDoKafD(0^T;Sj zHI2C|qj4)k7$)tQzEA|20`I^jWv)?v?<%_aQQefr=v{)Y;jGx~g_&D|+h!feL@uzk z!Lq;7)68M&mr$n~h%tlqXbTU?_}@ZS4P=t(=Z~d$t$~`}r`JSQyq6of(n9*T0qIfS zuQN*kgi(jm7B5q=jZ5?uiIJZg6XRnJ>`jNj-*QIhV@19itS|#RnaQj1FNHm(%GD}h ziy)TH`<%IpW*VdDAO~-j-d|gg(A=@(WPs-+HC$FYIS3py?S)o7lMQVd|Zndi8j1c^GPcC^`swsWxK?gd-pc7{KvO(KYbX| zhtvvGVDndk(2_P&Ot%SHA|Iz6tzNeuy4r*HH?i2p%J7n|7wlrJGC!?RPH#_e|gmuVga@V z*b-ryNI+D(h`vP=Alt;IwF2VOy2I_>dX@#PiYX3b%4V*?fv*}$BXV?So;|a8W+;Ao z^&zvBl@Fc`r-NXM5!u2cP$jjsX_WpU6S6w5X+H3~tS@ma;lkk9sb2VEXvw1~rPP3( zWA|r-zU=B@4@?QD6G%grka9o-<|taX55>Dkq&-Yfy4FK^?XkBHbKQFnTcu5si5~NA z+jD+rL!{Ow9~C4QK|x$Sj(WGX$#S&!r#%pd!f3~7s5C=gN4X=bp!KjvdPt_m8Ly_j z=niw?tFF3s!Ww39D{TE~?2Q$EY`rno1t-B&qCF_RZ?LbtD`)YxwAbO^2A;w1*FY*+ z5i62LpI`Z?n}C+sIoy1N9w%AZV* zl(MtrHdEXgxTl+UwGSwQJ7|+WG)NS1dk-AzSSbt1Yk|Yc&MR21zVQ$xTI9*}eLpfS z*;bPAUC(>C*4F0tNhDa3dIJRM8G##1dOj&Ocx>tsTf*`9&n9hO$J_R0i@4kUc=2r4 zM4p!q&+OVRaiX7_!&~>&tFa#+{~eS?$>Syw&m*j*6n|}hsOLvtW7QbQgZrMqx(Qt- zM>Tc)tVY5-`WoG2B`&E9RV8$GmF=lWcwzL_&`sg)Hii3&+y|-%BaQTDRP`l)YOpD7 z9fZj|UaL}5t0iA}U|nWDAev=9fc`2NOeW&qb)$m{;>^#Wa0A#$)^Z>}m&@?8N9#iY z`4~mpJZYW*x)7R%+;KcYZB;xNZH}KQMl51`#u& z{s1ZpxglNjCxVlYx|tTvYm=a-w>OEnl{@*{zcMBWJ18Uqlf%*2<_KkXTPL?;_jsR;FmO326q0+=6l9*Y*ooN;^k3wiNooMdm*5BN2)9t&plS+4Cf%s&6#cr4?ekS` zadU&c0|i+zrxh#QhmQAN;9p`S^R^!+oAXowM!E{-E)<1}P?0mV^n^hXny}T zWvVe8A@p*H-?nZKU5TC+tjXxpZ{TT)CUwQxEtzG}h#Qa+t z{6E&(_3s4(|I6RoB%y&|P98w~96@B*d>Z=8<$XscD!Db0y{iT6-xc{2e@FHE%Mbi# zfA*hDZn>qx&_96%!2?d|$1PhT%q5V|9~V2RR?)XonB~@oM%?5cEX$*?10A*tk5gSh z*3?XJ!Hn2rz2OMF3=3?%0%E!b>#_pbzZUG1z{cWs}iMV!Xx3L>O+jf%L|U5AV0giyJVCiBIo#I<|2GV znOU7mn~(k`>(y$JfTxrIJ7zADyEgNvrab9q9qLhL!Y9k?mMqBgbah}FNP<7 z7pmmFle`l1!t9ov#UVlN2NR&%5P0!CYd}DiKbTuoptU+eWwh@^;~H9Sl=^|b8p#`O z_tMJm()CgGm70XsRtE>$ZFe+ z%Hfi;>^iEw*f~d6mu~8w(mfY1mE>ZhpZ6ULDJnIFXtVi%706XW<6RPvNCO$f%w>C{&3I<2u0C<`~kI}S5gj;n|6ac|(tq;Oy zM;X=)B}+4GB99-oI6FAx-6<#hJ@(*Z(NCHYH~ldn(_9Z?T6aJlQNU6zb#5BIR0}HB za^q`Yw9|78Z4=sH3`*p=n@0ZG**CG`fj!yLW+@KYnJzXR*CXcv-ec`+I6yQy`j$;Z z6cZPJ(*)>`YayezBarXrTtm;d&GS#Gr)I12%c+j$y2>WaxZ8Q{Gqfr%oBsh}F&?cqrvXX`tt{GIEgv1(T-3gz3gaVwx9qaxy}k~ax9 zc$PLbMxl>Vu}skp`V|_o87p&5W8OffysI|bB_zwb8k;I$cIu~MQs|E?KiR`6`VSTs zbY(maq?=7gimNLo)?14SrkImBPPXCO@Q+$3Y~k%-_R`gxlsoQ!W`VLtS1;>KYD)2P z2^31!;tZki>`vKzLOC>{4yn|Ye40~$Ed(N^VUN-GShd*O$Wh-Z%JJHdU_b5X>UxB28=DA4Y! z1Vo>HYMsb&S(o#i#j%eh&Sm`QWj4Pu6%MdIGc2K3G(V944J*4j=i!}alV1+asxN}S;obnOeqyF<;S&&&gpH^>Fqltpt5ng_Kly9k>yZH2 z<4wyGmD5U!O^%yoZOiuSgAy?2Kj6iqO0{V4eGS1U8PR~am}OsK5g<( zzvg}4usGswz1QRB)qq5+-Xq2rG^PrzAq$#r6Ywl}=CJj?28!t0w819_3aCo-=fRbd zm;3fxBv_c&RepAu4|gbu;m>IxzIyW^@yy`>^)y3KOgEww%M=%7?e}f9zw8S?s}9{gbxFUhAv`&`PNCnQ38JuJUD*1jDPAlJHavF);$-NT z7g3UA&`#-N#+p+eE7>C+MKaM7;pX>l$~!Oa$X!+=cQ$gs2h^ec>We-~i`#$0b2@V zhW-KtkD%Q}DCkxQ50WXqrgzPaW((}QVPDV|^KbHz{70S6|DC@lr~Xfl-Ck-q`|JS_ zobW>Yx;#`d6!iit{s5Ez`xCqoLzn@YHfZkdmQ8E}W1Pcu8^BplL3`fmbToG3qS{2=Ic9eAa;4$Ulnb6;n4aJ%Wm%8e`=E}iG@eSTdV@}C8Q!Vu{nSLqe&P#%AI%qv z$wg`!-#RborgLn_u!SPQxNvAI@P7sq$@*Bf0{=ObmM)y}@yAfz?(Ug`-GR49R~;SG zM-T8zJykrSW}AY36ZoBATXUHlf~Ysx-CtHALE4;tKMNG2QwiZ*Ltq8sQNJir9uc zFp?vfZk^nhgP^#Jy6}VX%yw>R=%St1M$krGPer%eYfVEq&OjXe-5bmVl6no7Ag@)% zO7hlIqGCzw;VX3wua$-hvNRUpfw>tfx`8sNJv>6a)7*zh}sibj9a=<8v^Ms6ag7~ zQUNAU9yK9zb#$ef^WxBoOZ;_n#r3{NM2^|(W*6u5GUs*|BH6<2(2ZOO)R5;=ChS)y zCq408KXuefZmz1?^C2%rHop));Vd^3Hx>!1)c`(n2E!XtqVHurt~pP`HA|ZOY+%Ft zQZ~g({WTVdY6BHvLQUJ(bl(2o&FM@NM~mLA z!XyQMxNVc}2@HxO!w%O*1@0q{${au*IL{!=CY{rU=fbzK#cTn_|6Y&+TrA#8!_9sqq#oWi=crTUJ%L2cfdFkm> z3erB*ejbvfelzo* zf(J_42GyKWdtEN}cTZ5$LuhQ${4HBRzS zX9T`q^Q;0@kt$|8eVtDmRmwfQlEloy!yg0Uxx2tRdA6kE63V*NTkyG~ zj!xNTgLD9IUG}8olJwz-DTUX#=J{A~?714KlAs`<5K$qK%eaF++p}B>NEGVCJdsuUllfleXrH37(?SGwDJ()UOR@ zow4@n5jRYgS$eazHZ?06Gt(PN=n{eek?!`aw_4Rwd7U_qVTS zPYAw0b=brY$q(*Oi-3Vsh8hjHLepNlMWc{Slg2Ed48>JQVVdDt5%Xp~RRke-qPuy&|4$irDKAAet;Y%KDZhhs8-7kZjP>M>NFEL9b(j9O zzA=(`p=YWLvjM_@06tiOEg;G`jlK_#VAO3~vE`y;78HU;O=ox2#DSt&aC;NKr%Ud-8^iWn7kd5zgRO6)WjWinyZyW|B-T;1);Huc2SkwE~i6H=>U)FVKKct*-=td`U5I=^Fp+wmdW+>z(|vasRJ2 zD~eSws?b|v^ZMW-`SgdoC3EhFos;=rbbC^RiAgCc~d8RLE~2cHio&enAJZ><2mCY5Lw!1g&k_g9>B}vZ~XN# zSd9(qq|v6DL1Lpi@yOf%I}l<2F**P0E1(YhbKP0TKLt%GAcxJ(BxvUGGOq*%FeNR> zi0C??W$P8$C!i+{59npnNxM9B_`94xdT1AqIE^4iZ#edxmr>5Tp8RYNDV>=KMBC-9 za{)S&Ys?u=x8VYqqk$?Lffs4#bSrt(@6TiBOXgSKGEfG0pKq4lY2R|iY6v2e+< z4y;h%gE^B|q<*g}8XZ0=A|?wzX07)MzPLW593L{hKG%Sa8P#qfM6l&(Nm1SuLbsmv zJBNi$|8|XHB1+Fw#p{`(Z@!L*{!iLZayn?+0{41Gor^@{mjI1JG0zJ+gG!A7rFB=b zb6+)iGn_{=xqOeU%LGoC@gu2jgr)toU`jcGalr#C!QRI-q|E{g##>L<(@QdjY3iSk zy>+%LU$vphHN`L^T}<%ebWPc}`?0KId?OOl>|kGj)2Fujug(A`diJlTK3zsUR8btZLZxwxPFmPAWtAi~vdej=GcrzqccDq5F0guLSh7dUF zSXLPY{7@LE$1~WCK9}-cCc*DgZ%S*^_9HeO1F8fc|3;UGy?c{SDa|HdxZsBr1Z(hN zs_0kUepZyhA+#%$;4J?E&+e0+U7ND-K(Tx zISaZ7i-7Qe4d*u7_#OW7pt+@TI^y$_;A=sGMQ2I)wik2q;<79Skk*>co@N1N|*L+*~*p|tG^w60l89=MHyZ!6W+UrrB@i$ExwTH0O`?;+d_%H(1 z6uHZzJRr&0hbG#jgNj(+BRqst&D0<2 zIHjS4s(w1{Dxqoh?NucDd@xbZzOR(xXQ0nqIwz3vyms z2<~jkbdC|@`1s~7;7{c>JQNC``p4KpWzYbaxn;=Dhe8}4qsK$9tJWVCdox4HYDO348_^t)jYwtoF)cj- zrOjHW$r0q~7b?kJ#fBGILor|W-yfQMMnRUOF-50H#Ki;}tZ7mi0&Pi34F-E?$x8M$ z#VKB+F&Zz-{oRybEp|QT(U!e?evf|YXY8mm=wku|fw>F=sDo@8`_2;!sx{3&53HOG zbL>@AEi&Xv^^3TaXu-d%yozAM_Or6o4S)o#*DQr`4VyVXAqT`REvfH#{J~S#Y;t~x zW9>!i*hz}iN-W0;f;546G^q$JOtU2%0U3(uC+2%hGI%0=+>;HQb%7)5#}wbcV2lF14sP$ry0g%EJ8L;PA;{!ohzow@9-h_=wEwv?TuSt00)uEJy#lfB<7dtcehWa)= zndNNN+H54Rhz|#fHl)9+{5Y=qIxWlIA|yzcvwZi>)5~*mVOv7tAh!Ok)9yZ|D8q_9 zk*@Z{Q!X(rJ220*xTHL3*`ZNxvMxGq@#7m<4yJ|OgW$>E0{CULB4PgKic#lib5Uh5 z;fb#=#vf0NnS0M%4}V-NS`QLDJtQo2aD53FFx)+~m3TbXC78&?6o<5?^{>od3JiBj zJW$o|!tWxW+=lWcnW(N?0?W`mgp>83T0}%+OD5A>TLPpXt}bgS9}G2HDVNo}&{=mbCZPp= z-PKy`A?s|R0)+q?gnrVmQS)`?n(*?0h%Y+&{Vk)DYfU=Mbs0jP^-|3Dqi&ZJGcG;f zHyeF9v>5}SWu){RX=`l$HO5`2gkDSwNMtKO3iOa(f4+ND+nI=xp~C!MUANxyXa&aw zX4|?Zs@Y$?PIibq^f`OK@~<&^AwaPgXOF)Y0@+QPbNvHk!Y{{t>kN}`y{znA^*%*e zYdkHNUnMra?sVs*Mg1*z5dNxkxYSY@;-yal3$4G=sC|AZyIm;w>i8@LhAX-pY4ZMra=6mr>tcBR~A=s1tn z`p!6W*}aoXEhO0Pd1TLi4$K1}8$iy0R3Z(4)4c)wHOxQ~avf?x%GRk}i$e(8I%a7V zq}Rl4Kev#BZj*PrlBnMbX>*+JdJ; zFzGz)ksgVL6C)2fU}`I!&Y_htC+9&VU}Xf=0_R2C2B?u!6_VliY7tFW3EM|Ur<&6p zo5>FCn;~U0X_w4*-sf*+?VI0$d?^_naaVYTVm8yglb!LjY$-bak=H+!7V&_1MD##sI3swiIc25!fwRw)Uqfrx(129 z*9U`MLA~7AY>iZt)jOdYHfi~aZ^LB3A;NgWSv&!F_-`;xP6`k=<51ulMKZpw5f+1R z*S{%u%gam6$|bB}e0;aSo%>e;QWj>*-F!b74qvxM53vP!x5Cpm2+&DRx)Ids?4$pT z&=hA(^{#v0F-zQ5bsVJ--XwE!@R!~9#m1WO&hY$iPOw)uAqGF%4*o(ld?kiDER8d zUvS0_u(y8<;A`_pxPSg+HZYD7m1U5z7gAaP-^0JsC;i>I&-Jz_|?zxSx)W&s!E$CuiWk&t?qRGer9IJThm**@n$LPMYJ~c972#S z2RaWb>ISqdurPoDekUOPSzBdowe3yYrjm9;jkEOunvb=QD%E=Z|A_VbPRZ0AgWTwT zkTDq{7ua#Nyql>$t;^@HdX|2_pc=dV&h|GVhK274ud$F`H3(1TD8+-( z93N|R+D|1mSljx0cKJF4BzCmeFpRQ~wj0>Q_8&Q*;p?g!OFr@ZA=-}yXA1-{EHEQD zs%@<@Ij!DdDc~IKKxPO$QcrYR*>BFiO?DC+Dkt;94z^=$3Box; zb5O_|LM*xW4b5nNa4FyPoo;P>K%~~%AP@Fslj8W!icTA;?*v5zX^;Tz<7FP5Y81dG zO^N>UgEb?hho5yH`w4b((6pD@Md8)lWyfpks?1AGr_njH_N?f?)=B&~Vg0|EAo}-^ zHg5k@%?S*2{Xii+=uOGJf}n0g*5<=KuHk!%+qGm^*tF|ztxgi)vVRBM(yMVm`d$aJ z_^|)Q^}+(mYx3-dVrsw%?!^8bZ>B-Q8VLFy2+mT3AbK05 zOKUZcR8=Aa7F;)26ltKq@<||l)qcXsG}XzWExpT*Z&t7%-uon(;DUhE1Df#AzO;IM zb&}GOGZjwW*G45D{G|?qo|q>HO25j!(X@-_d8^OL8C$Ee3SUB`+qtMK6fJx^ zj~Oy2$q9QMZfQ9WKc7xK7k$b@u)J-bg9*pQ_q*k?__LBuUBouvsYI4Ql_Z-3OnFl; z=f+Dg^Pu1#ixFaj%rU_E7#$*4#MNlgG%rzCT5)1s1rTP+tS{fSwj=^Df&EbJ?Ff)o z*a)~3Z?Y=X-gtroH{a0cSTe{wB%FI-xRlXhT!kw2x|pott-JB1;dM}}JrksD!o=8L z4OF+l)Vb|hwf+QIz-={3wLSP#xALo zn#U={J3A73<2f+m>>;c$TW%CH4%);GG|~I1!j%;D;kkO8$i1&xpWjxl{_5CxS<;5$ zo2dT!I4)Cw^e8c~zj))l%;qpF9ithjOOJ#&r{U5}gR0VMDl)qCvv+AgdAzCYea8L# zV97^ENtvhC&x$WO=`v1WL1(4}lM6gA%7~%amSdV9sKzi!vmAPDZJl9T`O44deyi+R zmyO4iL&Zl7NO&R++M5=Jbw@yo0ZXkE{0OquX&aPG#)Uqp%hg&BukpK;=`{6Y^iCmX zi_`ZL@kd(qY}c+7=WFlqYb@#JUE;~Bg6~~a z_-d14<0|ND`Rge1;ZIUh5{~NiKiK>7Kq&ux|EZKMWZz;GvL$5+C6k0C$-bL}Y)K2D z#!QiY8A~Y26rqU8o+V=!D%rCevTrliVU~WMzW033sqa1C^E>z4d(S;ffAE;cJkRra zKHGbHy?=zY{srZ)1Nc5`HOIsPG{gkFqIO?z zx*Vxu&mr-?PUPM4#e{)#Y=G-OCr;NJ>$y&eADE%NGeo`v^PbkEH3#HO8nkn|1d{(p1D?*2&@~iSsH1#2rGktSRk41La zFpP$49*QGYycB(YeNgCgZB(DA59|&1CRok%p0pNocoB@k5xr60@2Ft#5+U9zTY0uw zSbqJAaL<&;y6F=ql`jnX5acsMJ7Y2v?Gq2G*c=oEE*(>P5U&IL%Tef3NWMvww9^v%J9@J>)i14d@ zvFUgGZFUfP1BxgM7+`U~zh7s&)460Ln*kssfpFv;Nm~yp2f9v{iSEV=bQZ)`U zcTz0J7LHA6miKxc&pj%1S-i5B|9OdDteF$D;^_h&$k`B5FvoRd|Ij{)XIcf9dHr};Ma8Aqd~WwA^ipPTfDPmSUI0KMPb(*)o%!k_lQpM z%X}Z_a6`}Yh3%pW4FzS0Zg^kp;!@U7Rp>Ix(Y;AOzWA}Fqe+b7QIo7bt!5Y}Fkk16J{C#yQv z%W{3zKB5+OP@aRqUZf7?0qw_)>rjN`03$KzjVfk}6fxv3l742Z$f_w6VT`Re;=Lvo zsV5fp@T`{L86!GZVO>7q?Ew&&5pFcpDldg#Ok)TlD4P)vWI3l#_rn9?&8l!!*FAS; zR1_uc(z&c+YJyl)+oLdCCHHNhcG^=jaHAzKc5ier=JiI%VkHZqq|v*e7kOyzb#eN< zZ1B;FdqoiQ;4}?Ow|gF%FOoe!P@Bv> zoTXF}m1TvN<~QpWyrdT4`J{T+a%j_mN{Mw7Ah_NkyI}cE^J{omFcJurfXfuyPJ}96 zNd35=m%f~h*^>u|l{2V9byqR}kMlS5jwn`Bffpj+?6+=L=SS7Z9=uwq!_qK+!a>7W`o353^!-ecdXZ{&AwH+crOk=lH|ja$>CRYdIE#tLQPAgp>;% zUIQ};w+<%pyp-A5tg`c-O0$IUWDFDy`{rjO!T@=?#N8rLi`*IS*>r-fu1csN;(VtU z*??`DSmWf$K^LuP_>z$QblWNxjT-I6kYwStZJ&AZ)ZQ8xp9^%4k{ma}gcRgXjrUHs z=-1C0pn|F-l9Y|aNhw|qDcJ($+GTm96%CETn*)z}&=B)i2xR|P$e8g!kmbDcyt(o6RSU-S(zW$V7C{eUl|8|Z6%o~{wB&MbIrcYcQETQU}wnVU9Mrd z-{$oxBU}4}!r7Bi7uX(__%yv<$+Zh!C-=oB$ zH&)T)Jcbj{cxngKQP;vFQMo|-dUy%gryfm?`;r7R__jjUuYn;prpS`ORH7RWS$B>< zi?$%xu16ihVAZm7j^^JyHaWHst@5CGWnZJQ<3<0Pb8MIXOKKOufXRWmw;QmoYJj6C z?kY?O*+M%;V5>)SQJA~eRI!yp<0-OCz^|s=>2yt4e&a~JeX#0SQ*uUv{Tt0xp;VlU z6xbJuOEhyU5{PnKvTdV1RLZ8l#=e6`p$ZM^Jek{}>GFuJp&4$qYz&wh87W9I>Vict8OX@Uvf~t6{ zH+;wIkbGVEe4tG&Wufxx<0{)ccgK1y%PzE^MDMfHwS9P`8J2-5b*2b*lND$^&_WRR z!m&}r32b#39{*s2d0C%20r9H%6AAt4e)@8K-E{4V)lTuZwEgI|!_<0fpitOoKb#~v z)gUKGa=^nwtK^WtKfMMjj9__V`%Ni>sBWaSt6D2b5imgHfdOxr;;eaYg$&hFJB>{JV7G>GJwFCGZj<^b5e; zrS}7DY(49_*YTLXtUAWb6s(G(hyS|fRZ*F~`x~Wi3{ySyI2Z>`LW@icwM2eZ8dTbV zr%hafipW}aBhIcvzyGvRurx|(g9=eD04mBi&mg$ zs0N*nATd3Q@+@%u9`GD^qgJz-HgPnDcCxf9u4IEE@D>jXI`-5wq%j#9_UdB7U6@lj zZKP|s-#$j$;fVu^#NrREo1Gni*i|k9L(qjqs|ylR19L%*L93F0*Pmx@>pv(hEyb=s zw7zno@zvsII=qI;t};22G8-NiUPX_p;iIvTtQ&{iH-j?7k8o&amd7xroBGThVU*=PGfqhLJVOc~9Du?kR-@!dQ<%;@- zk3PY_kFsanmK1+YyvXjP`pM1m@lUAH&XGQpDZyvndTc3r_()V1v3G%eOb@fiW>}xW za-tyGl1Ki$ZhidQuAzGzS@aN05ZEwEF@!TqXk|FT6i5@;&PwQb#8MEdSgicSRG2r5 zgl6K3PUoS9*+0^XQ;d;rCjHnHg@58JM1t)bsnF+!G}O%bx7Ij<4{kvSi_mJXVx=|X z*gO`Mu!0oR9{cXa)f`Rsox>^ym^anhj`xNs5H zy6Y9+-N2o2&OBTem%Tg2!%f9K)$QJSgKHE{+mGS@Zkf|zK=xSK7Q3y6pr!-Q}CjNLUm-z1M&gR1XeYTvXy zQas=bvEjJfq*?2``oABkNJq3i*5R8xrLZ^aS_%qE>z)8Eh<2v4$tuO?{s1o$hd*G|{HfW4s~ zlz)xChvfxLqbGSbj1(DA*z0IqNuU;1UE?rcO5M>7Btu0f#Tq}CE4~&bd}hT{>=d4> z;JMM}wg=lY2ZdP~0k@4#Aj%y^QmPv_5BGYq1HV{C)}XakNp&Tz^Lu?B){Ed#^LxL~ z++FV(N49R20$qbce>Js-ew7W5!4|KbZzH!d%eU$@ z4@F;A=4eS9JYBPHRa+2QKJ~uw@HW^HQUr~ah#pG}%yvQTgk6@46h1;qaI5WdO}d42 zdK*=9>FK$|)GPBE=9@>KT}ru889RWg0bK#A3-DA*kPUqY)~l#5Dj(7me90dK%)%Mu zr>~!T=9K91JWVysh;M9Xm*NkkdngS!sm`klv;zJfRq7Mu0iBn={ftF36o(vZ zHW}TZDqUfT(Bh(VFyAV#&Yh=rapm)o0RRic*60#LXp9nMA>iXs${x0u9bs3qy-{8o zzBIofh*CTBIoDpcRfmb=S*T#&^DB}UpYB-5{+3`J*eEb}h7>{;oZ}qyPpZ4^9A0ev z;)8f~G{bZG89Bl7xMMm(HA9h-LvhMC$@f5Y2f{7jp3d+lYl0qGhyUMH9E$+@(4+z<+-Rb( z_u`f3r^v!Kv<^5OMJa;(H3ui4`=KE|R$)$k=*J;vDyIsIKBJPxWLWrPtvvmz;4fyX9y(79U`|r!X%Au<~7?(M1 zB>9+8ttfUfVf+I3sl%7)=bb4WIqL~Muq$#T2^h%zQ5RVrs27$ZbQf)bgCFNg>oXtH?U59TgS65n%to4&7cl^75P#| z=f2&{a>@HvxHT`iWW})L7s|~8Qq|ank3>IXjjf2o4&}!*`=nJU# zji|BXBzY6%#^~pt5aT9~KV0$>;vrjy)K0WATuzxMya~7VW7ZN8;g@}XgQHoDfnA z4?eob?RH~|$F)z)&4LED+J5GcK*d;to#kcxQRjlrh!<{o15=4kg&MPjD_wjAybm`%@!qn?_LP=rRr;%VKu*9}z|V9dCqYV~vY5|y`` zUatIf-+ADmARRHrpXIh3We+orv6+}&k1K)J!w2B&F`bK*O5;mmF$SJ#zE{UMJ+C`? zs@{K;ai2oS*4%AI)Y`YQonD@0K>sF=U?RuLHUPp>-qa){M_+&OdOX2dFQU;-B<9@F zfrKa6@MG&{JUz@!vgWJQqw?fr#V0ola1;vKpp+1)YG3n<_%VWyl1o!MKlr^ zG{b7w{t#OKT|DvMl*1 zPXhQnaW>!#cpZhKMOl&is~G?DDf7@OmD>t41<(NG3vlIT=kOm*x8;!mhdLN1#Q`8Y zmJCR8V=_=CiqV^n3;+)FG^#9#9%IOBJUgzJfhp0XGCb6$n^ywVWT8$&x zbL~#L`%$E5`+_%%`fNYhpepE)Y@Wx2rTv?*F8O1};`lAkhy-ZRvBU4f3AaWl>>)G` ze}Sp>Y?Ax)z!$FhVz50$WQ!{I6z^^OyH7>yX>V^js<3<|W>iNMdLFFn6F85yaJT?i z-Lmd@=g3N>Fhk7*QHDb_Ef&9B$+1d>B^9{e7+i3oP zHUKYy1$>2E^z1`7z`51@?yTF=*RBT}GO@2mogF2zJZCz?qL^pOb#2#;ddW+W6IQQj z`zZ2+k%keLqo6_~n+sC1{Y#>1f0Nnk@b$juQGtz8gLCr&^p$4D& zA-~RsUyssN`ClO-DcG$sz~j>$j(vrCcVLe82DhwaIK*TPOJD;a zN98v6dV!qJS(*LcGb?Es+}q+c7`MwRXa{Bcgs1=BJRbi`&)e2VVfw~r0_coD*gCoQ z8>7i@P6R&u3K9HrhYyOU)Pl<5oUecF+Hc1d*nsG|6=7*1pDgD)fQN^V%cl8uo{Ous zDFeVMRanMV)!mEmwTJS5PEUbNli66@I;{!=e1>?QhS9LrCT{hHuFBnH~Vm zg7vYk*pWgD^ocp+hn~~qhz<3`v_XxVN1UVETZj(>D-Q2vyqvQ4Qq}CAp{iL~>Zhlj z+(J=rc~W=%;{E{6jTm(xVQo{sLNoyV@6%TB{#DKqku({w<5aK$|B>YX=_dOR`1~Ci zB(Qyper2uLVJZ)m_6_#e+CQ zy+_d?!q-iSm>`PDFeAw?*B}p}ObnbcE{T0L-CM|SHL!3GfhpDzOX)utGIa0_-2wMi ztG{m8cC?~AP-rXM{0FkEZ)YO_yraX_{KoX5=VPX~=tEW`qKwGKZ?6|H)E^eDYCH0v zVw~aLLxKz-4iQnNaAsLk?}K3U@eg+ZQboBD8(AJt!Zq;%Kgji+?;BE&>&P@-Vx6zP zCZ2rddN?`zN3N-#TvC5#fquVf{kgw?lNPny@`FS34Tu)jpyb}q)`0y>I1muMwWWUg zOIxxTtRA{;2F6uMpX=*vR~TXlk}@3BQ(joLRK!gVyY#E>L2H|d5_7{PcdTU581xB+ zV>+PIeaOUXo>Pbf3&`2V~DIr&d}|4V&-~WpoebMrDUH zirs@_Py~&(&*_a@@CbETS~o@z0ej(lXPkFoXHKh{z|ohk>vxuzr^6(+PNYBEmVV15 zLbCd>p06^?KoBwpw8D3z3BD<0OnV!@S$v1(`%gYjBaNGTeV6cioj~1O;&{;SY8Su% zGXLYO2tR0*-8n5tS)d_|OHgkZOxXIu#t_lxoC!2%1u)jxej0z^h}hLzhu)OD%|^ZN z@fEV_);rt{hUqtFmMgW0b?q4a7z*baxX%1zD&f1Cvd!AE{S`$geaLkyD7SbW7OLHA%<@cf32( zqFQXMETm*6hn_XdtL_Q7w~IP4Ml}T?F3&oYa22nMup%Ki*A?pvZ{RuNcFc)dcr|*K zkxTydA}cFX3{#8-BtUXU`kxUT+W@0;-$1ishnV5%jG>{DY{@Ti1}9IrZ=MDkXe3aI zu>wgHZuoj-KFOKTVLfDyhu>S1n;&5tu*f+xe6ZWLGU+Y*i`HO=32Ur`{lUYRouJ*I zLL>Wg$~l5|KK||P7Fj(_;?BsetLd&%#}DOZMx`ent)br?Sv?x~0qKiu0xlV4kmj62 zW7>`rtW@xOH7j73v_lU+!Z_PfYDN?8;>V3I9uGeLg+24M?*2mUdfdbJoG$dhVxXe~ za#`B~be|N;A?MDC%RT)D5yHnTieY@i=?5{+F;dH3q#@rU);X`mI0SSO?n#@lRs5#- z)-Mw1JJs^i_rO;ZpHqoVQ*S}Z=L~4-A7}BODh$8NMQua98_xozcnuAWN0C9Dq~4eF zMTT0wI_1BrrT^?l7hm`KQai5h#O1E6hfiO!%IC3NaDN3@7y-vb+Y|Jck#QR#?x?d| zlS^W*Oq~Hmmcyu8S{H8WW7D!HF`dS{4s0;>Td;Uk)HN>?>Us2XvcDVlX65%c(4ojJ z=+O}KC;%Q2pdi4!3qiTIfx^Tl#E@F@(mmRNo`VS0@om?i+qm}Ig}A=3X@1#6{#?DX zFV107voh#BecxbeS|M&Uarm1zJsP1w`hfT3MK}^2Z%fo!`%yj^XcD$6zf`tDM25@0!~F!=v9E zliYd&o%k2;qqpM*p~_XthjVK+xo&Mr#|8!%+>CSI6)xj)>WEGL=SHI&J~4o3==48? zwERbq*x$8*XI0h>#X9?G*qWR3ibKb^sm1|X^qQ;CD9a%qKCZ#_(VO(m*^+2o@^G|N}h5_ zD+yAmxzXU_AfU?*C#)JhzB>c3G7veK7e^qr6#SgSJsbrOye?-;=U!3s=*t zilbc|qg_C4&UcagwrAdnL^Fs!4v%~NP1GIz%kr1Nwh%@JCK(i{CTMm^^4*z_e0h>@Rk!=>+hEg&5cNwp&grn}whRWHeR~@F@lNUQD-^EZq_@FO#pI{* z_9tQ2D=~)R7$g;%xwqz~IzXOXu)n~1*UX>WWZF2e((v)z`LiANT3lw0;Mad*UEKEf zK4)i4^rY$V!{*{p(ra!%fGrFqoacBxL2|&e`~b;5`66*A)IC-xxjY7ksTwT>DwYG(r2i=|&H{T4Qv8V!b-`7f92^pR$A7bp*1|?3Am^pnJn(xCUV2~)d(6VtR_J|jNl_m z)U)lKMT>H{DxNxFK<}GH5uk4 zx80YwVfbiIm8fre-E9-Ia%||D(O)~}yLub1!g~q4l;~q9sy8>cI{maQEb4Y@ zD{uhazw_+xJ<0!9p2v*_jI2b2CV{66PmV}wRZ;q&?ys&Fp_?oi%45+lPb`mlH+oca zJA(-ONnt&*C2*OIZIvby2+H`?TlwRTb|OUMr5H**kDg?T%jQYxwj*CwpnPi3Y5-N^9h<7h zg$g80H5drFRB^VO8^tROaOSv`*IzPw|9Ma}wB_kx=h!|yN^^_`Rh5bcE~xt>g+BAw zJUqQ{I|fJ<^@(IbvU`KL_wk@ug^=i@hIF!V=N+P~vm|y1`y4%xH#|!@KW9I)w50G1 zEI(D+XW;|X(r+NSDhBrxD(oE2Bf^1?w@v<2pdB*9^G~5>66T= zwCATSVogn?UsOXbZqu_RL>TH;JiZZkby{2N#`72A=QTv1%~17axlB2JyG{K3{2!s% z|4u(}PvDAr7xD>N>neoz$))u;Arh+gnl!&?!0fp9#5>4i&8sPy4=7ppPo0RT1haTP*BEheU^F}TqoR3CQT%-tP;0(Z9(73vSOdQvRRmLUUyPO=c5aX!9-(bXtk z3D`~7a;K`OtU6a`PnO)=a)z;BzWVF+>36f!@6tbgHQkB*&}IY|JzJR3+NzIeepzt3 z;9i+&Nlcxnis-W}L)#F^Uw65m#~(%Ef4M(wa1A3-!>k~mn6Xl09L)u0<1sNlHvgQF z24{%aT`tA@+v{VtN5-9jIQE9p-k}I)xByhCK@*JAcLzQzG;eLlymozuVdBJme}B)q zoZ{)p!R8X(?Fu?&B|Gb1Xdd-VGLl*@eR-C{ZN|l4)&{m9K|bZ{vu;EZ1ayALgS1b= zLWJViCid6Mf3sC#%J?&@H?P^6fJb8zI9yIKqu8x{)9tg5;oIi9Va5Vu<)5J zCNQ$Ux;k!X!+gp;jI!C!D3)!K2TJy7U+0TTW8Ve zNb`6++{m21Yu2QvsOrqZ*86=Kl9awlSUz9{=0ZTI2?+X8G(Rbzx4}+~kQ&RA;GI2C zPs|vrdk~6mzErzUpzuhmd}8%S`Yb~&p9V|Iy+%Ghz?1(FM3sLZZ1B(Yzsjt!5lXZ? zs#lC=I@>(~rQ98e&k6dnQCSGU^JKLmAlxZ|5B4^Gh2YL5a8 zjFS738%g4~XEyEjlkn4RneUK{Ti`mGDFfd>7g2R;sK0eL+aEdHpb(rcK%GX6}^Y8yOm=WYT7%8ZZPIggnK_B{ zMgdjA6?F;9hpN#4k~}r_DCznrjAu5Li>UwQ(sHv$9_@oi-ou2#%%Rtf9#gwbmLb;# zk4~7G(LBM|0aS@#tnWi(7y*dUU6q8XdWJO?wrZp#PMD9l{>V>IELpr>zViC8qQ9A* zrCtc1Sp5ow*`u0%txrqK!JjqDiRD94yN&hW{#LGh6|V$7NBP(qx;+{~ZdQMU8&RBq zmR*fy;uyAMYr9SOv9apsr?eL`WD3clgb)vMcWRLKurL9 zk(ZX1RZV5iB4UmET++e`Xs&PD>4HwHf{5KxW`c?&I_AB$=E^A&nzSAG_X(anbkhsnHx8(m-1G(^Xgi#WLKih zTlw?cKHJaGE6pdYI8(TH&=_Chu_URlkm|Q`HK`)qd6mbHM!eF@v79X_sr6e}57u>H zdY{grJzu5@STTG0cj})Z!foz4n*M=ddU}P1L};V5ogbFERUtDk4B!i0he8K*0i~m zR|}8tKDLsh(Py?~i>~q*$gWRlV0-00uh1CW$ttu)Hh2FtlJH1_uvn?dS4h}Y*k?B% zjV|^o#f$rb%G4SJg#9FTKyA|wp2^PUHn|8n49Qc$yM0(OO==dpQEwbRkp-w;(htnK9f7~ zCwV2Y%G6Yt`$#aV_^}lQ!&2##?%Og_yAfgk(jfDUQ!wMB9WN}8lxRu&`nF2d@V^te zttHv47PTIfxNYk9P^YZPe+_tY5edDE|cN!vZH$i2np^)1_v z$@1xZ!*27G$JFpcI8Ql}By<5zAdd~o`}Q^@qwcSz_@9;4w0Yu%X4yPzkQ|%YbvI1Z zIV!6194S8Q6fC{`${z6|sl6`wO#(rthCvrpAgtBKIpo9mXL1B&!?l=hYaZ9lbVlLc9! zS*j{E$>$?S%bugPvF`w*l)<+`2luHFC>Js+2*$eV&s$f1^=*d6oeWaYm6Quz#n9tN zhbpEB_9;KP zImS&PzRy1%N7Kq#d@M(o9XcKv_2%Mp_N_9oTHXNd8{*4LW5f|z+nPFjTkETiknVZ9 z%VPVr6{+%K2~1~lu4Fu_p+n`yHX2$;$HGyD79BO6fs?m!3T_WyHd{M_&HL8ge+?(r zZceKJhrt~;9p6T$u5G%2SW+&UU@x=eiNMgx+lIc0Ar`4n;hMliIX@smREwD@rYX2i+v zsW-3D=d=pS2|{;UdHn+B-;@L&S>ZpK&{t*2D8-3@f;Z(v)m-w%lB9JOEQZ+#xb=*z zT6oCq`y~Rq9=11gm3I>yxRURGiV=K&)gf%})o8$hop=)Ei5eXMd^)0zFv2-_pC^q2 z&F7k*)rbx=Yqy!pl@3nQD8l1A_k4vg8fktg!e>;sGQ@nMpJDk9E$~Ow)vxEiSB(E% zD=g7s1YmMBi)QPAN1oU}RQ@@h+^g^O0wQIM=trH0v5*@)E<`?5{ix#Hg zQ~@8u=p_0sO@aCnL_nr$)>HTQuC{T{esVPzmMptF)9)W~e%R(peoGZ1@coe-&ocob zvTqjl*dE3M84VHC2P#5DS!N@37O$Ury7U4AJxr3rWkVV&7=W?u%pDphy&a~At z3vhXq7JtQptaiR&`{7#qW%4MJVE%xlvo1)|9QBMU->840jGqd^6Q{xs=}*uq#Gj@T zC-!ML`YH1j=IgRA&_%}RicN)P8M#WH9coQi(HeG}TEUNkdStx|xnTcvBPQU&5rB9< zv1L@D0qeW9ZY^W&ed%e$olBXfX4N8^43YD*Ds2mJ3i}3)@#Z&_U;#-A>uWdORGO-o zQr}CQO*#_6U6lX&4g2QRi?;8lZXZ1RexWVyx%9HkT(-2!C|-Z%DmlTNTPn}?8-}Or z=1&mM|1h+d`yMcpvB5|d-}7^JM4wPE`0nWvH@iCvM(fA*eDALLF+hWmcWCW^Bh!3- zg%HtbW+it&-i{P$wJD2Tli?F+(|;ZDp7CIsuKD|i*^5r>+AUfw8o1M{oBpP_JnC|=#lVfTk=xAZ--raT=v(n)qG1G6!0LOv2~#lA zw8W1PBcTYBby~e@Qn#)+_aZcv`;%?(9WJt<9)$1#9qri9u_7(IF9KdzY@hotp0Tdk zEo5;Xs@7@DfNfCzgGUZ25jBrx8;H99>XTNn!$r+;@1lbslk430mI#q|UX>8i2!jrc zCFT=0>W(#``}<`yUcvjBU#6W2WN10~==3$dsM%-ls>SX?)|>>j=^@u33pO0J=bvMZ ztZwNzUOy5*9rRvA(1SS*47z|rvm*pOeu`eMJBl5LKhUG*cgD=bI8Y~$;$H_jp|xOq9lf}n*a=6Do^U53Ww zO14CH;Yz!1H-+a?T#15sY-n1%UXRs)fwezpoy0ZYtNW#MnAEPEl3!dAR=(s@AO$Vw zy6`Hy=@C;gul{mj5H(9(n3ObDI!_&2VkIdz@TM{mFXv>o^2Fx$-*xO<%zro%gEXp^ zad`6Tv&blV3NwnK2yT+CkOOc|Id6l|Ruo>vXkuYWO>^8dl@;RRO!4t0my`JC;Lkt@u4C{gcn0)4UR_!JaO?x!t@Vj&=2GXAmk49{oJfc12|-Q-Jvshyiqk zqU-Y{Rf$GyaPk>c1Z`Ws!wX9*%|{5^Ol@Vpl4!fxZDnbqliowT?-5U*LNiASLl#)@ zu>QJHco3lW7c>E6WLXjOoEJJ5%>xVz`1hiAhvH*DE$2mM#kgQ6u{0LoYY6DDMb^Q& ziwy$R)sOXL5Gopmkr|g{4^CFSAuMKaom*_L<0y*SJtN#}O7H&a>d`={OLt*@Ro}=9 z1!2xh5ztcjeURs$Yfy8Ph&W4ll{xpZ*eSfty!?V%M8&(K3yEXfm31Wh` z{<)lj@6Y}F<`=*L!-El=bd0_pv%N~jw*n7pA_Yt666u4y1*7(_m=oPSr4AZ#T@LTy zsWIB-c`~l>Cy7)1{-^VNNa}*hx~BpfTwX>DSjtT11Y{F@Ngh+c7wc zyWUODoD{l}($t*h@pq=|WGpbGVR};Lp8HvZZ5C~t`a}6SI^@2vxdSy@2nO>*DPL2(us6!B*rCo%YoBJPzF?>8nT#(iV#D1e_%ATb4 zaxkYNeFtcq(6B-`BzI|7K=YxB@zy@4uFR-X_0J2su8kcxI5aq-D8dZT4iD}ioBc1< zU6rpkb`cM;PlWfDZ8niXB6m#z9D=$$bH&?}ALWLyAS%7kk$3yB?r})!-bGP(Q%Ot=&JXiOvFlIF)O`pNkG8N6iuf4hxVI?w2164!K&0#uf~-a!B4*X3Tc zW!nLUrUER=KWF~iX?8n05XtvIuf5?!YjQ}#Y;Q$?s*aE(OAdg zV1{PX{lne&QrvgGV?QN&oc_H$BUOM3oDiekxIoyhz&iA6F9lmh=cCS0f{grjw z7cS)&6x}&gQ&Zq$HQkcTt9$T&Hn#sv^YE`|tBi63O`)9z^}R7?(Oc}H ztl4q!Li0`k7q;TX#pSH8e!(-x>O{^f$(q+}73ZN5<#yPc&WdKrnc@#DKfXJCj$|a}#S%qpw&0OsXD6Yf*fZw7>K#T6V*i(*=*grq> z+3|%bCtv$i05UPx{=itu;7464MRXfjpt5ol_OqTOY0pS?p}BJ2up$iooVoz#OnLFz zMB$)PW9roVNHO=QWt~II*&idqzNo%~Uh$laFI-$y8#Q}o6YiQ|jm4Z2LmF#~h4ZZ(1x0fwPD}W&K2zWoq!#KF5+8kYP zKWKQWDm)vq<1)i4+6R1?Cg3{6%+g;{;Dt2^^y_pa1+pxt zFYXhm4yC9Nnt~|C<2f_lLY}6@B_Fy63rc1nx5OGal|M}Al$@w98I04l!~K51{nrNn z8wcLG^wS*qp z9D9*+g@7WNZ7or^FXE(OcI!E5uPDi z-4o?{!YN+u@06tmBE#dqTT-LDnPeJhofya4xc~pk)18}Beq{5Pi=cA?1);>e(&QVKkxCc z(H|zqLhh~kA8OBf)4AvntZo@jNFRQ?^@8-&xy}kry`u}>GWo@%vB!Z}`RWFlA&eTx zu$ULN_;*o`{)+e9mNVM6TRCEl^vX+$OVXVh7XL;b`6L=BLgzv7tWrfvD#@m zj9Yw3w!ouXu9tn5UR_g~!w}+UaI1Urzd~?xG^L4gnVuj$P4`dgqY&2<5D)KOofvym0H-jqGG z9G(0zz#9t+$<(sAdR|L{yGA=NzmqC{Fs`2UsaL`-A26Y7<-oQ!ze4(~DpTJggmllx zJt$RsZ>q$U2rTJ;rU?5#KosV$kUGCaZA|?gXd24!wFZC;&-uZ`O)uvvft{F63#Up_ z2*3L0WZ>2CWtEw)khLx|tv@jwg=2QC9>O%fHE;si0<|YT{UO)j&n960L;SDY^S+f+ zRnEAJ=$o+1QS5^{r;LDj=o0o3UoJBp|@ zkNaGLTA6YG3PC1OB)`A0@mdRPWdRBOV&3ic6>^+n0HOv#xG}jc2Gkb@94Q%w_XPa= z0np9uaaB@{Qk52Px9&Kdj0ee_-H*5UKk zu+7zCptb1HxKNk+Kt<#XEOiS`NS}Lvn(C*(-l^x9Z;p)pH+o2?R}$P6R7Z^QH^Z*r z>WSDN2P*wHO?2-=eg8t=PXu%xFkdk41Taclx$r4e*f^X}N&y3=!A7|Uj8IOU-;85# z0jM?f-Anz@{Wj@fhV|lU8f#X#kKp1)-1lRJ{;`#RX*#Kw>CpVKb(Fx_V$>6wMAQ$1 z1^uywcCA0W(D&W%e*;Y+!$UUdf6k;ozt;ZkW>V}7MqsT~Cc$+wd|7Q7&5@^*e?g|3 zqBJIh;+iJfSx>db2V^aYvOcBCgprog`}?f^t&*HNoVSZ1sj>E&0*{#_X~pdw7W z+wt0}dJ;ykn|uy5rD@=Qy)E%GujGe38FycfMp?Z^0fa(Y^X_<-mfMHt0*$3^WVS?J zop)@9Yq4;=XCtlrnf(>3Og2Qxjro9lsH&;IamV0B|GKrtVt?)#KlhBE(&wih^S`FY z=s6Qp>UlbIbiIXY16$N2w|#|ForLAyq5nY_oj}UFm|Z7HyY}=jOa`BpoW5t_bXP5U za5X0@G+kBljuQ46=QFb-H>Pe2rZN&E)fL-=y4)w;WjW@@KZ&Bz=jYf-0DMeB@Xn)o*H7JWgcdx)W~=CuAZ(Vz)YQRE~gTMuBOVGiEaqH2|f) zv`etFlMpg`qQmfc^&08Sd8YGI;UIAEh)7S_YWfO6b^gMfsxZd3xrPQF#Vk^9v7yaZ zNWbYFxw%P?H72C<|M%-U>j`$PTbm(WQk$tVzz}n;hpx;)L6Il}Kt0RV77Cl{fstvL zal391nfT?t&5VD17xYj>LS1lu=omD+CoL$G37$Jn$F{}5B*PJ z9*yCC^L{Y=IZ`0a-vR6lGc=_I6GLi-c>%4;{%3Q)joQ!N{o`b~XJa*sV_oYSnzS6! z-tp4xoi{~Av_xirqL9nR?!uGw>=rfca6KFT>V2diR*3}Wtf(x8dIvTC!M3Rux4B1g zWJ3^yLESp}Hm4hN1|y}v0D}Zdi*zd&crlzG$9>B&tHw9w%Zp*jl zS^-e8%K4B2=@szoEU2FPJH;Tk|97ABJ+$QSPk8aG7woS&{zxtMZ&H@VHmeR7WJqe$ ziCcCry=P`DkS!^3mr(*{1rR>LNZ=QH8q`K56t}85Nwy{$7^kUN#o09PHK@aJ4v=)} zbNp_^>vA-`Vx`(=jDGx-~a5opVQ{QF>RvJwKxt%9Pft- z>vzOKZ}xK)mLa8L(CVHwUshbE{-^=3t|!+(W`3-dDx}eOH`^DjJKYIQ{qy(~K|~iD z`dnm>$}2V3{tJD{_Bm&LA~$r{z7I#C@4}X4?NGgKw3Z?S5?BguZL})Xx>@=t8zsUV z^NX0x_4o=ojDmHw(JobK1Jc6HJxYH>C;`M0W?94yz9>fvF2;LzCVqvmfCzhR8=BPn z6oj^>AOB>P_%&^xyBl$o^i4^@H8-9Q9$ieewMF{bn zrl+L1kIPQ6>7_Bp=^**Sef!@s)A+aAXaT&ijasnZ|4CT5$63s>SQcigoNXT3-$s%9 z0HygC%aPYH6kAXy;ZL*9+xquz5dCdqKeiOUd=OYBKME7@B<2+zU>JDl(WqHpA-twI zJO-#*)BA3Ig&<_1gti{k>K;JTP{k8*k&LUC`+1X}ee!dj{Gy2ci>;lWtl%mcS9Qrs zYu{9Nzd<~QH#2TpLsY%*gFUJaX88>hHAN#?jj8$J4-n)+&H5xfO>b&n?^xx@#UiFXVI@ncD1wT9h12a`CIczth_=+ zjx3AVqHs`JuuOEMhn3U@^?Z59+XKB0Db&=jknt4|X1M{I?4A~u_};x`ha#W&3Tc{r zN&ABOkn>3m5W?;6dG-}z*MXWoPy&zumDG`EiM%AJ-^zzys(Jk-#Qnd`|F{=nYzUYG zG*EGpEMDenZz+^~*z)1Bu2SLmq1DR1%euOG##Jgj9X@K%x~jun2&pNQ^PoRwK@ib4 zlykN5`o_Jr6EX&WefT*)@z{eW6Kt)ND2Koo2@l%-wotz`@(vcW%_55*P_jCQxOXfA7an89M$8o-o_whdd!5R_#ALJ8d z+AyU%IGbkY#V;3hhClA4l)az!G5KWN2`ceJ2`>%k22teW%vRodZHxT*oeR_f6&eLf zwRpB(_l$hAuYEPZ2oE63geu$`6=+@Q1|bB1lC4QUZo-!>Tp083z@DO<1^B{;owzAw z_MHP9B(AFxEG!zyRI^PRF8cdjtwiPB1OZa}erp;T2XZy<`v1$+oT~l3aiw$d-v!MU zngL!lbK3-J2RS77gL?r8lBQq?u# z(aK3d5>lO8KJ+Ain^&90LA!A*@vYMw0RmHS6mx7?Lq}e%Q^xsCU>=lqwvQ*))902f zU+lDnvxT@)b*jY1(?%cCj_Twx(1)6^A5?Qwk|C|RcqA$HnJyGU>W$h&-m5<~jSw51 z@Rs@PtQbN0u3_AEIBufo&ia9x5LbK7b>&<9O-iZ86(C=5h%+_?J|rR**Q|$?WnH6J z;mK^Rwy6W0ex}>ISe~zTrx-rgD_@Wrdo%2}x>O$zG9SIxcI65T{#vypnm~#oR1-RT z$CpVZiIu%$+~k*;tw%$T4NaH!t5aD=U;oHk8qKxUe!T3KPMlM(dlWS-)f3ij^3U<* zMg4V}r_CWJCoAE~$_gL#{?lZ|*qv@!k7+PiDhhUvXTWwE5l0}^5-ZkOJG&Y2bV)Gf zBPeo7%u>A~SvKG24Frgm^D>hh$o_(V(RouQ|0y+{cQC_qu9uLpI8hwwJ-*a8GEhs- zJCcm(cnY_4A1J9PK6JJ^`}^1krdQ?^k4>8S>({s5f7JRCazhA)9XOAc$2ChMN$)xE zKUoz{ZxD8OUy)gKy$?BLPbJ+f#({L^hSI}>NgjAuLwy~>MP!@m{B2v6SuIEt$&%D( z01c4{9M})0jj}9$NQH!t#vZ7F;>nZROD%8_yD6*Cz&BI#K~)FGU!*vXx4rJzW-@iy z{hFf`jC<`<9LojtBZvl%Um^VX*0>#D+F%&npLz$tde0!o{2Bc8-usKcVK+)fZz6ah z_cs5^Iw-Q$x~ufLv_Y(l_v4oV)-Usz$3JjAzT*I67v;UjO0dp;#p+`8zGBd1pR?l* zG-7Pg?tx$33wI{vC+oWu^qpCS+>u>B{5-L$Ec0(1VU`XZ9$$YVL;;@*p{;5LE7h{3 z_K%Mr+hM7e+6LRAreH1?m@7P{Mn`b?(clOeV{F(ZV0^h#d{8LetjU?5hHpj1o1Ken z-h7o);Cv!P>D$Ns<3;6`K}yzcxxsQ~QpVmLCYN-Xw@i4&Hx&OU4T5icmvaEutk`Ib zLDEWEal$OUA&^@Zhp(z(M_D|@TnEEV{xbD0@y#H({qojdA%0g6C;#oWO z8RC#X{r04~&$7{_mv07(HKZOF=}N^$FNq6T^4g~`qLmg^Z~Lcmfs!_KJdWm^3>n}l zlB^xxjQ)7CRto~o(xdP2sMT#CK3Fm`^9~A9u3X$m(U_JP_FEjkdDXvO>`ZH}^e#lj zBil?)8(L-!J$8Yi1zPdSIsx%UT>>Il&6K|PIq!X6`67MEi~|#=Q`E|9I}}U>q({QH z+C4+P{;QV~-vbPoveekuxN#(VXZm8T7VBOyav=`)V^6&|;LEWdS)JejvgwZ(C2rqv zGr}OlarpvBlZgLxK}Mqbf0=ESgv!_0XZ8P{6GXspGY+7OUJ0I^?(xUH?is|hF+hE{ z*sKY$AyI<-D^uuz{0^VnO#W{~^B?}|f90q1)4y)p&)$H0{Kvx2-u(o30<=1aBqnd@ z-kK(abI@6Xk(~XUT7^X59slY&j=cgl_dx=w5+{!IK|mUORDPxbRA2((u9EP;TF_EJ z>v*)Mjs7jKYUJn`wdyI~m{RI@^PGS~hm5<@G`VC=FNS0B|8@-kh76QIEP&a03@LK> zZJ8QVpj`fuzn8zIU+tavyz$eelis%Pq%)K>)-PSMpQPP+n-*ct!~J7ZjgBVIQTf5s zAOjbX7`!uhj=YpkDFZ zsc(QNT@o}%eu`v#h1|(#QOrTQRaYfSJlI;?EUIz!@r&5{f`AJ(&FZ%di(Cu+EMV-$ zyi%+j=Hxf5CJXtMb&1??df1M(9;*%v()fZqQFykZODXB((ZTe42nUuhJApu&MnI|s zteq+xF%)zG2jlPsPjf^OfRpXb&OtR)GbP6`%ZkR>_c_(?%*JUUCUdy-n)Ev>Ay?u5J#@5M; zV*#8cf`x1L!vNFI(+9=S7RbbAv>=4)Ac`5;Ukxppw~-lq**-t|^PysTK-|=KY5fmz zNb-TUN=)CZt?&;n}1ipA)Ud2*RL`%Lf||*9^fBWfSu0 z)RzypaC0Y+k}9}H&Z8fIEq6i-$TLxpteuA#^QDj(J+hS`gfVodBx?Tnp^ufXXeiIH zG8Ne?(sfg_z{WO8rHSk8nhF189J>az+5p#0RTMSk6{nd{>fYuX@9?lP1tXnr8RYKk zM^}35SZJ$I1<@65ka#-kDq7*Arw|I*oBOZ&+}*$ zsHH3IfPBw3R@H_+C@InylrE^x5^~dgp~Sc{~c5fm|8~YZ&-5A1$NhO zSdMLOFrIU&_ynin1^5^%&-mZ45GLXH0YVeA_nAjt+Dz=`TU! z^fKK3;iBY!`n4ppkWRSp!;>ZW6->nE_jz#~PaJ7xdEAll0I~$fIF7Cr)hNz#g38HZ zDwedKr1#l+k(9b|*=?zUTkAgLEdJczc1zCMeB(mRzOJL&_Qj3k--{tZeykVClM_mBk_cM66x7E4#MWsDNL_^`0cYHY zx|x2M^YoHdL_AueUYr(VPFD;*aXh(oYJWpt#i&f*(WoI+6@gy;jMdDJJD;+~(;YbF z|Fcsa0f{4lZ3XQ^v?T)}TOfvmet;0nIgS$XRxqfbv6}~ru%qx%xAy~@viu+X#;JL8 zN3{?3gf-J}ZJEy6kR>_n+D7_vpwphd6>|EWLJK9;MUzEs)K0E%=g|)dw6i5+juibw z5O@7VjOCCSm2~covCeSJQLr^bb`f?z7Ep+2Uy!sSjxx&x3Sxr{7r#CulclJzyRHveVN|l1toDUz z6#MHV&zy?yI8_FMLSg13eW z<0m_rqrh_b<}>!Gvs30|5Y_98lAeEr%d;)5k+Yvu_l7S1fWx?lfQCF8+O0y>pvzL$ zSrWF4Wf~#gcvtXvyMiqQ z$4Su91R92qmDAaTW=d5e*?Xf2w+m^*9C-L|SXwY72qa=90N(QA>##v-ABdEXxS=6s zAkP;@FJy$)<}4a>v7duPJ^27FLCf#t!AUG*R#g0bVJG9h-0hAj(F_W~V>atb?2D9i zMHBn1q%HRb($Fb5T3}{#j|&+c$r0cTO$pj7(%qX7;$woNicg=jgXknT!h8jTN`;?mdu>0+?rwh+8T|Nmb zSGJru5wUf<6e5+V0B0SAw}X~|%VT}3f$Nc21t<(7NwTmsrKRhOv?wPetTODfPedln ztMCjj;8-%iC8(-G(%_8$hOy0ck8I#Cv*VCta1S7TL&`wTD?Pmpv`ePJFK`Nr!wv!^!kXW(PXfkUaT6fgv=%-a%?pS0L1UIdx-3Uvn#SG9 z*$<`UK`JK)jMOMnzjDl3y6%BKLMggsr_V%CD0ehIJm|V|aJ(THO$`K|^#l7k(hIaG z=x;-p`z{)i;oBEvGVjd4c=UY`(M}+A~?&fl@tf~smye0LhUAyqWWb+onMWlPlcup&!vU5??h2Gy}=-MBM z-+tL!VyN2HaCD+o?wMN=S$4Ty$5%G$=IJMLBHja>{VX-wawj}`Y%Y@J_+rd^N}8_m zC>vW)F!AQV)UiG30XIZK_+IZy%8hhJy8#t427sU(!(=bk#amT` z$Vk0Ro&20oH~L^AWS5+~${QW74SgDpv;7vd!F0ran%Y4lv?NCx@1PG;&rcVltS`KT z?)JI$VYFV1hj?XX9_+n6>zeW;O8Zj^tnP6_9$_#8N3&jzC(=&iA!Xh5w&n5jH`dSz zl4EN%mh_InL?)56T$8+hG&4A3T7^1N3F2pp*h{~nybNuQat7KJ^- zMU;k0bqDF_=S5@opX?8R6g3OC_%S2oI>UVeKxw{^8n~3Dk=O7bl!wiug*d#B)@3dK zJkQ$bERQrVy(ICx#~PExGwlNGVPCb+JT=w{(RIBe@f^W!dL2oUI_btd#FKcIePHrx^cW7@9zwq=S#+euP)@39U@nmf3a?__!?umyl9RO257OibkCsYp zkx+<9N%{dF+rOGTF54tC*Pc8oNhyfJXx$#dD$}*@>-wl!)Cfp52OWL%?KpIpPfYvC zjwCe{!;fA(+=d^WZo=+q{MazeGAx+a=Xu)pQMcl@{$c6aQ|hL>*GiW3jOQQ?A6%nABl zeCOubOq}?PQ9|-Fy{lbw#h5}SSkGp8q#FX-Us;bmMAyGxp%HpvfXlAliR@#!IBa`W z&@>2jbIPe>NQh7mkEofJD(NkW$J5-ezoEH-7OBjGoNv#-&W+O;%pQ`zX;T$K6EuzH zw0;WaTp=8|7h}-Wv5k*Nc(2bAb!o=YP+H^ql-~B`tx$Q}g;R9Tch6Q^FSH8$9P_sf zVZ2y5oe0Hi?}=8KeYh#W>IKJo6ZfefU5aLR5jQi@wjXfKJOt7^yqs?GxK=x{beVcG z)eF4?qayyf_WFn2@ze{leq|OuhGtQZr5t{3G{55r`hli;8hW_$=^ibiV`{In9lMsFXIxLT_&DxSZLohkw|~NL9IovM zzRI1g6hAG=5en?(*blc8Xy;LoidH*lvy$AY1yEagoQJT(FaSgR+3#w@KGLliZ--?9 zySY_`$}S%frs%1zW>mG>d}QcU&zpm(NPDffCrfUSg~NA?>QZKgs#UgHE+k;!fhEM z^|vomoeM%M>!r9;{8|X78~ItNuN*y$91WjPe^A{Y@@;oG`l{q*Elj+)AWAtN=4Wgw zxBaQw#-EJ98(gz3i<_ba9VVWjcP9A+mPlguv2&KwPWM;zNG`5h;c)Jawkao*<-8M* zMSoXsd-;}Yzz4Re#u01{BhLHQP1=>^v(U&f{@BYvXq>hGVP zJmrOJ&Old-K?G8Dn-++#Z3)7!gO4w8#PIND#a%8}{krA*b}`#sYE~vvw+qiXM?BsM zZfm`QBhWNQaF8kRqxNO3v*+E8(mZ=-li#pA!EW@O=0C#XN)d^7wOF$Dl!fJy7{({| zE5bGO4s@L*$>}a?NAMYxpWTEVAtUvM&{q9p%J-SJ^<`B@vMB@-8L?q^fx-P7RvHiH zYBROf$(<$nb_fOS9cGD_Fx=Q>zm|^-x7Ma_LMokG_hm`g>D5fkbHQ^AG`H~?jhZ#> z5@}*%p;Ee`DYTD9XmdVD7oWHz!xt6MorpgF;m##H4N~IEl(M$%;wWpr2Hd{iFgat{ z`QNaLWR_SpBavNJ@8-P+ikUWRuanm|T|KQoS^>RyW^bdt^$x#`6yI6(+MtpV6m+DM z(O3(GfaToy$`OOK$-XR4<|%I*4x-wrt_|}KMoEWea5TT5 z#W$}wZAh9=OgMJu&#Mjy-uX@8gq7FaR9i>)(5xhwbn2ZH5aC=5XRCreau$Ry>V)ff zrm`~-TAS(QsH`EyZf(wAO|Baddl{)w{75^pw{lCV{ zZ2=QoM2lmS&8|c)fz3Ej+d;q;()c*rz;;oy!j9qBjef)Com@;1gn{n(2h?4u_D+g% zx|&OKUb%9qs4M%{PPCuMWAqJo%}K3!iWjmaIac*2C)S^muV3*Ji(GksNU2LGPO!+6C+FOoAl^r| ziu8DnKnw_+L3%DiHF&ORvy*z!h@0+BM#t%%FPQSWd+KF{zNnjJ#d!-K;rB^_iB1ES z+-eUdT*GG9mSfN~C!mVt%{V!@RuV-hB`z}Q+>{Cz>(Cxkc=VKXK>yx4H#uzqtV4%jOMc?|U zjSLmLKHho_W;#!;>kP~eQAVUW;33tyI3(#Afo9bWBgGILXC@G)W> zIu^A5&FzQXLRllDh{MhE@Y7H{C7C7R&u9kUGBG%b*h~cBVR(Sg@&49LxBJcqpeUs~ z#V?x+FFSN9(MB6)qKVzro^av0)9vssThFv_IMS@vhVAWM&a5w6KxVU*v(1)fX$A=c z;}XZl|LTz$lMP-g+3Go^ROd0gHMH22ry+f0O{4ai@-i&NuEi zteTjByIukrtWS5g^&m-^;3W^ZNU-(P^zm;j3Nk%!cZ))XzQe#&gc0uWyb2WoMwhm*k^i5mIR9VsZ5oCbXdrG32#9gE zyhFp~YhX^d&t~oEDZ50US%b%hm|R{1qrew@JwzI+1kxZZ_A~uhnqPBT2qN`rzLEx%nRY6$-V zimXXLZ++gz_F?i_UF&7jf*BfJb3RRR*qeOBc&oM*I6QJ%}0_u;G=WXjFM?!V&EqN z3xC)elJ)MK{;}9MV!q-qagw07Zk4)!Hr>?jHQ$o{q6SlSjMIuMbC1A^jRZ$tq?_VN zq5AJD2P$`-{E&?}VwPyPOK?T)K?mPS`31T!N5}=_K|liS1IShTU)uZ=4+3~6B5n*U z;d#PUv>?mINkix8weR*74gRRa^>%OE&Ews(Pts;<_U(z@i0I<_D2@CQ!;&opPtHR< z%rH=zK?XWgW=!+oZU*Kz>^_Pq$#i6H{l1Byg0KeX5n}8=q-DKi&!!6dVN)oxeKic)!PU2UDkoiq^ex`!Mry&*nv zbZZz24UDTF@`jJ^soF|_twhAJYzKB{Yrh&>I5#vV-5|dDM*q`UM6%qA~=zppd@wa78S)x4;6 z7x#Ltea5zI3u$W|-mJ$YRe1|tC=z_u-D+SDB5J{81>!siW05wMPL55+uu9);!6qmf zi<@+mT*iYg)Oyi$%^eULA?H+tBN^2!Id>*Nky?eob848d*FV?0K^IE-lSaF97oV6N z$fnz0&oJiyY||3L#T|WV)`ABM5b0(y90~9Y!jZJoS|jdfA@A2LLnx~ldb@g|cBuZ? zo1axf{Juf{YCI-UOWf(^ic#84V&{`!hhOo1!_#gK$GL-n-oiCI57$m58xY$1iQ$SRY)aQ^!1WG1Qj(od$}V_Uz|a z#UH<6QUua7g(LK!7~kCk74V%H!vS3%z4^UDnR@*{%Pe<9@bhSEKjU98L3AfC*3tYO zAbT*wI9dVKhm`JtaisB0vszZnzk4K99s0Q`Yby78miLpAYk=AvQp9$(%`S+KUT~6~ z-?%NK<51kz>u`fAWf3tFS$_C~6e=6GG4i zjc~cCA9HKE*xMom&Z?`=)_kb=D715Lr^37%I0~cztuc4&0h}vb0o%*b`LKey#XJmU zFQ2Ndem2uZx3|!FX`;?GF5VV&%jMzQl;lSus@xC3)&$>s9#^Rkk}RXc3=LY;^t*Dp zf7{Sz=Yx}CX5Sq=>0MW&CM~`+VFwMm5cHXYbt%qPU_eF??j>d~c>V>_D_PLP=8a2U zuy1qiyUeRM!+9g75AK(N z+OS#|#~9Z|_5tMx-au9Uqthsk-e|U0A2Q4RxAU;h5P0vNy;*?zVz#PlHm%QkAclM2WEU{O#Y3;e)88Oarf5$ z5-?s?IPh=NEB+T+!~K)I(|?)gxt1HbKmtn55+u}JIhRW875?d0w3h8Ow%}_&B>AVx zG3zQi5?9gL%2uQFvJ^bYXhH9)H(`0fY0cHOPVBmHo6wN@-ETVgJej#&bPBs-3$m|> z4JRU*z>Y7+&F_2tl@A9_PXoqm0EigiGz z14W-pc|bv#x4SkIbld~~c?ci}m&rqcb5R)G+s_WuKfSnSUY{zs=wBD1PDweoOK6^d zz5JdD7U1Z>(Oo;i6u~ubL%KR4&y_kNcR~y3LCn>6OZUxGGggKspC@jp92_gI6+sCV zH+@mt1ZOj%k~8G2$p!)06|_R|GH`h@zO3`p-FACQK`%Vdf{)ma70RVpWseKr10EbY z-TGXVMDt$d@R7{0hNPYC6ue8h=qdL1&VtWo5MF9fhme09eh%7?cGD}vC z0*CgQEwagkctWLZr*Hf)$A~^#=H30m^jiT#=}>MkCFQ2IRoUXMvOOo?)LkcLs;DrK zUmMkM&D#ki0ve9Iei*wS!c$N!@c8WgPUCjo`a+aX(h_UCQxvbeMtjVa`8jArn2)$& zmxy6d7~rz*AEvI7Wsy5PgNQu1>&g63_N11&Vr`lJ=3r&v)%?8%inZv2!#o=id$@O0 zO2LfvYT2nAB~BNf7QnYy_lo5ReR$3CpwGosbmK(4WT-u*RY?G&-822c?Kt#nR?iC~Lon!WJ6oze>Bs zKKjwP<@_wAMg>GvZir~Ze+IEcwK)9M^m2wyHckR_n*GYilU~^ROr6&7#NljY(FF11 z)`-sTbO+s<+AJG3!k0Xpi)Iqyb7F!$F6ak6#e*k{;J2{XicL6A~lfQaJ7 zw}E@CWeAUgrU5tDfXK+8A)4fG5?hS5p>!Ypm`eCgbH6ExJ_5xyC@56HKs&0^?xChs zMXOMO5aB!~2pIa~KG$ex-%M+5#eM~~t83`QyH1ZXWo(LzCi9gCKNX519*18(iBJyW zcf7gcHxcK{+99Ew#@SA1mq@4E=hNI)_bD#nD}Qh+(v+}!2{+!{+W@@It<_))oiuX$ z(*@XQS(2iVANUS5b*rl3$YH5#DWcASfVC~3~-h1g|sqT07a~KF*%f}%lUE+ z%BNJvH>!Ev4aARW=ol6rzUmk{9$IOhUt>O(>ZueZ!lm%F@v8cP=LB0E3HXLG;q^sn z;4P;h3tGV?JC~t)t$g3XROvI{I&uCwnL(%DVOL_8lwnB+4#Te4rg8egvGOfhY^6t% zZHmE_KYB_Qx-h-XM>%XqyYY?_c~c(4S7p0%0(eiTx~!^g5t#AwGXuys&C?y^ODI~@ z9;Pa^(1H_N^Fg)Cbhd;Y|1{Q(CQK?1uBA`-OHs1#DD|jY`R;X!4NEnvN&5&}MMCT^!Ln6<=!*K)znP?V>j3at+%@+cDN4XjP^vbzbTnrNK;8E{G$>Dd6 zoed4TSR0}obw5$gU({E=_DD$C&8g$JpYpL}n}5UhfpGx>_{h(Ehd+tl#y;a9Zwy=vRP}3a!3}{K;XqZN#nMGFcLr z4R0q4_IehgCtm2SSM%OaDEoNh%`K^vPEGkwPY&94z>C1De<0E>Eyp4&l4FhcU_ta$ zA$x`>+bCQgH=KD)Y{8}?8dv^hZ*yx8PqCD?YFq67gG#eGYc>QSm9X5?cl?k7?ERp%W$MVz34f{IJ@T6Uq^Kc6G8V|sa<$&i*rOX&2R?WDNhtK`n} zmbA_Ge1BvhRKha!n*vPeM?1npz%{l@U>i3D4IOf%m_~whB0rVB+HSmWNar^U4*9oo z_E}QR&Nn_j;p@J|&a_wY0|~~99l#hv&19|k^OJ-q%y}|#$KGe3GOb?BpPP!meuE01 zE%#C3gH0bcPG=Q>CE1B2JtoKzNML!&dy^YwgK?ebAU@K~w6|5I#pY&@0~>-C@7>4^ zeiWU0nDHX9=B?_r)_@$naBPwjb{GkQcyI~1cxZ9+QgS-^|BqQ_K(-5VKC%w5IGMK$2+Yda4Y0@U$msVSjDs=cVI=PoS%wuUDp5` z$w$n3_~0QJPnwxxmU!3a_n)M0ik2fry-fbm@abQ%aQ@W`|4qyJkF=!w@A9SpGs>6# zA89#J5Se)Zqr-mnYe5hhi`>o;h?-tVx07@3Jnax?8f4-gdIhd)wIO3bYwQoCh7+w=^{)Zw z9Z-->^2f%$HE-4B8zmQZS9J@;buB#HE+zVKKO&024_G6HO&P`#G*mPO35>eXPptdM zuf!c^V^HraR+T(mS4dGdI+KcZPjlU##?GXfAOMfUZ7zz6@nv$eLcaN?k9FG7&C6=G z-6>77G7xJ%u-`Hh!KcILv-{?!`zE4k2cS{)< z2s9y@E^w1kklHd!?mW$wL|pWt6oZ#7ZAr;cm<55=I)tO+nh-QI6hu(iL+6V%-sk;HdQkW2)wMTgGVkK>LM6ia zGf#_m8r!)^wJ!6x8~nt%^+LOei}_4xXl%TV0LKajdt1_Z6Nnxa10_qEYw?Bq4pw8d zox2a6Yzk1dl{S9WSTGQ<5axoasi>=to*$ami}tu~LjRm_;M1qz{l|7iHgA2108k3e z4aLgq?j$lU1tQow9>10$Ls^Cf$aWh`v(y0SBQxgYrLdQcUo&fLtd7vjnl95m;g@;s z0KZ#x_M{~#L8+)Ss*8OF+Q&Q!@iDw<#T`+!xh4*rwly~B&hY9_j_kMMibDH$(xNig z<9JSb3Yf`cDk_=gA3mQ{YnKt6Z6NNf&ueezdf@1>om@2J;(3sB*v;w2S0bCNRN5N% zKu;cGSCdO1aUIzvyN}2j|x{3v&;vqB{;IYx)Qw_WItgHy$w zj2~wyr5(?Ax;MhazvHSi7u(^~=S*qV8OT=S^Bt?{68NO2-{smRNBc?sXluj!j}-6H zJ9QT>p5r4SSt10EpkhAwx{3iuFECEB3oEFOTRmo%-$H4Aj7-fX+=9~JlAQxQbzue_eaNSdnLtC^f_A4zyI zT(b?1)QA^F-jrggya^5>J11#sR0tNENKI|dF%RlIa4{jMCum5RW%8!Wr{6xi?IW-V z|IC+Jj)|^6_zF67tg`P{m~p2?-{OT&RpsUPu2ff}mhw~u@<#-wF*v3QMja}lqfXI> zOW+?uu9OYlaNx%hW!#?0sJAd zq+UlCBynup;`4pyaM$K*m49H7erF4Ow=T01tCN?9f2_IuA&Gr#Wl4-r45P?0J69XC%i(@aNxU$uH|GYN^+dxZh z9sE|&u3i)7yw_VW^!C;e$0(Cl>9Hcz-B}#zYx3xp1+xAkyaaQNE~mdExOzJJg9cPz zfBfe6{^F;U*sO8QDcA4wPHimmw-4mxA9b8oB+m?FMA$w~T5jopaPrHHRLB*wZe_~f z{J@4PR_gKkX{*%9UWa9tD9J~XjK8l#ghRe&eJo_|55`Z=tFL}mrHt8+wB!rQoj2XG zN0qccoEPS0ySfZE)8U3Ru#n)uYO@TW4WU#!j1lxzF%#|cV>kcaZu#?PO*%6<$-%d= z%;d-0`F@FBR_R25a5$N2=w2|+It}@gP!DW2Pt<3K2IrVm45og30;7rmXDT6(o8ECJ z;nz+s2;>;~ct4ke{SIzt?|D+n>U}8)xOUl-Xuh_Gq)7A&1kF)vBo|A>(awPOBpj}) zYR6;|&FsJuc)~+m#SI{^D-gj2DsL+Di~=4FR|OLoR*)^7uR}qSF3~{iC38Md;5;FU zt=Z3>lgABndbmH{QbM|>Piy(k))s1I*m|of@?3A&5{}G4K)aFg^)BFh0~|KuF-CBx zK1{xS4glS*$e1d|eBY;X<=I6sBO8BnyPJp1dv@MmL5&#PSizZq13^P?oERKtC*4JH zhD*L7Bf;H5rPX(Ie%;{%4cIwXzM40k_Nz)$ABHSch*G&fOrb)g{xFgHF%El{XRKk>_*A%Z@+$iH9aXQXZ(B+$V4d=2HD= zNs-$_`lC2o$2JBk=kTX9^`P~3hm5*+oL(IFTCuM~UB++NxdAPf;LC|g^u+1e*=&2~ zEi2|rpFb~JT(eLDVc|ZI^|r;8BG@~N0er_V4|Z~b?LHfoXRcnZ?g?GbC6(r+zBhs#Nz7SJH}aPc5^P?M zY>y(?Mhn%DB2xzVwyesWNi#B`1s_d>R|=mN^$7|jmk5n|9&$P<>z8C!ohYb!WqY4_ zR}Tye7+TGx1lom?QFn$PIRDN+jD_f^Hs3A4^xZ3%AA2;V6mz-G%Gk-;LUSfGG%DnP z@_DbXrU%aU?+^m47(-lhKY?b8iXl|5H_OAxxaN>|tPnCD2E~oHHLB7B6N~Vp61Kv= z{@$KmY1-k7fRwI;DY(9~)OLJxlpe_uUS}tA3^6Bg;=%DGR5ZdN`)A4Zw6paMea}B+ zJvKCY@6fx``sUSC`E3Ti%W|6;Z-5DC2VtAx@SzcGb}v<^8KO!%)t^`M z*LTHzD&IPDM$X*uz$?BvEtX{AG%*4|R|H6}MLx8taql;leg61VurDfO)#`&iCGNXQ zxTT=zx33SSQM+g%CEwtX(lQ7h8J++kxh^W7;$X7w(m^wHrnUwFPpk8{iu z+}4fKTHT^aAX!&h`6m23a4(N5+CT(dF34Isu&7`JbMgwf>I zggWJrC)lpxbRNiHuG~UQF>2Ove$ga!NHMCuv4<$6F!O^W&pxA z^w_844m%m)v5NeO&#XII*i0bBBWTw6L;#7R$B5G^$=SN!aBc+n=S_5^#yg$h=k^w#Px{?hlp)ZcA8C z@VcPi19s*dZV}-4e21~!$Vz<6q%pH?%D4}^18Vo_XF49IpM3Sj(DQ@v%;bTUy$R{c z=6=l6%O_RDr@AK4BexZkWmThjT)HaP;s6!bo^6ytJiu4BR+J8!$kLxE(kKBiDhW&sbZoRRvVHe)q$FdE9+&o;f8=(D#F zlrS`PG*H}?%FkB>(s-mtg!1IYFv`Utpv)ml(~l19dT1t5ARk`Sc;6L~8WP|2Vb_kz zXum^W&+&nXrMU|69u-R<;gPg6@{+Andi^=3^q7Ro_!3F4TK^B8Hxwv`uSW0VVwMSp zdg!Y%i_DE8P;*3<6fna2r+`#n0q1++`er>CDSGiKt(<}83;=uKPU|NFe3?M)RbyIm zM3dnTo`^988^CJ>^_8A~udfWh%Zn8O<2a*Rhls$_g60;7OT5HRymVL?(@T-P+;vgC z_x9$qC->8uCdOSp&LtVzF0F;Ex0j4+k!?Gd#XXNKCvl`%#`Jg9x#2oJC!A^2XD5{!FW6qXGPfbZtsnoA#JI}wqm}t^;31lBhTzxfY0qiHF zAcmhFY7Ip_XX(NfUL$9?9R5OlpU@HL>W{3Z(W zOonzzDPA8lvZC3xW_P5OPM%48+3RvkH;v>UwI|rr%rbE1$uuLizL#7LDnYB}i#N`e3*MX*{}`vd`f%w+;f#D|k`)Yl9jrt;awT31 zfg8Ovfcy0=fA}NV!f3c8)XCY_3kH4$ilHAOLm9&-*oBR9UPn%KW*S_o9IyvMJmiZJ zjW^C#t-hHT{``2C7<_rX88y1xge*r#-PF;FG3KM;!gVa`st9-#Z7R{{r9+Qj*MokY zb9)rctq%`;klv#!-I8#OUchjNe3=#wo*>O3iUp*N&aWQ*x}XH$!7nwZOX_Y{xQ&hn z+>#Z6Df^w}g<*hu;@SF-;<5~!5KAlM`p`2aI`2ce*#q&GjR?js^;ddo%?D4-w1Tbq zb^#3oUvf8c)<sb~&^M^kUM1WW?{E``KtbrR8D6MFCA=aoWoCt5QP(ZMQ zHHe%@-l)9G7Yl^R90rgJV< z24}@OpxL1+E5&!a{{G9xU4rbIaWuZE0kncB>K0(#gpvV%YzZ>Dku4x{&_l#vkK~XW zo<*wbE2vp*{aJBX4)WrNlmsiTh}RFB)6j;Kwr{o&Ts?B(NjOpi`u%4j?HmHy3vct~ z^E`56vmm}A^eP1@)a)x28e1u7)b+k&+wAw`p8H%8n59ZOiY3#_6k^$Zw1Z{?tU@b69&@~|uaau&Jz}JrJL%PDpYPZv{=zYMA}@6t?|c5Obp*%|$>IME z1FYmBHel|)!{~ooHnMt)(HeR+==;lCNqfp^)QT@t>EX%TiZat~=@G)g<1<@K;q#T? zg5OCi;lN>E0~i`u3 zD0rHA5({ecfsY8sSJ_exXeD-EbsD^=d7ySKFS%mUV@QNQKN1xp%g^Xwp6Hz|SF2(u zyC~)1&gz`w`wnn$AErw10!ILBcAgkoJyDQ#sL*Rlv20i;S#BH(JFfAIb~OF7*7l(* zLMbm9D{n1~&%<`K2jXd`;E-xeXUSO0%0d(16Ckf6Wijx6j3_zhn0v9e12*4td-V}1 z(!sn*$CGczkA=NmGGTlt99PYSgQ|QL+r@smY%_uukW96r^Ep7cX&*$B@orlBY*jkN zadP`S(QIJWyI45mu;wI>cB!4)?(?yGRFEyVHrGz=Lw zhd3#9^mt&_$L4@nN6p3x{8uNV7nWOtQ3!y==03lk1%@x+OcD z93=GK_sqUE^X9)Hk)+JyyG!!AfA}_T>L*q16-mxE3#Jas6gmO^csjd|b)M220~nKp zXv|d#)pYLI;9A)B`A?mWv6bB$HkS4;PgxA+2l#!<;I&5`7Y;$Oc1ki#pbfD2SHZ|% zE#NBwH*SuU(;JJ}j@_-(2aUH3iCU<&tZy#~NIfNxC1J343&r3Y;#1lk+JzYQ*Sv7# zP8MMB@x^!ow_|kZZLlwCZt*AmLK{M|{#Ep_`G7{Mcc@`_i=L-TrF+do(>dNPrgmh@ z-3AIJU=8PR&8k=>PS2DQ6w5Tne)ZM{W}<85kp1M&(Bi#)o}6z6Io$j@D@Cpy1)?v^ zUvQ_R2OU(oX(fzyb`JJ1@JIp#QnB%V_FH2?%+Wz(6^tnK!VTZyjOfF3rZz7rTWDUI zPPFUfq-5pdUGhSbf#$>aAqdVbkL!B-?W zXK_V(PsP)3ib;cx%8s96cOKH@x;^811)q&1_4bYyQ1lmjn0r}v{a7V{yjHhTPgv6f z^z||tmA@`kWWCFixb-Ggr{?7Kb4`g&qA79gyI^|d0g#V}_G+~mA`%+8*`>(q#eB8| zsGW55c%O!^)z^THl9IIt-_kYSWsHftKkk61?Z20CFB)stgU#l&5i5*~nHM;pL2YsM z10!)tNeotTuxOa+(%QJYPcxvdN0V-BpTF`>R6c)-->g|E>a736qc(A{f9TE7!X!DT zPZhB5r~QVR#;wQw%in*M%TNFCBi+e-1IQr=!i*b$7D{~CS%o!!E;@U*=5VHQKYT7D zL02MafIu#QnZNF}WGoI~vwN?8!)l0|vgaTCh6To~O{fAjYRk>Vt1Rpv*z13^T_{m0 zvHK^@GG~<22OQ1z^K=JJ9OPP^3RM5Aa5HTmu^hn{>p*SJ;6F7u{Jp)=a3n{iYo-GS z|L(5?TA&s@`Ugzsg8^GSH3nR0Mofud0gA(@Xdc$Teod_nEq7G<*C@Ohc@aE|`MLa` zmVU4uLeA_61T0(hhD_@}0*$vuF1H zX6ARwHNUy`x#s+#xj>V=@AE$8zSq6(wcIzSK?F3A(Faa;Ao&FT)X_PBT~#{ZA-S4d zx5r1}=Wh>!r(IG~N`f2zp!*F`oQ^zik)8UBvdod^|D-VU5B6%9FzY~1vId&6s`T8q zCy6i)^oIw){(J*~x_&j-$DL?#x8ipROvwmv%awPoJWmFCK!5#%vjMS>&>mknsl!oQ$+GRZeIn$Rk=zDbgVE8Fdwae8uR0Xiu}7Uf#B%=#+e8UA70_bWsk*Wh z69(4cjvoQdMZYp|l`KT>MfzN=7@PXO9wvJ$NpQ+UGC*H?k8-Xen`A2E5m2*n_`=i& z`+N~yoEk<8p?XpLape6&Gr|UTH;z{XPCAPz#B->BKH~U_?fOmk=oufqi3`L!-GM@X}@B=606?aWhglJaHEvj%4>W@_=`TM=YCFGMO01y&L}n4K~Clgt?r zj9`l@HWX$Zk3NXwqoyMvp_sNBU(AF8zt}yI`(Lic6*W9|Uvn4ONO+y&$+DaO*BSpe zuMmDJ9;o^V0${8jy?a!7JP@(N=7b(S2n4@OLP!5UDh2~x=)IWY@9Dg%WUrOoC&<6^ zZi9h@>qA}GUo?)D`u`)78uTY<-xieKiAwAHJLj377$Nw)(GdO{g0bJPZKYU+DX|5X zCzp#`k&VEf5+E96#*WO7Dx7>$xE++*}{e|u^Y`w$7_~x((M?5 zhT>q`!x%pMmsQ_5Ga*PEjRUK(FB-_IBoVDn1>(7>I#!P_4OIrOUr*NVxn$G(p_{uz z&(p)EM`#f=Si&bII^Yd`tB(p%mq%gJI_=JI5et_TYZsvo0BVg&+53? zz0;8*KGPvrSi%>Cdg=bu9uVS=6KA)R4Z`Mn7Y0$$@@*>d9>6@5oMK?ICE)ZstF%VT%RXTJIQw!qSz7TIp4Sf9PtGet!hEZX6Zx;W$tl;RAylbgmPnHznzLpxTf)=t$rcpJT zk{oOReS}gMKm-P5cA;z5GhUItG>~6d;fDP^)TRJw(_y0XT^Z+*$>RFBIXR6dul3cs zZpUb_QW9e65-;cmq<85F1csv3*I%y3g&L{{f6*@0)zu`0UP_l^wK2Q$jMd3*0bh+- zdqcud=16h{a#Sl~AB0LYZ@4Ygk&o*BToX_jW5pAfE39;C@^C4olGcUO>BmWgT3;A# zF)8zD7EXBCHY(B_Ul@=(QlE)+$TB-*XI3h6VQ-NT$*l=ow>GomE@y`(p$B)u@v}yA z$LPoeU-9i?HmL+*T59l>V{q&gEuk#>m6tGM4NUH)->QkN#@DlE2#OtRoSot?`5!F~ zxB`*8Iip*j{BH{ACC9b~*|wzLI%NRD>w|bE_vIPVxpAggXlzFTXSNg7nFu-1N$3-x zzS@7OT`^W1xg}yd8OB>Z`2@DDX?oF{MPH-z_a2=-vaG-2y%=x481Dg*Ol-{=N{!)~ zjnVs1`maYeR`z$=BOBMi2*WZHMNO;shqHh()0zaw`2BZp7_Ro7;?{T{v{?}Of2 z#eA$=k^R>n@G$r+5kfu2*@36ZnYH2L?=H3bL*6$}&7^KQ_eu_r#2*oB7} zh>`GSB%Q<-_c>?%G&#&DayBA&#^vZk+{(k<4#Ieh%yezC+ z90$|qw2yTtmGmgqMGA*HGx=Jn(IClgH4FUA(IPf$LsMIU^1me66(haeevA^%(EwUL8VPR!q)B`1C3A)+WNHr9^9|%@O z*!Q`R))UL04+Tyc4_IsP^oCtB2srdp%v`$;$fVE0Nf-MjM*#*DZ+u^<#r1er(ns8LeWIf0V@i`dO|g%N}!VPlP3t4-3G&aEEupuszI9ya-Mi zWjL^K8=lDTTKpvO(>`TCk2{jGzDugg2eP=+TB0I9*&sy03{nJYKr_Ere)+z+{Sv1J z>-yN~XGqCm`F;1cI_=)Z7&0Am72V|15L|TS7aH*<-->Ww{yAn=-u#2*5*W@U@7;B} z2u~}fS|>IT>=hGkrB_2h1qqUL7=LWyeBoY9ILhDMjzexDmsFPZzU=JEFxNB4SMDR& zX#8v`s2AN5X~zSCLPr@izS%m?z=Dh>3YT(!=DgPe3$AMn@=SF(Ctzxd+9RO*GNSnQ zg%dwnXp718AW{fj%BPYpMb6D}r&&k#fSwc>yZ6cY6{%Nm?;u0ut~$fjV-^RdrX1L_ z1%VYhb+m&h$xVb^MA(C>>395wtqOcq4zsJ}(Bkl?AB!HYLr*8L)xNV<{EsbQ2u#46 z>h%Ks!ZS2YhuZ)yKeJzl0nX^J6RBpja(E@dj4_88{hxYbul0hbh4YgBf1cPZyV`#1 zzB_J*sf6!+uRcWX+Xcyu@{)DvU-7^H)7Srop4hCb@W1tg5&Ju@7}T^fbzsYI6;2|4 z2MFDr$NvJ*h0f3qs!~cD7>W36@T3``N+CHU$9El(`ZsTt%D1nF1@~utLv6NLuD>lb zaHw`zK+>fTk=0u`!I>Gu>_zA!(+rR=zkjYmJ(CO3nbDC=9f!Ex?!Lw9#oP}_9!Q!T zx)n;dpq)Y)Jpw|hhpB}puw>27yG27OOIALtPhVtC#&P$X$iH7=TRV1M!)RxQ$z?-h z{{bgCW=PV_8P#~-{lYVI9HU9})37{(3Y$H;_Q&0bmn>fVjP7JrwNv6JXGP@#ik@gk z+@V=f^&+{^t(8u%qOWRv(85Fu2k%$Q@S5Q9x&IQ|pm=lR%UDm>&$=DJpkUWzB>(QI zyAD!S6;(oIDOtG#z7L?o>#-p^`Tn1zMIUsdiLTc+=KRJ{i|#cy)TWFZg92Gz@z=an zX8Se6*3XlUuw;F-tVP;(f-717TunYw~=_%ywIlHIbQO3T~hX%C$8pXpO%kMZ{ zA(`=N%AK0`iobkWbUabd6}t7%EPQ?frn1szCQ=kXwhPR39V&BeB z=1$tSxCU$bL!Y1C-=aQ?D$I$AdVDFO4_xLVsj?JAI!z4xI{F4e>c>Dk2|@6f`Vvbz zeWvjv?#XP2qi zQ=ltH**Sbo$F?DBB2Px1gI3<300-s z5r=d@5}`r{e)C~Y$a||QH(w02Eb7BX<+jy8F(VkO=|5F1cYN}c>r?~%U|uJtb~Fwq z;Jr>e4va8nl3F}&mxeh#iB!!Y*4MpJ>!FR+_wjiM>=^Am)~J%BO$NEIL;@JOv0*yv zY??ErlG<6Km;%#7p)zP5s!O-^zfX8{$)7Qs-=`=c7DLJ`w_z!~3>|vS!n6Vtbao~d zQNID%|M5;B{ve=RG?9u5>QN)>zw5N}9*j z>BEhyOFSf4f0O3hJ0IGWH18`D`lu&+DVd-fXwN!fW_9KTUA=``NIM;x<$)&^bzuT2 z4UzmlW1R=zw4k-JtmMKr_8nNeXFl(r0W%~+nES4RDSMN=w3-q`So0!w#g%!FIw3P} z6YR+9t^vzZPbS}u)z}5J&mXG%aAP*>X!I(S+CGsXX*ZD24kNbBN)kcMM;;Gsxlrd`fZBkwbw3-g*b0#QuBI2t1!mvKs zQ?(nR@it2BL3g{(nJZWrG)`;gm~2p_8tqyEOJX<>qR8AwCY5#E|2VR}3-5Rw?i}VW z?~(Ck5IKLW93tv>9oEFgek}@q{Ya(tEHtf%nnzM?jg)(oVl}saZ?|n`@>;JIQt}?L zL1m!%Al|j*}D#6u9w9% ziuV?OTk0H6T?(ZD0OBp*g@3_j|5};(Z~BTo{}*tn4S!j`{k${~GJj0iYe5kCXGo*XDK2jF(X~No$=QR^+nI6U~@pgCrZrz{W~@ zEtMx#CRcC6j8;6=8&e&AU^}0RbVB#xJu1A;Q8f#xk;KjdNz$ex6>c%qYxYWvkl;}+ zuon8^p1+B1kiHqPslcf=rx5XU>AJ#kSA!Ht8=CvInPlcq$Fc7M-=5h@EO77MM`dom zkiE&b%)mc`EX6W;bV$8S?g-i`W)Dnl2&ZX6nrXvup|rhszr1@9YGxZFdUGx=*F<1% zmUB{!M(O2GaTYB1&DkUGgO~)q5t9*(*@pgBNVtdv9QK$M^hYS%JA)>$j=qmo2lwoP zUf_VT!GFR*E8N~-qhD3F zl=E7$)COJ}2cZw^jyoY5TrZMWV#j2BXR~)qq=HWxH2jZNnpyloSK6O zii+LuW1F(%JwMYb6R&UCBdo!t!PV1sFcnVK-}MB+j1PV+cz1?>8f1`Hb3NEXkA^&} z-dwei9aJ2_-~8F4S3KieHDh(vLwl={N2vXM#jz{bqsmRqE`HtCdcWh>4ka05#vyGp zoU^2}%sxEtdhM8h?l2Y`=v}Fu6m@~8{#pB)+tn`1V^Q-@uHiMn36;teehVHO2#Z=j zKqc@V)?6#%xrKo6H0XSxp{n`G7Zo{S`{uOrxJJhOt#1}LKc_Z!t>)Omw!xc#esLu1 z0C=a)^T%y>Z_JQtVA^g#GQ=m6`|JGXqGj=+YtG$9)25Dj2WCI+>|9uqZHLbS9W+bO z$0jYxcoum$a&)G)?)4A6DD&99Z0mmWeF|w_nlCc8GhrPL_RG%k?s-(G(nsg5`suI|c-KZOzxI9cNTv|&r5v%k)z(ZCh+Kq=Rk84*nljh4m1 zj?DQR{YNzRB>2(mCeW?I=mh~pO$H--3M@nmcWeQ;nRzHxF0PM$(3;}bK*mP--xMJ_ zv;{?&wfA|pDW}V6b_AQD0qY|V2R4bDGb zR=9lNRC!-<*q1|@3ylRxCC>!U#iR?Ra+QNI28vAHa?;Hr(h`u4i6gA}At_z4rJ;Au z<0lm#;!qkZnLY7L)koHbyQAy!e-Yd%MsI{+8nzkf`CiPt(3mK=Gq6fSNUearUAzY( zsX&2Ll;T@(gtQ)~ZDnm%W6S!sCFYCcl|%t9iI;Y6rzA&-KxPso73@E$Dm0(S&oBe( z0y&{QQjFS5)^sC3ohn)heKo9YH)wY)8BwsW!F1r$W=p*3x!Gr;6BZ0Cl|W8u$JYS0 z*n^=foufUksE9VF>${bu0ljZOHpKDZM9KvA?n$?h;j=>PLaP#5*C#S4B+zgm4=9{5 zzk(RKkq1^LQYJq&R|0bHSaaORx9Yc9V*)k&gA{bHde2V1K@3N)%#d#DtUjHEQ{|V| zuryUVg7LUT|0NYNXOEo|dkzyJ%_(4zWwjcUJN}YK@5NoGoyi^Guu88vBD-)1?~R{* z4y}&Nquq||zzE=keREfC6{vh&iusyjd*$7!#fgt^qgk^Ehi`@ZuOXs)^FtJc{m$cZ>p<$H%T-wR~4puF34f3B``pYvLcgxrS63UKltwPuTETSRM zt?Iub1Um*@;At?vX?)C_mzJ+;X!}E?1aiSL_B~N z9r`ATgm*3LjBNk8-pRyg7f?lhhQ7=(jhOQT_P6x2SbBC$BByOx{u)00160SvNRSN7 z`x;k`iHg1n;~1W`$y6HD>DvhNq|0)%RcCpyy3r_?yXvCw1XnAOtuFYQTAd=|sfw1K z_qC&4dCGT}Zv_G}Rd@bh!`=VRui@)a==rnY&|Vpb=R_)?TS?FjB$O4sdTj_4Ec3+~ zHUCQ8#&+~kVQfq*;;bqo)d|DQKK;+)eix}CAAX=`pK5><=mnDxMjfUZPFYc)EX=RK zkK|#fsYv5t(VzJ6fW+i6J0i`PPtP66)q5LJ8}O;>%z*jF%xA|wb+Z~RTVOxnLAE!$ z_=bc95hw@R56MxUNv)ZMB(HI-W`6nl=!W7`akUP%4W0+)AHLhKwX#b(G=fvh3qD(N z7uq^QJuF>AMz-$O`UL@VLP|3tcERF;xyP`~m#se7^%GrTYOIF}TiH1Iy(2AAp>WbK zxDdMaG~Unh^XT+`fcb2Z5Yh4~5^a~ho#x8b(Ciz(=EKLQS@J{>Q2~~UUk3fzi&-y5 zH{gEB46Q6i+@Sz!Vm!!^W6#k22;sdaYRQU;1~LUl$a@+QYHritCeONGYY{x?cFxdx zx3cb6_rEpr5tV|{CDm!SA!DbR`#i`zF4ZkGVB&L?lYUqlszkUh5>oPgLjj$v98_Qv z6_)C-q}sJkl|2(F1itjVRwzJmMrP(j;)vF%4X?~wnqohT>e%#D2|oPQWp}7%(^(;y zxUh+#o@}S={-yv>k1n;L@8M)4PTN!6NuGYL&RxRd7frNAw{bs})J@7MZLYwWz?GlN{(6F(EM;XUHbs}&KneDNLQ#rT^ql^hUl*EpzA2@H|3uCm zB+_?e8{u*P*oI8H_4NFnd+{up-P${f;P?)CV;wz13NBuAe70=+vzhDyQ_B5%U$*D% z@M@5q%k?Gx_#dNU@4t&eaXE8Pk_~dq0U(wnTj;o8Cn$h9YF-`-O}dsfW0QQ~*sk3t zjq*&FGy4!v&l1I0a~_?yON7n1;Jap03!sdr;K9A*LJ4Lb7FC1iXi3thBj$};85&*u|H4`90uyzxRNa&aU!@ zIQzN1_V$i~dbXncMvHjKK*Q5aVNSaARJmDcS2ns0LI_H+@bJ0_;sjpfRr9HM_>WOG z(JoQRn-XQ)+);2A_-q-TbfX5P#>m9Up}ffLhu5ByH6q?rO5Hju zR`h7IjfLfJOF0De@o_J>&*5*}Y%~{aatKC_M;OUvU z#G(5}ELXmAz{d*K%@`Hv*`JU^gdlG3=l$L72ySoiED+^BAFF*PraJO{$Dd~HaoEl) zaEZ>7zFLz*I^_xX0pE8QK3j;d4f(yzVdI%cQOYEAJ4OPfUf<*l7d0s#cf%DI)qHp^ z=AI?-u>WedikN3wYJg}DFO+A8OnQz?!jt?$=m*;g+im)ogXp%~G;Mm|&{v~vVgB|Y zf7#DcHJ>h{+QL0^_fV0?&F4igjPcNhflY*20`4STeY8bl?z7UUGifxb++(m#S>gdi z>XX1xds|pSj2`K_&2_Ic%ntri z9kp+ggzIrRISB!KHMsgd!bzrhs!~HYXz7G@V-lxTtl6llZSWdM0@7=+MW@v2YAEUy z_KPUj=x0BS>_WzNR_5M=A2N?#6YHK`UsHbRhp5U}a{&EKlIV1(JLBorOybEK(}#vC zE}XAd+jH-c(Zcn(>!%E^tohvdifKw_R-rvIq9XS(^6*|6T%kOK&a{e*7?jSdPXCuh zEircahjqfbPBGsscxq@pb$$ByoeaztOpknYs~Ft|Ok)vhee)K6O^=*FK!Y&0`q|)1 zQgOn%g6rWhS)a?_S`G)ER!$1ex~OX+roCfDgP>ba`~sF}4s!=v=I@7_43g+ZB*FNS$?bj@fDr_5ctl0J| z`Wl>iGJ|ptLtI$ErIgW4V=ue~d#s9=e^F}vc8FRpyZYGmm2LDE&4Iap5L{s?$g?i3kHsuqCRa}aBc(mdm@%idPyFTTzF|oo@vDdF zC9aptjNDUC zG~CT+biMq~rx?ik%%z=go4OingNv6V*y<obaVK?`2~#@#n1zN1bxWv;F+t{SOFbB*UAH-_)7wD$)Ve)!_FW%zO@CizIkC*%KH znAU&Wr?Nb}02c;LvA46CO^O?pEl@JdOhJ>1)_ep2h`a`lHz44_DMu{^$N240ZSxBG=Ir+{#eo)MgQ`zg zIp*Jlv=v0FI_pQX2;5TRVw|jmP+kCE9`r;5`=H>gm;?`Z5Ex|Ov>lkmY!cMFn);gIQX=!`Q*77cJTDe<`beq)RJ{Pjxa zXH+x@O#%U6a)goIa)+d2=h2UoMH!NV7N({%1DUQv^@HWU*SX$Hc57WUUDj;y6-=9j zfNs~=tGHu+ZhVY~Eg>`w>V|0@=q}c#zFI%sR9g@+(EF-SxzGPrbQDtV!{F;6R^h{3 zysvfOvoFvj|KfJ&-ce(o8XHiRj?h?K z^h{lo$dotw=9L<|+yC;1eKTL4zq`91(#zdTpcRQ^zoz>v&B*SI-FrKrVI|6P?LIUa z#||#V1HgWeI2>fKMV|nw_hub^zx6-j{L8gIANRlZ<;zF;ACfj^rR*kBIYxVMhd`t3 zY%T`yGSRJfBDv_oqj29DDeB|7kkl46Z54?*tIm<<6PN^*ZQu6Qe*I}J!W}=o9fecO z2lRkRd@1)%9#NGpfFUe(1ISpU9W#+)KZ5c>59cvVI^Jc?6T1K!jc-;0j_a!&H$TsaQ&M z`|%&L*YX7T9B#!3HrZ@PR-;=@&_G=b@|%AUkxjs)0R48JHkin}=JX|7>wVJ`PF7_~ z0afQWC#@fzzDg-^sXlJOCN#)GR@ zm=h(jm}@+sKYP>bw;Cc`9(0nTCw01@Rh(;fa~Wft#Hr66C-L#?3Sf#<1a$hZ7wYA$ zz7f$=|17pS+hxR9MM;$*>W0bd^n>n9t_+~~%d>Mr)t4HS%Ot`~^3SgBmq>U0rOYmKDrO(X_TMe`Ccaf8=1&&!5KoDj!{9lil$x zZF-YkXBTjuMHIB6gZcs|$QODZ(LwR+%>bHlC>MW2d0~dCeFPy+8Y*|^c+ut?F^5L{Lb%ZW-PY`k}_neT(IZ5=g}8CD z>q}2oJEI=CUtM~iQKKL>R0B)v9Q}9BT~61m{u-(1qhnd>9qH$Nm-$GoVd$4vrV(1@ zgA%#^V6CmP?7@qvQD#fuW=K9EDV4)5I`FkO!0nr2k+EsR$ghG2ip2(Byxoz0H;R zh#Y&We$by7Udm=BPzI52lwtkhR;lo$*c79L!#p=wH6V)DEC!Em9sT=0-^$Ior4A{0 z=UxAbx)cl5Jk|W47fK`#q(|1Zj(YCZNRxY+?&9*`wGKZBHOd$NtC|h|ulSx{>*MQ8 zgDvZABGbyv{qGGGGo=)NaBBg~q^Z3fZ*7%bh2L{R{8q3NITm1-C6vSg+MZI-*;@%+z$@3+cL4OPXD% zz?Zp|E<_D9>Dfr-Tzzo5gp5`9yhJfJY0@~6Q63hDlmzbxw_ax$>;Yay|m!hDZGAl?J~T|VbzWR zG$)X&PYKqsxP3zgr(TD8f#duJO=_gUKy#*-^0;SRZc|$HdFq^H0^1G0IBvf47A*9B za8mZc`2401GvXt~>1V!<{4i@ri^hiCMk?khV5Gju%QjB6^SYSq*;9O|$W1?EaDA+S zQcCJudqX=OsyG*NZ%f(mq6OLWkw}-DMUm#Z(oIX^EC5nKn-~|K2 z6SU3|+G|!r=8U6Tc~Zo4F@cYtH^+5x8MaFDn{wahl8N%$aPB~md?Yatltqc^d;CQA z+;-~>*Yaq9tE;!ViOSs5Nh2FMk>I9@XU}|WO_c=Ya^#~78kjtV#1sVe2q#^Vm8MAN zAX&|=h+y^yT}HMTQwH`G4oW*W9{)+a(lmL@K6sz(9?lsPxhupU8B|?GCbuP7kg(kW z|DAbfyf<`Hfe=NymaOYmX1p&$+fO=wbl4G|z2`&x8TB<;PsKq|pj@;E0#=AZ6X|371Mp<3>yL0oRDO1OnmT{Kcl~Os) z6E5X$+0uCBvI)mffF4_ETbAF315>7yk&FHw$#@1Qg}p>?RKMF~?rQ?^=`0EYjsn-n z0c9Zf_6JKcPT5ad#!7=|A8@1J(nskc>$I(aRy%q8Nadlg6+t}u_ZkY89cOEEy;Wamlq<`aeBjuK7XjIZ1j?L=c%KTOIKmG*jIteN@Abbu z_ZA4)TCtd)KtJo;UkYV@ae`?|>8mv=+ z{Zy9|soyBHkPR}ldvHIpZc_&UjZCgB0QEBWX^NzjgPMBxoM#bXM)X_7T36hhl<}9J zZ667dHd@kl<+f!zSKZ}b`hQG$lEcmt0ZR8EN%5JX7kI5P0HONTqd!=Rre%Pk&Q1uh z1p#-PL%jq39;H44>&lH|q{Y9?7b;$7uI(RS7`!nO>hBTn+;hp9%YW{=?dU*^)Jxq< z^H*|N7Qj@TU5{@D!f{kt>+W|F?N(uo*IJ@=`|GP}t9v<$7TyhaTy@CCad}+)E?RIq zc@sj_&Lj3k|F(LP!AVoY+iHC3ch{r$Pd}cs(h#w(b#{ICZKHhS$dcfT^612+V;X1k z8A8o<>AMr=p6PmpkIq_1lz0Tmvh#<^q^tRDBv8PO#aiQ}mjP2v+gd!b4=)0f0j_!@ z*lcZFR9{f>87Hfshtm{eyuU8(QHSR~bbZY-X(WLsg{XF~v(xp#Of;vaw4Pj8%Or<% zs5qR9ZMTeF7_*^3ff_?!pad4rU>fJ089ZDKrJO^Ojvd~ z?Q^IGUPNi8k?Y2$ou_AyWZ$uJMuo zdTqpEODh4jv$eZ9?>AHq1jnF9PpZq@dfhR*$B1(gSYV1hbD{r6NQ;> z)!XW{1pvOjB^eSo{pF*DLavvsMQVu=UpV7vSDZC6(!r1UJjXj+!qsi2aB;}SB)mBN zzjN*WZ}0tor;cBFhX@4BNQ0EegXPDVa&&!?YKO9wl4<@&h`{#~&9%Wd-|zJvnbYCw zVABag%4LI_*Ta z1ey-IwE-ws$%N(-`~#tTe@Gu0QJq(WHpjXQ%Uyv_=-=WDFv9j*C!+ZP#&oCkZbCfW z@!5BrBI#!ZG&`bbdBkRV-0jtA|6DPl%uyLhHCY)4xCd|t)*OuFY-pE2Cq!~IP;d0N zn6=&hE?idlAT0GK{@Q^ZQJ+UIWj%Say0i0H=wL<1o@4T_U~2JQsuO~g4)Q`vp0o@# z4r}$|hvv6KXys4$U8i@Bf7`k8?xk`qhYioO?{;XU@?)wM$qxjCtOkNe0%i~OVtXVH zY3fDGeIF;jM|_XndGtksFJHAYIo9z;Ccr{5{|6Ala$xf1kof9ooS+jH?S+|CZhd3k zAly*pbF$IwLbl7edcNEh2l$T@8Mk>PGplEw7dS8XQFQ@fehyD^0%CeVdgu^JHeD*b z3npHd(ODpHNqv1(Yx09^*xG@eo%vLg!$)ptww2Kxq0iA`Fg7Zbl1z#LRS-z5!BJub z$4!A%A0Q;9vSq2Rv6n|N=cESm!Y4L&+1p#%rL(Fm-f(WZRB>oX+pa<;0T203N(tYu zX<3sF0H#CzhvU^sk_`{C8bKd`!^;9f)f**Pcl5=cw2lHcqX*D!WkBSL3a<_d$MBz) zuSX5Jyf32jMsy{8+|B&qrmz%^htEY1M$)5}!l*E;P;NpHL`PHx$L;Pf*e zH_2=eNdy?}lmE0rt4(u^RuX-CCGKJm)P^~XCY^Ju^%3<~!6lkA$gYU=~%cg9Q;A;$$^_i0$1%loZ zU6fm$jqUSY{>(w8=RZ$uj@LL_DJrPF4q)>@-zu%{sOjkc@S5DH^s)U=^fKr#jRoa& zJXH_aD=gI&p}a{?Eil7=8YmH9;FY|WDoZH(kEny_lu)}AF7Bm zlP81FH;EyjFx7dhPbP{xGbB(Kni9?p2TAeu7kpOXkxN6er?OiCPdRB)k^N3!)=RNwK_BL6@HT?S&CG%Mp(6iaV{h$R( zIu9Qc0kzfJS~^az;yg#iKM$RG&^&Zp>Q$3R5Bx~xM=b3~-7nYQa({Rb02O|V1f8qF z$klH0iRC$cC?DN^08W5vT4>6JhDNZ-66W@h$e7%C4z#xVe-w@V=>jCgSYxvmAco9VZh= zNlJu5=DHK6)j5-EhjKT@T{L~ROKEQ(2e;~~f2wTRFuM5dBHL&DZ1c=ULf?cev*Yc| zyz(dX>?m~Sl-c_}TE-tN%cn|5r(pUd;W)Bo>uyE@%If(K*kKa$4UaS8M}E zk6(t|spYMC128w%9Wwy+p(8&=DpPZ4M}ZPz-|X5+E6WR1NM&CMf-7?&TwelPlh>pk zb=pjFB)7ANR$>|PwIf1`b_m_tg{a1^sgqPq$tP;ah&JE}b;=NgJ-*+i<#4XB73(IJ zuteNd9wo1w(B3^jKt>6+(%6vxbKl`yt*oO5U%aSXxCP?8+0ib%1bTKFJJv_JN4_z! zlmufB^$Ai=x?bR;6~4mQuaIRdHcos~aPXS>m$OdG-hdZEg6@P|p7O^59$Df|6m?O+0Z*OTR8M`2cYu zrU?Yy&J_Q8(t7mp7BU@iFvUljf6)J8Ut_f@tsbw=TeIr9Pk;s0^Jp)38F2+Mo=4HA zIs@aO6G#YSB9R9|-bX|yNd5tCld!gi-dlGn2$w3uQ|btGa^c99(_ zNJ4Qt!@YX~ou&%Amk+FT zp!Y={t_?wp;*JWD-QLY56=ls4&yTjfb(%Z9dGgd^j|3=xTAu_72~;wJE@1)EXBo0t zJpJ?>atuR!@wpgvi3->5#3Z<_IU;PTqN^xx#~|v3oG7dAM>m%*9T0P;9dHY)WPSje z_%`H%(K%Q#shhC)g3Q?W6b|9r68XBJcrEeuSYZcxgBufC(50KzhEeAGe$BnhVNXK{$cj3ulr z;Io#uGFx6~nl)XGbLRa?o#iil_!^@Cp34~k@IyqHU?;Jj;Sa@j4jy*}~=qzK1`Zp8sGt9x~vc-g>&fQWVzcXb=Nywvdc z@;lt9@Pzr7`7AA5!F4nHd5sc1mZj*7S1=g;CTV@Omjv&0gORP~osjW#iK4#OGv_*v zTz+mm=`j45)y_=*A!`o+>uF?!31VWM2{}rNsKf+O%HYv3-sC0w39-1Q^ntMcgMdVZ zcs=PQx#ts%q)qcc?3h(qpC6SqLq0zahsl6kKO`%a*g(_pwcYy;vWHRfo62FE(e&b`WxwNZ)qZ_DT2hl+JG3|t5X*|xzrvP#{)A8eL;n2#%I5zG z#U(T)qDP6Nwafvy2t>I;UuS}MoNpr7jmF4@Z6YK`uUU^V%RC)Qur zhR{433ZK7K4+Mal)7%JcuGJ-YwSeY4G=*nn=beI5|G>7kdoH9|S)&i%jEdB!JQEskkAcOCZF==GAk zeqhB3LuzV)|G@&cMb9Ms!NR>W@$hcT`c!zq!pWf>`;z67N(ZKh4)~X)WosHhl?i6_ z<46by7>6+1AboAC*?ostK;Mp>z-+3v{7?UPM%ggaVVkqQnBKd7^0jgfFe~{CK4oV& zn@NXLZ2(LAar+-En_G$uDw_0Sc?+GxXk9D)gGGb(<#qA`ns6r+&5Q&j7(9dtxUh@h zdgu%guSP=YNB(jhx59nVpKzP6pEn_>F4Lf>k12((gHMcu{{3CTuns$jZ_@u*7hQ=U zShqqr=v@8SK;U0@x(zTSx0J`VmEXGZoQ*vnzr1{IpJL`AJNuma$|adM6B?nfzytWZ zLHN^nZr#OyWX@6msrgaFlATEa{_jTt{&(XU;fCG7HyYN#7ZG8@HZIt|f6f_y8c&BZ zI`${T-+Cu+I_Q#v@}HjEpQg+(z}=N;v6B~>9@|gtgg*XbT(;e3x&u|80L_4LHIw?% zQOX3oc<9Zo%%56ML(V1Gym^`#TNvtTZ>scBR6tkez=x9m<@xtwQ0srN_vV36_iO*S ziWEvIWXUKbds(uCX+x4^7cmvGCCSd1Pe>$8NJ=tELYB!c+hiwO_I=;8%~-}Ti{HEZ zd+zhx_x+sbIp6PnzR&YL=lS_V!!(~|-kW?CFB&wRv)#)-@(JT-D<$09Cr!>%W@Z}?*R57y! zP!QZ1dKLq|nag(01&t3$tMyG92(6=NhDD%2Pye+Y&|mDsKmFfcI@P!hUMuj`G%0DF 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 C+8Rj! literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/top_sd.jpg b/board/Microchip_M2S010/IMAGE/top_sd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a28c47f010871c69b69bc02b9cd244240b7a5fb2 GIT binary patch literal 122397 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 TX1fR;c;Jalb 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

    Lj~Wt^wCa)ec7 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 literal 0 HcmV?d00001 diff --git a/board/Microchip_M2S010/IMAGE/uart_printf.jpg b/board/Microchip_M2S010/IMAGE/uart_printf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b97e6895e6b55bf81886c1d30abf0760a6450e5 GIT binary patch literal 26893 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 + + + + + + + + diff --git a/board/Microchip_M2S010/KEIL/hello_world/JLinkSettings.ini b/board/Microchip_M2S010/KEIL/hello_world/JLinkSettings.ini new file mode 100644 index 00000000..39b6d054 --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/JLinkSettings.ini @@ -0,0 +1,39 @@ +[BREAKPOINTS] +ForceImpTypeAny = 0 +ShowInfoWin = 1 +EnableFlashBP = 2 +BPDuringExecution = 0 +[CFI] +CFISize = 0x00 +CFIAddr = 0x00 +[CPU] +MonModeVTableAddr = 0xFFFFFFFF +MonModeDebug = 0 +MaxNumAPs = 0 +LowPowerHandlingMode = 0 +OverrideMemMap = 0 +AllowSimulation = 1 +ScriptFile="" +[FLASH] +CacheExcludeSize = 0x00 +CacheExcludeAddr = 0x00 +MinNumBytesFlashDL = 0 +SkipProgOnCRCMatch = 1 +VerifyDownload = 1 +AllowCaching = 1 +EnableFlashDL = 2 +Override = 0 +Device="ARM7" +[GENERAL] +WorkRAMSize = 0x00 +WorkRAMAddr = 0x00 +RAMUsageLimit = 0x00 +[SWO] +SWOLogFile="" +[MEM] +RdOverrideOrMask = 0x00 +RdOverrideAndMask = 0xFFFFFFFF +RdOverrideAddr = 0xFFFFFFFF +WrOverrideOrMask = 0x00 +WrOverrideAndMask = 0xFFFFFFFF +WrOverrideAddr = 0xFFFFFFFF diff --git a/board/Microchip_M2S010/KEIL/hello_world/M2Sxxx_esram.ini b/board/Microchip_M2S010/KEIL/hello_world/M2Sxxx_esram.ini new file mode 100644 index 00000000..ad9ad3a4 --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/M2Sxxx_esram.ini @@ -0,0 +1,26 @@ +FUNC void Setup (void) { + _WDWORD(0x4003806C, 0x00000000); // Watchdog disable + _WDWORD(0xE000ED08, 0x20000000); // Relocate vector table to start of eSRAM (0x20000000) +} + +FUNC void SetupPC_SP (void) { + SP = _RDWORD(0x20000000); // Setup Stack Pointer + PC = _RDWORD(0x20000004); // Setup Program Counter +} + +/*------------------------------------------------------------------- +** Invoke the function at debugger startup +**-----------------------------------------------------------------*/ + +Setup(); +SetupPC_SP(); + +/*------------------------------------------------------------------- +** Execute upon software RESET +**-----------------------------------------------------------------*/ +FUNC void OnResetExec(void) { + Setup(); + SetupPC_SP(); +} + + diff --git a/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvoptx b/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvoptx new file mode 100644 index 00000000..31fff30f --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvoptx @@ -0,0 +1,821 @@ + + + + 1.0 + +

    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + Microchip_M2S010 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Obj\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 4 + + + + + + + + + + .\M2Sxxx_esram.ini + Segger\JL2CM3.dll + + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + 猬:w< ?< ?/a + + + 0 + JL2CM3 + -U10000387 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0M2Sxxx_256.FLM -FS00 -FL040000 -FP0($$Device:M2S010$Flash\M2Sxxx_256.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0M2Sxxx_256 -FS00 -FL040000 -FP0($$Device:M2S010$Flash\M2Sxxx_256.FLM)) + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + Application/MDK-ARM + 0 + 0 + 0 + 0 + + 1 + 1 + 2 + 0 + 0 + 0 + .\startup_m2sxxx.s + startup_m2sxxx.s + 0 + 0 + + + + + Application/User + 0 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\main.c + main.c + 0 + 0 + + + 2 + 3 + 5 + 0 + 0 + 0 + ..\..\BSP\Inc\main.h + main.h + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\..\BSP\Src\mcu_init.c + mcu_init.c + 0 + 0 + + + 2 + 5 + 5 + 0 + 0 + 0 + ..\..\BSP\Inc\mcu_init.h + mcu_init.h + 0 + 0 + + + 2 + 6 + 1 + 0 + 0 + 0 + ..\..\BSP\sys_config\sys_config.c + sys_config.c + 0 + 0 + + + 2 + 7 + 5 + 0 + 0 + 0 + ..\..\BSP\sys_config\sys_config_mss_clocks.h + sys_config_mss_clocks.h + 0 + 0 + + + + + Drivers/SmartFusion2_HAL_Driver + 0 + 0 + 0 + 0 + + 3 + 8 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\Src\mss_uart.c + mss_uart.c + 0 + 0 + + + 3 + 9 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\Src\mss_gpio.c + mss_gpio.c + 0 + 0 + + + + + Drivers/CMSIS + 0 + 0 + 0 + 0 + + 4 + 10 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\system_m2sxxx.c + system_m2sxxx.c + 0 + 0 + + + 4 + 11 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm\retarget.c + retarget.c + 0 + 0 + + + 4 + 12 + 1 + 0 + 0 + 0 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm\low_level_init.c + low_level_init.c + 0 + 0 + + + + + tos/arch + 0 + 0 + 0 + 0 + + 5 + 13 + 1 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c + tos_cpu.c + 0 + 0 + + + 5 + 14 + 1 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\cortex-m3\armcc\port_c.c + port_c.c + 0 + 0 + + + 5 + 15 + 2 + 0 + 0 + 0 + ..\..\..\..\arch\arm\arm-v7m\cortex-m3\armcc\port_s.S + port_s.S + 0 + 0 + + + + + tos/kernel + 0 + 0 + 0 + 0 + + 6 + 16 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_barrier.c + tos_barrier.c + 0 + 0 + + + 6 + 17 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_binary_heap.c + tos_binary_heap.c + 0 + 0 + + + 6 + 18 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_bitmap.c + tos_bitmap.c + 0 + 0 + + + 6 + 19 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_char_fifo.c + tos_char_fifo.c + 0 + 0 + + + 6 + 20 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_completion.c + tos_completion.c + 0 + 0 + + + 6 + 21 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_countdownlatch.c + tos_countdownlatch.c + 0 + 0 + + + 6 + 22 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_event.c + tos_event.c + 0 + 0 + + + 6 + 23 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_global.c + tos_global.c + 0 + 0 + + + 6 + 24 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mail_queue.c + tos_mail_queue.c + 0 + 0 + + + 6 + 25 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_message_queue.c + tos_message_queue.c + 0 + 0 + + + 6 + 26 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mmblk.c + tos_mmblk.c + 0 + 0 + + + 6 + 27 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mmheap.c + tos_mmheap.c + 0 + 0 + + + 6 + 28 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_mutex.c + tos_mutex.c + 0 + 0 + + + 6 + 29 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_pend.c + tos_pend.c + 0 + 0 + + + 6 + 30 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_mail_queue.c + tos_priority_mail_queue.c + 0 + 0 + + + 6 + 31 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_message_queue.c + tos_priority_message_queue.c + 0 + 0 + + + 6 + 32 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_priority_queue.c + tos_priority_queue.c + 0 + 0 + + + 6 + 33 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_ring_queue.c + tos_ring_queue.c + 0 + 0 + + + 6 + 34 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_robin.c + tos_robin.c + 0 + 0 + + + 6 + 35 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_rwlock.c + tos_rwlock.c + 0 + 0 + + + 6 + 36 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sched.c + tos_sched.c + 0 + 0 + + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sem.c + tos_sem.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_stopwatch.c + tos_stopwatch.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_sys.c + tos_sys.c + 0 + 0 + + + 6 + 40 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_task.c + tos_task.c + 0 + 0 + + + 6 + 41 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_tick.c + tos_tick.c + 0 + 0 + + + 6 + 42 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_time.c + tos_time.c + 0 + 0 + + + 6 + 43 + 1 + 0 + 0 + 0 + ..\..\..\..\kernel\core\tos_timer.c + tos_timer.c + 0 + 0 + + + + + tos/cmsis + 0 + 0 + 0 + 0 + + 7 + 44 + 1 + 0 + 0 + 0 + ..\..\..\..\osal\cmsis_os\cmsis_os.c + cmsis_os.c + 0 + 0 + + + + + tos/config + 1 + 0 + 0 + 0 + + 8 + 45 + 5 + 0 + 0 + 0 + ..\..\TOS_CONFIG\tos_config.h + tos_config.h + 0 + 0 + + + + + examples + 0 + 0 + 0 + 0 + + 9 + 46 + 1 + 0 + 0 + 0 + ..\..\..\..\examples\hello_world\hello_world.c + hello_world.c + 0 + 0 + + + + diff --git a/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvprojx b/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvprojx new file mode 100644 index 00000000..a006f544 --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/Microchip_M2S010.uvprojx @@ -0,0 +1,667 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + Microchip_M2S010 + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + M2S010 + Microsemi + Microsemi.M2Sxxx.1.0.64 + http://cores.actel-ip.com/CMSIS-Pack + IRAM(0x20000000,0x10000) IROM(0x00000000,0x40000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0M2Sxxx_256 -FS00 -FL040000 -FP0($$Device:M2S010$Flash\M2Sxxx_256.FLM)) + 0 + $$Device:M2S010$CMSIS\m2sxxx.h + + + + + + + + + + $$Device:M2S010$SVD\M2Sxxx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Obj\ + Microchip_M2S010 + 1 + 0 + 1 + 1 + 1 + .\Obj\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + + DCM.DLL + -pCM3 + SARMCM3.DLL + + TCM.DLL + -pCM3 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + "" () + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M3" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 1 + 0x0 + 0x40000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x10000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + MICROSEMI_STDIO_THRU_MMUART0 + + ..\..\BSP\Inc;..\..\BSP\sys_config;..\..\..\..\platform\hal\Microchip;..\..\..\..\platform\hal\Microchip\CortexM3;..\..\..\..\platform\hal\Microchip\CortexM3\Keil;..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\Inc;..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS;..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m3\armcc;..\..\..\..\kernel\core\include;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\TOS_CONFIG + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x00000000 + 0x20000000 + + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm\smartfusion2_execute_in_place.sct + + + + + + + + + + + Application/MDK-ARM + + + startup_m2sxxx.s + 2 + .\startup_m2sxxx.s + + + + + Application/User + + + main.c + 1 + ..\..\BSP\Src\main.c + + + main.h + 5 + ..\..\BSP\Inc\main.h + + + mcu_init.c + 1 + ..\..\BSP\Src\mcu_init.c + + + mcu_init.h + 5 + ..\..\BSP\Inc\mcu_init.h + + + sys_config.c + 1 + ..\..\BSP\sys_config\sys_config.c + + + sys_config_mss_clocks.h + 5 + ..\..\BSP\sys_config\sys_config_mss_clocks.h + + + + + Drivers/SmartFusion2_HAL_Driver + + + mss_uart.c + 1 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\Src\mss_uart.c + + + mss_gpio.c + 1 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\Src\mss_gpio.c + + + + + Drivers/CMSIS + + + system_m2sxxx.c + 1 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\system_m2sxxx.c + + + retarget.c + 1 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm\retarget.c + + + low_level_init.c + 1 + ..\..\..\..\platform\vendor_bsp\Microchip\SmartFusion2\CMSIS\startup_arm\low_level_init.c + + + + + tos/arch + + + tos_cpu.c + 1 + ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c + + + port_c.c + 1 + ..\..\..\..\arch\arm\arm-v7m\cortex-m3\armcc\port_c.c + + + port_s.S + 2 + ..\..\..\..\arch\arm\arm-v7m\cortex-m3\armcc\port_s.S + + + + + tos/kernel + + + tos_barrier.c + 1 + ..\..\..\..\kernel\core\tos_barrier.c + + + tos_binary_heap.c + 1 + ..\..\..\..\kernel\core\tos_binary_heap.c + + + tos_bitmap.c + 1 + ..\..\..\..\kernel\core\tos_bitmap.c + + + tos_char_fifo.c + 1 + ..\..\..\..\kernel\core\tos_char_fifo.c + + + tos_completion.c + 1 + ..\..\..\..\kernel\core\tos_completion.c + + + tos_countdownlatch.c + 1 + ..\..\..\..\kernel\core\tos_countdownlatch.c + + + tos_event.c + 1 + ..\..\..\..\kernel\core\tos_event.c + + + tos_global.c + 1 + ..\..\..\..\kernel\core\tos_global.c + + + tos_mail_queue.c + 1 + ..\..\..\..\kernel\core\tos_mail_queue.c + + + tos_message_queue.c + 1 + ..\..\..\..\kernel\core\tos_message_queue.c + + + tos_mmblk.c + 1 + ..\..\..\..\kernel\core\tos_mmblk.c + + + tos_mmheap.c + 1 + ..\..\..\..\kernel\core\tos_mmheap.c + + + tos_mutex.c + 1 + ..\..\..\..\kernel\core\tos_mutex.c + + + tos_pend.c + 1 + ..\..\..\..\kernel\core\tos_pend.c + + + tos_priority_mail_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_mail_queue.c + + + tos_priority_message_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_message_queue.c + + + tos_priority_queue.c + 1 + ..\..\..\..\kernel\core\tos_priority_queue.c + + + tos_ring_queue.c + 1 + ..\..\..\..\kernel\core\tos_ring_queue.c + + + tos_robin.c + 1 + ..\..\..\..\kernel\core\tos_robin.c + + + tos_rwlock.c + 1 + ..\..\..\..\kernel\core\tos_rwlock.c + + + tos_sched.c + 1 + ..\..\..\..\kernel\core\tos_sched.c + + + tos_sem.c + 1 + ..\..\..\..\kernel\core\tos_sem.c + + + tos_stopwatch.c + 1 + ..\..\..\..\kernel\core\tos_stopwatch.c + + + tos_sys.c + 1 + ..\..\..\..\kernel\core\tos_sys.c + + + tos_task.c + 1 + ..\..\..\..\kernel\core\tos_task.c + + + tos_tick.c + 1 + ..\..\..\..\kernel\core\tos_tick.c + + + tos_time.c + 1 + ..\..\..\..\kernel\core\tos_time.c + + + tos_timer.c + 1 + ..\..\..\..\kernel\core\tos_timer.c + + + + + tos/cmsis + + + cmsis_os.c + 1 + ..\..\..\..\osal\cmsis_os\cmsis_os.c + + + + + tos/config + + + tos_config.h + 5 + ..\..\TOS_CONFIG\tos_config.h + + + + + examples + + + hello_world.c + 1 + ..\..\..\..\examples\hello_world\hello_world.c + + + + + + + + + + + + + +
    diff --git a/board/Microchip_M2S010/KEIL/hello_world/RTE/_Microchip_M2S010/RTE_Components.h b/board/Microchip_M2S010/KEIL/hello_world/RTE/_Microchip_M2S010/RTE_Components.h new file mode 100644 index 00000000..f5e7b981 --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/RTE/_Microchip_M2S010/RTE_Components.h @@ -0,0 +1,20 @@ + +/* + * Auto generated Run-Time-Environment Component Configuration File + * *** Do not modify ! *** + * + * Project: 'Microchip_M2S010' + * Target: 'Microchip_M2S010' + */ + +#ifndef RTE_COMPONENTS_H +#define RTE_COMPONENTS_H + + +/* + * Define the Device Header File: + */ +#define CMSIS_device_header "m2sxxx.h" + + +#endif /* RTE_COMPONENTS_H */ diff --git a/board/Microchip_M2S010/KEIL/hello_world/startup_m2sxxx.s b/board/Microchip_M2S010/KEIL/hello_world/startup_m2sxxx.s new file mode 100644 index 00000000..d59014cb --- /dev/null +++ b/board/Microchip_M2S010/KEIL/hello_world/startup_m2sxxx.s @@ -0,0 +1,586 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 startup code for Keil-MDK. +; +; SmartFusion2 vector table and startup code for ARM tool chain. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; + +; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------ + + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00001000 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +stack_start +Stack_Mem SPACE Stack_Size +__initial_sp +stack_end + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +;=============================================================================== +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WdogWakeup_IRQHandler + DCD RTC_Wakeup_IRQHandler + DCD SPI0_IRQHandler + DCD SPI1_IRQHandler + DCD I2C0_IRQHandler + DCD I2C0_SMBAlert_IRQHandler + DCD I2C0_SMBus_IRQHandler + DCD I2C1_IRQHandler + DCD I2C1_SMBAlert_IRQHandler + DCD I2C1_SMBus_IRQHandler + DCD UART0_IRQHandler + DCD UART1_IRQHandler + DCD EthernetMAC_IRQHandler + DCD DMA_IRQHandler + DCD Timer1_IRQHandler + DCD Timer2_IRQHandler + DCD CAN_IRQHandler + DCD ENVM0_IRQHandler + DCD ENVM1_IRQHandler + DCD ComBlk_IRQHandler + DCD USB_IRQHandler + DCD USB_DMA_IRQHandler + DCD PLL_Lock_IRQHandler + DCD PLL_LockLost_IRQHandler + DCD CommSwitchError_IRQHandler + DCD CacheError_IRQHandler + DCD DDR_IRQHandler + DCD HPDMA_Complete_IRQHandler + DCD HPDMA_Error_IRQHandler + DCD ECC_Error_IRQHandler + DCD MDDR_IOCalib_IRQHandler + DCD FAB_PLL_Lock_IRQHandler + DCD FAB_PLL_LockLost_IRQHandler + DCD FIC64_IRQHandler + DCD FabricIrq0_IRQHandler + DCD FabricIrq1_IRQHandler + DCD FabricIrq2_IRQHandler + DCD FabricIrq3_IRQHandler + DCD FabricIrq4_IRQHandler + DCD FabricIrq5_IRQHandler + DCD FabricIrq6_IRQHandler + DCD FabricIrq7_IRQHandler + DCD FabricIrq8_IRQHandler + DCD FabricIrq9_IRQHandler + DCD FabricIrq10_IRQHandler + DCD FabricIrq11_IRQHandler + DCD FabricIrq12_IRQHandler + DCD FabricIrq13_IRQHandler + DCD FabricIrq14_IRQHandler + DCD FabricIrq15_IRQHandler + DCD GPIO0_IRQHandler + DCD GPIO1_IRQHandler + DCD GPIO2_IRQHandler + DCD GPIO3_IRQHandler + DCD GPIO4_IRQHandler + DCD GPIO5_IRQHandler + DCD GPIO6_IRQHandler + DCD GPIO7_IRQHandler + DCD GPIO8_IRQHandler + DCD GPIO9_IRQHandler + DCD GPIO10_IRQHandler + DCD GPIO11_IRQHandler + DCD GPIO12_IRQHandler + DCD GPIO13_IRQHandler + DCD GPIO14_IRQHandler + DCD GPIO15_IRQHandler + DCD GPIO16_IRQHandler + DCD GPIO17_IRQHandler + DCD GPIO18_IRQHandler + DCD GPIO19_IRQHandler + DCD GPIO20_IRQHandler + DCD GPIO21_IRQHandler + DCD GPIO22_IRQHandler + DCD GPIO23_IRQHandler + DCD GPIO24_IRQHandler + DCD GPIO25_IRQHandler + DCD GPIO26_IRQHandler + DCD GPIO27_IRQHandler + DCD GPIO28_IRQHandler + DCD GPIO29_IRQHandler + DCD GPIO30_IRQHandler + DCD GPIO31_IRQHandler + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + +;=============================================================================== +; Reset Handler +; + AREA |.text|, CODE, READONLY + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT low_level_init + IMPORT __main + + ;--------------------------------------------------------------- + ; Initialize stack RAM content to initialize the error detection + ; and correction (EDAC). This is done if EDAC is enabled for the + ; eSRAM blocks or the ECC/SECDED is enabled for the MDDR. + ; Register R11 is used to keep track of the RAM intialization + ; decision outcome for later use for heap RAM initialization at + ; the end of the startup code. + ; Please note that the stack has to be located in eSRAM at this + ; point and cannot be located in MDDR since MDDR is not available + ; at this point. + ; The bits of the content of register R11 have the foolwing + ; meaning: + ; reg11[0]: eSRAM EDAC enabled + ; reg11[1]: MDDR ECC/SECDED enabled + ; + MOV R11, #0 + LDR R0, SF2_MDDR_MODE_CR + LDR R0, [R0] + LDR R1, SF2_EDAC_CR + LDR R1, [R1] + AND R1, R1, #3 + AND R0, R0, #0x1C + CMP R0, #0x14 + BNE check_esram_edac + ORR R11, R11, #2 +check_esram_edac + CMP R1, #0 + BEQ check_stack_init + ORR R11, R11, #1 +check_stack_init + CMP R11, #0 + BEQ call_system_init +clear_stack + LDR R0, =stack_start + LDR R1, =stack_end + LDR R2, RAM_INIT_PATTERN + BL fill_memory ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + + ;--------------------------------------------------------------- + ; Call SystemInit() to perform Libero specified configuration. + ; +call_system_init + LDR R0, =SystemInit + BLX R0 + LDR R0, =low_level_init + BLX R0 + + ;--------------------------------------------------------------- + ; Modify MDDR configuration if ECC/SECDED is enabled for MDDR. + ; Enable write combining on MDDR bridge, disable non-bufferable + ; regions. + ; +adjust_mddr_cfg + AND R10, R11, #0x2 + CMP R10, #0 + BEQ branch_to_main + LDR R0, SF2_DDRB_NB_SIZE + LDR R1, SF2_DDRB_CR + LDR R2, [R0] + LDR R3, [R1] + push {R0, R1, R2, R3} + MOV R2, #0 + MOV R3, #0xFF + STR R2, [R0] + STR R3, [R1] + + ; -------------------------------------------------------------- + ; Initialize heap RAM content to initialize the error detection + ; and correction (EDAC). We use the decision made earlier in the + ; startup code of whether or not the stack RAM should be + ; initialized. This decision is held in register R11. A non-zero + ; value indicates that the RAM content should be initialized. + ; +clear_heap + CMP R11, #0 + BEQ branch_to_main + LDR R0, =__heap_base + LDR R1, =__heap_limit + LDR R2, HEAP_INIT_PATTERN + BL fill_memory ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + + ;--------------------------------------------------------------- + ; Branch to __main + ; +branch_to_main + LDR R0, =__main + BX R0 + ENDP + +SF2_EDAC_CR DCD 0x40038038 +SF2_DDRB_NB_SIZE DCD 0x40038030 +SF2_DDRB_CR DCD 0x40038034 +SF2_MDDR_MODE_CR DCD 0x40020818 +RAM_INIT_PATTERN DCD 0x00000000 +HEAP_INIT_PATTERN DCD 0x00000000 + +;------------------------------------------------------------------------------ +; * fill_memory. +; * @brief Fills memory with Pattern contained in r2 +; * This routine uses the stmne instruction to copy 4 words at a time which is very efficient +; * The instruction can only write to word aligned memory, hence the code at the start and end of this routine +; * to handle possible unaligned bytes at start and end. +; * +; * @param param1 r0: start address +; * @param param2 r1: end address +; * @param param3 r2: FILL PATTETN +; * +; * @note note: Most efficient if memory aligned. Linker ALIGN(4) command +; * should be used as per example linker scripts +; * Stack is not used in this routine +; * register contents r4, r5, r6, r7, r8, r9, will are used and will be returned undefined +; * @return none - Used Registers are not preserved +; */ + +fill_memory PROC + ;push {r4, r5, r6, r7, r8, r9, lr} We will not use stack as may be not available */ + cmp r0, r1 + beq fill_memory_exit ; Exit early if source and destination the same */ + ; copy non-aligned bytes at the start */ + and.w r6, r0, #3 ; see if non-alaigned bytes at the start */ + cmp r6, #0 + beq fill_memory_end_start ; no spare bytes at start, continue */ + mov r5, #4 + sub.w r4, r5, r6 ; now have number of non-aligned bytes in r4 */ + mov r7, #8 + mul r8, r7, r6 ; calculate number of shifts required to initalise pattern for non-aligned bytes */ + mov r9, r2 ; copy pattern */ + ror r9, r9, r8 ; Rotate right to keep pattern consistent */ +fill_memory_spare_bytes_start ; From above, R0 contains source address, R1 contains destination address */ + cmp r4, #0 ; no spare bytes at end- end now */ + beq fill_memory_end_start + strb r9, [r0] ; fill byte */ + ror.w r9, r9, r7 ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 ; add one to address */ + subs r4, r4, #1 ; subtract one from byte count 1 */ + b fill_memory_spare_bytes_start +fill_memory_end_start + mov r6, #0 + mov r7, r1 ; save end address */ + subs r1, r1, r0 ; Calculate number of bytes to fill */ + mov r8,r1 ; Save copy of byte count */ + asrs r1,r1, #4 ; Div by 16 to get number of chunks to move */ + mov r9, r2 ; copy pattern */ + mov r4, r2 ; copy pattern */ + mov r5, r2 ; copy pattern */ + cmp r1, r6 ; compare to see if all chunks copied */ + beq fill_memory_spare_bytes_end +fill_memory_loop + it ne + stmne r0!, {r2, r4, r5, r9} ; copy pattern- note: stmne instruction must me word aligned (address in r0) */ + add.w r6, r6, #1 ; use Thumb2- make sure condition code reg. not updated */ + cmp r1, r6 ; compare to see if all chunks copied */ + bne fill_memory_loop +fill_memory_spare_bytes_end ; copy spare bytes at the end if any */ + and.w r8, r8, #15 ; get spare bytes --check can you do an ands? */ +fill_memory_spare_end_loop ; From above, R0 contains source address, R1 contains destination address */ + cmp r8, #0 ; no spare bytes at end- end now */ + beq fill_memory_exit + strb r2, [r0] + ror.w r2, r2, #8 ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 ; add one to address */ + subs r8, r8, #1 ; subtract one from byte count 1 */ + b fill_memory_spare_end_loop +fill_memory_exit + bx lr ; We will not use pop as stack may be not available */ + ENDP + + + +;=============================================================================== +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WdogWakeup_IRQHandler [WEAK] + EXPORT RTC_Wakeup_IRQHandler [WEAK] + EXPORT SPI0_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT I2C0_IRQHandler [WEAK] + EXPORT I2C0_SMBAlert_IRQHandler [WEAK] + EXPORT I2C0_SMBus_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT I2C1_SMBAlert_IRQHandler [WEAK] + EXPORT I2C1_SMBus_IRQHandler [WEAK] + EXPORT UART0_IRQHandler [WEAK] + EXPORT UART1_IRQHandler [WEAK] + EXPORT EthernetMAC_IRQHandler [WEAK] + EXPORT DMA_IRQHandler [WEAK] + EXPORT Timer1_IRQHandler [WEAK] + EXPORT Timer2_IRQHandler [WEAK] + EXPORT CAN_IRQHandler [WEAK] + EXPORT ENVM0_IRQHandler [WEAK] + EXPORT ENVM1_IRQHandler [WEAK] + EXPORT ComBlk_IRQHandler [WEAK] + EXPORT USB_IRQHandler [WEAK] + EXPORT USB_DMA_IRQHandler [WEAK] + EXPORT PLL_Lock_IRQHandler [WEAK] + EXPORT PLL_LockLost_IRQHandler [WEAK] + EXPORT CommSwitchError_IRQHandler [WEAK] + EXPORT CacheError_IRQHandler [WEAK] + EXPORT DDR_IRQHandler [WEAK] + EXPORT HPDMA_Complete_IRQHandler [WEAK] + EXPORT HPDMA_Error_IRQHandler [WEAK] + EXPORT ECC_Error_IRQHandler [WEAK] + EXPORT MDDR_IOCalib_IRQHandler [WEAK] + EXPORT FAB_PLL_Lock_IRQHandler [WEAK] + EXPORT FAB_PLL_LockLost_IRQHandler [WEAK] + EXPORT FIC64_IRQHandler [WEAK] + EXPORT FabricIrq0_IRQHandler [WEAK] + EXPORT FabricIrq1_IRQHandler [WEAK] + EXPORT FabricIrq2_IRQHandler [WEAK] + EXPORT FabricIrq3_IRQHandler [WEAK] + EXPORT FabricIrq4_IRQHandler [WEAK] + EXPORT FabricIrq5_IRQHandler [WEAK] + EXPORT FabricIrq6_IRQHandler [WEAK] + EXPORT FabricIrq7_IRQHandler [WEAK] + EXPORT FabricIrq8_IRQHandler [WEAK] + EXPORT FabricIrq9_IRQHandler [WEAK] + EXPORT FabricIrq10_IRQHandler [WEAK] + EXPORT FabricIrq11_IRQHandler [WEAK] + EXPORT FabricIrq12_IRQHandler [WEAK] + EXPORT FabricIrq13_IRQHandler [WEAK] + EXPORT FabricIrq14_IRQHandler [WEAK] + EXPORT FabricIrq15_IRQHandler [WEAK] + EXPORT GPIO0_IRQHandler [WEAK] + EXPORT GPIO1_IRQHandler [WEAK] + EXPORT GPIO2_IRQHandler [WEAK] + EXPORT GPIO3_IRQHandler [WEAK] + EXPORT GPIO4_IRQHandler [WEAK] + EXPORT GPIO5_IRQHandler [WEAK] + EXPORT GPIO6_IRQHandler [WEAK] + EXPORT GPIO7_IRQHandler [WEAK] + EXPORT GPIO8_IRQHandler [WEAK] + EXPORT GPIO9_IRQHandler [WEAK] + EXPORT GPIO10_IRQHandler [WEAK] + EXPORT GPIO11_IRQHandler [WEAK] + EXPORT GPIO12_IRQHandler [WEAK] + EXPORT GPIO13_IRQHandler [WEAK] + EXPORT GPIO14_IRQHandler [WEAK] + EXPORT GPIO15_IRQHandler [WEAK] + EXPORT GPIO16_IRQHandler [WEAK] + EXPORT GPIO17_IRQHandler [WEAK] + EXPORT GPIO18_IRQHandler [WEAK] + EXPORT GPIO19_IRQHandler [WEAK] + EXPORT GPIO20_IRQHandler [WEAK] + EXPORT GPIO21_IRQHandler [WEAK] + EXPORT GPIO22_IRQHandler [WEAK] + EXPORT GPIO23_IRQHandler [WEAK] + EXPORT GPIO24_IRQHandler [WEAK] + EXPORT GPIO25_IRQHandler [WEAK] + EXPORT GPIO26_IRQHandler [WEAK] + EXPORT GPIO27_IRQHandler [WEAK] + EXPORT GPIO28_IRQHandler [WEAK] + EXPORT GPIO29_IRQHandler [WEAK] + EXPORT GPIO30_IRQHandler [WEAK] + EXPORT GPIO31_IRQHandler [WEAK] + + +WdogWakeup_IRQHandler +RTC_Wakeup_IRQHandler +SPI0_IRQHandler +SPI1_IRQHandler +I2C0_IRQHandler +I2C0_SMBAlert_IRQHandler +I2C0_SMBus_IRQHandler +I2C1_IRQHandler +I2C1_SMBAlert_IRQHandler +I2C1_SMBus_IRQHandler +UART0_IRQHandler +UART1_IRQHandler +EthernetMAC_IRQHandler +DMA_IRQHandler +Timer1_IRQHandler +Timer2_IRQHandler +CAN_IRQHandler +ENVM0_IRQHandler +ENVM1_IRQHandler +ComBlk_IRQHandler +USB_IRQHandler +USB_DMA_IRQHandler +PLL_Lock_IRQHandler +PLL_LockLost_IRQHandler +CommSwitchError_IRQHandler +CacheError_IRQHandler +DDR_IRQHandler +HPDMA_Complete_IRQHandler +HPDMA_Error_IRQHandler +ECC_Error_IRQHandler +MDDR_IOCalib_IRQHandler +FAB_PLL_Lock_IRQHandler +FAB_PLL_LockLost_IRQHandler +FIC64_IRQHandler +FabricIrq0_IRQHandler +FabricIrq1_IRQHandler +FabricIrq2_IRQHandler +FabricIrq3_IRQHandler +FabricIrq4_IRQHandler +FabricIrq5_IRQHandler +FabricIrq6_IRQHandler +FabricIrq7_IRQHandler +FabricIrq8_IRQHandler +FabricIrq9_IRQHandler +FabricIrq10_IRQHandler +FabricIrq11_IRQHandler +FabricIrq12_IRQHandler +FabricIrq13_IRQHandler +FabricIrq14_IRQHandler +FabricIrq15_IRQHandler +GPIO0_IRQHandler +GPIO1_IRQHandler +GPIO2_IRQHandler +GPIO3_IRQHandler +GPIO4_IRQHandler +GPIO5_IRQHandler +GPIO6_IRQHandler +GPIO7_IRQHandler +GPIO8_IRQHandler +GPIO9_IRQHandler +GPIO10_IRQHandler +GPIO11_IRQHandler +GPIO12_IRQHandler +GPIO13_IRQHandler +GPIO14_IRQHandler +GPIO15_IRQHandler +GPIO16_IRQHandler +GPIO17_IRQHandler +GPIO18_IRQHandler +GPIO19_IRQHandler +GPIO20_IRQHandler +GPIO21_IRQHandler +GPIO22_IRQHandler +GPIO23_IRQHandler +GPIO24_IRQHandler +GPIO25_IRQHandler +GPIO26_IRQHandler +GPIO27_IRQHandler +GPIO28_IRQHandler +GPIO29_IRQHandler +GPIO30_IRQHandler +GPIO31_IRQHandler + B . + + ENDP + +mscc_post_hw_cfg_init PROC + EXPORT mscc_post_hw_cfg_init [WEAK] + BX LR + ENDP + + ALIGN + + +;=============================================================================== +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + + END diff --git a/board/Microchip_M2S010/README.md b/board/Microchip_M2S010/README.md new file mode 100644 index 00000000..d16cbd71 --- /dev/null +++ b/board/Microchip_M2S010/README.md @@ -0,0 +1,80 @@ +## ç§»æ¤TencentOS-tiny到Microchip SmartFusion2系列FPGA芯片上 + +### 1. BSP简介 + +ç§»æ¤ [TencentOS-tiny](https://cloud.tencent.com/product/tos-tiny) 实时æ“作系统到一款 **FPGA 芯片——M2S010** ,è¿è¡Œhello_world示例程åºã€‚该芯片属于 Microchip(原Microsemi)公å¸SmartFusion2系列,是一款**智能混åˆåž‹FPGA**,片上除了 FPGA Fabric 逻辑部分,还包括一个 **ARM® Cortexâ„¢-M3 内核的 MCU**,主频最高 166MHz ,256KB eNVM,64KB eSRAM,集æˆGPIOã€UARTã€I2Cã€SPIã€CANã€USB等基本外设。 + +![Microchip_LOGO](./IMAGE/microchip_logo.png) + +SmartFusion2 内部框图 + +![Microsemi_Smartfusion2_BD](./IMAGE/smartfusion_block_diagram.jpg) + +### 2. 使用说明 + +#### 2.1 FPGA 工程设计 + +FPGA 部分使用 SmartDesign 图形化设计,åªä½¿ç”¨åˆ°äº†å†…部ARM处ç†å™¨ï¼Œä¸éœ€è¦å†™ HDL 代ç ï¼Œæ—¶é’Ÿé‡‡ç”¨å†…部50M RC晶振输入,PLL å€é¢‘ 100M æä¾›ç»™ MCU 使用,顶层é…置如下图所示: + +![](./IMAGE/top_sd.jpg) + +MSS 部分仅使用到了GPIO å’ŒUART,GPIO_0å’ŒGPIO_1é…ç½®æˆè¾“出输出模å¼ç”¨äºŽé©±åЍLED。 + +é…置完æˆçš„ FPGA 工程下载:[fpga_prj.rar](https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/TencentOS-tiny/fpga_prj.rar) + +管脚分é…说明: + +| 管脚åç§° | æ–¹å‘ | 管脚 | +| -------- | ---- | ---- | +| UART0_RX | 输入 | 1 | +| UART0_TX | 输出 | 2 | +| LED0 | 输出 | 129 | +| LED1 | 输出 | 128 | +| DEVRST_N | 输入 | 72 | + +#### 2.2 ARM 程åºè®¾è®¡ + +ARM 程åºä½¿ç”¨ Keil MDK 5.26 å¼€å‘,需è¦å®‰è£… M2S 系列芯片支æŒåŒ…:[Microsemi.M2Sxxx.1.0.64.pack](http://www.actel-ip.com/repositories/CMSIS-Pack/Microsemi.M2Sxxx.1.0.64.pack) + +如果官网下载失败,å¯ä»¥åˆ°ä»¥ä¸‹åœ°å€ä¸‹è½½ï¼š[Microsemi.M2Sxxx.1.0.64.pack](https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/TencentOS-tiny/Microsemi.M2Sxxx.1.0.64.pack) + +在官方生æˆçš„示例工程目录下,添加 TencentOS-tiny 内核文件,并实现一些对接函数,最终的文件结构: + +![](./IMAGE/file_structure.jpg) + +#### 2.3. 下载和è¿è¡Œ + +为了能让 J-Link 调试器连接到 ARM å†…æ ¸ï¼Œéœ€è¦æŠŠ JTAG_SEL 引脚置为低电平,如果连接正常,å¯ä»¥æ£€æµ‹åˆ° ARM 芯片,如下图所示: + +![](./IMAGE/connect_core.jpg) + +é…置对应的 Flash 编程算法: + +![](./IMAGE/flash_algorithm.jpg) + +下载完æˆï¼š + +![](./IMAGE/download_complete.jpg) + +如果编译 & 烧写无误,下载完æˆä¹‹åŽï¼Œä¼šåœ¨ä¸²å£ä¸Šçœ‹åˆ° TencentOS-tiny çš„è¿è¡Œä¿¡æ¯ï¼š + +![](./IMAGE/uart_printf.jpg) + +### 3. 注æ„事项 + +- FPGA å¼€å‘环境基于 Libero V11.8.2.4,å‘ä¸Šå…¼å®¹ï¼Œä¸æ”¯æŒä½Žç‰ˆæœ¬ Libero SoC。 +- ARM å¼€å‘环境基于 Keil MDK 5.26,使用 MDK5 需è¦å®‰è£…对应器件支æŒåŒ…,MDK4 ä¸ç”¨ã€‚ +- 调试器连接内部 ARM æ ¸æ—¶ï¼Œéœ€è¦æŠŠ JTAG_SEL 拉低,å¦åˆ™è°ƒè¯•器连接ä¸ä¸Šã€‚ +- 内核时钟需è¦å’Œ FPGA 中 MSS é…置的对应,Libero 自动生æˆçš„æ—¶é’Ÿæ–‡ä»¶ï¼Œå¯ä»¥ç›´æŽ¥æ›¿æ¢`TencentOS-tiny\board\Microchip_M2S010\BSP\sys_config`文件夹 。 + +### 4. å‚考资料 + +- [TencentOS Tiny 简介-贡献代ç ](https://github.com/Tencent/TencentOS-tiny/blob/master/README.md) +- [TencentOS Tiny 内核移æ¤å‚考指å—(Keil版)](https://github.com/Tencent/TencentOS-tiny/blob/master/doc/10.Porting_Manual_for_KEIL.md) +- [Microsemi Libero系列中文教程](https://blog.csdn.net/whik1194/article/details/102901710) +- [SmartFusion从FPGA到ARM系列教程](https://blog.csdn.net/whik1194/article/details/107104960) + +### 5. è”系我 + +- Github:[whik](https://github.com/whik) +- E-Mail:wangchao149@foxmail.com \ No newline at end of file diff --git a/board/Microchip_M2S010/TOS_CONFIG/tos_config.h b/board/Microchip_M2S010/TOS_CONFIG/tos_config.h new file mode 100644 index 00000000..fddcde72 --- /dev/null +++ b/board/Microchip_M2S010/TOS_CONFIG/tos_config.h @@ -0,0 +1,38 @@ +#ifndef _TOS_CONFIG_H_ +#define _TOS_CONFIG_H_ + +#include "m2sxxx.h" +#include "system_m2sxxx.h" + +#define TOS_CFG_TASK_PRIO_MAX 10u + +#define TOS_CFG_ROUND_ROBIN_EN 1u + +#define TOS_CFG_OBJECT_VERIFY_EN 0u + +#define TOS_CFG_TASK_DYNAMIC_CREATE_EN 0u + +#define TOS_CFG_EVENT_EN 1u + +#define TOS_CFG_MMBLK_EN 1u + +#define TOS_CFG_MMHEAP_EN 1u + +#define TOS_CFG_MMHEAP_DEFAULT_POOL_SIZE 0x100 + +#define TOS_CFG_MUTEX_EN 1u + +#define TOS_CFG_TIMER_EN 1u + +#define TOS_CFG_SEM_EN 1u + +#define TOS_CFG_IDLE_TASK_STK_SIZE 128u + +#define TOS_CFG_CPU_TICK_PER_SECOND 1000u + +#define TOS_CFG_CPU_CLOCK (SystemCoreClock) + +#define TOS_CFG_TIMER_AS_PROC 1u + +#endif /* _TOS_CONFIG_H_ */ + diff --git a/platform/hal/Microchip/CortexM3/Keil/cpu_types.h b/platform/hal/Microchip/CortexM3/Keil/cpu_types.h new file mode 100644 index 00000000..eb81d601 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/Keil/cpu_types.h @@ -0,0 +1,30 @@ +/******************************************************************************* + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * SVN $Revision: 5258 $ + * SVN $Date: 2013-03-21 18:11:02 +0530 (Thu, 21 Mar 2013) $ + */ +#ifndef __CPU_TYPES_H +#define __CPU_TYPES_H 1 + +#include + +/*------------------------------------------------------------------------------ + */ +typedef unsigned int size_t; + +/*------------------------------------------------------------------------------ + * addr_t: address type. + * Used to specify the address of peripherals present in the processor's memory + * map. + */ +typedef unsigned int addr_t; + +/*------------------------------------------------------------------------------ + * psr_t: processor state register. + * Used by HAL_disable_interrupts() and HAL_restore_interrupts() to store the + * processor's state between disabling and restoring interrupts. + */ +typedef unsigned int psr_t; + +#endif /* __CPU_TYPES_H */ diff --git a/platform/hal/Microchip/CortexM3/Keil/hal.s b/platform/hal/Microchip/CortexM3/Keil/hal.s new file mode 100644 index 00000000..6f259a43 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/Keil/hal.s @@ -0,0 +1,32 @@ +;------------------------------------------------------------------------------- +; (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. +; +; Interrupt disabling/restoration for critical section protection. +; +; SVN $Revision: 5261 $ +; SVN $Date: 2013-03-21 19:52:41 +0530 (Thu, 21 Mar 2013) $ +; + AREA |.text|, CODE, READONLY + EXPORT HAL_disable_interrupts + EXPORT HAL_restore_interrupts + +;------------------------------------------------------------------------------- +; +; +HAL_disable_interrupts \ + PROC + mrs r0, PRIMASK + cpsid I + bx lr + ENDP + +;------------------------------------------------------------------------------- +; +; +HAL_restore_interrupts \ + PROC + msr PRIMASK, r0 + bx lr + ENDP + + END diff --git a/platform/hal/Microchip/CortexM3/Keil/hw_macros.h b/platform/hal/Microchip/CortexM3/Keil/hw_macros.h new file mode 100644 index 00000000..910f10f8 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/Keil/hw_macros.h @@ -0,0 +1,96 @@ +/******************************************************************************* + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * Hardware registers access macros. + * + * THE MACROS DEFINED IN THIS FILE ARE DEPRECATED. DO NOT USED FOR NEW + * DEVELOPMENT. + * + * These macros are used to access peripheral's registers. They allow access to + * 8, 16 and 32 bit wide registers. All accesses to peripheral registers should + * be done through these macros in order to ease porting accross different + * processors/bus architectures. + * + * Some of these macros also allow to access a specific register field. + * + * SVN $Revision: 5258 $ + * SVN $Date: 2013-03-21 18:11:02 +0530 (Thu, 21 Mar 2013) $ + */ +#ifndef __HW_REGISTER_MACROS_H +#define __HW_REGISTER_MACROS_H 1 + +/*------------------------------------------------------------------------------ + * 32 bits registers access: + */ +#define HW_get_uint32_reg(BASE_ADDR, REG_OFFSET) (*((uint32_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) + +#define HW_set_uint32_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint32_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) + +#define HW_set_uint32_reg_field(BASE_ADDR, FIELD, VALUE) \ + (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ + ( \ + (uint32_t) \ + ( \ + (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ + (uint32_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ + ) \ + ) + +#define HW_get_uint32_reg_field( BASE_ADDR, FIELD ) \ + (( (*((uint32_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) + +/*------------------------------------------------------------------------------ + * 32 bits memory access: + */ +#define HW_get_uint32(BASE_ADDR) (*((uint32_t volatile *)(BASE_ADDR))) + +#define HW_set_uint32(BASE_ADDR, VALUE) (*((uint32_t volatile *)(BASE_ADDR)) = (VALUE)) + +/*------------------------------------------------------------------------------ + * 16 bits registers access: + */ +#define HW_get_uint16_reg(BASE_ADDR, REG_OFFSET) (*((uint16_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) + +#define HW_set_uint16_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint16_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) + +#define HW_set_uint16_reg_field(BASE_ADDR, FIELD, VALUE) \ + (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ + ( \ + (uint16_t) \ + ( \ + (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ + (uint16_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ + ) \ + ) + +#define HW_get_uint16_reg_field( BASE_ADDR, FIELD ) \ + (( (*((uint16_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) + +/*------------------------------------------------------------------------------ + * 8 bits registers access: + */ +#define HW_get_uint8_reg(BASE_ADDR, REG_OFFSET) (*((uint8_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET))) + +#define HW_set_uint8_reg(BASE_ADDR, REG_OFFSET, VALUE) (*((uint8_t volatile *)(BASE_ADDR + REG_OFFSET##_REG_OFFSET)) = (VALUE)) + +#define HW_set_uint8_reg_field(BASE_ADDR, FIELD, VALUE) \ + (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET)) = \ + ( \ + (uint8_t) \ + ( \ + (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & ~FIELD##_MASK) | \ + (uint8_t)(((VALUE) << FIELD##_SHIFT) & FIELD##_MASK) \ + ) \ + ) + +#define HW_get_uint8_reg_field( BASE_ADDR, FIELD ) \ + (( (*((uint8_t volatile *)(BASE_ADDR + FIELD##_OFFSET))) & FIELD##_MASK) >> FIELD##_SHIFT) + +/*------------------------------------------------------------------------------ + * 8 bits memory access: + */ +#define HW_get_uint8(BASE_ADDR) (*((uint8_t volatile *)(BASE_ADDR))) + +#define HW_set_uint8(BASE_ADDR, VALUE) (*((uint8_t volatile *)(BASE_ADDR)) = (VALUE)) + +#endif /* __HW_REGISTER_MACROS_H */ diff --git a/platform/hal/Microchip/CortexM3/Keil/hw_reg_access.s b/platform/hal/Microchip/CortexM3/Keil/hw_reg_access.s new file mode 100644 index 00000000..b9b72167 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/Keil/hw_reg_access.s @@ -0,0 +1,175 @@ +;****************************************************************************** +; (c) Copyright 2008-2013 Microsemi SoC Products Group. All rights reserved. +; +; SVN $Revision: 5258 $ +; SVN $Date: 2013-03-21 18:11:02 +0530 (Thu, 21 Mar 2013) $ +; + + AREA |.text|, CODE, READONLY + EXPORT HW_set_32bit_reg + EXPORT HW_get_32bit_reg + EXPORT HW_set_32bit_reg_field + EXPORT HW_get_32bit_reg_field + EXPORT HW_set_16bit_reg + EXPORT HW_get_16bit_reg + EXPORT HW_set_16bit_reg_field + EXPORT HW_get_16bit_reg_field + EXPORT HW_set_8bit_reg + EXPORT HW_get_8bit_reg + EXPORT HW_set_8bit_reg_field + EXPORT HW_get_8bit_reg_field + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: uint32_t value +; +HW_set_32bit_reg \ + PROC + STR R1, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; +HW_get_32bit_reg \ + PROC + LDR R0, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: int_fast8_t shift +; R2: uint32_t mask +; R3: uint32_t value +; +HW_set_32bit_reg_field \ + PROC + PUSH {R1,R2,R3,LR} + LSL.W R3, R3, R1 + AND.W R3, R3, R2 + LDR R1, [R0] + MVN.W R2, R2 + AND.W R1, R1, R2 + ORR.W R1, R1, R3 + STR R1, [R0] + POP {R1,R2,R3,PC} + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: int_fast8_t shift +; R2: uint32_t mask +; +HW_get_32bit_reg_field \ + PROC + LDR R0, [R0] + AND.W R0, R0, R2 + LSR.W R0, R0, R1 + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: uint_fast16_t value +; +HW_set_16bit_reg \ + PROC + STRH R1, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; +HW_get_16bit_reg \ + PROC + LDRH R0, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: int_fast8_t shift +; R2: uint_fast16_t mask +; R3: uint_fast16_t value +; +HW_set_16bit_reg_field \ + PROC + PUSH {R1,R2,R3,LR} + LSL.W R3, R3, R1 + AND.W R3, R3, R2 + LDRH R1, [R0] + MVN.W R2, R2 + AND.W R1, R1, R2 + ORR.W R1, R1, R3 + STRH R1, [R0] + POP {R1,R2,R3,PC} + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: int_fast8_t shift +; R2: uint_fast16_t mask +; +HW_get_16bit_reg_field \ + PROC + LDRH R0, [R0] + AND.W R0, R0, R2 + LSR.W R0, R0, R1 + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: uint_fast8_t value +; +HW_set_8bit_reg \ + PROC + STRB R1, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; +HW_get_8bit_reg \ + PROC + LDRB R0, [R0] + BX LR + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr, +; R1: int_fast8_t shift +; R2: uint_fast8_t mask +; R3: uint_fast8_t value +; +HW_set_8bit_reg_field \ + PROC + PUSH {R1,R2,R3,LR} + LSL.W R3, R3, R1 + AND.W R3, R3, R2 + LDRB R1, [R0] + MVN.W R2, R2 + AND.W R1, R1, R2 + ORR.W R1, R1, R3 + STRB R1, [R0] + POP {R1,R2,R3,PC} + ENDP + +;------------------------------------------------------------------------------ +; R0: addr_t reg_addr +; R1: int_fast8_t shift +; R2: uint_fast8_t mask +; +HW_get_8bit_reg_field \ + PROC + LDRB R0, [R0] + AND.W R0, R0, R2 + LSR.W R0, R0, R1 + BX LR + ENDP + + END diff --git a/platform/hal/Microchip/CortexM3/cortex_nvic.c b/platform/hal/Microchip/CortexM3/cortex_nvic.c new file mode 100644 index 00000000..d33d7ee9 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/cortex_nvic.c @@ -0,0 +1,209 @@ +/******************************************************************************* + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * Legacy Actel HAL Cortex NVIC control functions. + * The use of these functions should be replaced by calls to the equivalent + * CMSIS function in your application code. + * + * SVN $Revision: 7375 $ + * SVN $Date: 2015-05-01 19:27:40 +0530 (Fri, 01 May 2015) $ + */ +#include "cortex_nvic.h" +#ifdef MSCC_NO_RELATIVE_PATHS +#include "mss_assert.h" +#else +#include "../../CMSIS/mss_assert.h" +#endif + + +/***************************************************************************//** + * + */ +void NVIC_init( void ) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Simply remove the call to NVIC_init() from your application code. + */ + ASSERT(0); +} + +/***************************************************************************//** + * + */ +void NVIC_set_handler +( + uint32_t interrupt_number, + hal_nvic_irq_handler_t handler +) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Please remove the call to NVIC_set_handler() from your application code + * and provide a function using one of the following function prototypes to + * handle interrupts from peripherals implemeted in the SmartFusion2 FPGA + * fabric: + * - void FabricIrq0_IRQHandler(void) + * - void FabricIrq1_IRQHandler(void) + * - void FabricIrq2_IRQHandler(void) + * - void FabricIrq3_IRQHandler(void) + * - void FabricIrq4_IRQHandler(void) + * - void FabricIrq5_IRQHandler(void) + * - void FabricIrq6_IRQHandler(void) + * - void FabricIrq7_IRQHandler(void) + * - void FabricIrq8_IRQHandler(void) + * - void FabricIrq9_IRQHandler(void) + * - void FabricIrq10_IRQHandler(void) + * - void FabricIrq11_IRQHandler(void) + * - void FabricIrq12_IRQHandler(void) + * - void FabricIrq13_IRQHandler(void) + * - void FabricIrq14_IRQHandler(void) + * - void FabricIrq15_IRQHandler(void) + * The function to implement depends on which MSS_INT_F2M[n] signal is used + * in your Libero design to connect the interrupt signal of the peripheral + * generating the interrupt. + */ + ASSERT(0); +} + +/***************************************************************************//** + * + */ +void NVIC_set_priority +( + uint32_t interrupt_number, + uint8_t priority_level +) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Please replace calls to NVIC_set_priority() with a call to the CMSIS + * void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) function where + * IRQn is one of the following values: + * - FabricIrq0_IRQn + * - FabricIrq1_IRQn + * - FabricIrq2_IRQn + * - FabricIrq3_IRQn + * - FabricIrq4_IRQn + * - FabricIrq5_IRQn + * - FabricIrq6_IRQn + * - FabricIrq7_IRQn + * - FabricIrq8_IRQn + * - FabricIrq9_IRQn + * - FabricIrq10_IRQn + * - FabricIrq11_IRQn + * - FabricIrq12_IRQn + * - FabricIrq13_IRQn + * - FabricIrq14_IRQn + * - FabricIrq15_IRQn + */ + ASSERT(0); +} + +/***************************************************************************//** + * + */ +void NVIC_enable_interrupt( uint32_t interrupt_number ) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Please replace calls to NVIC_enable_interrupt() with a call to the CMSIS + * void NVIC_EnableIRQ(IRQn_Type IRQn) function where IRQn is one of the + * following values: + * - FabricIrq0_IRQn + * - FabricIrq1_IRQn + * - FabricIrq2_IRQn + * - FabricIrq3_IRQn + * - FabricIrq4_IRQn + * - FabricIrq5_IRQn + * - FabricIrq6_IRQn + * - FabricIrq7_IRQn + * - FabricIrq8_IRQn + * - FabricIrq9_IRQn + * - FabricIrq10_IRQn + * - FabricIrq11_IRQn + * - FabricIrq12_IRQn + * - FabricIrq13_IRQn + * - FabricIrq14_IRQn + * - FabricIrq15_IRQn + */ + ASSERT(0); +} + +/***************************************************************************//** + * + */ +void NVIC_disable_interrupt( uint32_t interrupt_number ) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Please replace calls to NVIC_disable_interrupt() with a call to the CMSIS + * void NVIC_DisableIRQ(IRQn_Type IRQn) function where IRQn is one of the + * following values: + * - FabricIrq0_IRQn + * - FabricIrq1_IRQn + * - FabricIrq2_IRQn + * - FabricIrq3_IRQn + * - FabricIrq4_IRQn + * - FabricIrq5_IRQn + * - FabricIrq6_IRQn + * - FabricIrq7_IRQn + * - FabricIrq8_IRQn + * - FabricIrq9_IRQn + * - FabricIrq10_IRQn + * - FabricIrq11_IRQn + * - FabricIrq12_IRQn + * - FabricIrq13_IRQn + * - FabricIrq14_IRQn + * - FabricIrq15_IRQn + */ + ASSERT(0); +} + +/***************************************************************************//** + * + */ +void NVIC_clear_interrupt( uint32_t interrupt_number ) +{ + /* + * Please use the NVIC control functions provided by the SmartFusion2 CMSIS + * Hardware Abstraction Layer. The use of the Actel HAL NVIC control + * functions is obsolete on SmartFusion2 devices. + * + * Please replace calls to NVIC_clear_interrupt() with a call to the CMSIS + * void NVIC_ClearPendingIRQ(IRQn_Type IRQn) function where IRQn is one of the + * following values: + * - FabricIrq0_IRQn + * - FabricIrq1_IRQn + * - FabricIrq2_IRQn + * - FabricIrq3_IRQn + * - FabricIrq4_IRQn + * - FabricIrq5_IRQn + * - FabricIrq6_IRQn + * - FabricIrq7_IRQn + * - FabricIrq8_IRQn + * - FabricIrq9_IRQn + * - FabricIrq10_IRQn + * - FabricIrq11_IRQn + * - FabricIrq12_IRQn + * - FabricIrq13_IRQn + * - FabricIrq14_IRQn + * - FabricIrq15_IRQn + */ + ASSERT(0); +} diff --git a/platform/hal/Microchip/CortexM3/cortex_nvic.h b/platform/hal/Microchip/CortexM3/cortex_nvic.h new file mode 100644 index 00000000..0ddfe9d4 --- /dev/null +++ b/platform/hal/Microchip/CortexM3/cortex_nvic.h @@ -0,0 +1,56 @@ +/******************************************************************************* + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * Legacy Actel HAL Cortex NVIC control functions. + * The use of these functions should be replaced by calls to the equivalent + * CMSIS function in your application code. + * + * SVN $Revision: 5257 $ + * SVN $Date: 2013-03-21 17:54:10 +0530 (Thu, 21 Mar 2013) $ + */ +#ifndef CORTEX_NVIC_H_ +#define CORTEX_NVIC_H_ + +#include + +typedef void (*hal_nvic_irq_handler_t)(void); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_init( void ); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_set_handler +( + uint32_t interrupt_number, + hal_nvic_irq_handler_t handler +); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_set_priority +( + uint32_t interrupt_number, + uint8_t priority_level +); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_enable_interrupt( uint32_t interrupt_number ); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_disable_interrupt( uint32_t interrupt_number ); + +/*------------------------------------------------------------------------------ + * + */ +void NVIC_clear_interrupt( uint32_t interrupt_number ); + +#endif /*CORTEX_NVIC_H_*/ diff --git a/platform/hal/Microchip/hal.h b/platform/hal/Microchip/hal.h new file mode 100644 index 00000000..20f60329 --- /dev/null +++ b/platform/hal/Microchip/hal.h @@ -0,0 +1,206 @@ +/***************************************************************************//** + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * Hardware abstraction layer functions. + * + * SVN $Revision: 5258 $ + * SVN $Date: 2013-03-21 18:11:02 +0530 (Thu, 21 Mar 2013) $ + */ +#ifndef HAL_H_ +#define HAL_H_ + +#include "cpu_types.h" +#include "hw_reg_access.h" + +/***************************************************************************//** + * Enable all interrupts at the processor level. + */ +void HAL_enable_interrupts( void ); + +/***************************************************************************//** + * Disable all interrupts at the processor core level. + * Return the interrupts enable state before disabling occured so that it can + * later be restored. + */ +psr_t HAL_disable_interrupts( void ); + +/***************************************************************************//** + * Restore the interrupts enable state at the processor core level. + * This function is normally passed the value returned from a previous call to + * HAL_disable_interrupts(). + */ +void HAL_restore_interrupts( psr_t saved_psr ); + +/***************************************************************************//** + */ +#define FIELD_OFFSET(FIELD_NAME) (FIELD_NAME##_OFFSET) +#define FIELD_SHIFT(FIELD_NAME) (FIELD_NAME##_SHIFT) +#define FIELD_MASK(FIELD_NAME) (FIELD_NAME##_MASK) + +/***************************************************************************//** + * The macro HAL_set_32bit_reg() allows writing a 32 bits wide register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to write. These strings are + * specified in a header file associated with the peripheral. + * VALUE: A variable of type uint32_t containing the value to write. + */ +#define HAL_set_32bit_reg(BASE_ADDR, REG_NAME, VALUE) \ + (HW_set_32bit_reg( ((BASE_ADDR) + (REG_NAME##_REG_OFFSET)), (VALUE) )) + +/***************************************************************************//** + * The macro HAL_get_32bit_reg() is used to read the value of a 32 bits wide + * register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to read. These strings are + * specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint32_t value. + */ +#define HAL_get_32bit_reg(BASE_ADDR, REG_NAME) \ + (HW_get_32bit_reg( ((BASE_ADDR) + (REG_NAME##_REG_OFFSET)) )) + +/***************************************************************************//** + * The macro HAL_set_32bit_reg_field() is used to write a field within a + * 32 bits wide register. The field written can be one or more bits. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * FIELD_NAME: A string identifying the register field to write. These strings + * are specified in a header file associated with the peripheral. + * VALUE: A variable of type uint32_t containing the field value to write. + */ +#define HAL_set_32bit_reg_field(BASE_ADDR, FIELD_NAME, VALUE) \ + (HW_set_32bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME),\ + (VALUE))) + +/***************************************************************************//** + * The macro HAL_get_32bit_reg_field() is used to read a register field from + * within a 32 bit wide peripheral register. The field can be one or more bits. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * FIELD_NAME: A string identifying the register field to write. These strings + * are specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint32_t value. + */ +#define HAL_get_32bit_reg_field(BASE_ADDR, FIELD_NAME) \ + (HW_get_32bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME))) + +/***************************************************************************//** + * The macro HAL_set_16bit_reg() allows writing a 16 bits wide register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to write. These strings are + * specified in a header file associated with the peripheral. + * VALUE: A variable of type uint_fast16_t containing the value to write. + */ +#define HAL_set_16bit_reg(BASE_ADDR, REG_NAME, VALUE) \ + (HW_set_16bit_reg( ((BASE_ADDR) + (REG_NAME##_REG_OFFSET)), (VALUE) )) + +/***************************************************************************//** + * The macro HAL_get_16bit_reg() is used to read the value of a 16 bits wide + * register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to read. These strings are + * specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint16_t value. + */ +#define HAL_get_16bit_reg(BASE_ADDR, REG_NAME) \ + (HW_get_16bit_reg( (BASE_ADDR) + (REG_NAME##_REG_OFFSET) )) + +/***************************************************************************//** + * The macro HAL_set_16bit_reg_field() is used to write a field within a + * 16 bits wide register. The field written can be one or more bits. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * FIELD_NAME: A string identifying the register field to write. These strings + * are specified in a header file associated with the peripheral. + * VALUE: A variable of type uint16_t containing the field value to write. + */ +#define HAL_set_16bit_reg_field(BASE_ADDR, FIELD_NAME, VALUE) \ + (HW_set_16bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME),\ + (VALUE))) + +/***************************************************************************//** + * The macro HAL_get_16bit_reg_field() is used to read a register field from + * within a 8 bit wide peripheral register. The field can be one or more bits. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * FIELD_NAME: A string identifying the register field to write. These strings + * are specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint16_t value. + */ +#define HAL_get_16bit_reg_field(BASE_ADDR, FIELD_NAME) \ + (HW_get_16bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME))) + +/***************************************************************************//** + * The macro HAL_set_8bit_reg() allows writing a 8 bits wide register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to write. These strings are + * specified in a header file associated with the peripheral. + * VALUE: A variable of type uint_fast8_t containing the value to write. + */ +#define HAL_set_8bit_reg(BASE_ADDR, REG_NAME, VALUE) \ + (HW_set_8bit_reg( ((BASE_ADDR) + (REG_NAME##_REG_OFFSET)), (VALUE) )) + +/***************************************************************************//** + * The macro HAL_get_8bit_reg() is used to read the value of a 8 bits wide + * register. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * REG_NAME: A string identifying the register to read. These strings are + * specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint8_t value. + */ +#define HAL_get_8bit_reg(BASE_ADDR, REG_NAME) \ + (HW_get_8bit_reg( (BASE_ADDR) + (REG_NAME##_REG_OFFSET) )) + +/***************************************************************************//** + */ +#define HAL_set_8bit_reg_field(BASE_ADDR, FIELD_NAME, VALUE) \ + (HW_set_8bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME),\ + (VALUE))) + +/***************************************************************************//** + * The macro HAL_get_8bit_reg_field() is used to read a register field from + * within a 8 bit wide peripheral register. The field can be one or more bits. + * + * BASE_ADDR: A variable of type addr_t specifying the base address of the + * peripheral containing the register. + * FIELD_NAME: A string identifying the register field to write. These strings + * are specified in a header file associated with the peripheral. + * RETURN: This function-like macro returns a uint8_t value. + */ +#define HAL_get_8bit_reg_field(BASE_ADDR, FIELD_NAME) \ + (HW_get_8bit_reg_field(\ + (BASE_ADDR) + FIELD_OFFSET(FIELD_NAME),\ + FIELD_SHIFT(FIELD_NAME),\ + FIELD_MASK(FIELD_NAME))) + +#endif /*HAL_H_*/ diff --git a/platform/hal/Microchip/hal_assert.h b/platform/hal/Microchip/hal_assert.h new file mode 100644 index 00000000..f74144c3 --- /dev/null +++ b/platform/hal/Microchip/hal_assert.h @@ -0,0 +1,34 @@ +/******************************************************************************* + * (c) Copyright 2008-2013 Microsemi SoC Products Group. All rights reserved. + * + * SVN $Revision: 7375 $ + * SVN $Date: 2015-05-01 19:27:40 +0530 (Fri, 01 May 2015) $ + */ +#ifndef HAL_ASSERT_HEADER +#define HAL_ASSERT_HEADER + +#ifdef MSCC_NO_RELATIVE_PATHS +#include "mss_assert.h" +#else +#include "../CMSIS/mss_assert.h" +#endif + +#if defined(NDEBUG) +/***************************************************************************//** + * HAL_ASSERT() is defined out when the NDEBUG symbol is used. + ******************************************************************************/ +#define HAL_ASSERT(CHECK) + +#else +/***************************************************************************//** + * Default behaviour for HAL_ASSERT() macro: + *------------------------------------------------------------------------------ + * Using the HAL_ASSERT() macro is the same as directly using the SmartFusion2 + * CMSIS ASSERT() macro. The behaviour is toolchain specific and project + * setting specific. + ******************************************************************************/ +#define HAL_ASSERT(CHECK) ASSERT(CHECK); + +#endif /* NDEBUG */ + +#endif /* HAL_ASSERT_HEADER */ diff --git a/platform/hal/Microchip/hw_reg_access.h b/platform/hal/Microchip/hw_reg_access.h new file mode 100644 index 00000000..8ae67221 --- /dev/null +++ b/platform/hal/Microchip/hw_reg_access.h @@ -0,0 +1,227 @@ +/***************************************************************************//** + * (c) Copyright 2007-2013 Microsemi SoC Products Group. All rights reserved. + * + * Hardware registers access functions. + * The implementation of these function is platform and toolchain specific. + * The functions declared here are implemented using assembler as part of the + * processor/toolchain specific HAL. + * + * SVN $Revision: 5258 $ + * SVN $Date: 2013-03-21 18:11:02 +0530 (Thu, 21 Mar 2013) $ + */ +#ifndef HW_REG_ACCESS +#define HW_REG_ACCESS + +/***************************************************************************//** + * HW_set_32bit_reg is used to write the content of a 32 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * write. + * @param value Value to be written into the peripheral register. + */ +void +HW_set_32bit_reg +( + addr_t reg_addr, + uint32_t value +); + +/***************************************************************************//** + * HW_get_32bit_reg is used to read the content of a 32 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @return 32 bits value read from the peripheral register. + */ +uint32_t +HW_get_32bit_reg +( + addr_t reg_addr +); + +/***************************************************************************//** + * HW_set_32bit_reg_field is used to set the content of a field in a 32 bits + * wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * be written. + * @param shift Bit offset of the register field to be read within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * @param value Value to be written in the specified field. + */ +void +HW_set_32bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint32_t mask, + uint32_t value +); + +/***************************************************************************//** + * HW_get_32bit_reg_field is used to read the content of a field out of a + * 32 bits wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @param shift Bit offset of the register field to be written within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * + * @return 32 bits value containing the register field value specified + * as parameter. + */ +uint32_t +HW_get_32bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint32_t mask +); + +/***************************************************************************//** + * HW_set_16bit_reg is used to write the content of a 16 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * write. + * @param value Value to be written into the peripheral register. + */ +void +HW_set_16bit_reg +( + addr_t reg_addr, + uint_fast16_t value +); + +/***************************************************************************//** + * HW_get_16bit_reg is used to read the content of a 16 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @return 16 bits value read from the peripheral register. + */ +uint16_t +HW_get_16bit_reg +( + addr_t reg_addr +); + +/***************************************************************************//** + * HW_set_16bit_reg_field is used to set the content of a field in a 16 bits + * wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * be written. + * @param shift Bit offset of the register field to be read within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * @param value Value to be written in the specified field. + */ +void HW_set_16bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint_fast16_t mask, + uint_fast16_t value +); + +/***************************************************************************//** + * HW_get_16bit_reg_field is used to read the content of a field from a + * 16 bits wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @param shift Bit offset of the register field to be written within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * + * @return 16 bits value containing the register field value specified + * as parameter. + */ +uint16_t HW_get_16bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint_fast16_t mask +); + +/***************************************************************************//** + * HW_set_8bit_reg is used to write the content of a 8 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * write. + * @param value Value to be written into the peripheral register. + */ +void +HW_set_8bit_reg +( + addr_t reg_addr, + uint_fast8_t value +); + +/***************************************************************************//** + * HW_get_8bit_reg is used to read the content of a 8 bits wide peripheral + * register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @return 8 bits value read from the peripheral register. + */ +uint8_t +HW_get_8bit_reg +( + addr_t reg_addr +); + +/***************************************************************************//** + * HW_set_8bit_reg_field is used to set the content of a field in a 8 bits + * wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * be written. + * @param shift Bit offset of the register field to be read within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * @param value Value to be written in the specified field. + */ +void HW_set_8bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint_fast8_t mask, + uint_fast8_t value +); + +/***************************************************************************//** + * HW_get_8bit_reg_field is used to read the content of a field from a + * 8 bits wide peripheral register. + * + * @param reg_addr Address in the processor's memory map of the register to + * read. + * @param shift Bit offset of the register field to be written within the + * register. + * @param mask Bit mask to be applied to the raw register value to filter + * out the other register fields values. + * + * @return 16 bits value containing the register field value specified + * as parameter. + */ +uint8_t HW_get_8bit_reg_field +( + addr_t reg_addr, + int_fast8_t shift, + uint_fast8_t mask +); + +#endif /* HW_REG_ACCESS */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.c b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.c new file mode 100644 index 00000000..b8a357bf --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.c @@ -0,0 +1,810 @@ +/**************************************************************************//** + * @file core_cm3.c + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Source File + * @version V1.30 + * @date 30. October 2009 + * + * @note + * Copyright (C) 2009 ARM Limited. All rights reserved. + * + * @par + * ARM Limited (ARM) is supplying this software for use with Cortex-M + * processor based microcontrollers. This file can be freely distributed + * within development tools that are supporting such ARM based processors. + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR + * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/******************************************************************************* + * Microsemi SoC Products Group SVN revision number for the purpose of tracking + * changes done to original file supplied by ARM: + * SVN $Revision: 6671 $ + * SVN $Date: 2014-07-04 12:15:22 +0100 (Fri, 04 Jul 2014) $ + ******************************************************************************/ + +#include + +/* define compiler specific symbols */ +#if defined ( __CC_ARM ) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + +#elif defined ( __ICCARM__ ) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ + +#elif defined ( __GNUC__ ) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + +#elif defined ( __TASKING__ ) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + +#endif + + +/* ################### Compiler specific Intrinsics ########################### */ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +__ASM uint32_t __get_PSP(void) +{ + mrs r0, psp + bx lr +} + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +__ASM void __set_PSP(uint32_t topOfProcStack) +{ + msr psp, r0 + bx lr +} + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +__ASM uint32_t __get_MSP(void) +{ + mrs r0, msp + bx lr +} + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +__ASM void __set_MSP(uint32_t mainStackPointer) +{ + msr msp, r0 + bx lr +} + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +__ASM uint32_t __REV16(uint16_t value) +{ + rev16 r0, r0 + bx lr +} + +/** + * @brief Reverse byte order in signed short value with sign extension to integer + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in signed short value with sign extension to integer + */ +__ASM int32_t __REVSH(int16_t value) +{ + revsh r0, r0 + bx lr +} + + +#if (__ARMCC_VERSION < 400000) + +/** + * @brief Remove the exclusive lock created by ldrex + * + * Removes the exclusive lock which is created by ldrex. + */ +__ASM void __CLREX(void) +{ + clrex +} + +/** + * @brief Return the Base Priority value + * + * @return BasePriority + * + * Return the content of the base priority register + */ +__ASM uint32_t __get_BASEPRI(void) +{ + mrs r0, basepri + bx lr +} + +/** + * @brief Set the Base Priority value + * + * @param basePri BasePriority + * + * Set the base priority register + */ +__ASM void __set_BASEPRI(uint32_t basePri) +{ + msr basepri, r0 + bx lr +} + +/** + * @brief Return the Priority Mask value + * + * @return PriMask + * + * Return state of the priority mask bit from the priority mask register + */ +__ASM uint32_t __get_PRIMASK(void) +{ + mrs r0, primask + bx lr +} + +/** + * @brief Set the Priority Mask value + * + * @param priMask PriMask + * + * Set the priority mask bit in the priority mask register + */ +__ASM void __set_PRIMASK(uint32_t priMask) +{ + msr primask, r0 + bx lr +} + +/** + * @brief Return the Fault Mask value + * + * @return FaultMask + * + * Return the content of the fault mask register + */ +__ASM uint32_t __get_FAULTMASK(void) +{ + mrs r0, faultmask + bx lr +} + +/** + * @brief Set the Fault Mask value + * + * @param faultMask faultMask value + * + * Set the fault mask register + */ +__ASM void __set_FAULTMASK(uint32_t faultMask) +{ + msr faultmask, r0 + bx lr +} + +/** + * @brief Return the Control Register value + * + * @return Control value + * + * Return the content of the control register + */ +__ASM uint32_t __get_CONTROL(void) +{ + mrs r0, control + bx lr +} + +/** + * @brief Set the Control Register value + * + * @param control Control value + * + * Set the control register + */ +__ASM void __set_CONTROL(uint32_t control) +{ + msr control, r0 + bx lr +} + +#endif /* __ARMCC_VERSION */ + + + +#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ +#pragma diag_suppress=Pe940 + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +#if (__VER__ < 6020000) +uint32_t __get_PSP(void) +{ + __ASM("mrs r0, psp"); + __ASM("bx lr"); +} +#endif + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +#if (__VER__ < 6020000) +void __set_PSP(uint32_t topOfProcStack) +{ + __ASM("msr psp, r0"); + __ASM("bx lr"); +} +#endif + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +#if (__VER__ < 6020000) +uint32_t __get_MSP(void) +{ + __ASM("mrs r0, msp"); + __ASM("bx lr"); +} +#endif + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +#if (__VER__ < 6020000) +void __set_MSP(uint32_t topOfMainStack) +{ + __ASM("msr msp, r0"); + __ASM("bx lr"); +} +#endif + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +#if (__VER__ < 6020000) +uint32_t __REV16(uint16_t value) +{ + __ASM("rev16 r0, r0"); + __ASM("bx lr"); +} +#endif + +/** + * @brief Reverse bit order of value + * + * @param value value to reverse + * @return reversed value + * + * Reverse bit order of value + */ +#if (__VER__ < 6020000) +uint32_t __RBIT(uint32_t value) +{ + __ASM("rbit r0, r0"); + __ASM("bx lr"); +} +#endif + +/** + * @brief LDR Exclusive (8 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 8 bit values) + */ +#if (__VER__ < 6020000) +uint8_t __LDREXB(uint8_t *addr) +{ + __ASM("ldrexb r0, [r0]"); + __ASM("bx lr"); +} +#endif + +/** + * @brief LDR Exclusive (16 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 16 bit values + */ +#if (__VER__ < 6020000) +uint16_t __LDREXH(uint16_t *addr) +{ + __ASM("ldrexh r0, [r0]"); + __ASM("bx lr"); +} +#endif + +/** + * @brief LDR Exclusive (32 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 32 bit values + */ +uint32_t __LDREXW(uint32_t *addr) +{ + __ASM("ldrex r0, [r0]"); + __ASM("bx lr"); +} + +/** + * @brief STR Exclusive (8 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 8 bit values + */ +#if (__VER__ < 6020000) +uint32_t __STREXB(uint8_t value, uint8_t *addr) +{ + __ASM("strexb r0, r0, [r1]"); + __ASM("bx lr"); +} +#endif + +/** + * @brief STR Exclusive (16 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 16 bit values + */ +#if (__VER__ < 6020000) +uint32_t __STREXH(uint16_t value, uint16_t *addr) +{ + __ASM("strexh r0, r0, [r1]"); + __ASM("bx lr"); +} +#endif + +/** + * @brief STR Exclusive (32 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 32 bit values + */ +uint32_t __STREXW(uint32_t value, uint32_t *addr) +{ + __ASM("strex r0, r0, [r1]"); + __ASM("bx lr"); +} + +#pragma diag_default=Pe940 + + +#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +uint32_t __get_PSP(void) __attribute__( ( naked ) ); +uint32_t __get_PSP(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, psp\n\t" + "MOV r0, %0 \n\t" + "BX lr \n\t" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) ); +void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0\n\t" + "BX lr \n\t" : : "r" (topOfProcStack) ); +} + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +uint32_t __get_MSP(void) __attribute__( ( naked ) ); +uint32_t __get_MSP(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, msp\n\t" + "MOV r0, %0 \n\t" + "BX lr \n\t" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) ); +void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0\n\t" + "BX lr \n\t" : : "r" (topOfMainStack) ); +} + +/** + * @brief Return the Base Priority value + * + * @return BasePriority + * + * Return the content of the base priority register + */ +uint32_t __get_BASEPRI(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, basepri_max" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Base Priority value + * + * @param basePri BasePriority + * + * Set the base priority register + */ +void __set_BASEPRI(uint32_t value) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (value) ); +} + +/** + * @brief Return the Priority Mask value + * + * @return PriMask + * + * Return state of the priority mask bit from the priority mask register + */ +uint32_t __get_PRIMASK(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Priority Mask value + * + * @param priMask PriMask + * + * Set the priority mask bit in the priority mask register + */ +void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) ); +} + +/** + * @brief Return the Fault Mask value + * + * @return FaultMask + * + * Return the content of the fault mask register + */ +uint32_t __get_FAULTMASK(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Fault Mask value + * + * @param faultMask faultMask value + * + * Set the fault mask register + */ +void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) ); +} + +/** + * @brief Return the Control Register value +* +* @return Control value + * + * Return the content of the control register + */ +uint32_t __get_CONTROL(void) +{ + uint32_t result=0; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + +/** + * @brief Set the Control Register value + * + * @param control Control value + * + * Set the control register + */ +void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) ); +} + + +/** + * @brief Reverse byte order in integer value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in integer value + */ +uint32_t __REV(uint32_t value) +{ + uint32_t result=0; + + __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +uint32_t __REV16(uint16_t value) +{ + uint32_t result=0; + + __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + +/** + * @brief Reverse byte order in signed short value with sign extension to integer + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in signed short value with sign extension to integer + */ +int32_t __REVSH(int16_t value) +{ + uint32_t result=0; + + __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + +/** + * @brief Reverse bit order of value + * + * @param value value to reverse + * @return reversed value + * + * Reverse bit order of value + */ +uint32_t __RBIT(uint32_t value) +{ + uint32_t result=0; + + __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) ); + return(result); +} + +/** + * @brief LDR Exclusive (8 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 8 bit value + */ +uint8_t __LDREXB(uint8_t *addr) +{ + uint8_t result=0; + + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) ); + return(result); +} + +/** + * @brief LDR Exclusive (16 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 16 bit values + */ +uint16_t __LDREXH(uint16_t *addr) +{ + uint16_t result=0; + + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) ); + return(result); +} + +/** + * @brief LDR Exclusive (32 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 32 bit values + */ +uint32_t __LDREXW(uint32_t *addr) +{ + uint32_t result=0; + + __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) ); + return(result); +} + +/** + * @brief STR Exclusive (8 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 8 bit values + */ +uint32_t __STREXB(uint8_t value, uint8_t *addr) +{ + uint32_t result=0; + + __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); + return(result); +} + +/** + * @brief STR Exclusive (16 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 16 bit values + */ +uint32_t __STREXH(uint16_t value, uint16_t *addr) +{ + uint32_t result=0; + + __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) ); + return(result); +} + +/** + * @brief STR Exclusive (32 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 32 bit values + */ +uint32_t __STREXW(uint32_t value, uint32_t *addr) +{ + uint32_t result=0; + + __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); + return(result); +} + + +#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ +/* TASKING carm specific functions */ + +/* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all instrinsics, + * Including the CMSIS ones. + */ + +#endif diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.h new file mode 100644 index 00000000..6c53c0f4 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/core_cm3.h @@ -0,0 +1,1844 @@ +/**************************************************************************//** + * @file core_cm3.h + * @brief CMSIS Cortex-M3 Core Peripheral Access Layer Header File + * @version V1.30 + * @date 30. October 2009 + * + * @note + * Copyright (C) 2009 ARM Limited. All rights reserved. + * + * @par + * ARM Limited (ARM) is supplying this software for use with Cortex-M + * processor based microcontrollers. This file can be freely distributed + * within development tools that are supporting such ARM based processors. + * + * @par + * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED + * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. + * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR + * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. + * + ******************************************************************************/ +/******************************************************************************* + * Microsemi SoC Products Group SVN revision number for the purpose of tracking + * changes done to original file supplied by ARM: + * SVN $Revision: 4048 $ + * SVN $Date: 2011-12-06 16:05:56 +0000 (Tue, 06 Dec 2011) $ + ******************************************************************************/ + +#ifndef __CM3_CORE_H__ +#define __CM3_CORE_H__ + +/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration + * + * List of Lint messages which will be suppressed and not shown: + * - Error 10: \n + * register uint32_t __regBasePri __asm("basepri"); \n + * Error 10: Expecting ';' + * . + * - Error 530: \n + * return(__regBasePri); \n + * Warning 530: Symbol '__regBasePri' (line 264) not initialized + * . + * - Error 550: \n + * __regBasePri = (basePri & 0x1ff); \n + * Warning 550: Symbol '__regBasePri' (line 271) not accessed + * . + * - Error 754: \n + * uint32_t RESERVED0[24]; \n + * Info 754: local structure member '' (line 109, file ./cm3_core.h) not referenced + * . + * - Error 750: \n + * #define __CM3_CORE_H__ \n + * Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced + * . + * - Error 528: \n + * static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n + * Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced + * . + * - Error 751: \n + * } InterruptType_Type; \n + * Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced + * . + * Note: To re-enable a Message, insert a space before 'lint' * + * + */ + +/*lint -save */ +/*lint -e10 */ +/*lint -e530 */ +/*lint -e550 */ +/*lint -e754 */ +/*lint -e750 */ +/*lint -e528 */ +/*lint -e751 */ + + +/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions + This file defines all structures and symbols for CMSIS core: + - CMSIS version number + - Cortex-M core registers and bitfields + - Cortex-M core peripheral base address + @{ + */ + +#ifdef __cplusplus + extern "C" { +#endif + +#define __CM3_CMSIS_VERSION_MAIN (0x01) /*!< [31:16] CMSIS HAL main version */ +#define __CM3_CMSIS_VERSION_SUB (0x30) /*!< [15:0] CMSIS HAL sub version */ +#define __CM3_CMSIS_VERSION ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number */ + +#define __CORTEX_M (0x03) /*!< Cortex core */ + +#include /* Include standard types */ + +#if defined (__ICCARM__) + #include /* IAR Intrinsics */ +#endif + + +#ifndef __NVIC_PRIO_BITS + #define __NVIC_PRIO_BITS 4 /*!< standard definition for NVIC Priority Bits */ +#endif + + + + +/** + * IO definitions + * + * define access restrictions to peripheral registers + */ + +#ifdef __cplusplus + #define __I volatile /*!< defines 'read only' permissions */ +#else + #define __I volatile const /*!< defines 'read only' permissions */ +#endif +#define __O volatile /*!< defines 'write only' permissions */ +#define __IO volatile /*!< defines 'read / write' permissions */ + + + +/******************************************************************************* + * Register Abstraction + ******************************************************************************/ +/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register + @{ +*/ + + +/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC + memory mapped structure for Nested Vectored Interrupt Controller (NVIC) + @{ + */ +typedef struct +{ + __IO uint32_t ISER[8]; /*!< Offset: 0x000 Interrupt Set Enable Register */ + uint32_t RESERVED0[24]; + __IO uint32_t ICER[8]; /*!< Offset: 0x080 Interrupt Clear Enable Register */ + uint32_t RSERVED1[24]; + __IO uint32_t ISPR[8]; /*!< Offset: 0x100 Interrupt Set Pending Register */ + uint32_t RESERVED2[24]; + __IO uint32_t ICPR[8]; /*!< Offset: 0x180 Interrupt Clear Pending Register */ + uint32_t RESERVED3[24]; + __IO uint32_t IABR[8]; /*!< Offset: 0x200 Interrupt Active bit Register */ + uint32_t RESERVED4[56]; + __IO uint8_t IP[240]; /*!< Offset: 0x300 Interrupt Priority Register (8Bit wide) */ + uint32_t RESERVED5[644]; + __O uint32_t STIR; /*!< Offset: 0xE00 Software Trigger Interrupt Register */ +} NVIC_Type; +/*@}*/ /* end of group CMSIS_CM3_NVIC */ + + +/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB + memory mapped structure for System Control Block (SCB) + @{ + */ +typedef struct +{ + __I uint32_t CPUID; /*!< Offset: 0x00 CPU ID Base Register */ + __IO uint32_t ICSR; /*!< Offset: 0x04 Interrupt Control State Register */ + __IO uint32_t VTOR; /*!< Offset: 0x08 Vector Table Offset Register */ + __IO uint32_t AIRCR; /*!< Offset: 0x0C Application Interrupt / Reset Control Register */ + __IO uint32_t SCR; /*!< Offset: 0x10 System Control Register */ + __IO uint32_t CCR; /*!< Offset: 0x14 Configuration Control Register */ + __IO uint8_t SHP[12]; /*!< Offset: 0x18 System Handlers Priority Registers (4-7, 8-11, 12-15) */ + __IO uint32_t SHCSR; /*!< Offset: 0x24 System Handler Control and State Register */ + __IO uint32_t CFSR; /*!< Offset: 0x28 Configurable Fault Status Register */ + __IO uint32_t HFSR; /*!< Offset: 0x2C Hard Fault Status Register */ + __IO uint32_t DFSR; /*!< Offset: 0x30 Debug Fault Status Register */ + __IO uint32_t MMFAR; /*!< Offset: 0x34 Mem Manage Address Register */ + __IO uint32_t BFAR; /*!< Offset: 0x38 Bus Fault Address Register */ + __IO uint32_t AFSR; /*!< Offset: 0x3C Auxiliary Fault Status Register */ + __I uint32_t PFR[2]; /*!< Offset: 0x40 Processor Feature Register */ + __I uint32_t DFR; /*!< Offset: 0x48 Debug Feature Register */ + __I uint32_t ADR; /*!< Offset: 0x4C Auxiliary Feature Register */ + __I uint32_t MMFR[4]; /*!< Offset: 0x50 Memory Model Feature Register */ + __I uint32_t ISAR[5]; /*!< Offset: 0x60 ISA Feature Register */ +} SCB_Type; + +/* SCB CPUID Register Definitions */ +#define SCB_CPUID_IMPLEMENTER_Pos 24 /*!< SCB CPUID: IMPLEMENTER Position */ +#define SCB_CPUID_IMPLEMENTER_Msk (0xFFul << SCB_CPUID_IMPLEMENTER_Pos) /*!< SCB CPUID: IMPLEMENTER Mask */ + +#define SCB_CPUID_VARIANT_Pos 20 /*!< SCB CPUID: VARIANT Position */ +#define SCB_CPUID_VARIANT_Msk (0xFul << SCB_CPUID_VARIANT_Pos) /*!< SCB CPUID: VARIANT Mask */ + +#define SCB_CPUID_PARTNO_Pos 4 /*!< SCB CPUID: PARTNO Position */ +#define SCB_CPUID_PARTNO_Msk (0xFFFul << SCB_CPUID_PARTNO_Pos) /*!< SCB CPUID: PARTNO Mask */ + +#define SCB_CPUID_REVISION_Pos 0 /*!< SCB CPUID: REVISION Position */ +#define SCB_CPUID_REVISION_Msk (0xFul << SCB_CPUID_REVISION_Pos) /*!< SCB CPUID: REVISION Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_ICSR_NMIPENDSET_Pos 31 /*!< SCB ICSR: NMIPENDSET Position */ +#define SCB_ICSR_NMIPENDSET_Msk (1ul << SCB_ICSR_NMIPENDSET_Pos) /*!< SCB ICSR: NMIPENDSET Mask */ + +#define SCB_ICSR_PENDSVSET_Pos 28 /*!< SCB ICSR: PENDSVSET Position */ +#define SCB_ICSR_PENDSVSET_Msk (1ul << SCB_ICSR_PENDSVSET_Pos) /*!< SCB ICSR: PENDSVSET Mask */ + +#define SCB_ICSR_PENDSVCLR_Pos 27 /*!< SCB ICSR: PENDSVCLR Position */ +#define SCB_ICSR_PENDSVCLR_Msk (1ul << SCB_ICSR_PENDSVCLR_Pos) /*!< SCB ICSR: PENDSVCLR Mask */ + +#define SCB_ICSR_PENDSTSET_Pos 26 /*!< SCB ICSR: PENDSTSET Position */ +#define SCB_ICSR_PENDSTSET_Msk (1ul << SCB_ICSR_PENDSTSET_Pos) /*!< SCB ICSR: PENDSTSET Mask */ + +#define SCB_ICSR_PENDSTCLR_Pos 25 /*!< SCB ICSR: PENDSTCLR Position */ +#define SCB_ICSR_PENDSTCLR_Msk (1ul << SCB_ICSR_PENDSTCLR_Pos) /*!< SCB ICSR: PENDSTCLR Mask */ + +#define SCB_ICSR_ISRPREEMPT_Pos 23 /*!< SCB ICSR: ISRPREEMPT Position */ +#define SCB_ICSR_ISRPREEMPT_Msk (1ul << SCB_ICSR_ISRPREEMPT_Pos) /*!< SCB ICSR: ISRPREEMPT Mask */ + +#define SCB_ICSR_ISRPENDING_Pos 22 /*!< SCB ICSR: ISRPENDING Position */ +#define SCB_ICSR_ISRPENDING_Msk (1ul << SCB_ICSR_ISRPENDING_Pos) /*!< SCB ICSR: ISRPENDING Mask */ + +#define SCB_ICSR_VECTPENDING_Pos 12 /*!< SCB ICSR: VECTPENDING Position */ +#define SCB_ICSR_VECTPENDING_Msk (0x1FFul << SCB_ICSR_VECTPENDING_Pos) /*!< SCB ICSR: VECTPENDING Mask */ + +#define SCB_ICSR_RETTOBASE_Pos 11 /*!< SCB ICSR: RETTOBASE Position */ +#define SCB_ICSR_RETTOBASE_Msk (1ul << SCB_ICSR_RETTOBASE_Pos) /*!< SCB ICSR: RETTOBASE Mask */ + +#define SCB_ICSR_VECTACTIVE_Pos 0 /*!< SCB ICSR: VECTACTIVE Position */ +#define SCB_ICSR_VECTACTIVE_Msk (0x1FFul << SCB_ICSR_VECTACTIVE_Pos) /*!< SCB ICSR: VECTACTIVE Mask */ + +/* SCB Interrupt Control State Register Definitions */ +#define SCB_VTOR_TBLBASE_Pos 29 /*!< SCB VTOR: TBLBASE Position */ +#define SCB_VTOR_TBLBASE_Msk (0x1FFul << SCB_VTOR_TBLBASE_Pos) /*!< SCB VTOR: TBLBASE Mask */ + +#define SCB_VTOR_TBLOFF_Pos 7 /*!< SCB VTOR: TBLOFF Position */ +#define SCB_VTOR_TBLOFF_Msk (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos) /*!< SCB VTOR: TBLOFF Mask */ + +/* SCB Application Interrupt and Reset Control Register Definitions */ +#define SCB_AIRCR_VECTKEY_Pos 16 /*!< SCB AIRCR: VECTKEY Position */ +#define SCB_AIRCR_VECTKEY_Msk (0xFFFFul << SCB_AIRCR_VECTKEY_Pos) /*!< SCB AIRCR: VECTKEY Mask */ + +#define SCB_AIRCR_VECTKEYSTAT_Pos 16 /*!< SCB AIRCR: VECTKEYSTAT Position */ +#define SCB_AIRCR_VECTKEYSTAT_Msk (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos) /*!< SCB AIRCR: VECTKEYSTAT Mask */ + +#define SCB_AIRCR_ENDIANESS_Pos 15 /*!< SCB AIRCR: ENDIANESS Position */ +#define SCB_AIRCR_ENDIANESS_Msk (1ul << SCB_AIRCR_ENDIANESS_Pos) /*!< SCB AIRCR: ENDIANESS Mask */ + +#define SCB_AIRCR_PRIGROUP_Pos 8 /*!< SCB AIRCR: PRIGROUP Position */ +#define SCB_AIRCR_PRIGROUP_Msk (7ul << SCB_AIRCR_PRIGROUP_Pos) /*!< SCB AIRCR: PRIGROUP Mask */ + +#define SCB_AIRCR_SYSRESETREQ_Pos 2 /*!< SCB AIRCR: SYSRESETREQ Position */ +#define SCB_AIRCR_SYSRESETREQ_Msk (1ul << SCB_AIRCR_SYSRESETREQ_Pos) /*!< SCB AIRCR: SYSRESETREQ Mask */ + +#define SCB_AIRCR_VECTCLRACTIVE_Pos 1 /*!< SCB AIRCR: VECTCLRACTIVE Position */ +#define SCB_AIRCR_VECTCLRACTIVE_Msk (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos) /*!< SCB AIRCR: VECTCLRACTIVE Mask */ + +#define SCB_AIRCR_VECTRESET_Pos 0 /*!< SCB AIRCR: VECTRESET Position */ +#define SCB_AIRCR_VECTRESET_Msk (1ul << SCB_AIRCR_VECTRESET_Pos) /*!< SCB AIRCR: VECTRESET Mask */ + +/* SCB System Control Register Definitions */ +#define SCB_SCR_SEVONPEND_Pos 4 /*!< SCB SCR: SEVONPEND Position */ +#define SCB_SCR_SEVONPEND_Msk (1ul << SCB_SCR_SEVONPEND_Pos) /*!< SCB SCR: SEVONPEND Mask */ + +#define SCB_SCR_SLEEPDEEP_Pos 2 /*!< SCB SCR: SLEEPDEEP Position */ +#define SCB_SCR_SLEEPDEEP_Msk (1ul << SCB_SCR_SLEEPDEEP_Pos) /*!< SCB SCR: SLEEPDEEP Mask */ + +#define SCB_SCR_SLEEPONEXIT_Pos 1 /*!< SCB SCR: SLEEPONEXIT Position */ +#define SCB_SCR_SLEEPONEXIT_Msk (1ul << SCB_SCR_SLEEPONEXIT_Pos) /*!< SCB SCR: SLEEPONEXIT Mask */ + +/* SCB Configuration Control Register Definitions */ +#define SCB_CCR_STKALIGN_Pos 9 /*!< SCB CCR: STKALIGN Position */ +#define SCB_CCR_STKALIGN_Msk (1ul << SCB_CCR_STKALIGN_Pos) /*!< SCB CCR: STKALIGN Mask */ + +#define SCB_CCR_BFHFNMIGN_Pos 8 /*!< SCB CCR: BFHFNMIGN Position */ +#define SCB_CCR_BFHFNMIGN_Msk (1ul << SCB_CCR_BFHFNMIGN_Pos) /*!< SCB CCR: BFHFNMIGN Mask */ + +#define SCB_CCR_DIV_0_TRP_Pos 4 /*!< SCB CCR: DIV_0_TRP Position */ +#define SCB_CCR_DIV_0_TRP_Msk (1ul << SCB_CCR_DIV_0_TRP_Pos) /*!< SCB CCR: DIV_0_TRP Mask */ + +#define SCB_CCR_UNALIGN_TRP_Pos 3 /*!< SCB CCR: UNALIGN_TRP Position */ +#define SCB_CCR_UNALIGN_TRP_Msk (1ul << SCB_CCR_UNALIGN_TRP_Pos) /*!< SCB CCR: UNALIGN_TRP Mask */ + +#define SCB_CCR_USERSETMPEND_Pos 1 /*!< SCB CCR: USERSETMPEND Position */ +#define SCB_CCR_USERSETMPEND_Msk (1ul << SCB_CCR_USERSETMPEND_Pos) /*!< SCB CCR: USERSETMPEND Mask */ + +#define SCB_CCR_NONBASETHRDENA_Pos 0 /*!< SCB CCR: NONBASETHRDENA Position */ +#define SCB_CCR_NONBASETHRDENA_Msk (1ul << SCB_CCR_NONBASETHRDENA_Pos) /*!< SCB CCR: NONBASETHRDENA Mask */ + +/* SCB System Handler Control and State Register Definitions */ +#define SCB_SHCSR_USGFAULTENA_Pos 18 /*!< SCB SHCSR: USGFAULTENA Position */ +#define SCB_SHCSR_USGFAULTENA_Msk (1ul << SCB_SHCSR_USGFAULTENA_Pos) /*!< SCB SHCSR: USGFAULTENA Mask */ + +#define SCB_SHCSR_BUSFAULTENA_Pos 17 /*!< SCB SHCSR: BUSFAULTENA Position */ +#define SCB_SHCSR_BUSFAULTENA_Msk (1ul << SCB_SHCSR_BUSFAULTENA_Pos) /*!< SCB SHCSR: BUSFAULTENA Mask */ + +#define SCB_SHCSR_MEMFAULTENA_Pos 16 /*!< SCB SHCSR: MEMFAULTENA Position */ +#define SCB_SHCSR_MEMFAULTENA_Msk (1ul << SCB_SHCSR_MEMFAULTENA_Pos) /*!< SCB SHCSR: MEMFAULTENA Mask */ + +#define SCB_SHCSR_SVCALLPENDED_Pos 15 /*!< SCB SHCSR: SVCALLPENDED Position */ +#define SCB_SHCSR_SVCALLPENDED_Msk (1ul << SCB_SHCSR_SVCALLPENDED_Pos) /*!< SCB SHCSR: SVCALLPENDED Mask */ + +#define SCB_SHCSR_BUSFAULTPENDED_Pos 14 /*!< SCB SHCSR: BUSFAULTPENDED Position */ +#define SCB_SHCSR_BUSFAULTPENDED_Msk (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos) /*!< SCB SHCSR: BUSFAULTPENDED Mask */ + +#define SCB_SHCSR_MEMFAULTPENDED_Pos 13 /*!< SCB SHCSR: MEMFAULTPENDED Position */ +#define SCB_SHCSR_MEMFAULTPENDED_Msk (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos) /*!< SCB SHCSR: MEMFAULTPENDED Mask */ + +#define SCB_SHCSR_USGFAULTPENDED_Pos 12 /*!< SCB SHCSR: USGFAULTPENDED Position */ +#define SCB_SHCSR_USGFAULTPENDED_Msk (1ul << SCB_SHCSR_USGFAULTPENDED_Pos) /*!< SCB SHCSR: USGFAULTPENDED Mask */ + +#define SCB_SHCSR_SYSTICKACT_Pos 11 /*!< SCB SHCSR: SYSTICKACT Position */ +#define SCB_SHCSR_SYSTICKACT_Msk (1ul << SCB_SHCSR_SYSTICKACT_Pos) /*!< SCB SHCSR: SYSTICKACT Mask */ + +#define SCB_SHCSR_PENDSVACT_Pos 10 /*!< SCB SHCSR: PENDSVACT Position */ +#define SCB_SHCSR_PENDSVACT_Msk (1ul << SCB_SHCSR_PENDSVACT_Pos) /*!< SCB SHCSR: PENDSVACT Mask */ + +#define SCB_SHCSR_MONITORACT_Pos 8 /*!< SCB SHCSR: MONITORACT Position */ +#define SCB_SHCSR_MONITORACT_Msk (1ul << SCB_SHCSR_MONITORACT_Pos) /*!< SCB SHCSR: MONITORACT Mask */ + +#define SCB_SHCSR_SVCALLACT_Pos 7 /*!< SCB SHCSR: SVCALLACT Position */ +#define SCB_SHCSR_SVCALLACT_Msk (1ul << SCB_SHCSR_SVCALLACT_Pos) /*!< SCB SHCSR: SVCALLACT Mask */ + +#define SCB_SHCSR_USGFAULTACT_Pos 3 /*!< SCB SHCSR: USGFAULTACT Position */ +#define SCB_SHCSR_USGFAULTACT_Msk (1ul << SCB_SHCSR_USGFAULTACT_Pos) /*!< SCB SHCSR: USGFAULTACT Mask */ + +#define SCB_SHCSR_BUSFAULTACT_Pos 1 /*!< SCB SHCSR: BUSFAULTACT Position */ +#define SCB_SHCSR_BUSFAULTACT_Msk (1ul << SCB_SHCSR_BUSFAULTACT_Pos) /*!< SCB SHCSR: BUSFAULTACT Mask */ + +#define SCB_SHCSR_MEMFAULTACT_Pos 0 /*!< SCB SHCSR: MEMFAULTACT Position */ +#define SCB_SHCSR_MEMFAULTACT_Msk (1ul << SCB_SHCSR_MEMFAULTACT_Pos) /*!< SCB SHCSR: MEMFAULTACT Mask */ + +/* SCB Configurable Fault Status Registers Definitions */ +#define SCB_CFSR_USGFAULTSR_Pos 16 /*!< SCB CFSR: Usage Fault Status Register Position */ +#define SCB_CFSR_USGFAULTSR_Msk (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos) /*!< SCB CFSR: Usage Fault Status Register Mask */ + +#define SCB_CFSR_BUSFAULTSR_Pos 8 /*!< SCB CFSR: Bus Fault Status Register Position */ +#define SCB_CFSR_BUSFAULTSR_Msk (0xFFul << SCB_CFSR_BUSFAULTSR_Pos) /*!< SCB CFSR: Bus Fault Status Register Mask */ + +#define SCB_CFSR_MEMFAULTSR_Pos 0 /*!< SCB CFSR: Memory Manage Fault Status Register Position */ +#define SCB_CFSR_MEMFAULTSR_Msk (0xFFul << SCB_CFSR_MEMFAULTSR_Pos) /*!< SCB CFSR: Memory Manage Fault Status Register Mask */ + +/* SCB Hard Fault Status Registers Definitions */ +#define SCB_HFSR_DEBUGEVT_Pos 31 /*!< SCB HFSR: DEBUGEVT Position */ +#define SCB_HFSR_DEBUGEVT_Msk (1ul << SCB_HFSR_DEBUGEVT_Pos) /*!< SCB HFSR: DEBUGEVT Mask */ + +#define SCB_HFSR_FORCED_Pos 30 /*!< SCB HFSR: FORCED Position */ +#define SCB_HFSR_FORCED_Msk (1ul << SCB_HFSR_FORCED_Pos) /*!< SCB HFSR: FORCED Mask */ + +#define SCB_HFSR_VECTTBL_Pos 1 /*!< SCB HFSR: VECTTBL Position */ +#define SCB_HFSR_VECTTBL_Msk (1ul << SCB_HFSR_VECTTBL_Pos) /*!< SCB HFSR: VECTTBL Mask */ + +/* SCB Debug Fault Status Register Definitions */ +#define SCB_DFSR_EXTERNAL_Pos 4 /*!< SCB DFSR: EXTERNAL Position */ +#define SCB_DFSR_EXTERNAL_Msk (1ul << SCB_DFSR_EXTERNAL_Pos) /*!< SCB DFSR: EXTERNAL Mask */ + +#define SCB_DFSR_VCATCH_Pos 3 /*!< SCB DFSR: VCATCH Position */ +#define SCB_DFSR_VCATCH_Msk (1ul << SCB_DFSR_VCATCH_Pos) /*!< SCB DFSR: VCATCH Mask */ + +#define SCB_DFSR_DWTTRAP_Pos 2 /*!< SCB DFSR: DWTTRAP Position */ +#define SCB_DFSR_DWTTRAP_Msk (1ul << SCB_DFSR_DWTTRAP_Pos) /*!< SCB DFSR: DWTTRAP Mask */ + +#define SCB_DFSR_BKPT_Pos 1 /*!< SCB DFSR: BKPT Position */ +#define SCB_DFSR_BKPT_Msk (1ul << SCB_DFSR_BKPT_Pos) /*!< SCB DFSR: BKPT Mask */ + +#define SCB_DFSR_HALTED_Pos 0 /*!< SCB DFSR: HALTED Position */ +#define SCB_DFSR_HALTED_Msk (1ul << SCB_DFSR_HALTED_Pos) /*!< SCB DFSR: HALTED Mask */ +/*@}*/ /* end of group CMSIS_CM3_SCB */ + + +/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick + memory mapped structure for SysTick + @{ + */ +typedef struct +{ + __IO uint32_t CTRL; /*!< Offset: 0x00 SysTick Control and Status Register */ + __IO uint32_t LOAD; /*!< Offset: 0x04 SysTick Reload Value Register */ + __IO uint32_t VAL; /*!< Offset: 0x08 SysTick Current Value Register */ + __I uint32_t CALIB; /*!< Offset: 0x0C SysTick Calibration Register */ +} SysTick_Type; + +/* SysTick Control / Status Register Definitions */ +#define SysTick_CTRL_COUNTFLAG_Pos 16 /*!< SysTick CTRL: COUNTFLAG Position */ +#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos) /*!< SysTick CTRL: COUNTFLAG Mask */ + +#define SysTick_CTRL_CLKSOURCE_Pos 2 /*!< SysTick CTRL: CLKSOURCE Position */ +#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */ + +#define SysTick_CTRL_TICKINT_Pos 1 /*!< SysTick CTRL: TICKINT Position */ +#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos) /*!< SysTick CTRL: TICKINT Mask */ + +#define SysTick_CTRL_ENABLE_Pos 0 /*!< SysTick CTRL: ENABLE Position */ +#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos) /*!< SysTick CTRL: ENABLE Mask */ + +/* SysTick Reload Register Definitions */ +#define SysTick_LOAD_RELOAD_Pos 0 /*!< SysTick LOAD: RELOAD Position */ +#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos) /*!< SysTick LOAD: RELOAD Mask */ + +/* SysTick Current Register Definitions */ +#define SysTick_VAL_CURRENT_Pos 0 /*!< SysTick VAL: CURRENT Position */ +#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick VAL: CURRENT Mask */ + +/* SysTick Calibration Register Definitions */ +#define SysTick_CALIB_NOREF_Pos 31 /*!< SysTick CALIB: NOREF Position */ +#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos) /*!< SysTick CALIB: NOREF Mask */ + +#define SysTick_CALIB_SKEW_Pos 30 /*!< SysTick CALIB: SKEW Position */ +#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos) /*!< SysTick CALIB: SKEW Mask */ + +#define SysTick_CALIB_TENMS_Pos 0 /*!< SysTick CALIB: TENMS Position */ +#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos) /*!< SysTick CALIB: TENMS Mask */ +/*@}*/ /* end of group CMSIS_CM3_SysTick */ + + +/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM + memory mapped structure for Instrumentation Trace Macrocell (ITM) + @{ + */ +typedef struct +{ + __O union + { + __O uint8_t u8; /*!< Offset: ITM Stimulus Port 8-bit */ + __O uint16_t u16; /*!< Offset: ITM Stimulus Port 16-bit */ + __O uint32_t u32; /*!< Offset: ITM Stimulus Port 32-bit */ + } PORT [32]; /*!< Offset: 0x00 ITM Stimulus Port Registers */ + uint32_t RESERVED0[864]; + __IO uint32_t TER; /*!< Offset: ITM Trace Enable Register */ + uint32_t RESERVED1[15]; + __IO uint32_t TPR; /*!< Offset: ITM Trace Privilege Register */ + uint32_t RESERVED2[15]; + __IO uint32_t TCR; /*!< Offset: ITM Trace Control Register */ + uint32_t RESERVED3[29]; + __IO uint32_t IWR; /*!< Offset: ITM Integration Write Register */ + __IO uint32_t IRR; /*!< Offset: ITM Integration Read Register */ + __IO uint32_t IMCR; /*!< Offset: ITM Integration Mode Control Register */ + uint32_t RESERVED4[43]; + __IO uint32_t LAR; /*!< Offset: ITM Lock Access Register */ + __IO uint32_t LSR; /*!< Offset: ITM Lock Status Register */ + uint32_t RESERVED5[6]; + __I uint32_t PID4; /*!< Offset: ITM Peripheral Identification Register #4 */ + __I uint32_t PID5; /*!< Offset: ITM Peripheral Identification Register #5 */ + __I uint32_t PID6; /*!< Offset: ITM Peripheral Identification Register #6 */ + __I uint32_t PID7; /*!< Offset: ITM Peripheral Identification Register #7 */ + __I uint32_t PID0; /*!< Offset: ITM Peripheral Identification Register #0 */ + __I uint32_t PID1; /*!< Offset: ITM Peripheral Identification Register #1 */ + __I uint32_t PID2; /*!< Offset: ITM Peripheral Identification Register #2 */ + __I uint32_t PID3; /*!< Offset: ITM Peripheral Identification Register #3 */ + __I uint32_t CID0; /*!< Offset: ITM Component Identification Register #0 */ + __I uint32_t CID1; /*!< Offset: ITM Component Identification Register #1 */ + __I uint32_t CID2; /*!< Offset: ITM Component Identification Register #2 */ + __I uint32_t CID3; /*!< Offset: ITM Component Identification Register #3 */ +} ITM_Type; + +/* ITM Trace Privilege Register Definitions */ +#define ITM_TPR_PRIVMASK_Pos 0 /*!< ITM TPR: PRIVMASK Position */ +#define ITM_TPR_PRIVMASK_Msk (0xFul << ITM_TPR_PRIVMASK_Pos) /*!< ITM TPR: PRIVMASK Mask */ + +/* ITM Trace Control Register Definitions */ +#define ITM_TCR_BUSY_Pos 23 /*!< ITM TCR: BUSY Position */ +#define ITM_TCR_BUSY_Msk (1ul << ITM_TCR_BUSY_Pos) /*!< ITM TCR: BUSY Mask */ + +#define ITM_TCR_ATBID_Pos 16 /*!< ITM TCR: ATBID Position */ +#define ITM_TCR_ATBID_Msk (0x7Ful << ITM_TCR_ATBID_Pos) /*!< ITM TCR: ATBID Mask */ + +#define ITM_TCR_TSPrescale_Pos 8 /*!< ITM TCR: TSPrescale Position */ +#define ITM_TCR_TSPrescale_Msk (3ul << ITM_TCR_TSPrescale_Pos) /*!< ITM TCR: TSPrescale Mask */ + +#define ITM_TCR_SWOENA_Pos 4 /*!< ITM TCR: SWOENA Position */ +#define ITM_TCR_SWOENA_Msk (1ul << ITM_TCR_SWOENA_Pos) /*!< ITM TCR: SWOENA Mask */ + +#define ITM_TCR_DWTENA_Pos 3 /*!< ITM TCR: DWTENA Position */ +#define ITM_TCR_DWTENA_Msk (1ul << ITM_TCR_DWTENA_Pos) /*!< ITM TCR: DWTENA Mask */ + +#define ITM_TCR_SYNCENA_Pos 2 /*!< ITM TCR: SYNCENA Position */ +#define ITM_TCR_SYNCENA_Msk (1ul << ITM_TCR_SYNCENA_Pos) /*!< ITM TCR: SYNCENA Mask */ + +#define ITM_TCR_TSENA_Pos 1 /*!< ITM TCR: TSENA Position */ +#define ITM_TCR_TSENA_Msk (1ul << ITM_TCR_TSENA_Pos) /*!< ITM TCR: TSENA Mask */ + +#define ITM_TCR_ITMENA_Pos 0 /*!< ITM TCR: ITM Enable bit Position */ +#define ITM_TCR_ITMENA_Msk (1ul << ITM_TCR_ITMENA_Pos) /*!< ITM TCR: ITM Enable bit Mask */ + +/* ITM Integration Write Register Definitions */ +#define ITM_IWR_ATVALIDM_Pos 0 /*!< ITM IWR: ATVALIDM Position */ +#define ITM_IWR_ATVALIDM_Msk (1ul << ITM_IWR_ATVALIDM_Pos) /*!< ITM IWR: ATVALIDM Mask */ + +/* ITM Integration Read Register Definitions */ +#define ITM_IRR_ATREADYM_Pos 0 /*!< ITM IRR: ATREADYM Position */ +#define ITM_IRR_ATREADYM_Msk (1ul << ITM_IRR_ATREADYM_Pos) /*!< ITM IRR: ATREADYM Mask */ + +/* ITM Integration Mode Control Register Definitions */ +#define ITM_IMCR_INTEGRATION_Pos 0 /*!< ITM IMCR: INTEGRATION Position */ +#define ITM_IMCR_INTEGRATION_Msk (1ul << ITM_IMCR_INTEGRATION_Pos) /*!< ITM IMCR: INTEGRATION Mask */ + +/* ITM Lock Status Register Definitions */ +#define ITM_LSR_ByteAcc_Pos 2 /*!< ITM LSR: ByteAcc Position */ +#define ITM_LSR_ByteAcc_Msk (1ul << ITM_LSR_ByteAcc_Pos) /*!< ITM LSR: ByteAcc Mask */ + +#define ITM_LSR_Access_Pos 1 /*!< ITM LSR: Access Position */ +#define ITM_LSR_Access_Msk (1ul << ITM_LSR_Access_Pos) /*!< ITM LSR: Access Mask */ + +#define ITM_LSR_Present_Pos 0 /*!< ITM LSR: Present Position */ +#define ITM_LSR_Present_Msk (1ul << ITM_LSR_Present_Pos) /*!< ITM LSR: Present Mask */ +/*@}*/ /* end of group CMSIS_CM3_ITM */ + + +/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type + memory mapped structure for Interrupt Type + @{ + */ +typedef struct +{ + uint32_t RESERVED0; + __I uint32_t ICTR; /*!< Offset: 0x04 Interrupt Control Type Register */ +#if ((defined __CM3_REV) && (__CM3_REV >= 0x200)) + __IO uint32_t ACTLR; /*!< Offset: 0x08 Auxiliary Control Register */ +#else + uint32_t RESERVED1; +#endif +} InterruptType_Type; + +/* Interrupt Controller Type Register Definitions */ +#define InterruptType_ICTR_INTLINESNUM_Pos 0 /*!< InterruptType ICTR: INTLINESNUM Position */ +#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */ + +/* Auxiliary Control Register Definitions */ +#define InterruptType_ACTLR_DISFOLD_Pos 2 /*!< InterruptType ACTLR: DISFOLD Position */ +#define InterruptType_ACTLR_DISFOLD_Msk (1ul << InterruptType_ACTLR_DISFOLD_Pos) /*!< InterruptType ACTLR: DISFOLD Mask */ + +#define InterruptType_ACTLR_DISDEFWBUF_Pos 1 /*!< InterruptType ACTLR: DISDEFWBUF Position */ +#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos) /*!< InterruptType ACTLR: DISDEFWBUF Mask */ + +#define InterruptType_ACTLR_DISMCYCINT_Pos 0 /*!< InterruptType ACTLR: DISMCYCINT Position */ +#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos) /*!< InterruptType ACTLR: DISMCYCINT Mask */ +/*@}*/ /* end of group CMSIS_CM3_InterruptType */ + + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) +/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU + memory mapped structure for Memory Protection Unit (MPU) + @{ + */ +typedef struct +{ + __I uint32_t TYPE; /*!< Offset: 0x00 MPU Type Register */ + __IO uint32_t CTRL; /*!< Offset: 0x04 MPU Control Register */ + __IO uint32_t RNR; /*!< Offset: 0x08 MPU Region RNRber Register */ + __IO uint32_t RBAR; /*!< Offset: 0x0C MPU Region Base Address Register */ + __IO uint32_t RASR; /*!< Offset: 0x10 MPU Region Attribute and Size Register */ + __IO uint32_t RBAR_A1; /*!< Offset: 0x14 MPU Alias 1 Region Base Address Register */ + __IO uint32_t RASR_A1; /*!< Offset: 0x18 MPU Alias 1 Region Attribute and Size Register */ + __IO uint32_t RBAR_A2; /*!< Offset: 0x1C MPU Alias 2 Region Base Address Register */ + __IO uint32_t RASR_A2; /*!< Offset: 0x20 MPU Alias 2 Region Attribute and Size Register */ + __IO uint32_t RBAR_A3; /*!< Offset: 0x24 MPU Alias 3 Region Base Address Register */ + __IO uint32_t RASR_A3; /*!< Offset: 0x28 MPU Alias 3 Region Attribute and Size Register */ +} MPU_Type; + +/* MPU Type Register */ +#define MPU_TYPE_IREGION_Pos 16 /*!< MPU TYPE: IREGION Position */ +#define MPU_TYPE_IREGION_Msk (0xFFul << MPU_TYPE_IREGION_Pos) /*!< MPU TYPE: IREGION Mask */ + +#define MPU_TYPE_DREGION_Pos 8 /*!< MPU TYPE: DREGION Position */ +#define MPU_TYPE_DREGION_Msk (0xFFul << MPU_TYPE_DREGION_Pos) /*!< MPU TYPE: DREGION Mask */ + +#define MPU_TYPE_SEPARATE_Pos 0 /*!< MPU TYPE: SEPARATE Position */ +#define MPU_TYPE_SEPARATE_Msk (1ul << MPU_TYPE_SEPARATE_Pos) /*!< MPU TYPE: SEPARATE Mask */ + +/* MPU Control Register */ +#define MPU_CTRL_PRIVDEFENA_Pos 2 /*!< MPU CTRL: PRIVDEFENA Position */ +#define MPU_CTRL_PRIVDEFENA_Msk (1ul << MPU_CTRL_PRIVDEFENA_Pos) /*!< MPU CTRL: PRIVDEFENA Mask */ + +#define MPU_CTRL_HFNMIENA_Pos 1 /*!< MPU CTRL: HFNMIENA Position */ +#define MPU_CTRL_HFNMIENA_Msk (1ul << MPU_CTRL_HFNMIENA_Pos) /*!< MPU CTRL: HFNMIENA Mask */ + +#define MPU_CTRL_ENABLE_Pos 0 /*!< MPU CTRL: ENABLE Position */ +#define MPU_CTRL_ENABLE_Msk (1ul << MPU_CTRL_ENABLE_Pos) /*!< MPU CTRL: ENABLE Mask */ + +/* MPU Region Number Register */ +#define MPU_RNR_REGION_Pos 0 /*!< MPU RNR: REGION Position */ +#define MPU_RNR_REGION_Msk (0xFFul << MPU_RNR_REGION_Pos) /*!< MPU RNR: REGION Mask */ + +/* MPU Region Base Address Register */ +#define MPU_RBAR_ADDR_Pos 5 /*!< MPU RBAR: ADDR Position */ +#define MPU_RBAR_ADDR_Msk (0x7FFFFFFul << MPU_RBAR_ADDR_Pos) /*!< MPU RBAR: ADDR Mask */ + +#define MPU_RBAR_VALID_Pos 4 /*!< MPU RBAR: VALID Position */ +#define MPU_RBAR_VALID_Msk (1ul << MPU_RBAR_VALID_Pos) /*!< MPU RBAR: VALID Mask */ + +#define MPU_RBAR_REGION_Pos 0 /*!< MPU RBAR: REGION Position */ +#define MPU_RBAR_REGION_Msk (0xFul << MPU_RBAR_REGION_Pos) /*!< MPU RBAR: REGION Mask */ + +/* MPU Region Attribute and Size Register */ +#define MPU_RASR_XN_Pos 28 /*!< MPU RASR: XN Position */ +#define MPU_RASR_XN_Msk (1ul << MPU_RASR_XN_Pos) /*!< MPU RASR: XN Mask */ + +#define MPU_RASR_AP_Pos 24 /*!< MPU RASR: AP Position */ +#define MPU_RASR_AP_Msk (7ul << MPU_RASR_AP_Pos) /*!< MPU RASR: AP Mask */ + +#define MPU_RASR_TEX_Pos 19 /*!< MPU RASR: TEX Position */ +#define MPU_RASR_TEX_Msk (7ul << MPU_RASR_TEX_Pos) /*!< MPU RASR: TEX Mask */ + +#define MPU_RASR_S_Pos 18 /*!< MPU RASR: Shareable bit Position */ +#define MPU_RASR_S_Msk (1ul << MPU_RASR_S_Pos) /*!< MPU RASR: Shareable bit Mask */ + +#define MPU_RASR_C_Pos 17 /*!< MPU RASR: Cacheable bit Position */ +#define MPU_RASR_C_Msk (1ul << MPU_RASR_C_Pos) /*!< MPU RASR: Cacheable bit Mask */ + +#define MPU_RASR_B_Pos 16 /*!< MPU RASR: Bufferable bit Position */ +#define MPU_RASR_B_Msk (1ul << MPU_RASR_B_Pos) /*!< MPU RASR: Bufferable bit Mask */ + +#define MPU_RASR_SRD_Pos 8 /*!< MPU RASR: Sub-Region Disable Position */ +#define MPU_RASR_SRD_Msk (0xFFul << MPU_RASR_SRD_Pos) /*!< MPU RASR: Sub-Region Disable Mask */ + +#define MPU_RASR_SIZE_Pos 1 /*!< MPU RASR: Region Size Field Position */ +#define MPU_RASR_SIZE_Msk (0x1Ful << MPU_RASR_SIZE_Pos) /*!< MPU RASR: Region Size Field Mask */ + +#define MPU_RASR_ENA_Pos 0 /*!< MPU RASR: Region enable bit Position */ +#define MPU_RASR_ENA_Msk (0x1Ful << MPU_RASR_ENA_Pos) /*!< MPU RASR: Region enable bit Disable Mask */ + +/*@}*/ /* end of group CMSIS_CM3_MPU */ +#endif + + +/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug + memory mapped structure for Core Debug Register + @{ + */ +typedef struct +{ + __IO uint32_t DHCSR; /*!< Offset: 0x00 Debug Halting Control and Status Register */ + __O uint32_t DCRSR; /*!< Offset: 0x04 Debug Core Register Selector Register */ + __IO uint32_t DCRDR; /*!< Offset: 0x08 Debug Core Register Data Register */ + __IO uint32_t DEMCR; /*!< Offset: 0x0C Debug Exception and Monitor Control Register */ +} CoreDebug_Type; + +/* Debug Halting Control and Status Register */ +#define CoreDebug_DHCSR_DBGKEY_Pos 16 /*!< CoreDebug DHCSR: DBGKEY Position */ +#define CoreDebug_DHCSR_DBGKEY_Msk (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos) /*!< CoreDebug DHCSR: DBGKEY Mask */ + +#define CoreDebug_DHCSR_S_RESET_ST_Pos 25 /*!< CoreDebug DHCSR: S_RESET_ST Position */ +#define CoreDebug_DHCSR_S_RESET_ST_Msk (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos) /*!< CoreDebug DHCSR: S_RESET_ST Mask */ + +#define CoreDebug_DHCSR_S_RETIRE_ST_Pos 24 /*!< CoreDebug DHCSR: S_RETIRE_ST Position */ +#define CoreDebug_DHCSR_S_RETIRE_ST_Msk (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos) /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */ + +#define CoreDebug_DHCSR_S_LOCKUP_Pos 19 /*!< CoreDebug DHCSR: S_LOCKUP Position */ +#define CoreDebug_DHCSR_S_LOCKUP_Msk (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos) /*!< CoreDebug DHCSR: S_LOCKUP Mask */ + +#define CoreDebug_DHCSR_S_SLEEP_Pos 18 /*!< CoreDebug DHCSR: S_SLEEP Position */ +#define CoreDebug_DHCSR_S_SLEEP_Msk (1ul << CoreDebug_DHCSR_S_SLEEP_Pos) /*!< CoreDebug DHCSR: S_SLEEP Mask */ + +#define CoreDebug_DHCSR_S_HALT_Pos 17 /*!< CoreDebug DHCSR: S_HALT Position */ +#define CoreDebug_DHCSR_S_HALT_Msk (1ul << CoreDebug_DHCSR_S_HALT_Pos) /*!< CoreDebug DHCSR: S_HALT Mask */ + +#define CoreDebug_DHCSR_S_REGRDY_Pos 16 /*!< CoreDebug DHCSR: S_REGRDY Position */ +#define CoreDebug_DHCSR_S_REGRDY_Msk (1ul << CoreDebug_DHCSR_S_REGRDY_Pos) /*!< CoreDebug DHCSR: S_REGRDY Mask */ + +#define CoreDebug_DHCSR_C_SNAPSTALL_Pos 5 /*!< CoreDebug DHCSR: C_SNAPSTALL Position */ +#define CoreDebug_DHCSR_C_SNAPSTALL_Msk (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos) /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */ + +#define CoreDebug_DHCSR_C_MASKINTS_Pos 3 /*!< CoreDebug DHCSR: C_MASKINTS Position */ +#define CoreDebug_DHCSR_C_MASKINTS_Msk (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos) /*!< CoreDebug DHCSR: C_MASKINTS Mask */ + +#define CoreDebug_DHCSR_C_STEP_Pos 2 /*!< CoreDebug DHCSR: C_STEP Position */ +#define CoreDebug_DHCSR_C_STEP_Msk (1ul << CoreDebug_DHCSR_C_STEP_Pos) /*!< CoreDebug DHCSR: C_STEP Mask */ + +#define CoreDebug_DHCSR_C_HALT_Pos 1 /*!< CoreDebug DHCSR: C_HALT Position */ +#define CoreDebug_DHCSR_C_HALT_Msk (1ul << CoreDebug_DHCSR_C_HALT_Pos) /*!< CoreDebug DHCSR: C_HALT Mask */ + +#define CoreDebug_DHCSR_C_DEBUGEN_Pos 0 /*!< CoreDebug DHCSR: C_DEBUGEN Position */ +#define CoreDebug_DHCSR_C_DEBUGEN_Msk (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos) /*!< CoreDebug DHCSR: C_DEBUGEN Mask */ + +/* Debug Core Register Selector Register */ +#define CoreDebug_DCRSR_REGWnR_Pos 16 /*!< CoreDebug DCRSR: REGWnR Position */ +#define CoreDebug_DCRSR_REGWnR_Msk (1ul << CoreDebug_DCRSR_REGWnR_Pos) /*!< CoreDebug DCRSR: REGWnR Mask */ + +#define CoreDebug_DCRSR_REGSEL_Pos 0 /*!< CoreDebug DCRSR: REGSEL Position */ +#define CoreDebug_DCRSR_REGSEL_Msk (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos) /*!< CoreDebug DCRSR: REGSEL Mask */ + +/* Debug Exception and Monitor Control Register */ +#define CoreDebug_DEMCR_TRCENA_Pos 24 /*!< CoreDebug DEMCR: TRCENA Position */ +#define CoreDebug_DEMCR_TRCENA_Msk (1ul << CoreDebug_DEMCR_TRCENA_Pos) /*!< CoreDebug DEMCR: TRCENA Mask */ + +#define CoreDebug_DEMCR_MON_REQ_Pos 19 /*!< CoreDebug DEMCR: MON_REQ Position */ +#define CoreDebug_DEMCR_MON_REQ_Msk (1ul << CoreDebug_DEMCR_MON_REQ_Pos) /*!< CoreDebug DEMCR: MON_REQ Mask */ + +#define CoreDebug_DEMCR_MON_STEP_Pos 18 /*!< CoreDebug DEMCR: MON_STEP Position */ +#define CoreDebug_DEMCR_MON_STEP_Msk (1ul << CoreDebug_DEMCR_MON_STEP_Pos) /*!< CoreDebug DEMCR: MON_STEP Mask */ + +#define CoreDebug_DEMCR_MON_PEND_Pos 17 /*!< CoreDebug DEMCR: MON_PEND Position */ +#define CoreDebug_DEMCR_MON_PEND_Msk (1ul << CoreDebug_DEMCR_MON_PEND_Pos) /*!< CoreDebug DEMCR: MON_PEND Mask */ + +#define CoreDebug_DEMCR_MON_EN_Pos 16 /*!< CoreDebug DEMCR: MON_EN Position */ +#define CoreDebug_DEMCR_MON_EN_Msk (1ul << CoreDebug_DEMCR_MON_EN_Pos) /*!< CoreDebug DEMCR: MON_EN Mask */ + +#define CoreDebug_DEMCR_VC_HARDERR_Pos 10 /*!< CoreDebug DEMCR: VC_HARDERR Position */ +#define CoreDebug_DEMCR_VC_HARDERR_Msk (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos) /*!< CoreDebug DEMCR: VC_HARDERR Mask */ + +#define CoreDebug_DEMCR_VC_INTERR_Pos 9 /*!< CoreDebug DEMCR: VC_INTERR Position */ +#define CoreDebug_DEMCR_VC_INTERR_Msk (1ul << CoreDebug_DEMCR_VC_INTERR_Pos) /*!< CoreDebug DEMCR: VC_INTERR Mask */ + +#define CoreDebug_DEMCR_VC_BUSERR_Pos 8 /*!< CoreDebug DEMCR: VC_BUSERR Position */ +#define CoreDebug_DEMCR_VC_BUSERR_Msk (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos) /*!< CoreDebug DEMCR: VC_BUSERR Mask */ + +#define CoreDebug_DEMCR_VC_STATERR_Pos 7 /*!< CoreDebug DEMCR: VC_STATERR Position */ +#define CoreDebug_DEMCR_VC_STATERR_Msk (1ul << CoreDebug_DEMCR_VC_STATERR_Pos) /*!< CoreDebug DEMCR: VC_STATERR Mask */ + +#define CoreDebug_DEMCR_VC_CHKERR_Pos 6 /*!< CoreDebug DEMCR: VC_CHKERR Position */ +#define CoreDebug_DEMCR_VC_CHKERR_Msk (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos) /*!< CoreDebug DEMCR: VC_CHKERR Mask */ + +#define CoreDebug_DEMCR_VC_NOCPERR_Pos 5 /*!< CoreDebug DEMCR: VC_NOCPERR Position */ +#define CoreDebug_DEMCR_VC_NOCPERR_Msk (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos) /*!< CoreDebug DEMCR: VC_NOCPERR Mask */ + +#define CoreDebug_DEMCR_VC_MMERR_Pos 4 /*!< CoreDebug DEMCR: VC_MMERR Position */ +#define CoreDebug_DEMCR_VC_MMERR_Msk (1ul << CoreDebug_DEMCR_VC_MMERR_Pos) /*!< CoreDebug DEMCR: VC_MMERR Mask */ + +#define CoreDebug_DEMCR_VC_CORERESET_Pos 0 /*!< CoreDebug DEMCR: VC_CORERESET Position */ +#define CoreDebug_DEMCR_VC_CORERESET_Msk (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos) /*!< CoreDebug DEMCR: VC_CORERESET Mask */ +/*@}*/ /* end of group CMSIS_CM3_CoreDebug */ + + +/* Memory mapping of Cortex-M3 Hardware */ +#define SCS_BASE (0xE000E000) /*!< System Control Space Base Address */ +#define ITM_BASE (0xE0000000) /*!< ITM Base Address */ +#define CoreDebug_BASE (0xE000EDF0) /*!< Core Debug Base Address */ +#define SysTick_BASE (SCS_BASE + 0x0010) /*!< SysTick Base Address */ +#define NVIC_BASE (SCS_BASE + 0x0100) /*!< NVIC Base Address */ +#define SCB_BASE (SCS_BASE + 0x0D00) /*!< System Control Block Base Address */ + +#define InterruptType ((InterruptType_Type *) SCS_BASE) /*!< Interrupt Type Register */ +#define SCB ((SCB_Type *) SCB_BASE) /*!< SCB configuration struct */ +#define SysTick ((SysTick_Type *) SysTick_BASE) /*!< SysTick configuration struct */ +#define NVIC ((NVIC_Type *) NVIC_BASE) /*!< NVIC configuration struct */ +#define ITM ((ITM_Type *) ITM_BASE) /*!< ITM configuration struct */ +#define CoreDebug ((CoreDebug_Type *) CoreDebug_BASE) /*!< Core Debug configuration struct */ + +#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1) + #define MPU_BASE (SCS_BASE + 0x0D90) /*!< Memory Protection Unit */ + #define MPU ((MPU_Type*) MPU_BASE) /*!< Memory Protection Unit */ +#endif + +/*@}*/ /* end of group CMSIS_CM3_core_register */ + + +/******************************************************************************* + * Hardware Abstraction Layer + ******************************************************************************/ + +#if defined ( __CC_ARM ) + #define __ASM __asm /*!< asm keyword for ARM Compiler */ + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + +#elif defined ( __ICCARM__ ) + #define __ASM __asm /*!< asm keyword for IAR Compiler */ + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ + +#elif defined ( __GNUC__ ) + #define __ASM __asm /*!< asm keyword for GNU Compiler */ + #define __INLINE inline /*!< inline keyword for GNU Compiler */ + +#elif defined ( __TASKING__ ) + #define __ASM __asm /*!< asm keyword for TASKING Compiler */ + #define __INLINE inline /*!< inline keyword for TASKING Compiler */ + +#endif + + +/* ################### Compiler specific Intrinsics ########################### */ + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#define __enable_fault_irq __enable_fiq +#define __disable_fault_irq __disable_fiq + +#define __NOP __nop +#define __WFI __wfi +#define __WFE __wfe +#define __SEV __sev +#define __ISB() __isb(0) +#define __DSB() __dsb(0) +#define __DMB() __dmb(0) +#define __REV __rev +#define __RBIT __rbit +#define __LDREXB(ptr) ((unsigned char ) __ldrex(ptr)) +#define __LDREXH(ptr) ((unsigned short) __ldrex(ptr)) +#define __LDREXW(ptr) ((unsigned int ) __ldrex(ptr)) +#define __STREXB(value, ptr) __strex(value, ptr) +#define __STREXH(value, ptr) __strex(value, ptr) +#define __STREXW(value, ptr) __strex(value, ptr) + + +/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */ +/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */ +/* intrinsic void __enable_irq(); */ +/* intrinsic void __disable_irq(); */ + + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +extern uint32_t __get_PSP(void); + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +extern void __set_PSP(uint32_t topOfProcStack); + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +extern uint32_t __get_MSP(void); + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +extern void __set_MSP(uint32_t topOfMainStack); + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +extern uint32_t __REV16(uint16_t value); + +/** + * @brief Reverse byte order in signed short value with sign extension to integer + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in signed short value with sign extension to integer + */ +extern int32_t __REVSH(int16_t value); + + +#if (__ARMCC_VERSION < 400000) + +/** + * @brief Remove the exclusive lock created by ldrex + * + * Removes the exclusive lock which is created by ldrex. + */ +extern void __CLREX(void); + +/** + * @brief Return the Base Priority value + * + * @return BasePriority + * + * Return the content of the base priority register + */ +extern uint32_t __get_BASEPRI(void); + +/** + * @brief Set the Base Priority value + * + * @param basePri BasePriority + * + * Set the base priority register + */ +extern void __set_BASEPRI(uint32_t basePri); + +/** + * @brief Return the Priority Mask value + * + * @return PriMask + * + * Return state of the priority mask bit from the priority mask register + */ +extern uint32_t __get_PRIMASK(void); + +/** + * @brief Set the Priority Mask value + * + * @param priMask PriMask + * + * Set the priority mask bit in the priority mask register + */ +extern void __set_PRIMASK(uint32_t priMask); + +/** + * @brief Return the Fault Mask value + * + * @return FaultMask + * + * Return the content of the fault mask register + */ +extern uint32_t __get_FAULTMASK(void); + +/** + * @brief Set the Fault Mask value + * + * @param faultMask faultMask value + * + * Set the fault mask register + */ +extern void __set_FAULTMASK(uint32_t faultMask); + +/** + * @brief Return the Control Register value + * + * @return Control value + * + * Return the content of the control register + */ +extern uint32_t __get_CONTROL(void); + +/** + * @brief Set the Control Register value + * + * @param control Control value + * + * Set the control register + */ +extern void __set_CONTROL(uint32_t control); + +#else /* (__ARMCC_VERSION >= 400000) */ + +/** + * @brief Remove the exclusive lock created by ldrex + * + * Removes the exclusive lock which is created by ldrex. + */ +#define __CLREX __clrex + +/** + * @brief Return the Base Priority value + * + * @return BasePriority + * + * Return the content of the base priority register + */ +static __INLINE uint32_t __get_BASEPRI(void) +{ + register uint32_t __regBasePri __ASM("basepri"); + return(__regBasePri); +} + +/** + * @brief Set the Base Priority value + * + * @param basePri BasePriority + * + * Set the base priority register + */ +static __INLINE void __set_BASEPRI(uint32_t basePri) +{ + register uint32_t __regBasePri __ASM("basepri"); + __regBasePri = (basePri & 0xff); +} + +/** + * @brief Return the Priority Mask value + * + * @return PriMask + * + * Return state of the priority mask bit from the priority mask register + */ +static __INLINE uint32_t __get_PRIMASK(void) +{ + register uint32_t __regPriMask __ASM("primask"); + return(__regPriMask); +} + +/** + * @brief Set the Priority Mask value + * + * @param priMask PriMask + * + * Set the priority mask bit in the priority mask register + */ +static __INLINE void __set_PRIMASK(uint32_t priMask) +{ + register uint32_t __regPriMask __ASM("primask"); + __regPriMask = (priMask); +} + +/** + * @brief Return the Fault Mask value + * + * @return FaultMask + * + * Return the content of the fault mask register + */ +static __INLINE uint32_t __get_FAULTMASK(void) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + return(__regFaultMask); +} + +/** + * @brief Set the Fault Mask value + * + * @param faultMask faultMask value + * + * Set the fault mask register + */ +static __INLINE void __set_FAULTMASK(uint32_t faultMask) +{ + register uint32_t __regFaultMask __ASM("faultmask"); + __regFaultMask = (faultMask & 1); +} + +/** + * @brief Return the Control Register value + * + * @return Control value + * + * Return the content of the control register + */ +static __INLINE uint32_t __get_CONTROL(void) +{ + register uint32_t __regControl __ASM("control"); + return(__regControl); +} + +/** + * @brief Set the Control Register value + * + * @param control Control value + * + * Set the control register + */ +static __INLINE void __set_CONTROL(uint32_t control) +{ + register uint32_t __regControl __ASM("control"); + __regControl = control; +} + +#endif /* __ARMCC_VERSION */ + + + +#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/ +/* IAR iccarm specific functions */ + +#define __enable_irq __enable_interrupt /*!< global Interrupt enable */ +#define __disable_irq __disable_interrupt /*!< global Interrupt disable */ + +static __INLINE void __enable_fault_irq() { __ASM ("cpsie f"); } +static __INLINE void __disable_fault_irq() { __ASM ("cpsid f"); } + +#define __NOP __no_operation /*!< no operation intrinsic in IAR Compiler */ +static __INLINE void __WFI() { __ASM ("wfi"); } +static __INLINE void __WFE() { __ASM ("wfe"); } +static __INLINE void __SEV() { __ASM ("sev"); } +static __INLINE void __CLREX() { __ASM ("clrex"); } + +/* intrinsic void __ISB(void) */ +/* intrinsic void __DSB(void) */ +/* intrinsic void __DMB(void) */ +/* intrinsic void __set_PRIMASK(); */ +/* intrinsic void __get_PRIMASK(); */ +/* intrinsic void __set_FAULTMASK(); */ +/* intrinsic void __get_FAULTMASK(); */ +/* intrinsic uint32_t __REV(uint32_t value); */ +/* intrinsic uint32_t __REVSH(uint32_t value); */ +/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */ +/* intrinsic unsigned long __LDREX(unsigned long *); */ + + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +#if (__VER__ < 6020000) +extern uint32_t __get_PSP(void); +#endif + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +#if (__VER__ < 6020000) +extern void __set_PSP(uint32_t topOfProcStack); +#endif + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +#if (__VER__ < 6020000) +extern uint32_t __get_MSP(void); +#endif + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +#if (__VER__ < 6020000) +extern void __set_MSP(uint32_t topOfMainStack); +#endif + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +#if (__VER__ < 6020000) +extern uint32_t __REV16(uint16_t value); +#endif + +/** + * @brief Reverse bit order of value + * + * @param value value to reverse + * @return reversed value + * + * Reverse bit order of value + */ +#if (__VER__ < 6020000) +extern uint32_t __RBIT(uint32_t value); +#endif + +/** + * @brief LDR Exclusive (8 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 8 bit values) + */ +#if (__VER__ < 6020000) +extern uint8_t __LDREXB(uint8_t *addr); +#endif + +/** + * @brief LDR Exclusive (16 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 16 bit values + */ +#if (__VER__ < 6020000) +extern uint16_t __LDREXH(uint16_t *addr); +#endif + +/** + * @brief LDR Exclusive (32 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 32 bit values + */ +extern uint32_t __LDREXW(uint32_t *addr); + +/** + * @brief STR Exclusive (8 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 8 bit values + */ +#if (__VER__ < 6020000) +extern uint32_t __STREXB(uint8_t value, uint8_t *addr); +#endif + +/** + * @brief STR Exclusive (16 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 16 bit values + */ +#if (__VER__ < 6020000) +extern uint32_t __STREXH(uint16_t value, uint16_t *addr); +#endif + +/** + * @brief STR Exclusive (32 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 32 bit values + */ +extern uint32_t __STREXW(uint32_t value, uint32_t *addr); + + + +#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/ +/* GNU gcc specific functions */ + +static __INLINE void __enable_irq(void) { __ASM volatile ("cpsie i"); } +static __INLINE void __disable_irq(void) { __ASM volatile ("cpsid i"); } + +static __INLINE void __enable_fault_irq(void) { __ASM volatile ("cpsie f"); } +static __INLINE void __disable_fault_irq(void) { __ASM volatile ("cpsid f"); } + +static __INLINE void __NOP(void) { __ASM volatile ("nop"); } +static __INLINE void __WFI(void) { __ASM volatile ("wfi"); } +static __INLINE void __WFE(void) { __ASM volatile ("wfe"); } +static __INLINE void __SEV(void) { __ASM volatile ("sev"); } +static __INLINE void __ISB(void) { __ASM volatile ("isb"); } +static __INLINE void __DSB(void) { __ASM volatile ("dsb"); } +static __INLINE void __DMB(void) { __ASM volatile ("dmb"); } +static __INLINE void __CLREX(void) { __ASM volatile ("clrex"); } + + +/** + * @brief Return the Process Stack Pointer + * + * @return ProcessStackPointer + * + * Return the actual process stack pointer + */ +extern uint32_t __get_PSP(void); + +/** + * @brief Set the Process Stack Pointer + * + * @param topOfProcStack Process Stack Pointer + * + * Assign the value ProcessStackPointer to the MSP + * (process stack pointer) Cortex processor register + */ +extern void __set_PSP(uint32_t topOfProcStack); + +/** + * @brief Return the Main Stack Pointer + * + * @return Main Stack Pointer + * + * Return the current value of the MSP (main stack pointer) + * Cortex processor register + */ +extern uint32_t __get_MSP(void); + +/** + * @brief Set the Main Stack Pointer + * + * @param topOfMainStack Main Stack Pointer + * + * Assign the value mainStackPointer to the MSP + * (main stack pointer) Cortex processor register + */ +extern void __set_MSP(uint32_t topOfMainStack); + +/** + * @brief Return the Base Priority value + * + * @return BasePriority + * + * Return the content of the base priority register + */ +extern uint32_t __get_BASEPRI(void); + +/** + * @brief Set the Base Priority value + * + * @param basePri BasePriority + * + * Set the base priority register + */ +extern void __set_BASEPRI(uint32_t basePri); + +/** + * @brief Return the Priority Mask value + * + * @return PriMask + * + * Return state of the priority mask bit from the priority mask register + */ +extern uint32_t __get_PRIMASK(void); + +/** + * @brief Set the Priority Mask value + * + * @param priMask PriMask + * + * Set the priority mask bit in the priority mask register + */ +extern void __set_PRIMASK(uint32_t priMask); + +/** + * @brief Return the Fault Mask value + * + * @return FaultMask + * + * Return the content of the fault mask register + */ +extern uint32_t __get_FAULTMASK(void); + +/** + * @brief Set the Fault Mask value + * + * @param faultMask faultMask value + * + * Set the fault mask register + */ +extern void __set_FAULTMASK(uint32_t faultMask); + +/** + * @brief Return the Control Register value +* +* @return Control value + * + * Return the content of the control register + */ +extern uint32_t __get_CONTROL(void); + +/** + * @brief Set the Control Register value + * + * @param control Control value + * + * Set the control register + */ +extern void __set_CONTROL(uint32_t control); + +/** + * @brief Reverse byte order in integer value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in integer value + */ +extern uint32_t __REV(uint32_t value); + +/** + * @brief Reverse byte order in unsigned short value + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in unsigned short value + */ +extern uint32_t __REV16(uint16_t value); + +/** + * @brief Reverse byte order in signed short value with sign extension to integer + * + * @param value value to reverse + * @return reversed value + * + * Reverse byte order in signed short value with sign extension to integer + */ +extern int32_t __REVSH(int16_t value); + +/** + * @brief Reverse bit order of value + * + * @param value value to reverse + * @return reversed value + * + * Reverse bit order of value + */ +extern uint32_t __RBIT(uint32_t value); + +/** + * @brief LDR Exclusive (8 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 8 bit value + */ +extern uint8_t __LDREXB(uint8_t *addr); + +/** + * @brief LDR Exclusive (16 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 16 bit values + */ +extern uint16_t __LDREXH(uint16_t *addr); + +/** + * @brief LDR Exclusive (32 bit) + * + * @param *addr address pointer + * @return value of (*address) + * + * Exclusive LDR command for 32 bit values + */ +extern uint32_t __LDREXW(uint32_t *addr); + +/** + * @brief STR Exclusive (8 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 8 bit values + */ +extern uint32_t __STREXB(uint8_t value, uint8_t *addr); + +/** + * @brief STR Exclusive (16 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 16 bit values + */ +extern uint32_t __STREXH(uint16_t value, uint16_t *addr); + +/** + * @brief STR Exclusive (32 bit) + * + * @param value value to store + * @param *addr address pointer + * @return successful / failed + * + * Exclusive STR command for 32 bit values + */ +extern uint32_t __STREXW(uint32_t value, uint32_t *addr); + + +#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/ +/* TASKING carm specific functions */ + +/* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all instrinsics, + * Including the CMSIS ones. + */ + +#endif + + +/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface + Core Function Interface containing: + - Core NVIC Functions + - Core SysTick Functions + - Core Reset Functions +*/ +/*@{*/ + +/* ########################## NVIC functions #################################### */ + +/** + * @brief Set the Priority Grouping in NVIC Interrupt Controller + * + * @param PriorityGroup is priority grouping field + * + * Set the priority grouping field using the required unlock sequence. + * The parameter priority_grouping is assigned to the field + * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used. + * In case of a conflict between priority grouping and available + * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set. + */ +static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) +{ + uint32_t reg_value; + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + + reg_value = SCB->AIRCR; /* read old register configuration */ + reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk); /* clear bits to change */ + reg_value = (reg_value | + (0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (PriorityGroupTmp << 8)); /* Insert write key and priorty group */ + SCB->AIRCR = reg_value; +} + +/** + * @brief Get the Priority Grouping from NVIC Interrupt Controller + * + * @return priority grouping field + * + * Get the priority grouping from NVIC Interrupt Controller. + * priority grouping is SCB->AIRCR [10:8] PRIGROUP field. + */ +static __INLINE uint32_t NVIC_GetPriorityGrouping(void) +{ + return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos); /* read priority grouping field */ +} + +/** + * @brief Enable Interrupt in NVIC Interrupt Controller + * + * @param IRQn The positive number of the external interrupt to enable + * + * Enable a device specific interupt in the NVIC interrupt controller. + * The interrupt number cannot be a negative value. + */ +static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) +{ + NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */ +} + +/** + * @brief Disable the interrupt line for external interrupt specified + * + * @param IRQn The positive number of the external interrupt to disable + * + * Disable a device specific interupt in the NVIC interrupt controller. + * The interrupt number cannot be a negative value. + */ +static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) +{ + NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */ +} + +/** + * @brief Read the interrupt pending bit for a device specific interrupt source + * + * @param IRQn The number of the device specifc interrupt + * @return 1 = interrupt pending, 0 = interrupt not pending + * + * Read the pending register in NVIC and return 1 if its status is pending, + * otherwise it returns 0 + */ +static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) +{ + return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */ +} + +/** + * @brief Set the pending bit for an external interrupt + * + * @param IRQn The number of the interrupt for set pending + * + * Set the pending bit for the specified interrupt. + * The interrupt number cannot be a negative value. + */ +static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */ +} + +/** + * @brief Clear the pending bit for an external interrupt + * + * @param IRQn The number of the interrupt for clear pending + * + * Clear the pending bit for the specified interrupt. + * The interrupt number cannot be a negative value. + */ +static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) +{ + NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */ +} + +/** + * @brief Read the active bit for an external interrupt + * + * @param IRQn The number of the interrupt for read active bit + * @return 1 = interrupt active, 0 = interrupt not active + * + * Read the active register in NVIC and returns 1 if its status is active, + * otherwise it returns 0. + */ +static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) +{ + return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */ +} + +/** + * @brief Set the priority for an interrupt + * + * @param IRQn The number of the interrupt for set priority + * @param priority The priority to set + * + * Set the priority for the specified interrupt. The interrupt + * number can be positive to specify an external (device specific) + * interrupt, or negative to specify an internal (core) interrupt. + * + * Note: The priority cannot be set for every core interrupt. + */ +static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) +{ + if(IRQn < 0) { + SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */ + else { + NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for device specific Interrupts */ +} + +/** + * @brief Read the priority for an interrupt + * + * @param IRQn The number of the interrupt for get priority + * @return The priority for the interrupt + * + * Read the priority for the specified interrupt. The interrupt + * number can be positive to specify an external (device specific) + * interrupt, or negative to specify an internal (core) interrupt. + * + * The returned priority value is automatically aligned to the implemented + * priority bits of the microcontroller. + * + * Note: The priority cannot be set for every core interrupt. + */ +static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) +{ + + if(IRQn < 0) { + return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for Cortex-M3 system interrupts */ + else { + return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)] >> (8 - __NVIC_PRIO_BITS))); } /* get priority for device specific interrupts */ +} + + +/** + * @brief Encode the priority for an interrupt + * + * @param PriorityGroup The used priority group + * @param PreemptPriority The preemptive priority value (starting from 0) + * @param SubPriority The sub priority value (starting from 0) + * @return The encoded priority for the interrupt + * + * Encode the priority for an interrupt with the given priority group, + * preemptive priority value and sub priority value. + * In case of a conflict between priority grouping and available + * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. + * + * The returned priority value can be used for NVIC_SetPriority(...) function + */ +static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + return ( + ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) | + ((SubPriority & ((1 << (SubPriorityBits )) - 1))) + ); +} + + +/** + * @brief Decode the priority of an interrupt + * + * @param Priority The priority for the interrupt + * @param PriorityGroup The used priority group + * @param pPreemptPriority The preemptive priority value (starting from 0) + * @param pSubPriority The sub priority value (starting from 0) + * + * Decode an interrupt priority value with the given priority group to + * preemptive priority value and sub priority value. + * In case of a conflict between priority grouping and available + * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set. + * + * The priority value can be retrieved with NVIC_GetPriority(...) function + */ +static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority) +{ + uint32_t PriorityGroupTmp = (PriorityGroup & 0x07); /* only values 0..7 are used */ + uint32_t PreemptPriorityBits; + uint32_t SubPriorityBits; + + PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp; + SubPriorityBits = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS; + + *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1); + *pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1); +} + + + +/* ################################## SysTick function ############################################ */ + +#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0) + +/** + * @brief Initialize and start the SysTick counter and its interrupt. + * + * @param ticks number of ticks between two interrupts + * @return 1 = failed, 0 = successful + * + * Initialise the system tick timer and its interrupt and start the + * system tick timer / counter in free running mode to generate + * periodical interrupts. + */ +static __INLINE uint32_t SysTick_Config(uint32_t ticks) +{ + if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ + + SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ + NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */ + SysTick->VAL = 0; /* Load the SysTick Counter Value */ + SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | + SysTick_CTRL_TICKINT_Msk | + SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ + return (0); /* Function successful */ +} + +#endif + + + + +/* ################################## Reset function ############################################ */ + +/** + * @brief Initiate a system reset request. + * + * Initiate a system reset request to reset the MCU + */ +static __INLINE void NVIC_SystemReset(void) +{ + SCB->AIRCR = ((0x5FA << SCB_AIRCR_VECTKEY_Pos) | + (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | + SCB_AIRCR_SYSRESETREQ_Msk); /* Keep priority group unchanged */ + __DSB(); /* Ensure completion of memory access */ + while(1); /* wait until reset */ +} + +/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */ + + + +/* ##################################### Debug In/Output function ########################################### */ + +/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface + Core Debug Interface containing: + - Core Debug Receive / Transmit Functions + - Core Debug Defines + - Core Debug Variables +*/ +/*@{*/ + +extern volatile int ITM_RxBuffer; /*!< variable to receive characters */ +#define ITM_RXBUFFER_EMPTY 0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */ + + +/** + * @brief Outputs a character via the ITM channel 0 + * + * @param ch character to output + * @return character to output + * + * The function outputs a character via the ITM channel 0. + * The function returns when no debugger is connected that has booked the output. + * It is blocking when a debugger is connected, but the previous character send is not transmitted. + */ +static __INLINE uint32_t ITM_SendChar (uint32_t ch) +{ + if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk) && /* Trace enabled */ + (ITM->TCR & ITM_TCR_ITMENA_Msk) && /* ITM enabled */ + (ITM->TER & (1ul << 0) ) ) /* ITM Port #0 enabled */ + { + while (ITM->PORT[0].u32 == 0); + ITM->PORT[0].u8 = (uint8_t) ch; + } + return (ch); +} + + +/** + * @brief Inputs a character via variable ITM_RxBuffer + * + * @return received character, -1 = no character received + * + * The function inputs a character via variable ITM_RxBuffer. + * The function returns when no debugger is connected that has booked the output. + * It is blocking when a debugger is connected, but the previous character send is not transmitted. + */ +static __INLINE int ITM_ReceiveChar (void) { + int ch = -1; /* no character available */ + + if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) { + ch = ITM_RxBuffer; + ITM_RxBuffer = ITM_RXBUFFER_EMPTY; /* ready for next character */ + } + + return (ch); +} + + +/** + * @brief Check if a character via variable ITM_RxBuffer is available + * + * @return 1 = character available, 0 = no character available + * + * The function checks variable ITM_RxBuffer whether a character is available or not. + * The function returns '1' if a character is available and '0' if no character is available. + */ +static __INLINE int ITM_CheckChar (void) { + + if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) { + return (0); /* no character available */ + } else { + return (1); /* character available */ + } +} + +/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */ + + +#ifdef __cplusplus +} +#endif + +/*@}*/ /* end of group CMSIS_CM3_core_definitions */ + +#endif /* __CM3_CORE_H__ */ + +/*lint -restore */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/hw_reg_io.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/hw_reg_io.h new file mode 100644 index 00000000..3dbf88c1 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/hw_reg_io.h @@ -0,0 +1,113 @@ +/******************************************************************************* + * (c) Copyright 2011-2013 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 Cortex Microcontroller Software Interface - Peripheral + * Access Layer. + * + * This file provides interfaces to perform register and register bit level + * read / write operations. These interfaces support bit-banding in case of + * Cortex-M3 CPU. + * + * SVN $Revision: 5263 $ + * SVN $Date: 2013-03-21 20:14:58 +0530 (Thu, 21 Mar 2013) $ + */ + +#ifndef HW_REG_IO_H_ +#define HW_REG_IO_H_ + +#include /* Include standard types */ + +#if defined ( __CC_ARM ) + #define __INLINE __inline /*!< inline keyword for ARM Compiler */ + +#elif defined ( __ICCARM__ ) + #define __INLINE inline /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */ + +#elif defined ( __GNUC__ ) + #define __INLINE inline /*!< inline keyword for GNU Compiler */ +#endif + +/***************************************************************************************** + * Definitions for register access + */ + +#define HW_REG(addr) (*((volatile uint32_t *) (addr))) + +static __INLINE void write_reg32(volatile uint32_t * reg, uint32_t val) +{ + HW_REG(reg) = val; +} +static __INLINE void write_reg16(volatile uint16_t * reg, uint16_t val) +{ + HW_REG(reg) = val; +} +static __INLINE void write_reg8(volatile uint8_t * reg, uint8_t val) +{ + HW_REG(reg) = val; +} + +static __INLINE uint32_t read_reg32(volatile uint32_t * reg) +{ + return ( HW_REG(reg) ); +} +static __INLINE uint16_t read_reg16(volatile uint16_t * reg) +{ + return ( HW_REG(reg) ); +} +static __INLINE uint8_t read_reg8(volatile uint8_t * reg) +{ + return ( HW_REG(reg) ); +} +/***************************************************************************************** + * Definitions for register bits access using bit-band aliases for Cortex-M3 + */ +#define BITBAND(addr,bitnum) (((uint32_t)addr & 0xF0000000)+0x02000000+(((uint32_t)addr & 0xFFFFF)<<5)+(bitnum<<2)) +#define HW_REG_BIT(reg,bitnum) (*(volatile unsigned int *)((BITBAND(reg,bitnum)))) + +/***************************************************************************************** + * Functions to set a bit field in Cortex-M3 + */ +static __INLINE void set_bit_reg32(volatile uint32_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x1; +} +static __INLINE void set_bit_reg16(volatile uint16_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x1; +} +static __INLINE void set_bit_reg8(volatile uint8_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x1; +} +/***************************************************************************************** + * Functions to clear a bit field in Cortex-M3 + */ +static __INLINE void clear_bit_reg32(volatile uint32_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x0; +} +static __INLINE void clear_bit_reg16(volatile uint16_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x0; +} +static __INLINE void clear_bit_reg8(volatile uint8_t * reg, uint8_t bit) +{ + HW_REG_BIT(reg,bit) = 0x0; +} +/***************************************************************************************** + * Functions to read a bit field in Cortex-M3 + */ +static __INLINE uint8_t read_bit_reg32(volatile uint32_t * reg, uint8_t bit) +{ + return (HW_REG_BIT(reg,bit)); +} +static __INLINE uint8_t read_bit_reg16(volatile uint16_t * reg, uint8_t bit) +{ + return (HW_REG_BIT(reg,bit)); +} +static __INLINE uint8_t read_bit_reg8(volatile uint8_t * reg, uint8_t bit) +{ + return (HW_REG_BIT(reg,bit)); +} + +#endif /* HW_REG_IO_H_ */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/m2sxxx.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/m2sxxx.h new file mode 100644 index 00000000..776c9c38 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/m2sxxx.h @@ -0,0 +1,2826 @@ +/******************************************************************************* + * (c) Copyright 2010-2013 Microsemi SoC Products Group. All rights reserved. + * + * Microsemi SmartFusion2 Cortex Microcontroller Software Interface - Peripheral + * Access Layer. + * + * This file describes the interrupt assignment and peripheral registers for + * the SmartFusion2 familly of devices. + * + * SVN $Revision: 6526 $ + * SVN $Date: 2014-06-05 20:37:40 +0530 (Thu, 05 Jun 2014) $ + */ +#ifndef __SMARTFUSION2_CMSIS_PAL_H__ +#define __SMARTFUSION2_CMSIS_PAL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ========================================================================== + * ---------- Interrupt Number Definition ----------------------------------- + * ========================================================================== + */ + +typedef enum IRQn +{ +/****** Cortex-M3 Processor Exceptions Numbers *********************************************************/ + NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt - Watchdog timeout interrupt*/ + HardFault_IRQn = -13, /*!< 2 Hard Fault Interrupt */ + MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */ + BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */ + UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */ + SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */ + DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */ + PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */ + SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */ + +/****** SmartFusion2 specific Interrupt Numbers *********************************************************/ + WdogWakeup_IRQn = 0, /*!< WatchDog wakeup interrupt */ + RTC_Wakeup_IRQn = 1, /*!< RTC wakeup interrupt */ + SPI0_IRQn = 2, /*!< SPI0 interrupt */ + SPI1_IRQn = 3, /*!< SPI1 interrupt */ + I2C0_IRQn = 4, /*!< I2C0 interrupt */ + I2C0_SMBAlert_IRQn = 5, /*!< I2C0 SMBus Alert interrupt */ + I2C0_SMBus_IRQn = 6, /*!< I2C0 SMBus Suspend interrupt */ + I2C1_IRQn = 7, /*!< I2C1 interrupt */ + I2C1_SMBAlert_IRQn = 8, /*!< I2C1 SMBus Alert interrupt */ + I2C1_SMBus_IRQn = 9, /*!< I2C1 SMBus Suspend interrupt */ + UART0_IRQn = 10, /*!< UART0 interrupt */ + UART1_IRQn = 11, /*!< UART1 interrupt */ + EthernetMAC_IRQn = 12, /*!< Ethernet MAC interrupt */ + DMA_IRQn = 13, /*!< Peripheral DMA interrupt */ + Timer1_IRQn = 14, /*!< Timer1 interrupt */ + Timer2_IRQn = 15, /*!< Timer2 interrupt */ + CAN_IRQn = 16, /*!< CAN controller interrupt */ + ENVM0_IRQn = 17, /*!< eNVM0 operation completion interrupt */ + ENVM1_IRQn = 18, /*!< eNVM1 operation completion interrupt */ + ComBlk_IRQn = 19, /*!< COM block interrupt */ + USB_IRQn = 20, /*!< USB interrupt */ + USB_DMA_IRQn = 21, /*!< USB DMA interrupt */ + PLL_Lock_IRQn = 22, /*!< PLL lock interrupt */ + PLL_LockLost_IRQn = 23, /*!< PLL loss of lock interrupt */ + CommSwitchError_IR = 24, /*!< Communications Switch error interrupt */ + CacheError_IRQn = 25, /*!< Cache error interrupt */ + DDR_IRQn = 26, /*!< DDR controller interrupt */ + HPDMA_Complete_IRQn = 27, /*!< High speed DMA transfer complete interrupt */ + HPDMA_Error_IRQn = 28, /*!< High speed DMA transfer error interrupt */ + ECC_Error_IRQn = 29, /*!< ECC error detected */ + MDDR_IOCalib_IRQn = 30, /*!< MDDR Calibration finished interrupt */ + FAB_PLL_Lock_IRQn = 31, /*!< MSSDDR Fabric PLL lock interrupt */ + FAB_PLL_LockLost_IRQn = 32, /*!< MSSDDR Fabric PLL lock lost interrupt */ + FIC64_IRQn = 33, /*!< FIC64 interrupt */ + FabricIrq0_IRQn = 34, /*!< FPGA fabric interrupt 0 */ + FabricIrq1_IRQn = 35, /*!< FPGA fabric interrupt 1 */ + FabricIrq2_IRQn = 36, /*!< FPGA fabric interrupt 2 */ + FabricIrq3_IRQn = 37, /*!< FPGA fabric interrupt 3 */ + FabricIrq4_IRQn = 38, /*!< FPGA fabric interrupt 4 */ + FabricIrq5_IRQn = 39, /*!< FPGA fabric interrupt 5 */ + FabricIrq6_IRQn = 40, /*!< FPGA fabric interrupt 6 */ + FabricIrq7_IRQn = 41, /*!< FPGA fabric interrupt 7 */ + FabricIrq8_IRQn = 42, /*!< FPGA fabric interrupt 8 */ + FabricIrq9_IRQn = 43, /*!< FPGA fabric interrupt 9 */ + FabricIrq10_IRQn = 44, /*!< FPGA fabric interrupt 10 */ + FabricIrq11_IRQn = 45, /*!< FPGA fabric interrupt 11 */ + FabricIrq12_IRQn = 46, /*!< FPGA fabric interrupt 12 */ + FabricIrq13_IRQn = 47, /*!< FPGA fabric interrupt 13 */ + FabricIrq14_IRQn = 48, /*!< FPGA fabric interrupt 14 */ + FabricIrq15_IRQn = 49, /*!< FPGA fabric interrupt 15 */ + GPIO0_IRQn = 50, /*!< GPIO 0 interrupt */ + GPIO1_IRQn = 51, /*!< GPIO 1 interrupt */ + GPIO2_IRQn = 52, /*!< GPIO 2 interrupt */ + GPIO3_IRQn = 53, /*!< GPIO 3 interrupt */ + GPIO4_IRQn = 54, /*!< GPIO 4 interrupt */ + GPIO5_IRQn = 55, /*!< GPIO 5 interrupt */ + GPIO6_IRQn = 56, /*!< GPIO 6 interrupt */ + GPIO7_IRQn = 57, /*!< GPIO 7 interrupt */ + GPIO8_IRQn = 58, /*!< GPIO 8 interrupt */ + GPIO9_IRQn = 59, /*!< GPIO 9 interrupt */ + GPIO10_IRQn = 60, /*!< GPIO 10 interrupt */ + GPIO11_IRQn = 61, /*!< GPIO 11 interrupt */ + GPIO12_IRQn = 62, /*!< GPIO 12 interrupt */ + GPIO13_IRQn = 63, /*!< GPIO 13 interrupt */ + GPIO14_IRQn = 64, /*!< GPIO 14 interrupt */ + GPIO15_IRQn = 65, /*!< GPIO 15 interrupt */ + GPIO16_IRQn = 66, /*!< GPIO 16 interrupt */ + GPIO17_IRQn = 67, /*!< GPIO 17 interrupt */ + GPIO18_IRQn = 68, /*!< GPIO 18 interrupt */ + GPIO19_IRQn = 69, /*!< GPIO 19 interrupt */ + GPIO20_IRQn = 70, /*!< GPIO 20 interrupt */ + GPIO21_IRQn = 71, /*!< GPIO 21 interrupt */ + GPIO22_IRQn = 72, /*!< GPIO 22 interrupt */ + GPIO23_IRQn = 73, /*!< GPIO 23 interrupt */ + GPIO24_IRQn = 74, /*!< GPIO 24 interrupt */ + GPIO25_IRQn = 75, /*!< GPIO 25 interrupt */ + GPIO26_IRQn = 76, /*!< GPIO 26 interrupt */ + GPIO27_IRQn = 77, /*!< GPIO 27 interrupt */ + GPIO28_IRQn = 78, /*!< GPIO 28 interrupt */ + GPIO29_IRQn = 79, /*!< GPIO 29 interrupt */ + GPIO30_IRQn = 80, /*!< GPIO 30 interrupt */ + GPIO31_IRQn = 81 /*!< GPIO 31 interrupt */ +} IRQn_Type; + +/* + * ========================================================================== + * ----------- Processor and Core Peripheral Section ------------------------ + * ========================================================================== + */ +#define __CM3_REV 0x0201 /*!< Core revision r2p1 */ +#define __MPU_PRESENT 1 /*!< MPU present or not */ +#define __NVIC_PRIO_BITS 4 /*!< Number of Bits used for Priority Levels */ +#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + +#include /* Cortex-M3 processor and core peripherals */ + +/******************************************************************************/ +/* Device Specific Peripheral registers structures */ +/******************************************************************************/ +#if defined ( __CC_ARM ) + /* Enable anonymous unions when building using Keil-MDK */ + #pragma anon_unions +#endif + +/*----------------------------------------------------------------------------*/ +/*----------------------------------- UART -----------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + union + { + __I uint8_t RBR; + __O uint8_t THR; + __IO uint8_t DLR; + uint32_t RESERVED0; + }; + + union + { + __IO uint8_t DMR; + __IO uint8_t IER; + uint32_t RESERVED1; + }; + + union + { + __IO uint8_t IIR; + __IO uint8_t FCR; + uint32_t RESERVED2; + }; + + __IO uint8_t LCR; + uint8_t RESERVED3[3]; + + __IO uint8_t MCR; + uint8_t RESERVED4[3]; + + __I uint8_t LSR; + uint8_t RESERVED5[3]; + + __I uint8_t MSR; + uint8_t RESERVED6[3]; + + __IO uint8_t SR; + uint8_t RESERVED7[7]; + + __IO uint8_t IEM; + uint8_t RESERVED8[3]; + + __IO uint8_t IIM; + uint8_t RESERVED9[7]; + + __IO uint8_t MM0; + uint8_t RESERVED10[3]; + + __IO uint8_t MM1; + uint8_t RESERVED11[3]; + + __IO uint8_t MM2; + uint8_t RESERVED12[3]; + + __IO uint8_t DFR; + uint8_t RESERVED13[7]; + + __IO uint8_t GFR; + uint8_t RESERVED14[3]; + + __IO uint8_t TTG; + uint8_t RESERVED15[3]; + + __IO uint8_t RTO; + uint8_t RESERVED16[3]; + + __IO uint8_t ADR; + uint8_t RESERVED17[3]; + +} UART_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*----------------------------------- I2C ------------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint8_t CTRL; + uint8_t RESERVED0; + uint16_t RESERVED1; + uint8_t STATUS; + uint8_t RESERVED2; + uint16_t RESERVED3; + __IO uint8_t DATA; + uint8_t RESERVED4; + uint16_t RESERVED5; + __IO uint8_t ADDR; + uint8_t RESERVED6; + uint16_t RESERVED7; + __IO uint8_t SMBUS; + uint8_t RESERVED8; + uint16_t RESERVED9; + __IO uint8_t FREQ; + uint8_t RESERVED10; + uint16_t RESERVED11; + __IO uint8_t GLITCHREG; + uint8_t RESERVED12; + uint16_t RESERVED13; + __IO uint8_t SLAVE1_ADDR; + uint8_t RESERVED14; + uint16_t RESERVED15; +} I2C_TypeDef; + +/*------------------------------------------------------------------------------ + * I2C bit band + */ +typedef struct +{ + __IO uint32_t CTRL_CR0; + __IO uint32_t CTRL_CR1; + __IO uint32_t CTRL_AA; + __IO uint32_t CTRL_SI; + __IO uint32_t CTRL_STO; + __IO uint32_t CTRL_STA; + __IO uint32_t CTRL_ENS1; + __IO uint32_t CTRL_CR2; + uint32_t RESERVED0[56]; + __IO uint32_t DATA_DIR; + uint32_t RESERVED1[31]; + __IO uint32_t ADDR_GC; +} I2C_BitBand_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*----------------------------------- SPI ------------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t CONTROL; + __IO uint32_t TXRXDF_SIZE; + __I uint32_t STATUS; + __O uint32_t INT_CLEAR; + __I uint32_t RX_DATA; + __O uint32_t TX_DATA; + __IO uint32_t CLK_GEN; + __IO uint32_t SLAVE_SELECT; + __I uint32_t MIS; + __I uint32_t RIS; + __IO uint32_t CONTROL2; + __IO uint32_t COMMAND; + __IO uint32_t PKTSIZE; + __IO uint32_t CMDSIZE; + __IO uint32_t HWSTATUS; + __IO uint32_t STAT8; + __IO uint32_t CTRL0; + __IO uint32_t CTRL1; + __IO uint32_t CTRL2; + __IO uint32_t CTRL3; +} SPI_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*----------------------------------- GPIO -----------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t GPIO_0_CFG; + __IO uint32_t GPIO_1_CFG; + __IO uint32_t GPIO_2_CFG; + __IO uint32_t GPIO_3_CFG; + __IO uint32_t GPIO_4_CFG; + __IO uint32_t GPIO_5_CFG; + __IO uint32_t GPIO_6_CFG; + __IO uint32_t GPIO_7_CFG; + __IO uint32_t GPIO_8_CFG; + __IO uint32_t GPIO_9_CFG; + __IO uint32_t GPIO_10_CFG; + __IO uint32_t GPIO_11_CFG; + __IO uint32_t GPIO_12_CFG; + __IO uint32_t GPIO_13_CFG; + __IO uint32_t GPIO_14_CFG; + __IO uint32_t GPIO_15_CFG; + __IO uint32_t GPIO_16_CFG; + __IO uint32_t GPIO_17_CFG; + __IO uint32_t GPIO_18_CFG; + __IO uint32_t GPIO_19_CFG; + __IO uint32_t GPIO_20_CFG; + __IO uint32_t GPIO_21_CFG; + __IO uint32_t GPIO_22_CFG; + __IO uint32_t GPIO_23_CFG; + __IO uint32_t GPIO_24_CFG; + __IO uint32_t GPIO_25_CFG; + __IO uint32_t GPIO_26_CFG; + __IO uint32_t GPIO_27_CFG; + __IO uint32_t GPIO_28_CFG; + __IO uint32_t GPIO_29_CFG; + __IO uint32_t GPIO_30_CFG; + __IO uint32_t GPIO_31_CFG; + __IO uint32_t GPIO_IRQ; + __I uint32_t GPIO_IN; + __IO uint32_t GPIO_OUT; +} GPIO_TypeDef; + +/*------------------------------------------------------------------------------ + * GPIO bit band + */ +typedef struct +{ + __IO uint32_t GPIO_0_CFG[32]; + __IO uint32_t GPIO_1_CFG[32]; + __IO uint32_t GPIO_2_CFG[32]; + __IO uint32_t GPIO_3_CFG[32]; + __IO uint32_t GPIO_4_CFG[32]; + __IO uint32_t GPIO_5_CFG[32]; + __IO uint32_t GPIO_6_CFG[32]; + __IO uint32_t GPIO_7_CFG[32]; + __IO uint32_t GPIO_8_CFG[32]; + __IO uint32_t GPIO_9_CFG[32]; + __IO uint32_t GPIO_10_CFG[32]; + __IO uint32_t GPIO_11_CFG[32]; + __IO uint32_t GPIO_12_CFG[32]; + __IO uint32_t GPIO_13_CFG[32]; + __IO uint32_t GPIO_14_CFG[32]; + __IO uint32_t GPIO_15_CFG[32]; + __IO uint32_t GPIO_16_CFG[32]; + __IO uint32_t GPIO_17_CFG[32]; + __IO uint32_t GPIO_18_CFG[32]; + __IO uint32_t GPIO_19_CFG[32]; + __IO uint32_t GPIO_20_CFG[32]; + __IO uint32_t GPIO_21_CFG[32]; + __IO uint32_t GPIO_22_CFG[32]; + __IO uint32_t GPIO_23_CFG[32]; + __IO uint32_t GPIO_24_CFG[32]; + __IO uint32_t GPIO_25_CFG[32]; + __IO uint32_t GPIO_26_CFG[32]; + __IO uint32_t GPIO_27_CFG[32]; + __IO uint32_t GPIO_28_CFG[32]; + __IO uint32_t GPIO_29_CFG[32]; + __IO uint32_t GPIO_30_CFG[32]; + __IO uint32_t GPIO_31_CFG[32]; + __IO uint32_t GPIO_IRQ[32]; + __I uint32_t GPIO_IN[32]; + __IO uint32_t GPIO_OUT[32]; +} GPIO_BitBand_TypeDef; + + +/*----------------------------------------------------------------------------*/ +/*--------------------------------- HPDMA ------------------------------------*/ +/*----------------------------------------------------------------------------*/ + +typedef struct +{ + __IO uint32_t HPDMASAR_REG ; + __IO uint32_t HPDMADAR_REG ; + __IO uint32_t HPDMACR_REG ; + __I uint32_t HPDMASR_REG ; + __I uint32_t HPDMAPTR_REG ; +}HPDMA_Descriptor_TypeDef; + +typedef struct +{ + __I uint32_t HPDMAEDR_REG ; + HPDMA_Descriptor_TypeDef Descriptor[4] ; + __O uint32_t HPDMAICR_REG ; + __I uint32_t HPDMADR_REG ; +} HPDMA_TypeDef; + +typedef struct +{ + uint32_t RESERVED0[64]; + __IO uint32_t HPDMACR_XFR_SIZE[16] ; + __IO uint32_t HPDMACR_DCP_VALID ; + __IO uint32_t HPDMACR_DCP_XFR_DIR ; + __IO uint32_t HPDMACR_DCP_CLR ; + __IO uint32_t HPDMACR_DCP_PAUSE ; + __IO uint32_t HPDMACR_XFR_CMP_INT ; + __IO uint32_t HPDMACR_XFR_ERR_INT ; + __IO uint32_t HPDMACR_NON_WORD_INT ; + uint32_t RESERVED1[9]; + + __I uint32_t HPDMASR_DCP_ACTIVE ; + __I uint32_t HPDMASR_DCP_CMPLET ; + __I uint32_t HPDMASR_DCP_SERR ; + __I uint32_t HPDMASR_DCP_DERR ; + uint32_t RESERVED2[60] ; +}HPDMA_Descriptor_BitBand_TypeDef; + +/*------------------------------------------------------------------------------ + * HPDMA bit band + */ +typedef struct +{ + __I uint32_t HPDMAEDR_DCP_EMPTY[4] ; + __I uint32_t HPDMAEDR_DCP_CMPLET[4] ; + __I uint32_t HPDMAEDR_DCP_ERR[4] ; + __I uint32_t HPDMAEDR_DCP_NON_WORD_ERR[4] ; + uint32_t RESERVED0[16] ; + + HPDMA_Descriptor_BitBand_TypeDef Descriptor[4]; + + __O uint32_t HPDMAICR_CLR_XFR_INT[4] ; + __O uint32_t HPDMAICR_NON_WORD_INT[4] ; + uint32_t RESERVED1[16] ; + + __I uint32_t HPDMADR_BFR_EMPTY ; + __I uint32_t HPDMADR_BFR_FULL ; + __I uint32_t HPDMADR_BFR_RD_PNTR[3] ; + __I uint32_t HPDMADR_BFR_WR_PNTR [3] ; + __I uint32_t HPDMADR_AHM1_CST_DBG[4] ; + __I uint32_t HPDMADR_AHM2_CST_DBG[4] ; + __I uint32_t HPDMADR_WBC_CST_DBG[3] ; + __I uint32_t HPDMADR_RBC_CST_DBG[3] ; + __I uint32_t HPDMADR_RRBN_CST_DBG[4] ; + __I uint32_t HPDMADR_DMA_CST_DBG[4] ; + + uint32_t RESERVED2[4] ; +}HPDMA_BitBand_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*----------------------------------- RTC ------------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t CONTROL_REG ; + __IO uint32_t MODE_REG ; + __IO uint32_t PRESCALER_REG ; + __IO uint32_t ALARM_LOWER_REG ; + __IO uint32_t ALARM_UPPER_REG ; + __IO uint32_t COMPARE_LOWER_REG ; + __IO uint32_t COMPARE_UPPER_REG ; + uint32_t RESERVED0 ; + __IO uint32_t DATE_TIME_LOWER_REG ; + __IO uint32_t DATE_TIME_UPPER_REG ; + + uint32_t RESERVED1[2] ; + __IO uint32_t SECONDS_REG ; + __IO uint32_t MINUTES_REG ; + __IO uint32_t HOURS_REG ; + __IO uint32_t DAY_REG ; + __IO uint32_t MONTH_REG ; + __IO uint32_t YEAR_REG ; + __IO uint32_t WEEKDAY_REG ; + __IO uint32_t WEEK_REG ; + + __IO uint32_t SECONDS_CNT_REG ; + __IO uint32_t MINUTES_CNT_REG ; + __IO uint32_t HOURS_CNT_REG ; + __IO uint32_t DAY_CNT_REG ; + __IO uint32_t MONTH_CNT_REG ; + __IO uint32_t YEAR_CNT_REG ; + __IO uint32_t WEEKDAY_CNT_REG ; + __IO uint32_t WEEK_CNT_REG ; +} RTC_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*---------------------------------- Timer -----------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __I uint32_t TIM1_VAL; + __IO uint32_t TIM1_LOADVAL; + __IO uint32_t TIM1_BGLOADVAL; + __IO uint32_t TIM1_CTRL; + __IO uint32_t TIM1_RIS; + __I uint32_t TIM1_MIS; + + __I uint32_t TIM2_VAL; + __IO uint32_t TIM2_LOADVAL; + __IO uint32_t TIM2_BGLOADVAL; + __IO uint32_t TIM2_CTRL; + __IO uint32_t TIM2_RIS; + __I uint32_t TIM2_MIS; + + __I uint32_t TIM64_VAL_U; + __I uint32_t TIM64_VAL_L; + __IO uint32_t TIM64_LOADVAL_U; + __IO uint32_t TIM64_LOADVAL_L; + __IO uint32_t TIM64_BGLOADVAL_U; + __IO uint32_t TIM64_BGLOADVAL_L; + __IO uint32_t TIM64_CTRL; + __IO uint32_t TIM64_RIS; + __I uint32_t TIM64_MIS; + __IO uint32_t TIM64_MODE; +} TIMER_TypeDef; + +/*------------------------------------------------------------------------------ + * Timer bit band + */ +typedef struct +{ + __I uint32_t TIM1_VALUE_BIT[32]; + __IO uint32_t TIM1_LOADVAL[32]; + __IO uint32_t TIM1_BGLOADVAL[32]; + + __IO uint32_t TIM1ENABLE; + __IO uint32_t TIM1MODE; + __IO uint32_t TIM1INTEN; + __IO uint32_t TIM1_CTRL_RESERVED[29]; + __IO uint32_t TIM1_RIS[32]; + __I uint32_t TIM1_MIS[32]; + + __I uint32_t TIM2_VALUE[32]; + __IO uint32_t TIM2_LOADVAL[32]; + __IO uint32_t TIM2_BGLOADVAL[32]; + + __IO uint32_t TIM2ENABLE; + __IO uint32_t TIM2MODE; + __IO uint32_t TIM2INTEN; + __IO uint32_t TIM2_CTRL[29]; + __IO uint32_t TIM2_RIS[32]; + __I uint32_t TIM2_MIS[32]; + + __I uint32_t TIM64VALUEU[32]; + __I uint32_t TIM64VALUEL[32]; + __IO uint32_t TIM64LOADVALUEU[32]; + __IO uint32_t TIM64LOADVALUEL[32]; + __IO uint32_t TIM64BGLOADVALUEU[32]; + __IO uint32_t TIM64BGLOADVALUEL[32]; + __IO uint32_t TIM64ENABLE; + __IO uint32_t TIM64MODE; + __IO uint32_t TIM64INTEN; + __IO uint32_t TIM64_CTRL[29]; + __IO uint32_t TIM64_RIS[32]; + __I uint32_t TIM64_MIS[32]; + __IO uint32_t TIM64_MODE[32]; +} TIMER_BitBand_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*--------------------------------- Watchdog ---------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __I uint32_t WDOGVALUE; + __I uint32_t WDOGLOAD; + __I uint32_t WDOGMVRP; + __O uint32_t WDOGREFRESH; + __I uint32_t WDOGENABLE; + __IO uint32_t WDOGCONTROL; + __I uint32_t WDOGSTATUS; + __IO uint32_t WDOGRIS; + __I uint32_t WDOGMIS; +} WATCHDOG_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*----------------------------- Real Time Clock ------------------------------*/ +/*----------------------------------------------------------------------------*/ + +/*----------------------------------------------------------------------------*/ +/*----------------------------- Peripherals DMA ------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t CRTL; + __IO uint32_t STATUS; + __IO uint32_t BUFFER_A_SRC_ADDR; + __IO uint32_t BUFFER_A_DEST_ADDR; + __IO uint32_t BUFFER_A_TRANSFER_COUNT; + __IO uint32_t BUFFER_B_SRC_ADDR; + __IO uint32_t BUFFER_B_DEST_ADDR; + __IO uint32_t BUFFER_B_TRANSFER_COUNT; +} PDMA_Channel_TypeDef; + +typedef struct +{ + __IO uint32_t RATIO_HIGH_LOW; + __IO uint32_t BUFFER_STATUS; + uint32_t RESERVED[6]; + PDMA_Channel_TypeDef CHANNEL[8]; +} PDMA_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*------------------------------ Ethernet MAC --------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + /* + * MAC registers (MCXMAC) + */ + __IO uint32_t CFG1; + __IO uint32_t CFG2; + __IO uint32_t IFG; + __IO uint32_t HALF_DUPLEX; + __IO uint32_t MAX_FRAME_LENGTH; + uint32_t RESERVED0[2]; + __IO uint32_t TEST; + __IO uint32_t MII_CONFIG; + __IO uint32_t MII_COMMAND; + __IO uint32_t MII_ADDRESS; + __O uint32_t MII_CTRL; + __I uint32_t MII_STATUS; + __I uint32_t MII_INDICATORS; + __IO uint32_t INTERFACE_CTRL; + __I uint32_t INTERFACE_STATUS; + __IO uint32_t STATION_ADDRESS1; + __IO uint32_t STATION_ADDRESS2; + /* + * FIFO Configuration / Access registers (MCXFIF) + */ + __IO uint32_t FIFO_CFG0; + __IO uint32_t FIFO_CFG1; + __IO uint32_t FIFO_CFG2; + __IO uint32_t FIFO_CFG3; + __IO uint32_t FIFO_CFG4; + __IO uint32_t FIFO_CFG5; + __IO uint32_t FIFO_RAM_ACCESS0; + __IO uint32_t FIFO_RAM_ACCESS1; + __IO uint32_t FIFO_RAM_ACCESS2; + __I uint32_t FIFO_RAM_ACCESS3; + __IO uint32_t FIFO_RAM_ACCESS4; + __IO uint32_t FIFO_RAM_ACCESS5; + __IO uint32_t FIFO_RAM_ACCESS6; + __I uint32_t FIFO_RAM_ACCESS7; + /* + * Statistics registers (MSTAT) + */ + __IO uint32_t TR64; + __IO uint32_t TR127; + __IO uint32_t TR255; + __IO uint32_t TR511; + __IO uint32_t TR1K; + __IO uint32_t TRMAX; + __IO uint32_t TRMGV; + __IO uint32_t RBYT; + __IO uint32_t PPKT; + __IO uint32_t RFCS; + __IO uint32_t RMCA; + __IO uint32_t RBCA; + __IO uint32_t RXCF; + __IO uint32_t RXPF; + __IO uint32_t RXUO; + __IO uint32_t RALN; + __IO uint32_t RFLR; + __IO uint32_t RCDE; + __IO uint32_t RCSE; + __IO uint32_t RUND; + __IO uint32_t ROVR; + __IO uint32_t RFRG; + __IO uint32_t RJBR; + __IO uint32_t RDRP; + __IO uint32_t TBYT; + __IO uint32_t TPKT; + __IO uint32_t TMCA; + __IO uint32_t TBCA; + __IO uint32_t TXPF; + __IO uint32_t TDFR; + __IO uint32_t TEDF; + __IO uint32_t TSCL; + __IO uint32_t TMCL; + __IO uint32_t TLCL; + __IO uint32_t TXCL; + __IO uint32_t TNCL; + __IO uint32_t TPFH; + __IO uint32_t TDRP; + __IO uint32_t TJBR; + __IO uint32_t TFCS; + __IO uint32_t TXCF; + __IO uint32_t TOVR; + __IO uint32_t TUND; + __IO uint32_t TFRG; + __I uint32_t CAR1; + __I uint32_t CAR2; + __IO uint32_t CAM1; + __IO uint32_t CAM2; + uint32_t RESERVED1[16]; + /* + * DMA registers (MAHBE) + */ + __IO uint32_t DMA_TX_CTRL; + __IO uint32_t DMA_TX_DESC; + __IO uint32_t DMA_TX_STATUS; + __IO uint32_t DMA_RX_CTRL; + __IO uint32_t DMA_RX_DESC; + __IO uint32_t DMA_RX_STATUS; + __IO uint32_t DMA_IRQ_MASK; + __I uint32_t DMA_IRQ; +} MAC_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*------------------------------ USB --------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint16_t TX_MAX_P; + __IO uint16_t TX_CSR; + __IO uint16_t RX_MAX_P; + __IO uint16_t RX_CSR; + __IO uint16_t RX_COUNT; + __IO uint8_t TX_TYPE; + __IO uint8_t TX_INTERVAL; + __IO uint8_t RX_TYPE; + __IO uint8_t RX_INTERVAL; + __IO uint8_t RESERVED; + __IO uint8_t FIFO_SIZE; +} USB_endpoint_regs_t; + +typedef struct +{ + __IO uint8_t TX_FUNC_ADDR; + __IO uint8_t UNUSED0; + __IO uint8_t TX_HUB_ADDR; + __IO uint8_t TX_HUB_PORT; + __IO uint8_t RX_FUNC_ADDR; + __IO uint8_t UNUSED1; + __IO uint8_t RX_HUB_ADDR; + __IO uint8_t RX_HUB_PORT; +} USB_tar_t; + +typedef union +{ + struct + { + __IO uint32_t VALUE; + } WORD; + + struct + { + __IO uint8_t VALUE; + __IO uint8_t RESERVED1; + __IO uint8_t RESERVED2; + __IO uint8_t RESERVED3; + } BYTE; + + struct + { + __IO uint16_t VALUE; + __IO uint16_t RESERVED; + } HALFWORD; +} USB_fifo_t; + +typedef union +{ + struct + { + __IO uint16_t TX_MAX_P; + __IO uint16_t CSR0; + __IO uint16_t RX_MAX_P; + __IO uint16_t RX_CSR; + __IO uint16_t COUNT0; + __IO uint8_t RESERVED0; + __IO uint8_t RESERVED1; + __IO uint8_t RESERVED2; + __IO uint8_t RESERVED3; + __IO uint8_t RESERVED4; + __IO uint8_t CONFIG_DATA; + } DEVICE_EP0; + + struct + { + __IO uint16_t TX_MAX_P; + __IO uint16_t TX_CSR; + __IO uint16_t RX_MAX_P; + __IO uint16_t RX_CSR; + __IO uint16_t RX_COUNT; + __IO uint8_t RESERVED0; + __IO uint8_t RESERVED1; + __IO uint8_t RESERVED2; + __IO uint8_t RESERVED3; + __IO uint8_t RESERVED4; + __IO uint8_t FIFO_SIZE; + } DEVICE_EPN; + + struct + { + __IO uint16_t TX_MAX_P; + __IO uint16_t CSR0; + __IO uint16_t RX_MAX_P; + __IO uint16_t RX_CSR; + __IO uint16_t COUNT0; + __IO uint8_t TYPE0; + __IO uint8_t NAK_LIMIT0; + __IO uint8_t RX_TYPE; + __IO uint8_t RX_INTERVAL; + __IO uint8_t RESERVED0; + __IO uint8_t CONFIG_DATA; + } HOST_EP0; + + struct + { + __IO uint16_t TX_MAX_P; + __IO uint16_t TX_CSR; + __IO uint16_t RX_MAX_P; + __IO uint16_t RX_CSR; + __IO uint16_t RX_COUNT; + __IO uint8_t TX_TYPE; + __IO uint8_t TX_INTERVAL; + __IO uint8_t RX_TYPE; + __IO uint8_t RX_INTERVAL; + __IO uint8_t RESERVED0; + __IO uint8_t FIFO_SIZE; + } HOST_EPN; + +} USB_indexed_csr_t; + +typedef struct { + __IO uint32_t IRQ; + __IO uint32_t CNTL; + __IO uint32_t ADDR; + __IO uint32_t COUNT; +} USB_DMA_channel; + +typedef struct +{ + /* + * Common USB Registers + */ + __IO uint8_t FADDR; + __IO uint8_t POWER; + __IO uint16_t TX_IRQ; + __IO uint16_t RX_IRQ; + __IO uint16_t TX_IRQ_ENABLE; + __IO uint16_t RX_IRQ_ENABLE; + __IO uint8_t USB_IRQ; + __IO uint8_t USB_ENABLE; + __IO uint16_t FRAME; + __IO uint8_t INDEX; + __IO uint8_t TEST_MODE; + + /* + * Indexed CSR + */ + USB_indexed_csr_t INDEXED_CSR; + + /* + * Endpoint FIFOs + */ + USB_fifo_t FIFO[16]; + + /* + * OTG, dynamic FIFO and version + */ + __IO uint8_t DEV_CTRL; + __IO uint8_t MISC; + __IO uint8_t TX_FIFO_SIZE; + __IO uint8_t RX_FIFO_SIZE; + __IO uint16_t TX_FIFO_ADDR; + __IO uint16_t RX_FIFO_ADDR; + __IO uint32_t VBUS_CSR; + __IO uint16_t HW_VERSION; + __IO uint16_t RESERVED; + + /* + * ULPI and configuration registers + */ + __IO uint8_t ULPI_VBUS_CTRL; + __IO uint8_t ULPI_CARKIT_CTRL; + __IO uint8_t ULPI_IRQ_MASK; + __IO uint8_t ULPI_IRQ_SRC; + __IO uint8_t ULPI_DATA_REG; + __IO uint8_t ULPI_ADDR_REG; + __IO uint8_t ULPI_CTRL_REG; + __IO uint8_t ULPI_RAW_DATA; + __IO uint8_t EP_INFO; + __IO uint8_t RAM_INFO; + __IO uint8_t LINK_INFO; + __IO uint8_t VP_LEN; + __IO uint8_t HS_EOF1; + __IO uint8_t FS_EOF1; + __IO uint8_t LS_EOF1; + __IO uint8_t SOFT_RST; + + /* + * Target Address registers + */ + USB_tar_t TAR[16]; + + /* + * Endpoints CSR + */ + USB_endpoint_regs_t ENDPOINT[16]; + + /* + * DMA + */ + USB_DMA_channel DMA_CHANNEL[8]; + + __IO uint32_t RESERVED_EXT[32]; + __IO uint32_t RQ_PKT_CNT[16]; + __IO uint16_t RX_DPBUF_DIS; + __IO uint16_t TX_DPBUF_DIS; + __IO uint16_t C_T_UCH; + __IO uint16_t C_T_HHSRTN; + __IO uint16_t C_T_HSBT; + +} MSS_USB_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*---------------------- eNVM Special Function Registers ---------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __I uint8_t AB[128]; + __IO uint8_t WD[128]; + __I uint8_t RESERVED0[32]; + __I uint32_t STATUS; + __IO uint32_t RESERVED1; + __IO uint32_t NV_PAGE_STATUS; + __I uint32_t NV_FREQRNG; + __I uint32_t NV_DPD; + __IO uint32_t NV_CE; + uint32_t RESERVED2; + __IO uint32_t RESERVED3; + __IO uint32_t PAGE_LOCK; + __IO uint32_t DWSIZE; + __IO uint32_t CMD; + __IO uint32_t RESERVED4; + __I uint32_t RESERVED5; + __IO uint32_t INTEN; + __IO uint32_t CLRHINT; + uint32_t RESERVED6[40]; + __IO uint32_t REQ_ACCESS; +} NVM_TypeDef; + +typedef struct +{ + __I uint32_t AB[32]; + __IO uint32_t WD[32]; + __I uint32_t RESERVED0[8]; + __I uint32_t STATUS; + __IO uint32_t RESERVED1; + __IO uint32_t NV_PAGE_STATUS; + __I uint32_t NV_FREQRNG; + __I uint32_t NV_DPD; + __IO uint32_t NV_CE; + uint32_t RESERVED2; + __IO uint32_t RESERVED3; + __IO uint32_t PAGE_LOCK; + __IO uint32_t DWSIZE; + __IO uint32_t CMD; + __IO uint32_t RESERVED4; + __I uint32_t RESERVED5; + __IO uint32_t INTEN; + __IO uint32_t CLRHINT; + uint32_t RESERVED6[40]; + __IO uint32_t REQ_ACCESS; +} NVM32_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*---------------------------------- COMBLK ----------------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t CONTROL; + __IO uint32_t STATUS; + __IO uint32_t INT_ENABLE; + __IO uint32_t RESERVED; + __IO uint32_t DATA8; + __IO uint32_t DATA32; + __IO uint32_t FRAME_START8; + __IO uint32_t FRAME_START32; +} COMBLK_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*--------------------- FPGA Fabric Interrupt Controller ---------------------*/ +/*----------------------------------------------------------------------------*/ +/* + * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a + * description of the following registers. + * The registers defined below can be accessed using INTERRUPT_CTRL as follows: + * uint32_t reason0; + * INTERRUPT_CTRL->INTERRUPT_MODE = 0; + * reason0 = INTERRUPT_CTRL->INTERRUPT_REASON0; + */ +typedef struct +{ + __IO uint32_t INTERRUPT_ENABLE0; + __IO uint32_t INTERRUPT_ENABLE1; + __IO uint32_t INTERRUPT_REASON0; + __IO uint32_t INTERRUPT_REASON1; + __IO uint32_t INTERRUPT_MODE; +} INTERRUPT_CTRL_TypeDef; + +/* + * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a + * description of the following register bits. + * The register bits defined below can be accessed using INTERRUPT_CTRL_BITBAND + * as follows: + * setting/clearing a bit: + * INTERRUPT_CTRL_BITBAND->MAC_INT_ENBL = 1; + * INTERRUPT_CTRL_BITBAND->PDMAINTERRUPT_ENBL = 0; + * reading a bit value: + * uint32_t timer1_interrupt; + * timer1_interrupt = INTERRUPT_CTRL_BITBAND->TIMER1_INTR_STATUS; + */ +typedef struct +{ + /* + * INTERRUPT_ENABLE0 register bitband definitions. + */ + __IO uint32_t SPIINT0_ENBL; + __IO uint32_t SPIINT1_ENBL; + __IO uint32_t I2C_INT0_ENBL; + __IO uint32_t I2C_INT1_ENBL; + __IO uint32_t MMUART0_INTR_ENBL; + __IO uint32_t MMUART1_INTR_ENBL; + __IO uint32_t MAC_INT_ENBL; + __IO uint32_t USB_MC_INT_ENBL; + __IO uint32_t PDMAINTERRUPT_ENBL; + __IO uint32_t HPD_XFR_CMP_INT_ENBL; + __IO uint32_t TIMER1_INTR_ENBL; + __IO uint32_t TIMER2_INTR_ENBL; + __IO uint32_t CAN_INTR_ENBL; + __IO uint32_t RTC_WAKEUP_INTR_ENBL; + __IO uint32_t WDOGWAKEUPINT_ENBL; + __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_ENBL; + __IO uint32_t ENVM_INT0_ENBL; + __IO uint32_t ENVM_INT1_ENBL; + __IO uint32_t I2C_SMBALERT0_ENBL; + __IO uint32_t I2C_SMBSUS0_ENBL; + __IO uint32_t I2C_SMBALERT1_ENBL; + __IO uint32_t I2C_SMBSUS1_ENBL; + __IO uint32_t HPD_XFR_ERR_INT_ENBL; + __IO uint32_t MSSDDR_PLL_LOCK_INT_ENBL; + __IO uint32_t SW_ERRORINTERRUPT_ENBL; + __IO uint32_t DDRB_INTR_ENBL; + __IO uint32_t ECCINTR_ENBL; + __IO uint32_t CACHE_ERRINTR_ENBL; + __IO uint32_t SOFTINTERRUPT_ENBL; + __IO uint32_t COMBLK_INTR_ENBL; + __IO uint32_t USB_DMA_INT_ENBL; + __IO uint32_t RESERVED0; + + /* + * INTERRUPT_ENABLE1 register bitband definitions. + */ + __IO uint32_t RESERVED1[3]; + __IO uint32_t MDDR_IO_CALIB_INT_ENBL; + __IO uint32_t RESERVED2; + __IO uint32_t FAB_PLL_LOCK_INT_ENBL; + __IO uint32_t FAB_PLL_LOCKLOST_INT_ENBL; + __IO uint32_t FIC64_INT_ENBL; + __IO uint32_t RESERVED3[24]; + + /* + * INTERRUPT_REASON0 register bitband definitions. + */ + __IO uint32_t SPIINT0_STATUS; + __IO uint32_t SPIINT1_STATUS; + __IO uint32_t I2C_INT0_STATUS; + __IO uint32_t I2C_INT1_STATUS; + __IO uint32_t MMUART0_INTR_STATUS; + __IO uint32_t MMUART1_INTR_STATUS; + __IO uint32_t MAC_INT_STATUS; + __IO uint32_t USB_MC_INT_STATUS; + __IO uint32_t PDMAINTERRUPT_STATUS; + __IO uint32_t HPD_XFR_CMP_INT_STATUS; + __IO uint32_t TIMER1_INTR_STATUS; + __IO uint32_t TIMER2_INTR_STATUS; + __IO uint32_t CAN_INTR_STATUS; + __IO uint32_t RTC_WAKEUP_INTR_STATUS; + __IO uint32_t WDOGWAKEUPINT_STATUS; + __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_STATUS; + __IO uint32_t ENVM_INT0_STATUS; + __IO uint32_t ENVM_INT1_STATUS; + __IO uint32_t I2C_SMBALERT0_STATUS; + __IO uint32_t I2C_SMBSUS0_STATUS; + __IO uint32_t I2C_SMBALERT1_STATUS; + __IO uint32_t I2C_SMBSUS1_STATUS; + __IO uint32_t HPD_XFR_ERR_INT_STATUS; + __IO uint32_t MSSDDR_PLL_LOCK_INT_STATUS; + __IO uint32_t SW_ERRORINTERRUPT_STATUS; + __IO uint32_t DDRB_INTR_STATUS; + __IO uint32_t ECCINTR_STATUS; + __IO uint32_t CACHE_ERRINTR_STATUS; + __IO uint32_t SOFTINTERRUPT_STATUS; + __IO uint32_t COMBLK_INTR_STATUS; + __IO uint32_t USB_DMA_INT_STATUS; + __IO uint32_t RESERVED4; + + /* + * INTERRUPT_REASON1 register bitband definitions. + */ + __IO uint32_t RESERVED5[3]; + __IO uint32_t MDDR_IO_CALIB_INT_STATUS; + __IO uint32_t RESERVED6; + __IO uint32_t FAB_PLL_LOCK_INT_STATUS; + __IO uint32_t FAB_PLL_LOCKLOST_INT_STATUS; + __IO uint32_t FIC64_INT_STATUS; + __IO uint32_t RESERVED7[24]; + + /* + * INTERRUPT_MODE register bitband definitions. + */ + __IO uint32_t SELECT_MODE; + __IO uint32_t RESERVED8[31]; + +} INTERRUPT_CTRL_BitBand_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*------------------------ DDR Controller APB Registers ----------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + /*-------------------------------------------------------------------------- + * DDR Controller registers. + * All registers are 16-bit wide unless mentioned beside the definition. + */ + struct + { + __IO uint32_t DYN_SOFT_RESET_CR; + __IO uint32_t RESERVED0; + __IO uint32_t DYN_REFRESH_1_CR; + __IO uint32_t DYN_REFRESH_2_CR; + __IO uint32_t DYN_POWERDOWN_CR; + __IO uint32_t DYN_DEBUG_CR; + __IO uint32_t MODE_CR; + __IO uint32_t ADDR_MAP_BANK_CR; + __IO uint32_t ECC_DATA_MASK_CR; + __IO uint32_t ADDR_MAP_COL_1_CR; + __IO uint32_t ADDR_MAP_COL_2_CR; + __IO uint32_t ADDR_MAP_ROW_1_CR; + __IO uint32_t ADDR_MAP_ROW_2_CR; + __IO uint32_t INIT_1_CR; + __IO uint32_t CKE_RSTN_CYCLES_CR[2]; /* 0:27 bits are valid */ + __IO uint32_t INIT_MR_CR; + __IO uint32_t INIT_EMR_CR; + __IO uint32_t INIT_EMR2_CR; + __IO uint32_t INIT_EMR3_CR; + __IO uint32_t DRAM_BANK_TIMING_PARAM_CR; + __IO uint32_t DRAM_RD_WR_LATENCY_CR; + __IO uint32_t DRAM_RD_WR_PRE_CR; + __IO uint32_t DRAM_MR_TIMING_PARAM_CR; + __IO uint32_t DRAM_RAS_TIMING_CR; + __IO uint32_t DRAM_RD_WR_TRNARND_TIME_CR; + __IO uint32_t DRAM_T_PD_CR; + __IO uint32_t DRAM_BANK_ACT_TIMING_CR; + __IO uint32_t ODT_PARAM_1_CR; + __IO uint32_t ODT_PARAM_2_CR; + __IO uint32_t ADDR_MAP_COL_3_CR; + __IO uint32_t MODE_REG_RD_WR_CR; + __IO uint32_t MODE_REG_DATA_CR; + __IO uint32_t PWR_SAVE_1_CR; + __IO uint32_t PWR_SAVE_2_CR; + __IO uint32_t ZQ_LONG_TIME_CR; + __IO uint32_t ZQ_SHORT_TIME_CR; + __IO uint32_t ZQ_SHORT_INT_REFRESH_MARGIN_CR[2]; + __IO uint32_t PERF_PARAM_1_CR; + __IO uint32_t HPR_QUEUE_PARAM_CR[2]; + __IO uint32_t LPR_QUEUE_PARAM_CR[2]; + __IO uint32_t WR_QUEUE_PARAM_CR; + __IO uint32_t PERF_PARAM_2_CR; + __IO uint32_t PERF_PARAM_3_CR; + __IO uint32_t DFI_RDDATA_EN_CR; + __IO uint32_t DFI_MIN_CTRLUPD_TIMING_CR; + __IO uint32_t DFI_MAX_CTRLUPD_TIMING_CR; + __IO uint32_t DFI_WR_LVL_CONTROL_CR[2]; + __IO uint32_t DFI_RD_LVL_CONTROL_CR[2]; + __IO uint32_t DFI_CTRLUPD_TIME_INTERVAL_CR; + __IO uint32_t DYN_SOFT_RESET_CR2; + __IO uint32_t AXI_FABRIC_PRI_ID_CR; + __I uint32_t DDRC_SR; + __I uint32_t SINGLE_ERR_CNT_SR; + __I uint32_t DOUBLE_ERR_CNT_SR; + __I uint32_t LUE_SYNDROME_SR[5]; /* LUE : Last Uncorrected Error */ + __I uint32_t LUE_ADDRESS_SR[2]; + __I uint32_t LCE_SYNDROME_SR[5]; /* LCE : Last Corrected Error */ + __I uint32_t LCE_ADDRESS_SR[2]; + __I uint32_t LCB_NUMBER_SR; /* LCB : Last Corrected Bit */ + __I uint32_t LCB_MASK_SR[4]; + __I uint32_t ECC_INT_SR; + __O uint32_t ECC_INT_CLR_REG; + __I uint32_t ECC_OUTPUT_DATA_SR; + __IO uint32_t RESERVED1[46]; + } ddrc; + + /*-------------------------------------------------------------------------- + * DDR PHY configuration registers + */ + struct + { + __IO uint32_t DYN_BIST_TEST_CR; + __IO uint32_t DYN_BIST_TEST_ERRCLR_CR[3]; + __IO uint32_t BIST_TEST_SHIFT_PATTERN_CR[3]; + __IO uint32_t LOOPBACK_TEST_CR; + __IO uint32_t BOARD_LOOPBACK_CR; + __IO uint32_t CTRL_SLAVE_RATIO_CR; + __IO uint32_t CTRL_SLAVE_FORCE_CR; + __IO uint32_t CTRL_SLAVE_DELAY_CR; + __IO uint32_t DATA_SLICE_IN_USE_CR; + __IO uint32_t LVL_NUM_OF_DQ0_CR; + __IO uint32_t DQ_OFFSET_CR[3]; + __IO uint32_t DIS_CALIB_RST_CR; + __IO uint32_t DLL_LOCK_DIFF_CR; + __IO uint32_t FIFO_WE_IN_DELAY_CR[3]; + __IO uint32_t FIFO_WE_IN_FORCE_CR; + __IO uint32_t FIFO_WE_SLAVE_RATIO_CR[4]; + __IO uint32_t GATELVL_INIT_MODE_CR; + __IO uint32_t GATELVL_INIT_RATIO_CR[4]; + __IO uint32_t LOCAL_ODT_CR; + __IO uint32_t INVERT_CLKOUT_CR; + __IO uint32_t RD_DQS_SLAVE_DELAY_CR[3]; + __IO uint32_t RD_DQS_SLAVE_FORCE_CR; + __IO uint32_t RD_DQS_SLAVE_RATIO_CR[4]; + __IO uint32_t WR_DQS_SLAVE_DELAY_CR[3]; + __IO uint32_t WR_DQS_SLAVE_FORCE_CR; + __IO uint32_t WR_DQS_SLAVE_RATIO_CR[4]; + __IO uint32_t WR_DATA_SLAVE_DELAY_CR[3]; + __IO uint32_t WR_DATA_SLAVE_FORCE_CR; + __IO uint32_t WR_DATA_SLAVE_RATIO_CR[4]; + __IO uint32_t WRLVL_INIT_MODE_CR; + __IO uint32_t WRLVL_INIT_RATIO_CR[4]; + __IO uint32_t WR_RD_RL_CR; + __IO uint32_t RDC_FIFO_RST_ERRCNTCLR_CR; + __IO uint32_t RDC_WE_TO_RE_DELAY_CR; + __IO uint32_t USE_FIXED_RE_CR; + __IO uint32_t USE_RANK0_DELAYS_CR; + __IO uint32_t USE_LVL_TRNG_LEVEL_CR; + __IO uint32_t CONFIG_CR; + __IO uint32_t RD_WR_GATE_LVL_CR; + __IO uint32_t DYN_RESET_CR; + + /*---------------------------------------------------------------------- + * DDR PHY status registers + */ + __I uint32_t LEVELLING_FAILURE_SR; + __I uint32_t BIST_ERROR_SR[3]; + __I uint32_t WRLVL_DQS_RATIO_SR[4]; + __I uint32_t WRLVL_DQ_RATIO_SR[4]; + __I uint32_t RDLVL_DQS_RATIO_SR[4]; + __I uint32_t FIFO_SR[4]; + __I uint32_t MASTER_DLL_SR; + __I uint32_t DLL_SLAVE_VALUE_SR[2]; + __I uint32_t STATUS_OF_IN_DELAY_VAL_SR[2]; + __I uint32_t STATUS_OF_OUT_DELAY_VAL_SR[2]; + __I uint32_t DLL_LOCK_AND_SLAVE_VAL_SR; + __I uint32_t CTRL_OUTPUT_FILTER_SR; + __I uint32_t CTRL_OF_OUTPUT_DELAY_SR; + __I uint32_t RD_DQS_SLAVE_DLL_VAL_SR[3]; + __I uint32_t WR_DATA_SLAVE_DLL_VAL_SR[3]; + __I uint32_t FIFO_WE_SLAVE_DLL_VAL_SR[3]; + __I uint32_t WR_DQS_SLAVE_DLL_VAL_SR[3]; + __I uint32_t CTRL_SLAVE_DLL_VAL_SR; + __IO uint32_t RESERVED2[13]; + } phy; + + /*-------------------------------------------------------------------------- + * FIC-64 registers + * These registers are 16-bit wide and 32-bit aligned. + */ + struct + { + __IO uint32_t NB_ADDR_CR; + __IO uint32_t NBRWB_SIZE_CR; + __IO uint32_t WB_TIMEOUT_CR; + __IO uint32_t HPD_SW_RW_EN_CR; + __IO uint32_t HPD_SW_RW_INVAL_CR; + __IO uint32_t SW_WR_ERCLR_CR; + __IO uint32_t ERR_INT_ENABLE_CR; + __IO uint32_t NUM_AHB_MASTERS_CR; + __I uint32_t HPB_ERR_ADDR_SR[2]; + __I uint32_t SW_ERR_ADDR_SR[2]; + __I uint32_t HPD_SW_WRB_EMPTY_SR; + __I uint32_t SW_HPB_LOCKOUT_SR; + __I uint32_t SW_HPD_WERR_SR; + uint32_t RESERVED0; + __IO uint32_t LOCK_TIMEOUTVAL_CR[2]; + __IO uint32_t LOCK_TIMEOUT_EN_CR; + uint32_t RESERVED1[5]; + __IO uint32_t RDWR_ERR_SR; + } fic; +} DDRCore_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*--------------------- MDDR APB Configuration Registers ---------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + /*-------------------------------------------------------------------------- + * MDDR core configuration registers. + * These registers are to be accessed as: + * MDDR->core.fic. = ; + * MDDR->core.phy. = ; + * MDDR->core.ddrc. = ; + */ + DDRCore_TypeDef core; + +} MDDR_TypeDef; + + +/*----------------------------------------------------------------------------*/ +/*--------------------- FDDR APB Configuration Registers ---------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + /*-------------------------------------------------------------------------- + * FDDR core configuration registers. These are same as corresponding + * MDDR registers. + * These registers are to be accessed as: + * FDDR->core.fic. = ; + * FDDR->core.phy. = ; + * FDDR->core.ddrc. = ; + */ + DDRCore_TypeDef core; + __IO uint32_t RESERVED[39]; + + /*-------------------------------------------------------------------------- + * FDDR system registers + * These registers are to be accessed as: + * FDDR->sysreg.PLL_CONFIG_LOW_2 = 0x04u; + */ + struct + { + __IO uint32_t PLL_CONFIG_LOW_1; + __IO uint32_t PLL_CONFIG_LOW_2; + __IO uint32_t PLL_CONFIG_HIGH; + __IO uint32_t FACC_CLK_EN; + __IO uint32_t FACC_MUX_CONFIG; + __IO uint32_t FACC_DIVISOR_RATIO; + __IO uint32_t PLL_DELAY_LINE_SEL; + __IO uint32_t SOFT_RESET; + __IO uint32_t IO_CALIB; + __IO uint32_t INTERRUPT_ENABLE; + __IO uint32_t AXI_AHB_MODE_SEL; + __IO uint32_t PHY_SELF_REF_EN; + __IO uint32_t FAB_PLL_CLK_SR; + __IO uint32_t FPLL_CLK_SR; + __IO uint32_t CLK_CALIB_STATUS; + __IO uint32_t INTERRUPT_SR; + __IO uint32_t CLK_CALIB_CONFIG; + __IO uint32_t IO_CALIB_SR; + __IO uint32_t FATC_RESET; + } sysreg; +} FDDR_TypeDef; + +/*----------------------------------------------------------------------------*/ +/*------------------------------ SERDES Interface ----------------------------*/ +/*----------------------------------------------------------------------------*/ + +/*------------------------------------------------------------------------------ + AXI window + */ +typedef struct +{ + __IO uint32_t base; + __IO uint32_t size; + __IO uint32_t window_lsb; + __IO uint32_t window_msb; +} axi_window_TypeDef; + +/*------------------------------------------------------------------------------ + PCI Express Bridge Core registers. + + This data structure is used to access to the registers of the PCI Express + Bridge Core. + */ +typedef struct +{ + /*======================= Information registers ======================*/ + /** + Information register: vendor_id & device_id + bits [15:0] vendor_id + bits [31:16] device_id + */ + /* 0x000 */ + __IO uint32_t VID_DEVID; + + /** + PCI Express Control & Status Register: cfg_prmscr + */ + /* 0x004 */ + __IO uint32_t CFG_PRMSCR; + + /** + Information register: class_code + */ + /* 0x008 */ + __IO uint32_t CLASS_CODE; + + __IO uint32_t RESERVED0; + + /** + Bridge Configuration Register: bar0 + */ + /* 0x010 */ + __IO uint32_t BAR0; + + /** + Bridge Configuration Register: bar1 + */ + /* 0x014 */ + __IO uint32_t BAR1; + + /** + Bridge Configuration Register: bar2 + */ + /* 0x018 */ + __IO uint32_t BAR2; + + /** + Bridge Configuration Register: bar3 + */ + /* 0x01C */ + __IO uint32_t BAR3; + + /** + Bridge Configuration Register: bar4 + */ + /* 0x020 */ + __IO uint32_t BAR4; + + /** + Bridge Configuration Register: bar5 + */ + /* 0x024 */ + __IO uint32_t BAR5; + + __IO uint32_t RESERVED1; + + /** + Information register: subsystem_id + */ + /* 0x02C */ + __IO uint32_t SUBSYSTEM_ID; + + /** + PCI Express Control & Status Register: pcie_devscr + */ + /* 0x030 */ + __IO uint32_t PCIE_DEVSCR; + + /** + PCI Express Control & Status Register: pcie_linkscr + */ + /* 0x034 */ + __IO uint32_t PCIE_LINKSCR; + + /** + Bridge Configuration Register: tc_vc_mapping + */ + /* 0x038 */ + __IO uint32_t TC_VC_MAPPING; + + /** + Information register: captured_bus_device_nb + */ + /* 0x03C */ + __IO uint32_t CAPTURED_BUS_DEVICE_NB; + + /** + Endpoint Interrupt register: msi_ctrl_status + */ + /* 0x040 */ + __IO uint32_t MSI_CTRL_STATUS; + + /** + Power Management register: ltssm + */ + /* 0x044 */ + __IO uint32_t LTSSM; + + /** + Power Management register: power_mgt_capability + */ + /* 0x048 */ + __IO uint32_t POWER_MGT_CAPABILITY; + + /** + PCI Express Control & Status Register: cfg_pmscr + */ + /* 0x04C */ + __IO uint32_t CFG_PMSCR; + + /** + Bridge Configuration Register: aer_ecrc_capability + */ + /* 0x050 */ + __IO uint32_t AER_ECRC_CAPABILITY; + + /** + Bridge Configuration Register: vc1_capability + */ + /* 0x054 */ + __IO uint32_t VC1_CAPABILITY; + + /** + Bridge Configuration Register: max_payload_size + */ + /* 0x058 */ + __IO uint32_t MAX_PAYLOAD_SIZE; + + /** + Bridge Configuration Register: clkreq + */ + /* 0x05C */ + __IO uint32_t CLKREQ; + + /** + Power Management register: aspm_l0s_capability + */ + /* 0x060 */ + __IO uint32_t ASPM_L0S_CAPABILITY; + + /** + Power Management register: aspm_l1_capability + */ + /* 0x064 */ + __IO uint32_t ASPM_L1_CAPABILITY; + + /** + Power Management register: timeout_completion + */ + /* 0x068 */ + __IO uint32_t TIMEOUT_COMPLETION; + + __IO uint32_t RESERVED2; + + /** + Power Management register: pm_data_scale + */ + /* 0x070 */ + __IO uint32_t PM_DATA_SCALE[4]; + + /** + Endpoint Interrupt register: msi + */ + /* 0x080 */ + __IO uint32_t MSI[8]; + + /** + Bridge Configuration Register: error_counter + */ + /* 0x0A0 */ + __IO uint32_t ERROR_COUNTER[4]; + + /** + Bridge Configuration Register: credit_allocation + */ + /* 0x0B0 */ + __IO uint32_t CREDIT_ALLOCATION[4]; + + /** + Address Mapping register: axi_slave_window + */ + /* 0x0C0 */ + axi_window_TypeDef AXI_SLAVE_WINDOW[4]; + + /** + Address Mapping register: axi_master_window + */ + /* 0x100 */ + axi_window_TypeDef AXI_MASTER_WINDOW[4]; + + /** + Rootport Interrupt register: imask + */ + /* 0x140 */ + __IO uint32_t IMASK; + + /** + Rootport Interrupt register: istatus + */ + /* 0x144 */ + __IO uint32_t ISTATUS; + + /** + Rootport Interrupt register: icmd + */ + /* 0x148 */ + __IO uint32_t ICMD; + + /** + Rootport Interrupt register: irstatus + */ + /* 0x14C */ + __IO uint32_t IRSTATUS; + + /** + Rootport Interrupt register: imsiaddr + */ + /* 0x150 */ + __IO uint32_t IMSIADDR; + + /** + PCI Express Control & Status Register: slotcap + */ + /* 0x154 */ + __IO uint32_t SLOTCAP; + + /** + PCI Express Control & Status Register: slotcsr + */ + /* 0x158 */ + __IO uint32_t SLOTCSR; + + /** + PCI Express Control & Status Register: rootcsr + */ + /* 0x15C */ + __IO uint32_t ROOTCSR; + + /** + Configuration Register: cfg_control + */ + /* 0x160 */ + __IO uint32_t CFG_CONTROL; + + /** + Configuration Register: cfg_write_data + */ + /* 0x164 */ + __IO uint32_t CFG_WRITE_DATA; + + /** + Configuration Register: cfg_read_data + */ + /* 0x168 */ + __IO uint32_t CFG_READ_DATA; + + /** + Information register: info + */ + /* 0x16C */ + __IO uint32_t INFO; + + /** + Input/Output Control Register: io_control + */ + /* 0x170 */ + __IO uint32_t IO_CONTROL; + + /** + Input/Output Control Register: io_addr + */ + /* 0x174 */ + __IO uint32_t IO_ADDR; + + /** + Input/Output Control Register: io_write_data + */ + /* 0x178 */ + __IO uint32_t IO_WRITE_DATA; + + /** + Input/Output Control Register: io_read_data + */ + /* 0x17C */ + __IO uint32_t IO_READ_DATA; + + /** + Configuration Register: cfg_fbe + */ + /* 0x180 */ + __IO uint32_t CFG_FBE; + + /** + Address Mapping register: prefetch_io_window + */ + /* 0x184 */ + __IO uint32_t PREFETCH_IO_WINDOW; + + __IO uint32_t RESERVED4[31]; + + /** + Bridge Configuration Register: pcie_config + */ + /* 0x204 */ + __IO uint32_t PCIE_CONFIG; + + __IO uint32_t RESERVED5[10]; + + /** + PCI Express Control & Status Register: pcie_dev2scr + */ + /* 0x230 */ + __IO uint32_t PCIE_DEV2SCR; + + /** + PCI Express Control & Status Register: pcie_link2scr + */ + /* 0x234 */ + __IO uint32_t PCIE_LINK2SCR; + + __IO uint32_t RESERVED6[10]; + + /** + Power Management register: aspm_l0s_gen2 capability + */ + /* 0x260 */ + __IO uint32_t ASPM_L0S_GEN2; + + __IO uint32_t RESERVED7[39]; + + /** + Bridge Configuration Register: k_cnt_config + */ + /* 0x300 */ + __IO uint32_t K_CNT_CONFIG[6]; + + __IO uint32_t RESERVED8[826]; + +} PCIE_TypeDef; + +/*------------------------------------------------------------------------------ + SERDESIF System Registers. + */ +typedef struct +{ + __IO uint32_t SER_PLL_CONFIG_LOW; + __IO uint32_t SER_PLL_CONFIG_HIGH; + __IO uint32_t SERDESIF_SOFT_RESET; + __IO uint32_t SER_INTERRUPT_ENABLE; + __IO uint32_t CONFIG_AXI_AHB_BRIDGE; + __IO uint32_t CONFIG_ECC_INTR_ENABLE; + __IO uint32_t CONFIG_TEST_IN; + __IO uint32_t TEST_OUT_READ_ADDR; + __IO uint32_t CONFIG_PCIE_PM; + __IO uint32_t CONFIG_PHY_MODE_0; + __IO uint32_t CONFIG_PHY_MODE_1; + __IO uint32_t CONFIG_PHY_MODE_2; + __IO uint32_t CONFIG_PCIE_0; + __IO uint32_t CONFIG_PCIE_1; + __IO uint32_t CONFIG_PCIE_2; + __IO uint32_t CONFIG_PCIE_3; + __IO uint32_t CONFIG_BAR_SIZE_0_1; + __IO uint32_t CONFIG_BAR_SIZE_2_3; + __IO uint32_t CONFIG_BAR_SIZE_3_4; + __IO uint32_t SER_CLK_STATUS; + __IO uint32_t SER_CLK_CALIB_STATUS; + __IO uint32_t TEST_OUT_READ_DATA; + __IO uint32_t SER_INTERRUPT; + __IO uint32_t SERDESIF_INTR_STATUS; + __IO uint32_t SER_CLK_CALIB_CONFIG; + __IO uint32_t REFCLK_SEL; + __IO uint32_t PCLK_SEL; + __IO uint32_t EPCS_RSTN_SEL; + __IO uint32_t CHIP_ENABLES; + __IO uint32_t SERDES_TEST_OUT; + __IO uint32_t SERDES_FATC_RESET; + __IO uint32_t RC_OSC_SPLL_REFCLK_SEL; + __IO uint32_t SPREAD_SPECTRUM_CLK; + __IO uint32_t CONF_AXI_MSTR_WNDW_0; + __IO uint32_t CONF_AXI_MSTR_WNDW_1; + __IO uint32_t CONF_AXI_MSTR_WNDW_2; + __IO uint32_t CONF_AXI_MSTR_WNDW_3; + __IO uint32_t CONF_AXI_SLV_WNDW_0; + __IO uint32_t CONF_AXI_SLV_WNDW_1; + __IO uint32_t CONF_AXI_SLV_WNDW_2; + __IO uint32_t CONF_AXI_SLV_WNDW_3; + __IO uint32_t DESKEW_CONFIG; + __IO uint32_t DEBUG_MODE_KEY; + __IO uint32_t RESERVED0; + /* + * The following registers are only available on the M2S090. + */ + __IO uint32_t IDDQ; + __IO uint32_t ADVCONFIG; + __IO uint32_t ADVSTATUS; + __IO uint32_t ECC_ERR_INJECT; + __IO uint32_t RESERVED2; + __IO uint32_t RESERVED3; + __IO uint32_t ENHANCEMENT; + __IO uint32_t RESERVED4; + __IO uint32_t RESERVED5; + __IO uint32_t RESERVED6; + __IO uint32_t RESERVED7; + __IO uint32_t RESERVED8; + __IO uint32_t RESERVED9; + __IO uint32_t RESERVED10; + __IO uint32_t RESERVED11; + __IO uint32_t RESERVED12; + __IO uint32_t RESERVED13; + __IO uint32_t RESERVED14; + __IO uint32_t RESERVED15; + __IO uint32_t RESERVED16; + __IO uint32_t RESERVED17; + __IO uint32_t RESERVED18; + __IO uint32_t RESERVED19; + __IO uint32_t RESERVED20; + __IO uint32_t CONFIG2_AXI_AHB_BRIDGE; + __IO uint32_t CONFIG2_ECC_INTR_ENABLE; + __IO uint32_t CONFIG2_TEST_IN; + __IO uint32_t TEST2_OUT_READ_ADDR; + __IO uint32_t CONFIG2_PCIE_PM; + __IO uint32_t RESERVED21; + __IO uint32_t RESERVED22; + __IO uint32_t RESERVED23; + __IO uint32_t CONFIG2_PCIE_0; + __IO uint32_t CONFIG2_PCIE_1; + __IO uint32_t CONFIG2_PCIE_2; + __IO uint32_t CONFIG2_PCIE_3; + __IO uint32_t CONFIG2_BAR_SIZE_0_1; + __IO uint32_t CONFIG2_BAR_SIZE_2_3; + __IO uint32_t CONFIG2_BAR_SIZE_3_4; + __IO uint32_t RESERVED24; + __IO uint32_t RESERVED25; + __IO uint32_t TEST2_OUT_READ_DATA; + __IO uint32_t RESERVED26; + __IO uint32_t SERDESIF2_INTR_STATUS; + __IO uint32_t RESERVED27; + __IO uint32_t RESERVED28; + __IO uint32_t RESERVED29; + __IO uint32_t RESERVED30; + __IO uint32_t RESERVED31; + __IO uint32_t RESERVED32; + __IO uint32_t RESERVED33; + __IO uint32_t RESERVED34; + __IO uint32_t RESERVED35; + __IO uint32_t CONF2_AXI_MSTR_WNDW_0; + __IO uint32_t CONF2_AXI_MSTR_WNDW_1; + __IO uint32_t CONF2_AXI_MSTR_WNDW_2; + __IO uint32_t CONF2_AXI_MSTR_WNDW_3; + __IO uint32_t CONF2_AXI_SLV_WNDW_0; + __IO uint32_t CONF2_AXI_SLV_WNDW_1; + __IO uint32_t CONF2_AXI_SLV_WNDW_2; + __IO uint32_t CONF2_AXI_SLV_WNDW_3; + __IO uint32_t RESERVED36; + __IO uint32_t RESERVED37; + __IO uint32_t RESERVED38; + __IO uint32_t RESERVED39; + __IO uint32_t ADVCONFIG2; + __IO uint32_t ADVSTATUS2; + __IO uint32_t ECC_ERR_INJECT2; +} SERDES_INTF_SYSREG_TypeDef; + +/*------------------------------------------------------------------------------ + SERDES PHY registers + */ +typedef struct +{ + /** + Control register 0 + */ + __IO uint32_t CR0; + + /** + Clock count for error counter decrement + */ + __IO uint32_t ERRCNT_DEC; + + /** + Error counter threshold - Rx idle detect max latency + */ + __IO uint32_t RXIDLE_MAX_ERRCNT_THR; + + /** + Tx Impedance ratio + */ + __IO uint32_t IMPED_RATIO; + + /** + PLL F settings and PCLK ratio + */ + __IO uint32_t PLL_F_PCLK_RATIO; + + /** + PLL M & N settings + */ + __IO uint32_t PLL_M_N; + + /** + 250ns timer base count + */ + __IO uint32_t CNT250NS_MAX; + + /** + Rx Equalization amplitude ratio + */ + __IO uint32_t RE_AMP_RATIO; + + /** + Rx Equalization Cut frequency + */ + __IO uint32_t RE_CUT_RATIO; + + /** + Tx Amplitude ratio + */ + __IO uint32_t TX_AMP_RATIO; + + /** + Tx Post-Cursor ratio + */ + __IO uint32_t TX_PST_RATIO; + + /** + Tx Pre-Cursor ratio + */ + __IO uint32_t TX_PRE_RATIO; + + /** + End of calibration counter + */ + __IO uint32_t ENDCALIB_MAX; + + /** + Calibration stability counter + */ + __IO uint32_t CALIB_STABILITY_COUNT; + + /** + Power down feature + */ + __IO uint32_t POWER_DOWN; + + /** + Rx offset counter + */ + __IO uint32_t RX_OFFSET_COUNT; + + /** + PLL F settings and PCLK ratio (in PCIe 5 Gbps speed) + */ + __IO uint32_t PLL_F_PCLK_RATIO_5GBPS; + + /** + PLL M & N sttings (in PCIe 5 Gbps spped) + */ + __IO uint32_t PLL_M_N_5GBPS; + + /** + 250ns timer base count (in PCIe 5 Gbps speed) + */ + __IO uint32_t CNT250NS_MAX_5GBPS; + + /** + reserved + */ + __IO uint32_t RESERVED; + + /** + Tx Post-Cursor ratio with TxDeemp=0, Full swing + */ + __IO uint32_t TX_PST_RATIO_DEEMP0_FULL; + + /** + Tx Pre-Cursor ratio TxDeemp=0, full swing + */ + __IO uint32_t TX_PRE_RATIO_DEEMP0_FULL; + + /** + Tx Post-Cursor ratio with TxDeemp=1, Full swing + */ + __IO uint32_t TX_PST_RATIO_DEEMP1_FULL; + + /** + Tx Pre-Cursor ratio TxDeemp=1, full swing + */ + __IO uint32_t TX_PRE_RATIO_DEEMP1_FULL; + + /** + Tx Amplitude ratio TxMargin=0, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN0_FULL; + + /** + Tx Amplitude ratio TxMargin=1, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN1_FULL; + + /** + Tx Amplitude ratio TxMargin=2, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN2_FULL; + + /** + Tx Amplitude ratio TxMargin=3, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN3_FULL; + + /** + Tx Amplitude ratio TxMargin=4, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN4_FULL; + + /** + Tx Amplitude ratio TxMargin=5, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN5_FULL; + + /** + Tx Amplitude ratio TxMargin=6, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN6_FULL; + + /** + Tx Amplitude ratio TxMargin=7, full swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN7_FULL; + + /** + Rx Equalization amplitude ratio TxDeemp=0 + */ + __IO uint32_t RE_AMP_RATIO_DEEMP0; + + /** + Rx Equalization Cut frequency TxDeemp=0 + */ + __IO uint32_t RE_CUT_RATIO_DEEMP0; + + /** + Rx Equalization amplitude ratio TxDeemp=1 + */ + __IO uint32_t RE_AMP_RATIO_DEEMP1; + + /** + Rx Equalization Cut frequency TxDeemp=1 + */ + __IO uint32_t RE_CUT_RATIO_DEEMP1; + + /** + Tx Post-Cursor ratio with TxDeemp=0, Half swing + */ + __IO uint32_t TX_PST_RATIO_DEEMP0_HALF; + + /** + Tx Pre-Cursor ratio TxDeemp=0, Half swing + */ + __IO uint32_t TX_PRE_RATIO_DEEMP0_HALF; + + /** + Tx Post-Cursor ratio with TxDeemp=1, Half swing + */ + __IO uint32_t TX_PST_RATIO_DEEMP1_HALF; + + /** + Tx Pre-Cursor ratio TxDeemp=1, Half swing + */ + __IO uint32_t TX_PRE_RATIO_DEEMP1_HALF; + + /** + Tx Amplitude ratio TxMargin=0, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN0_HALF; + + /** + Tx Amplitude ratio TxMargin=1, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN1_HALF; + + /** + Tx Amplitude ratio TxMargin=2, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN2_HALF; + + /** + Tx Amplitude ratio TxMargin=3, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN3_HALF; + + /** + Tx Amplitude ratio TxMargin=4, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN4_HALF; + + /** + Tx Amplitude ratio TxMargin=5, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN5_HALF; + + /** + Tx Amplitude ratio TxMargin=6, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN6_HALF; + + /** + Tx Amplitude ratio TxMargin=7, Half swing + */ + __IO uint32_t TX_AMP_RATIO_MARGIN7_HALF; + + /** + PMA status + */ + __IO uint32_t PMA_STATUS; + + /** + Tx sweep center (RO) + */ + __IO uint32_t TX_SWEEP_CENTER; + + /** + Rx seep center (RO) + */ + __IO uint32_t RX_SWEEP_CENTER; + + /** + Rx Equalization sweep center (RO) + */ + __IO uint32_t RE_SWEEP_CENTER; + + /** + Receiver Shift Loader parameter 0 (RO) + */ + __IO uint32_t ATXDRR_7_0; + + /** + Receiver Shift Loader parameter 1 (RO) + */ + __IO uint32_t ATXDRR_14_8; + + /** + Transmitter P Shift Loader parameter0-0 + */ + __IO uint32_t ATXDRP_DYN_7_0; + + /** + Transmitter P Shift Loader parameter0-1 + */ + __IO uint32_t ATXDRP_DYN_15_8; + + /** + Transmitter P Shift Loader parameter0-2 + */ + __IO uint32_t ATXDRP_DYN_20_16; + + /** + Transmitter A Shift Loader parameter0-0 + */ + __IO uint32_t ATXDRA_DYN_7_0; + + /** + Transmitter A Shift Loader parameter0-1 + */ + __IO uint32_t ATXDRA_DYN_15_8; + + /** + Transmitter A Shift Loader parameter0-2 + */ + __IO uint32_t ATXDRA_DYN_20_16; + + /** + Transmitter T Shift Loader parameter0-0 + */ + __IO uint32_t ATXDRT_DYN_7_0; + + /** + Transmitter T Shift Loader parameter0-1 + */ + __IO uint32_t ATXDRT_DYN_15_8; + + /** + Transmitter T Shift Loader parameter0-2 + */ + __IO uint32_t ATXDRT_DYN_20_16; + + /** + Transmitter P Shift Loader parameter 1-0 (RO) + */ + __IO uint32_t ATXDRP_EI1_7_0; + + /** + Transmitter P Shift Loader parameter 1-1 (RO) + */ + __IO uint32_t ATXDRP_EI1_15_8; + + /** + Transmitter P Shift Loader parameter 1-2 (RO) + */ + __IO uint32_t ATXDRP_EI1_20_16; + + /** + Transmitter A Shift Loader parameter 1-0 (RO) + */ + __IO uint32_t ATXDRA_EI1_7_0; + + /** + Transmitter A Shift Loader parameter 1-1 (RO) + */ + __IO uint32_t ATXDRA_EI1_15_8; + + /** + Transmitter A Shift Loader parameter 1-2 (RO) + */ + __IO uint32_t ATXDRA_EI1_20_16; + + /** + Transmitter T Shift Loader parameter 1-0 (RO) + */ + __IO uint32_t ATXDRT_EI1_7_0; + + /** + Transmitter T Shift Loader parameter 1-1 (RO) + */ + __IO uint32_t ATXDRT_EI1_15_8; + + /** + Transmitter T Shift Loader parameter 1-2 (RO) + */ + __IO uint32_t ATXDRT_EI1_20_16; + + /** + Transmitter P shift Loader parameter 2-0 (RO) + */ + __IO uint32_t ATXDRP_EI2_7_0; + + /** + Transmitter P shift Loader parameter 2-1 (RO) + */ + __IO uint32_t ATXDRP_EI2_15_8; + + /** + Transmitter P shift Loader parameter 2-2 (RO) + */ + __IO uint32_t ATXDRP_EI2_20_16; + + /** + Transmitter A Shift parametr 2-0 (RO) + */ + __IO uint32_t ATXDRA_EI2_7_0; + + /** + Transmitter A Shift parametr 2-1 (RO) + */ + __IO uint32_t ATXDRA_EI2_15_8; + + /** + Transmitter A Shift parametr 2-2 (RO) + */ + __IO uint32_t ATXDRA_EI2_20_16; + + /** + Transmitter T Shift parametr 2-0 (RO) + */ + __IO uint32_t ATXDRT_EI2_7_0; + + /** + Transmitter T Shift parametr 2-1 (RO) + */ + __IO uint32_t ATXDRT_EI2_15_8; + + /** + Transmitter T Shift parametr 2-2 (RO) + */ + __IO uint32_t ATXDRT_EI2_20_16; + + /** + Override calibration register (RW) + */ + __IO uint32_t OVERRIDE_CALIB; + + /** + Force Receiver Shift Loader parameter 0 (RW) + */ + __IO uint32_t FORCE_ATXDRR_7_0; + + /** + Force Receiver Shift Loader parameter 1 (RW) + */ + __IO uint32_t FORCE_ATXDRR_15_8; + + /** + Force Receiver Shift Loader parameter 2 (RW) + */ + __IO uint32_t FORCE_ATXDRR_20_16; + + /** + Force Transmitter P Shift Loader parameter 0 (RW) + */ + __IO uint32_t FORCE_ATXDRP_7_0; + + /** + Force Transmitter P Shift Loader parameter 1 (RW) + */ + __IO uint32_t FORCE_ATXDRP_15_8; + + /** + Force Transmitter P Shift Loader parameter 2 (RW) + */ + __IO uint32_t FORCE_ATXDRP_20_16; + + /** + Force Transmitter A Shift Loader parameter 0 (RW) + */ + __IO uint32_t FORCE_ATXDRA_7_0; + + /** + Force Transmitter A Shift Loader parameter 1 (RW) + */ + __IO uint32_t FORCE_ATXDRA_15_8; + + /** + Force Transmitter A Shift Loader parameter 2 (RW) + */ + __IO uint32_t FORCE_ATXDRA_20_16; + + /** + Force Transmitter T Shift parameter 0-0 (RO) + */ + __IO uint32_t FORCE_ATXDRT_7_0; + + /** + Force Transmitter T Shift parameter 0-1 (RO) + */ + __IO uint32_t FORCE_ATXDRT_15_8; + + /** + Force Transmitter T Shift parameter 0-2 (RO) + */ + __IO uint32_t FORCE_ATXDRT_20_16; + + /** + RxD offset calibration result (RO) + */ + __IO uint32_t RXD_OFFSET_CALIB_RESULT; + + /** + RxT offset calibration result (RO) + */ + __IO uint32_t RXT_OFFSET_CALIB_RESULT; + + /** + Schmitt trigger calibration result (RO) + */ + __IO uint32_t SCHMITT_TRIG_CALIB_RESULT; + + /** + Force RxD offset calibration settings (RW) + */ + __IO uint32_t FORCE_RXD_OFFSET_CALIB; + + /** + Force RxT offset calibration settings (RW) + */ + __IO uint32_t FORCE_RXT_OFFSET_CALIB; + + /** + Force Schmitt trigger calibration settings (RW) + */ + __IO uint32_t FORCE_SCHMITT_TRIG_CALIB; + + /** + PRBS control register (RW) + */ + __IO uint32_t PRBS_CTRL; + + /** + PRBS error counter register (RO) + */ + __IO uint32_t PRBS_ERRCNT; + + /** + PHY reset override register (RW) + */ + __IO uint32_t PHY_RESET_OVERRIDE; + + /** + PHY power override register (RW) + */ + __IO uint32_t PHY_POWER_OVERRIDE; + + /** + Custom Pattern Byte 0 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_7_0; + + /** + Custom Pattern Byte 1 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_15_8; + + /** + Custom Pattern Byte 2 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_23_16; + + /** + Custom Pattern Byte 3 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_31_24; + + /** + Custom Pattern Byte 4 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_39_32; + + /** + Custom Pattern Byte 5 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_47_40; + + /** + Custom Pattern Byte 6 (RW) + */ + __IO uint32_t CUSTOM_PATTERN55_48; + + /** + Custom Pattern Byte 7 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_63_56; + + /** + Custom Pattern Byte 8 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_71_64; + + /** + Custom Pattern Byte 9 (RW) + */ + __IO uint32_t CUSTOM_PATTERN_79_72; + + /** + Custom Pattern Control (RW) + */ + __IO uint32_t CUSTOM_PATTERN_CTRL; + + /** + Custom Pattern Status register (RO) + */ + __IO uint32_t CUSTOM_PATTERN_STATUS; + + /** + PCS Loopback Control (RW) + */ + __IO uint32_t PCS_LOOPBBACK_CTRL; + + /** + Gen1 Transmit PLL Current Charge Pump (RW) + */ + __IO uint32_t GEN1_TX_PLL_CCP; + + /** + Gen1 Receive PLL Current Charge Pump (RW) + */ + __IO uint32_t GEN1_RX_PLL_CCP; + + /** + Gen2 Transmit PLL Current Charge Pump (RW) + */ + __IO uint32_t GEN2_TX_PLL_CCP; + + /** + Gen2 Receive PLL Current Charge Pump (RW) + */ + __IO uint32_t GEN2_RX_PLL_CCP; + + /** + CDR PLL manual control + */ + __IO uint32_t CDR_PLL_MANUAL_CR; + + /** + Reserved0 + */ + __IO uint32_t RESERVED0[6]; + + /** + Update settings command register + */ + __IO uint32_t UPDATE_SETTINGS; + + /** + Reserved1 + */ + __IO uint32_t RESERVED1[31]; + + /** + PRBS first error cycle counter bits [7:0] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_7_0; + + /** + PRBS first error cycle counter bits [15:8] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_15_8; + + /** + PRBS first error cycle counter bits [23:16] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_23_16; + + /** + PRBS first error cycle counter bits [31:24] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_31_24; + + /** + PRBS first error cycle counter bits [39:32] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_39_32; + + /** + PRBS first error cycle counter bits [47:40] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_47_40; + + /** + PRBS first error cycle counter bits [49:48] + */ + __IO uint32_t PRBS_ERR_CYC_FIRST_49_48; + + /** + Reserved2 + */ + __IO uint32_t RESERVED2; + + /** + PRBS last error cycle counter bits [7:0] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_7_0; + + /** + PRBS last error cycle counter bits [15:8] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_15_8; + + /** + PRBS last error cycle counter bits [23:16] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_23_16; + + /** + PRBS last error cycle counter bits [31:24] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_31_24; + + /** + PRBS last error cycle counter bits [39:32] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_39_32; + + /** + PRBS last error cycle counter bits [47:40] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_47_40; + + /** + PRBS last error cycle counter bits [49:48] + */ + __IO uint32_t PRBS_ERR_CYC_LAST_49_48; + + /** + Reserved3 + */ + __IO uint32_t RESERVED3[81]; + +} SERDES_TypeDef; + +/*-------------------------------------------------------------------------*//** + The serdesif_regs_t data structure provides access to the complete set of the + SERDES Interface hardware block configuration registers. These registers are + accessed through the APB interface of the SERDES Interface hardware block. + */ +typedef struct +{ + /** + PCIe core registers. + */ + PCIE_TypeDef core; + + /** + SERDES macro registers. + */ + SERDES_TypeDef lane[4]; + + /** + SERDESIF system registers. + */ + SERDES_INTF_SYSREG_TypeDef sys_regs; + +} SERDESIF_TypeDef; + + +/*----------------------------------------------------------------------------*/ +/*------------------------------ System Registers ----------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct +{ + __IO uint32_t ESRAM_CR; /*0X0 */ + __IO uint32_t ESRAM_MAX_LAT_CR; /*0X4 */ + __IO uint32_t DDR_CR; /*0X8 */ + __IO uint32_t ENVM_CR; /*0XC */ + __IO uint32_t ENVM_REMAP_BASE_CR; /*0X10 */ + __IO uint32_t ENVM_REMAP_FAB_CR; /*0X14 */ + __IO uint32_t CC_CR; /*0X18 */ + __IO uint32_t CC_REGION_CR; /*0X1C */ + __IO uint32_t CC_LOCK_BASE_ADDR_CR; /*0X20 */ + __IO uint32_t CC_FLUSH_INDX_CR; /*0X24 */ + __IO uint32_t DDRB_BUF_TIMER_CR; /*0X28 */ + __IO uint32_t DDRB_NB_ADDR_CR; /*0X2C */ + __IO uint32_t DDRB_NB_SIZE_CR; /*0X30 */ + __IO uint32_t DDRB_CR; /*0X34 */ + __IO uint32_t EDAC_CR; /*0X38 */ + __IO uint32_t MASTER_WEIGHT0_CR; /*0X3C */ + __IO uint32_t MASTER_WEIGHT1_CR; /*0X40 */ + __IO uint32_t SOFT_IRQ_CR; /*0X44 */ + __IO uint32_t SOFT_RST_CR; /*0X48 */ + __IO uint32_t M3_CR; /*0X4C */ + __IO uint32_t FAB_IF_CR; /*0X50 */ + __IO uint32_t LOOPBACK_CR; /*0X54 */ + __IO uint32_t GPIO_SYSRESET_SEL_CR; /*0X58 */ + __IO uint32_t GPIN_SRC_SEL_CR; /*0X5C */ + __IO uint32_t MDDR_CR; /*0X60 */ + __IO uint32_t USB_IO_INPUT_SEL_CR; /*0X64 */ + __IO uint32_t PERIPH_CLK_MUX_SEL_CR; /*0X68 */ + __IO uint32_t WDOG_CR; /*0X6C */ + __IO uint32_t MDDR_IO_CALIB_CR; /*0X70 */ + __IO uint32_t SPARE_OUT_CR; /*0X74 */ + __IO uint32_t EDAC_IRQ_ENABLE_CR; /*0X78 */ + __IO uint32_t USB_CR; /*0X7C */ + __IO uint32_t ESRAM_PIPELINE_CR; /*0X80 */ + __IO uint32_t MSS_IRQ_ENABLE_CR; /*0X84 */ + __IO uint32_t RTC_WAKEUP_CR; /*0X88 */ + __IO uint32_t MAC_CR; /*0X8C */ + __IO uint32_t MSSDDR_PLL_STATUS_LOW_CR; /*0X90 */ + __IO uint32_t MSSDDR_PLL_STATUS_HIGH_CR; /*0X94 */ + __IO uint32_t MSSDDR_FACC1_CR; /*0X98 */ + __IO uint32_t MSSDDR_FACC2_CR; /*0X9C */ + __IO uint32_t PLL_LOCK_EN_CR; /*0XA0 */ + __IO uint32_t MSSDDR_CLK_CALIB_CR; /*0XA4 */ + __IO uint32_t PLL_DELAY_LINE_SEL_CR; /*0XA8 */ + __IO uint32_t MAC_STAT_CLRONRD_CR; /*0XAC */ + __IO uint32_t RESET_SOURCE_CR; /*0XB0 */ + __I uint32_t CC_DC_ERR_ADDR_SR; /*0XB4 */ + __I uint32_t CC_IC_ERR_ADDR_SR; /*0XB8 */ + __I uint32_t CC_SB_ERR_ADDR_SR; /*0XBC */ + __I uint32_t CC_DECC_ERR_ADDR_SR; /*0XC0 */ + __I uint32_t CC_IC_MISS_CNT_SR; /*0XC4 */ + __I uint32_t CC_IC_HIT_CNT_SR; /*0XC8 */ + __I uint32_t CC_DC_MISS_CNT_SR; /*0XCC */ + __I uint32_t CC_DC_HIT_CNT_SR; /*0XD0 */ + __I uint32_t CC_IC_TRANS_CNT_SR; /*0XD4 */ + __I uint32_t CC_DC_TRANS_CNT_SR; /*0XD8 */ + __I uint32_t DDRB_DS_ERR_ADR_SR; /*0XDC */ + __I uint32_t DDRB_HPD_ERR_ADR_SR; /*0XE0 */ + __I uint32_t DDRB_SW_ERR_ADR_SR; /*0XE4 */ + __I uint32_t DDRB_BUF_EMPTY_SR; /*0XE8 */ + __I uint32_t DDRB_DSBL_DN_SR; /*0XEC */ + __I uint32_t ESRAM0_EDAC_CNT; /*0XF0 */ + __I uint32_t ESRAM1_EDAC_CNT; /*0XF4 */ + __I uint32_t CC_EDAC_CNT; /*0XF8 */ + __I uint32_t MAC_EDAC_TX_CNT; /*0XFC */ + __I uint32_t MAC_EDAC_RX_CNT; /*0X100 */ + __I uint32_t USB_EDAC_CNT; /*0X104 */ + __I uint32_t CAN_EDAC_CNT; /*0X108 */ + __I uint32_t ESRAM0_EDAC_ADR; /*0X10C */ + __I uint32_t ESRAM1_EDAC_ADR; /*0X110 */ + __I uint32_t MAC_EDAC_RX_ADR; /*0X114 */ + __I uint32_t MAC_EDAC_TX_ADR; /*0X118 */ + __I uint32_t CAN_EDAC_ADR; /*0X11C */ + __I uint32_t USB_EDAC_ADR; /*0X120 */ + __I uint32_t MM0_1_2_SECURITY; /*0X124 */ + __I uint32_t MM4_5_FIC64_SECURITY; /*0X128 */ + __I uint32_t MM3_6_7_8_SECURITY; /*0X12C */ + __I uint32_t MM9_SECURITY; /*0X130 */ + __I uint32_t M3_SR; /*0X134 */ + __I uint32_t ETM_COUNT_LOW; /*0X138 */ + __I uint32_t ETM_COUNT_HIGH; /*0X13C */ + __I uint32_t DEVICE_SR; /*0X140 */ + __I uint32_t ENVM_PROTECT_USER; /*0X144 */ + __I uint32_t ENVM_STATUS; /*0X148 */ + __I uint32_t DEVICE_VERSION; /*0X14C */ + __I uint32_t MSSDDR_PLL_STATUS; /*0X150 */ + __I uint32_t USB_SR; /*0X154 */ + __I uint32_t ENVM_SR; /*0X158 */ + __I uint32_t SPARE_IN; /*0X15C */ + __I uint32_t DDRB_STATUS; /*0X160 */ + __I uint32_t MDDR_IO_CALIB_STATUS; /*0X164 */ + __I uint32_t MSSDDR_CLK_CALIB_STATUS; /*0X168 */ + __I uint32_t WDOGLOAD; /*0X16C */ + __I uint32_t WDOGMVRP; /*0X170 */ + __I uint32_t USERCONFIG0; /*0X174 */ + __I uint32_t USERCONFIG1; /*0X178 */ + __I uint32_t USERCONFIG2; /*0X17C */ + __I uint32_t USERCONFIG3; /*0X180 */ + __I uint32_t FAB_PROT_SIZE; /*0X184 */ + __I uint32_t FAB_PROT_BASE; /*0X188 */ + __I uint32_t MSS_GPIO_DEF; /*0X18C */ + __IO uint32_t EDAC_SR; /*0X190 */ + __IO uint32_t MSS_INTERNAL_SR; /*0X194 */ + __IO uint32_t MSS_EXTERNAL_SR; /*0X198 */ + __IO uint32_t WDOGTIMEOUTEVENT; /*0X19C */ + __IO uint32_t CLR_MSS_COUNTERS; /*0X1A0 */ + __IO uint32_t CLR_EDAC_COUNTERS; /*0X1A4 */ + __IO uint32_t FLUSH_CR; /*0X1A8 */ + __IO uint32_t MAC_STAT_CLR_CR; /*0X1AC */ + __IO uint32_t IOMUXCELL_CONFIG[57]; /*0X1B0 */ + __I uint32_t NVM_PROTECT_FACTORY; /*0X294 */ + __I uint32_t DEVICE_STATUS_FIXED; /*0X298 */ + __I uint32_t MBIST_ES0; /*0X29C */ + __I uint32_t MBIST_ES1; /*0X2A0 */ + __IO uint32_t MSDDR_PLL_STAUS_1; /*0X2A4 */ + __I uint32_t REDUNDANCY_ESRAM0; /*0X2A8 */ + __I uint32_t REDUNDANCY_ESRAM1; /*0X2AC */ + __I uint32_t SERDESIF; /*0X2B0 */ + +} SYSREG_TypeDef; + +#define SYSREG_ENVM0_SOFTRESET_MASK ( (uint32_t)0x01u << 0u ) +#define SYSREG_ENVM1_SOFTRESET_MASK ( (uint32_t)0x01u << 1u ) +#define SYSREG_ESRAM0_SOFTRESET_MASK ( (uint32_t)0x01u << 2u ) +#define SYSREG_ESRAM1_SOFTRESET_MASK ( (uint32_t)0x01u << 3u ) +#define SYSREG_MAC_SOFTRESET_MASK ( (uint32_t)0x01u << 4u ) +#define SYSREG_PDMA_SOFTRESET_MASK ( (uint32_t)0x01u << 5u ) +#define SYSREG_TIMER_SOFTRESET_MASK ( (uint32_t)0x01u << 6u ) +#define SYSREG_MMUART0_SOFTRESET_MASK ( (uint32_t)0x01u << 7u ) +#define SYSREG_MMUART1_SOFTRESET_MASK ( (uint32_t)0x01u << 8u ) +#define SYSREG_SPI0_SOFTRESET_MASK ( (uint32_t)0x01u << 9u ) +#define SYSREG_SPI1_SOFTRESET_MASK ( (uint32_t)0x01u << 10u ) +#define SYSREG_I2C0_SOFTRESET_MASK ( (uint32_t)0x01u << 11u ) +#define SYSREG_I2C1_SOFTRESET_MASK ( (uint32_t)0x01u << 12u ) +#define SYSREG_CAN_SOFTRESET_MASK ( (uint32_t)0x01u << 13u ) +#define SYSREG_USB_SOFTRESET_MASK ( (uint32_t)0x01u << 14u ) +#define SYSREG_COMBLK_SOFTRESET_MASK ( (uint32_t)0x01u << 15u ) +#define SYSREG_FPGA_SOFTRESET_MASK ( (uint32_t)0x01u << 16u ) +#define SYSREG_HPDMA_SOFTRESET_MASK ( (uint32_t)0x01u << 17u ) +#define SYSREG_FIC32_0_SOFTRESET_MASK ( (uint32_t)0x01u << 18u ) +#define SYSREG_FIC32_1_SOFTRESET_MASK ( (uint32_t)0x01u << 19u ) +#define SYSREG_GPIO_SOFTRESET_MASK ( (uint32_t)0x01u << 20u ) +#define SYSREG_GPIO_7_0_SOFTRESET_MASK ( (uint32_t)0x01u << 21u ) +#define SYSREG_GPIO_15_8_SOFTRESET_MASK ( (uint32_t)0x01u << 22u ) +#define SYSREG_GPIO_23_16_SOFTRESET_MASK ( (uint32_t)0x01u << 23u ) +#define SYSREG_GPIO_31_24_SOFTRESET_MASK ( (uint32_t)0x01u << 24u ) +#define SYSREG_MDDR_SOFTRESET_MASK ( (uint32_t)0x01u << 25u ) +#define SYSREG_FIC64_SOFTRESET_MASK ( (uint32_t)0x01u << 26u ) + +/*----------------------------------------------------------------------------*/ +/*-------------------------- CoreSF2Config Registers -------------------------*/ +/*----------------------------------------------------------------------------*/ +typedef struct { + __IO uint32_t CONFIG_DONE; + __I uint32_t INIT_DONE; + __IO uint32_t CLR_INIT_DONE; + __I uint32_t CONFIG_SR; + __IO uint32_t SOFT_RESET_CR; + __I uint32_t IP_VERSION_SR; +} CoreSF2Config_TypeDef; + +/******************************************************************************/ +/* Peripheral memory map */ +/******************************************************************************/ +#define UART0_BASE 0x40000000u +#define SPI0_BASE 0x40001000u +#define I2C0_BASE 0x40002000u +#define PDMA_BASE 0x40003000u +#define TIMER_BASE 0x40004000u +#define WATCHDOG_BASE 0x40005000u +#define H2F_IRQ_CTRL_BASE 0x40006000u +#define UART1_BASE 0x40010000u +#define SPI1_BASE 0x40011000u +#define I2C1_BASE 0x40012000u +#define GPIO_BASE 0x40013000u +#define HPDMA_BASE 0x40014000u +#define CAN_BASE 0x40015000u +#define COMBLK_BASE 0x40016000u +#define RTC_BASE 0x40017000u +#define DDR0_CFG_BASE 0x40020800u +#define DDR1_CFG_BASE 0x40021000u +#define CORE_SF2_CFG_BASE 0x40022000u +#define SERDES0_CFG_BASE 0x40028000u +#define SERDES1_CFG_BASE 0x4002C000u +#define SERDES2_CFG_BASE 0x40030000u +#define SERDES3_CFG_BASE 0x40034000u +#define SYSREG_BASE 0x40038000u +#define ETHERNET_BASE 0x40041000u +#define USB_BASE 0x40043000u +#define ENVM1_BASE 0x60080000u +#define ENVM2_BASE 0x600C0000u + +/******************************************************************************/ +/* bitband address calculation macro */ +/******************************************************************************/ +#define BITBAND_ADDRESS(X) ((X & 0xF0000000U) + 0x02000000U + ((X & 0xFFFFFU) << 5)) + +/******************************************************************************/ +/* Peripheral declaration */ +/******************************************************************************/ +#define UART0 ((UART_TypeDef *) UART0_BASE) +#define SPI0 ((SPI_TypeDef *) SPI0_BASE) +#define I2C0 ((I2C_TypeDef *) I2C0_BASE) +#define I2C0_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C0_BASE)) +#define MAC ((MAC_TypeDef *) ETHERNET_BASE) +#define PDMA ((PDMA_TypeDef *) PDMA_BASE) +#define TIMER ((TIMER_TypeDef *) TIMER_BASE) +#define TIMER_BITBAND ((TIMER_BitBand_TypeDef *) BITBAND_ADDRESS(TIMER_BASE)) +#define WATCHDOG ((WATCHDOG_TypeDef *) WATCHDOG_BASE) +#define INTERRUPT_CTRL ((INTERRUPT_CTRL_TypeDef *) H2F_IRQ_CTRL_BASE) +#define INTERRUPT_CTRL_BITBAND ((INTERRUPT_CTRL_BitBand_TypeDef *) BITBAND_ADDRESS(H2F_IRQ_CTRL_BASE)) +#define UART1 ((UART_TypeDef *) UART1_BASE) +#define SPI1 ((SPI_TypeDef *) SPI1_BASE) +#define I2C1 ((I2C_TypeDef *) I2C1_BASE) +#define I2C1_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C1_BASE)) +#define GPIO ((GPIO_TypeDef *) GPIO_BASE) +#define GPIO_BITBAND ((GPIO_BitBand_TypeDef *) BITBAND_ADDRESS(GPIO_BASE)) +#define HPDMA ((HPDMA_TypeDef *) HPDMA_BASE) +#define HPDMA_BITBAND ((HPDMA_BitBand_TypeDef *) BITBAND_ADDRESS(HPDMA_BASE)) +#define COMBLK ((COMBLK_TypeDef *) COMBLK_BASE) +#define RTC ((RTC_TypeDef *) RTC_BASE) +#define ENVM_1 ((NVM_TypeDef *) ENVM1_BASE) +#define ENVM_2 ((NVM_TypeDef *) ENVM2_BASE) +#define SYSREG ((SYSREG_TypeDef *) SYSREG_BASE) +#define MDDR ((MDDR_TypeDef *) DDR0_CFG_BASE) +#define FDDR ((FDDR_TypeDef *) DDR1_CFG_BASE) +#define USB ((MSS_USB_TypeDef *) USB_BASE) +#define SERDES0 ((SERDESIF_TypeDef *) SERDES0_CFG_BASE) +#define SERDES1 ((SERDESIF_TypeDef *) SERDES1_CFG_BASE) +#define SERDES2 ((SERDESIF_TypeDef *) SERDES2_CFG_BASE) +#define SERDES3 ((SERDESIF_TypeDef *) SERDES3_CFG_BASE) +#define CORE_SF2_CFG ((CoreSF2Config_TypeDef *) CORE_SF2_CFG_BASE) + +#ifdef __cplusplus +} +#endif + +#endif /* __SMARTFUSION2_CMSIS_PAL_H__ */ + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/mss_assert.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/mss_assert.h new file mode 100644 index 00000000..910a6523 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/mss_assert.h @@ -0,0 +1,62 @@ +/******************************************************************************* + * (c) Copyright 2009-2013 Microsemi SoC Products Group. All rights reserved. + * + * Assertion implementation. + * + * This file provides the implementation of the ASSERT macro. This file can be + * modified to cater for project specific requirements regarding the way + * assertions are handled. + * + * SVN $Revision: 6422 $ + * SVN $Date: 2014-05-14 19:07:56 +0530 (Wed, 14 May 2014) $ + */ +#ifndef __MSS_ASSERT_H_ +#define __MSS_ASSERT_H_ + +#if defined(NDEBUG) + +#define ASSERT(CHECK) + +#else /* NDEBUG */ + +#include + +#if defined ( __GNUC__ ) + +/* + * SoftConsole assertion handling + */ +#define ASSERT(CHECK) \ + do { \ + if (!(CHECK)) \ + { \ + __asm volatile ("BKPT\n\t"); \ + } \ + } while (0); + +#elif defined ( __ICCARM__ ) +/* + * IAR Embedded Workbench assertion handling. + * Call C library assert function which should result in error message + * displayed in debugger. + */ +#define ASSERT(X) assert(X) + +#else +/* + * Keil assertion handling. + * Call C library assert function which should result in error message + * displayed in debugger. + */ + +#ifndef __MICROLIB + #define ASSERT(X) assert(X) +#else + #define ASSERT(X) +#endif + +#endif /* Tool Chain */ + +#endif /* NDEBUG */ + +#endif /* __MSS_ASSERT_H_ */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/low_level_init.c b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/low_level_init.c new file mode 100644 index 00000000..6a582d15 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/low_level_init.c @@ -0,0 +1,44 @@ +/******************************************************************************* + * (c) Copyright 2014 Microsemi SoC Products Group. All rights reserved. + * + * Keil-MDK specific system initialization. + * + * SVN $Revision: 7375 $ + * SVN $Date: 2015-05-01 19:27:40 +0530 (Fri, 01 May 2015) $ + */ +#ifdef MSCC_NO_RELATIVE_PATHS +#include "m2sxxx.h" +#else +#include "..\m2sxxx.h" +#endif + +#define ENVM_BASE_ADDRESS 0x60000000U +#define MDDR_BASE_ADDRESS 0xA0000000U + +extern unsigned int Image$$ER_RW$$Base; +extern unsigned int Image$$ER_RO$$Base; + +/*============================================================================== + * The __low_level_init() function is called after SystemInit. Therefore, the + * external RAM should be configured at this stage if it is used. + */ +void low_level_init(void) +{ + volatile unsigned int rw_region_base; + volatile unsigned int readonly_region_base; + + rw_region_base = (unsigned int)&Image$$ER_RW$$Base; + if (rw_region_base >= MDDR_BASE_ADDRESS) + { + /*-------------------------------------------------------------------------- + * Remap MDDR to address 0x00000000. + */ + SYSREG->ESRAM_CR = 0u; + SYSREG->ENVM_REMAP_BASE_CR = 0u; + SYSREG->DDR_CR = 1u; + } + + readonly_region_base = (unsigned int)&Image$$ER_RO$$Base; + SCB->VTOR = readonly_region_base; +} + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/retarget.c b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/retarget.c new file mode 100644 index 00000000..c43216b3 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/retarget.c @@ -0,0 +1,167 @@ +/******************************************************************************* + * (c) Copyright 2013 Microsemi SoC Products Group. All rights reserved. + * + * Redirection of the standard library I/O to one of the SmartFusion2 + * MMUART. + * + * SVN $Revision: 7375 $ + * SVN $Date: 2015-05-01 19:27:40 +0530 (Fri, 01 May 2015) $ + */ + +/*============================================================================== + * The content of this source file will only be compiled if either one of the + * following two defined symbols are defined in the project settings: + * - MICROSEMI_STDIO_THRU_MMUART0 + * - MICROSEMI_STDIO_THRU_MMUART1 + * + */ +#ifdef MICROSEMI_STDIO_THRU_MMUART0 +#ifndef MICROSEMI_STDIO_THRU_UART +#define MICROSEMI_STDIO_THRU_UART +#endif +#endif /* MICROSEMI_STDIO_THRU_MMUART0 */ + +#ifdef MICROSEMI_STDIO_THRU_MMUART1 +#ifndef MICROSEMI_STDIO_THRU_UART +#define MICROSEMI_STDIO_THRU_UART +#endif +#endif /* MICROSEMI_STDIO_THRU_MMUART1 */ + +/*============================================================================== + * Actual implementation. + */ +#ifdef MICROSEMI_STDIO_THRU_UART + +#include +#include +#ifdef MSCC_NO_RELATIVE_PATHS +#include "m2sxxx.h" +#include "mss_uart.h" +#else +#include "../m2sxxx.h" +#include "../../drivers/mss_uart/mss_uart.h" +#endif + + +/* + * The baud rate will default to 57600 baud if no baud rate is specified though the + * MICROSEMI_STDIO_BAUD_RATE define. + */ +#ifndef MICROSEMI_STDIO_BAUD_RATE +#define MICROSEMI_STDIO_BAUD_RATE MSS_UART_115200_BAUD +#endif + +#ifdef MICROSEMI_STDIO_THRU_MMUART0 +static mss_uart_instance_t * const gp_my_uart = &g_mss_uart0; +#else +static mss_uart_instance_t * const gp_my_uart = &g_mss_uart1; +#endif + +/*============================================================================== + * Flag used to indicate if the UART driver needs to be initialized. + */ +static int g_stdio_uart_init_done = 0; + + +#define LSR_THRE_MASK 0x20u + +/* + * Disable semihosting apis + */ +#pragma import(__use_no_semihosting_swi) + +/*============================================================================== + * sendchar() + */ +int sendchar(int ch) +{ + uint32_t tx_ready; + + /*-------------------------------------------------------------------------- + * Initialize the UART driver if it is the first time this function is + * called. + */ + if(!g_stdio_uart_init_done) + { + MSS_UART_init(gp_my_uart, + MICROSEMI_STDIO_BAUD_RATE, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY); + + g_stdio_uart_init_done = 1; + } + + /*-------------------------------------------------------------------------- + * Wait for UART to become ready to transmit. + */ + do { + tx_ready = gp_my_uart->hw_reg->LSR & LSR_THRE_MASK; + } while(!tx_ready); + + /*-------------------------------------------------------------------------- + * Send next character in the buffer. + */ + gp_my_uart->hw_reg->THR = ch; + + return (ch); +} + +/*============================================================================== + * + */ +struct __FILE { int handle; /* Add whatever you need here */ }; +FILE __stdout; +FILE __stdin; + + +/*============================================================================== + * fputc() + */ +int fputc(int ch, FILE *f) +{ + return (sendchar(ch)); +} + +/*============================================================================== + * fgetc() + */ +int fgetc(FILE *f) +{ + uint8_t rx_size; + uint8_t rx_byte; + + do { + rx_size = MSS_UART_get_rx(gp_my_uart, &rx_byte, 1); + } while(0u == rx_size); + + return rx_byte; +} + +/*============================================================================== + * ferror() + */ +int ferror(FILE *f) +{ + /* Your implementation of ferror */ + return EOF; +} + +/*============================================================================== + * _ttywrch() + */ +void _ttywrch(int ch) +{ + sendchar(ch); +} + +/*============================================================================== + * _sys_exit() + */ +void _sys_exit(int return_code) +{ + for(;;) + { + ; /* endless loop */ + } +} + +#endif /* MICROSEMI_STDIO_THRU_UART */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_esram_debug.sct b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_esram_debug.sct new file mode 100644 index 00000000..fb40547c --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_esram_debug.sct @@ -0,0 +1,49 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 scatter file for debugging code executing in internal eSRAM. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; +; * Some current (April 2015) dev kit memory map possibilities are +; * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- +; * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ +; * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ +; * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- +; * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used +; * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- +; * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- +; * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ +; * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ +; * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- +; * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ +; * --Some older physical memory map possibilities are +; * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- +; * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- +; * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ +; +; Example linker scripts use lowest practicl values so will work accross dev kits +; eNVM=256KB eRAM=64KB External memory = 64MB + +RAM_LOAD 0x20000000 0x10000 +{ + ; First half of RAM allocated to RO Execute and data + ER_RO 0x20000000 0x8000 + { + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + ; Heap size is defined in startup_m2sxxx.s + ; Heap will be added after RW data in ER_RW unless explicitly + ; allocated a meemory region in .sct file + ; Stack size is defined in startup_m2sxxx.s + ; Stack will be added after heap in ER_RW unless explicitly + ; allocated a memory region in .sct file + ; Second half of RAM allocated to RW data, heap and stack + ER_RW 0x20008000 0x8000 + { + .ANY (+RW +ZI) + } +} + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_execute_in_place.sct b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_execute_in_place.sct new file mode 100644 index 00000000..6c0c4e1f --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_execute_in_place.sct @@ -0,0 +1,48 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 scatter file for executing code in internal eNVM. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; +; * Some current (April 2015) dev kit memory map possibilities are +; * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- +; * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ +; * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ +; * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- +; * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used +; * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- +; * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- +; * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ +; * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ +; * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- +; * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ +; * --Some older physical memory map possibilities are +; * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- +; * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- +; * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ +; +; Example linker scripts use lowest practicl values so will work accross dev kits +; eNVM=256KB eRAM=64KB External memory = 64MB + +FLASH_LOAD 0x00000000 0x40000 +{ +; All R only code/data is located in ENVM + ER_RO 0x00000000 0x40000 + { + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } +; Heap size is defined in startup_m2sxxx.s +; Heap will be added after RW data in ER_RW unless explicitly +; allocated a meemory region in .sct file +; Stack size is defined in startup_m2sxxx.s +; Stack will be added after heap in ER_RW unless explicitly +; allocated a memory region in .sct file + ER_RW 0x20000000 0x10000 + { + .ANY (+RW +ZI) + } +} + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_mddr_debug.sct b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_mddr_debug.sct new file mode 100644 index 00000000..02285fd1 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_mddr_debug.sct @@ -0,0 +1,54 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 scatter file for debugging code executing in external MDDR. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; +; * Some current (April 2015) dev kit memory map possibilities are +; * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- +; * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ +; * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ +; * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- +; * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used +; * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- +; * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- +; * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ +; * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ +; * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- +; * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ +; * --Some older physical memory map possibilities are +; * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- +; * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- +; * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ +; +; Example linker scripts use lowest practicl values so will work accross dev kits +; eNVM=256KB eRAM=64KB External memory = 64MB + +; Extern RAM 64M in total +; allocate 1/2 to progam, 1/2 to variable data +RAM_LOAD 0x00000000 0x04000000 +{ +; Total = 64MB (lowest common amount accross dev kits) 32MB - First half of external memory allocated to RO Code + ER_RO 0x00000000 0x02000000 + { + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + ; Heap size is defined in startup_m2sxxx.s + ; Heap will be added after RW data in ER_RW unless explicitly + ; allocated a meemory region in .sct file + ; Stack size is defined in startup_m2sxxx.s + ; Stack will be added after heap in ER_RW unless explicitly + ; allocated a memory region in .sct file as is the case below + STACKS 0x20000000 UNINIT + { + startup_m2sxxx.o (STACK) + } +; 32 MB- Second half of external memory allocated to RW data + ER_RW 0xA2000000 0x02000000 + { + .ANY (+RW +ZI) + } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_relocate_to_external_ram.sct b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_relocate_to_external_ram.sct new file mode 100644 index 00000000..195b211b --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/smartfusion2_relocate_to_external_ram.sct @@ -0,0 +1,74 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 scatter file for relocating code to external RAM. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; +; * Some current (April 2015) dev kit memory map possibilities are +; * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- +; * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ +; * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ +; * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- +; * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used +; * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- +; * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- +; * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ +; * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ +; * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- +; * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ +; * --Some older physical memory map possibilities are +; * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- +; * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- +; * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ +; +; Example linker scripts use lowest practicl values so will work accross dev kits +; eNVM=256KB eRAM=64KB External memory = 64MB + +FLASH_LOAD 0x60000000 0x40000 +{ +; All code required on start-up located here before relocation has occured + ER_RO 0x60000000 0x40000 + { + *.o (RESET, +First) + *(InRoot$$Sections) + startup_m2sxxx.o + system_m2sxxx.o + sys_config.o + low_level_init.o + sys_config_SERDESIF_?.o + mscc_post_hw_cfg_init.o + ecc_error_handler.o + } + ; MDDR_RAM 0xA0000000 0x4000000 + ; -MDDR is mapped to address space from 0 on startup + ; This allows the use of cache which is restriced to this area. + ; Code is copied to RAM_EXEC space on startup by boot code. + RAM_EXEC 0x00000000 0x00040000 + { + .ANY (+RO) + } + ; Heap size is defined in startup_m2sxxx.s + ; Heap will be added after RW data in ER_RW unless explicitly + ; allocated a meemory region in .sct file + ; Stack size is defined in startup_m2sxxx.s + ; Stack will be added after heap in ER_RW unless explicitly + ; allocated a memory region in .sct file as is the case below + STACKS 0x20000000 UNINIT + { + startup_m2sxxx.o (STACK) + } +; All internal RAM has been allocatd to the stack +; INTERNAL_RAM 0x20008000 0x10000 +; { +; .ANY (+RW +ZI) +; } + +; MDDR_RAM 0xA0000000 0x4000000 So use top half of this for RW data +; Bottom half has been assigned to R only code already + ER_RW 0xA2000000 0x2000000 + { + .ANY (+RW +ZI) + } +} + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/startup_m2sxxx.s b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/startup_m2sxxx.s new file mode 100644 index 00000000..d59014cb --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_arm/startup_m2sxxx.s @@ -0,0 +1,586 @@ +;******************************************************************************* +; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. +; SmartFusion2 startup code for Keil-MDK. +; +; SmartFusion2 vector table and startup code for ARM tool chain. +; +; SVN $Revision: 7419 $ +; SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ +; + +; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------ + + +; Stack Configuration +; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Stack_Size EQU 0x00001000 + + AREA STACK, NOINIT, READWRITE, ALIGN=3 +stack_start +Stack_Mem SPACE Stack_Size +__initial_sp +stack_end + + +; Heap Configuration +; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> +; + +Heap_Size EQU 0x00000000 + + AREA HEAP, NOINIT, READWRITE, ALIGN=3 +__heap_base +Heap_Mem SPACE Heap_Size +__heap_limit + + + PRESERVE8 + THUMB + + +;=============================================================================== +; Vector Table Mapped to Address 0 at Reset + AREA RESET, DATA, READONLY + EXPORT __Vectors + EXPORT __Vectors_End + EXPORT __Vectors_Size + +__Vectors DCD __initial_sp ; Top of Stack + DCD Reset_Handler ; Reset Handler + DCD NMI_Handler ; NMI Handler + DCD HardFault_Handler ; Hard Fault Handler + DCD MemManage_Handler ; MPU Fault Handler + DCD BusFault_Handler ; Bus Fault Handler + DCD UsageFault_Handler ; Usage Fault Handler + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD 0 ; Reserved + DCD SVC_Handler ; SVCall Handler + DCD DebugMon_Handler ; Debug Monitor Handler + DCD 0 ; Reserved + DCD PendSV_Handler ; PendSV Handler + DCD SysTick_Handler ; SysTick Handler + + ; External Interrupts + DCD WdogWakeup_IRQHandler + DCD RTC_Wakeup_IRQHandler + DCD SPI0_IRQHandler + DCD SPI1_IRQHandler + DCD I2C0_IRQHandler + DCD I2C0_SMBAlert_IRQHandler + DCD I2C0_SMBus_IRQHandler + DCD I2C1_IRQHandler + DCD I2C1_SMBAlert_IRQHandler + DCD I2C1_SMBus_IRQHandler + DCD UART0_IRQHandler + DCD UART1_IRQHandler + DCD EthernetMAC_IRQHandler + DCD DMA_IRQHandler + DCD Timer1_IRQHandler + DCD Timer2_IRQHandler + DCD CAN_IRQHandler + DCD ENVM0_IRQHandler + DCD ENVM1_IRQHandler + DCD ComBlk_IRQHandler + DCD USB_IRQHandler + DCD USB_DMA_IRQHandler + DCD PLL_Lock_IRQHandler + DCD PLL_LockLost_IRQHandler + DCD CommSwitchError_IRQHandler + DCD CacheError_IRQHandler + DCD DDR_IRQHandler + DCD HPDMA_Complete_IRQHandler + DCD HPDMA_Error_IRQHandler + DCD ECC_Error_IRQHandler + DCD MDDR_IOCalib_IRQHandler + DCD FAB_PLL_Lock_IRQHandler + DCD FAB_PLL_LockLost_IRQHandler + DCD FIC64_IRQHandler + DCD FabricIrq0_IRQHandler + DCD FabricIrq1_IRQHandler + DCD FabricIrq2_IRQHandler + DCD FabricIrq3_IRQHandler + DCD FabricIrq4_IRQHandler + DCD FabricIrq5_IRQHandler + DCD FabricIrq6_IRQHandler + DCD FabricIrq7_IRQHandler + DCD FabricIrq8_IRQHandler + DCD FabricIrq9_IRQHandler + DCD FabricIrq10_IRQHandler + DCD FabricIrq11_IRQHandler + DCD FabricIrq12_IRQHandler + DCD FabricIrq13_IRQHandler + DCD FabricIrq14_IRQHandler + DCD FabricIrq15_IRQHandler + DCD GPIO0_IRQHandler + DCD GPIO1_IRQHandler + DCD GPIO2_IRQHandler + DCD GPIO3_IRQHandler + DCD GPIO4_IRQHandler + DCD GPIO5_IRQHandler + DCD GPIO6_IRQHandler + DCD GPIO7_IRQHandler + DCD GPIO8_IRQHandler + DCD GPIO9_IRQHandler + DCD GPIO10_IRQHandler + DCD GPIO11_IRQHandler + DCD GPIO12_IRQHandler + DCD GPIO13_IRQHandler + DCD GPIO14_IRQHandler + DCD GPIO15_IRQHandler + DCD GPIO16_IRQHandler + DCD GPIO17_IRQHandler + DCD GPIO18_IRQHandler + DCD GPIO19_IRQHandler + DCD GPIO20_IRQHandler + DCD GPIO21_IRQHandler + DCD GPIO22_IRQHandler + DCD GPIO23_IRQHandler + DCD GPIO24_IRQHandler + DCD GPIO25_IRQHandler + DCD GPIO26_IRQHandler + DCD GPIO27_IRQHandler + DCD GPIO28_IRQHandler + DCD GPIO29_IRQHandler + DCD GPIO30_IRQHandler + DCD GPIO31_IRQHandler + +__Vectors_End + +__Vectors_Size EQU __Vectors_End - __Vectors + +;=============================================================================== +; Reset Handler +; + AREA |.text|, CODE, READONLY + +Reset_Handler PROC + EXPORT Reset_Handler [WEAK] + IMPORT SystemInit + IMPORT low_level_init + IMPORT __main + + ;--------------------------------------------------------------- + ; Initialize stack RAM content to initialize the error detection + ; and correction (EDAC). This is done if EDAC is enabled for the + ; eSRAM blocks or the ECC/SECDED is enabled for the MDDR. + ; Register R11 is used to keep track of the RAM intialization + ; decision outcome for later use for heap RAM initialization at + ; the end of the startup code. + ; Please note that the stack has to be located in eSRAM at this + ; point and cannot be located in MDDR since MDDR is not available + ; at this point. + ; The bits of the content of register R11 have the foolwing + ; meaning: + ; reg11[0]: eSRAM EDAC enabled + ; reg11[1]: MDDR ECC/SECDED enabled + ; + MOV R11, #0 + LDR R0, SF2_MDDR_MODE_CR + LDR R0, [R0] + LDR R1, SF2_EDAC_CR + LDR R1, [R1] + AND R1, R1, #3 + AND R0, R0, #0x1C + CMP R0, #0x14 + BNE check_esram_edac + ORR R11, R11, #2 +check_esram_edac + CMP R1, #0 + BEQ check_stack_init + ORR R11, R11, #1 +check_stack_init + CMP R11, #0 + BEQ call_system_init +clear_stack + LDR R0, =stack_start + LDR R1, =stack_end + LDR R2, RAM_INIT_PATTERN + BL fill_memory ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + + ;--------------------------------------------------------------- + ; Call SystemInit() to perform Libero specified configuration. + ; +call_system_init + LDR R0, =SystemInit + BLX R0 + LDR R0, =low_level_init + BLX R0 + + ;--------------------------------------------------------------- + ; Modify MDDR configuration if ECC/SECDED is enabled for MDDR. + ; Enable write combining on MDDR bridge, disable non-bufferable + ; regions. + ; +adjust_mddr_cfg + AND R10, R11, #0x2 + CMP R10, #0 + BEQ branch_to_main + LDR R0, SF2_DDRB_NB_SIZE + LDR R1, SF2_DDRB_CR + LDR R2, [R0] + LDR R3, [R1] + push {R0, R1, R2, R3} + MOV R2, #0 + MOV R3, #0xFF + STR R2, [R0] + STR R3, [R1] + + ; -------------------------------------------------------------- + ; Initialize heap RAM content to initialize the error detection + ; and correction (EDAC). We use the decision made earlier in the + ; startup code of whether or not the stack RAM should be + ; initialized. This decision is held in register R11. A non-zero + ; value indicates that the RAM content should be initialized. + ; +clear_heap + CMP R11, #0 + BEQ branch_to_main + LDR R0, =__heap_base + LDR R1, =__heap_limit + LDR R2, HEAP_INIT_PATTERN + BL fill_memory ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + + ;--------------------------------------------------------------- + ; Branch to __main + ; +branch_to_main + LDR R0, =__main + BX R0 + ENDP + +SF2_EDAC_CR DCD 0x40038038 +SF2_DDRB_NB_SIZE DCD 0x40038030 +SF2_DDRB_CR DCD 0x40038034 +SF2_MDDR_MODE_CR DCD 0x40020818 +RAM_INIT_PATTERN DCD 0x00000000 +HEAP_INIT_PATTERN DCD 0x00000000 + +;------------------------------------------------------------------------------ +; * fill_memory. +; * @brief Fills memory with Pattern contained in r2 +; * This routine uses the stmne instruction to copy 4 words at a time which is very efficient +; * The instruction can only write to word aligned memory, hence the code at the start and end of this routine +; * to handle possible unaligned bytes at start and end. +; * +; * @param param1 r0: start address +; * @param param2 r1: end address +; * @param param3 r2: FILL PATTETN +; * +; * @note note: Most efficient if memory aligned. Linker ALIGN(4) command +; * should be used as per example linker scripts +; * Stack is not used in this routine +; * register contents r4, r5, r6, r7, r8, r9, will are used and will be returned undefined +; * @return none - Used Registers are not preserved +; */ + +fill_memory PROC + ;push {r4, r5, r6, r7, r8, r9, lr} We will not use stack as may be not available */ + cmp r0, r1 + beq fill_memory_exit ; Exit early if source and destination the same */ + ; copy non-aligned bytes at the start */ + and.w r6, r0, #3 ; see if non-alaigned bytes at the start */ + cmp r6, #0 + beq fill_memory_end_start ; no spare bytes at start, continue */ + mov r5, #4 + sub.w r4, r5, r6 ; now have number of non-aligned bytes in r4 */ + mov r7, #8 + mul r8, r7, r6 ; calculate number of shifts required to initalise pattern for non-aligned bytes */ + mov r9, r2 ; copy pattern */ + ror r9, r9, r8 ; Rotate right to keep pattern consistent */ +fill_memory_spare_bytes_start ; From above, R0 contains source address, R1 contains destination address */ + cmp r4, #0 ; no spare bytes at end- end now */ + beq fill_memory_end_start + strb r9, [r0] ; fill byte */ + ror.w r9, r9, r7 ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 ; add one to address */ + subs r4, r4, #1 ; subtract one from byte count 1 */ + b fill_memory_spare_bytes_start +fill_memory_end_start + mov r6, #0 + mov r7, r1 ; save end address */ + subs r1, r1, r0 ; Calculate number of bytes to fill */ + mov r8,r1 ; Save copy of byte count */ + asrs r1,r1, #4 ; Div by 16 to get number of chunks to move */ + mov r9, r2 ; copy pattern */ + mov r4, r2 ; copy pattern */ + mov r5, r2 ; copy pattern */ + cmp r1, r6 ; compare to see if all chunks copied */ + beq fill_memory_spare_bytes_end +fill_memory_loop + it ne + stmne r0!, {r2, r4, r5, r9} ; copy pattern- note: stmne instruction must me word aligned (address in r0) */ + add.w r6, r6, #1 ; use Thumb2- make sure condition code reg. not updated */ + cmp r1, r6 ; compare to see if all chunks copied */ + bne fill_memory_loop +fill_memory_spare_bytes_end ; copy spare bytes at the end if any */ + and.w r8, r8, #15 ; get spare bytes --check can you do an ands? */ +fill_memory_spare_end_loop ; From above, R0 contains source address, R1 contains destination address */ + cmp r8, #0 ; no spare bytes at end- end now */ + beq fill_memory_exit + strb r2, [r0] + ror.w r2, r2, #8 ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 ; add one to address */ + subs r8, r8, #1 ; subtract one from byte count 1 */ + b fill_memory_spare_end_loop +fill_memory_exit + bx lr ; We will not use pop as stack may be not available */ + ENDP + + + +;=============================================================================== +; Dummy Exception Handlers (infinite loops which can be modified) + +NMI_Handler PROC + EXPORT NMI_Handler [WEAK] + B . + ENDP +HardFault_Handler\ + PROC + EXPORT HardFault_Handler [WEAK] + B . + ENDP +MemManage_Handler\ + PROC + EXPORT MemManage_Handler [WEAK] + B . + ENDP +BusFault_Handler\ + PROC + EXPORT BusFault_Handler [WEAK] + B . + ENDP +UsageFault_Handler\ + PROC + EXPORT UsageFault_Handler [WEAK] + B . + ENDP +SVC_Handler PROC + EXPORT SVC_Handler [WEAK] + B . + ENDP +DebugMon_Handler\ + PROC + EXPORT DebugMon_Handler [WEAK] + B . + ENDP +PendSV_Handler PROC + EXPORT PendSV_Handler [WEAK] + B . + ENDP +SysTick_Handler PROC + EXPORT SysTick_Handler [WEAK] + B . + ENDP + +Default_Handler PROC + + EXPORT WdogWakeup_IRQHandler [WEAK] + EXPORT RTC_Wakeup_IRQHandler [WEAK] + EXPORT SPI0_IRQHandler [WEAK] + EXPORT SPI1_IRQHandler [WEAK] + EXPORT I2C0_IRQHandler [WEAK] + EXPORT I2C0_SMBAlert_IRQHandler [WEAK] + EXPORT I2C0_SMBus_IRQHandler [WEAK] + EXPORT I2C1_IRQHandler [WEAK] + EXPORT I2C1_SMBAlert_IRQHandler [WEAK] + EXPORT I2C1_SMBus_IRQHandler [WEAK] + EXPORT UART0_IRQHandler [WEAK] + EXPORT UART1_IRQHandler [WEAK] + EXPORT EthernetMAC_IRQHandler [WEAK] + EXPORT DMA_IRQHandler [WEAK] + EXPORT Timer1_IRQHandler [WEAK] + EXPORT Timer2_IRQHandler [WEAK] + EXPORT CAN_IRQHandler [WEAK] + EXPORT ENVM0_IRQHandler [WEAK] + EXPORT ENVM1_IRQHandler [WEAK] + EXPORT ComBlk_IRQHandler [WEAK] + EXPORT USB_IRQHandler [WEAK] + EXPORT USB_DMA_IRQHandler [WEAK] + EXPORT PLL_Lock_IRQHandler [WEAK] + EXPORT PLL_LockLost_IRQHandler [WEAK] + EXPORT CommSwitchError_IRQHandler [WEAK] + EXPORT CacheError_IRQHandler [WEAK] + EXPORT DDR_IRQHandler [WEAK] + EXPORT HPDMA_Complete_IRQHandler [WEAK] + EXPORT HPDMA_Error_IRQHandler [WEAK] + EXPORT ECC_Error_IRQHandler [WEAK] + EXPORT MDDR_IOCalib_IRQHandler [WEAK] + EXPORT FAB_PLL_Lock_IRQHandler [WEAK] + EXPORT FAB_PLL_LockLost_IRQHandler [WEAK] + EXPORT FIC64_IRQHandler [WEAK] + EXPORT FabricIrq0_IRQHandler [WEAK] + EXPORT FabricIrq1_IRQHandler [WEAK] + EXPORT FabricIrq2_IRQHandler [WEAK] + EXPORT FabricIrq3_IRQHandler [WEAK] + EXPORT FabricIrq4_IRQHandler [WEAK] + EXPORT FabricIrq5_IRQHandler [WEAK] + EXPORT FabricIrq6_IRQHandler [WEAK] + EXPORT FabricIrq7_IRQHandler [WEAK] + EXPORT FabricIrq8_IRQHandler [WEAK] + EXPORT FabricIrq9_IRQHandler [WEAK] + EXPORT FabricIrq10_IRQHandler [WEAK] + EXPORT FabricIrq11_IRQHandler [WEAK] + EXPORT FabricIrq12_IRQHandler [WEAK] + EXPORT FabricIrq13_IRQHandler [WEAK] + EXPORT FabricIrq14_IRQHandler [WEAK] + EXPORT FabricIrq15_IRQHandler [WEAK] + EXPORT GPIO0_IRQHandler [WEAK] + EXPORT GPIO1_IRQHandler [WEAK] + EXPORT GPIO2_IRQHandler [WEAK] + EXPORT GPIO3_IRQHandler [WEAK] + EXPORT GPIO4_IRQHandler [WEAK] + EXPORT GPIO5_IRQHandler [WEAK] + EXPORT GPIO6_IRQHandler [WEAK] + EXPORT GPIO7_IRQHandler [WEAK] + EXPORT GPIO8_IRQHandler [WEAK] + EXPORT GPIO9_IRQHandler [WEAK] + EXPORT GPIO10_IRQHandler [WEAK] + EXPORT GPIO11_IRQHandler [WEAK] + EXPORT GPIO12_IRQHandler [WEAK] + EXPORT GPIO13_IRQHandler [WEAK] + EXPORT GPIO14_IRQHandler [WEAK] + EXPORT GPIO15_IRQHandler [WEAK] + EXPORT GPIO16_IRQHandler [WEAK] + EXPORT GPIO17_IRQHandler [WEAK] + EXPORT GPIO18_IRQHandler [WEAK] + EXPORT GPIO19_IRQHandler [WEAK] + EXPORT GPIO20_IRQHandler [WEAK] + EXPORT GPIO21_IRQHandler [WEAK] + EXPORT GPIO22_IRQHandler [WEAK] + EXPORT GPIO23_IRQHandler [WEAK] + EXPORT GPIO24_IRQHandler [WEAK] + EXPORT GPIO25_IRQHandler [WEAK] + EXPORT GPIO26_IRQHandler [WEAK] + EXPORT GPIO27_IRQHandler [WEAK] + EXPORT GPIO28_IRQHandler [WEAK] + EXPORT GPIO29_IRQHandler [WEAK] + EXPORT GPIO30_IRQHandler [WEAK] + EXPORT GPIO31_IRQHandler [WEAK] + + +WdogWakeup_IRQHandler +RTC_Wakeup_IRQHandler +SPI0_IRQHandler +SPI1_IRQHandler +I2C0_IRQHandler +I2C0_SMBAlert_IRQHandler +I2C0_SMBus_IRQHandler +I2C1_IRQHandler +I2C1_SMBAlert_IRQHandler +I2C1_SMBus_IRQHandler +UART0_IRQHandler +UART1_IRQHandler +EthernetMAC_IRQHandler +DMA_IRQHandler +Timer1_IRQHandler +Timer2_IRQHandler +CAN_IRQHandler +ENVM0_IRQHandler +ENVM1_IRQHandler +ComBlk_IRQHandler +USB_IRQHandler +USB_DMA_IRQHandler +PLL_Lock_IRQHandler +PLL_LockLost_IRQHandler +CommSwitchError_IRQHandler +CacheError_IRQHandler +DDR_IRQHandler +HPDMA_Complete_IRQHandler +HPDMA_Error_IRQHandler +ECC_Error_IRQHandler +MDDR_IOCalib_IRQHandler +FAB_PLL_Lock_IRQHandler +FAB_PLL_LockLost_IRQHandler +FIC64_IRQHandler +FabricIrq0_IRQHandler +FabricIrq1_IRQHandler +FabricIrq2_IRQHandler +FabricIrq3_IRQHandler +FabricIrq4_IRQHandler +FabricIrq5_IRQHandler +FabricIrq6_IRQHandler +FabricIrq7_IRQHandler +FabricIrq8_IRQHandler +FabricIrq9_IRQHandler +FabricIrq10_IRQHandler +FabricIrq11_IRQHandler +FabricIrq12_IRQHandler +FabricIrq13_IRQHandler +FabricIrq14_IRQHandler +FabricIrq15_IRQHandler +GPIO0_IRQHandler +GPIO1_IRQHandler +GPIO2_IRQHandler +GPIO3_IRQHandler +GPIO4_IRQHandler +GPIO5_IRQHandler +GPIO6_IRQHandler +GPIO7_IRQHandler +GPIO8_IRQHandler +GPIO9_IRQHandler +GPIO10_IRQHandler +GPIO11_IRQHandler +GPIO12_IRQHandler +GPIO13_IRQHandler +GPIO14_IRQHandler +GPIO15_IRQHandler +GPIO16_IRQHandler +GPIO17_IRQHandler +GPIO18_IRQHandler +GPIO19_IRQHandler +GPIO20_IRQHandler +GPIO21_IRQHandler +GPIO22_IRQHandler +GPIO23_IRQHandler +GPIO24_IRQHandler +GPIO25_IRQHandler +GPIO26_IRQHandler +GPIO27_IRQHandler +GPIO28_IRQHandler +GPIO29_IRQHandler +GPIO30_IRQHandler +GPIO31_IRQHandler + B . + + ENDP + +mscc_post_hw_cfg_init PROC + EXPORT mscc_post_hw_cfg_init [WEAK] + BX LR + ENDP + + ALIGN + + +;=============================================================================== +; User Initial Stack & Heap + + IF :DEF:__MICROLIB + + EXPORT __initial_sp + EXPORT __heap_base + EXPORT __heap_limit + + ELSE + + IMPORT __use_two_region_memory + EXPORT __user_initial_stackheap +__user_initial_stackheap + + LDR R0, = Heap_Mem + LDR R1, =(Stack_Mem + Stack_Size) + LDR R2, = (Heap_Mem + Heap_Size) + LDR R3, = Stack_Mem + BX LR + + ALIGN + + ENDIF + + + END diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-envm.ld b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-envm.ld new file mode 100644 index 00000000..547f2865 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-envm.ld @@ -0,0 +1,249 @@ +/******************************************************************************* + * (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. + * + * file name : debug-in-microsemi-smartfusion2-envm.ld + * SmartFusion2 Cortex-M3 linker script for creating a SoftConsole downloadable + * debug image executing in SmartFusion2 internal eNVM. + * + * Some current (April 2015) dev kit memory map possibilities are + * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- + * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ + * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ + * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- + * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used + * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- + * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- + * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ + * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ + * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- + * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ + * --Some older physical memory map possibilities are + * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- + * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- + * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ + * + * Example linker scripts use lowest practicl values so will work accross dev kits + * eNVM=256KB eRAM=64KB External memory = 64MB + * + * On reset, the eNVM region is mapped to 0x00000000 + * This is changed below by setting the __smartfusion2_memory_remap variable as required. + * Options are detailed below. + * + * SVN $Revision: 7419 $ + * SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +GROUP(-lc -lgcc -lm) +OUTPUT_ARCH(arm) +ENTRY(Reset_Handler) +SEARCH_DIR(.) +__DYNAMIC = 0; + +/******************************************************************************* + * Start of board customization. + *******************************************************************************/ +MEMORY +{ + /* + * In general, example LD scripts use lowest common memory footprint + * so will work with all devices. + */ + /* + * WARNING: The words "SOFTCONSOLE", "FLASH", and "USE", the colon ":", and + * the name of the type of flash memory are all in a specific order. + * Please do not modify that comment line, in order to ensure + * debugging of your application will use the flash memory correctly. + */ + + /* SOFTCONSOLE FLASH USE: microsemi-smartfusion2-envm */ + rom (rx) : ORIGIN = 0x60000000, LENGTH = 256k + + /* SmartFusion2 internal eNVM mirrored to 0x00000000 */ + romMirror (rx) : ORIGIN = 0x00000000, LENGTH = 256k + + /* SmartFusion2 internal eSRAM */ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k +} + +RAM_START_ADDRESS = 0x20000000; /* Must be the same value MEMORY region ram ORIGIN above. */ +RAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */ +MAIN_STACK_SIZE = 4k; /* Cortex main stack size. */ +MIN_SIZE_HEAP = 4k; /* needs to be calculated for your application */ + +/******************************************************************************* + * End of board customization. + *******************************************************************************/ + +PROVIDE (__main_stack_start = RAM_START_ADDRESS + RAM_SIZE); +PROVIDE (_estack = __main_stack_start); +PROVIDE (__mirrored_nvm = 1); /* Indicate to startup code that NVM is mirrored to VMA address and no text copy is required. */ + +/* + * Remap instruction for startup code and debugger. + * set __smartfusion2_memory_remap to one of the following: + * 0: remap eNVM to address 0x00000000 Production mode or debugging from eNVM + * 1: remap eSRAM to address 0x00000000 Debugging from eSRAM + * 2: remap external DDR memory to address 0x00000000 Debugging from DDR memory + */ +PROVIDE (__smartfusion2_memory_remap = 0); + +SECTIONS +{ + .vector_table : ALIGN(0x10) + { + __vector_table_load = LOADADDR(.vector_table); + __vector_table_start = .; + __vector_table_vma_base_address = .; /* required by debugger for start address */ + KEEP(*(.isr_vector)) + . = ALIGN(0x10); + _evector_table = .; + } >romMirror AT>rom + + /* all data and code run/used before reloaction must be located here */ + /* When all code in NVRAM, no requirement for this section- but adds clarity when looking at .lst file */ + .boot_code : ALIGN(0x10) + { + *(.boot_code) /* reset handler */ + *system_m2sxxx.o(.text*) /* SystemInit() - called before relocation to RAM so keep in ROM */ + *sys_config.o(.rodata*) + . = ALIGN(0x10); + } >romMirror AT>rom + + .text : ALIGN(0x10) + { + CREATE_OBJECT_SYMBOLS + __text_load = LOADADDR(.text); /* required when copying to RAM */ + __text_start = .; /* required when copying to RAM */ + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + . = ALIGN(4); + /* These are for running static constructors and destructors under ELF. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + KEEP (*(.vector_table)) + KEEP (*(.init)) + KEEP (*(.fini)) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x10); + } >romMirror AT>rom + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >ram AT>rom + __exidx_end = .; + _etext = .; /* required when copying to RAM */ + + .data : ALIGN(0x10) + { + __data_load = LOADADDR(.data); /* used when copying to RAM */ + _sidata = LOADADDR (.data); + __data_start = .; /* used when copying to RAM */ + _sdata = .; + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN (0x10); + _edata = .; /* used when copying to RAM */ + } >ram AT>rom + + .bss : ALIGN(0x10) + { + __bss_start__ = . ; + _sbss = .; + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(0x10); + __bss_end__ = .; + _end = .; + __end = _end; + _ebss = .; + PROVIDE(end = .); + } >ram AT>rom + + .heap : ALIGN(0x10) + { + __heap_start__ = .; + . += MIN_SIZE_HEAP; /* will generate error if this minimum size not available */ + . += ((ABSOLUTE(RAM_START_ADDRESS) + RAM_SIZE - MAIN_STACK_SIZE) - .); /* assumes stack starts after heap */ + _eheap = .; + } >ram + + .stack : ALIGN(0x10) + { + __stack_start__ = .; + . += MAIN_STACK_SIZE; + _estack = .; + } >ram + + .stab 0 (NOLOAD) : + { + *(.stab) + } + + .stabstr 0 (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-esram.ld b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-esram.ld new file mode 100644 index 00000000..4bddc864 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-esram.ld @@ -0,0 +1,248 @@ +/******************************************************************************* + * (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. + * + * file name : debug-in-microsemi-smartfusion2-esram.ld + * SmartFusion2 Cortex-M3 linker script for creating a SoftConsole downloadable + * debug image executing in SmartFusion2 internal eSRAM. + * + * Some current (April 2015) dev kit memory map possibilities are + * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- + * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ + * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ + * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- + * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used + * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- + * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- + * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ + * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ + * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- + * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ + * --Some older physical memory map possibilities are + * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- + * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- + * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ + * + * Example linker scripts use lowest practicl values so will work accross dev kits + * eNVM=256KB eRAM=64KB External memory = 64MB + * + * On reset, the eNVM region is mapped to 0x00000000 + * This is changed below by setting the __smartfusion2_memory_remap variable as required. + * Options are detailed below. + * + * SVN $Revision: 7478 $ + * SVN $Date: 2015-06-18 21:48:18 +0530 (Thu, 18 Jun 2015) $ + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +GROUP(-lc -lgcc -lm) +OUTPUT_ARCH(arm) +ENTRY(Reset_Handler) +SEARCH_DIR(.) +__DYNAMIC = 0; + +/******************************************************************************* + * Start of board customization. + *******************************************************************************/ +MEMORY +{ + /* + * In general, example LD scripts use lowest common memory footprint + * so will work with all devices. + */ + /* + * WARNING: The words "SOFTCONSOLE", "FLASH", and "USE", the colon ":", and + * the name of the type of flash memory are all in a specific order. + * Please do not modify that comment line, in order to ensure + * debugging of your application will use the flash memory correctly. + */ + /* SmartFusion2 internal eSRAM */ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k +} + +RAM_START_ADDRESS = 0x20000000; /* Must be the same value MEMORY region ram ORIGIN above. */ +RAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */ +MAIN_STACK_SIZE = 4k; /* Cortex main stack size. */ +MIN_SIZE_HEAP = 4k; /* needs to be calculated for your application */ + +/* Please note that unassigned RAM will be allocated to the .heap section. */ + +/******************************************************************************* + * End of board customization. + *******************************************************************************/ + +PROVIDE (__main_stack_start = RAM_START_ADDRESS + RAM_SIZE); +PROVIDE (_estack = __main_stack_start); +PROVIDE (__mirrored_nvm = 0); /* Indicate to startup code that NVM is not mirrored to VMA address .text copy is required. */ + + /* + * Remap instruction for start-up code and debugger. + * set __smartfusion2_memory_remap to one of the following: + * 0: remap eNVM to address 0x00000000 Production mode or debugging from eNVM + * 1: remap eSRAM to address 0x00000000 See note 1 below. + * 2: remap external DDR memory to address 0x00000000 Debugging from or production relocate to DDR memory + * note 1: This option should only be used in production mode if required. When debugging using eSRAM, code is not + * relocated and __smartfusion2_memory_remap should be set to option 0. In revision 7419 and below of + * this file, __smartfusion2_memory_remap was set to option 1. This remap was not required and could lead to an issue + * when displaying some invalid memory locations in the debugger using some Libero designs. + * + */ + +PROVIDE (__smartfusion2_memory_remap = 0); + +SECTIONS +{ + .vector_table : ALIGN(0x10) + { + __vector_table_load = LOADADDR(.vector_table); + __vector_table_start = .; + __vector_table_vma_base_address = .; + KEEP(*(.isr_vector)) + . = ALIGN(0x10); + _evector_table = .; + } >ram + + .boot_code : ALIGN(0x10) /* When all code in RAM, no requirement for this section- but adds clarity when looking at .lst file */ + { + *(.boot_code) + . = ALIGN(0x10); + } >ram + + .text : + ALIGN(0x10) + { + CREATE_OBJECT_SYMBOLS + __text_load = LOADADDR(.text); + __text_start = .; + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + . = ALIGN(0x4); + /* These are for running static constructors and destructors under ELF. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + KEEP (*(.vector_table)) + KEEP (*(.init)) + KEEP (*(.fini)) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x10); + } >ram + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >ram + __exidx_end = .; + _etext = .; + PROVIDE(__text_end = .); + + .data : + ALIGN(0x10) + { + __data_load = LOADADDR (.data); + _sidata = LOADADDR (.data); + __data_start = .; + _sdata = .; + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN(0x10); + _edata = .; + } >ram + + .bss : ALIGN(0x10) + { + __bss_start__ = . ; + _sbss = .; + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(0x10); + __bss_end__ = .; + _end = .; + __end = _end; + _ebss = .; + PROVIDE(end = .); + } >ram + + .heap : ALIGN(0x10) + { + __heap_start__ = .; + . += MIN_SIZE_HEAP; /* will generate error if this minimum size not available */ + . += ((ABSOLUTE(RAM_START_ADDRESS) + RAM_SIZE - MAIN_STACK_SIZE) - .); /* assumes stack starts after heap */ + _eheap = .; + } >ram + + .stack : ALIGN(0x10) + { + __stack_start__ = .; + . += MAIN_STACK_SIZE; + _estack = .; + } >ram + + .stab 0 (NOLOAD) : + { + *(.stab) + } + + .stabstr 0 (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.isr_vector) } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-external-ram.ld b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-external-ram.ld new file mode 100644 index 00000000..605623ae --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/debug-in-microsemi-smartfusion2-external-ram.ld @@ -0,0 +1,238 @@ +/******************************************************************************* + * (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. + * + * file name : debug-in-microsemi-smartfusion2-external-ram.ld + * SmartFusion2 Cortex-M3 linker script for creating a SoftConsole downloadable + * debug image executing in external eRAM. + * + * Some current (April 2015) dev kit memory map possibilities are + * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- + * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ + * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ + * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- + * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used + * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- + * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- + * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ + * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ + * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- + * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ + * --Some older physical memory map possibilities are + * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- + * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- + * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ + * + * Example linker scripts use lowest practical values so will work accross dev kits + * eNVM=256KB eRAM=64KB External memory = 64MB + * + * On reset, the eNVM region is mapped to 0x00000000 + * This is changed below by setting the __smartfusion2_memory_remap variable as required. + * Options are detailed below. + * + * SVN $Revision: 7419 $ + * SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ + */ + +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +GROUP(-lc -lgcc -lm) +OUTPUT_ARCH(arm) +ENTRY(Reset_Handler) +SEARCH_DIR(.) +__DYNAMIC = 0; + +/******************************************************************************* + * Start of board customization. + *******************************************************************************/ +MEMORY +{ + /* + * In general, example LD scripts use lowest common memory footprint + * accross dev boards so will work with all devices. Currently this is 64MB + * Program and data space is split evenly in this example 32MB each + */ + /* SmartFusion2 internal eSRAM */ + esram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k + + /* SmartFusion2 development board external RAM */ + external_ram (rwx) : ORIGIN = 0x00000000, LENGTH = 32m + + /* External MDDR RAM used for data section. */ + /* Must be enough room allocated for data section between 0xA0000000 and data_external_ram */ + data_external_ram (rw) : ORIGIN = 0xA2000000, LENGTH = 32m +} + +ESRAM_START_ADDRESS = 0x20000000; /* Must be the same value MEMORY region ram ORIGIN above. */ +ESRAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */ +MAIN_STACK_SIZE = 64k; /* Cortex main stack size. */ +MIN_SIZE_HEAP = 64k; /* needs to be calculated for your application */ +TOP_OF_MDDR = 0xA4000000; /* Top address of the external MDDR memory. */ + +/******************************************************************************* + * End of board customization. + *******************************************************************************/ +/*PROVIDE (__main_ram_size = ESRAM_SIZE); */ +PROVIDE (__main_stack_start = ESRAM_START_ADDRESS + ESRAM_SIZE); +PROVIDE (__process_stack_start = __main_stack_start - MAIN_STACK_SIZE); +PROVIDE (_estack = __main_stack_start); +PROVIDE (__mirrored_nvm = 0); /* Indicate to startup code that NVM is not mirrored to VMA address .text copy is required. */ + +/* + * Remap instruction for startup code and debugger. + * set __smartfusion2_memory_remap to one of the following: + * 0: remap eNVM to address 0x00000000 Production mode or debugging from eNVM + * 1: remap eSRAM to address 0x00000000 Debugging from eSRAM + * 2: remap external DDR memory to address 0x00000000 Debugging from DDR memory + */ +PROVIDE (__smartfusion2_memory_remap = 2); + +SECTIONS +{ + .vector_table : ALIGN(0x10) + { + __vector_table_load = LOADADDR(.vector_table); + __vector_table_start = .; + __vector_table_vma_base_address = .; /* required by debugger for start address */ + KEEP(*(.isr_vector)) + . = ALIGN(0x10); + _evector_table = .; + } >external_ram + + .text : ALIGN(0x10) + { + CREATE_OBJECT_SYMBOLS + __text_load = LOADADDR(.text); + __text_start = .; + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + . = ALIGN(0x4); + /* These are for running static constructors and destructors under ELF. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + KEEP (*(.vector_table)) + KEEP (*(.init)) + KEEP (*(.fini)) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x10); + } >external_ram + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >external_ram + __exidx_end = .; + _etext = .; + PROVIDE(__text_end = .); + + .data : ALIGN(0x10) + { + __data_load = LOADADDR (.data); + _sidata = LOADADDR (.data); + __data_start = .; + _sdata = .; + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN(0x10); + _edata = .; + } >data_external_ram + + .bss : ALIGN(0x10) + { + __bss_start__ = . ; + _sbss = .; + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(0x10); + __bss_end__ = .; + _end = .; + __end = _end; + _ebss = .; + PROVIDE(end = .); + } >data_external_ram + + .heap : ALIGN(0x10) + { + __heap_start__ = .; + . += MIN_SIZE_HEAP; /* will generate error if this minimum size not available */ + . += (ABSOLUTE(TOP_OF_MDDR) - . ); + . = ALIGN(0x10); + _eheap = .; + } >data_external_ram + + .stack : ALIGN(0x10) + { + __stack_start__ = .; + . += MAIN_STACK_SIZE; + . = ALIGN(0x10); + _estack = .; + } >esram + + .stab 0 (NOLOAD) : + { + *(.stab) + } + + .stabstr 0 (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) *(.isr_vector) } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-execute-in-place.ld b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-execute-in-place.ld new file mode 100644 index 00000000..a7a2d744 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-execute-in-place.ld @@ -0,0 +1,241 @@ +/******************************************************************************* + * (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. + * + * file name : production-smartfusion2-execute-in-place.ld + * SmartFusion2 Cortex-M3 linker script for creating a SoftConsole downloadable + * image executing in SmartFusion2 internal eNVM. + * + * Some current (April 2015) dev kit memory map possibilities are + * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- + * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ + * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ + * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- + * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used + * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- + * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- + * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ + * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ + * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- + * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ + * --Some older physical memory map possibilities are + * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- + * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- + * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ + * + * Example linker scripts use lowest practicl values so will work accross dev kits + * eNVM=256KB eRAM=64KB External memory = 64MB + * + * On reset, the eNVM region is mapped to 0x00000000 + * This is changed below by setting the __smartfusion2_memory_remap variable as required. + * Options are detailed below. + * + * SVN $Revision: 7454 $ + * SVN $Date: 2015-06-08 20:28:07 +0530 (Mon, 08 Jun 2015) $ + */ +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +GROUP(-lc -lgcc -lm) +OUTPUT_ARCH(arm) +ENTRY(Reset_Handler) +SEARCH_DIR(.) +__DYNAMIC = 0; + +/******************************************************************************* + * Start of board customization. + *******************************************************************************/ +MEMORY +{ + /* + * In general, example LD scripts use lowest common memory footprint + * so will work with all devices. + */ + /* + * WARNING: The words "SOFTCONSOLE", "FLASH", and "USE", the colon ":", and + * the name of the type of flash memory are all in a specific order. + * Please do not modify that comment line, in order to ensure + * debugging of your application will use the flash memory correctly. + */ + + /* SOFTCONSOLE FLASH USE: microsemi-smartfusion2-envm */ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 256k + + /* SmartFusion2 internal eSRAM */ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k +} + +RAM_START_ADDRESS = 0x20000000; /* Must be the same value MEMORY region ram ORIGIN above. */ +RAM_SIZE = 64k; /* Must be the same value MEMORY region ram LENGTH above. */ +MAIN_STACK_SIZE = 4k; /* Cortex main stack size. */ +MIN_SIZE_HEAP = 4k; /* needs to be calculated for your application */ + +/******************************************************************************* + * End of board customization. + *******************************************************************************/ + +PROVIDE (__main_stack_start = RAM_START_ADDRESS + RAM_SIZE); +PROVIDE (__process_stack_start = __main_stack_start - MAIN_STACK_SIZE); +PROVIDE (_estack = __main_stack_start); +PROVIDE (__mirrored_nvm = 0); /* Indicate to startup code that NVM is not mirrored to VMA address .text copy is required. */ + +/* + * Remap instruction for startup code and debugger: + * 0: remap eNVM to address 0x00000000 + * 1: remap eSRAM to address 0x00000000 + * 2: remap external DDR memory to address 0x00000000 + */ +PROVIDE (__smartfusion2_memory_remap = 0); + +SECTIONS +{ + .vector_table : + { + __vector_table_load = LOADADDR(.vector_table); + __vector_table_start = .; + __vector_table_vma_base_address = .; + KEEP(*(.isr_vector)) + . = ALIGN(0x10); + _evector_table = .; + } >rom + + .boot_code : ALIGN(0x10) /* When all code in NVRAM, no requirement for this section- but adds clarity when looking at .lst file */ + { + *(.boot_code) + . = ALIGN(0x10); + } >rom + + .text : ALIGN(0x10) + { + CREATE_OBJECT_SYMBOLS + __text_load = LOADADDR(.text); + __text_start = .; + + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + . = ALIGN(0x4); + /* These are for running static constructors and destructors under ELF. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + KEEP (*(.vector_table)) + KEEP (*(.init)) + KEEP (*(.fini)) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x10); + } >rom + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >rom + __exidx_end = .; + _etext = .; + + .data : ALIGN(0x10) + { + __data_load = LOADADDR(.data); + _sidata = LOADADDR (.data); + __data_start = .; + _sdata = .; + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN(0x10); + _edata = .; + } >ram AT>rom + + .bss : ALIGN(0x10) + { + __bss_start__ = . ; + _sbss = .; + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(0x10); + __bss_end__ = .; + _end = .; + __end = _end; + _ebss = .; + PROVIDE(end = .); + } >ram AT>rom + + .heap : ALIGN(0x10) + { + __heap_start__ = .; + . += MIN_SIZE_HEAP; /* will generate error if this minimum size not available */ + . += ((ABSOLUTE(RAM_START_ADDRESS) + RAM_SIZE - MAIN_STACK_SIZE) - .); /* assumes stack starts after heap */ + _eheap = .; + } >ram + + .stack : ALIGN(0x10) + { + __stack_start__ = .; + . += MAIN_STACK_SIZE; + _estack = .; + } >ram + + .stab 0 (NOLOAD) : + { + *(.stab) + } + + .stabstr 0 (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-relocate-to-external-ram.ld b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-relocate-to-external-ram.ld new file mode 100644 index 00000000..e94cb53f --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/production-smartfusion2-relocate-to-external-ram.ld @@ -0,0 +1,260 @@ +/******************************************************************************* + * (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved. + * + * file name : production-smartfusion2-relocate-to-external-ram.ld + * SmartFusion2 Cortex-M3 linker script for creating a SoftConsole downloadable + * image which is copied from internal eNVM to external RAM during boot-up. + * + * Some current (April 2015) dev kit memory map possibilities are + * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment--------------- + * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------ + * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------ + * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount-- + * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used + * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits----------- + * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits----------- + * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------ + * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------ + * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit----- + * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------ + * --Some older physical memory map possibilities are + * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment-------------- + * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit-------------- + * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------ + * + * Example linker scripts use lowest practicl values so will work accross dev kits + * eNVM=256KB eRAM=64KB External memory = 64MB + * + * On reset, the eNVM region is mapped to 0x00000000 + * This is changed below by setting the __smartfusion2_memory_remap variable as required. + * Options are detailed below. + * + * SVN $Revision: 7419 $ + * SVN $Date: 2015-05-15 21:20:21 +0530 (Fri, 15 May 2015) $ + */ +OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") +GROUP(-lc -lgcc -lm) +OUTPUT_ARCH(arm) +ENTRY(Reset_Handler) +SEARCH_DIR(.) +__DYNAMIC = 0; + +/******************************************************************************* + * Start of board customization. + *******************************************************************************/ +MEMORY +{ + /* + * In general, example LD scripts use lowest common memory footprint + * so will work with all devices. + */ + /* + * WARNING: The words "SOFTCONSOLE", "FLASH", and "USE", the colon ":", and + * the name of the type of flash memory are all in a specific order. + * Please do not modify that comment line, in order to ensure + * debugging of your application will use the flash memory correctly. + */ + + /* SOFTCONSOLE FLASH USE: microsemi-smartfusion2-envm */ + rom (rx) : ORIGIN = 0x60000000, LENGTH = 256k + + /* External MDDR RAM used for data section. */ + /* 0xA0000000 where external memory starts */ + /* first 0x00FFFFF reserved for relocated progam */ + /* Locate external RX data above reserved program area */ + /* !!! This must not overlap with external_ram when MDDR is remapped to 0x00000000.!!! */ + data_external_ram (rw) : ORIGIN = 0xA2000000, LENGTH = 32m + /* SmartFusion2 development board external RAM */ + external_ram (rwx) : ORIGIN = 0x00000000, LENGTH = 32m + + /* SmartFusion2 internal eSRAM */ + esram (rwx) : ORIGIN = 0x20000000, LENGTH = 64k + +} + +ESRAM_START_ADDRESS = 0x20000000; /* Must be the same value as MEMORY region esram ORIGIN above. */ +ESRAM_SIZE = 64k; /* Must be the same value as MEMORY region esram LENGTH above. */ +MAIN_STACK_SIZE = 64k; /* Cortex main stack size. */ +MIN_SIZE_HEAP = 64k; /* needs to be calculated for your application */ +TOP_OF_MDDR = 0xA4000000; /* Top address of the external MDDR memory. */ + +/******************************************************************************* + * End of board customization. + *******************************************************************************/ + +PROVIDE (__main_stack_start = ESRAM_START_ADDRESS + ESRAM_SIZE); +PROVIDE (__process_stack_start = __main_stack_start - MAIN_STACK_SIZE); +PROVIDE (_estack = __main_stack_start); +PROVIDE (__mirrored_nvm = 0); /* Indicate to startup code that NVM is not mirrored to VMA address .text copy is required. */ + +/* + * Remap instruction for startup code and debugger. + * set __smartfusion2_memory_remap to one of the following: + * 0: remap eNVM to address 0x00000000 Production mode or debugging from eNVM + * 1: remap eSRAM to address 0x00000000 Debugging from eSRAM + * 2: remap external DDR memory to address 0x00000000 Debugging from DDR memory + */ +PROVIDE (__smartfusion2_memory_remap = 2); + +SECTIONS +{ + .vector_table : ALIGN(0x10) + { + __vector_table_load = LOADADDR(.vector_table); + __vector_table_start = .; + __vector_table_vma_base_address = .; + KEEP(*(.isr_vector)) + . = ALIGN(0x10); + _evector_table = .; + } >external_ram AT>rom + + /* all data and code run/used before reloaction must be located here */ + .boot_code : ALIGN(0x10) + { + *(.boot_code) /* reset handler */ + *system_m2sxxx.o(.text*) /* SystemInit() - called before relocation to RAM so keep in ROM */ + *sys_config.o(.rodata*) + *sys_config_SERDESIF_?.o(.rodata*) /* data- used to configure external memeory before use */ + /* note ? is a wildcard, can be upto 4 instances */ + *mscc_post_hw_cfg_init.o /* used on startup */ + *ecc_error_handler.o(.text*) /* do we need this???? */ + . = ALIGN(0x10); + } >rom + + .text : ALIGN(0x10) + { + CREATE_OBJECT_SYMBOLS + __text_load = LOADADDR(.text); + __text_start = .; + + *(.text .text.* .gnu.linkonce.t.*) + *(.plt) + *(.gnu.warning) + *(.glue_7t) *(.glue_7) *(.vfp11_veneer) + + . = ALIGN(0x4); + /* These are for running static constructors and destructors under ELF. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + *(.rodata .rodata.* .gnu.linkonce.r.*) + + *(.ARM.extab* .gnu.linkonce.armextab.*) + *(.gcc_except_table) + *(.eh_frame_hdr) + *(.eh_frame) + + KEEP (*(.vector_table)) + KEEP (*(.init)) + KEEP (*(.fini)) + + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x10); + } >external_ram AT>rom + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } >external_ram AT>rom + __exidx_end = .; + _etext = .; + + .data : ALIGN(0x10) + { + __data_load = LOADADDR(.data); + _sidata = LOADADDR (.data); + __data_start = .; + _sdata = .; + KEEP(*(.jcr)) + *(.got.plt) *(.got) + *(.shdata) + *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN(0x10); + _edata = .; + } >data_external_ram AT>rom + + .bss : ALIGN(0x10) + { + __bss_start__ = . ; + _sbss = .; + *(.shbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(0x10); + __bss_end__ = .; + _end = .; + __end = _end; + _ebss = .; + PROVIDE(end = .); + } >data_external_ram AT>rom + + .heap : ALIGN(0x10) + { + __heap_start__ = .; + . += MIN_SIZE_HEAP; /* will generate error if this minimum size not available */ + . += (ABSOLUTE(TOP_OF_MDDR) - . ); + _eheap = .; + } >data_external_ram + + .stack : ALIGN(0x10) + { + __stack_start__ = .; + . += MAIN_STACK_SIZE; + _estack = .; + } >esram + + .stab 0 (NOLOAD) : + { + *(.stab) + } + + .stabstr 0 (NOLOAD) : + { + *(.stabstr) + } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } + .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) } + /DISCARD/ : { *(.note.GNU-stack) } +} diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/startup_m2sxxx.S b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/startup_m2sxxx.S new file mode 100644 index 00000000..f1b23ed2 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/startup_gcc/startup_m2sxxx.S @@ -0,0 +1,1297 @@ +/******************************************************************************* + * (c) Copyright 2012-2015 Microsemi SoC Products Group. All rights reserved. + * + * @file startup_m2sxxx.S + * @author Microsemi SoC Products Group + * @brief SmartFusion2 vector table and startup code for CodeSourcery G++. + * + * SVN $Revision: 7424 $ + * SVN $Date: 2015-05-19 21:16:09 +0530 (Tue, 19 May 2015) $ + */ + + .syntax unified + .cpu cortex-m3 + .thumb + +/* #define UNIT_TEST_FILL_MEMORY only uncommented if carring out unit test */ + +/*============================================================================== + * Vector table + */ + .global g_pfnVectors + .section .isr_vector,"ax",%progbits /* added "x" so appears in .lst file even though not executable code- to help in debug process */ + .type g_pfnVectors, %object + .size g_pfnVectors, .-g_pfnVectors + +g_pfnVectors: + .word _estack + .word Reset_Handler + .word NMI_Handler + .word HardFault_Handler + .word MemManage_Handler + .word BusFault_Handler + .word UsageFault_Handler + .word 0 + .word 0 + .word 0 + .word 0 + .word SVC_Handler + .word DebugMon_Handler + .word 0 + .word PendSV_Handler + .word SysTick_Handler + .word WdogWakeup_IRQHandler + .word RTC_Wakeup_IRQHandler + .word SPI0_IRQHandler + .word SPI1_IRQHandler + .word I2C0_IRQHandler + .word I2C0_SMBAlert_IRQHandler + .word I2C0_SMBus_IRQHandler + .word I2C1_IRQHandler + .word I2C1_SMBAlert_IRQHandler + .word I2C1_SMBus_IRQHandler + .word UART0_IRQHandler + .word UART1_IRQHandler + .word EthernetMAC_IRQHandler + .word DMA_IRQHandler + .word Timer1_IRQHandler + .word Timer2_IRQHandler + .word CAN_IRQHandler + .word ENVM0_IRQHandler + .word ENVM1_IRQHandler + .word ComBlk_IRQHandler + .word USB_IRQHandler + .word USB_DMA_IRQHandler + .word PLL_Lock_IRQHandler + .word PLL_LockLost_IRQHandler + .word CommSwitchError_IRQHandler + .word CacheError_IRQHandler + .word DDR_IRQHandler + .word HPDMA_Complete_IRQHandler + .word HPDMA_Error_IRQHandler + .word ECC_Error_IRQHandler + .word MDDR_IOCalib_IRQHandler + .word FAB_PLL_Lock_IRQHandler + .word FAB_PLL_LockLost_IRQHandler + .word FIC64_IRQHandler + .word FabricIrq0_IRQHandler + .word FabricIrq1_IRQHandler + .word FabricIrq2_IRQHandler + .word FabricIrq3_IRQHandler + .word FabricIrq4_IRQHandler + .word FabricIrq5_IRQHandler + .word FabricIrq6_IRQHandler + .word FabricIrq7_IRQHandler + .word FabricIrq8_IRQHandler + .word FabricIrq9_IRQHandler + .word FabricIrq10_IRQHandler + .word FabricIrq11_IRQHandler + .word FabricIrq12_IRQHandler + .word FabricIrq13_IRQHandler + .word FabricIrq14_IRQHandler + .word FabricIrq15_IRQHandler + .word GPIO0_IRQHandler + .word GPIO1_IRQHandler + .word GPIO2_IRQHandler + .word GPIO3_IRQHandler + .word GPIO4_IRQHandler + .word GPIO5_IRQHandler + .word GPIO6_IRQHandler + .word GPIO7_IRQHandler + .word GPIO8_IRQHandler + .word GPIO9_IRQHandler + .word GPIO10_IRQHandler + .word GPIO11_IRQHandler + .word GPIO12_IRQHandler + .word GPIO13_IRQHandler + .word GPIO14_IRQHandler + .word GPIO15_IRQHandler + .word GPIO16_IRQHandler + .word GPIO17_IRQHandler + .word GPIO18_IRQHandler + .word GPIO19_IRQHandler + .word GPIO20_IRQHandler + .word GPIO21_IRQHandler + .word GPIO22_IRQHandler + .word GPIO23_IRQHandler + .word GPIO24_IRQHandler + .word GPIO25_IRQHandler + .word GPIO26_IRQHandler + .word GPIO27_IRQHandler + .word GPIO28_IRQHandler + .word GPIO29_IRQHandler + .word GPIO30_IRQHandler + .word GPIO31_IRQHandler + .word 0 + .word 0 + +/*============================================================================== + * Reset_Handler + * Register r11 is used to keep track of whether we need to initialize RAMs + * because ECC/ SECDED is enabled. + */ + .global Reset_Handler + .section .boot_code,"ax",%progbits + .type Reset_Handler, %function +Reset_Handler: +_start: +/*------------------------------------------------------------------------------ + * Initialize stack RAM content to initialize the error detection and correction + * (EDAC). This is done if EDAC is enabled for the eSRAM blocks or the + * ECC/SECDED is enabled for the MDDR. + * Register r11 is used to keep track of the RAM intialization decision outcome + * for later use for heap RAM initialization at the end of the startup code. + * Please note that the stack has to be located in eSRAM at this point and + * cannot be located in MDDR since MDDR is not available at this point. + * The bits of the content of register r11 have the following meaning: + * reg11[0]: eSRAM EDAC enabled + * reg11[1]: MDDR ECC/SECDED enabled + */ + mov r11, #0 + ldr r0, SF2_MDDR_MODE_CR + ldr r0, [r0] + ldr r1, SF2_EDAC_CR + ldr r1, [r1] + and r1, r1, #3 + and r0, r0, #0x1C + cmp r0, #0x14 + bne check_esram_edac + orr r11, r11, #2 +check_esram_edac: + cmp r1, #0 + beq check_stack_init + orr r11, r11, #1 +check_stack_init: + cmp r11, #0 + beq system_init +clear_stack: + ldr r0, = __stack_start__ + ldr r1, =_estack + ldr r2, RAM_INIT_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + +/*------------------------------------------------------------------------------ + * Call CMSIS system init function. + */ + system_init: + ldr r0, =SystemInit + blx r0 + +/*------------------------------------------------------------------------------ + * Modify MDDR configuration if ECC/SECDED is enabled for MDDR. + * Enable write combining on MDDR bridge, disable non-bufferable regions. + */ + and r10, r11, 0x2 + cmp r10, #0 + beq remap_memory + ldr r0, SF2_DDRB_NB_SIZE + ldr r1, SF2_DDRB_CR + ldr r2, [r0] + ldr r3, [r1] + push {r0, r1, r2, r3} + mov r2, #0 + mov r3, #0xFF + str r2, [r0] + str r3, [r1] + +/*------------------------------------------------------------------------------ + * Perform memory remapping based on the value of __smartfusion2_memory_remap + * set in the linker script. + */ +remap_memory: + ldr r0, =__smartfusion2_memory_remap + ldr r2, =0 + ldr r3, =1 + cmp r0, #2 + bne check_esram_remap + /* + * Remap external RAM to address 0x00000000 + */ + ldr r1, SF2_ESRAM_CR + str r2, [r1] + ldr r1, SF2_ENVM_REMAP_CR + str r2, [r1] + ldr r1, SF2_DDR_CR + str r3, [r1] +check_esram_remap: + cmp r0, #1 + bne check_mirrored_nvm + /* + * Remap internal eSRAM to address 0x00000000 + */ + ldr r1, SF2_DDR_CR + str r2, [r1] + ldr r1, SF2_ENVM_REMAP_CR + str r2, [r1] + ldr r1, SF2_ESRAM_CR + str r3, [r1] + +/*------------------------------------------------------------------------------ + * Check if the executable is built for NVM LMA mirrored to VMA address. + * This is done for debugging executables running out of eNVM with SoftConsole. + * The .text section should not be copied in this case since both the LMA and + * VMA point at the eNVM despite the LMA and VMa having different values. + */ + check_mirrored_nvm: + ldr r0, =__mirrored_nvm + cmp r0, #0 + bne copy_data + +/*------------------------------------------------------------------------------ + * Copy vector table. + */ + ldr r0, =__vector_table_load + ldr r1, =__vector_table_start + ldr r2, =_evector_table + bl block_copy + +/*------------------------------------------------------------------------------ + * Copy code section. + */ +copy_text: + ldr r0, =__text_load + ldr r1, =__text_start + ldr r2, =_etext + bl block_copy + +/*------------------------------------------------------------------------------ + * Copy data section. + */ + + copy_data: + ldr r0, =__data_load + ldr r1, =__data_start + ldr r2, =_edata + bl block_copy + +/*------------------------------------------------------------------------------ + * Clear .bss + */ +clear_bss: + ldr r0, =__bss_start__ + ldr r1, =__bss_end__ + ldr r2, RAM_INIT_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + +#ifdef UNIT_TEST_FILL_MEMORY + bl unit_test_fill_memory +#endif + +/*------------------------------------------------------------------------------ + * Initialize heap RAM content to initialize the error detection and correction + * (EDAC). We use the decision made earlier in the startup code of whether or + * not the stack RAM should be initialized. This decision is held in register + * r11. A non-zero value indicates that the RAM content should be initialized. + */ +clear_heap: + cmp r11, #0 + beq call_glob_ctor + ldr r0, =__heap_start__ + ldr r1, =_eheap + ldr r2, HEAP_INIT_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments uses r4, r5, r6, r7, r8, r9, and does not preserve contents */ + +/*------------------------------------------------------------------------------ + * Restore MDDR configuration. + */ + and r10, r11, 0x2 + cmp r10, #0 + beq call_glob_ctor + pop {r0, r1, r2, r3} + str r2, [r0] + str r3, [r1] + +/*------------------------------------------------------------------------------ + * Call global constructors + */ + /* + * Align to word and use 32-bits LDR instruction to ensure the ADD instruction + * taking PC as argument is aligned on a word boundary. + */ + .align 4 +call_glob_ctor: + ldr.w r0, =__libc_init_array + add lr, pc, #3 + bx r0 + +/*------------------------------------------------------------------------------ + * branch to main. + */ +branch_to_main: + mov r0, #0 /* ; no arguments */ + mov r1, #0 /* ; no argv either */ + ldr pc, =main + +ExitLoop: + B ExitLoop + +/*------------------------------------------------------------------------------ + * block copy. + * + * r0: source address + * r1: target address + * r2: end target address + * + * note: Most efficient if memory aligned. Linker ALIGN(16) command + * should be used as per example linker scripts. + * Note 1: If the memory address in r0 or r1, byte copy routine is used + * Note 2: If r1 < r2, will loop indefinetley to highlight linker issue. + */ +block_copy: + push {r3, r4, r5, r6, r7, r8, lr} + cmp r0, r1 + beq block_copy_exit /* ; Exit early if source and destination the same */ + subs.w r2, r2, r1 /* ; Calculate number of bytes to move */ + bpl block_copy_address_ok /* ; check (end target address) > (target address) => continue */ + b . /* ; halt as critical error- memory map not OK- make it easy to catch in debugger */ +block_copy_address_ok: + /* ; detect if source or target memory addresses unaligned. If so use byte copy routine */ + orr.w r3, r0, r1 + ands.w r3, r3, #3 + beq block_copy_continue +block_copy_byte_copy: + bl block_copy_byte + b block_copy_exit +block_copy_continue: + mov r3, #0 + mov r8,r2 /* ; Save copy of byte count */ + asrs r2,r2, #4 /* ; Div by 16 to get number of chunks to move */ + beq block_copy_byte_copy /* ; need to use byte copy if less than 16 bytes */ +block_copy_loop: + cmp r2, r3 + itt ne + ldmne r0!, {r4, r5, r6, r7} + stmne r1!, {r4, r5, r6, r7} + add.w r3, r3, #1 /* ; use Thumb2- make sure condition code reg. not updated */ + bne block_copy_loop + /* ; copy spare bytes at the end if any */ + and r8, #15 /* ; get spare bytes --check can you do an ands? */ + cmp r8, #0 /* ; no spare bytes at end- end now */ + beq block_copy_exit +copy_spare_bytes: /* ; From above, R0 contains source address, R1 contains destination address */ + ldrb r4, [r0] + strb r4, [r1] + add r0, #1 + add r1, #1 + subs r8, r8, #1 + bne copy_spare_bytes +block_copy_exit: + pop {r3, r4, r5, r6, r7, r8, pc} + +/* + * block_copy_byte: used if memory not aligned + * r0: source address + * r1: target address + * r2: number of bytes +*/ +block_copy_byte: + push {r3, lr} + mov r3, #0 +block_copy_byte_loop: /* ; From above, R0 contains source address, R1 contains destination address */ + ldrb r3, [r0] + strb r3, [r1] + add r0, #1 + add r1, #1 + subs r2, r2, #1 + bne block_copy_byte_loop + pop {r3, pc} + +/*;------------------------------------------------------------------------------ +; * fill_memory. +; * @brief Fills memory with Pattern contained in r2 +; * This routine uses the stmne instruction to copy 4 words at a time which is very efficient +; * The instruction can only write to word aligned memory, hence the code at the start and end of this routine +; * to handle possible unaligned bytes at start and end. +; * +; * @param param1 r0: start address +; * @param param2 r1: end address +; * @param param3 r2: FILL PATTETN +; * +; * @note note: Most efficient if memory aligned. Linker ALIGN(4) command +; * should be used as per example linker scripts +; * Stack is not used in this routine +; * register contents r4, r5, r6, r7, r8, r9, will are used and will be returned undefined +; * @return none - Used Registers are not preserved +; */ + +fill_memory: + /* ;push {r4, r5, r6, r7, r8, r9, lr} We will not use stack as may be not available */ + cmp r0, r1 + beq fill_memory_exit /* ; Exit early if source and destination the same */ +/* ; copy non-aligned bytes at the start */ + and.w r6, r0, #3 /* ; see if non-alaigned bytes at the start */ + cmp r6, #0 + beq fill_memory_end_start /* ; no spare bytes at start, continue */ + mov r5, #4 + sub.w r4, r5, r6 /* ; now have number of non-aligned bytes in r4 */ + mov r7, #8 + mul r8, r7, r6 /* ; calculate number of shifts required to initalise pattern for non-aligned bytes */ + mov r9, r2 /* ; copy pattern */ + ror r9, r9, r8 /* ; Rotate right to keep pattern consistent */ +fill_memory_spare_bytes_start: /* ; From above, R0 contains source address, R1 contains destination address */ + cmp r4, #0 /* ; no spare bytes at end- end now */ + beq fill_memory_end_start + strb r9, [r0] /* ; fill byte */ + ror.w r9, r9, r7 /* ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 /* ; add one to address */ + subs r4, r4, #1 /* ; subtract one from byte count 1 */ + b fill_memory_spare_bytes_start +fill_memory_end_start: + mov r6, #0 + mov r7, r1 /* ; save end address */ + subs r1, r1, r0 /* ; Calculate number of bytes to fill */ + mov r8,r1 /* ; Save copy of byte count */ + asrs r1,r1, #4 /* ; Div by 16 to get number of chunks to move */ + mov r9, r2 /* ; copy pattern */ + mov r4, r2 /* ; copy pattern */ + mov r5, r2 /* ; copy pattern */ + cmp r1, r6 /* ; compare to see if all chunks copied */ + beq fill_memory_spare_bytes_end +fill_memory_loop: + it ne + stmne r0!, {r2, r4, r5, r9} /* ; copy pattern- note: stmne instruction must me word aligned (address in r0) */ + add.w r6, r6, #1 /* ; use Thumb2- make sure condition code reg. not updated */ + cmp r1, r6 /* ; compare to see if all chunks copied */ + bne fill_memory_loop +fill_memory_spare_bytes_end: /* ; copy spare bytes at the end if any */ + and.w r8, r8, #15 /* ; get spare bytes --check can you do an ands? */ +fill_memory_spare_end_loop: /* ; From above, R0 contains source address, R1 contains destination address */ + cmp r8, #0 /* ; no spare bytes at end- end now */ + beq fill_memory_exit + strb r2, [r0] + ror.w r2, r2, #8 /* ; Rotate right by one byte for the next time, to keep pattern consistent */ + add r0, r0, #1 /* ; add one to address */ + subs r8, r8, #1 /* ; subtract one from byte count 1 */ + b fill_memory_spare_end_loop +fill_memory_exit: + bx lr /*; We will not use pop as stack may be not available */ + + +/*------------------------------------------------------------------------------ + * unit_test_fill_memory + * calls fills_memory function with various paramaters + * + * r0: start address + * r1: end address + * r2: FILL PATTETN + * + * Debugger used to check filled memeory is as expected. + * Note: Last instruction in this routine deliberatly halts code to prevent accidentle enabeling in + * release code. + */ +#ifdef UNIT_TEST_FILL_MEMORY + MEM_TEST_PATTERN: .word 0x12345678 +unit_test_fill_memory: + push {r0, r1, r2, lr} + ldr r0, = 0x20000100 + ldr r1, = 0x20000200 + ldr r2, MEM_TEST_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments */ + ldr r0, = 0x20000300 /* ; source address */ + ldr r1, = 0x20000400 /* ; dest address */ + ldr r2, = 0x200004FF /* ; end address */ + bl block_copy /* ; copy above */ + /* second test */ + ldr r0, = 0x20003300 + ldr r1, = 0x20003403 + ldr r2, MEM_TEST_PATTERN + bl fill_memory + ldr r0, = 0x20003300 + ldr r1, = 0x20003500 + ldr r2, = 0x20003603 + bl block_copy + /* third test */ + ldr r0, = 0x20000702 + ldr r1, = 0x20000803 + ldr r2, MEM_TEST_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments */ + ldr r0, = 0x20000702 + ldr r1, = 0x20000902 + ldr r2, = 0x20000A03 + bl block_copy + /* fourth test */ + ldr r0, = 0x20000B01 + ldr r1, = 0x20000C03 + ldr r2, MEM_TEST_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments */ + ldr r0, = 0x20000B01 + ldr r1, = 0x20000D01 + ldr r2, = 0x20000E03 + bl block_copy + /* fith test */ + ldr r0, = 0x20002D01 + ldr r1, = 0x20002E01 + ldr r2, MEM_TEST_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments */ + ldr r0, = 0x20002D01 + ldr r1, = 0x20002F01 + ldr r2, = 0x20003001 + bl block_copy + /* sixth test */ + ldr r0, = 0x20001903 + ldr r1, = 0x20001904 + ldr r2, MEM_TEST_PATTERN + bl fill_memory /* ; fill_memory takes r0 - r2 as arguments */ + ldr r0, = 0x20001903 + ldr r1, = 0x20001A03 + ldr r2, = 0x20001A04 + bl block_copy + /* ; final test, note: This one will cause a halt in copy function- as designed */ + ldr r0, = 0x20001903 + ldr r1, = 0x20001A03 + ldr r2, = 0x20000A04 /* ; end address < start address */ + bl block_copy + unit_test_fill_memory_debug: /* ; delibrately wait here, this function only to be used when carrying out test */ + b . /* ; stop debugger here and verify memory as expected in debugger */ + pop {r0, r1, r2, pc} +#endif +/*============================================================================== + * NMI_Handler + */ + .weak NMI_Handler + .type NMI_Handler, %function +NMI_Handler: + B . + +/*============================================================================== + * HardFault_Handler + */ + .weak HardFault_Handler + .type HardFault_Handler, %function +HardFault_Handler: + B . + +/*============================================================================== + * MemManage_Handler + */ + .weak MemManage_Handler + .type MemManage_Handler, %function +MemManage_Handler: + B . + +/*============================================================================== + * BusFault_Handler + */ + .weak BusFault_Handler + .type BusFault_Handler, %function +BusFault_Handler: + B . + +/*============================================================================== + * UsageFault_Handler + */ + .weak UsageFault_Handler + .type UsageFault_Handler, %function +UsageFault_Handler: + B . + +/*============================================================================== + * SVC_Handler + */ + .weak SVC_Handler + .type SVC_Handler, %function +SVC_Handler: + B . + +/*============================================================================== + * DebugMon_Handler + */ + .weak DebugMon_Handler + .type DebugMon_Handler, %function +DebugMon_Handler: + B . + +/*============================================================================== + * PendSV_Handler + */ + .weak PendSV_Handler + .type PendSV_Handler, %function +PendSV_Handler: + B . + +/*============================================================================== + * SysTick_Handler + */ + .weak SysTick_Handler + .type SysTick_Handler, %function +SysTick_Handler: + B . + +/*============================================================================== + * WdogWakeup_IRQHandler + */ + .weak WdogWakeup_IRQHandler + .type WdogWakeup_IRQHandler, %function +WdogWakeup_IRQHandler: + B . + +/*============================================================================== + * RTC_Wakeup_IRQHandler + */ + .weak RTC_Wakeup_IRQHandler + .type RTC_Wakeup_IRQHandler, %function +RTC_Wakeup_IRQHandler: + B . + +/*============================================================================== + * SPI0_IRQHandler + */ + .weak SPI0_IRQHandler + .type SPI0_IRQHandler, %function +SPI0_IRQHandler: + B . + +/*============================================================================== + * SPI1_IRQHandler + */ + .weak SPI1_IRQHandler + .type SPI1_IRQHandler, %function +SPI1_IRQHandler: + B . + +/*============================================================================== + * I2C0_IRQHandler + */ + .weak I2C0_IRQHandler + .type I2C0_IRQHandler, %function +I2C0_IRQHandler: + B . + +/*============================================================================== + * I2C0_SMBAlert_IRQHandler + */ + .weak I2C0_SMBAlert_IRQHandler + .type I2C0_SMBAlert_IRQHandler, %function +I2C0_SMBAlert_IRQHandler: + B . + +/*============================================================================== + * I2C0_SMBus_IRQHandler + */ + .weak I2C0_SMBus_IRQHandler + .type I2C0_SMBus_IRQHandler, %function +I2C0_SMBus_IRQHandler: + B . + +/*============================================================================== + * I2C1_IRQHandler + */ + .weak I2C1_IRQHandler + .type I2C1_IRQHandler, %function +I2C1_IRQHandler: + B . + +/*============================================================================== + * I2C1_SMBAlert_IRQHandler + */ + .weak I2C1_SMBAlert_IRQHandler + .type I2C1_SMBAlert_IRQHandler, %function +I2C1_SMBAlert_IRQHandler: + B . + +/*============================================================================== + * I2C1_SMBus_IRQHandler + */ + .weak I2C1_SMBus_IRQHandler + .type I2C1_SMBus_IRQHandler, %function +I2C1_SMBus_IRQHandler: + B . + +/*============================================================================== + * UART0_IRQHandler + */ + .weak UART0_IRQHandler + .type UART0_IRQHandler, %function +UART0_IRQHandler: + B . + +/*============================================================================== + * UART1_IRQHandler + */ + .weak UART1_IRQHandler + .type UART1_IRQHandler, %function +UART1_IRQHandler: + B . + +/*============================================================================== + * EthernetMAC_IRQHandler + */ + .weak EthernetMAC_IRQHandler + .type EthernetMAC_IRQHandler, %function +EthernetMAC_IRQHandler: + B . + +/*============================================================================== + * DMA_IRQHandler + */ + .weak DMA_IRQHandler + .type DMA_IRQHandler, %function +DMA_IRQHandler: + B . + +/*============================================================================== + * Timer1_IRQHandler + */ + .weak Timer1_IRQHandler + .type Timer1_IRQHandler, %function +Timer1_IRQHandler: + B . + +/*============================================================================== + * Timer2_IRQHandler + */ + .weak Timer2_IRQHandler + .type Timer2_IRQHandler, %function +Timer2_IRQHandler: + B . + +/*============================================================================== + * CAN_IRQHandler + */ + .weak CAN_IRQHandler + .type CAN_IRQHandler, %function +CAN_IRQHandler: + B . + +/*============================================================================== + * ENVM0_IRQHandler + */ + .weak ENVM0_IRQHandler + .type ENVM0_IRQHandler, %function +ENVM0_IRQHandler: + B . + +/*============================================================================== + * ENVM1_IRQHandler + */ + .weak ENVM1_IRQHandler + .type ENVM1_IRQHandler, %function +ENVM1_IRQHandler: + B . + +/*============================================================================== + * ComBlk_IRQHandler + */ + .weak ComBlk_IRQHandler + .type ComBlk_IRQHandler, %function +ComBlk_IRQHandler: + B . + +/*============================================================================== + * USB_IRQHandler + */ + .weak USB_IRQHandler + .type USB_IRQHandler, %function +USB_IRQHandler: + B . + +/*============================================================================== + * USB_DMA_IRQHandler + */ + .weak USB_DMA_IRQHandler + .type USB_DMA_IRQHandler, %function +USB_DMA_IRQHandler: + B . + +/*============================================================================== + * PLL_Lock_IRQHandler + */ + .weak PLL_Lock_IRQHandler + .type PLL_Lock_IRQHandler, %function +PLL_Lock_IRQHandler: + B . + +/*============================================================================== + * PLL_LockLost_IRQHandler + */ + .weak PLL_LockLost_IRQHandler + .type PLL_LockLost_IRQHandler, %function +PLL_LockLost_IRQHandler: + B . + +/*============================================================================== + * CommSwitchError_IRQHandler + */ + .weak CommSwitchError_IRQHandler + .type CommSwitchError_IRQHandler, %function +CommSwitchError_IRQHandler: + B . + +/*============================================================================== + * CacheError_IRQHandler + */ + .weak CacheError_IRQHandler + .type CacheError_IRQHandler, %function +CacheError_IRQHandler: + B . + +/*============================================================================== + * DDR_IRQHandler + */ + .weak DDR_IRQHandler + .type DDR_IRQHandler, %function +DDR_IRQHandler: + B . + +/*============================================================================== + * HPDMA_Complete_IRQHandler + */ + .weak HPDMA_Complete_IRQHandler + .type HPDMA_Complete_IRQHandler, %function +HPDMA_Complete_IRQHandler: + B . + +/*============================================================================== + * HPDMA_Error_IRQHandler + */ + .weak HPDMA_Error_IRQHandler + .type HPDMA_Error_IRQHandler, %function +HPDMA_Error_IRQHandler: + B . + +/*============================================================================== + * ECC_Error_IRQHandler + */ + .weak ECC_Error_IRQHandler + .type ECC_Error_IRQHandler, %function +ECC_Error_IRQHandler: + B . + +/*============================================================================== + * MDDR_IOCalib_IRQHandler + */ + .weak MDDR_IOCalib_IRQHandler + .type MDDR_IOCalib_IRQHandler, %function +MDDR_IOCalib_IRQHandler: + B . + +/*============================================================================== + * FAB_PLL_Lock_IRQHandler + */ + .weak FAB_PLL_Lock_IRQHandler + .type FAB_PLL_Lock_IRQHandler, %function +FAB_PLL_Lock_IRQHandler: + B . + +/*============================================================================== + * FAB_PLL_LockLost_IRQHandler + */ + .weak FAB_PLL_LockLost_IRQHandler + .type FAB_PLL_LockLost_IRQHandler, %function +FAB_PLL_LockLost_IRQHandler: + B . + +/*============================================================================== + * FIC64_IRQHandler + */ + .weak FIC64_IRQHandler + .type FIC64_IRQHandler, %function +FIC64_IRQHandler: + B . + +/*============================================================================== + * FabricIrq0_IRQHandler + */ + .weak FabricIrq0_IRQHandler + .type FabricIrq0_IRQHandler, %function +FabricIrq0_IRQHandler: + B . + +/*============================================================================== + * FabricIrq1_IRQHandler + */ + .weak FabricIrq1_IRQHandler + .type FabricIrq1_IRQHandler, %function +FabricIrq1_IRQHandler: + B . + +/*============================================================================== + * FabricIrq2_IRQHandler + */ + .weak FabricIrq2_IRQHandler + .type FabricIrq2_IRQHandler, %function +FabricIrq2_IRQHandler: + B . + +/*============================================================================== + * FabricIrq3_IRQHandler + */ + .weak FabricIrq3_IRQHandler + .type FabricIrq3_IRQHandler, %function +FabricIrq3_IRQHandler: + B . + +/*============================================================================== + * FabricIrq4_IRQHandler + */ + .weak FabricIrq4_IRQHandler + .type FabricIrq4_IRQHandler, %function +FabricIrq4_IRQHandler: + B . + +/*============================================================================== + * FabricIrq5_IRQHandler + */ + .weak FabricIrq5_IRQHandler + .type FabricIrq5_IRQHandler, %function +FabricIrq5_IRQHandler: + B . + +/*============================================================================== + * FabricIrq6_IRQHandler + */ + .weak FabricIrq6_IRQHandler + .type FabricIrq6_IRQHandler, %function +FabricIrq6_IRQHandler: + B . + +/*============================================================================== + * FabricIrq7_IRQHandler + */ + .weak FabricIrq7_IRQHandler + .type FabricIrq7_IRQHandler, %function +FabricIrq7_IRQHandler: + B . + +/*============================================================================== + * FabricIrq8_IRQHandler + */ + .weak FabricIrq8_IRQHandler + .type FabricIrq8_IRQHandler, %function +FabricIrq8_IRQHandler: + B . + +/*============================================================================== + * FabricIrq9_IRQHandler + */ + .weak FabricIrq9_IRQHandler + .type FabricIrq9_IRQHandler, %function +FabricIrq9_IRQHandler: + B . + +/*============================================================================== + * FabricIrq10_IRQHandler + */ + .weak FabricIrq10_IRQHandler + .type FabricIrq10_IRQHandler, %function +FabricIrq10_IRQHandler: + B . + +/*============================================================================== + * FabricIrq11_IRQHandler + */ + .weak FabricIrq11_IRQHandler + .type FabricIrq11_IRQHandler, %function +FabricIrq11_IRQHandler: + B . + +/*============================================================================== + * FabricIrq12_IRQHandler + */ + .weak FabricIrq12_IRQHandler + .type FabricIrq12_IRQHandler, %function +FabricIrq12_IRQHandler: + B . + +/*============================================================================== + * FabricIrq13_IRQHandler + */ + .weak FabricIrq13_IRQHandler + .type FabricIrq13_IRQHandler, %function +FabricIrq13_IRQHandler: + B . + +/*============================================================================== + * FabricIrq14_IRQHandler + */ + .weak FabricIrq14_IRQHandler + .type FabricIrq14_IRQHandler, %function +FabricIrq14_IRQHandler: + B . + +/*============================================================================== + * FabricIrq15_IRQHandler + */ + .weak FabricIrq15_IRQHandler + .type FabricIrq15_IRQHandler, %function +FabricIrq15_IRQHandler: + B . + +/*============================================================================== + * GPIO0_IRQHandler + */ + .weak GPIO0_IRQHandler + .type GPIO0_IRQHandler, %function +GPIO0_IRQHandler: + B . + +/*============================================================================== + * GPIO1_IRQHandler + */ + .weak GPIO1_IRQHandler + .type GPIO1_IRQHandler, %function +GPIO1_IRQHandler: + B . + +/*============================================================================== + * GPIO2_IRQHandler + */ + .weak GPIO2_IRQHandler + .type GPIO2_IRQHandler, %function +GPIO2_IRQHandler: + B . + +/*============================================================================== + * GPIO3_IRQHandler + */ + .weak GPIO3_IRQHandler + .type GPIO3_IRQHandler, %function +GPIO3_IRQHandler: + B . + +/*============================================================================== + * GPIO4_IRQHandler + */ + .weak GPIO4_IRQHandler + .type GPIO4_IRQHandler, %function +GPIO4_IRQHandler: + B . + +/*============================================================================== + * GPIO5_IRQHandler + */ + .weak GPIO5_IRQHandler + .type GPIO5_IRQHandler, %function +GPIO5_IRQHandler: + B . + +/*============================================================================== + * GPIO6_IRQHandler + */ + .weak GPIO6_IRQHandler + .type GPIO6_IRQHandler, %function +GPIO6_IRQHandler: + B . + +/*============================================================================== + * GPIO7_IRQHandler + */ + .weak GPIO7_IRQHandler + .type GPIO7_IRQHandler, %function +GPIO7_IRQHandler: + B . + +/*============================================================================== + * GPIO8_IRQHandler + */ + .weak GPIO8_IRQHandler + .type GPIO8_IRQHandler, %function +GPIO8_IRQHandler: + B . + +/*============================================================================== + * GPIO9_IRQHandler + */ + .weak GPIO9_IRQHandler + .type GPIO9_IRQHandler, %function +GPIO9_IRQHandler: + B . + +/*============================================================================== + * GPIO10_IRQHandler + */ + .weak GPIO10_IRQHandler + .type GPIO10_IRQHandler, %function +GPIO10_IRQHandler: + B . + +/*============================================================================== + * GPIO11_IRQHandler + */ + .weak GPIO11_IRQHandler + .type GPIO11_IRQHandler, %function +GPIO11_IRQHandler: + B . + +/*============================================================================== + * GPIO12_IRQHandler + */ + .weak GPIO12_IRQHandler + .type GPIO12_IRQHandler, %function +GPIO12_IRQHandler: + B . + +/*============================================================================== + * GPIO13_IRQHandler + */ + .weak GPIO13_IRQHandler + .type GPIO13_IRQHandler, %function +GPIO13_IRQHandler: + B . + +/*============================================================================== + * GPIO14_IRQHandler + */ + .weak GPIO14_IRQHandler + .type GPIO14_IRQHandler, %function +GPIO14_IRQHandler: + B . + +/*============================================================================== + * GPIO15_IRQHandler + */ + .weak GPIO15_IRQHandler + .type GPIO15_IRQHandler, %function +GPIO15_IRQHandler: + B . + +/*============================================================================== + * GPIO16_IRQHandler + */ + .weak GPIO16_IRQHandler + .type GPIO16_IRQHandler, %function +GPIO16_IRQHandler: + B . + +/*============================================================================== + * GPIO17_IRQHandler + */ + .weak GPIO17_IRQHandler + .type GPIO17_IRQHandler, %function +GPIO17_IRQHandler: + B . + +/*============================================================================== + * GPIO18_IRQHandler + */ + .weak GPIO18_IRQHandler + .type GPIO18_IRQHandler, %function +GPIO18_IRQHandler: + B . + +/*============================================================================== + * GPIO19_IRQHandler + */ + .weak GPIO19_IRQHandler + .type GPIO19_IRQHandler, %function +GPIO19_IRQHandler: + B . + +/*============================================================================== + * GPIO20_IRQHandler + */ + .weak GPIO20_IRQHandler + .type GPIO20_IRQHandler, %function +GPIO20_IRQHandler: + B . + +/*============================================================================== + * GPIO21_IRQHandler + */ + .weak GPIO21_IRQHandler + .type GPIO21_IRQHandler, %function +GPIO21_IRQHandler: + B . + +/*============================================================================== + * GPIO22_IRQHandler + */ + .weak GPIO22_IRQHandler + .type GPIO22_IRQHandler, %function +GPIO22_IRQHandler: + B . + +/*============================================================================== + * GPIO23_IRQHandler + */ + .weak GPIO23_IRQHandler + .type GPIO23_IRQHandler, %function +GPIO23_IRQHandler: + B . + +/*============================================================================== + * GPIO24_IRQHandler + */ + .weak GPIO24_IRQHandler + .type GPIO24_IRQHandler, %function +GPIO24_IRQHandler: + B . + +/*============================================================================== + * GPIO25_IRQHandler + */ + .weak GPIO25_IRQHandler + .type GPIO25_IRQHandler, %function +GPIO25_IRQHandler: + B . + +/*============================================================================== + * GPIO26_IRQHandler + */ + .weak GPIO26_IRQHandler + .type GPIO26_IRQHandler, %function +GPIO26_IRQHandler: + B . + +/*============================================================================== + * GPIO27_IRQHandler + */ + .weak GPIO27_IRQHandler + .type GPIO27_IRQHandler, %function +GPIO27_IRQHandler: + B . + +/*============================================================================== + * GPIO28_IRQHandler + */ + .weak GPIO28_IRQHandler + .type GPIO28_IRQHandler, %function +GPIO28_IRQHandler: + B . + +/*============================================================================== + * GPIO29_IRQHandler + */ + .weak GPIO29_IRQHandler + .type GPIO29_IRQHandler, %function +GPIO29_IRQHandler: + B . + +/*============================================================================== + * GPIO30_IRQHandler + */ + .weak GPIO30_IRQHandler + .type GPIO30_IRQHandler, %function +GPIO30_IRQHandler: + B . + +/*============================================================================== + * GPIO31_IRQHandler + */ + .weak GPIO31_IRQHandler + .type GPIO31_IRQHandler, %function +GPIO31_IRQHandler: + B . + +/*============================================================================== + * mscc_post_hw_cfg_init + */ + .weak mscc_post_hw_cfg_init + .type mscc_post_hw_cfg_init, %function +mscc_post_hw_cfg_init: + BX LR + +/*============================================================================== + * Constants: + */ +RAM_INIT_PATTERN: .word 0x00000000 +HEAP_INIT_PATTERN: .word 0xA2A2A2A2 +SF2_ESRAM_CR: .word 0x40038000 +SF2_DDR_CR: .word 0x40038008 +SF2_ENVM_REMAP_CR: .word 0x40038010 +SF2_DDRB_NB_SIZE: .word 0x40038030 +SF2_DDRB_CR: .word 0x40038034 +SF2_EDAC_CR: .word 0x40038038 +SF2_MDDR_MODE_CR: .word 0x40020818 + +.end diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/sys_init_cfg_types.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/sys_init_cfg_types.h new file mode 100644 index 00000000..943328a2 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/sys_init_cfg_types.h @@ -0,0 +1,212 @@ +/******************************************************************************* + * (c) Copyright 2012 Microsemi SoC Products Group. All rights reserved. + * + * + * + * SVN $Revision: 4410 $ + * SVN $Date: 2012-07-16 19:06:17 +0530 (Mon, 16 Jul 2012) $ + */ + +#ifndef SYSTEM_INIT_CFG_TYPES_H_ +#define SYSTEM_INIT_CFG_TYPES_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/*============================================================================*/ +/* DDR Configuration */ +/*============================================================================*/ +typedef struct +{ + /*-------------------------------------------------------------------------- + * DDR Controller registers. + */ + struct + { + uint16_t DYN_SOFT_RESET_CR; + uint16_t RESERVED0; + uint16_t DYN_REFRESH_1_CR; + uint16_t DYN_REFRESH_2_CR; + uint16_t DYN_POWERDOWN_CR; + uint16_t DYN_DEBUG_CR; + uint16_t MODE_CR; + uint16_t ADDR_MAP_BANK_CR; + uint16_t ECC_DATA_MASK_CR; + uint16_t ADDR_MAP_COL_1_CR; + uint16_t ADDR_MAP_COL_2_CR; + uint16_t ADDR_MAP_ROW_1_CR; + uint16_t ADDR_MAP_ROW_2_CR; + uint16_t INIT_1_CR; + uint16_t CKE_RSTN_CYCLES_1_CR; + uint16_t CKE_RSTN_CYCLES_2_CR; + uint16_t INIT_MR_CR; + uint16_t INIT_EMR_CR; + uint16_t INIT_EMR2_CR; + uint16_t INIT_EMR3_CR; + uint16_t DRAM_BANK_TIMING_PARAM_CR; + uint16_t DRAM_RD_WR_LATENCY_CR; + uint16_t DRAM_RD_WR_PRE_CR; + uint16_t DRAM_MR_TIMING_PARAM_CR; + uint16_t DRAM_RAS_TIMING_CR; + uint16_t DRAM_RD_WR_TRNARND_TIME_CR; + uint16_t DRAM_T_PD_CR; + uint16_t DRAM_BANK_ACT_TIMING_CR; + uint16_t ODT_PARAM_1_CR; + uint16_t ODT_PARAM_2_CR; + uint16_t ADDR_MAP_COL_3_CR; + uint16_t MODE_REG_RD_WR_CR; + uint16_t MODE_REG_DATA_CR; + uint16_t PWR_SAVE_1_CR; + uint16_t PWR_SAVE_2_CR; + uint16_t ZQ_LONG_TIME_CR; + uint16_t ZQ_SHORT_TIME_CR; + uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_1_CR; + uint16_t ZQ_SHORT_INT_REFRESH_MARGIN_2_CR; + uint16_t PERF_PARAM_1_CR; + uint16_t HPR_QUEUE_PARAM_1_CR; + uint16_t HPR_QUEUE_PARAM_2_CR; + uint16_t LPR_QUEUE_PARAM_1_CR; + uint16_t LPR_QUEUE_PARAM_2_CR; + uint16_t WR_QUEUE_PARAM_CR; + uint16_t PERF_PARAM_2_CR; + uint16_t PERF_PARAM_3_CR; + uint16_t DFI_RDDATA_EN_CR; + uint16_t DFI_MIN_CTRLUPD_TIMING_CR; + uint16_t DFI_MAX_CTRLUPD_TIMING_CR; + uint16_t DFI_WR_LVL_CONTROL_1_CR; + uint16_t DFI_WR_LVL_CONTROL_2_CR; + uint16_t DFI_RD_LVL_CONTROL_1_CR; + uint16_t DFI_RD_LVL_CONTROL_2_CR; + uint16_t DFI_CTRLUPD_TIME_INTERVAL_CR; + uint16_t DYN_SOFT_RESET_CR2; + uint16_t AXI_FABRIC_PRI_ID_CR; + } ddrc; + + /*-------------------------------------------------------------------------- + * DDR PHY configuration registers + */ + struct + { + uint16_t LOOPBACK_TEST_CR; + uint16_t BOARD_LOOPBACK_CR; + uint16_t CTRL_SLAVE_RATIO_CR; + uint16_t CTRL_SLAVE_FORCE_CR; + uint16_t CTRL_SLAVE_DELAY_CR; + uint16_t DATA_SLICE_IN_USE_CR; + uint16_t LVL_NUM_OF_DQ0_CR; + uint16_t DQ_OFFSET_1_CR; + uint16_t DQ_OFFSET_2_CR; + uint16_t DQ_OFFSET_3_CR; + uint16_t DIS_CALIB_RST_CR; + uint16_t DLL_LOCK_DIFF_CR; + uint16_t FIFO_WE_IN_DELAY_1_CR; + uint16_t FIFO_WE_IN_DELAY_2_CR; + uint16_t FIFO_WE_IN_DELAY_3_CR; + uint16_t FIFO_WE_IN_FORCE_CR; + uint16_t FIFO_WE_SLAVE_RATIO_1_CR; + uint16_t FIFO_WE_SLAVE_RATIO_2_CR; + uint16_t FIFO_WE_SLAVE_RATIO_3_CR; + uint16_t FIFO_WE_SLAVE_RATIO_4_CR; + uint16_t GATELVL_INIT_MODE_CR; + uint16_t GATELVL_INIT_RATIO_1_CR; + uint16_t GATELVL_INIT_RATIO_2_CR; + uint16_t GATELVL_INIT_RATIO_3_CR; + uint16_t GATELVL_INIT_RATIO_4_CR; + uint16_t LOCAL_ODT_CR; + uint16_t INVERT_CLKOUT_CR; + uint16_t RD_DQS_SLAVE_DELAY_1_CR; + uint16_t RD_DQS_SLAVE_DELAY_2_CR; + uint16_t RD_DQS_SLAVE_DELAY_3_CR; + uint16_t RD_DQS_SLAVE_FORCE_CR; + uint16_t RD_DQS_SLAVE_RATIO_1_CR; + uint16_t RD_DQS_SLAVE_RATIO_2_CR; + uint16_t RD_DQS_SLAVE_RATIO_3_CR; + uint16_t RD_DQS_SLAVE_RATIO_4_CR; + uint16_t WR_DQS_SLAVE_DELAY_1_CR; + uint16_t WR_DQS_SLAVE_DELAY_2_CR; + uint16_t WR_DQS_SLAVE_DELAY_3_CR; + uint16_t WR_DQS_SLAVE_FORCE_CR; + uint16_t WR_DQS_SLAVE_RATIO_1_CR; + uint16_t WR_DQS_SLAVE_RATIO_2_CR; + uint16_t WR_DQS_SLAVE_RATIO_3_CR; + uint16_t WR_DQS_SLAVE_RATIO_4_CR; + uint16_t WR_DATA_SLAVE_DELAY_1_CR; + uint16_t WR_DATA_SLAVE_DELAY_2_CR; + uint16_t WR_DATA_SLAVE_DELAY_3_CR; + uint16_t WR_DATA_SLAVE_FORCE_CR; + uint16_t WR_DATA_SLAVE_RATIO_1_CR; + uint16_t WR_DATA_SLAVE_RATIO_2_CR; + uint16_t WR_DATA_SLAVE_RATIO_3_CR; + uint16_t WR_DATA_SLAVE_RATIO_4_CR; + uint16_t WRLVL_INIT_MODE_CR; + uint16_t WRLVL_INIT_RATIO_1_CR; + uint16_t WRLVL_INIT_RATIO_2_CR; + uint16_t WRLVL_INIT_RATIO_3_CR; + uint16_t WRLVL_INIT_RATIO_4_CR; + uint16_t WR_RD_RL_CR; + uint16_t RDC_FIFO_RST_ERRCNTCLR_CR; + uint16_t RDC_WE_TO_RE_DELAY_CR; + uint16_t USE_FIXED_RE_CR; + uint16_t USE_RANK0_DELAYS_CR; + uint16_t USE_LVL_TRNG_LEVEL_CR; + uint16_t CONFIG_CR; + uint16_t RD_WR_GATE_LVL_CR; + uint16_t DYN_RESET_CR; + } phy; + + /*-------------------------------------------------------------------------- + * FIC-64 registers + * These registers are 16-bit wide and 32-bit aligned. + */ + struct + { + uint16_t NB_ADDR_CR; + uint16_t NBRWB_SIZE_CR; + uint16_t WB_TIMEOUT_CR; + uint16_t HPD_SW_RW_EN_CR; + uint16_t HPD_SW_RW_INVAL_CR; + uint16_t SW_WR_ERCLR_CR; + uint16_t ERR_INT_ENABLE_CR; + uint16_t NUM_AHB_MASTERS_CR; + uint16_t LOCK_TIMEOUTVAL_1_CR; + uint16_t LOCK_TIMEOUTVAL_2_CR; + uint16_t LOCK_TIMEOUT_EN_CR; + } fic; +} ddr_subsys_cfg_t; + +/*============================================================================*/ +/* FDDR Configuration */ +/*============================================================================*/ + +typedef struct +{ + uint16_t PLL_CONFIG_LOW_1; + uint16_t PLL_CONFIG_LOW_2; + uint16_t PLL_CONFIG_HIGH; + uint16_t FACC_CLK_EN; + uint16_t FACC_MUX_CONFIG; + uint16_t FACC_DIVISOR_RATIO; + uint16_t PLL_DELAY_LINE_SEL; + uint16_t SOFT_RESET; + uint16_t IO_CALIB; + uint16_t INTERRUPT_ENABLE; + uint16_t AXI_AHB_MODE_SEL; + uint16_t PHY_SELF_REF_EN; +} fddr_sysreg_t; + +/*============================================================================*/ +/* PCI Express Bridge IP Core configuration. */ +/*============================================================================*/ + +typedef struct +{ + uint32_t * p_reg; + uint32_t value; +} cfg_addr_value_pair_t; + +#ifdef __cplusplus +} +#endif + +#endif /* SYSTEM_INIT_CFG_TYPES_H_ */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.c b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.c new file mode 100644 index 00000000..7c3703ea --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.c @@ -0,0 +1,1006 @@ +/******************************************************************************* + * (c) Copyright 2012-2013 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 CMSIS system initialization. + * + * SVN $Revision: 7375 $ + * SVN $Date: 2015-05-01 19:27:40 +0530 (Fri, 01 May 2015) $ + */ +#include "m2sxxx.h" +#if MSCC_NO_RELATIVE_PATHS +#include "sys_config.h" +#else +#include "../drivers_config/sys_config/sys_config.h" +#endif +#include "sys_init_cfg_types.h" + +/*------------------------------------------------------------------------------ + Silicon revisions. + */ +#define UNKNOWN_SILICON_REV 0 +#define M2S050_REV_A_SILICON 1 +#define M2S050_REV_B_SILICON 2 + +/*------------------------------------------------------------------------------ + * CoreConfigP IP block version. + */ +#define CORE_CONFIGP_V7_0 0x00070000u + +/*------------------------------------------------------------------------------ + * + */ +void mscc_post_hw_cfg_init(void); + +/*------------------------------------------------------------------------------ + * CoreConfigP/CoreConfigP register bits + */ +#define CONFIG_1_DONE 1u +#define CONFIG_2_DONE 2u + +#define INIT_DONE_MASK 0x00000001u +#define SDIF_RELEASED_MASK 0x00000002u + +/*------------------------------------------------------------------------------ + * System registers of interest. + */ +/* + * MSSDDR_FACC1_CR register masks: + */ +#define DDR_CLK_EN_SHIFT 8u +#define FACC_GLMUX_SEL_MASK 0x00001000u +#define CONTROLLER_PLL_INIT_MASK 0x04000000u +#define RCOSC_DIV2_MASK 0x00000004u + +/* + * MSSDDR_PLL_STATUS register masks: + */ +#define FAB_PLL_LOCK_MASK 0x00000001u +#define MPLL_LOCK_MASK 0x00000002u + +/* + * MSSDDR_PLL_STATUS_HIGH_CR register masks: + */ +#define FACC_PLL_BYPASS_MASK 0x00000001u + +/*------------------------------------------------------------------------------ + * Standard CMSIS global variables. + */ +uint32_t SystemCoreClock = MSS_SYS_M3_CLK_FREQ; /*!< System Clock Frequency (Core Clock) */ + +/*------------------------------------------------------------------------------ + * SmartFusion2 specific clocks. + */ +uint32_t g_FrequencyPCLK0 = MSS_SYS_APB_0_CLK_FREQ; /*!< Clock frequency of APB bus 0. */ +uint32_t g_FrequencyPCLK1 = MSS_SYS_APB_1_CLK_FREQ; /*!< Clock frequency of APB bus 1. */ +uint32_t g_FrequencyPCLK2 = MSS_SYS_APB_2_CLK_FREQ; /*!< Clock frequency of APB bus 2. */ +uint32_t g_FrequencyFIC0 = MSS_SYS_FIC_0_CLK_FREQ; /*!< Clock frequecny of FPGA fabric interface controller 1. */ +uint32_t g_FrequencyFIC1 = MSS_SYS_FIC_1_CLK_FREQ; /*!< Clock frequecny of FPGA fabric inteface controller 2. */ +uint32_t g_FrequencyFIC64 = MSS_SYS_FIC64_CLK_FREQ; /*!< Clock frequecny of 64-bit FPGA fabric interface controller. */ + +/*------------------------------------------------------------------------------ + * System configuration tables generated by Libero. + */ +#if MSS_SYS_MDDR_CONFIG_BY_CORTEX +extern MDDR_TypeDef * const g_m2s_mddr_addr; +extern const ddr_subsys_cfg_t g_m2s_mddr_subsys_config; +#endif + +#if MSS_SYS_FDDR_CONFIG_BY_CORTEX +extern FDDR_TypeDef * const g_m2s_fddr_addr; +extern const ddr_subsys_cfg_t g_m2s_fddr_subsys_config; +#endif + +#define MSS_SYS_SERDES_CONFIG_BY_CORTEX (MSS_SYS_SERDES_0_CONFIG_BY_CORTEX || MSS_SYS_SERDES_1_CONFIG_BY_CORTEX || MSS_SYS_SERDES_2_CONFIG_BY_CORTEX || MSS_SYS_SERDES_3_CONFIG_BY_CORTEX) + +#if MSS_SYS_SERDES_0_CONFIG_BY_CORTEX +extern const cfg_addr_value_pair_t g_m2s_serdes_0_config[SERDES_0_CFG_NB_OF_PAIRS]; +#endif + +#if MSS_SYS_SERDES_1_CONFIG_BY_CORTEX +extern const cfg_addr_value_pair_t g_m2s_serdes_1_config[SERDES_1_CFG_NB_OF_PAIRS]; +#endif + +#if MSS_SYS_SERDES_2_CONFIG_BY_CORTEX +extern const cfg_addr_value_pair_t g_m2s_serdes_2_config[SERDES_2_CFG_NB_OF_PAIRS]; +#endif + +#if MSS_SYS_SERDES_3_CONFIG_BY_CORTEX +extern const cfg_addr_value_pair_t g_m2s_serdes_3_config[SERDES_3_CFG_NB_OF_PAIRS]; +#endif + +#define MSS_SYS_CORESF2RESET_USED (MSS_SYS_MDDR_CONFIG_BY_CORTEX || MSS_SYS_FDDR_CONFIG_BY_CORTEX || MSS_SYS_SERDES_CONFIG_BY_CORTEX) + +/*============================================================================== + * List of PCIe lanes on which PMA_READY must be polled. Allows only polling PMA + * READY on the first lane of a PCIe link regardless of the number of lanes used + * or whether lane reversal is used. + */ +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX + +#define CONFIG_REG_LANE_SEL_LANE_0 0x00000100U +#define CONFIG_REG_LANE_SEL_LANE_1 0x00000200U +#define CONFIG_REG_LANE_SEL_LANE_2 0x00000400U +#define CONFIG_REG_LANE_SEL_LANE_3 0x00000800U + +#define CONFIG_REG_LANE_SEL_MASK (CONFIG_REG_LANE_SEL_LANE_0 | \ + CONFIG_REG_LANE_SEL_LANE_1 | \ + CONFIG_REG_LANE_SEL_LANE_2 | \ + CONFIG_REG_LANE_SEL_LANE_3) + +#define FIRST_PCIE_CTRL 1U +#define SECOND_PCIE_CTRL 2U + +typedef struct pma_poll_info +{ + SERDESIF_TypeDef * serdes; + SERDES_TypeDef * const lane; + uint16_t config_reg_lane_sel; + uint16_t pcie_ctrl_id; /* distinguish between first and second PCIe controller on M2S090. */ +} pma_poll_info_t; + +/*------------------------------------------------------------------------------ + * SERDES0: list of PMA to poll as part of PCIe configuration. This list only + * handles the first PCIe controller of SERDES0. + */ +static const pma_poll_info_t g_serdes0_pcie_lane_cfg_lut[] = +{ + #if defined(SERDESIF_0_PCIE_LANE_PMA_STATUS_LANE_0) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[0], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_0, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_LANE_PMA_STATUS_LANE_1) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[1], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_1, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_LANE_PMA_STATUS_LANE_2) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[2], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_2, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_LANE_PMA_STATUS_LANE_3) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[3], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_3, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + { + (SERDESIF_TypeDef *)0, /* SERDESIF_TypeDef * serdes */ + (SERDES_TypeDef *)0, /* SERDES_TypeDef * const lane */ + 0, /* uint16_t config_reg_lane_sel */ + 0 /* uint16_t pcie_ctrl_id */ + } +}; + +/*------------------------------------------------------------------------------ + * SERDES1: list of PMA to poll as part of PCIe configuration. This list handles + * both SERDES1 first PCIe controller and the M2S090 SERDES0 second PCIe + * controller. + */ +static const pma_poll_info_t g_serdes1_pcie_lane_cfg_lut[] = +{ + #if defined(SERDESIF_1_PCIE_LANE_PMA_STATUS_LANE_0) + { + SERDES1, /* SERDESIF_TypeDef * serdes */ + &SERDES1->lane[0], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_0, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_1_PCIE_LANE_PMA_STATUS_LANE_1) + { + SERDES1, /* SERDESIF_TypeDef * serdes */ + &SERDES1->lane[1], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_1, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_1_PCIE_LANE_PMA_STATUS_LANE_2) + { + SERDES1, /* SERDESIF_TypeDef * serdes */ + &SERDES1->lane[2], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_2, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_1_PCIE_LANE_PMA_STATUS_LANE_3) + { + SERDES1, /* SERDESIF_TypeDef * serdes */ + &SERDES1->lane[3], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_3, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + #if defined(SERDESIF_0_PCIE_1_LANE_PMA_STATUS_LANE_0) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[0], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_0, /* uint16_t config_reg_lane_sel */ + SECOND_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_1_LANE_PMA_STATUS_LANE_1) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[1], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_1, /* uint16_t config_reg_lane_sel */ + SECOND_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_1_LANE_PMA_STATUS_LANE_2) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[2], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_2, /* uint16_t config_reg_lane_sel */ + SECOND_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_0_PCIE_1_LANE_PMA_STATUS_LANE_3) + { + SERDES0, /* SERDESIF_TypeDef * serdes */ + &SERDES0->lane[3], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_3, /* uint16_t config_reg_lane_sel */ + SECOND_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + { + (SERDESIF_TypeDef *)0, /* SERDESIF_TypeDef * serdes */ + (SERDES_TypeDef *)0, /* SERDES_TypeDef * const lane */ + 0, /* uint16_t config_reg_lane_sel */ + 0 /* uint16_t pcie_ctrl_id */ + } +}; + +/*------------------------------------------------------------------------------ + * SERDES2: list of PMA to poll as part of PCIe configuration. + */ +static const pma_poll_info_t g_serdes2_pcie_lane_cfg_lut[] = +{ + #if defined(SERDESIF_2_PCIE_LANE_PMA_STATUS_LANE_0) + { + SERDES2, /* SERDESIF_TypeDef * serdes */ + &SERDES2->lane[0], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_0, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_2_PCIE_LANE_PMA_STATUS_LANE_1) + { + SERDES2, /* SERDESIF_TypeDef * serdes */ + &SERDES2->lane[1], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_1, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_2_PCIE_LANE_PMA_STATUS_LANE_2) + { + SERDES2, /* SERDESIF_TypeDef * serdes */ + &SERDES2->lane[2], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_2, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_2_PCIE_LANE_PMA_STATUS_LANE_3) + { + SERDES2, /* SERDESIF_TypeDef * serdes */ + &SERDES2->lane[3], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_3, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + { + (SERDESIF_TypeDef *)0, /* SERDESIF_TypeDef * serdes */ + (SERDES_TypeDef *)0, /* SERDES_TypeDef * const lane */ + 0, /* uint16_t config_reg_lane_sel */ + 0 /* uint16_t pcie_ctrl_id */ + } +}; + +/*------------------------------------------------------------------------------ + * SERDES3: list of PMA to poll as part of PCIe configuration. + */ +static const pma_poll_info_t g_serdes3_pcie_lane_cfg_lut[] = +{ + #if defined(SERDESIF_3_PCIE_LANE_PMA_STATUS_LANE_0) + { + SERDES3, /* SERDESIF_TypeDef * serdes */ + &SERDES3->lane[0], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_0, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_3_PCIE_LANE_PMA_STATUS_LANE_1) + { + SERDES3, /* SERDESIF_TypeDef * serdes */ + &SERDES3->lane[1], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_1, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_3_PCIE_LANE_PMA_STATUS_LANE_2) + { + SERDES3, /* SERDESIF_TypeDef * serdes */ + &SERDES3->lane[2], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_2, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + #if defined(SERDESIF_3_PCIE_LANE_PMA_STATUS_LANE_3) + { + SERDES3, /* SERDESIF_TypeDef * serdes */ + &SERDES3->lane[3], /* SERDES_TypeDef * const lane */ + CONFIG_REG_LANE_SEL_LANE_3, /* uint16_t config_reg_lane_sel */ + FIRST_PCIE_CTRL /* uint16_t pcie_ctrl_id */ + }, + #endif + + { + (SERDESIF_TypeDef *)0, /* SERDESIF_TypeDef * serdes */ + (SERDES_TypeDef *)0, /* SERDES_TypeDef * const lane */ + 0, /* uint16_t config_reg_lane_sel */ + 0 /* uint16_t pcie_ctrl_id */ + } +}; + +/*------------------------------------------------------------------------------ + * Master lookup table for all SERDES PCIe configuration. + */ +static const pma_poll_info_t * const g_pcie_lane_cfg_lut[] = +{ + g_serdes0_pcie_lane_cfg_lut, + g_serdes1_pcie_lane_cfg_lut, + g_serdes2_pcie_lane_cfg_lut, + g_serdes3_pcie_lane_cfg_lut +}; + +#endif + +/*------------------------------------------------------------------------------ + * Local functions: + */ +static uint32_t get_silicon_revision(void); +static void silicon_workarounds(void); +static void m2s050_rev_a_workarounds(void); + +#if (MSS_SYS_FACC_INIT_BY_CORTEX == 1) +static void complete_clock_config(void); +#endif + +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX +static void configure_serdes_intf(void); +static void configure_pcie_intf(void); + +static void configure_pcie_block +( + const cfg_addr_value_pair_t * p_addr_value_pair, + uint32_t nb_of_cfg_pairs, + uint32_t serdes_id +); +#endif + +#if (MSS_SYS_MDDR_CONFIG_BY_CORTEX || MSS_SYS_FDDR_CONFIG_BY_CORTEX) +static void config_ddr_subsys +( + const ddr_subsys_cfg_t * p_ddr_subsys_cfg, + DDRCore_TypeDef * p_ddr_subsys_regs +); +#endif + +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX +static void config_by_addr_value +( + const cfg_addr_value_pair_t * p_addr_value_pair, + uint32_t nb_of_cfg_pairs +); +#endif + +static uint32_t get_rcosc_25_50mhz_frequency(void); +static void set_clock_frequency_globals(uint32_t fclk); + +/***************************************************************************//** + * See system_m2sxxx.h for details. + */ +void SystemInit(void) +{ +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX + uint32_t sdif_released; +#endif +#if MSS_SYS_CORESF2RESET_USED + uint32_t init_done; +#endif + +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX + uint32_t core_cfg_version; + + core_cfg_version = CORE_SF2_CFG->IP_VERSION_SR; +#endif + + /* + * Do not make use of global variables or make any asumptions regarding + * memory content if modifying this function. The memory content has not been + * initialised by the time this function is called by the start-up code. + */ +#if (MSS_SYS_FACC_INIT_BY_CORTEX == 1) + complete_clock_config(); +#endif + + silicon_workarounds(); + + /*-------------------------------------------------------------------------- + * Set STKALIGN to ensure exception stacking starts on 8 bytes address + * boundary. This ensures compliance with the "Procedure Call Standards for + * the ARM Architecture" (AAPCS). + */ + SCB->CCR |= SCB_CCR_STKALIGN_Msk; + + /*-------------------------------------------------------------------------- + * MDDR configuration + */ +#if MSS_SYS_MDDR_CONFIG_BY_CORTEX + if(0u == SYSREG->DDR_CR) + { + /* + * We only configure the MDDR memory controller if MDDR is not remapped + * to address 0x00000000. If MDDR is remapped to 0x00000000 then we are + * probably executing this code from MDDR in a debugging session and + * attempting to reconfigure the MDDR memory controller will cause the + * Cortex-M3 to crash. + */ + config_ddr_subsys(&g_m2s_mddr_subsys_config, &g_m2s_mddr_addr->core); + } +#endif + + /*-------------------------------------------------------------------------- + * FDDR configuration + */ +#if MSS_SYS_FDDR_CONFIG_BY_CORTEX + config_ddr_subsys(&g_m2s_fddr_subsys_config, &g_m2s_fddr_addr->core); +#endif + + /*-------------------------------------------------------------------------- + * Call user defined configuration function. + */ + mscc_post_hw_cfg_init(); + + /*-------------------------------------------------------------------------- + * SERDES interfaces configuration. + */ +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX + configure_serdes_intf(); + + if(core_cfg_version >= CORE_CONFIGP_V7_0) + { + CORE_SF2_CFG->CONFIG_DONE = CONFIG_1_DONE; + + /* Poll for SDIF_RELEASED. */ + do + { + sdif_released = CORE_SF2_CFG->INIT_DONE & SDIF_RELEASED_MASK; + } while (0u == sdif_released); + } + + configure_pcie_intf(); +#endif + + /*-------------------------------------------------------------------------- + * Synchronize with CoreSF2Reset controlling resets from the fabric. + */ +#if MSS_SYS_CORESF2RESET_USED + /* + * Negate FPGA_SOFTRESET to de-assert MSS_RESET_N_M2F in the fabric. We must + * do this here because this signal is only deasserted by the System + * Controller on a power-on reset. Other types of reset such as a watchdog + * reset would result in the FPGA fabric being held in reset and getting + * stuck waiting for the CoreSF2Config INIT_DONE to become asserted. + */ + SYSREG->SOFT_RST_CR &= ~SYSREG_FPGA_SOFTRESET_MASK; + + /* + * Signal to CoreSF2Reset that peripheral configuration registers have been + * written. + */ + CORE_SF2_CFG->CONFIG_DONE |= (CONFIG_1_DONE | CONFIG_2_DONE); + + /* Wait for INIT_DONE from CoreSF2Reset. */ + do + { + init_done = CORE_SF2_CFG->INIT_DONE & INIT_DONE_MASK; + } while (0u == init_done); +#endif +} + +/***************************************************************************//** + * SystemCoreClockUpdate() + */ +#define RCOSC_25_50MHZ_CLK_SRC 0u +#define CLK_XTAL_CLK_SRC 1u +#define RCOSC_1_MHZ_CLK_SRC 2u +#define CCC2ASCI_CLK_SRC 3u + +#define FACC_STANDBY_SHIFT 6u +#define FACC_STANDBY_SEL_MASK 0x00000007u + +#define FREQ_32KHZ 32768u +#define FREQ_1MHZ 1000000u +#define FREQ_25MHZ 25000000u +#define FREQ_50MHZ 50000000u + +void SystemCoreClockUpdate(void) +{ + uint32_t controller_pll_init; + uint32_t clk_src; + + controller_pll_init = SYSREG->MSSDDR_FACC1_CR & CONTROLLER_PLL_INIT_MASK; + + if(0u == controller_pll_init) + { + /* Normal operations. */ + uint32_t global_mux_sel; + + global_mux_sel = SYSREG->MSSDDR_FACC1_CR & FACC_GLMUX_SEL_MASK; + if(0u == global_mux_sel) + { + /* MSS clocked from MSS PLL. Use Libero flow defines. */ + SystemCoreClock = MSS_SYS_M3_CLK_FREQ; + g_FrequencyPCLK0 = MSS_SYS_APB_0_CLK_FREQ; + g_FrequencyPCLK1 = MSS_SYS_APB_1_CLK_FREQ; + g_FrequencyPCLK2 = MSS_SYS_APB_2_CLK_FREQ; + g_FrequencyFIC0 = MSS_SYS_FIC_0_CLK_FREQ; + g_FrequencyFIC1 = MSS_SYS_FIC_1_CLK_FREQ; + g_FrequencyFIC64 = MSS_SYS_FIC64_CLK_FREQ; + } + else + { + /* MSS clocked from standby clock. */ + const uint8_t standby_clock_lut[8] = { RCOSC_25_50MHZ_CLK_SRC, + CLK_XTAL_CLK_SRC, + RCOSC_25_50MHZ_CLK_SRC, + CLK_XTAL_CLK_SRC, + RCOSC_1_MHZ_CLK_SRC, + RCOSC_1_MHZ_CLK_SRC, + CCC2ASCI_CLK_SRC, + CCC2ASCI_CLK_SRC }; + + uint32_t standby_sel; + uint8_t clock_source; + + standby_sel = (SYSREG->MSSDDR_FACC2_CR >> FACC_STANDBY_SHIFT) & FACC_STANDBY_SEL_MASK; + clock_source = standby_clock_lut[standby_sel]; + switch(clock_source) + { + case RCOSC_25_50MHZ_CLK_SRC: + clk_src = get_rcosc_25_50mhz_frequency(); + set_clock_frequency_globals(clk_src); + break; + + case CLK_XTAL_CLK_SRC: + set_clock_frequency_globals(FREQ_32KHZ); + break; + + case RCOSC_1_MHZ_CLK_SRC: + set_clock_frequency_globals(FREQ_1MHZ); + break; + + case CCC2ASCI_CLK_SRC: + /* Fall through. */ + default: + set_clock_frequency_globals(FREQ_1MHZ); + break; + } + } + } + else + { + /* PLL initialization mode. Running from 25/50MHZ RC oscillator. */ + clk_src = get_rcosc_25_50mhz_frequency(); + set_clock_frequency_globals(clk_src); + } +} + +/***************************************************************************//** + * Find out frequency generated by the 25_50mhz RC osciallator. + */ +static uint32_t get_rcosc_25_50mhz_frequency(void) +{ + uint32_t rcosc_div2; + uint32_t rcosc_frequency; + + rcosc_div2 = SYSREG->MSSDDR_PLL_STATUS & RCOSC_DIV2_MASK; + if(0u == rcosc_div2) + { + /* 25_50mhz oscillator is configured for 25 MHz operations. */ + rcosc_frequency = FREQ_25MHZ; + } + else + { + /* 25_50mhz oscillator is configured for 50 MHz operations. */ + rcosc_frequency = FREQ_50MHZ; + } + + return rcosc_frequency; +} + +/***************************************************************************//** + Set the value of the clock frequency global variables based on the value of + standby_clk passed as parameter. + The following global variables are set by this function: + - SystemCoreClock + - g_FrequencyPCLK0 + - g_FrequencyPCLK1 + - g_FrequencyPCLK2 + - g_FrequencyFIC0 + - g_FrequencyFIC1 + - g_FrequencyFIC64 + */ +static void set_clock_frequency_globals(uint32_t standby_clk) +{ + SystemCoreClock = standby_clk; + g_FrequencyPCLK0 = standby_clk; + g_FrequencyPCLK1 = standby_clk; + g_FrequencyPCLK2 = MSS_SYS_APB_2_CLK_FREQ; + g_FrequencyFIC0 = standby_clk; + g_FrequencyFIC1 = standby_clk; + g_FrequencyFIC64 = standby_clk; +} + +/***************************************************************************//** + * Write 16-bit configuration values into 32-bit word aligned registers. + */ +#if (MSS_SYS_MDDR_CONFIG_BY_CORTEX || MSS_SYS_FDDR_CONFIG_BY_CORTEX) +static void copy_cfg16_to_regs +( + volatile uint32_t * p_regs, + const uint16_t * p_cfg, + uint32_t nb_16bit_words +) +{ + uint32_t inc; + + for(inc = 0u; inc < nb_16bit_words; ++inc) + { + p_regs[inc] = p_cfg[inc]; + } +} +#endif + +/***************************************************************************//** + * Configure peripheral using register address and register value pairs. + */ +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX +static void config_by_addr_value +( + const cfg_addr_value_pair_t * p_addr_value_pair, + uint32_t nb_of_cfg_pairs +) +{ + uint32_t inc; + + for(inc = 0u; inc < nb_of_cfg_pairs; ++inc) + { + *p_addr_value_pair[inc].p_reg = p_addr_value_pair[inc].value; + } +} +#endif + +/***************************************************************************//** + * DDR subsystem configuration. + */ +#if (MSS_SYS_MDDR_CONFIG_BY_CORTEX || MSS_SYS_FDDR_CONFIG_BY_CORTEX) + +#define NB_OF_DDRC_REGS_TO_CONFIG 57u +#define NB_OF_DDR_PHY_REGS_TO_CONFIG 65u + +static void config_ddr_subsys +( + const ddr_subsys_cfg_t * p_ddr_subsys_cfg, + DDRCore_TypeDef * p_ddr_subsys_regs +) +{ + volatile uint32_t * p_regs; + const uint16_t * p_cfg; + + /*-------------------------------------------------------------------------- + * Configure DDR controller part of the MDDR subsystem. + */ + p_cfg = &p_ddr_subsys_cfg->ddrc.DYN_SOFT_RESET_CR; + p_regs = &p_ddr_subsys_regs->ddrc.DYN_SOFT_RESET_CR; + + copy_cfg16_to_regs(p_regs, p_cfg, NB_OF_DDRC_REGS_TO_CONFIG); + + /*-------------------------------------------------------------------------- + * Configure DDR PHY. + */ + p_cfg = &p_ddr_subsys_cfg->phy.LOOPBACK_TEST_CR; + p_regs = &p_ddr_subsys_regs->phy.LOOPBACK_TEST_CR; + + copy_cfg16_to_regs(p_regs, p_cfg, NB_OF_DDR_PHY_REGS_TO_CONFIG); + + /*-------------------------------------------------------------------------- + * Configure DDR FIC. + */ + p_ddr_subsys_regs->fic.NB_ADDR_CR = p_ddr_subsys_cfg->fic.NB_ADDR_CR; + p_ddr_subsys_regs->fic.NBRWB_SIZE_CR = p_ddr_subsys_cfg->fic.NBRWB_SIZE_CR; + p_ddr_subsys_regs->fic.WB_TIMEOUT_CR = p_ddr_subsys_cfg->fic.WB_TIMEOUT_CR; + p_ddr_subsys_regs->fic.HPD_SW_RW_EN_CR = p_ddr_subsys_cfg->fic.HPD_SW_RW_EN_CR; + p_ddr_subsys_regs->fic.HPD_SW_RW_INVAL_CR = p_ddr_subsys_cfg->fic.HPD_SW_RW_INVAL_CR; + p_ddr_subsys_regs->fic.SW_WR_ERCLR_CR = p_ddr_subsys_cfg->fic.SW_WR_ERCLR_CR; + p_ddr_subsys_regs->fic.ERR_INT_ENABLE_CR = p_ddr_subsys_cfg->fic.ERR_INT_ENABLE_CR; + p_ddr_subsys_regs->fic.NUM_AHB_MASTERS_CR = p_ddr_subsys_cfg->fic.NUM_AHB_MASTERS_CR; + p_ddr_subsys_regs->fic.LOCK_TIMEOUTVAL_CR[0] = p_ddr_subsys_cfg->fic.LOCK_TIMEOUTVAL_1_CR; + p_ddr_subsys_regs->fic.LOCK_TIMEOUTVAL_CR[1] = p_ddr_subsys_cfg->fic.LOCK_TIMEOUTVAL_2_CR; + p_ddr_subsys_regs->fic.LOCK_TIMEOUT_EN_CR = p_ddr_subsys_cfg->fic.LOCK_TIMEOUT_EN_CR; + + /*-------------------------------------------------------------------------- + * Enable DDR. + */ + p_ddr_subsys_regs->ddrc.DYN_SOFT_RESET_CR = 0x01u; + + while(0x0000u == p_ddr_subsys_regs->ddrc.DDRC_SR) + { + ; + } +} + +#endif + +/***************************************************************************//** + * Configure SERDES interfaces. + */ +#if MSS_SYS_SERDES_CONFIG_BY_CORTEX + +static void configure_serdes_intf(void) +{ + #if MSS_SYS_SERDES_0_CONFIG_BY_CORTEX + config_by_addr_value(g_m2s_serdes_0_config, SERDES_0_CFG_NB_OF_PAIRS); + #endif + + #if MSS_SYS_SERDES_1_CONFIG_BY_CORTEX + config_by_addr_value(g_m2s_serdes_1_config, SERDES_1_CFG_NB_OF_PAIRS); + #endif + + #if MSS_SYS_SERDES_2_CONFIG_BY_CORTEX + config_by_addr_value(g_m2s_serdes_2_config, SERDES_2_CFG_NB_OF_PAIRS); + #endif + + #if MSS_SYS_SERDES_3_CONFIG_BY_CORTEX + config_by_addr_value(g_m2s_serdes_3_config, SERDES_3_CFG_NB_OF_PAIRS); + #endif +} + +/***************************************************************************//** + * Configure PCIe interfaces. + */ +static void configure_pcie_intf(void) +{ + #if MSS_SYS_SERDES_0_CONFIG_BY_CORTEX + configure_pcie_block(g_m2s_serdes_0_config, SERDES_0_CFG_NB_OF_PAIRS, 0u); + #endif + + #if MSS_SYS_SERDES_1_CONFIG_BY_CORTEX + configure_pcie_block(g_m2s_serdes_1_config, SERDES_1_CFG_NB_OF_PAIRS, 1u); + #endif + + #if MSS_SYS_SERDES_2_CONFIG_BY_CORTEX + configure_pcie_block(g_m2s_serdes_2_config, SERDES_2_CFG_NB_OF_PAIRS, 2u); + #endif + + #if MSS_SYS_SERDES_3_CONFIG_BY_CORTEX + configure_pcie_block(g_m2s_serdes_3_config, SERDES_3_CFG_NB_OF_PAIRS, 3u); + #endif +} + +/*------------------------------------------------------------------------------ + Configure one individual PCIe block. + */ +static void configure_pcie_block +( + const cfg_addr_value_pair_t * p_addr_value_pair, + uint32_t nb_of_cfg_pairs, + uint32_t serdes_id +) +{ + uint32_t inc; + + const uint32_t PMA_READY_MASK = 0x00000080u; + const uint32_t PCIE_CTRL_REG_LENGTH = 0x1000u; + const uint32_t PCIE_CTLR_SOFTRESET_MASK = 0x00000001; + const uint32_t PCIE2_CTLR_SOFTRESET_MASK = 0x00000040; + + SERDESIF_TypeDef * const serdes_lut[4] = + { + SERDES0, SERDES1, SERDES2, SERDES3 + }; + + const uint32_t pcie_ctrl_top_addr_lut[4] = + { + SERDES0_CFG_BASE + PCIE_CTRL_REG_LENGTH, + SERDES1_CFG_BASE + PCIE_CTRL_REG_LENGTH, + SERDES2_CFG_BASE + PCIE_CTRL_REG_LENGTH, + SERDES3_CFG_BASE + PCIE_CTRL_REG_LENGTH + }; + + /* + * Poll for PMA_READY. + */ + inc = 0U; + while(g_pcie_lane_cfg_lut[serdes_id][inc].config_reg_lane_sel != 0) + { + uint32_t pma_ready; + uint32_t config_phy_mode_1; + + /* select lane */ + config_phy_mode_1 = g_pcie_lane_cfg_lut[serdes_id][inc].serdes->sys_regs.CONFIG_PHY_MODE_1; + config_phy_mode_1 &= ~CONFIG_REG_LANE_SEL_MASK; + config_phy_mode_1 |= (uint32_t)g_pcie_lane_cfg_lut[serdes_id][inc].config_reg_lane_sel; + g_pcie_lane_cfg_lut[serdes_id][inc].serdes->sys_regs.CONFIG_PHY_MODE_1 = config_phy_mode_1; + + /* Wait for PMA to become ready. */ + do + { + pma_ready = g_pcie_lane_cfg_lut[serdes_id][inc].lane->PMA_STATUS & PMA_READY_MASK; + } + while (0u == pma_ready); + ++inc; + } + + /* + * Configure the PCIe controller registers. + */ + for(inc = 0u; inc < nb_of_cfg_pairs; ++inc) + { + uint32_t reg_addr; + + reg_addr = (uint32_t)p_addr_value_pair[inc].p_reg; + + if(reg_addr < pcie_ctrl_top_addr_lut[serdes_id]) + { + *p_addr_value_pair[inc].p_reg = p_addr_value_pair[inc].value; + } + } + + /* + * Issue a soft-reset to the PCIe controller + */ + inc = 0U; + while(g_pcie_lane_cfg_lut[serdes_id][inc].config_reg_lane_sel != 0) + { + if(FIRST_PCIE_CTRL == g_pcie_lane_cfg_lut[serdes_id][inc].pcie_ctrl_id) + { + serdes_lut[serdes_id]->sys_regs.SERDESIF_SOFT_RESET &= ~PCIE_CTLR_SOFTRESET_MASK; + serdes_lut[serdes_id]->sys_regs.SERDESIF_SOFT_RESET |= PCIE_CTLR_SOFTRESET_MASK; + } + else + { + serdes_lut[serdes_id]->sys_regs.SERDESIF_SOFT_RESET &= ~PCIE2_CTLR_SOFTRESET_MASK; + serdes_lut[serdes_id]->sys_regs.SERDESIF_SOFT_RESET |= PCIE2_CTLR_SOFTRESET_MASK; + } + ++inc; + } +} + +#endif + +/*------------------------------------------------------------------------------ + Retrieve silicon revision from system registers. + */ +static uint32_t get_silicon_revision(void) +{ + uint32_t silicon_revision; + uint32_t device_version; + + device_version = SYSREG->DEVICE_VERSION; + switch(device_version) + { + case 0x0000F802: + silicon_revision = M2S050_REV_A_SILICON; + break; + + case 0x0001F802: + silicon_revision = M2S050_REV_B_SILICON; + break; + + default: + silicon_revision = UNKNOWN_SILICON_REV; + break; + } + + return silicon_revision; +} + +/*------------------------------------------------------------------------------ + Workarounds for various silicon versions. + */ +static void silicon_workarounds(void) +{ + uint32_t silicon_revision; + + silicon_revision = get_silicon_revision(); + + switch(silicon_revision) + { + case M2S050_REV_A_SILICON: + m2s050_rev_a_workarounds(); + break; + + case M2S050_REV_B_SILICON: + /* Fall through. */ + case UNKNOWN_SILICON_REV: + /* Fall through. */ + default: + break; + } +} + +/*------------------------------------------------------------------------------ + Silicon workarounds for M2S050 rev A. + */ +static void m2s050_rev_a_workarounds(void) +{ + /*-------------------------------------------------------------------------- + * Work around a couple of silicon issues: + */ + /* DDR_CLK_EN <- 1 */ + SYSREG->MSSDDR_FACC1_CR |= (uint32_t)1 << DDR_CLK_EN_SHIFT; + + /* CONTROLLER_PLL_INIT <- 0 */ + SYSREG->MSSDDR_FACC1_CR = SYSREG->MSSDDR_FACC1_CR & ~CONTROLLER_PLL_INIT_MASK; +} + +/*------------------------------------------------------------------------------ + Complete clock configuration if requested by Libero. + */ +#if (MSS_SYS_FACC_INIT_BY_CORTEX == 1) +static void complete_clock_config(void) +{ + uint32_t pll_locked; + + /* Wait for fabric PLL to lock. */ + do { + pll_locked = SYSREG->MSSDDR_PLL_STATUS & FAB_PLL_LOCK_MASK; + } while(!pll_locked); + + /* Negate MPLL bypass. */ + SYSREG->MSSDDR_PLL_STATUS_HIGH_CR &= ~FACC_PLL_BYPASS_MASK; + + /* Wait for MPLL to lock. */ + do { + pll_locked = SYSREG->MSSDDR_PLL_STATUS & MPLL_LOCK_MASK; + } while(!pll_locked); + + /* Switch FACC from standby to run mode. */ + SYSREG->MSSDDR_FACC1_CR &= ~FACC_GLMUX_SEL_MASK; + + /* Negate FPGA_SOFTRESET to de-assert MSS_RESET_N_M2F in the fabric */ + SYSREG->SOFT_RST_CR &= ~SYSREG_FPGA_SOFTRESET_MASK; +} +#endif + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.h b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.h new file mode 100644 index 00000000..1118066c --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/CMSIS/system_m2sxxx.h @@ -0,0 +1,49 @@ +/******************************************************************************* + * (c) Copyright 2012-2013 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 CMSIS system initialization. + * + * SVN $Revision: 5280 $ + * SVN $Date: 2013-03-23 02:21:50 +0530 (Sat, 23 Mar 2013) $ + */ + +#ifndef SYSTEM_M2SXXX_H +#define SYSTEM_M2SXXX_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Standard CMSIS global variables. */ +extern uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */ + +/* SmartFusion2 specific clocks. */ +extern uint32_t g_FrequencyPCLK0; /*!< Clock frequency of APB bus 0. */ +extern uint32_t g_FrequencyPCLK1; /*!< Clock frequency of APB bus 1. */ +extern uint32_t g_FrequencyPCLK2; /*!< Clock frequency of APB bus 2. */ +extern uint32_t g_FrequencyFIC0; /*!< Clock frequecny of FPGA fabric interface controller 1. */ +extern uint32_t g_FrequencyFIC1; /*!< Clock frequecny of FPGA fabric inteface controller 2. */ +extern uint32_t g_FrequencyFIC64; /*!< Clock frequecny of 64-bit FPGA fabric interface controller. */ + + +/***************************************************************************//** + * The SystemInit() is a standard CMSIS function called during system startup. + * It is meant to perform low level hardware setup such as configuring DDR and + * SERDES controllers. + */ +void SystemInit(void); + +/***************************************************************************//** + * The SystemCoreClockUpdate() is a standard CMSIS function which can be called + * by the application in order to ensure that the SystemCoreClock global + * variable contains the up to date Cortex-M3 core frequency. Calling this + * function also updates the global variables containing the frequencies of the + * APB busses connecting the peripherals. + */ +void SystemCoreClockUpdate(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_gpio.h b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_gpio.h new file mode 100644 index 00000000..58c98f85 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_gpio.h @@ -0,0 +1,507 @@ +/******************************************************************************* + * (c) Copyright 2008-2015 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 Microcontroller Subsystem GPIO bare metal software driver public + * API. + * + * SVN $Revision: 7748 $ + * SVN $Date: 2015-09-04 11:36:30 +0530 (Fri, 04 Sep 2015) $ + */ + +/*=========================================================================*//** + @mainpage SmartFusion2 MSS GPIO Bare Metal Driver. + + @section intro_sec Introduction + The SmartFusion2 Microcontroller Subsystem (MSS) includes a block of 32 general + purpose input/outputs (GPIO). + This software driver provides a set of functions for controlling the MSS GPIO + block as part of a bare metal system where no operating system is available. + This driver can be adapted for use as part of an operating system but the + implementation of the adaptation layer between this driver and the operating + system's driver model is outside the scope of this driver. + + @section hw_dependencies Hardware Flow Dependencies + The configuration of all features of the MSS GPIOs is covered by this driver + with the exception of the SmartFusion2 IOMUX configuration. SmartFusion2 + allows multiple non-concurrent uses of some external pins through IOMUX + configuration. This feature allows optimization of external pin usage by + assigning external pins for use by either the microcontroller subsystem or the + FPGA fabric. The MSS GPIOs share SmartFusion2 device external pins with the + FPGA fabric and with other MSS peripherals via an IOMUX. The MSS GPIO ports + can alternatively be routed to the FPGA fabric through an IOMUX. + The IOMUXs are configured using the SmartFusion2 MSS configurator tool. You + must ensure that the MSS GPIOs are enabled and configured in the SmartFusion2 + MSS configurator if you wish to use them. For more information on IOMUXs, + refer to the IOMUX section of the SmartFusion2 Microcontroller Subsystem (MSS) + User’s Guide. + The base address, register addresses and interrupt number assignment for the + MSS GPIO block are defined as constants in the SmartFusion2 CMSIS HAL. You + must ensure that the latest SmartFusion2 CMSIS HAL is included in the project + settings of the software tool chain used to build your project and that it is + generated into your project. + + @section theory_op Theory of Operation + The MSS GPIO driver functions are grouped into the following categories: + - Initialization + - Configuration + - Reading and setting GPIO state + - Interrupt control + + Initialization + The MSS GPIO driver is initialized through a call to the MSS_GPIO_init() + function. The MSS_GPIO_init() function must be called before any other MSS + GPIO driver functions can be called. + + Configuration + Each GPIO port is individually configured through a call to the + MSS_GPIO_config() function. Configuration includes deciding if a GPIO port + will be used as an input, an output or both. GPIO ports configured as inputs + can be further configured to generate interrupts based on the input's state. + Interrupts can be level or edge sensitive. + + Reading and Setting GPIO State + The state of the GPIO ports can be read and set using the following functions: + - MSS_GPIO_get_inputs() + - MSS_GPIO_get_outputs() + - MSS_GPIO_set_outputs() + - MSS_GPIO_set_output() + - MSS_GPIO_drive_inout() + + Interrupt Control + Interrupts generated by GPIO ports configured as inputs are controlled using + the following functions: + - MSS_GPIO_enable_irq() + - MSS_GPIO_disable_irq() + - MSS_GPIO_clear_irq() + + *//*=========================================================================*/ +#ifndef MSS_GPIO_H_ +#define MSS_GPIO_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "../../CMSIS/m2sxxx.h" + +/*-------------------------------------------------------------------------*//** + The mss_gpio_id_t enumeration is used to identify individual GPIO ports as an + argument to functions: + - MSS_GPIO_config() + - MSS_GPIO_set_output() and MSS_GPIO_drive_inout() + - MSS_GPIO_enable_irq(), MSS_GPIO_disable_irq() and MSS_GPIO_clear_irq() + */ +typedef enum __mss_gpio_id_t +{ + MSS_GPIO_0 = 0, + MSS_GPIO_1 = 1, + MSS_GPIO_2 = 2, + MSS_GPIO_3 = 3, + MSS_GPIO_4 = 4, + MSS_GPIO_5 = 5, + MSS_GPIO_6 = 6, + MSS_GPIO_7 = 7, + MSS_GPIO_8 = 8, + MSS_GPIO_9 = 9, + MSS_GPIO_10 = 10, + MSS_GPIO_11 = 11, + MSS_GPIO_12 = 12, + MSS_GPIO_13 = 13, + MSS_GPIO_14 = 14, + MSS_GPIO_15 = 15, + MSS_GPIO_16 = 16, + MSS_GPIO_17 = 17, + MSS_GPIO_18 = 18, + MSS_GPIO_19 = 19, + MSS_GPIO_20 = 20, + MSS_GPIO_21 = 21, + MSS_GPIO_22 = 22, + MSS_GPIO_23 = 23, + MSS_GPIO_24 = 24, + MSS_GPIO_25 = 25, + MSS_GPIO_26 = 26, + MSS_GPIO_27 = 27, + MSS_GPIO_28 = 28, + MSS_GPIO_29 = 29, + MSS_GPIO_30 = 30, + MSS_GPIO_31 = 31 +} mss_gpio_id_t; + +/*-------------------------------------------------------------------------*//** + These constant definitions are used as an argument to the + MSS_GPIO_set_outputs() function to identify GPIO ports. A logical OR of these + constants can be used to specify multiple GPIO ports. + These definitions can also be used to identify GPIO ports through logical + operations on the return value of the MSS_GPIO_get_inputs() function. + */ +#define MSS_GPIO_0_MASK 0x00000001uL +#define MSS_GPIO_1_MASK 0x00000002uL +#define MSS_GPIO_2_MASK 0x00000004uL +#define MSS_GPIO_3_MASK 0x00000008uL +#define MSS_GPIO_4_MASK 0x00000010uL +#define MSS_GPIO_5_MASK 0x00000020uL +#define MSS_GPIO_6_MASK 0x00000040uL +#define MSS_GPIO_7_MASK 0x00000080uL +#define MSS_GPIO_8_MASK 0x00000100uL +#define MSS_GPIO_9_MASK 0x00000200uL +#define MSS_GPIO_10_MASK 0x00000400uL +#define MSS_GPIO_11_MASK 0x00000800uL +#define MSS_GPIO_12_MASK 0x00001000uL +#define MSS_GPIO_13_MASK 0x00002000uL +#define MSS_GPIO_14_MASK 0x00004000uL +#define MSS_GPIO_15_MASK 0x00008000uL +#define MSS_GPIO_16_MASK 0x00010000uL +#define MSS_GPIO_17_MASK 0x00020000uL +#define MSS_GPIO_18_MASK 0x00040000uL +#define MSS_GPIO_19_MASK 0x00080000uL +#define MSS_GPIO_20_MASK 0x00100000uL +#define MSS_GPIO_21_MASK 0x00200000uL +#define MSS_GPIO_22_MASK 0x00400000uL +#define MSS_GPIO_23_MASK 0x00800000uL +#define MSS_GPIO_24_MASK 0x01000000uL +#define MSS_GPIO_25_MASK 0x02000000uL +#define MSS_GPIO_26_MASK 0x04000000uL +#define MSS_GPIO_27_MASK 0x08000000uL +#define MSS_GPIO_28_MASK 0x10000000uL +#define MSS_GPIO_29_MASK 0x20000000uL +#define MSS_GPIO_30_MASK 0x40000000uL +#define MSS_GPIO_31_MASK 0x80000000uL + +/*-------------------------------------------------------------------------*//** + These constant definitions are used as an argument to the MSS_GPIO_config() + function to specify the I/O mode of each GPIO port. + */ +#define MSS_GPIO_INPUT_MODE 0x0000000002uL +#define MSS_GPIO_OUTPUT_MODE 0x0000000005uL +#define MSS_GPIO_INOUT_MODE 0x0000000003uL + +/*-------------------------------------------------------------------------*//** + These constant definitions are used as an argument to the MSS_GPIO_config() + function to specify the interrupt mode of each GPIO port. + */ +#define MSS_GPIO_IRQ_LEVEL_HIGH 0x0000000000uL +#define MSS_GPIO_IRQ_LEVEL_LOW 0x0000000020uL +#define MSS_GPIO_IRQ_EDGE_POSITIVE 0x0000000040uL +#define MSS_GPIO_IRQ_EDGE_NEGATIVE 0x0000000060uL +#define MSS_GPIO_IRQ_EDGE_BOTH 0x0000000080uL + +/*-------------------------------------------------------------------------*//** + The mss_gpio_inout_state_t enumeration is used to specify the output state of + an INOUT GPIO port as an argument to the MSS_GPIO_drive_inout() function. + */ +typedef enum mss_gpio_inout_state +{ + MSS_GPIO_DRIVE_LOW = 0, + MSS_GPIO_DRIVE_HIGH, + MSS_GPIO_HIGH_Z +} mss_gpio_inout_state_t; + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_init() function initializes the SmartFusion2 MSS GPIO block. It + resets the MSS GPIO hardware block and it also clears any pending MSS GPIO + interrupts in the ARM Cortex-M3 interrupt controller. When the function exits, + it takes the MSS GPIO block out of reset. + + @param + This function has no parameters. + + @return + This function does not return a value. + */ +void MSS_GPIO_init( void ); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_config() function is used to configure an individual GPIO port. + + @param port_id + The port_id parameter identifies the GPIO port to be configured. An + enumeration item of the form MSS_GPIO_n, where n is the number of the GPIO + port, is used to identify the GPIO port. For example, MSS_GPIO_0 identifies + the first GPIO port and MSS_GPIO_31 is the last one. + + @param config + The config parameter specifies the configuration to be applied to the GPIO + port identified by the port_id parameter. It is a logical OR of the required + I/O mode and the required interrupt mode. The interrupt mode is not relevant + if the GPIO is configured as an output only. + These I/O mode constants are allowed: + - MSS_GPIO_INPUT_MODE + - MSS_GPIO_OUTPUT_MODE + - MSS_GPIO_INOUT_MODE + These interrupt mode constants are allowed: + - MSS_GPIO_IRQ_LEVEL_HIGH + - MSS_GPIO_IRQ_LEVEL_LOW + - MSS_GPIO_IRQ_EDGE_POSITIVE + - MSS_GPIO_IRQ_EDGE_NEGATIVE + - MSS_GPIO_IRQ_EDGE_BOTH + + @return + none. + + Example: + The following call will configure GPIO 4 as an input generating interrupts on + a Low to High transition of the input: + @code + MSS_GPIO_config( MSS_GPIO_4, MSS_GPIO_INPUT_MODE | MSS_GPIO_IRQ_EDGE_POSITIVE ); + @endcode + */ +void MSS_GPIO_config +( + mss_gpio_id_t port_id, + uint32_t config +); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_set_outputs() function is used to set the state of all GPIO ports + configured as outputs. + + @param value + The value parameter specifies the state of the GPIO ports configured as + outputs. It is a bit mask of the form (MSS_GPIO_n_MASK | MSS_GPIO_m_MASK) + where n and m are numbers identifying GPIOs. For example, (MSS_GPIO_0_MASK | + MSS_GPIO_1_MASK | MSS_GPIO_2_MASK ) specifies that the first, second and + third GPIO outputs must be set High and all other GPIO outputs set Low. The + driver provides 32 mask constants, MSS_GPIO_0_MASK to MSS_GPIO_31_MASK + inclusive, for this purpose. + + @return + none. + + Example 1: + Set GPIOs outputs 0 and 8 high and all other GPIO outputs low. + @code + MSS_GPIO_set_outputs( MSS_GPIO_0_MASK | MSS_GPIO_8_MASK ); + @endcode + + Example 2: + Set GPIOs outputs 2 and 4 low without affecting other GPIO outputs. + @code + uint32_t gpio_outputs; + gpio_outputs = MSS_GPIO_get_outputs(); + gpio_outputs &= ~( MSS_GPIO_2_MASK | MSS_GPIO_4_MASK ); + MSS_GPIO_set_outputs( gpio_outputs ); + @endcode + + @see MSS_GPIO_get_outputs() + */ +static __INLINE void +MSS_GPIO_set_outputs +( + uint32_t value +) +{ + GPIO->GPIO_OUT = value; +} + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_set_output() function is used to set the state of a single GPIO + port configured as an output. + Note: Using bit-band writes might be a better option than this function for + performance critical applications where the application code is not + intended to be ported to a processor other than the ARM Cortex-M3 in + SmartFusion2. The bit-band write equivalent to this function would be: + GPIO_BITBAND->GPIO_OUT[port_id] = (uint32_t)value; + + @param port_id + The port_id parameter identifies the GPIO port that is to have its output + set. An enumeration item of the form MSS_GPIO_n, where n is the number of + the GPIO port, is used to identify the GPIO port. For example, MSS_GPIO_0 + identifies the first GPIO port and MSS_GPIO_31 is the last one. + + @param value + The value parameter specifies the desired state for the GPIO output. A value + of 0 will set the output Low and a value of 1 will set the output High. + + @return + This function does not return a value. + + Example: + The following call will set GPIO output 12 High, leaving all other GPIO + outputs unaffected: + @code + _GPIO_set_output(MSS_GPIO_12, 1); + @endcode + */ +void MSS_GPIO_set_output +( + mss_gpio_id_t port_id, + uint8_t value +); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_get_inputs() function is used to read the current state all GPIO + ports configured as inputs. + + @return + This function returns a 32-bit unsigned integer where each bit represents + the state of a GPIO input. The least significant bit represents the state of + GPIO input 0 and the most significant bit the state of GPIO input 31. + + Example: + Read and assign the current state of the GPIO outputs to a variable. + @code + uint32_t gpio_inputs; + gpio_inputs = MSS_GPIO_get_inputs(); + @endcode + */ +static __INLINE uint32_t +MSS_GPIO_get_inputs( void ) +{ + return GPIO->GPIO_IN; +} + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_get_outputs() function is used to read the current state all GPIO + ports configured as outputs. + + @return + This function returns a 32-bit unsigned integer where each bit represents + the state of a GPIO output. The least significant bit represents the state + of GPIO output 0 and the most significant bit the state of GPIO output 31. + + Example: + Read and assign the current state of the GPIO outputs to a variable. + @code + uint32_t gpio_outputs; + gpio_outputs = MSS_GPIO_get_outputs(); + @endcode + */ +static __INLINE uint32_t +MSS_GPIO_get_outputs( void ) +{ + return GPIO->GPIO_OUT; +} + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_drive_inout() function is used to set the output state of a + single GPIO port configured as an INOUT. An INOUT GPIO can be in one of three + states: + - High + - Low + - High impedance + An INOUT output would typically be used where several devices can drive the + state of a shared signal line. The High and Low states are equivalent to the + High and Low states of a GPIO configured as an output. The High impedance + state is used to prevent the GPIO from driving its output state onto the + signal line, while at the same time allowing the input state of the GPIO to + be read. + + @param port_id + The port_id parameter identifies the GPIO port for which you want to change + the output state. An enumeration item of the form MSS_GPIO_n, where n is the + number of the GPIO port, is used to identify the GPIO port. For example, + MSS_GPIO_0 identifies the first GPIO port and MSS_GPIO_31 is the last one. + + @param inout_state + The inout_state parameter specifies the state of the GPIO port identified by + the port_id parameter. Allowed values of type mss_gpio_inout_state_t are as + follows: + - MSS_GPIO_DRIVE_HIGH + - MSS_GPIO_DRIVE_LOW + - MSS_GPIO_HIGH_Z (High impedance) + + @return + This function does not return a value. + + Example: + The call to MSS_GPIO_drive_inout() below will set the GPIO 7 output to the + high impedance state. + @code + MSS_GPIO_drive_inout( MSS_GPIO_7, MSS_GPIO_HIGH_Z ); + @endcode + */ +void MSS_GPIO_drive_inout +( + mss_gpio_id_t port_id, + mss_gpio_inout_state_t inout_state +); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_enable_irq() function is used to enable interrupt generation for + the specified GPIO input. Interrupts are generated based on the state of the + GPIO input and the interrupt mode configured for it by MSS_GPIO_config(). + + @param port_id + The port_id parameter identifies the GPIO port for which you want to enable + interrupt generation. An enumeration item of the form MSS_GPIO_n, where n is + the number of the GPIO port, is used to identify the GPIO port. For example, + MSS_GPIO_0 identifies the first GPIO port and MSS_GPIO_31 is the last one. + + @return + This function does not return a value. + + Example: + The call to MSS_GPIO_enable_irq() below will allow GPIO 8 to generate + interrupts. + @code + MSS_GPIO_enable_irq( MSS_GPIO_8 ); + @endcode + */ +void MSS_GPIO_enable_irq +( + mss_gpio_id_t port_id +); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_disable_irq() function is used to disable interrupt generation + for the specified GPIO input. + + @param port_id + The port_id parameter identifies the GPIO port for which you want to disable + interrupt generation. An enumeration item of the form MSS_GPIO_n, where n is + the number of the GPIO port, is used to identify the GPIO port. For example, + MSS_GPIO_0 identifies the first GPIO port and MSS_GPIO_31 is the last one. + + @return + This function does not return a value. + + Example: + The call to MSS_GPIO_disable_irq() below will prevent GPIO 8 from generating + interrupts. + @code + MSS_GPIO_disable_irq( MSS_GPIO_8 ); + @endcode + */ +void MSS_GPIO_disable_irq +( + mss_gpio_id_t port_id +); + +/*-------------------------------------------------------------------------*//** + The MSS_GPIO_clear_irq() function is used to clear a pending interrupt from + the specified GPIO input. + Note: The MSS_GPIO_clear_irq() function must be called as part of any GPIO + interrupt service routine (ISR) in order to prevent the same interrupt + event retriggering a call to the GPIO ISR. + + @param port_id + The port_id parameter identifies the GPIO port for which you want to clear + the interrupt. An enumeration item of the form MSS_GPIO_n, where n is the + number of the GPIO port, is used to identify the GPIO port. For example, + MSS_GPIO_0 identifies the first GPIO port and MSS_GPIO_31 is the last one. + + @return + none. + + Example: + The example below demonstrates the use of the MSS_GPIO_clear_irq() function + as part of the GPIO 9 interrupt service routine. + @code + void GPIO9_IRQHandler( void ) + { + do_interrupt_processing(); + + MSS_GPIO_clear_irq( MSS_GPIO_9 ); + } + @endcode + */ +void MSS_GPIO_clear_irq +( + mss_gpio_id_t port_id +); + +#ifdef __cplusplus +} +#endif + +#endif /* MSS_GPIO_H_ */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart.h b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart.h new file mode 100644 index 00000000..eb94bf01 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart.h @@ -0,0 +1,2639 @@ +/******************************************************************************* + * (c) Copyright 2011-2013 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 Microcontroller Subsystem MMUART bare metal software driver + * public API. + * + * SVN $Revision: 5610 $ + * SVN $Date: 2013-04-05 14:19:30 +0100 (Fri, 05 Apr 2013) $ + */ +/*=========================================================================*//** + @mainpage SmartFusion2 MSS UART Bare Metal Driver. + ============================================================================== + @section intro_sec Introduction + ============================================================================== + The SmartFusion2 microcontroller subsystem (MSS) includes two multi-mode UART + (MMUART) peripherals for serial communication. This driver provides a set of + functions for controlling the MSS MMUARTs as part of a bare metal system + where no operating system is available. These drivers can be adapted for use + as part of an operating system, but the implementation of the adaptation layer + between this driver and the operating system's driver model is outside the + scope of this driver. + Note: MSS UART is synonymous with MSS MMUART in this document. + + ============================================================================== + @section hw_dependencies Hardware Flow Dependencies + ============================================================================== + The configuration of all features of the MSS MMUART peripherals is covered by + this driver with the exception of the SmartFusion2 IOMUX configuration. + SmartFusion2 allows multiple non-concurrent uses of some external pins through + IOMUX configuration. This feature allows optimization of external pin usage by + assigning external pins for use by either the microcontroller subsystem or the + FPGA fabric. The MSS MMUART serial signals are routed through IOMUXs to the + SmartFusion2 device external pins. The MSS MMUART serial signals may also be + routed through IOMUXs to the SmartFusion2 FPGA fabric. For more information on + IOMUX, refer to the IOMUX section of the SmartFusion2 Microcontroller + Subsystem (MSS) User’s Guide. + The IOMUXs are configured using the SmartFusion2 MSS configurator tool. You + must ensure that the MSS MMUART peripherals are enabled and configured in the + SmartFusion2 MSS configurator if you wish to use them. For more information on + IOMUXs, refer to the IOMUX section of the SmartFusion2 Microcontroller + Subsystem (MSS) User’s Guide. + The base address, register addresses and interrupt number assignment for the + MSS MMUART peripherals are defined as constants in the SmartFusion2 CMSIS HAL. + You must ensure that the latest SmartFusion2 CMSIS HAL is included in the + project settings of the software tool chain used to build your project and + that it is generated into your project. + + ============================================================================== + @section theory_op Theory of Operation + ============================================================================== + The MSS MMUART driver functions are grouped into the following categories: + - Initialization and configuration functions + - Polled transmit and receive functions + - Interrupt driven transmit and receive functions + + -------------------------------- + Initialization and Configuration + -------------------------------- + The MSS MMUART supports the following four broad modes of operation: + - UART or USART mode + - LIN mode + - IrDA mode + - Smartcard or ISO 7816 mode + The MSS MMUART driver provides the MSS_UART_init(), MSS_UART_lin_init(), + MSS_UART_irda_init() and MSS_UART_smartcard_init() functions to initialize the + MSS MMUARTs for operation in one of these modes. One of these initialization + functions must be called before any other MSS MMUART driver functions can be + called. The MSS MMUART operating modes are mutually exclusive; therefore only + one of the initialization functions must be called. The first parameter of the + initialization functions is a pointer to one of two global data structures + used to store state information for each MSS MMUART. A pointer to these data + structures is also used as the first parameter to many of the driver functions + to identify which MSS MMUART will be used by the called function. The names of + these two data structures are g_mss_uart0 and g_mss_uart1. Therefore, any call + to an MSS MMUART function should be of the form + MSS_UART_function_name( &g_mss_uart0, ... ) or + MSS_UART_function_name( &g_mss_uart1, ... ). + + UART or USART Mode + For the UART or USART modes of operation, the MSS MMUART driver is initialized + through a call to the MSS_UART_init() function. This function takes the UART’s + configuration as its parameters. The MSS_UART_init() function must be called + before any other MSS MMUART driver functions can be called. + The MSS_UART_init() function configures the baud rate based on the input baud + rate parameter and if possible uses a fractional baud rate for greater + precision. This function disables the LIN, IrDA and SmartCard modes. + + LIN mode + For the LIN mode of operation, the MSS MMUART driver is initialized through a + call to the MSS_UART_lin_init() function. This function takes the LIN node’s + configuration as its parameters. The MSS_UART_lin_init() function must be + called before any other MSS MMUART driver functions can be called. The + MSS_UART_lin_init() function configures the baud rate based on the input baud + rate parameter and if possible uses a fractional baud rate for greater + precision. This function disables the IrDA and SmartCard modes. + The driver also provides the following LIN mode configuration functions: + - MSS_UART_set_break() + - MSS_UART_clear_break() + - MSS_UART_set_pidpei_handler() + - MSS_UART_set_linbreak_handler() + - MSS_UART_set_linsync_handler() + Note: These LIN mode configuration functions can only be called after the + MSS_UART_lin_init() function is called. + + IrDA mode + For the IrDA mode of operation, the driver is initialized through a call to + the MSS_UART_irda_init() function. This function takes the IrDA node’s + configuration as its parameters. The MSS_UART_irda_init() function must be + called before any other MSS MMUART driver functions can be called. The + MSS_UART_irda_init() function configures the baud rate based on the input baud + rate parameter and if possible uses a fractional baud rate for greater + precision. This function disables the LIN and SmartCard modes. + + Smartcard or ISO 7816 mode + For the Smartcard or ISO 7816 mode of operation, the driver is initialized + through a call to the MSS_UART_smartcard_init() function. This function takes + the smartcard configuration as its parameters. The MSS_UART_smartcard_init() + function must be called before any other MSS MMUART driver functions can be + called. The MSS_UART_smartcard_init() function configures the baud rate based + on the input baud rate parameter and if possible uses a fractional baud rate + for greater precision. This function disables the LIN and IrDA modes. + The driver also provides the following Smartcard mode configuration functions: + - MSS_UART_enable_halfduplex() + - MSS_UART_disable_halfduplex() + - MSS_UART_set_nack_handler() + Note: These Smartcard mode configuration functions can only be called after + the MSS_UART_smartcard_init() function is called. + + Common Configuration Functions + The driver also provides the configuration functions that can be used with all + MSS MMUART operating modes. These common configuration functions are as + follows: + - MSS_UART_set_rx_endian() + - MSS_UART_set_tx_endian() + - MSS_UART_enable_afclear() + - MSS_UART_disable_afclear() + - MSS_UART_enable_rx_timeout() + - MSS_UART_disable_rx_timeout() + - MSS_UART_enable_tx_time_guard() + - MSS_UART_disable_tx_time_guard() + - MSS_UART_set_address() + - MSS_UART_set_ready_mode() + - MSS_UART_set_usart_mode() + - MSS_UART_set_filter_length() + - MSS_UART_enable_afm() + - MSS_UART_disable_afm() + Note: These configuration functions can only be called after one of the + MSS_UART_init(), MSS_UART_lin_init(), MSS_UART_irda_init() or + MSS_UART_smartcard_init() functions is called. + + -------------------------------------- + Polled Transmit and Receive Operations + -------------------------------------- + The driver can be used to transmit and receive data once initialized. + Data is transmitted using the MSS_UART_polled_tx() function. This function is + blocking, meaning that it will only return once the data passed to the + function has been sent to the MSS MMUART hardware transmitter. Data received + by the MSS MMUART hardware receiver can be read by the MSS_UART_get_rx() + function. + The MSS_UART_polled_tx_string() function is provided to transmit a NULL (‘\0’) + terminated string in polled mode. This function is blocking, meaning that it + will only return once the data passed to the function has been sent to the MSS + MMUART hardware transmitter. + The MSS_UART_fill_tx_fifo() function fills the MSS MMUART hardware transmit + FIFO with data from a buffer passed as a parameter and returns the number of + bytes transferred to the FIFO. If the transmit FIFO is not empty when the + MSS_UART_fill_tx_fifo() function is called it returns immediately without + transferring any data to the FIFO. + + --------------------------- + Interrupt Driven Operations + --------------------------- + The driver can also transmit or receive data under interrupt control, freeing + your application to perform other tasks until an interrupt occurs indicating + that the driver’s attention is required. + + Interrupt Handlers + The MSS MMUART driver supports all types of interrupt triggered by the MSS + MMUART. The driver’s internal top level interrupt handler identifies the + source of the MSS MMUART interrupt and calls the corresponding lower level + handler function that you previously registered with the driver through calls + to the MSS_UART_set_rx_handler(), MSS_UART_set_tx_handler(), + MSS_UART_set_rxstatus_handler(), and MSS_UART_set_modemstatus_handler() + functions. You are responsible for creating these lower level interrupt + handlers as part of your application program and registering them with the + driver. + Note: The SmartFusion2 CMSIS-PAL defines the UART0_IRQHandler() and + UART1_IRQHandler() functions (with weak linkage) and assigns them as the + interrupt service routines (ISR) for the MSS MMUART interrupt inputs to + the Cortex-M3 NVIC. The MSS MMUART driver provides the implementation + functions for both of these ISRs from which it calls its own internal + top level, interrupt handler function. + The MSS_UART_enable_irq() and MSS_UART_disable_irq() functions are used to + enable or disable the received line status, received data available/character + timeout, transmit holding register empty and modem status interrupts at the + MSS MMUART level. The MSS_UART_enable_irq() function also enables the MSS + MMUART instance interrupt at the Cortex-M3 level. + + Transmitting Data + Interrupt-driven transmit is initiated by a call to MSS_UART_irq_tx(), + specifying the block of data to transmit. Your application is then free to + perform other tasks and inquire later whether transmit has completed by + calling the MSS_UART_tx_complete() function. The MSS_UART_irq_tx() function + enables the UART’s transmit holding register empty (THRE) interrupt and then, + when the interrupt goes active, the driver’s default THRE interrupt handler + transfers the data block to the UART until the entire block is transmitted. + Note: You can use the MSS_UART_set_tx_handler() function to assign an + alternative handler to the THRE interrupt. In this case, you must not + use the MSS_UART_irq_tx() function to initiate the transmit, as this + will re-assign the driver’s default THRE interrupt handler to the THRE + interrupt. Instead, your alternative THRE interrupt handler must include + a call to the MSS_UART_fill_tx_fifo() function to transfer the data to + the UART. + + Receiving Data + Interrupt-driven receive is performed by first calling + MSS_UART_set_rx_handler() to register a receive handler function that will be + called by the driver whenever receive data is available. You must provide this + receive handler function which must include a call to the MSS_UART_get_rx() + function to actually read the received data. + + ----------- + UART Status + ----------- + The function MSS_UART_get_rx_status() is used to read the receiver error + status. This function returns the overrun, parity, framing, break, and FIFO + error status of the receiver. + The function MSS_UART_get_tx_status() is used to read the transmitter status. + This function returns the transmit empty (TEMT) and transmit holding register + empty (THRE) status of the transmitter. + The function MSS_UART_get_modem_status() is used to read the modem status + flags. This function returns the current value of the modem status register. + + -------- + Loopback + -------- + The MSS_UART_set_loopback() function can be used to locally loopback the Tx + and Rx lines of a UART. This is not to be confused with the loopback of UART0 + to UART1, which can be achieved through the microcontroller subsystem’s system + registers. + + *//*=========================================================================*/ +#ifndef __MSS_UART_H_ +#define __MSS_UART_H_ 1 + +#include "../../CMSIS/m2sxxx.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/***************************************************************************//** + Baud rates + The following definitions are used to specify standard baud rates as a + parameter to the MSS_UART_init() function. + */ +#define MSS_UART_110_BAUD 110 +#define MSS_UART_300_BAUD 300 +#define MSS_UART_1200_BAUD 1200 +#define MSS_UART_2400_BAUD 2400 +#define MSS_UART_4800_BAUD 4800 +#define MSS_UART_9600_BAUD 9600 +#define MSS_UART_19200_BAUD 19200 +#define MSS_UART_38400_BAUD 38400 +#define MSS_UART_57600_BAUD 57600 +#define MSS_UART_115200_BAUD 115200 +#define MSS_UART_230400_BAUD 230400 +#define MSS_UART_460800_BAUD 460800 +#define MSS_UART_921600_BAUD 921600 + +/***************************************************************************//** + Data Bits Length + The following defines are used to build the value of the MSS_UART_init() + function line_config parameter. + */ +#define MSS_UART_DATA_5_BITS ( (uint8_t) 0x00 ) +#define MSS_UART_DATA_6_BITS ( (uint8_t) 0x01 ) +#define MSS_UART_DATA_7_BITS ( (uint8_t) 0x02 ) +#define MSS_UART_DATA_8_BITS ( (uint8_t) 0x03 ) + +/***************************************************************************//** + Parity + The following defines are used to build the value of the MSS_UART_init() + function line_config parameter. + */ +#define MSS_UART_NO_PARITY ( (uint8_t) 0x00 ) +#define MSS_UART_ODD_PARITY ( (uint8_t) 0x08 ) +#define MSS_UART_EVEN_PARITY ( (uint8_t) 0x18 ) +#define MSS_UART_STICK_PARITY_0 ( (uint8_t) 0x38 ) +#define MSS_UART_STICK_PARITY_1 ( (uint8_t) 0x28 ) + +/***************************************************************************//** + Number of Stop Bits + The following defines are used to build the value of the MSS_UART_init() + function line_config parameter. + */ +#define MSS_UART_ONE_STOP_BIT ( (uint8_t) 0x00 ) +#define MSS_UART_ONEHALF_STOP_BIT ( (uint8_t) 0x04 ) +#define MSS_UART_TWO_STOP_BITS ( (uint8_t) 0x04 ) + +/***************************************************************************//** + Receiver Error Status + The following defines are used to determine the UART receiver error type. + These bit mask constants are used with the return value of the + MSS_UART_get_rx_status() function to find out if any errors occurred while + receiving data. + */ +#define MSS_UART_INVALID_PARAM ( (uint8_t)0xFF ) +#define MSS_UART_NO_ERROR ( (uint8_t)0x00 ) +#define MSS_UART_OVERUN_ERROR ( (uint8_t)0x02 ) +#define MSS_UART_PARITY_ERROR ( (uint8_t)0x04 ) +#define MSS_UART_FRAMING_ERROR ( (uint8_t)0x08 ) +#define MSS_UART_BREAK_ERROR ( (uint8_t)0x10 ) +#define MSS_UART_FIFO_ERROR ( (uint8_t)0x80 ) + +/***************************************************************************//** + Transmitter Status + The following definitions are used to determine the UART transmitter status. + These bit mask constants are used with the return value of the + MSS_UART_get_tx_status() function to find out the status of the transmitter. + */ +#define MSS_UART_TX_BUSY ( (uint8_t) 0x00 ) +#define MSS_UART_THRE ( (uint8_t) 0x20 ) +#define MSS_UART_TEMT ( (uint8_t) 0x40 ) + +/***************************************************************************//** + Modem Status + The following defines are used to determine the modem status. These bit + mask constants are used with the return value of the + MSS_UART_get_modem_status() function to find out the modem status of + the UART. + */ +#define MSS_UART_DCTS ( (uint8_t) 0x01 ) +#define MSS_UART_DDSR ( (uint8_t) 0x02 ) +#define MSS_UART_TERI ( (uint8_t) 0x04 ) +#define MSS_UART_DDCD ( (uint8_t) 0x08 ) +#define MSS_UART_CTS ( (uint8_t) 0x10 ) +#define MSS_UART_DSR ( (uint8_t) 0x20 ) +#define MSS_UART_RI ( (uint8_t) 0x40 ) +#define MSS_UART_DCD ( (uint8_t) 0x80 ) + +/***************************************************************************//** + This typedef specifies the irq_mask parameter for the MSS_UART_enable_irq() + and MSS_UART_disable_irq() functions. The driver defines a set of bit masks + that are used to build the value of the irq_mask parameter. A bitwise OR of + these bit masks is used to enable or disable multiple MSS MMUART interrupts. + */ +typedef uint16_t mss_uart_irq_t; + +/***************************************************************************//** + The following defines specify the interrupt masks to enable and disable MSS + MMUART interrupts. They are used to build the value of the irq_mask parameter + for the MSS_UART_enable_irq() and MSS_UART_disable_irq() functions. A bitwise + OR of these constants is used to enable or disable multiple interrupts. + */ +#define MSS_UART_RBF_IRQ 0x001 +#define MSS_UART_TBE_IRQ 0x002 +#define MSS_UART_LS_IRQ 0x004 +#define MSS_UART_MS_IRQ 0x008 +#define MSS_UART_RTO_IRQ 0x010 +#define MSS_UART_NACK_IRQ 0x020 +#define MSS_UART_PIDPE_IRQ 0x040 +#define MSS_UART_LINB_IRQ 0x080 +#define MSS_UART_LINS_IRQ 0x100 +#define MSS_UART_INVALID_IRQ UINT16_MAX + +/***************************************************************************//** + This enumeration specifies the receiver FIFO trigger level. This is the number + of bytes that must be received before the UART generates a receive data + available interrupt. It provides the allowed values for the + MSS_UART_set_rx_handler() function trigger_level parameter. + */ +typedef enum { + MSS_UART_FIFO_SINGLE_BYTE = 0x00, + MSS_UART_FIFO_FOUR_BYTES = 0x40, + MSS_UART_FIFO_EIGHT_BYTES = 0x80, + MSS_UART_FIFO_FOURTEEN_BYTES = 0xC0, + MSS_UART_FIFO_INVALID_TRIG_LEVEL +} mss_uart_rx_trig_level_t; + +/***************************************************************************//** + This enumeration specifies the loopback configuration of the UART. It provides + the allowed values for the MSS_UART_set_loopback() function’s loopback + parameter. Use MSS_UART_LOCAL_LOOPBACK_ON to set up the UART to locally + loopback its Tx and Rx lines. Use MSS_UART_REMOTE_LOOPBACK_ON to set up the + UART in remote loopback mode. + */ +typedef enum { + MSS_UART_LOCAL_LOOPBACK_OFF, + MSS_UART_LOCAL_LOOPBACK_ON, + MSS_UART_REMOTE_LOOPBACK_OFF, + MSS_UART_REMOTE_LOOPBACK_ON, + MSS_UART_AUTO_ECHO_OFF, + MSS_UART_AUTO_ECHO_ON, + MSS_UART_INVALID_LOOPBACK +} mss_uart_loopback_t; + +/***************************************************************************//** + IrDA input / output polarity. + This enumeration specifies the RZI modem polarity for input and output signals. + This is passed as parameters in MSS_UART_irda_init() function. + */ +typedef enum { + MSS_UART_ACTIVE_LOW = 0u, + MSS_UART_ACTIVE_HIGH = 1u, + MSS_UART_INVALID_POLARITY +} mss_uart_rzi_polarity_t; + +/***************************************************************************//** + IrDA input / output pulse width. + This enumeration specifies the RZI modem pulse width for input and output signals. + This is passed as parameters in MSS_UART_irda_init() function. + */ +typedef enum { + MSS_UART_3_BY_16 = 0u, + MSS_UART_1_BY_4 = 1u, + MSS_UART_INVALID_PW +} mss_uart_rzi_pulsewidth_t; + +/***************************************************************************//** + Tx / Rx endianess. + This enumeration specifies the MSB first or LSB first for MSS UART transmitter + and receiver. The parameter of this type shall be passed in + MSS_UART_set_rx_endian()and MSS_UART_set_tx_endian() functions. + */ +typedef enum { + MSS_UART_LITTLEEND, + MSS_UART_BIGEND, + MSS_UART_INVALID_ENDIAN +} mss_uart_endian_t; + +/***************************************************************************//** + Glitch filter length. + This enumeration specifies the glitch filter length. The function + MSS_UART_set_filter_length() accepts the parameter of this type. + */ +typedef enum { + MSS_UART_LEN0 = 0, + MSS_UART_LEN1 = 1, + MSS_UART_LEN2 = 2, + MSS_UART_LEN3 = 3, + MSS_UART_LEN4 = 4, + MSS_UART_LEN5 = 5, + MSS_UART_LEN6 = 6, + MSS_UART_LEN7 = 7, + MSS_UART_INVALID_FILTER_LENGTH = 8 +} mss_uart_filter_length_t; + +/***************************************************************************//** + TXRDY and RXRDY mode. + This enumeration specifies the TXRDY and RXRDY signal modes. The function + MSS_UART_set_ready_mode() accepts the parameter of this type. + */ +typedef enum { + MSS_UART_READY_MODE0, + MSS_UART_READY_MODE1, + MSS_UART_INVALID_READY_MODE +} mss_uart_ready_mode_t; + +/***************************************************************************//** + USART mode of operation. + This enumeration specifies the mode of operation of MSS UART when operating + as USART. The function MSS_UART_set_usart_mode() accepts the parameter of this type. + */ +typedef enum { + MSS_UART_ASYNC_MODE = 0, + MSS_UART_SYNC_SLAVE_POS_EDGE_CLK = 1, + MSS_UART_SYNC_SLAVE_NEG_EDGE_CLK = 2, + MSS_UART_SYNC_MASTER_POS_EDGE_CLK = 3, + MSS_UART_SYNC_MASTER_NEG_EDGE_CLK = 4, + MSS_UART_INVALID_SYNC_MODE = 5 +} mss_uart_usart_mode_t; + + +/***************************************************************************//** + MSS UART instance type. + This is type definition for MSS UART instance. You need to create and + maintain a record of this type. This holds all data regarding the MSS UART + instance + */ +typedef struct mss_uart_instance mss_uart_instance_t; + +/***************************************************************************//** + Interrupt handler prototype. + This typedef specifies the function prototype for MSS UART interrupt handlers. + All interrupt handlers registered with the MSS UART driver must be of this type. + The interrupt handlers are registered with the driver through the + MSS_UART_set_rx_handler(), MSS_UART_set_tx_handler(), + MSS_UART_set_rxstatus_handler(), and MSS_UART_set_modemstatus_handler() + functions. + The this_uart parameter is a pointer to either g_mss_uart0 or g_mss_uart1 to + identify the MSS UART to associate with the handler function. + */ +typedef void (*mss_uart_irq_handler_t)( mss_uart_instance_t * this_uart ); + +/***************************************************************************//** + mss_uart_instance. + There is one instance of this structure for each instance of the + microcontroller subsystem’s UARTs. Instances of this structure are used to + identify a specific UART. A pointer to an initialized instance of the + mss_uart_instance_t structure is passed as the first parameter to + MSS UART driver functions to identify which UART should perform the + requested operation. + */ +struct mss_uart_instance{ + /* CMSIS related defines identifying the UART hardware. */ + UART_TypeDef * hw_reg; /*!< Pointer to UART registers. */ + IRQn_Type irqn; /*!< UART's Cortex-M3 NVIC interrupt number. */ + uint32_t baudrate; /*!< Operating baud rate. */ + uint8_t lineconfig; /*!< Line configuration parameters. */ + uint8_t status; /*!< Sticky line status. */ + + /* transmit related info (used with interrupt driven transmit): */ + const uint8_t * tx_buffer; /*!< Pointer to transmit buffer. */ + uint32_t tx_buff_size; /*!< Transmit buffer size. */ + uint32_t tx_idx; /*!< Index within transmit buffer of next byte to transmit.*/ + + /* line status interrupt handler:*/ + mss_uart_irq_handler_t linests_handler; /*!< Pointer to user registered line status handler. */ + /* receive interrupt handler:*/ + mss_uart_irq_handler_t rx_handler; /*!< Pointer to user registered receiver handler. */ + /* transmit interrupt handler:*/ + mss_uart_irq_handler_t tx_handler; /*!< Pointer to user registered transmit handler. */ + /* modem status interrupt handler:*/ + mss_uart_irq_handler_t modemsts_handler; /*!< Pointer to user registered modem status handler. */ + /* receiver timeout interrupt handler */ + mss_uart_irq_handler_t rto_handler; /*!< Pointer to user registered receiver timeout handler. */ + /* NACK interrupt handler */ + mss_uart_irq_handler_t nack_handler; /*!< Pointer to user registered NACK handler. */ + /* PID parity prror interrup handler */ + mss_uart_irq_handler_t pid_pei_handler; /*!< Pointer to user registered PID parity error handler. */ + /* LIN break interrupt handler */ + mss_uart_irq_handler_t break_handler; /*!< Pointer to user registered LIN break handler. */ + /* LIN sync detection interrupt handler */ + mss_uart_irq_handler_t sync_handler; /*!< Pointer to user registered LIN sync dectection handler. */ +}; + +/***************************************************************************//** + This instance of mss_uart_instance_t holds all data related to the operations + performed by UART0. The function MSS_UART_init() initializes this structure. + A pointer to g_mss_uart0 is passed as the first parameter to MSS UART driver + functions to indicate that UART0 should perform the requested operation. + */ +extern mss_uart_instance_t g_mss_uart0; + +/***************************************************************************//** + This instance of mss_uart_instance_t holds all data related to the operations + performed by UART1. The function MSS_UART_init() initializes this structure. + A pointer to g_mss_uart1 is passed as the first parameter to MSS UART driver + functions to indicate that UART1 should perform the requested operation. + */ +extern mss_uart_instance_t g_mss_uart1; + +/***************************************************************************//** + The MSS_UART_init() function initializes and configures one of the SmartFusion2 + MSS UARTs with the configuration passed as a parameter. The configuration + parameters are the baud_rate which is used to generate the baud value and the + line_config which is used to specify the line configuration (bit length, + stop bits and parity). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t structure + identifying the MSS UART hardware block to be initialized. There are two + such data structures, g_mss_uart0 and g_mss_uart1, associated with MSS + UART0 and MSS UART1 respectively. This parameter must point to either + the g_mss_uart0 or g_mss_uart1 global data structure defined within + the UART driver.. + + @param baud_rate + The baud_rate parameter specifies the baud rate. It can be specified for + common baud rates’ using the following defines: + • MSS_UART_110_BAUD + • MSS_UART_300_BAUD + • MSS_UART_1200_BAUD + • MSS_UART_2400_BAUD + • MSS_UART_4800_BAUD + • MSS_UART_9600_BAUD + • MSS_UART_19200_BAUD + • MSS_UART_38400_BAUD + • MSS_UART_57600_BAUD + • MSS_UART_115200_BAUD + • MSS_UART_230400_BAUD + • MSS_UART_460800_BAUD + • MSS_UART_921600_BAUD + Alternatively, any nonstandard baud rate can be specified by simply passing + the actual required baud rate as the value for this parameter. + + @param line_config + The line_config parameter is the line configuration specifying the bit length, + number of stop bits and parity settings. This is a bitwise OR of one value + from each of the following groups of allowed values: + • One of the following to specify the transmit/receive data bit length: + MSS_UART_DATA_5_BITS + MSS_UART_DATA_6_BITS, + MSS_UART_DATA_7_BITS + MSS_UART_DATA_8_BITS + • One of the following to specify the parity setting: + MSS_UART_NO_PARITY + MSS_UART_EVEN_PARITY + MSS_UART_ODD_PARITY + MSS_UART_STICK_PARITY_0 + MSS_UART_STICK_PARITY_1 + • One of the following to specify the number of stop bits: + MSS_UART_ONE_STOP_BIT + MSS_UART_ONEHALF_STOP_BIT + MSS_UART_TWO_STOP_BITS + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + return(0); + } + @endcode + */ +void +MSS_UART_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +); + +/***************************************************************************//** + The MSS_UART_lin_init() function is used to initialize the MSS UART for + LIN mode of operation. The configuration parameters are the baud_rate which is + used to generate the baud value and the line_config which is used to specify + the line configuration (bit length, stop bits and parity). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param baud_rate + The baud_rate parameter specifies the baud rate. It can be specified for + common baud rates’ using the following defines: + • MSS_UART_110_BAUD + • MSS_UART_300_BAUD + • MSS_UART_1200_BAUD + • MSS_UART_2400_BAUD + • MSS_UART_4800_BAUD + • MSS_UART_9600_BAUD + • MSS_UART_19200_BAUD + • MSS_UART_38400_BAUD + • MSS_UART_57600_BAUD + • MSS_UART_115200_BAUD + • MSS_UART_230400_BAUD + • MSS_UART_460800_BAUD + • MSS_UART_921600_BAUD + Alternatively, any nonstandard baud rate can be specified by simply passing + the actual required baud rate as the value for this parameter. + + @param line_config + The line_config parameter is the line configuration specifying the bit length, + number of stop bits and parity settings. This is a bitwise OR of one value + from each of the following groups of allowed values: + • One of the following to specify the transmit/receive data bit length: + MSS_UART_DATA_5_BITS + MSS_UART_DATA_6_BITS, + MSS_UART_DATA_7_BITS + MSS_UART_DATA_8_BITS + • One of the following to specify the parity setting: + MSS_UART_NO_PARITY + MSS_UART_EVEN_PARITY + MSS_UART_ODD_PARITY + MSS_UART_STICK_PARITY_0 + MSS_UART_STICK_PARITY_1 + • One of the following to specify the number of stop bits: + MSS_UART_ONE_STOP_BIT + MSS_UART_ONEHALF_STOP_BIT + MSS_UART_TWO_STOP_BITS + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + MSS_UART_lin_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + return(0); + } + @endcode + */ +void +MSS_UART_lin_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +); + +/***************************************************************************//** + The MSS_UART_irda_init() function is used to initialize the MSS UART instance + referenced by the parameter this_uart for IrDA mode of operation. This + function must be called before calling any other IrDA functionality specific + functions. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param baud_rate + The baud_rate parameter specifies the baud rate. It can be specified for + common baud rates’ using the following defines: + • MSS_UART_110_BAUD + • MSS_UART_300_BAUD + • MSS_UART_1200_BAUD + • MSS_UART_2400_BAUD + • MSS_UART_4800_BAUD + • MSS_UART_9600_BAUD + • MSS_UART_19200_BAUD + • MSS_UART_38400_BAUD + • MSS_UART_57600_BAUD + • MSS_UART_115200_BAUD + • MSS_UART_230400_BAUD + • MSS_UART_460800_BAUD + • MSS_UART_921600_BAUD + Alternatively, any nonstandard baud rate can be specified by simply passing + the actual required baud rate as the value for this parameter. + + @param line_config + The line_config parameter is the line configuration specifying the bit length, + number of stop bits and parity settings. This is a bitwise OR of one value + from each of the following groups of allowed values: + • One of the following to specify the transmit/receive data bit length: + MSS_UART_DATA_5_BITS + MSS_UART_DATA_6_BITS, + MSS_UART_DATA_7_BITS + MSS_UART_DATA_8_BITS + • One of the following to specify the parity setting: + MSS_UART_NO_PARITY + MSS_UART_EVEN_PARITY + MSS_UART_ODD_PARITY + MSS_UART_STICK_PARITY_0 + MSS_UART_STICK_PARITY_1 + • One of the following to specify the number of stop bits: + MSS_UART_ONE_STOP_BIT + MSS_UART_ONEHALF_STOP_BIT + MSS_UART_TWO_STOP_BITS + + @return + This function does not return a value. + + Example: + @code + MSS_UART_irda_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT, + MSS_UART_ACTIVE_LOW, + MSS_UART_ACTIVE_LOW, + MSS_UART_3_BY_16); + @endcode + */ +void +MSS_UART_irda_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config, + mss_uart_rzi_polarity_t rxpol, + mss_uart_rzi_polarity_t txpol, + mss_uart_rzi_pulsewidth_t pw +); + +/***************************************************************************//** + The MSS_UART_smartcard_init() function is used to initialize the MSS UART + for ISO 7816 (smartcard) mode of operation. The configuration parameters are + the baud_rate which is used to generate the baud value and the line_config + which is used to specify the line configuration (bit length, stop bits and parity). + This function disables all other modes of the MSS UART instance pointed by + the parameter this_uart. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param baud_rate + The baud_rate parameter specifies the baud rate. It can be specified for + common baud rates’ using the following defines: + • MSS_UART_110_BAUD + • MSS_UART_300_BAUD + • MSS_UART_1200_BAUD + • MSS_UART_2400_BAUD + • MSS_UART_4800_BAUD + • MSS_UART_9600_BAUD + • MSS_UART_19200_BAUD + • MSS_UART_38400_BAUD + • MSS_UART_57600_BAUD + • MSS_UART_115200_BAUD + • MSS_UART_230400_BAUD + • MSS_UART_460800_BAUD + • MSS_UART_921600_BAUD + Alternatively, any nonstandard baud rate can be specified by simply passing + the actual required baud rate as the value for this parameter. + + @param line_config + The line_config parameter is the line configuration specifying the bit length, + number of stop bits and parity settings. This is a bitwise OR of one value + from each of the following groups of allowed values: + • One of the following to specify the transmit/receive data bit length: + MSS_UART_DATA_5_BITS + MSS_UART_DATA_6_BITS, + MSS_UART_DATA_7_BITS + MSS_UART_DATA_8_BITS + • One of the following to specify the parity setting: + MSS_UART_NO_PARITY + MSS_UART_EVEN_PARITY + MSS_UART_ODD_PARITY + MSS_UART_STICK_PARITY_0 + MSS_UART_STICK_PARITY_1 + • One of the following to specify the number of stop bits: + MSS_UART_ONE_STOP_BIT + MSS_UART_ONEHALF_STOP_BIT + MSS_UART_TWO_STOP_BITS + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + MSS_UART_smartcard_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + return(0); + } + @endcode + */ +void +MSS_UART_smartcard_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +); + +/***************************************************************************//** + The function MSS_UART_polled_tx() is used to transmit data. It transfers the + contents of the transmitter data buffer, passed as a function parameter, into + the UART’s hardware transmitter FIFO. It returns when the full content of the + transmit data buffer has been transferred to the UART’s transmit FIFO. It is + safe to release or reuse the memory used as the transmitter data buffer once + this function returns. + + Note: This function reads the UART’s line status register (LSR) to poll + for the active state of the transmitter holding register empty (THRE) bit + before transferring data from the data buffer to the transmitter FIFO. It + transfers data to the transmitter FIFO in blocks of 16 bytes or less and + allows the FIFO to empty before transferring the next block of data. + + Note: The actual transmission over the serial connection will still be + in progress when this function returns. Use the MSS_UART_get_tx_status() + function if you need to know when the transmitter is empty. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param pbuff + The pbuff parameter is a pointer to a buffer containing the data to + be transmitted. + + @param tx_size + The tx_size parameter specifies the size, in bytes, of the data to + be transmitted. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + uint8_t message[12] = "Hello World"; + + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_polled_tx(&g_mss_uart0, message, sizeof(message)); + + return(0); + } + @endcode + */ +void +MSS_UART_polled_tx +( + mss_uart_instance_t * this_uart, + const uint8_t * pbuff, + uint32_t tx_size +); + +/***************************************************************************//** + The function MSS_UART_polled_tx_string() is used to transmit a NULL ('\0') + terminated string. It transfers the text string, from the buffer starting at + the address pointed to by p_sz_string into the UART’s hardware transmitter + FIFO. It returns when the complete string has been transferred to the UART's + transmit FIFO. It is safe to release or reuse the memory used as the string + buffer once this function returns. + + Note: This function reads the UART’s line status register (LSR) to poll + for the active state of the transmitter holding register empty (THRE) bit + before transferring data from the data buffer to the transmitter FIFO. It + transfers data to the transmitter FIFO in blocks of 16 bytes or less and + allows the FIFO to empty before transferring the next block of data. + + Note: The actual transmission over the serial connection will still be + in progress when this function returns. Use the MSS_UART_get_tx_status() + function if you need to know when the transmitter is empty. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param p_sz_string + The p_sz_string parameter is a pointer to a buffer containing the NULL + ('\0') terminated string to be transmitted. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + uint8_t message[12] = "Hello World"; + + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_polled_tx_string(&g_mss_uart0, message); + + return(0); + } + @endcode + + */ +void +MSS_UART_polled_tx_string +( + mss_uart_instance_t * this_uart, + const uint8_t * p_sz_string +); + + +/***************************************************************************//** + The function MSS_UART_irq_tx() is used to initiate an interrupt-driven + transmit. It returns immediately after making a note of the transmit buffer + location and enabling transmit interrupts both at the UART and Cortex-M3 NVIC + level. This function takes a pointer via the pbuff parameter to a memory + buffer containing the data to transmit. The memory buffer specified through + this pointer must remain allocated and contain the data to transmit until + the transmit completion has been detected through calls to function + MSS_UART_tx_complete(). The actual transmission over the serial connection + is still in progress until calls to the MSS_UART_tx_complete() function + indicate transmit completion. + + Note: The MSS_UART_irq_tx() function enables both the transmit holding + register empty (THRE) interrupt in the UART and the MSS UART instance + interrupt in the Cortex-M3 NVIC as part of its implementation. + + Note: The MSS_UART_irq_tx() function assigns an internal default transmit + interrupt handler function to the UART’s THRE interrupt. This interrupt + handler overrides any custom interrupt handler that you may have previously + registered using the MSS_UART_set_tx_handler() function. + + Note: The MSS_UART_irq_tx() function’s default transmit interrupt + handler disables the UART’s THRE interrupt when all of the data has + been transferred to the UART's transmit FIFO. + + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param pbuff + The pbuff parameter is a pointer to a buffer containing the data + to be transmitted. + + @param tx_size + The tx_size parameter specifies the size, in bytes, of the data + to be transmitted. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + int main(void) + { + uint8_t tx_buff[10] = "abcdefghi"; + + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_irq_tx(&g_mss_uart0, tx_buff, sizeof(tx_buff)); + + while(0 == MSS_UART_tx_complete(&g_mss_uart0)) + { + ; + } + return(0); + } + @endcode + */ +void +MSS_UART_irq_tx +( + mss_uart_instance_t * this_uart, + const uint8_t * pbuff, + uint32_t tx_size +); + +/***************************************************************************//** + The MSS_UART_tx_complete() function is used to find out if the interrupt-driven + transmit previously initiated through a call to MSS_UART_irq_tx() is complete. + This is typically used to find out when it is safe to reuse or release the + memory buffer holding transmit data. + + Note: The transfer of all of the data from the memory buffer to the UART’s + transmit FIFO and the actual transmission over the serial connection are both + complete when a call to the MSS_UART_tx_complete() function indicates transmit + completion. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function return a non-zero value if transmit has completed, otherwise + it returns zero. + + Example: + See the MSS_UART_irq_tx() function for an example that uses the + MSS_UART_tx_complete() function. + */ +int8_t +MSS_UART_tx_complete +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_get_rx() function reads the content of the UART receiver’s FIFO + and stores it in the receive buffer that is passed via the rx_buff function + parameter. It copies either the full contents of the FIFO into the receive + buffer, or just enough data from the FIFO to fill the receive buffer, + dependent upon the size of the receive buffer passed by the buff_size + parameter. The MSS_UART_get_rx() function returns the number of bytes copied + into the receive buffer .This function is non-blocking and will return 0 + immediately if no data has been received. + + Note: The MSS_UART_get_rx() function reads and accumulates the receiver + status of the MSS UART instance before reading each byte from the receiver's + data register/FIFO. This allows the driver to maintain a sticky record of any + receiver errors that occur as the UART receives each data byte; receiver + errors would otherwise be lost after each read from the receiver's data register. + A call to the MSS_UART_get_rx_status() function returns any receiver errors + accumulated during the execution of the MSS_UART_get_rx() function. + + Note: If you need to read the error status for each byte received, set + the buff_size to 1 and read the receive line error status for each byte + using the MSS_UART_get_rx_status() function. + The MSS_UART_get_rx() function can be used in polled mode, where it is called + at regular intervals to find out if any data has been received, or in interrupt + driven-mode, where it is called as part of a receive handler that is called + by the driver as a result of data being received. + + Note: In interrupt driven mode you should call the MSS_UART_get_rx() + function as part of the receive handler function that you register with + the MSS UART driver through a call to MSS_UART_set_rx_handler(). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param rx_buff + The rx_buff parameter is a pointer to a buffer where the received + data is copied. + + @param buff_size + The buff_size parameter specifies the size of the receive buffer in bytes. + + @return + This function returns the number of bytes that were copied into the + rx_buff buffer. It returns 0 if no data has been received. + + Polled mode example: + @code + int main( void ) + { + uint8_t rx_buff[RX_BUFF_SIZE]; + uint32_t rx_idx = 0; + + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + while(1) + { + rx_size = MSS_UART_get_rx(&g_mss_uart0, rx_buff, sizeof(rx_buff)); + if(rx_size > 0) + { + process_rx_data(rx_buff, rx_size); + } + task_a(); + task_b(); + } + return 0; + } + @endcode + + Interrupt driven example: + @code + int main( void ) + { + MSS_UART_init(&g_mss_uart1, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_rx_handler(&g_mss_uart1, + uart1_rx_handler, + MSS_UART_FIFO_SINGLE_BYTE); + + while(1) + { + task_a(); + task_b(); + } + return 0; + } + + void uart1_rx_handler(mss_uart_instance_t * this_uart) + { + uint8_t rx_buff[RX_BUFF_SIZE]; + uint32_t rx_idx = 0; + rx_size = MSS_UART_get_rx(this_uart, rx_buff, sizeof(rx_buff)); + process_rx_data(rx_buff, rx_size); + } + @endcode + */ +size_t +MSS_UART_get_rx +( + mss_uart_instance_t * this_uart, + uint8_t * rx_buff, + size_t buff_size +); + +/***************************************************************************//** + The MSS_UART_set_rx_handler() function is used to register a receive handler + function that is called by the driver when a UART receive data available (RDA) + interrupt occurs. You must create and register the receive handler function + to suit your application and it must include a call to the MSS_UART_get_rx() + function to actually read the received data. + + Note: The MSS_UART_set_rx_handler() function enables both the RDA + interrupt in the UART and the MSS UART instance interrupt in the Cortex-M3 + NVIC as part + of its implementation. + + Note: You can disable the RDA interrupt once the data is received by + calling the MSS_UART_disable_irq() function. This is your choice and is + dependent upon your application. + + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is a pointer to a receive interrupt handler function + provided by your application that will be called as a result of a UART RDA + interrupt. This handler function must be of type mss_uart_irq_handler_t. + + @param trigger_level + The trigger_level parameter is the receive FIFO trigger level. This + specifies the number of bytes that must be received before the UART + triggers an RDA interrupt. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + #define RX_BUFF_SIZE 64 + + uint8_t g_rx_buff[RX_BUFF_SIZE]; + + void uart0_rx_handler(mss_uart_instance_t * this_uart) + { + MSS_UART_get_rx(this_uart, &g_rx_buff[g_rx_idx], sizeof(g_rx_buff)); + } + + int main(void) + { + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_rx_handler(&g_mss_uart0, + uart0_rx_handler, + MSS_UART_FIFO_SINGLE_BYTE); + + while(1) + { + ; + } + return(0); + } + @endcode + */ +void +MSS_UART_set_rx_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler, + mss_uart_rx_trig_level_t trigger_level +); + +/***************************************************************************//** + The MSS_UART_set_loopback() function is used to locally loopback the Tx and + Rx lines of a UART. This is not to be confused with the loopback of UART0 + to UART1, which can be achieved through the microcontroller subsystem’s + system registers. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param loopback + The loopback parameter indicates whether or not the UART’s transmit + and receive lines should be looped back. Allowed values are as follows: + - MSS_UART_LOCAL_LOOPBACK_ON + - MSS_UART_LOCAL_LOOPBACK_OFF + - MSS_UART_REMOTE_LOOPBACK_ON + - MSS_UART_REMOTE_LOOPBACK_OFF + - MSS_UART_AUTO_ECHO_ON + - MSS_UART_AUTO_ECHO_OFF + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_loopback(&g_mss_uart0, MSS_UART_LOCAL_LOOPBACK_OFF); + @endcode + */ +void +MSS_UART_set_loopback +( + mss_uart_instance_t * this_uart, + mss_uart_loopback_t loopback +); + +/***************************************************************************//** + The MSS_UART_enable_irq() function enables the MSS UART interrupts specified + by the irq_mask parameter. The irq_mask parameter identifies the MSS UART + interrupts by bit position, as defined in the interrupt enable register (IER) + of MSS UART. The MSS UART interrupts and their identifying irq_mask bit + positions are as follows: + When an irq_mask bit position is set to 1, this function enables the + corresponding MSS UART interrupt in the IER register. When an irq_mask bit + position is set to 0, the corresponding interrupt’s state remains unchanged in + the IER register. + Note: The MSS_UART_enable_irq() function also enables the MSS UART instance + interrupt in the Cortex-M3 NVIC. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t structure + identifying the MSS UART hardware block that will perform the requested + function. There are two such data structures, g_mss_uart0 and g_mss_uart1, + associated with MSS UART0 and MSS UART1. This parameter must point to either + the g_mss_uart0 or g_mss_uart1 global data structure defined within the UART + driver. + + @param irq_mask + The irq_mask parameter is used to select which of the MSS UART’s interrupts + you want to enable. The allowed value for the irq_mask parameter is one of + the following constants or a bitwise OR of more than one: + - MSS_UART_RBF_IRQ (bit mask = 0x001) + - MSS_UART_TBE_IRQ (bit mask = 0x002) + - MSS_UART_LS_IRQ (bit mask = 0x004) + - MSS_UART_MS_IRQ (bit mask = 0x008) + - MSS_UART_RTO_IRQ (bit mask = 0x010) + - MSS_UART_NACK_IRQ (bit mask = 0x020) + - MSS_UART_PIDPE_IRQ (bit mask = 0x040) + - MSS_UART_LINB_IRQ (bit mask = 0x080) + - MSS_UART_LINS_IRQ (bit mask = 0x100) + + @return + This function does not return a value. + + Example: + @code + MSS_UART_enable_irq(&g_mss_uart0,(MSS_UART_RBF_IRQ | MSS_UART_TBE_IRQ)); + @endcode + */ +void +MSS_UART_enable_irq +( + mss_uart_instance_t * this_uart, + mss_uart_irq_t irq_mask +); + +/***************************************************************************//** + The MSS_UART_disable_irq() function disables the MSS UART interrupts specified + by the irq_mask parameter. The irq_mask parameter identifies the MSS UART + interrupts by bit position, as defined in the interrupt enable register (IER) + of MSS UART. The MSS UART interrupts and their identifying bit positions are + as follows: + When an irq_mask bit position is set to 1, this function disables the + corresponding MSS UART interrupt in the IER register. When an irq_mask bit + position is set to 0, the corresponding interrupt’s state remains unchanged in + the IER register. + Note: If you disable all four of the UART’s interrupts, the + MSS_UART_disable_irq() function also disables the MSS UART instance + interrupt in the Cortex-M3 NVIC. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param irq_mask + The irq_mask parameter is used to select which of the MSS UART’s interrupts + you want to disable. The allowed value for the irq_mask parameter is one of + the following constants or a bitwise OR of more than one: + - MSS_UART_RBF_IRQ (bit mask = 0x001) + - MSS_UART_TBE_IRQ (bit mask = 0x002) + - MSS_UART_LS_IRQ (bit mask = 0x004) + - MSS_UART_MS_IRQ (bit mask = 0x008) + - MSS_UART_RTO_IRQ (bit mask = 0x010) + - MSS_UART_NACK_IRQ (bit mask = 0x020) + - MSS_UART_PIDPE_IRQ (bit mask = 0x040) + - MSS_UART_LINB_IRQ (bit mask = 0x080) + - MSS_UART_LINS_IRQ (bit mask = 0x100) + + @return + This function does not return a value. + + Example: + @code + MSS_UART_disable_irq(&g_mss_uart0, (MSS_UART_RBF_IRQ | MSS_UART_TBE_IRQ)); + @endcode + */ +void +MSS_UART_disable_irq +( + mss_uart_instance_t * this_uart, + mss_uart_irq_t irq_mask +); + +/***************************************************************************//** + The MSS_UART_set_pidpei_handler() function is used assign a custom interrupt + handler for the PIDPEI (PID parity error interrupt) when the MSS UART is + operating in LIN mode. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is the pointer to the custom handler function. + This parameter is of type mss_uart_irq_handler_t. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_ set_pidpei_handler(&g_mss_uart0, my_pidpei_handler); + @endcode + */ +void +MSS_UART_set_pidpei_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_linbreak_handler () function is used assign a custom + interrupt handler for the LIN Break detection interrupt when the MSS UART + is operating in LIN mode. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is the pointer to the custom handler function. + This parameter is of type mss_uart_irq_handler_t. + + @return + This function does not return a value. + Example: + @code + MSS_UART_set_linbreak_handler(&g_mss_uart0, my_break_handler); + @endcode + */ +void +MSS_UART_set_linbreak_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_linsync_handler() function is used assign a custom interrupt + handler for the LIN Sync character detection interrupt when the MSS UART + is operating in LIN mode. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is the pointer to the custom handler function. + This parameter is of type mss_uart_irq_handler_t. + + @return + This function does not return a value. + Example: + @code + MSS_UART_set_linsync_handler(&g_mss_uart0, my_linsync_handler); + @endcode + */ +void +MSS_UART_set_linsync_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_nack_handler() function is used assign a custom interrupt + handler for the NACK character detection interrupt when the MSS UART + is operating in Smartcard mode. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is the pointer to the custom handler function. + This parameter is of type mss_uart_irq_handler_t. + + @return + This function does not return a value. + Example: + @code + MSS_UART_set_nack_handler(&g_mss_uart0, my_nack_handler); + @endcode + */ +void +MSS_UART_set_nack_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_rx_timeout_handler() function is used assign a custom + interrupt handler for the receiver timeout interrupt when the MSS UART is + operating in mode. It finds application in IrDA mode of operation. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is the pointer to the custom handler function. + This parameter is of type mss_uart_irq_handler_t. + + @return + This function does not return a value. + Example: + @code + MSS_UART_set_rx_timeout_handler(&g_mss_uart0, my_rxtimeout_handler); + @endcode + */ +void +MSS_UART_set_rx_timeout_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_rxstatus_handler() function is used to register a receiver + status handler function that is called by the driver when a UART receiver + line status (RLS) interrupt occurs. You must create and register the handler + function to suit your application. + + Note: The MSS_UART_set_rxstatus_handler() function enables both the RLS + interrupt in the UART and the MSS UART instance interrupt in the Cortex-M3 + NVIC as part of its implementation. + + Note: You can disable the RLS interrupt when required by calling the + MSS_UART_disable_irq() function. This is your choice and is dependent upon + your application. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is a pointer to a receiver line status interrupt + handler function provided by your application that will be called as a + result of a UART RLS interrupt. This handler function must be of type + mss_uart_irq_handler_t. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + void uart_rxsts_handler(mss_uart_instance_t * this_uart) + { + uint8_t status; + status = MSS_UART_get_rx_status(this_uart); + if(status & MSS_UART_OVERUN_ERROR) + { + discard_rx_data(); + } + } + + int main(void) + { + MSS_UART_init( &g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | + MSS_UART_ONE_STOP_BIT ); + + MSS_UART_set_rxstatus_handler(&g_mss_uart0, uart_rxsts_handler); + + while(1) + { + ; + } + return(0); + } + @endcode + */ +void +MSS_UART_set_rxstatus_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_tx_handler() function is used to register a transmit handler + function that is called by the driver when a UART transmit holding register + empty (THRE) interrupt occurs. You must create and register the transmit + handler function to suit your application. You can use the + MSS_UART_fill_tx_fifo() function in your transmit handler function to + write data to the transmitter. + + Note: The MSS_UART_set_tx_handler() function enables both the THRE + interrupt in the UART and the MSS UART instance interrupt in the Cortex-M3 + NVIC as part of its implementation. + + Note: You can disable the THRE interrupt when required by calling the + MSS_UART_disable_irq() function. This is your choice and is dependent upon + your application. + + Note: The MSS_UART_irq_tx() function does not use the transmit handler + function that you register with the MSS_UART_set_tx_handler() function. + It uses its own internal THRE interrupt handler function that overrides + any custom interrupt handler that you register using the + MSS_UART_set_tx_handler() function. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is a pointer to a transmit interrupt handler + function provided by your application that will be called as a result + of a UART THRE interrupt. This handler function must be of type + mss_uart_irq_handler_t. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + uint8_t * g_tx_buffer; + size_t g_tx_size = 0; + + void uart_tx_handler(mss_uart_instance_t * this_uart) + { + size_t size_in_fifo; + size_in_fifo = MSS_UART_fill_tx_fifo(this_uart, + (const uint8_t *)g_tx_buffer, + g_tx_size); + + if(size_in_fifo == g_tx_size) + { + g_tx_size = 0; + MSS_UART_disable_irq(this_uart, MSS_UART_TBE_IRQ); + } + else + { + g_tx_buffer = &g_tx_buffer[size_in_fifo]; + g_tx_size = g_tx_size - size_in_fifo; + } + } + + int main(void) + { + uint8_t message[12] = "Hello world"; + + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | + MSS_UART_ONE_STOP_BIT); + + g_tx_buffer = message; + g_tx_size = sizeof(message); + + MSS_UART_set_tx_handler(&g_mss_uart0, uart_tx_handler); + + while(1) + { + ; + } + return(0); + } + @endcode + */ +void +MSS_UART_set_tx_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_set_modemstatus_handler() function is used to register a modem + status handler function that is called by the driver when a UART modem status + (MS) interrupt occurs. You must create and register the handler function to + suit your application. + + Note: The MSS_UART_set_modemstatus_handler() function enables both the MS + interrupt in the UART and the MSS UART instance interrupt in the Cortex-M3 NVIC + as part of its implementation. + + Note: You can disable the MS interrupt when required by calling the + MSS_UART_disable_irq() function. This is your choice and is dependent + upon your application. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param handler + The handler parameter is a pointer to a modem status interrupt handler + function provided by your application that will be called as a result + of a UART MS interrupt. This handler function must be of type + mss_uart_irq_handler_t. + + @return + This function does not return a value. + + Example: + @code + #include "mss_uart.h" + + void uart_modem_handler(mss_uart_instance_t * this_uart) + { + uint8_t status; + status = MSS_UART_get_modem_status(this_uart); + if(status & MSS_UART_CTS) + { + uart_cts_handler(); + } + } + + int main(void) + { + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | + MSS_UART_ONE_STOP_BIT); + MSS_UART_set_modemstatus_handler(&g_mss_uart0, uart_modem_handler); + + while(1) + { + ; + } + return(0); + } + @endcode + */ + +void +MSS_UART_set_modemstatus_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +); + +/***************************************************************************//** + The MSS_UART_fill_tx_fifo() function fills the UART's hardware transmitter + FIFO with the data found in the transmitter buffer that is passed via the + tx_buffer function parameter. If the transmitter FIFO is not empty when + the function is called, the function returns immediately without transferring + any data to the FIFO; otherwise, the function transfers data from the + transmitter buffer to the FIFO until it is full or until the complete + contents of the transmitter buffer have been copied into the FIFO. The + function returns the number of bytes copied into the UART's transmitter FIFO. + + Note: This function reads the UART’s line status register (LSR) to check + for the active state of the transmitter holding register empty (THRE) bit + before transferring data from the data buffer to the transmitter FIFO. If + THRE is 0, the function returns immediately, without transferring any data + to the FIFO. If THRE is 1, the function transfers up to 16 bytes of data + to the FIFO and then returns. + + Note: The actual transmission over the serial connection will still be + in progress when this function returns. Use the MSS_UART_get_tx_status() + function if you need to know when the transmitter is empty. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param tx_buffer + The tx_buffer parameter is a pointer to a buffer containing the data + to be transmitted. + + @param tx_size + The tx_size parameter is the size in bytes, of the data to be transmitted. + + @return + This function returns the number of bytes copied into the UART's + transmitter FIFO. + + Example: + @code + void send_using_interrupt(uint8_t * pbuff, size_t tx_size) + { + size_t size_in_fifo; + size_in_fifo = MSS_UART_fill_tx_fifo(&g_mss_uart0, pbuff, tx_size); + } + @endcode + */ +size_t +MSS_UART_fill_tx_fifo +( + mss_uart_instance_t * this_uart, + const uint8_t * tx_buffer, + size_t tx_size +); + +/***************************************************************************//** + The MSS_UART_get_rx_status() function returns the receiver error status of the + MSS UART instance. It reads both the current error status of the receiver from + the UART’s line status register (LSR) and the accumulated error status from + preceding calls to the MSS_UART_get_rx() function, and it combines them using + a bitwise OR. It returns the cumulative overrun, parity, framing, break and + FIFO error status of the receiver, since the previous call to + MSS_UART_get_rx_status(), as an 8-bit encoded value. + + Note: The MSS_UART_get_rx() function reads and accumulates the receiver + status of the MSS UART instance before reading each byte from the receiver’s + data register/FIFO. The driver maintains a sticky record of the cumulative + receiver error status, which persists after the MSS_UART_get_rx() function + returns. The MSS_UART_get_rx_status() function clears the driver’s sticky + receiver error record before returning. + + Note: The driver’s transmit functions also read the line status + register (LSR) as part of their implementation. When the driver reads the + LSR, the UART clears any active receiver error bits in the LSR. This could + result in the driver losing receiver errors. To avoid any loss of receiver + errors, the transmit functions also update the driver’s sticky record of the + cumulative receiver error status whenever they read the LSR. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function returns the UART’s receiver error status as an 8-bit unsigned + integer. The returned value is 0 if no receiver errors occurred. The driver + provides a set of bit mask constants that should be compared with and/or + used to mask the returned value to determine the receiver error status. + When the return value is compared to the following bit masks, a non-zero + result indicates that the corresponding error occurred: + • MSS_UART_OVERRUN_ERROR (bit mask = 0x02) + • MSS_UART_PARITY_ERROR (bit mask = 0x04) + • MSS_UART_FRAMING_ERROR (bit mask = 0x08) + • MSS_UART_BREAK_ERROR (bit mask = 0x10) + • MSS_UART_FIFO_ERROR (bit mask = 0x80) + When the return value is compared to the following bit mask, a non-zero + result indicates that no error occurred: + • MSS_UART_NO_ERROR (bit mask = 0x00) + Upon unsuccessful execution, this function returns: + • MSS_UART_INVALID_PARAM (bit mask = 0xFF) + + Example: + @code + uint8_t rx_data[MAX_RX_DATA_SIZE]; + uint8_t err_status; + err_status = MSS_UART_get_rx_status(&g_mss_uart0); + + if(MSS_UART_NO_ERROR == err_status) + { + rx_size = MSS_UART_get_rx(&g_mss_uart0, rx_data, MAX_RX_DATA_SIZE); + } + @endcode + */ +uint8_t +MSS_UART_get_rx_status +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_get_modem_status() function returns the modem status of the + MSS UART instance. It reads the modem status register (MSR) and returns + the 8 bit value. The bit encoding of the returned value is exactly the + same as the definition of the bits in the MSR. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function returns current state of the UART's MSR as an 8 bit + unsigned integer. The driver provides the following set of bit mask + constants that should be compared with and/or used to mask the + returned value to determine the modem status: + • MSS_UART_DCTS (bit mask = 0x01) + • MSS_UART_DDSR (bit mask = 0x02) + • MSS_UART_TERI (bit mask = 0x04) + • MSS_UART_DDCD (bit mask = 0x08) + • MSS_UART_CTS (bit mask = 0x10) + • MSS_UART_DSR (bit mask = 0x20) + • MSS_UART_RI (bit mask = 0x40) + • MSS_UART_DCD (bit mask = 0x80) + + Example: + @code + void uart_modem_status_isr(mss_uart_instance_t * this_uart) + { + uint8_t status; + status = MSS_UART_get_modem_status(this_uart); + if( status & MSS_UART_DCTS ) + { + uart_dcts_handler(); + } + if( status & MSS_UART_CTS ) + { + uart_cts_handler(); + } + } + @endcode + */ +uint8_t +MSS_UART_get_modem_status +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_get_tx_status() function returns the transmitter status of the + MSS UART instance. It reads both the UART’s line status register (LSR) and + returns the status of the transmit holding register empty (THRE) and + transmitter empty (TEMT) bits.* + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function returns the UART’s transmitter status as an 8-bit unsigned + integer. The returned value is 0 if the transmitter status bits are not + set or the function execution failed. The driver provides a set of bit + mask constants that should be compared with and/or used to mask the + returned value to determine the transmitter status. + When the return value is compared to the following bit mask, a non-zero + result indicates that the corresponding transmitter status bit is set: + • MSS_UART_THRE (bit mask = 0x20) + • MSS_UART_TEMT (bit mask = 0x40) + When the return value is compared to the following bit mask, a non-zero + result indicates that the transmitter is busy or the function execution + failed. + • MSS_UART_TX_BUSY (bit mask = 0x00) + + Example: + @code + uint8_t tx_buff[10] = "abcdefghi"; + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_polled_tx(&g_mss_uart0, tx_buff, sizeof(tx_buff)); + + while(!(MSS_UART_TEMT & MSS_UART_get_tx_status(&g_mss_uart0))) + { + ; + } + @endcode + */ +uint8_t +MSS_UART_get_tx_status +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_set_break() function is used to send the break + (9 zeros after stop bit) signal on the TX line. This function can be used + only when the MSS UART is initialized in LIN mode by using MSS_UART_lin_init(). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_break(&g_mss_uart0); + @endcode + */ +void +MSS_UART_set_break +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_clear_break() function is used to remove the break signal on the + TX line. This function can be used only when the MSS UART is initialized in + LIN mode by using MSS_UART_lin_init(). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_clear_break(&g_mss_uart0); + @endcode + */ +void +MSS_UART_clear_break +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_enable_half_duplex() function is used to enable the half-duplex + (single wire) mode for the MSS UART. Though it finds application in Smartcard + mode, half-duplex mode can be used in other modes as well. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_enable_half_duplex(&g_mss_uart0); + @endcode + */ +void +MSS_UART_enable_half_duplex +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_disable_half_duplex() function is used to disable the half-duplex + (single wire) mode for the MSS UART. Though it finds application in Smartcard + mode, half-duplex mode can be used in other modes as well. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_disable_half_duplex(&g_mss_uart0); + @endcode + */ +void +MSS_UART_disable_half_duplex +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_set_rx_endian() function is used to configure the LSB first or + MSB first setting for MSS UART receiver + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param endian + The endian parameter tells the LSB first or MSB first configuration. + This parameter is of type mss_uart_endian_t. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_rx_endian(&g_mss_uart0, MSS_UART_LITTLEEND); + @endcode + */ +void +MSS_UART_set_rx_endian +( + mss_uart_instance_t * this_uart, + mss_uart_endian_t endian +); + +/***************************************************************************//** + The MSS_UART_set_tx_endian() function is used to configure the LSB first or + MSB first setting for MSS UART transmitter. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param endian + The endian parameter tells the LSB first or MSB first configuration. + This parameter is of type mss_uart_endian_t. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_tx_endian(&g_mss_uart0, MSS_UART_LITTLEEND); + @endcode + */ +void +MSS_UART_set_tx_endian +( + mss_uart_instance_t * this_uart, + mss_uart_endian_t endian +); + +/***************************************************************************//** + The MSS_UART_set_filter_length () function is used to configure the glitch + filter length of the MSS UART. This should be configured in accordance with + the chosen baud rate. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param length + The length parameter is of mss_uart_filter_length_t type that determines + the length of the glitch filter. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_filter_length(&g_mss_uart0, MSS_UART_LEN2); + @endcode + */ +void +MSS_UART_set_filter_length +( + mss_uart_instance_t * this_uart, + mss_uart_filter_length_t length +); + +/***************************************************************************//** + The MSS_UART_enable_afm() function is used to enable address flag detection + mode of the MSS UART + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_enable_afm(&g_mss_uart0); + @endcode + */ +void +MSS_UART_enable_afm +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_disable_afm() function is used to disable address flag detection + mode of the MSS UART. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_disable_afm(&g_mss_uart0); + @endcode + */ +void +MSS_UART_disable_afm +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_enable_afclear () function is used to enable address flag clear + of the MSS UART. This should be used in conjunction with address flag + detection mode (AFM). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_enable_afclear(&g_mss_uart0); + @endcode + */ +void +MSS_UART_enable_afclear +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_disable_afclear () function is used to disable address flag + clear of the MSS UART. This should be used in conjunction with address flag + detection mode (AFM). + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_disable_afclear(&g_mss_uart0); + @endcode + */ +void +MSS_UART_disable_afclear +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_enable_rx_timeout() function is used to enable and configure + the receiver timeout functionality of MSS UART. This function accepts the + timeout parameter and applies the timeout based up on the baud rate as per + the formula 4 x timeout x bit time. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param timeout + The timeout parameter specifies the receiver timeout multiple. + It should be configured according to the baud rate in use. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_enable_rx_timeout(&g_mss_uart0 , 24); + @endcode + */ +void +MSS_UART_enable_rx_timeout +( + mss_uart_instance_t * this_uart, + uint8_t timeout +); + +/***************************************************************************//** + The MSS_UART_disable_rx_timeout() function is used to disable the receiver + timeout functionality of MSS UART. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_disable_rx_timeout(&g_mss_uart0); + @endcode + */ +void +MSS_UART_disable_rx_timeout +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_enable_tx_time_guard() function is used to enable and configure + the transmitter time guard functionality of MSS UART. This function accepts + the timeguard parameter and applies the timeguard based up on the baud rate + as per the formula timeguard x bit time. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_enable_tx_time_guard(&g_mss_uart0 , 24); + @endcode + */ +void +MSS_UART_enable_tx_time_guard +( + mss_uart_instance_t * this_uart, + uint8_t timeguard +); + +/***************************************************************************//** + The MSS_UART_disable_tx_time_guard() function is used to disable the + transmitter time guard functionality of MSS UART. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_disable_tx_time_guard(&g_mss_uart0); + @endcode + */ +void +MSS_UART_disable_tx_time_guard +( + mss_uart_instance_t * this_uart +); + +/***************************************************************************//** + The MSS_UART_set_address() function is used to set the 8-bit address for + the MSS UART referenced by this_uart parameter. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param address + The address parameter is the 8-bit address which is to be configured + to the MSS UART referenced by this_uart parameter. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_address(&g_mss_uart0, 0xAA); + @endcode + */ +void +MSS_UART_set_address +( + mss_uart_instance_t * this_uart, + uint8_t address +); + +/***************************************************************************//** + The MSS_UART_set_ready_mode() function is used to configure the MODE0 or MODE1 + to the TXRDY and RXRDY signals of the MSS UART referenced by this_uart + parameter. The mode parameter is used to provide the mode to be configured. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param mode + The mode parameter is the mss_uart_ready_mode_t type which is used to + configure the TXRDY and RXRDY signal modes. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_ready_mode(&g_mss_uart0, MSS_UART_READY_MODE0); + @endcode + */ +void +MSS_UART_set_ready_mode +( + mss_uart_instance_t * this_uart, + mss_uart_ready_mode_t mode +); + +/***************************************************************************//** + The MSS_UART_set_usart_mode() function is used to configure the MSS UART + referenced by the parameter this_uart in USART mode. Various USART modes + are supported which can be configured by the parameter mode of type + mss_uart_usart_mode_t. + + @param this_uart + The this_uart parameter is a pointer to an mss_uart_instance_t + structure identifying the MSS UART hardware block that will perform + the requested function. There are two such data structures, + g_mss_uart0 and g_mss_uart1, associated with MSS UART0 and MSS UART1. + This parameter must point to either the g_mss_uart0 or g_mss_uart1 + global data structure defined within the UART driver. + + @param mode + The mode parameter is the USART mode to be configured. + This parameter is of type mss_uart_usart_mode_t. + + @return + This function does not return a value. + + Example: + @code + MSS_UART_init(&g_mss_uart0, + MSS_UART_57600_BAUD, + MSS_UART_DATA_8_BITS | MSS_UART_NO_PARITY | MSS_UART_ONE_STOP_BIT); + + MSS_UART_set_usart_mode(&g_mss_uart0, MSS_UART_SYNC_MASTER_POS_EDGE_CLK); + @endcode + */ +void +MSS_UART_set_usart_mode +( + mss_uart_instance_t * this_uart, + mss_uart_usart_mode_t mode +); + +#ifdef __cplusplus +} +#endif + +#endif /* __MSS_UART_H_ */ diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart_regs.h b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart_regs.h new file mode 100644 index 00000000..6b3c9b07 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/Inc/mss_uart_regs.h @@ -0,0 +1,83 @@ +/******************************************************************************* + * (c) Copyright 2011-2013 Microsemi SoC Products Group. All rights reserved. + * + * Register bit offsets and masks defintions for SmartFusion2 MSS MMUART. + * + * SVN $Revision: 5610 $ + * SVN $Date: 2013-04-05 14:19:30 +0100 (Fri, 05 Apr 2013) $ + */ +#ifndef MSS_UART_REGS_H_ +#define MSS_UART_REGS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************* + Register Bit definitions + */ + +/* Line Control register bit definitions */ +#define SB 6u /* Set break */ +#define DLAB 7u /* Divisor latch access bit */ + +/* FIFO Control register bit definitions */ +#define RXRDY_TXRDYN_EN 0u /* Enable TXRDY and RXRDY signals */ +#define CLEAR_RX_FIFO 1u /* Clear receiver FIFO */ +#define CLEAR_TX_FIFO 2u /* Clear transimtter FIFO */ +#define RDYMODE 3u /* Mode 0 or Mode 1 for TXRDY and RXRDY */ + +/* Modem Control register bit definitions */ +#define LOOP 4u /* Local loopback */ +#define RLOOP 5u /* Remote loopback */ +#define ECHO 6u /* Automatic echo */ +#define RLOOP_MASK 0x6u /* Remote loopback & Automatic echo*/ + +/* Line Status register bit definitions */ +#define DR 0u /* Data ready */ +#define THRE 5u /* Transmitter holding register empty */ +#define TEMT 6u /* Transitter empty */ + +/* Interrupt Enable register bit definitions */ +#define ERBFI 0u /* Enable receiver buffer full interrupt */ +#define ETBEI 1u /* Enable transmitter buffer empty interrupt */ +#define ELSI 2u /* Enable line status interrupt */ +#define EDSSI 3u /* Enable modem status interrupt */ + +/* Multimode register 0 bit definitions */ +#define ELIN 3u /* Enable LIN header detection */ +#define ETTG 5u /* Enable transmitter time guard */ +#define ERTO 6u /* Enable receiver time-out */ +#define EFBR 7u /* Enable fractional baud rate mode */ + +/* Multimode register 1 bit definitions */ +#define E_MSB_RX 0u /* MSB / LSB first for receiver */ +#define E_MSB_TX 1u /* MSB / LSB first for transmitter */ +#define EIRD 2u /* Enable IrDA modem */ +#define EIRX 3u /* Input polarity for IrDA modem */ +#define EITX 4u /* Output polarity for IrDA modem */ +#define EITP 5u /* Output pulse width for IrDA modem */ + +/* Multimode register 2 bit definitions */ +#define EERR 0u /* Enable ERR / NACK during stop time */ +#define EAFM 1u /* Enable 9-bit address flag mode */ +#define EAFC 2u /* Enable address flag clear */ +#define ESWM 3u /* Enable single wire half-duplex mode */ + +/* Multimode Interrupt Enable register and + Multimode Interrupt Identification register definitions */ +#define ERTOI 0u /* Enable receiver timeout interrupt */ +#define ENACKI 1u /* Enable NACK / ERR interrupt */ +#define EPID_PEI 2u /* Enable PID parity error interrupt */ +#define ELINBI 3u /* Enable LIN break interrupt */ +#define ELINSI 4u /* Enable LIN sync detection interrupt */ + + +#ifdef __cplusplus +} +#endif + +#endif /* MSS_UART_REGS_H_ */ + + + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_gpio.c b/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_gpio.c new file mode 100644 index 00000000..11dbc21f --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_gpio.c @@ -0,0 +1,298 @@ +/******************************************************************************* + * (c) Copyright 2008-2015 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 microcontroller subsystem GPIO bare metal driver implementation. + * + * SVN $Revision: 7749 $ + * SVN $Date: 2015-09-04 14:32:09 +0530 (Fri, 04 Sep 2015) $ + */ +#include "mss_gpio.h" +#include "../../CMSIS/mss_assert.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/*-------------------------------------------------------------------------*//** + * Defines. + */ +#define GPIO_INT_ENABLE_MASK ((uint32_t)0x00000008uL) +#define OUTPUT_BUFFER_ENABLE_MASK 0x00000004u + +#define NB_OF_GPIO ((uint32_t)32) + +/*-------------------------------------------------------------------------*//** + * Lookup table of GPIO configuration registers address indexed on GPIO ID. + */ +static uint32_t volatile * const g_config_reg_lut[NB_OF_GPIO] = +{ + &(GPIO->GPIO_0_CFG), + &(GPIO->GPIO_1_CFG), + &(GPIO->GPIO_2_CFG), + &(GPIO->GPIO_3_CFG), + &(GPIO->GPIO_4_CFG), + &(GPIO->GPIO_5_CFG), + &(GPIO->GPIO_6_CFG), + &(GPIO->GPIO_7_CFG), + &(GPIO->GPIO_8_CFG), + &(GPIO->GPIO_9_CFG), + &(GPIO->GPIO_10_CFG), + &(GPIO->GPIO_11_CFG), + &(GPIO->GPIO_12_CFG), + &(GPIO->GPIO_13_CFG), + &(GPIO->GPIO_14_CFG), + &(GPIO->GPIO_15_CFG), + &(GPIO->GPIO_16_CFG), + &(GPIO->GPIO_17_CFG), + &(GPIO->GPIO_18_CFG), + &(GPIO->GPIO_19_CFG), + &(GPIO->GPIO_20_CFG), + &(GPIO->GPIO_21_CFG), + &(GPIO->GPIO_22_CFG), + &(GPIO->GPIO_23_CFG), + &(GPIO->GPIO_24_CFG), + &(GPIO->GPIO_25_CFG), + &(GPIO->GPIO_26_CFG), + &(GPIO->GPIO_27_CFG), + &(GPIO->GPIO_28_CFG), + &(GPIO->GPIO_29_CFG), + &(GPIO->GPIO_30_CFG), + &(GPIO->GPIO_31_CFG) +}; + +/*-------------------------------------------------------------------------*//** + * Lookup table of Cortex-M3 GPIO interrupt number indexed on GPIO ID. + */ +static const IRQn_Type g_gpio_irqn_lut[NB_OF_GPIO] = +{ + GPIO0_IRQn, + GPIO1_IRQn, + GPIO2_IRQn, + GPIO3_IRQn, + GPIO4_IRQn, + GPIO5_IRQn, + GPIO6_IRQn, + GPIO7_IRQn, + GPIO8_IRQn, + GPIO9_IRQn, + GPIO10_IRQn, + GPIO11_IRQn, + GPIO12_IRQn, + GPIO13_IRQn, + GPIO14_IRQn, + GPIO15_IRQn, + GPIO16_IRQn, + GPIO17_IRQn, + GPIO18_IRQn, + GPIO19_IRQn, + GPIO20_IRQn, + GPIO21_IRQn, + GPIO22_IRQn, + GPIO23_IRQn, + GPIO24_IRQn, + GPIO25_IRQn, + GPIO26_IRQn, + GPIO27_IRQn, + GPIO28_IRQn, + GPIO29_IRQn, + GPIO30_IRQn, + GPIO31_IRQn +}; + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_init + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_init( void ) +{ + uint32_t inc; + + /* reset MSS GPIO hardware */ + SYSREG->SOFT_RST_CR |= SYSREG_GPIO_SOFTRESET_MASK; + SYSREG->SOFT_RST_CR |= (SYSREG_GPIO_7_0_SOFTRESET_MASK | + SYSREG_GPIO_15_8_SOFTRESET_MASK | + SYSREG_GPIO_23_16_SOFTRESET_MASK | + SYSREG_GPIO_31_24_SOFTRESET_MASK); + + /* Clear any previously pended MSS GPIO interrupt */ + for(inc = 0U; inc < NB_OF_GPIO; ++inc) + { + NVIC_DisableIRQ(g_gpio_irqn_lut[inc]); + NVIC_ClearPendingIRQ(g_gpio_irqn_lut[inc]); + } + /* Take MSS GPIO hardware out of reset. */ + SYSREG->SOFT_RST_CR &= ~(SYSREG_GPIO_7_0_SOFTRESET_MASK | + SYSREG_GPIO_15_8_SOFTRESET_MASK | + SYSREG_GPIO_23_16_SOFTRESET_MASK | + SYSREG_GPIO_31_24_SOFTRESET_MASK); + SYSREG->SOFT_RST_CR &= ~SYSREG_GPIO_SOFTRESET_MASK; +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_config + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_config +( + mss_gpio_id_t port_id, + uint32_t config +) +{ + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + *(g_config_reg_lut[gpio_idx]) = config; + } +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_set_output + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_set_output +( + mss_gpio_id_t port_id, + uint8_t value +) +{ + uint32_t gpio_setting; + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + gpio_setting = GPIO->GPIO_OUT; + gpio_setting &= ~((uint32_t)0x01u << gpio_idx); + gpio_setting |= ((uint32_t)value & 0x01u) << gpio_idx; + GPIO->GPIO_OUT = gpio_setting; + } +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_drive_inout + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_drive_inout +( + mss_gpio_id_t port_id, + mss_gpio_inout_state_t inout_state +) +{ + uint32_t outputs_state; + uint32_t config; + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + switch(inout_state) + { + case MSS_GPIO_DRIVE_HIGH: + /* Set output high */ + outputs_state = GPIO->GPIO_OUT; + outputs_state |= (uint32_t)1 << gpio_idx; + GPIO->GPIO_OUT = outputs_state; + /* Enable output buffer */ + config = *(g_config_reg_lut[gpio_idx]); + config |= OUTPUT_BUFFER_ENABLE_MASK; + *(g_config_reg_lut[gpio_idx]) = config; + break; + + case MSS_GPIO_DRIVE_LOW: + /* Set output low */ + outputs_state = GPIO->GPIO_OUT; + outputs_state &= ~((uint32_t)((uint32_t)1 << gpio_idx)); + GPIO->GPIO_OUT = outputs_state; + /* Enable output buffer */ + config = *(g_config_reg_lut[gpio_idx]); + config |= OUTPUT_BUFFER_ENABLE_MASK; + *(g_config_reg_lut[gpio_idx]) = config; + break; + + case MSS_GPIO_HIGH_Z: + /* Disable output buffer */ + config = *(g_config_reg_lut[gpio_idx]); + config &= ~OUTPUT_BUFFER_ENABLE_MASK; + *(g_config_reg_lut[gpio_idx]) = config; + break; + + default: + ASSERT(0); + break; + } + } +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_enable_irq + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_enable_irq +( + mss_gpio_id_t port_id +) +{ + uint32_t cfg_value; + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + cfg_value = *(g_config_reg_lut[gpio_idx]); + *(g_config_reg_lut[gpio_idx]) = (cfg_value | GPIO_INT_ENABLE_MASK); + NVIC_EnableIRQ(g_gpio_irqn_lut[gpio_idx]); + } +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_disable_irq + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_disable_irq +( + mss_gpio_id_t port_id +) +{ + uint32_t cfg_value; + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + cfg_value = *(g_config_reg_lut[gpio_idx]); + *(g_config_reg_lut[gpio_idx]) = (cfg_value & ~GPIO_INT_ENABLE_MASK); + } +} + +/*-------------------------------------------------------------------------*//** + * MSS_GPIO_clear_irq + * See "mss_gpio.h" for details of how to use this function. + */ +void MSS_GPIO_clear_irq +( + mss_gpio_id_t port_id +) +{ + uint32_t gpio_idx = (uint32_t)port_id; + + ASSERT(gpio_idx < NB_OF_GPIO); + + if(gpio_idx < NB_OF_GPIO) + { + GPIO->GPIO_IRQ = ((uint32_t)1) << gpio_idx; + } + __ASM volatile ("dsb"); + +} + +#ifdef __cplusplus +} +#endif + diff --git a/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_uart.c b/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_uart.c new file mode 100644 index 00000000..af783ff3 --- /dev/null +++ b/platform/vendor_bsp/Microchip/SmartFusion2/Src/mss_uart.c @@ -0,0 +1,1762 @@ +/******************************************************************************* + * (c) Copyright 2011-2013 Microsemi SoC Products Group. All rights reserved. + * + * SmartFusion2 Microcontroller Subsystem MMUART bare metal software driver + * implementation. + * + * SVN $Revision: 5610 $ + * SVN $Date: 2013-04-05 14:19:30 +0100 (Fri, 05 Apr 2013) $ + */ +#include "mss_uart.h" +#include "mss_uart_regs.h" +#include "../../CMSIS/mss_assert.h" +#include "../../CMSIS/hw_reg_io.h" +#include "../../CMSIS/system_m2sxxx.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/******************************************************************************* + * Defines + */ +#define TX_COMPLETE 0u +#define TX_FIFO_SIZE 16u + +#define FCR_TRIG_LEVEL_MASK 0xC0u + +#define IIRF_MASK 0x0Fu + +#define INVALID_INTERRUPT 0u +#define INVALID_IRQ_HANDLER ((mss_uart_irq_handler_t) 0) +#define NULL_HANDLER ((mss_uart_irq_handler_t) 0) + +#define MSS_UART_DATA_READY ((uint8_t) 0x01) + +#define SYNC_ASYNC_MODE_MASK (0x7u) + +/******************************************************************************* + * Possible values for Interrupt Identification Register Field. + */ +#define IIRF_MODEM_STATUS 0x00u +#define IIRF_THRE 0x02u +#define IIRF_MMI 0x03u +#define IIRF_RX_DATA 0x04u +#define IIRF_RX_LINE_STATUS 0x06u +#define IIRF_DATA_TIMEOUT 0x0Cu + +/******************************************************************************* + * Receiver error status mask. + */ +#define STATUS_ERROR_MASK ( MSS_UART_OVERUN_ERROR | MSS_UART_PARITY_ERROR | \ + MSS_UART_FRAMING_ERROR | MSS_UART_BREAK_ERROR | \ + MSS_UART_FIFO_ERROR) + +/******************************************************************************* + * Cortex-M3 interrupt handler functions implemented as part of the MSS UART + * driver. + */ +#if defined(__GNUC__) +__attribute__((__interrupt__)) void UART0_IRQHandler(void); +#else +void UART0_IRQHandler(void); +#endif + +#if defined(__GNUC__) +__attribute__((__interrupt__)) void UART1_IRQHandler(void); +#else +void UART1_IRQHandler(void); +#endif + +/******************************************************************************* + * Local functions. + */ +static void global_init(mss_uart_instance_t * this_uart, uint32_t baud_rate, + uint8_t line_config); +static void MSS_UART_isr(mss_uart_instance_t * this_uart); +static void default_tx_handler(mss_uart_instance_t * this_uart); + +static void config_baud_divisors +( + mss_uart_instance_t * this_uart, + uint32_t baudrate +); + +/******************************************************************************* + * Instance definitions + */ +mss_uart_instance_t g_mss_uart0; +mss_uart_instance_t g_mss_uart1; + + +/******************************************************************************* + * Public Functions + *******************************************************************************/ +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +) +{ + /* The driver expects g_mss_uart0 and g_mss_uart1 to be the only + * mss_uart_instance_t instances used to identify UART0 and UART1. */ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + /* Perform generic initialization */ + global_init(this_uart, baud_rate, line_config); + + /* Disable LIN mode */ + clear_bit_reg8(&this_uart->hw_reg->MM0, ELIN); + + /* Disable IrDA mode */ + clear_bit_reg8(&this_uart->hw_reg->MM1, EIRD); + + /* Disable SmartCard Mode */ + clear_bit_reg8(&this_uart->hw_reg->MM2, EERR); + + /* set default tx handler for automated TX using interrupt in USART mode */ + this_uart->tx_handler = default_tx_handler; +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void MSS_UART_lin_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +) +{ + /* The driver expects g_mss_uart0 and g_mss_uart1 to be the only + * mss_uart_instance_t instances used to identify UART0 and UART1. */ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + /* Perform generic initialization */ + global_init(this_uart, baud_rate, line_config); + + /* Enable LIN mode */ + set_bit_reg8(&this_uart->hw_reg->MM0, ELIN); + + /* Disable IrDA mode */ + clear_bit_reg8(&this_uart->hw_reg->MM1, EIRD); + + /* Disable SmartCard Mode */ + clear_bit_reg8(&this_uart->hw_reg->MM2, EERR); +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_irda_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config, + mss_uart_rzi_polarity_t rxpol, + mss_uart_rzi_polarity_t txpol, + mss_uart_rzi_pulsewidth_t pw +) +{ + /* The driver expects g_mss_uart0 and g_mss_uart1 to be the only + * mss_uart_instance_t instances used to identify UART0 and UART1. */ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + /* Perform generic initialization */ + global_init(this_uart, baud_rate, line_config); + + /* Enable LIN mode */ + clear_bit_reg8(&this_uart->hw_reg->MM0, ELIN); + + /* Disable IrDA mode */ + set_bit_reg8(&this_uart->hw_reg->MM1, EIRD); + ((rxpol == MSS_UART_ACTIVE_LOW) ? clear_bit_reg8(&this_uart->hw_reg->MM1,EIRX) : + set_bit_reg8(&this_uart->hw_reg->MM1,EIRX)); + + ((txpol == MSS_UART_ACTIVE_LOW) ? clear_bit_reg8(&this_uart->hw_reg->MM1,EITX) : + set_bit_reg8(&this_uart->hw_reg->MM1,EITX)); + + ((pw == MSS_UART_3_BY_16) ? clear_bit_reg8(&this_uart->hw_reg->MM1,EITP) : + set_bit_reg8(&this_uart->hw_reg->MM1,EITP)); + /* Disable SmartCard Mode */ + clear_bit_reg8(&this_uart->hw_reg->MM2, EERR); +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_smartcard_init +( + mss_uart_instance_t* this_uart, + uint32_t baud_rate, + uint8_t line_config +) +{ + /* The driver expects g_mss_uart0 and g_mss_uart1 to be the only + * mss_uart_instance_t instances used to identify UART0 and UART1. */ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + /* Perform generic initialization */ + global_init(this_uart, baud_rate, line_config); + + /* Disable LIN mode */ + clear_bit_reg8(&this_uart->hw_reg->MM0, ELIN); + + /* Disable IrDA mode */ + clear_bit_reg8(&this_uart->hw_reg->MM1, EIRD); + + /* Enable SmartCard Mode : Only when data is 8-bit and 2 stop bits*/ + if( ( MSS_UART_DATA_8_BITS | MSS_UART_TWO_STOP_BITS) == + (line_config & (MSS_UART_DATA_8_BITS | MSS_UART_TWO_STOP_BITS))) + { + set_bit_reg8(&this_uart->hw_reg->MM2, EERR); + /* Enable single wire half-duplex mode */ + set_bit_reg8(&this_uart->hw_reg->MM2,ESWM); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_polled_tx +( + mss_uart_instance_t * this_uart, + const uint8_t * pbuff, + uint32_t tx_size +) +{ + uint32_t char_idx = 0u; + uint32_t size_sent; + uint8_t status; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(pbuff != ( (uint8_t *)0)); + ASSERT(tx_size > 0u); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (pbuff != ((uint8_t *)0)) && (tx_size > 0u)) + { + /* Remain in this loop until the entire input buffer + * has been transferred to the UART. + */ + do { + /* Read the Line Status Register and update the sticky record */ + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + + /* Check if TX FIFO is empty. */ + if(status & MSS_UART_THRE) + { + uint32_t fill_size = TX_FIFO_SIZE; + + /* Calculate the number of bytes to transmit. */ + if(tx_size < TX_FIFO_SIZE) + { + fill_size = tx_size; + } + + /* Fill the TX FIFO with the calculated the number of bytes. */ + for(size_sent = 0u; size_sent < fill_size; ++size_sent) + { + /* Send next character in the buffer. */ + this_uart->hw_reg->THR = pbuff[char_idx]; + char_idx++; + } + + /* Calculate the number of untransmitted bytes remaining. */ + tx_size -= size_sent; + } + } while(tx_size); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_polled_tx_string +( + mss_uart_instance_t * this_uart, + const uint8_t * p_sz_string +) +{ + uint32_t char_idx = 0u; + uint32_t fill_size; + uint8_t data_byte; + uint8_t status; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(p_sz_string != ((uint8_t *)0)); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (p_sz_string != ((uint8_t *)0))) + { + /* Get the first data byte from the input buffer */ + data_byte = p_sz_string[char_idx]; + + /* First check for the NULL terminator byte. + * Then remain in this loop until the entire string in the input buffer + * has been transferred to the UART. + */ + while(0u != data_byte) + { + /* Wait until TX FIFO is empty. */ + do { + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + } while (0u == (status & MSS_UART_THRE)); + + /* Send bytes from the input buffer until the TX FIFO is full + * or we reach the NULL terminator byte. + */ + fill_size = 0u; + while((0u != data_byte) && (fill_size < TX_FIFO_SIZE)) + { + /* Send the data byte */ + this_uart->hw_reg->THR = data_byte; + ++fill_size; + char_idx++; + /* Get the next data byte from the input buffer */ + data_byte = p_sz_string[char_idx]; + } + } + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_irq_tx +( + mss_uart_instance_t * this_uart, + const uint8_t * pbuff, + uint32_t tx_size +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(pbuff != ((uint8_t *)0)); + ASSERT(tx_size > 0u); + + if((tx_size > 0u) && ( pbuff != ((uint8_t *)0)) && + ((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1))) + { + /*Initialise the transmit info for the UART instance with the arguments.*/ + this_uart->tx_buffer = pbuff; + this_uart->tx_buff_size = tx_size; + this_uart->tx_idx = (uint16_t)0; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* assign default handler for data transfer */ + this_uart->tx_handler = default_tx_handler; + + /* enables TX interrupt */ + set_bit_reg8(&this_uart->hw_reg->IER,ETBEI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +int8_t +MSS_UART_tx_complete +( + mss_uart_instance_t * this_uart +) +{ + int8_t ret_value = 0; + uint8_t status = 0u; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Read the Line Status Register and update the sticky record. */ + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + + if((TX_COMPLETE == this_uart->tx_buff_size) && + ((status & MSS_UART_TEMT) != 0u)) + { + ret_value = (int8_t)1; + } + } + return ret_value; +} + + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +size_t +MSS_UART_get_rx +( + mss_uart_instance_t * this_uart, + uint8_t * rx_buff, + size_t buff_size +) +{ + size_t rx_size = 0u; + uint8_t status = 0u; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(rx_buff != ((uint8_t *)0)); + ASSERT(buff_size > 0u); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (rx_buff != ((uint8_t *)0)) && (buff_size > 0u)) + { + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + + while(((status & MSS_UART_DATA_READY) != 0u) && + (rx_size < buff_size)) + { + rx_buff[rx_size] = this_uart->hw_reg->RBR; + ++rx_size; + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + } + } + return rx_size; +} +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_irq +( + mss_uart_instance_t * this_uart, + mss_uart_irq_t irq_mask +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_IRQ > irq_mask); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_IRQ > irq_mask)) + { + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* irq_mask encoding: 1- enable + * bit 0 - Receive Data Available Interrupt + * bit 1 - Transmitter Holding Register Empty Interrupt + * bit 2 - Receiver Line Status Interrupt + * bit 3 - Modem Status Interrupt + */ + this_uart->hw_reg->IER |= (uint8_t)irq_mask & IIRF_MASK; + + /* + * bit 4 - Receiver time-out interrupt + * bit 5 - NACK / ERR signal interrupt + * bit 6 - PID parity error interrupt + * bit 7 - LIN break detection interrupt + * bit 8 - LIN Sync detection interrupt + */ + this_uart->hw_reg->IEM |= (uint8_t)(((uint32_t)irq_mask & ~((uint32_t)IIRF_MASK)) >> 4u); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_irq +( + mss_uart_instance_t * this_uart, + mss_uart_irq_t irq_mask +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* irq_mask encoding: 1 - disable + * bit 0 - Receive Data Available Interrupt + * bit 1 - Transmitter Holding Register Empty Interrupt + * bit 2 - Receiver Line Status Interrupt + * bit 3 - Modem Status Interrupt + */ + this_uart->hw_reg->IER &= ((uint8_t)(~((uint32_t)irq_mask & (uint32_t)IIRF_MASK))); + + /* + * bit 4 - Receiver time-out interrupt + * bit 5 - NACK / ERR signal interrupt + * bit 6 - PID parity error interrupt + * bit 7 - LIN break detection interrupt + * bit 8 - LIN Sync detection interrupt + */ + this_uart->hw_reg->IEM |= (uint8_t)(~(((uint32_t)irq_mask & ~((uint32_t)IIRF_MASK)) >> 8u)); + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + if(irq_mask == IIRF_MASK) + { + /* Disable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_DisableIRQ(this_uart->irqn); + + } + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_rx_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler, + mss_uart_rx_trig_level_t trigger_level +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER ); + ASSERT(trigger_level < MSS_UART_FIFO_INVALID_TRIG_LEVEL); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER) && + (trigger_level < MSS_UART_FIFO_INVALID_TRIG_LEVEL)) + { + this_uart->rx_handler = handler; + + /* Set the receive interrupt trigger level. */ + this_uart->hw_reg->FCR = (this_uart->hw_reg->FCR & + (uint8_t)(~((uint8_t)FCR_TRIG_LEVEL_MASK))) | + (uint8_t)trigger_level; + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* Enable receive interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IER,ERBFI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_loopback +( + mss_uart_instance_t * this_uart, + mss_uart_loopback_t loopback +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_LOOPBACK > loopback); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) || + (MSS_UART_INVALID_LOOPBACK > loopback)) + { + switch(loopback) + { + case MSS_UART_LOCAL_LOOPBACK_OFF: + /* Disable local loopback */ + clear_bit_reg8(&this_uart->hw_reg->MCR,LOOP); + break; + + case MSS_UART_LOCAL_LOOPBACK_ON: + /* Enable local loopback */ + set_bit_reg8(&this_uart->hw_reg->MCR,LOOP); + break; + + case MSS_UART_REMOTE_LOOPBACK_OFF: + case MSS_UART_AUTO_ECHO_OFF: + /* Disable remote loopback & automatic echo*/ + this_uart->hw_reg->MCR &= ~RLOOP_MASK; + break; + + case MSS_UART_REMOTE_LOOPBACK_ON: + /* Enable remote loopback */ + this_uart->hw_reg->MCR |= (1u << RLOOP); + break; + + case MSS_UART_AUTO_ECHO_ON: + /* Enable automatic echo */ + this_uart->hw_reg->MCR |= (1u << ECHO); + break; + + case MSS_UART_INVALID_LOOPBACK: + /* Fall through to default. */ + default: + ASSERT(0); + break; + } + } +} + +/***************************************************************************//** + * UART0 interrupt service routine. + * UART0_IRQHandler is included within the Cortex-M3 vector table as part of the + * Fusion 2 CMSIS. + */ +#if defined(__GNUC__) +__attribute__((__interrupt__)) void UART0_IRQHandler(void) +#else +void UART0_IRQHandler(void) +#endif +{ + MSS_UART_isr(&g_mss_uart0); +} + +/***************************************************************************//** + * UART1 interrupt service routine. + * UART2_IRQHandler is included within the Cortex-M3 vector table as part of the + * Fusion 2 CMSIS. + */ +#if defined(__GNUC__) +__attribute__((__interrupt__)) void UART1_IRQHandler(void) +#else +void UART1_IRQHandler(void) +#endif +{ + MSS_UART_isr(&g_mss_uart1); +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_rxstatus_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->linests_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* Enable receiver line status interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IER,ELSI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_tx_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->tx_handler = handler; + + /* Make TX buffer info invalid */ + this_uart->tx_buffer = (const uint8_t *)0; + this_uart->tx_buff_size = 0u; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* Enable transmitter holding register Empty interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IER,ETBEI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_modemstatus_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->modemsts_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ(this_uart->irqn); + + /* Enable modem status interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IER,EDSSI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +size_t +MSS_UART_fill_tx_fifo +( + mss_uart_instance_t * this_uart, + const uint8_t * tx_buffer, + size_t tx_size +) +{ + uint8_t status = 0u; + size_t size_sent = 0u; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(tx_buffer != ( (uint8_t *)0)); + ASSERT(tx_size > 0); + + /* Fill the UART's Tx FIFO until the FIFO is full or the complete input + * buffer has been written. */ + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (tx_buffer != ((uint8_t *)0)) && + (tx_size > 0u)) + { + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + + if(status & MSS_UART_THRE) + { + uint32_t fill_size = TX_FIFO_SIZE; + + if(tx_size < TX_FIFO_SIZE) + { + fill_size = tx_size; + } + /* Fill up FIFO */ + for(size_sent = 0u; size_sent < fill_size; ++size_sent) + { + + /* Send next character in the buffer. */ + this_uart->hw_reg->THR = tx_buffer[size_sent]; + } + } + } + return size_sent; +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +uint8_t +MSS_UART_get_rx_status +( + mss_uart_instance_t * this_uart +) +{ + uint8_t status = MSS_UART_INVALID_PARAM; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* + * Extract UART receive error status. + * Bit 1 - Overflow error status + * Bit 2 - Parity error status + * Bit 3 - Frame error status + * Bit 4 - Break interrupt indicator + * Bit 7 - FIFO data error status + */ + this_uart->status |= (this_uart->hw_reg->LSR); + status = (this_uart->status & STATUS_ERROR_MASK); + /* Clear the sticky status after reading */ + this_uart->status = 0u; + } + return status; +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +uint8_t +MSS_UART_get_modem_status +( + mss_uart_instance_t * this_uart +) +{ + uint8_t status = MSS_UART_INVALID_PARAM; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* + * Extract UART modem status and place in lower bits of "status". + * Bit 0 - Delta Clear to Send Indicator + * Bit 1 - Delta Clear to Receive Indicator + * Bit 2 - Trailing edge of Ring Indicator detector + * Bit 3 - Delta Data Carrier Detect indicator + * Bit 4 - Clear To Send + * Bit 5 - Data Set Ready + * Bit 6 - Ring Indicator + * Bit 7 - Data Carrier Detect + */ + status = this_uart->hw_reg->MSR; + } + return status; +} + +/***************************************************************************//** + * MSS_UART_get_tx_status. + * See mss_uart.h for details of how to use this function. + */ +uint8_t +MSS_UART_get_tx_status +( + mss_uart_instance_t * this_uart +) +{ + uint8_t status = MSS_UART_TX_BUSY; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Read the Line Status Register and update the sticky record. */ + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + /* + * Extract the transmit status bits from the UART's Line Status Register. + * Bit 5 - Transmitter Holding Register/FIFO Empty (THRE) status. (If = 1, TX FIFO is empty) + * Bit 6 - Transmitter Empty (TEMT) status. (If = 1, both TX FIFO and shift register are empty) + */ + status &= (MSS_UART_THRE | MSS_UART_TEMT); + } + return status; +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_break +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* set break charecter on Tx line */ + set_bit_reg8(&this_uart->hw_reg->LCR,SB); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_clear_break +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* remove break charecter from Tx line */ + clear_bit_reg8(&this_uart->hw_reg->LCR,SB); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_pidpei_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->pid_pei_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ( this_uart->irqn ); + + /* Enable PID parity error interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IEM,EPID_PEI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_linbreak_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->break_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ( this_uart->irqn ); + + /* Enable LIN break detection interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IEM,ELINBI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_linsync_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->sync_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ( this_uart->irqn ); + + /* Enable LIN sync detection interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IEM,ELINSI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_nack_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->nack_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ( this_uart->irqn ); + + /* Enable LIN sync detection interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IEM,ENACKI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_rx_timeout_handler +( + mss_uart_instance_t * this_uart, + mss_uart_irq_handler_t handler +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(handler != INVALID_IRQ_HANDLER); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (handler != INVALID_IRQ_HANDLER)) + { + this_uart->rto_handler = handler; + + /* Clear any previously pended interrupts */ + NVIC_ClearPendingIRQ( this_uart->irqn ); + + /* Enable receiver timeout interrupt. */ + set_bit_reg8(&this_uart->hw_reg->IEM,ERTOI); + + /* Enable UART instance interrupt in Cortex-M3 NVIC. */ + NVIC_EnableIRQ(this_uart->irqn); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_half_duplex +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* enable single wire half-duplex mode */ + set_bit_reg8(&this_uart->hw_reg->MM2,ESWM); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_half_duplex +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* enable single wire half-duplex mode */ + clear_bit_reg8(&this_uart->hw_reg->MM2,ESWM); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_rx_endian +( + mss_uart_instance_t * this_uart, + mss_uart_endian_t endian +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_ENDIAN > endian); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_ENDIAN > endian)) + { + /* Configure MSB first / LSB first for receiver */ + ((MSS_UART_LITTLEEND == endian) ? (clear_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_RX)) : + (set_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_RX))); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_tx_endian +( + mss_uart_instance_t * this_uart, + mss_uart_endian_t endian +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_ENDIAN > endian); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_ENDIAN > endian)) + { + /* Configure MSB first / LSB first for transmitter */ + ((MSS_UART_LITTLEEND == endian) ? (clear_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_TX)) : + (set_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_TX)) ) ; + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_filter_length +( + mss_uart_instance_t * this_uart, + mss_uart_filter_length_t length +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_FILTER_LENGTH > length); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_FILTER_LENGTH > length)) + { + /* Configure glitch filter length */ + this_uart->hw_reg->GFR = (uint8_t)length; + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_afm +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Disable RX FIFO till address flag with correct address is received */ + set_bit_reg8(&this_uart->hw_reg->MM2,EAFM); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_afm +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Enable RX FIFO irrespective of address flag and + correct address is received */ + clear_bit_reg8(&this_uart->hw_reg->MM2,EAFM); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_afclear +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Enable address flag clearing */ + /* Disable RX FIFO till another address flag with + correct address is received */ + set_bit_reg8(&this_uart->hw_reg->MM2,EAFC); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_afclear +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Disable address flag clearing */ + clear_bit_reg8(&this_uart->hw_reg->MM2,EAFC); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_rx_timeout +( + mss_uart_instance_t * this_uart, + uint8_t timeout +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Load the receive timeout value */ + this_uart->hw_reg->RTO = timeout; + /*Enable receiver time-out */ + set_bit_reg8(&this_uart->hw_reg->MM0,ERTO); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_rx_timeout +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /*Disable receiver time-out */ + clear_bit_reg8(&this_uart->hw_reg->MM0,ERTO); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_enable_tx_time_guard +( + mss_uart_instance_t * this_uart, + uint8_t timeguard +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /* Load the transmitter time guard value */ + this_uart->hw_reg->TTG = timeguard; + /*Enable transmitter time guard */ + set_bit_reg8(&this_uart->hw_reg->MM0,ETTG); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_disable_tx_time_guard +( + mss_uart_instance_t * this_uart +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + /*Disable transmitter time guard */ + clear_bit_reg8(&this_uart->hw_reg->MM0,ETTG); + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_address +( + mss_uart_instance_t * this_uart, + uint8_t address +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + this_uart->hw_reg->ADR = address; + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_ready_mode +( + mss_uart_instance_t * this_uart, + mss_uart_ready_mode_t mode +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_READY_MODE > mode); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_READY_MODE > mode ) ) + { + /* Configure mode 0 or mode 1 for TXRDY and RXRDY */ + ((MSS_UART_READY_MODE0 == mode) ? clear_bit_reg8(&this_uart->hw_reg->FCR,RDYMODE) : + set_bit_reg8(&this_uart->hw_reg->FCR,RDYMODE) ); + } +} + +/***************************************************************************//** + * Configure baud divisors using fractional baud rate if possible. + */ +static void +config_baud_divisors +( + mss_uart_instance_t * this_uart, + uint32_t baudrate +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + uint32_t baud_value; + uint32_t baud_value_by_64; + uint32_t baud_value_by_128; + uint32_t fractional_baud_value; + uint32_t pclk_freq; + + this_uart->baudrate = baudrate; + + /* Force the value of the CMSIS global variables holding the various system + * clock frequencies to be updated. */ + SystemCoreClockUpdate(); + if(this_uart == &g_mss_uart0) + { + pclk_freq = g_FrequencyPCLK0; + } + else + { + pclk_freq = g_FrequencyPCLK1; + } + + /* + * Compute baud value based on requested baud rate and PCLK frequency. + * The baud value is computed using the following equation: + * baud_value = PCLK_Frequency / (baud_rate * 16) + */ + baud_value_by_128 = (8u * pclk_freq) / baudrate; + baud_value_by_64 = baud_value_by_128 / 2u; + baud_value = baud_value_by_64 / 64u; + fractional_baud_value = baud_value_by_64 - (baud_value * 64u); + fractional_baud_value += (baud_value_by_128 - (baud_value * 128u)) - (fractional_baud_value * 2u); + + /* Assert if integer baud value fits in 16-bit. */ + ASSERT(baud_value <= UINT16_MAX); + + if(baud_value <= (uint32_t)UINT16_MAX) + { + if(baud_value > 1u) + { + /* + * Use Frational baud rate divisors + */ + /* set divisor latch */ + set_bit_reg8(&this_uart->hw_reg->LCR,DLAB); + + /* msb of baud value */ + this_uart->hw_reg->DMR = (uint8_t)(baud_value >> 8); + /* lsb of baud value */ + this_uart->hw_reg->DLR = (uint8_t)baud_value; + + /* reset divisor latch */ + clear_bit_reg8(&this_uart->hw_reg->LCR,DLAB); + + /* Enable Fractional baud rate */ + set_bit_reg8(&this_uart->hw_reg->MM0,EFBR); + + /* Load the fractional baud rate register */ + ASSERT(fractional_baud_value <= (uint32_t)UINT8_MAX); + this_uart->hw_reg->DFR = (uint8_t)fractional_baud_value; + } + else + { + /* + * Do NOT use Frational baud rate divisors. + */ + /* set divisor latch */ + set_bit_reg8(&this_uart->hw_reg->LCR,DLAB); + + /* msb of baud value */ + this_uart->hw_reg->DMR = (uint8_t)(baud_value >> 8u); + /* lsb of baud value */ + this_uart->hw_reg->DLR = (uint8_t)baud_value; + + /* reset divisor latch */ + clear_bit_reg8(&this_uart->hw_reg->LCR,DLAB); + + /* Disable Fractional baud rate */ + clear_bit_reg8(&this_uart->hw_reg->MM0,EFBR); + } + } + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +void +MSS_UART_set_usart_mode +( + mss_uart_instance_t * this_uart, + mss_uart_usart_mode_t mode +) +{ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(MSS_UART_INVALID_SYNC_MODE > mode); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (MSS_UART_INVALID_SYNC_MODE > mode)) + { + /* Nothing to do for the baudrate: operates at PCLK / 2 + glitch filter length */ + /* Clear the ESYN bits 2:0 */ + this_uart->hw_reg->MM0 &= ~SYNC_ASYNC_MODE_MASK; + this_uart->hw_reg->MM0 |= (uint8_t)mode; + } +} + +/******************************************************************************* + * Local Functions + *******************************************************************************/ +/******************************************************************************* + * Global initialization for all modes + */ +static void global_init +( + mss_uart_instance_t * this_uart, + uint32_t baud_rate, + uint8_t line_config +) +{ + /* The driver expects g_mss_uart0 and g_mss_uart1 to be the only + * mss_uart_instance_t instances used to identify UART0 and UART1. */ + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if(this_uart == &g_mss_uart0) + { + this_uart->hw_reg = UART0; + this_uart->irqn = UART0_IRQn; + /* reset UART0 */ + SYSREG->SOFT_RST_CR |= SYSREG_MMUART0_SOFTRESET_MASK; + /* Clear any previously pended UART0 interrupt */ + NVIC_ClearPendingIRQ(UART0_IRQn); + /* Take UART0 out of reset. */ + SYSREG->SOFT_RST_CR &= ~SYSREG_MMUART0_SOFTRESET_MASK; + } + else + { + this_uart->hw_reg = UART1; + this_uart->irqn = UART1_IRQn; + /* Reset UART1 */ + SYSREG->SOFT_RST_CR |= SYSREG_MMUART1_SOFTRESET_MASK; + /* Clear any previously pended UART1 interrupt */ + NVIC_ClearPendingIRQ(UART1_IRQn); + /* Take UART1 out of reset. */ + SYSREG->SOFT_RST_CR &= ~SYSREG_MMUART1_SOFTRESET_MASK; + } + + /* disable interrupts */ + this_uart->hw_reg->IER = 0u; + + /* FIFO configuration */ + this_uart->hw_reg->FCR = (uint8_t)MSS_UART_FIFO_SINGLE_BYTE; + /* clear receiver FIFO */ + set_bit_reg8(&this_uart->hw_reg->FCR,CLEAR_RX_FIFO); + /* clear transmitter FIFO */ + set_bit_reg8(&this_uart->hw_reg->FCR,CLEAR_TX_FIFO); + + /* set default READY mode : Mode 0*/ + /* enable RXRDYN and TXRDYN pins. The earlier FCR write to set the TX FIFO + * trigger level inadvertently disabled the FCR_RXRDY_TXRDYN_EN bit. */ + set_bit_reg8(&this_uart->hw_reg->FCR,RXRDY_TXRDYN_EN); + + /* disable loopback : local * remote */ + clear_bit_reg8(&this_uart->hw_reg->MCR,LOOP); + clear_bit_reg8(&this_uart->hw_reg->MCR,RLOOP); + + /* set default TX endian */ + clear_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_TX); + /* set default RX endian */ + clear_bit_reg8(&this_uart->hw_reg->MM1,E_MSB_RX); + + /* default AFM : disabled */ + clear_bit_reg8(&this_uart->hw_reg->MM2,EAFM); + + /* disable TX time gaurd */ + clear_bit_reg8(&this_uart->hw_reg->MM0,ETTG); + + /* set default RX timeout */ + clear_bit_reg8(&this_uart->hw_reg->MM0,ERTO); + + /* disable fractional baud-rate */ + clear_bit_reg8(&this_uart->hw_reg->MM0,EFBR); + + /* disable single wire mode */ + clear_bit_reg8(&this_uart->hw_reg->MM2,ESWM); + + /* set filter to minimum value */ + this_uart->hw_reg->GFR = 0u; + /* set default TX time gaurd */ + this_uart->hw_reg->TTG = 0u; + /* set default RX timeout */ + this_uart->hw_reg->RTO = 0u; + + /* + * Configure baud rate divisors. This uses the frational baud rate divisor + * where possible to provide the most accurate baud rat possible. + */ + config_baud_divisors(this_uart, baud_rate); + + /* set the line control register (bit length, stop bits, parity) */ + this_uart->hw_reg->LCR = line_config; + + /* Instance setup */ + this_uart->baudrate = baud_rate; + this_uart->lineconfig = line_config; + this_uart->tx_buff_size = TX_COMPLETE; + this_uart->tx_buffer = (const uint8_t *)0; + this_uart->tx_idx = 0u; + + /* Default handlers for MSS UART interrupts */ + this_uart->rx_handler = NULL_HANDLER; + this_uart->tx_handler = NULL_HANDLER; + this_uart->linests_handler = NULL_HANDLER; + this_uart->modemsts_handler = NULL_HANDLER; + this_uart->rto_handler = NULL_HANDLER; + this_uart->nack_handler = NULL_HANDLER; + this_uart->pid_pei_handler = NULL_HANDLER; + this_uart->break_handler = NULL_HANDLER; + this_uart->sync_handler = NULL_HANDLER; + + /* Initialize the sticky status */ + this_uart->status = 0u; +} + +/***************************************************************************//** + * Interrupt service routine triggered by any MSS UART interrupt. This routine + * will call the handler function appropriate to the interrupt from the + * handlers previously registered with the driver through calls to the + * MSS_UART_set_*_handler() functions, or it will call the default_tx_handler() + * function in response to transmit interrupts if MSS_UART_irq_tx() is used to + * transmit data. + */ +static void +MSS_UART_isr +( + mss_uart_instance_t * this_uart +) +{ + uint8_t iirf; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + + if((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) + { + iirf = this_uart->hw_reg->IIR & IIRF_MASK; + + switch (iirf) + { + case IIRF_MODEM_STATUS: /* Modem status interrupt */ + { + ASSERT(NULL_HANDLER != this_uart->modemsts_handler); + if(NULL_HANDLER != this_uart->modemsts_handler) + { + (*(this_uart->modemsts_handler))(this_uart); + } + } + break; + + case IIRF_THRE: /* Transmitter Holding Register Empty */ + { + ASSERT(NULL_HANDLER != this_uart->tx_handler); + if(NULL_HANDLER != this_uart->tx_handler) + { + (*(this_uart->tx_handler))(this_uart); + } + } + break; + + case IIRF_RX_DATA: /* Received Data Available */ + case IIRF_DATA_TIMEOUT: /* Received Data Timed-out */ + { + ASSERT(NULL_HANDLER != this_uart->rx_handler); + if(NULL_HANDLER != this_uart->rx_handler) + { + (*(this_uart->rx_handler))(this_uart); + } + } + break; + + case IIRF_RX_LINE_STATUS: /* Line Status Interrupt */ + { + ASSERT(NULL_HANDLER != this_uart->linests_handler); + if(NULL_HANDLER != this_uart->linests_handler) + { + (*(this_uart->linests_handler))(this_uart); + } + } + break; + + case IIRF_MMI: + { + /* Identify multimode interrupts and handle */ + + /* Receiver time-out interrupt */ + if(read_bit_reg8(&this_uart->hw_reg->IIM,ERTOI)) + { + ASSERT(NULL_HANDLER != this_uart->rto_handler); + if(NULL_HANDLER != this_uart->rto_handler) + { + (*(this_uart->rto_handler))(this_uart); + } + } + /* NACK interrupt */ + if(read_bit_reg8(&this_uart->hw_reg->IIM,ENACKI)) + { + ASSERT(NULL_HANDLER != this_uart->nack_handler); + if(NULL_HANDLER != this_uart->nack_handler) + { + (*(this_uart->nack_handler))(this_uart); + } + } + + /* PID parity error interrupt */ + if(read_bit_reg8(&this_uart->hw_reg->IIM,EPID_PEI)) + { + ASSERT(NULL_HANDLER != this_uart->pid_pei_handler); + if(NULL_HANDLER != this_uart->pid_pei_handler) + { + (*(this_uart->pid_pei_handler))(this_uart); + } + } + + /* LIN break detection interrupt */ + if(read_bit_reg8(&this_uart->hw_reg->IIM,ELINBI)) + { + ASSERT(NULL_HANDLER != this_uart->break_handler); + if(NULL_HANDLER != this_uart->break_handler) + { + (*(this_uart->break_handler))(this_uart); + } + } + + /* LIN Sync detection interrupt */ + if(read_bit_reg8(&this_uart->hw_reg->IIM,ELINSI)) + { + ASSERT(NULL_HANDLER != this_uart->sync_handler); + if(NULL_HANDLER != this_uart->sync_handler) + { + (*(this_uart->sync_handler))(this_uart); + } + } + break; + } + + default: + { + ASSERT(INVALID_INTERRUPT); + } + break; + } + } +} + +/***************************************************************************//** + * See mss_uart.h for details of how to use this function. + */ +static void +default_tx_handler +( + mss_uart_instance_t * this_uart +) +{ + uint8_t status; + + ASSERT((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)); + ASSERT(( (uint8_t *)0 ) != this_uart->tx_buffer); + ASSERT(0u < this_uart->tx_buff_size); + + if(((this_uart == &g_mss_uart0) || (this_uart == &g_mss_uart1)) && + (((uint8_t *)0 ) != this_uart->tx_buffer) && + (0u < this_uart->tx_buff_size)) + { + /* Read the Line Status Register and update the sticky record. */ + status = this_uart->hw_reg->LSR; + this_uart->status |= status; + + /* + * This function should only be called as a result of a THRE interrupt. + * Verify that this is true before proceeding to transmit data. + */ + if(status & MSS_UART_THRE) + { + uint32_t i; + uint32_t fill_size = TX_FIFO_SIZE; + uint32_t tx_remain = this_uart->tx_buff_size - this_uart->tx_idx; + + /* Calculate the number of bytes to transmit. */ + if(tx_remain < TX_FIFO_SIZE) + { + fill_size = tx_remain; + } + + /* Fill the TX FIFO with the calculated the number of bytes. */ + for(i = 0u; i < fill_size; ++i) + { + /* Send next character in the buffer. */ + this_uart->hw_reg->THR = this_uart->tx_buffer[this_uart->tx_idx]; + ++this_uart->tx_idx; + } + } + + /* Flag Tx as complete if all data has been pushed into the Tx FIFO. */ + if(this_uart->tx_idx == this_uart->tx_buff_size) + { + this_uart->tx_buff_size = TX_COMPLETE; + /* disables TX interrupt */ + clear_bit_reg8(&this_uart->hw_reg->IER,ETBEI); + } + } +} + +#ifdef __cplusplus +} +#endif From 4390d3a5b977d9aa82dd0f107b0ea4ec515cf8b0 Mon Sep 17 00:00:00 2001 From: whik <1490789115@qq.com> Date: Tue, 26 Jan 2021 10:04:30 +0800 Subject: [PATCH 2/2] delete some unused files --- board/Microchip_M2S010/BSP/Inc/config.h | 24 ------- board/Microchip_M2S010/BSP/Inc/mcu_init.h | 4 -- board/Microchip_M2S010/BSP/Src/board.c | 86 ----------------------- 3 files changed, 114 deletions(-) delete mode 100644 board/Microchip_M2S010/BSP/Inc/config.h delete mode 100644 board/Microchip_M2S010/BSP/Src/board.c diff --git a/board/Microchip_M2S010/BSP/Inc/config.h b/board/Microchip_M2S010/BSP/Inc/config.h deleted file mode 100644 index fc189395..00000000 --- a/board/Microchip_M2S010/BSP/Inc/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (c) 2006-2020, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2020-08-06 whik first version - */ -#ifndef __CONFIG_H__ -#define __CONFIG_H__ - -#include "mss_gpio.h" -#include "mss_uart.h" - -#include -#include - -void sw0_isr(void *args); -void sw1_isr(void *args); -void boardInit(void); -void sayHello(void); - -#endif diff --git a/board/Microchip_M2S010/BSP/Inc/mcu_init.h b/board/Microchip_M2S010/BSP/Inc/mcu_init.h index ae846b73..0e604d88 100644 --- a/board/Microchip_M2S010/BSP/Inc/mcu_init.h +++ b/board/Microchip_M2S010/BSP/Inc/mcu_init.h @@ -12,8 +12,4 @@ void board_init(void); -#ifdef __cplusplus -} -#endif - #endif /* _MCU_INIT_H_ */ diff --git a/board/Microchip_M2S010/BSP/Src/board.c b/board/Microchip_M2S010/BSP/Src/board.c deleted file mode 100644 index a024a8b1..00000000 --- a/board/Microchip_M2S010/BSP/Src/board.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 2006-2020, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2020-08-06 whik first version - */ - -#include -#include -#include - -#define _SCB_BASE (0xE000E010UL) -#define _SYSTICK_CTRL (*(rt_uint32_t *)(_SCB_BASE + 0x0)) -#define _SYSTICK_LOAD (*(rt_uint32_t *)(_SCB_BASE + 0x4)) -#define _SYSTICK_VAL (*(rt_uint32_t *)(_SCB_BASE + 0x8)) -#define _SYSTICK_CALIB (*(rt_uint32_t *)(_SCB_BASE + 0xC)) -#define _SYSTICK_PRI (*(rt_uint8_t *)(0xE000ED23UL)) - -extern void SystemCoreClockUpdate(void); -extern uint32_t SystemCoreClock; - -static uint32_t _SysTick_Config(rt_uint32_t ticks) -{ - if ((ticks - 1) > 0xFFFFFF) - { - return 1; - } - - _SYSTICK_LOAD = ticks - 1; - _SYSTICK_PRI = 0xFF; - _SYSTICK_VAL = 0; - _SYSTICK_CTRL = 0x07; - - return 0; -} - -#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) -#define RT_HEAP_SIZE 1024 -static uint32_t rt_heap[RT_HEAP_SIZE]; // heap default size: 4K(1024 * 4) -RT_WEAK void *rt_heap_begin_get(void) -{ - return rt_heap; -} - -RT_WEAK void *rt_heap_end_get(void) -{ - return rt_heap + RT_HEAP_SIZE; -} -#endif - -/* This function will initial your board. */ -void rt_hw_board_init() -{ - /* System Clock Update */ - SystemCoreClockUpdate(); - - /* System Tick Configuration */ - _SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); - - /* Call components board initial (use INIT_BOARD_EXPORT()) */ -#ifdef RT_USING_COMPONENTS_INIT - rt_components_board_init(); -#endif - -#ifdef RT_USING_CONSOLE - rt_console_set_device(RT_CONSOLE_DEVICE_NAME); -#endif - -#if defined(RT_USING_USER_MAIN) && defined(RT_USING_HEAP) - rt_system_heap_init(rt_heap_begin_get(), rt_heap_end_get()); -#endif -} - -void SysTick_Handler(void) -{ - /* enter interrupt */ - rt_interrupt_enter(); - - rt_tick_increase(); - - /* leave interrupt */ - rt_interrupt_leave(); -}

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

Ex@VvDlJw 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