bsp/mpc55xx: Add MPC5668G support

This commit is contained in:
Sebastian Huber
2013-07-02 10:37:13 +02:00
parent 583eb4588f
commit c8d78ee510
17 changed files with 6836 additions and 20 deletions

View File

@@ -30,6 +30,7 @@ dist_project_lib_DATA += startup/linkcmds.mpc5643l_dpu
dist_project_lib_DATA += startup/linkcmds.mpc5674fevb dist_project_lib_DATA += startup/linkcmds.mpc5674fevb
dist_project_lib_DATA += startup/linkcmds.mpc5674fevb_spe dist_project_lib_DATA += startup/linkcmds.mpc5674fevb_spe
dist_project_lib_DATA += startup/linkcmds.phycore_mpc5554 dist_project_lib_DATA += startup/linkcmds.phycore_mpc5554
dist_project_lib_DATA += startup/linkcmds.mpc5668g
dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508 dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508
dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_boot dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_boot
dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_app dist_project_lib_DATA += startup/linkcmds.mpc5674f_ecu508_app

View File

@@ -7,10 +7,10 @@
*/ */
/* /*
* Copyright (c) 2009-2011 embedded brains GmbH. All rights reserved. * Copyright (c) 2009-2013 embedded brains GmbH. All rights reserved.
* *
* embedded brains GmbH * embedded brains GmbH
* Obere Lagerstr. 30 * Dornierstr. 4
* 82178 Puchheim * 82178 Puchheim
* Germany * Germany
* <rtems@embedded-brains.de> * <rtems@embedded-brains.de>
@@ -25,6 +25,8 @@
#include <mpc55xx/regs.h> #include <mpc55xx/regs.h>
void Clock_isr(void *arg);
static uint64_t mpc55xx_clock_factor; static uint64_t mpc55xx_clock_factor;
#if defined(MPC55XX_CLOCK_EMIOS_CHANNEL) #if defined(MPC55XX_CLOCK_EMIOS_CHANNEL)

View File

@@ -67,6 +67,7 @@ RTEMS_BSPOPTS_HELP([MPC55XX_ESCI_USE_INTERRUPTS],
RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[gwlcfm],[40000000]) RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[gwlcfm],[40000000])
RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[mpc5643l_evb*],[40000000]) RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[mpc5643l_evb*],[40000000])
RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[mpc5668g*],[25000000])
RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[mpc5674f*],[40000000]) RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[mpc5674f*],[40000000])
RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[*],[8000000]) RTEMS_BSPOPTS_SET([MPC55XX_REFERENCE_CLOCK],[*],[8000000])
RTEMS_BSPOPTS_HELP([MPC55XX_REFERENCE_CLOCK], RTEMS_BSPOPTS_HELP([MPC55XX_REFERENCE_CLOCK],
@@ -74,18 +75,21 @@ RTEMS_BSPOPTS_HELP([MPC55XX_REFERENCE_CLOCK],
for clock generation]) for clock generation])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[gwlcfm],[66000000]) RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[gwlcfm],[66000000])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[mpc5668g*],[116000000])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[mpc5674f*],[264000000]) RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[mpc5674f*],[264000000])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[*] ,[128000000]) RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK],[*] ,[128000000])
RTEMS_BSPOPTS_HELP([MPC55XX_SYSTEM_CLOCK], RTEMS_BSPOPTS_HELP([MPC55XX_SYSTEM_CLOCK],
[The system clock frequency in Hz.]) [The system clock frequency in Hz.])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[gwlcfm],[10]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[gwlcfm],[10])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[mpc5668g*],[6])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[mpc5674f*],[5]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[mpc5674f*],[5])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[*] ,[1]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[*] ,[1])
RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_PREDIV], RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_PREDIV],
[Must be defined to be the PLL predivider factor for clock generation]) [Must be defined to be the PLL predivider factor for clock generation])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[gwlcfm],[99]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[gwlcfm],[99])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[mpc5668g*],[111])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[mpc5674f*],[66]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[mpc5674f*],[66])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[*] ,[12]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[*] ,[12])
RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_MFD], RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_MFD],
@@ -109,6 +113,7 @@ RTEMS_BSPOPTS_HELP([MPC55XX_EMIOS_PRESCALER],
RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5566*],[1]) RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5566*],[1])
RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5674f*],[1]) RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[mpc5674f*],[1])
RTEMS_BSPOPTS_SET([MPC55XX_NULL_POINTER_PROTECTION],[*],[])
RTEMS_BSPOPTS_HELP([MPC55XX_NULL_POINTER_PROTECTION], RTEMS_BSPOPTS_HELP([MPC55XX_NULL_POINTER_PROTECTION],
[enable NULL pointer protection]) [enable NULL pointer protection])
@@ -147,12 +152,14 @@ RTEMS_BSPOPTS_HELP([SMSC9218I_IRQ_PIN],
[IRQ pin for SMSC9218I network interface]) [IRQ pin for SMSC9218I network interface])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5643l*],[]) RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5643l*],[])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5668g*],[])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5674f*],[31]) RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5674f*],[31])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[*],[23]) RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[*],[23])
RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_EMIOS_CHANNEL], RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_EMIOS_CHANNEL],
[selects the eMIOS channel for the RTEMS system tick (the default is the last channel)]) [selects the eMIOS channel for the RTEMS system tick (the default is the last channel)])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_PIT_CHANNEL],[mpc5643l*],[3]) RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_PIT_CHANNEL],[mpc5643l*],[3])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_PIT_CHANNEL],[mpc5668g*],[8])
RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_PIT_CHANNEL],[*],[]) RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_PIT_CHANNEL],[*],[])
RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_PIT_CHANNEL], RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_PIT_CHANNEL],
[selects the PIT channel for the RTEMS system tick (the default is the last channel)]) [selects the PIT channel for the RTEMS system tick (the default is the last channel)])
@@ -160,6 +167,7 @@ RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_PIT_CHANNEL],
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[gwlcfm],[5516]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[gwlcfm],[5516])
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5566*],[5566]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5566*],[5566])
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5643l*],[5643]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5643l*],[5643])
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5668g*],[5668])
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5674f*],[5674]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5674f*],[5674])
RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[*],[5554]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[*],[5554])
RTEMS_BSPOPTS_HELP([MPC55XX_CHIP_TYPE], RTEMS_BSPOPTS_HELP([MPC55XX_CHIP_TYPE],

View File

@@ -0,0 +1 @@
include $(RTEMS_ROOT)/make/custom/mpc55xx.inc

View File

@@ -93,6 +93,10 @@ $(PROJECT_LIB)/linkcmds.phycore_mpc5554: startup/linkcmds.phycore_mpc5554 $(PROJ
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.phycore_mpc5554 $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.phycore_mpc5554
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.phycore_mpc5554 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.phycore_mpc5554
$(PROJECT_LIB)/linkcmds.mpc5668g: startup/linkcmds.mpc5668g $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5668g
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5668g
$(PROJECT_LIB)/linkcmds.mpc5674f_ecu508: startup/linkcmds.mpc5674f_ecu508 $(PROJECT_LIB)/$(dirstamp) $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508: startup/linkcmds.mpc5674f_ecu508 $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508 $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508

View File

@@ -118,7 +118,10 @@ void bsp_start(void)
/* Initialize interrupts */ /* Initialize interrupts */
bsp_interrupt_initialize(); bsp_interrupt_initialize();
#if MPC55XX_CHIP_FAMILY != 566
mpc55xx_edma_init(); mpc55xx_edma_init();
#endif
#ifdef MPC55XX_EMIOS_PRESCALER #ifdef MPC55XX_EMIOS_PRESCALER
mpc55xx_emios_initialize(MPC55XX_EMIOS_PRESCALER); mpc55xx_emios_initialize(MPC55XX_EMIOS_PRESCALER);
#endif #endif

