bsp/mpc55xx: New BSP variants for RSM6

This commit is contained in:
Sebastian Huber
2012-11-23 17:25:54 +01:00
parent e1e248f6af
commit 2858aeb9b3
18 changed files with 250 additions and 6 deletions

View File

@@ -33,6 +33,11 @@ dist_project_lib_DATA += startup/linkcmds.phycore_mpc5554
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_app
dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6
dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6_koma_boot
dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6_koma_app
dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6_moma_boot
dist_project_lib_DATA += startup/linkcmds.mpc5674f_rsm6_moma_app
noinst_LIBRARIES += libbsp.a
libbsp_a_SOURCES =

View File

@@ -86,6 +86,11 @@ RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[*] ,[12])
RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_MFD],
[Must be defined to be the PLL multiplication factor for clock generation])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_ESYNCR1_CLKCFG],[mpc5674f_rsm6*],[6])
RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_ESYNCR1_CLKCFG],[*],[7])
RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_ESYNCR1_CLKCFG],
[the FMPLL ESYNCR1[CLKCFG] value])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK_DIVIDER],[mpc5674f*],[2])
RTEMS_BSPOPTS_SET([MPC55XX_SYSTEM_CLOCK_DIVIDER],[*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_SYSTEM_CLOCK_DIVIDER],
@@ -179,6 +184,15 @@ RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_GWLCFM],[if defined, use custom settings for G
RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674F_ECU508],[mpc5674f_ecu508*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5674F_ECU508],[if defined, use custom settings for ECU508 board])
RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674F_RSM6],[mpc5674f_rsm6*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5674F_RSM6],[if defined, use custom settings for RSM6 board])
RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674F_RSM6_KOMA],[mpc5674f_rsm6_koma*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5674F_RSM6_KOMA],[if defined, use custom settings for RSM6 board KoMa controller])
RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674F_RSM6_MOMA],[mpc5674f_rsm6_moma*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5674F_RSM6_MOMA],[if defined, use custom settings for RSM6 board MoMa controller])
RTEMS_BSPOPTS_SET([MPC55XX_BOARD_PHYCORE_MPC5554],[phycore_mpc5554],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_PHYCORE_MPC5554],[if defined, use custom settings for phyCORE MPC5554 board])
@@ -187,7 +201,7 @@ RTEMS_BSPOPTS_HELP([RTEMS_BSP_I2C_EEPROM_DEVICE_NAME],[EEPROM name for LibI2C])
RTEMS_BSPOPTS_SET([RTEMS_BSP_I2C_EEPROM_DEVICE_PATH],[gwlcfm],['"/dev/i2c1.eeprom"'])
RTEMS_BSPOPTS_HELP([RTEMS_BSP_I2C_EEPROM_DEVICE_PATH],[EEPROM device file path])
RTEMS_BSPOPTS_SET([MPC55XX_NEEDS_LOW_LEVEL_INIT],[mpc5674f_ecu508_app],[])
RTEMS_BSPOPTS_SET([MPC55XX_NEEDS_LOW_LEVEL_INIT],[mpc5674f_*app],[])
RTEMS_BSPOPTS_SET([MPC55XX_NEEDS_LOW_LEVEL_INIT],[*],[1])
RTEMS_BSPOPTS_HELP([MPC55XX_NEEDS_LOW_LEVEL_INIT],[if defined, do low level initialization])

View File

@@ -0,0 +1,3 @@
CPU_CFLAGS_FLOAT ?= -mspe
include $(RTEMS_ROOT)/make/custom/mpc55xx.inc

View File

@@ -0,0 +1,3 @@
CPU_CFLAGS_FLOAT ?= -mspe
include $(RTEMS_ROOT)/make/custom/mpc55xx.inc

View File

@@ -0,0 +1,3 @@
CPU_CFLAGS_FLOAT ?= -mspe
include $(RTEMS_ROOT)/make/custom/mpc55xx.inc

View File

@@ -0,0 +1,3 @@
CPU_CFLAGS_FLOAT ?= -mspe
include $(RTEMS_ROOT)/make/custom/mpc55xx.inc

View File

