From d922dab19246c2c1c093d39d4204da796e644e48 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 8 Nov 2011 10:13:32 +0000 Subject: 2011-11-08 Sebastian Huber * make/custom/mpc5566evb_spe.cfg, make/custom/mpc5674fevb_spe.cfg, startup/linkcmds.mpc5566evb_spe, startup/linkcmds.mpc5674fevb_spe, startup/reset.c: New files. * Makefile.am, preinstall.am: Reflect changes above. * startup/early-init.c: Added missing section attribute. * configure.ac, network/smsc9218i.c: New BSP options SMSC9218I_EDMA_RX_CHANNEL and SMSC9218I_EDMA_TX_CHANNEL. Enable reset at cleanup. --- c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog | 11 +++++ c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am | 3 ++ c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac | 50 +++++++++++++--------- .../mpc55xxevb/make/custom/mpc5566evb_spe.cfg | 3 ++ .../mpc55xxevb/make/custom/mpc5674fevb_spe.cfg | 3 ++ .../libbsp/powerpc/mpc55xxevb/network/smsc9218i.c | 4 -- c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am | 8 ++++ .../libbsp/powerpc/mpc55xxevb/startup/early-init.c | 2 +- .../mpc55xxevb/startup/linkcmds.mpc5566evb_spe | 1 + .../mpc55xxevb/startup/linkcmds.mpc5674fevb_spe | 1 + .../lib/libbsp/powerpc/mpc55xxevb/startup/reset.c | 36 ++++++++++++++++ 11 files changed, 97 insertions(+), 25 deletions(-) create mode 100644 c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5566evb_spe.cfg create mode 100644 c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5674fevb_spe.cfg create mode 100644 c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe create mode 100644 c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe create mode 100644 c/src/lib/libbsp/powerpc/mpc55xxevb/startup/reset.c (limited to 'c') diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog b/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog index e93c8d7223..aea4a83ee5 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/ChangeLog @@ -1,3 +1,14 @@ +2011-11-08 Sebastian Huber + + * make/custom/mpc5566evb_spe.cfg, make/custom/mpc5674fevb_spe.cfg, + startup/linkcmds.mpc5566evb_spe, startup/linkcmds.mpc5674fevb_spe, + startup/reset.c: New files. + * Makefile.am, preinstall.am: Reflect changes above. + * startup/early-init.c: Added missing section attribute. + * configure.ac, network/smsc9218i.c: New BSP options + SMSC9218I_EDMA_RX_CHANNEL and SMSC9218I_EDMA_TX_CHANNEL. Enable reset + at cleanup. + 2011-08-31 Sebastian Huber * startup/bspgetworkarea.c, startup/linkcmds.base: Removed files. diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am index eb70d4ce3a..7c6e0df099 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/Makefile.am @@ -27,7 +27,9 @@ project_lib_DATA += startup/linkcmds dist_project_lib_DATA += ../shared/startup/linkcmds.base dist_project_lib_DATA += startup/linkcmds.gwlcfm dist_project_lib_DATA += startup/linkcmds.mpc5566evb +dist_project_lib_DATA += startup/linkcmds.mpc5566evb_spe dist_project_lib_DATA += startup/linkcmds.mpc5674fevb +dist_project_lib_DATA += startup/linkcmds.mpc5674fevb_spe dist_project_lib_DATA += startup/linkcmds.phycore_mpc5554 noinst_LIBRARIES += libbsp.a @@ -70,6 +72,7 @@ libbsp_a_SOURCES += startup/ebi-cal-cs-config.c libbsp_a_SOURCES += startup/mmu-config.c libbsp_a_SOURCES += startup/siu-pcr-config.c libbsp_a_SOURCES += startup/early-init.c +libbsp_a_SOURCES += startup/reset.c # clock libbsp_a_SOURCES += clock/clock-config.c diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac index 7ed95313e0..9ec3dbe0d4 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/configure.ac @@ -24,17 +24,23 @@ RTEMS_CHECK_NETWORKING AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes") RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([gwlcfm],[]) -RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([mpc5566evb],[1]) -RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([mpc5674fevb],[1]) +RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([mpc5566evb*],[1]) +RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([mpc5674fevb*],[1]) RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED([*],[1]) RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([gwlcfm],[]) -RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([mpc5566evb],[1]) -RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([mpc5674fevb],[1]) +RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([mpc5566evb*],[1]) +RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([mpc5674fevb*],[1]) RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1]) RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED +RTEMS_BSPOPTS_SET([BSP_INTERRUPT_HANDLER_TABLE_SIZE],[mpc5674fevb*],[255]) +RTEMS_BSPOPTS_SET([BSP_INTERRUPT_HANDLER_TABLE_SIZE],[mpc5566evb*],[127]) +RTEMS_BSPOPTS_SET([BSP_INTERRUPT_HANDLER_TABLE_SIZE],[*],[63]) +RTEMS_BSPOPTS_HELP([BSP_INTERRUPT_HANDLER_TABLE_SIZE], +[defines the maximum number of interrupt handlers]) + RTEMS_BSPOPTS_SET([MPC55XX_ESCI_CONSOLE_MINOR],[*],[0]) RTEMS_BSPOPTS_HELP([MPC55XX_ESCI_CONSOLE_MINOR], [determines which eSCI device will be registered as /dev/console]) @@ -44,26 +50,26 @@ RTEMS_BSPOPTS_HELP([MPC55XX_ESCI_USE_INTERRUPTS], [define to zero or one to disable or enable interrupts for the eSCI devices]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_REF_CLOCK],[gwlcfm],[40000000]) -RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_REF_CLOCK],[mpc5674fevb],[40000000]) +RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_REF_CLOCK],[mpc5674fevb*],[40000000]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_REF_CLOCK],[*] ,[8000000]) RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_REF_CLOCK], [Must be defined to be the external reference clock (in Hz) for clock generation]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_CLK_OUT],[gwlcfm],[66000000]) -RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_CLK_OUT],[mpc5674fevb],[264000000]) +RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_CLK_OUT],[mpc5674fevb*],[264000000]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_CLK_OUT],[*] ,[128000000]) RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_CLK_OUT], [Must be defined to be the PLL output clock (in Hz) for clock generation]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[gwlcfm],[10]) -RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[mpc5674fevb],[5]) +RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[mpc5674fevb*],[5]) RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_PREDIV],[*] ,[1]) RTEMS_BSPOPTS_HELP([MPC55XX_FMPLL_PREDIV], [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],[mpc5674fevb],[66]) +RTEMS_BSPOPTS_SET([MPC55XX_FMPLL_MFD],[mpc5674fevb*],[66]) 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]) @@ -81,13 +87,21 @@ RTEMS_BSPOPTS_SET([SMC91111_ENADDR_IS_SETUP],[phycore_mpc5554],[1]) RTEMS_BSPOPTS_HELP([SMC91111_ENADDR_IS_SETUP], [If defined the SMC91111 chip has the ethernet address loaded at reset.]) -RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[*],[(MPC55XX_EMIOS_CHANNEL_NUMBER-1)]) +RTEMS_BSPOPTS_SET([SMSC9218I_EDMA_RX_CHANNEL],[*],[49]) +RTEMS_BSPOPTS_HELP([SMSC9218I_EDMA_RX_CHANNEL], +[receive eDMA channel for SMSC9218I network interface]) + +RTEMS_BSPOPTS_SET([SMSC9218I_EDMA_TX_CHANNEL],[*],[48]) +RTEMS_BSPOPTS_HELP([SMSC9218I_EDMA_TX_CHANNEL], +[transmit eDMA channel for SMSC9218I network interface]) + +RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[mpc5674fevb*],[31]) +RTEMS_BSPOPTS_SET([MPC55XX_CLOCK_EMIOS_CHANNEL],[*],[23]) RTEMS_BSPOPTS_HELP([MPC55XX_CLOCK_EMIOS_CHANNEL], -[Define to the eMIOS channel to use for the BSP clock. - 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_CHIP_TYPE],[mpc5674fevb],[5674]) -RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5566evb],[5566]) +RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5674fevb*],[5674]) +RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[mpc5566evb*],[5566]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[gwlcfm] ,[5516]) RTEMS_BSPOPTS_SET([MPC55XX_CHIP_TYPE],[*] ,[5554]) RTEMS_BSPOPTS_HELP([MPC55XX_CHIP_TYPE], @@ -97,10 +111,10 @@ RTEMS_BSPOPTS_SET([MPC55XX_BOOTFLAGS],[*],[]) RTEMS_BSPOPTS_HELP([MPC55XX_BOOTFLAGS], [if defined, builds in bootflags above the RCHW for setup in a debugger to avoid startup MMU setup]) -RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674FEVB],[mpc5674fevb],[1]) +RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5674FEVB],[mpc5674fevb*],[1]) RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5674FEVB],[if defined, use custom settings for MPC5674FEVB board]) -RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5566EVB],[mpc5566evb],[1]) +RTEMS_BSPOPTS_SET([MPC55XX_BOARD_MPC5566EVB],[mpc5566evb*],[1]) RTEMS_BSPOPTS_HELP([MPC55XX_BOARD_MPC5566EVB],[if defined, use custom settings for MPC5566EVB board]) RTEMS_BSPOPTS_SET([MPC55XX_BOARD_GWLCFM],[gwlcfm],[1]) @@ -114,14 +128,10 @@ 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([BOARD_PHYCORE_MPC5554],[phycore_mpc5554],[1]) -RTEMS_BSPOPTS_HELP([BOARD_PHYCORE_MPC5554], -[If defined, use custom settings for the Phytec PhyCORE MPC5554 SOM]) - AC_CONFIG_FILES([Makefile include/bspopts.h]) -RTEMS_BSP_CLEANUP_OPTIONS(0, 0) +RTEMS_BSP_CLEANUP_OPTIONS(0, 1) RTEMS_BSP_LINKCMDS RTEMS_PPC_EXCEPTIONS diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5566evb_spe.cfg b/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5566evb_spe.cfg new file mode 100644 index 0000000000..28cf413a1e --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5566evb_spe.cfg @@ -0,0 +1,3 @@ +CPU_CFLAGS_FLOAT ?= -mspe + +include $(RTEMS_ROOT)/make/custom/mpc55xx.inc diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5674fevb_spe.cfg b/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5674fevb_spe.cfg new file mode 100644 index 0000000000..28cf413a1e --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/make/custom/mpc5674fevb_spe.cfg @@ -0,0 +1,3 @@ +CPU_CFLAGS_FLOAT ?= -mspe + +include $(RTEMS_ROOT)/make/custom/mpc55xx.inc diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c index 35440e749e..c1a00b0498 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/network/smsc9218i.c @@ -99,14 +99,10 @@ #define SMSC9218I_IRQ_CFG_GLOBAL_DISABLE SMSC9218I_IRQ_CFG_IRQ_TYPE -#define SMSC9218I_EDMA_RX_CHANNEL 49 - #define SMSC9218I_EDMA_RX_TCD_CDF 0x10004 #define SMSC9218I_EDMA_RX_TCD_BMF 0x10003 -#define SMSC9218I_EDMA_TX_CHANNEL 48 - #define SMSC9218I_TCD_BMF_LINK 0x10011 #define SMSC9218I_TCD_BMF_LAST 0x10003 diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am b/c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am index f95b9d7b2e..6e70981145 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/preinstall.am @@ -65,10 +65,18 @@ $(PROJECT_LIB)/linkcmds.mpc5566evb: startup/linkcmds.mpc5566evb $(PROJECT_LIB)/$ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5566evb PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5566evb +$(PROJECT_LIB)/linkcmds.mpc5566evb_spe: startup/linkcmds.mpc5566evb_spe $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5566evb_spe +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5566evb_spe + $(PROJECT_LIB)/linkcmds.mpc5674fevb: startup/linkcmds.mpc5674fevb $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674fevb PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674fevb +$(PROJECT_LIB)/linkcmds.mpc5674fevb_spe: startup/linkcmds.mpc5674fevb_spe $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc5674fevb_spe +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc5674fevb_spe + $(PROJECT_LIB)/linkcmds.phycore_mpc5554: startup/linkcmds.phycore_mpc5554 $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.phycore_mpc5554 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.phycore_mpc5554 diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c index 9a3e7437cb..3b213f228a 100644 --- a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/early-init.c @@ -35,7 +35,7 @@ extern uint32_t mpc55xx_bootflag_0 []; #endif -static void mpc55xx_siu_init(void) +static void BSP_START_TEXT_SECTION mpc55xx_siu_init(void) { size_t i = 0; diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe new file mode 100644 index 0000000000..9255b15076 --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5566evb_spe @@ -0,0 +1 @@ +INCLUDE linkcmds.mpc5566evb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe new file mode 100644 index 0000000000..eab0907009 --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/linkcmds.mpc5674fevb_spe @@ -0,0 +1 @@ +INCLUDE linkcmds.mpc5674fevb diff --git a/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/reset.c b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/reset.c new file mode 100644 index 0000000000..d9a04972ab --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mpc55xxevb/startup/reset.c @@ -0,0 +1,36 @@ +/** + * @file + * + * @ingroup mpc55xx + * + * @brief BSP reset. + */ + +/* + * Copyright (c) 2011 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * + * + * 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 + +#include + +#include + +void bsp_reset(void) +{ + while (true) { + SIU.SRCR.R = 0x1; + } +} -- cgit v1.2.3