summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-01-23 11:19:22 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-01-23 11:19:22 +0100
commita762dc2a49fad0e7797806fefd34d144b6d998b2 (patch)
tree3f21a6ba6320a3a89581a3d1e2be5162bb8a904f /c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h
parentGoogle C++ Testing Framework 1.6.0. (diff)
downloadrtems-a762dc2a49fad0e7797806fefd34d144b6d998b2.tar.bz2
Support for MPC5643L.
Rework of the start sequence to reduce the amount assembler code and to support configuration tables which may be provided by the application.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h')
-rw-r--r--c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h90
1 files changed, 79 insertions, 11 deletions
diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h
index 181e519921..93d212f807 100644
--- a/c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h
+++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/include/mpc55xx-config.h
@@ -3,7 +3,7 @@
*
* @ingroup mpc55xx
*
- * @brief MPC55XX low-level configuration.
+ * @brief Low-level configuration.
*/
/*
@@ -27,6 +27,10 @@
#include <stddef.h>
+#include <libcpu/powerpc-utility.h>
+
+#include <bsp/start.h>
+
#include <mpc55xx/regs.h>
#include <mpc55xx/regs-mmu.h>
@@ -38,25 +42,89 @@ typedef struct {
uint16_t index;
uint16_t count;
union SIU_PCR_tag pcr;
-} mpc55xx_siu_pcr_config_entry;
+} mpc55xx_siu_pcr_config;
+
+extern const mpc55xx_siu_pcr_config mpc55xx_start_config_siu_pcr [];
+
+extern const size_t mpc55xx_start_config_siu_pcr_count [];
+
+extern const struct MMU_tag mpc55xx_start_config_mmu_early [];
+
+extern const size_t mpc55xx_start_config_mmu_early_count [];
+
+extern const struct MMU_tag mpc55xx_start_config_mmu [];
+
+extern const size_t mpc55xx_start_config_mmu_count [];
+
+#ifdef MPC55XX_HAS_FMPLL
+ typedef struct {
+ union FMPLL_SYNCR_tag syncr_tmp;
+ union FMPLL_SYNCR_tag syncr_final;
+ } mpc55xx_clock_config;
+#endif
+
+#ifdef MPC55XX_HAS_FMPLL_ENHANCED
+ typedef struct {
+ union FMPLL_ESYNCR2_tag esyncr2_tmp;
+ union FMPLL_ESYNCR2_tag esyncr2_final;
+ union FMPLL_ESYNCR1_tag esyncr1_final;
+ } mpc55xx_clock_config;
+#endif
+
+#ifdef MPC55XX_HAS_MODE_CONTROL
+ typedef struct {
+ struct {
+ PLLD_CR_32B_tag cr;
+ PLLD_MR_32B_tag mr;
+ } fmpll [2];
+ CGM_OC_EN_32B_tag oc_en;
+ CGM_OCDS_SC_32B_tag ocds_sc;
+ CGM_SC_DC0_3_32B_tag sc_dc0_3;
+ CGM_AUXCLK_tag auxclk [5];
+ } mpc55xx_clock_config;
+#endif
+
+extern const mpc55xx_clock_config mpc55xx_start_config_clock [];
+
+#ifdef MPC55XX_HAS_EBI
+ extern const struct EBI_CS_tag mpc55xx_start_config_ebi_cs [];
+
+ extern const size_t mpc55xx_start_config_ebi_cs_count [];
+
+ extern const struct EBI_CAL_CS_tag mpc55xx_start_config_ebi_cal_cs [];
+
+ extern const size_t mpc55xx_start_config_ebi_cal_cs_count [];
+#endif
+
+void mpc55xx_start_early(void);
+
+void mpc55xx_start_flash(void);
-extern const mpc55xx_siu_pcr_config_entry mpc55xx_siu_pcr_config [];
+void mpc55xx_start_cache(void);
-extern const size_t mpc55xx_siu_pcr_config_count [];
+void mpc55xx_start_clock(void);
-extern const struct MMU_tag mpc55xx_mmu_config [];
+void mpc55xx_start_watchdog(void);
-extern const size_t mpc55xx_mmu_config_count [];
+void mpc55xx_start_mmu_apply_config(const struct MMU_tag *config, size_t count);
-extern const struct EBI_CS_tag mpc55xx_ebi_cs_config [];
+uint32_t mpc55xx_get_system_clock(void);
-extern const size_t mpc55xx_ebi_cs_config_count [];
+LINKER_SYMBOL(bsp_ram_start)
+LINKER_SYMBOL(bsp_ram_end)
+LINKER_SYMBOL(bsp_ram_size)
-extern const struct EBI_CAL_CS_tag mpc55xx_ebi_cal_cs_config [];
+LINKER_SYMBOL(bsp_ram_1_start)
+LINKER_SYMBOL(bsp_ram_1_end)
+LINKER_SYMBOL(bsp_ram_1_size)
-extern const size_t mpc55xx_ebi_cal_cs_config_count [];
+LINKER_SYMBOL(bsp_rom_start)
+LINKER_SYMBOL(bsp_rom_end)
+LINKER_SYMBOL(bsp_rom_size)
-void mpc55xx_early_init(void);
+#ifdef MPC55XX_BOOTFLAGS
+ extern uint32_t mpc55xx_bootflag_0 [];
+#endif
#ifdef __cplusplus
}