@@ -105,6 +105,26 @@ $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508_app: startup/linkcmds.mpc5674f_ecu508_ap
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508_app
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_ecu508_app
$(PROJECT_LIB)/linkcmds.mpc5674f_rsm6: startup/linkcmds.mpc5674f_rsm6 $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6
$(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_boot: startup/linkcmds.mpc5674f_rsm6_koma_boot $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_boot
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_boot
$(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_app: startup/linkcmds.mpc5674f_rsm6_koma_app $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_app
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_koma_app
$(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_boot: startup/linkcmds.mpc5674f_rsm6_moma_boot $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_boot
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_boot
$(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_app: startup/linkcmds.mpc5674f_rsm6_moma_app $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_app
PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674f_rsm6_moma_app
$(PROJECT_INCLUDE)/bsp.h: include/bsp.h $(PROJECT_INCLUDE)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h

View File

@@ -0,0 +1,28 @@
MEMORY {
RAM : ORIGIN = 0x40000000, LENGTH = 240k
NOCACHE : ORIGIN = 0x4003c000, LENGTH = 16k
MRAM : ORIGIN = 0x20000000, LENGTH = 4M
}
REGION_ALIAS ("RAM_EXT", RAM);
REGION_ALIAS ("REGION_START", STARTROM);
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", MRAM);
INCLUDE linkcmds.mpc55xx

View File

@@ -0,0 +1,8 @@
MEMORY {
/* Let space for the binary image library header */
ROM : ORIGIN = 0x00100000, LENGTH = 3068k
}
REGION_ALIAS ("STARTROM", ROM);
INCLUDE linkcmds.mpc5674f_rsm6

View File

@@ -0,0 +1,6 @@
MEMORY {
STARTROM : ORIGIN = 0x0, LENGTH = 32k
ROM : ORIGIN = 0x40000, LENGTH = 768k
}
INCLUDE linkcmds.mpc5674f_rsm6

View File

@@ -0,0 +1,8 @@
MEMORY {
/* Let space for the binary image library header */
ROM : ORIGIN = 0x00100000, LENGTH = 3068k
}
REGION_ALIAS ("STARTROM", ROM);
INCLUDE linkcmds.mpc5674f_rsm6

View File

@@ -0,0 +1,6 @@
MEMORY {
STARTROM : ORIGIN = 0x0, LENGTH = 32k
ROM : ORIGIN = 0x40000, LENGTH = 768k
}
INCLUDE linkcmds.mpc5674f_rsm6

View File

@@ -79,7 +79,7 @@ const mpc55xx_clock_config mpc55xx_start_config_clock [1] = { {
},
.esyncr1_final = {
.B = {
.CLKCFG = 7,
.CLKCFG = MPC55XX_FMPLL_ESYNCR1_CLKCFG,
.EPREDIV = EPREDIV_VAL,
.EMFD = EMFD_VAL
}

View File

@@ -169,6 +169,93 @@ const struct EBI_CAL_CS_tag mpc55xx_start_config_ebi_cal_cs [] = {
}
}
}
#elif defined(MPC55XX_BOARD_MPC5674F_RSM6) \
&& defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
/* D_CS0 for MRAM */
{
.BR = {
.B = {
.BA = 0x20000000 >> 15,
.PS = 0,
.AD_MUX = 1,
.BL = 0,
.WEBS = 1,
.TBDIP = 0,
.SETA = 0,
.BI = 1,
.V = 1
}
},
.OR = {
.B = {
.AM = 0xffc00000 >> 15,
.SCY = 4,
.BSCY = 0
}
}
},
/* D_CS1 for FPGA */
{
.BR = {
.B = {
.BA = 0x21000000 >> 15,
.PS = 0,
.AD_MUX = 1,
.BL = 0,
.WEBS = 0,
.TBDIP = 0,
.SETA = 0,
.BI = 1,
.V = 1
}
},
.OR = {
.B = {
.AM = 0xff800000 >> 15,
.SCY = 0,
.BSCY = 0
}
}
},
/* D_CS2 unused */
{
.BR = { .R = 0x20000002 },
.OR = { .R = 0xe0000000 }
},
#if defined(MPC55XX_BOARD_MPC5674F_RSM6_KOMA)
/* D_CS3 for Ethernet Controller */
{
.BR = {
.B = {
.BA = 0x23000000 >> 15,
.PS = 1,
.AD_MUX = 1,
.BL = 0,
.WEBS = 1,
.TBDIP = 0,
.SETA = 0,
.BI = 1,
.V = 1
}
},
.OR = {
.B = {
.AM = 0xfff80000 >> 15,
.SCY = 8,
.BSCY = 0
}
}
}
#else
/* D_CS3 unused */
{
.BR = { .R = 0x20000002 },
.OR = { .R = 0xe0000000 }
}
#endif
#endif
};

View File

@@ -37,7 +37,8 @@ const mpc55xx_ebi_config mpc55xx_start_config_ebi [] = {
.siu_eccr_ebdf = 4 - 1 /* use CLK/4 as bus clock */
}
#elif (defined(MPC55XX_BOARD_MPC5674FEVB) \
|| defined(MPC55XX_BOARD_MPC5674F_ECU508)) \
|| defined(MPC55XX_BOARD_MPC5674F_ECU508) \
|| defined(MPC55XX_BOARD_MPC5674F_RSM6)) \
&& defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
{
.ebi_mcr = {

View File

@@ -23,8 +23,9 @@
#include <bsp/mpc55xx-config.h>
const struct MMU_tag mpc55xx_start_config_mmu_early [] = {
#if defined(MPC55XX_BOARD_MPC5674F_ECU508) \
&& !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
#if (defined(MPC55XX_BOARD_MPC5674F_ECU508) \
|| defined(MPC55XX_BOARD_MPC5674F_RSM6)) \
&& !defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
/* Used as cache-inhibited area later (ADC, DSPI queues) */
MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 0)
#elif MPC55XX_CHIP_FAMILY == 555

View File

@@ -76,7 +76,7 @@ const struct MMU_tag mpc55xx_start_config_mmu [] = {
/* Arguments macro: idx, addr, size, x, w, r, io */
/* Internal flash 4M */
/* First 64k unused, to detect null-pointer access */
/* First 64k unused, to detect NULL pointer access */
MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(5, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(6, 0x00020000, MPC55XX_MMU_128K, 1, 0, 1, 0),
@@ -105,6 +105,38 @@ const struct MMU_tag mpc55xx_start_config_mmu [] = {
/* Used as cache-inhibited area (ADC, DSPI queues) */
MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1),
#endif
#elif defined(MPC55XX_BOARD_MPC5674F_RSM6)
#if defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
/* Arguments macro: idx, addr, size, x, w, r, io */
/* Internal flash 4M */
/* First 64k unused, to detect NULL pointer access */
MPC55XX_MMU_TAG_INITIALIZER(1, 0x00000000, MPC55XX_MMU_64K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(5, 0x00010000, MPC55XX_MMU_64K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(6, 0x00020000, MPC55XX_MMU_128K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(7, 0x00040000, MPC55XX_MMU_256K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(8, 0x00080000, MPC55XX_MMU_512K, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(9, 0x00100000, MPC55XX_MMU_1M, 1, 0, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(10, 0x00200000, MPC55XX_MMU_2M, 1, 0, 1, 0),
/* Internal SRAM 256k */
MPC55XX_MMU_TAG_INITIALIZER(3, 0x40000000, MPC55XX_MMU_256K, 0, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(11, 0x40020000, MPC55XX_MMU_64K, 0, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(12, 0x40030000, MPC55XX_MMU_32K, 0, 1, 1, 0),
MPC55XX_MMU_TAG_INITIALIZER(13, 0x40038000, MPC55XX_MMU_16K, 0, 1, 1, 0),
/* Used as cache-inhibited area (ADC, DSPI queues) */
MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1),
/* External MRAM 4M */
MPC55XX_MMU_TAG_INITIALIZER(15, 0x20000000, MPC55XX_MMU_4M, 0, 1, 1, 0),
/* External FPGA */
MPC55XX_MMU_TAG_INITIALIZER(16, 0x21000000, MPC55XX_MMU_8M, 0, 1, 1, 1),
#if defined(MPC55XX_BOARD_MPC5674F_RSM6_KOMA)
/* External Ethernet controller */
MPC55XX_MMU_TAG_INITIALIZER(18, 0x23000000, MPC55XX_MMU_1K, 0, 1, 1, 1),
#endif
#else
/* Used as cache-inhibited area (ADC, DSPI queues) */
MPC55XX_MMU_TAG_INITIALIZER(14, 0x4003c000, MPC55XX_MMU_16K, 0, 1, 1, 1),
#endif
#elif MPC55XX_CHIP_FAMILY == 564
/* Internal flash 1M */
MPC55XX_MMU_TAG_INITIALIZER(0, 0x00000000, MPC55XX_MMU_1M, 1, 0, 1, 0),

View File

@@ -127,6 +127,22 @@ const mpc55xx_siu_pcr_config mpc55xx_start_config_siu_pcr [] = {
{ 305, 3, 0, { .B = { .PA = 1, .DSC = 0 } } }, /* D_ADD9 .. D_ADD11 */
{ 432, 1, 1, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } }, /* EMIOS26 (HBR34_RST) */
{ 433, 1, 0, { .B = { .PA = 0, .OBE = 1, .WPE = 0 } } } /* EMIOS27 (\ETH_RST) */
#elif defined(MPC55XX_BOARD_MPC5674F_RSM6) \
&& defined(MPC55XX_NEEDS_LOW_LEVEL_INIT)
{ 89, 1, 0, { .B = { .PA = 1, .OBE = 1, .IBE = 1, .WPE = 1, .WPS = 1 } } }, /* TXD_A (ESCI_A)*/
{ 90, 1, 0, { .B = { .PA = 1, .OBE = 0, .IBE = 1, .WPE = 1, .WPS = 1 } } }, /* RXD_A (ESCI_A)*/
{ 256, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS0 */
{ 257, 1, 0, { .B = { .PA = 2, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT31 */
#if defined(MPC55XX_BOARD_MPC5674F_RSM6_KOMA)
{ 258, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS3 */
#endif
{ 259, 4, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD12 .. D_ADD15 */
{ 263, 15, 0, { .B = { .PA = 2, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT16 .. D_ADD_DAT30 */
{ 278, 16, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_ADD_DAT0 .. D_ADD_DAT15 */
{ 294, 6, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_RD_WR, D_WE0, D_WE1, D_OE, D_TS, D_ALE */
{ 301, 1, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_CS1 */
{ 302, 3, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } }, /* D_BDIP, D_WE2, D_WE3 */
{ 305, 3, 0, { .B = { .PA = 1, .DSC = 3, .WPE = 1, .WPS = 1 } } } /* D_ADD9 .. D_ADD11 */
#endif
};