summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c157
1 files changed, 0 insertions, 157 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c
deleted file mode 100644
index 3b213f228a..0000000000
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * @file
- *
- * @ingroup mpc55xx
- *
- * @brief BSP early initialization code.
- */
-
-/*
- * Copyright (c) 2008-2011 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * 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.com/license/LICENSE.
- *
- * $Id$
- */
-
-#include <bsp/mpc55xx-config.h>
-#include <bsp/linker-symbols.h>
-#include <bsp/start.h>
-#include <bsp.h>
-
-#include <mpc55xx/mpc55xx.h>
-
-#include <string.h>
-
-#ifdef MPC55XX_BOOTFLAGS
-extern uint32_t mpc55xx_bootflag_0 [];
-#endif
-
-static void BSP_START_TEXT_SECTION mpc55xx_siu_init(void)
-{
- size_t i = 0;
-
-#if defined(MPC55XX_BOARD_GWLCFM)
- SIU.GPDO[122].B.PDO=1; /* make sure USB reset is kept high */
- SIU.GPDO[121].B.PDO=1; /* make sure Ethernet reset is kept high */
- SIU.GPDO[113].B.PDO=1; /* make sure MOST Companion reset is kept high */
-#endif
-
- for (i = 0; i < mpc55xx_siu_pcr_config_count [0]; ++i) {
- const mpc55xx_siu_pcr_config_entry *e = &mpc55xx_siu_pcr_config [i];
- int j = e->index;
- int n = j + e->count;
- uint32_t pcr = e->pcr.R;
-
- while (j < n) {
- SIU.PCR [j].R = pcr;
- ++j;
- }
- }
-}
-
-static void BSP_START_TEXT_SECTION mpc55xx_ebi_chip_select_init(void)
-{
- size_t i = 0;
-
- for (i = 0; i < mpc55xx_ebi_cs_config_count [0]; ++i) {
- EBI.CS [i] = mpc55xx_ebi_cs_config [i];
- }
-
- for (i = 0; i < mpc55xx_ebi_cal_cs_config_count [0]; ++i) {
- EBI.CAL_CS [i] = mpc55xx_ebi_cal_cs_config [i];
- }
-}
-
-static void BSP_START_TEXT_SECTION mpc55xx_ebi_init(void)
-{
-#if defined(MPC55XX_BOARD_GWLCFM)
- /*
- * init EBI for Muxed AD bus
- */
- EBI.MCR.B.DBM = 1;
- EBI.MCR.B.AD_MUX = 1; /* use multiplexed bus */
- EBI.MCR.B.D16_31 = 1; /* use lower AD bus */
-
- SIU.ECCR.B.EBDF = 3; /* use CLK/4 as bus clock */
-#elif defined(MPC55XX_BOARD_MPC5674FEVB)
- struct EBI_tag ebi = {
- .MCR = {
- .B = {
- .ACGE = 0,
- .MDIS = 0,
- .D16_31 = 0,
- .AD_MUX = 0,
- .DBM = 0
- }
- }
- };
-
- EBI.MCR.R = ebi.MCR.R;
-#endif
-}
-
-static void BSP_START_TEXT_SECTION mpc55xx_mmu_init(void)
-{
-#ifdef MPC55XX_BOOTFLAGS
- /* If the low bit of bootflag 0 is clear don't change the MMU. */
- bool do_mmu_init = (mpc55xx_bootflag_0 [0] & 1) != 0;
-#else
- bool do_mmu_init = true;
-#endif
-
- if (do_mmu_init) {
- size_t i = 0;
-
- for (i = 0; i < mpc55xx_mmu_config_count [0]; ++i) {
- const struct MMU_tag *tag = &mpc55xx_mmu_config [i];
- PPC_SET_SPECIAL_PURPOSE_REGISTER( FSL_EIS_MAS0, tag->MAS0.R);
- PPC_SET_SPECIAL_PURPOSE_REGISTER( FSL_EIS_MAS1, tag->MAS1.R);
- PPC_SET_SPECIAL_PURPOSE_REGISTER( FSL_EIS_MAS2, tag->MAS2.R);
- PPC_SET_SPECIAL_PURPOSE_REGISTER( FSL_EIS_MAS3, tag->MAS3.R);
- __asm__ volatile ("tlbwe");
- }
- }
-}
-
-static void BSP_START_TEXT_SECTION mpc55xx_load_section(
- void *dst,
- const void *src,
- size_t n
-)
-{
- if (dst != src) {
- memcpy(dst, src, n);
- }
-}
-
-void BSP_START_TEXT_SECTION mpc55xx_early_init(void)
-{
- mpc55xx_load_section(
- &bsp_section_fast_text_begin [0],
- &bsp_section_fast_text_load_begin [0],
- (size_t) bsp_section_fast_text_size
- );
- mpc55xx_load_section(
- &bsp_section_fast_data_begin [0],
- &bsp_section_fast_data_load_begin [0],
- (size_t) bsp_section_fast_data_size
- );
- mpc55xx_load_section(
- &bsp_section_data_begin [0],
- &bsp_section_data_load_begin [0],
- (size_t) bsp_section_data_size
- );
- mpc55xx_siu_init();
- mpc55xx_ebi_chip_select_init();
- mpc55xx_ebi_init();
- mpc55xx_mmu_init();
-}