View File

@@ -0,0 +1,29 @@
MEMORY {
ROM : ORIGIN = 0x0, LENGTH = 2M
RAM : ORIGIN = 0x40000000, LENGTH = 256K - 16k
NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k
EMPTY : ORIGIN = 0x0, LENGTH = 0
}
REGION_ALIAS ("RAM_EXT", RAM);
REGION_ALIAS ("REGION_START", ROM);
REGION_ALIAS ("REGION_FAST_TEXT", RAM);
REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM);
REGION_ALIAS ("REGION_TEXT", ROM);
REGION_ALIAS ("REGION_TEXT_LOAD", ROM);
REGION_ALIAS ("REGION_RODATA", ROM);
REGION_ALIAS ("REGION_RODATA_LOAD", ROM);
REGION_ALIAS ("REGION_FAST_DATA", RAM);
REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM);
REGION_ALIAS ("REGION_DATA", RAM);
REGION_ALIAS ("REGION_DATA_LOAD", ROM);
REGION_ALIAS ("REGION_BSS", RAM);
REGION_ALIAS ("REGION_RWEXTRA", RAM);
REGION_ALIAS ("REGION_WORK", RAM);
REGION_ALIAS ("REGION_STACK", RAM);
REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
REGION_ALIAS ("REGION_NOCACHE_LOAD", ROM);
REGION_ALIAS ("REGION_NVRAM", EMPTY);
INCLUDE linkcmds.mpc55xx

