summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c')
-rw-r--r--c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c156
1 files changed, 0 insertions, 156 deletions
diff --git a/c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c b/c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c
deleted file mode 100644
index 697ec88d67..0000000000
--- a/c/src/lib/libbsp/arm/atsam/startup/bspstarthooks.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2016 embedded brains GmbH Huber. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <bsp.h>
-#include <bsp/start.h>
-#include <bsp/pin-config.h>
-#include <bsp/atsam-clock-config.h>
-
-#include <chip.h>
-#include <include/board_lowlevel.h>
-#include <include/board_memories.h>
-
-#define SIZE_0K 0
-#define SIZE_32K (32 * 1024)
-#define SIZE_64K (64 * 1024)
-#define SIZE_128K (128 * 1024)
-
-#define ITCMCR_SZ_0K 0x0
-#define ITCMCR_SZ_32K 0x6
-#define ITCMCR_SZ_64K 0x7
-#define ITCMCR_SZ_128K 0x8
-
-static BSP_START_TEXT_SECTION void efc_send_command(uint32_t eefc)
-{
- EFC->EEFC_FCR = eefc | EEFC_FCR_FKEY_PASSWD;
-}
-
-static BSP_START_TEXT_SECTION void tcm_enable(void)
-{
- SCB->ITCMCR |= SCB_ITCMCR_EN_Msk;
- SCB->DTCMCR |= SCB_DTCMCR_EN_Msk;
-}
-
-static BSP_START_TEXT_SECTION void tcm_disable(void)
-{
- SCB->ITCMCR &= ~SCB_ITCMCR_EN_Msk;
- SCB->DTCMCR &= ~SCB_DTCMCR_EN_Msk;
-}
-
-static BSP_START_TEXT_SECTION bool tcm_setup_and_check_if_do_efc_config(
- uintptr_t tcm_size,
- uint32_t itcmcr_sz
-)
-{
- if (tcm_size == SIZE_0K && itcmcr_sz == ITCMCR_SZ_0K) {
- tcm_disable();
- return false;
- } else if (tcm_size == SIZE_32K && itcmcr_sz == ITCMCR_SZ_32K) {
- tcm_enable();
- return false;
- } else if (tcm_size == SIZE_64K && itcmcr_sz == ITCMCR_SZ_64K) {
- tcm_enable();
- return false;
- } else if (tcm_size == SIZE_128K && itcmcr_sz == ITCMCR_SZ_128K) {
- tcm_enable();
- return false;
- } else {
- return true;
- }
-}
-
-static bool ATSAM_START_SRAM_SECTION sdram_settings_unchanged(void)
-{
- return (
- (SDRAMC->SDRAMC_CR == BOARD_Sdram_Config.sdramc_cr) &&
- (SDRAMC->SDRAMC_TR == BOARD_Sdram_Config.sdramc_tr) &&
- (SDRAMC->SDRAMC_MDR == BOARD_Sdram_Config.sdramc_mdr) &&
- (SDRAMC->SDRAMC_CFR1 == BOARD_Sdram_Config.sdramc_cfr1)
- );
-}
-
-static void ATSAM_START_SRAM_SECTION setup_CPU_and_SDRAM(void)
-{
- SystemInit();
- if (!PMC_IsPeriphEnabled(ID_SDRAMC) || !sdram_settings_unchanged()) {
- BOARD_ConfigureSdram();
- }
-}
-
-static void configure_tcm(void)
-{
- uintptr_t tcm_size;
- uint32_t itcmcr_sz;
-
- tcm_size = (uintptr_t) atsam_memory_itcm_size;
- itcmcr_sz = (SCB->ITCMCR & SCB_ITCMCR_SZ_Msk) >> SCB_ITCMCR_SZ_Pos;
-
- if (tcm_setup_and_check_if_do_efc_config(tcm_size, itcmcr_sz)) {
- if (tcm_size == SIZE_128K) {
- efc_send_command(EEFC_FCR_FCMD_SGPB | EEFC_FCR_FARG(7));
- efc_send_command(EEFC_FCR_FCMD_SGPB | EEFC_FCR_FARG(8));
- tcm_enable();
- } else if (tcm_size == SIZE_64K) {
- efc_send_command(EEFC_FCR_FCMD_CGPB | EEFC_FCR_FARG(7));
- efc_send_command(EEFC_FCR_FCMD_SGPB | EEFC_FCR_FARG(8));
- tcm_enable();
- } else if (tcm_size == SIZE_32K) {
- efc_send_command(EEFC_FCR_FCMD_SGPB | EEFC_FCR_FARG(7));
- efc_send_command(EEFC_FCR_FCMD_CGPB | EEFC_FCR_FARG(8));
- tcm_enable();
- } else {
- efc_send_command(EEFC_FCR_FCMD_CGPB | EEFC_FCR_FARG(7));
- efc_send_command(EEFC_FCR_FCMD_CGPB | EEFC_FCR_FARG(8));
- tcm_disable();
- }
- }
-}
-
-void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
-{
- system_init_flash(BOARD_MCK);
-
- PIO_Configure(&atsam_pin_config[0], atsam_pin_config_count);
- MATRIX->CCFG_SYSIO = atsam_matrix_ccfg_sysio;
-
- configure_tcm();
-#if ATSAM_CHANGE_CLOCK_FROM_SRAM != 0
- /* Early copy of .fast_text section for CPU and SDRAM setup. */
- bsp_start_memcpy_libc(
- bsp_section_fast_text_begin,
- bsp_section_fast_text_load_begin,
- (size_t) bsp_section_fast_text_size
- );
-#endif
- setup_CPU_and_SDRAM();
-
- if ((SCB->CCR & SCB_CCR_IC_Msk) == 0) {
- SCB_EnableICache();
- }
-
- if ((SCB->CCR & SCB_CCR_DC_Msk) == 0) {
- SCB_EnableDCache();
- }
-
- _SetupMemoryRegion();
-}
-
-void BSP_START_TEXT_SECTION bsp_start_hook_1(void)
-{
- bsp_start_copy_sections_compact();
- SCB_CleanDCache();
- SCB_InvalidateICache();
- bsp_start_clear_bss();
- WDT_Disable(WDT);
-}