diff options
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.h | 90 |
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 } |