View File

@@ -74,7 +74,7 @@ BSP_START_TEXT_SECTION void mpc55xx_start_clock(void)
fmpll->ESYNCR2.R; fmpll->ESYNCR2.R;
fmpll_wait_for_lock(); fmpll_wait_for_lock();
#if MPC55XX_CHIP_FAMILY == 551 #if MPC55XX_CHIP_FAMILY == 551 || MPC55XX_CHIP_FAMILY == 566
/* System clock supplied by PLL */ /* System clock supplied by PLL */
SIU.SYSCLK.B.SYSCLKSEL = 2; SIU.SYSCLK.B.SYSCLKSEL = 2;
#endif #endif

View File

@@ -7,10 +7,10 @@
*/ */
/* /*
* Copyright (c) 2011-2012 embedded brains GmbH. All rights reserved. * Copyright (c) 2011-2013 embedded brains GmbH. All rights reserved.
* *
* embedded brains GmbH * embedded brains GmbH
* Obere Lagerstr. 30 * Dornierstr. 4
* 82178 Puchheim * 82178 Puchheim
* Germany * Germany
* <rtems@embedded-brains.de> * <rtems@embedded-brains.de>
@@ -44,6 +44,15 @@ const struct MMU_tag mpc55xx_start_config_mmu_early [] = {
/* Internal SRAM 64k + 64k */ /* Internal SRAM 64k + 64k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 1, 1, 1, 0), MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_64K, 1, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(4, 0x50000000, MPC55XX_MMU_64K, 0, 1, 1, 0) MPC55XX_MMU_TAG_INITIALIZER(4, 0x50000000, MPC55XX_MMU_64K, 0, 1, 1, 0)
#elif MPC55XX_CHIP_FAMILY == 566
/* Internal flash 2M */
MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_1M, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(4, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0),
/* IO */
MPC55XX_MMU_TAG_INITIALIZER(2, 0xc3f00000, MPC55XX_MMU_1M, 0, 1, 1, 1),
/* Internal SRAM 512k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(5, 0x40040000, MPC55XX_MMU_256K, 1, 1, 1, 0)
#elif MPC55XX_CHIP_FAMILY == 567 #elif MPC55XX_CHIP_FAMILY == 567
/* Internal SRAM 256k */ /* Internal SRAM 256k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0) MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 1, 1, 1, 0)

View File

@@ -38,7 +38,9 @@
* @warning Code will be copied and executed on the stack. * @warning Code will be copied and executed on the stack.
*/ */
GLOBAL_FUNCTION mpc55xx_start_flash GLOBAL_FUNCTION mpc55xx_start_flash
#if !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) || MPC55XX_CHIP_FAMILY == 564 #if !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT) \
|| MPC55XX_CHIP_FAMILY == 564 \
|| MPC55XX_CHIP_FAMILY == 566
blr blr
#else #else
.equ stack_size, 20 .equ stack_size, 20

View File

@@ -422,6 +422,7 @@ include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc551x.h
include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc555x.h include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc555x.h
include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc556x.h include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc556x.h
include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc564xL.h include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc564xL.h
include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc5668.h
include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc567x.h include_mpc55xx_HEADERS += mpc55xx/include/fsl-mpc567x.h
include_mpc55xx_HEADERS += mpc55xx/include/regs-edma.h include_mpc55xx_HEADERS += mpc55xx/include/regs-edma.h
include_mpc55xx_HEADERS += mpc55xx/include/regs-mmu.h include_mpc55xx_HEADERS += mpc55xx/include/regs-mmu.h

View File

@@ -168,7 +168,7 @@ extern "C" {
/** @} */ /** @} */
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
#define MPC55XX_EMIOS_CHANNEL_NUMBER 32U #define MPC55XX_EMIOS_CHANNEL_NUMBER 32U
#else #else
#define MPC55XX_EMIOS_CHANNEL_NUMBER 24U #define MPC55XX_EMIOS_CHANNEL_NUMBER 24U

File diff suppressed because it is too large Load Diff

View File

@@ -89,7 +89,7 @@ extern "C" {
((mod) == 0 ? 82U : MPC55XX_IRQ_INVALID) ((mod) == 0 ? 82U : MPC55XX_IRQ_INVALID)
/* eSCI */ /* eSCI */
#define MPC55XX_IRQ_ESCI_BASE(mod) \ #define MPC55XX_IRQ_ESCI(mod) \
((mod) == 0 ? 113U : \ ((mod) == 0 ? 113U : \
((mod) == 1 ? 114U : \ ((mod) == 1 ? 114U : \
((mod) == 2 ? 115U : \ ((mod) == 2 ? 115U : \
@@ -210,6 +210,29 @@ extern "C" {
/* SWG */ /* SWG */
#define MPC55XX_IRQ_SWG 255U #define MPC55XX_IRQ_SWG 255U
#elif MPC55XX_CHIP_FAMILY == 566
#define MPC55XX_IRQ_MAX 315U
/* eDMA */
#define MPC55XX_IRQ_EDMA_ERROR(group) \
((group) == 0 ? 10U : MPC55XX_IRQ_INVALID)
#define MPC55XX_IRQ_EDMA(ch) \
((unsigned) (ch) < 32U ? 11U + (ch) : MPC55XX_IRQ_INVALID)
/* PIT */
#define MPC55XX_IRQ_PIT_CHANNEL(ch) \
((unsigned) (ch) < 9U ? 148U + (ch) : MPC55XX_IRQ_INVALID)
/* eMIOS */
#define MPC55XX_IRQ_EMIOS(ch) \
((unsigned) (ch) < 24U ? 58U + (ch) : \
((unsigned) (ch) < 32U ? 262U + (ch) : MPC55XX_IRQ_INVALID))
/* eSCI */
#define MPC55XX_IRQ_ESCI(mod) \
((unsigned) (mod) < 4U ? 113U + (mod) : \
((unsigned) (mod) < 8U ? 270U + (mod) : \
((unsigned) (mod) < 12U ? 306U + (mod) : MPC55XX_IRQ_INVALID)))
#else #else
#if MPC55XX_CHIP_FAMILY == 555 #if MPC55XX_CHIP_FAMILY == 555
#define MPC55XX_IRQ_MAX 307U #define MPC55XX_IRQ_MAX 307U
@@ -269,7 +292,7 @@ extern "C" {
((mod) == 1 ? 394U : MPC55XX_IRQ_INVALID)) ((mod) == 1 ? 394U : MPC55XX_IRQ_INVALID))
/* eSCI */ /* eSCI */
#define MPC55XX_IRQ_ESCI_BASE(mod) \ #define MPC55XX_IRQ_ESCI(mod) \
((mod) == 0 ? 146U : \ ((mod) == 0 ? 146U : \
((mod) == 1 ? 149U : \ ((mod) == 1 ? 149U : \
((mod) == 2 ? 473U : MPC55XX_IRQ_INVALID))) ((mod) == 2 ? 473U : MPC55XX_IRQ_INVALID)))
@@ -332,9 +355,6 @@ extern "C" {
#define MPC55XX_IRQ_EQADC_RFDF(mod, fifo) \ #define MPC55XX_IRQ_EQADC_RFDF(mod, fifo) \
(MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 4U) (MPC55XX_IRQ_EQADC_BASE(mod) + 1U + (fifo) * 5U + 4U)
/* eSCI */
#define MPC55XX_IRQ_ESCI(mod) (MPC55XX_IRQ_ESCI_BASE(mod) + 0U)
/* FlexCAN */ /* FlexCAN */
#if MPC55XX_CHIP_FAMILY == 564 #if MPC55XX_CHIP_FAMILY == 564
#define MPC55XX_IRQ_CAN_ERR(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 0U) #define MPC55XX_IRQ_CAN_ERR(mod) (MPC55XX_IRQ_CAN_BASE(mod) + 0U)

View File

@@ -67,7 +67,7 @@ extern "C" {
union EDMA_CR_tag { union EDMA_CR_tag {
uint32_t R; uint32_t R;
struct { struct {
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
uint32_t:14; uint32_t:14;
uint32_t CX:1; uint32_t CX:1;
uint32_t ECX:1; uint32_t ECX:1;
@@ -78,7 +78,7 @@ extern "C" {
uint32_t GRP2PRI:2; uint32_t GRP2PRI:2;
uint32_t GRP1PRI:2; uint32_t GRP1PRI:2;
uint32_t GRP0PRI:2; uint32_t GRP0PRI:2;
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
uint32_t EMLM:1; uint32_t EMLM:1;
uint32_t CLM:1; uint32_t CLM:1;
uint32_t HALT:1; uint32_t HALT:1;
@@ -97,7 +97,7 @@ extern "C" {
uint32_t R; uint32_t R;
struct { struct {
uint32_t VLD:1; uint32_t VLD:1;
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
uint32_t:14; uint32_t:14;
uint32_t ECX:1; uint32_t ECX:1;
#else #else
@@ -485,7 +485,7 @@ extern "C" {
} B; } B;
} ERL; /* DMA Error Low */ } ERL; /* DMA Error Low */
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
union { /* hardware request status high */ union { /* hardware request status high */
uint32_t R; uint32_t R;
struct { struct {
@@ -571,7 +571,7 @@ extern "C" {
uint8_t R; uint8_t R;
struct { struct {
uint8_t ECP:1; uint8_t ECP:1;
#if MPC55XX_CHIP_FAMILY == 567 #if MPC55XX_CHIP_FAMILY == 566 || MPC55XX_CHIP_FAMILY == 567
uint8_t DPA:1; uint8_t DPA:1;
#else #else
uint8_t:1; uint8_t:1;

View File

@@ -8,10 +8,10 @@
*/ */
/* /*
* Copyright (c) 2008-2012 embedded brains GmbH. All rights reserved. * Copyright (c) 2008-2013 embedded brains GmbH. All rights reserved.
* *
* embedded brains GmbH * embedded brains GmbH
* Obere Lagerstr. 30 * Dornierstr. 4
* 82178 Puchheim * 82178 Puchheim
* Germany * Germany
* <rtems@embedded-brains.de> * <rtems@embedded-brains.de>
@@ -58,6 +58,17 @@
#define MPC55XX_HAS_LINFLEX #define MPC55XX_HAS_LINFLEX
#define MPC55XX_HAS_SECOND_INTERNAL_RAM_AREA #define MPC55XX_HAS_SECOND_INTERNAL_RAM_AREA
#define MPC55XX_HAS_SIU_LITE #define MPC55XX_HAS_SIU_LITE
#elif MPC55XX_CHIP_FAMILY == 566
#include <mpc55xx/fsl-mpc5668.h>
#define MPC55XX_HAS_ESCI
#define MPC55XX_HAS_EMIOS
#define MPC55XX_HAS_FMPLL_ENHANCED
#define MPC55XX_HAS_UNIFIED_CACHE
#define MPC55XX_HAS_SIU
/*
* TODO: This e200z650n3e core has a wait instruction, but it did not wake-up
* from PIT interrupts.
*/
#elif MPC55XX_CHIP_FAMILY == 567 #elif MPC55XX_CHIP_FAMILY == 567
#include <mpc55xx/fsl-mpc567x.h> #include <mpc55xx/fsl-mpc567x.h>
#define MPC55XX_HAS_EBI #define MPC55XX_HAS_EBI

View File

@@ -297,6 +297,10 @@ $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc564xL.h: mpc55xx/include/fsl-mpc564xL.h $(PROJ
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc564xL.h $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc564xL.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc564xL.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc564xL.h
$(PROJECT_INCLUDE)/mpc55xx/fsl-mpc5668.h: mpc55xx/include/fsl-mpc5668.h $(PROJECT_INCLUDE)/mpc55xx/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc5668.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc5668.h
$(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h: mpc55xx/include/fsl-mpc567x.h $(PROJECT_INCLUDE)/mpc55xx/$(dirstamp) $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h: mpc55xx/include/fsl-mpc567x.h $(PROJECT_INCLUDE)/mpc55xx/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc55xx/fsl-mpc567x.h