diff options
Diffstat (limited to 'c')
17 files changed, 174 insertions, 92 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog index eade0232f6..68dea0d2b6 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog +++ b/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog @@ -1,3 +1,14 @@ +2011-09-27 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * make/custom/mpc8309som.cfg, startup/linkcmds.mpc8309som: New file. + * Makefile.am, preinstall.am: Reflect changes above. + * configure.ac, console/console-config.c, include/bsp.h, + include/hwreg_vals.h, include/irq.h, network/network.c, + spi/spi_init.c, startup/cpuinit.c: Renamed various BSP options. + * make/custom/gen83xx.inc, make/custom/hsc_cm01.cfg, + make/custom/mpc8313erdb.cfg, make/custom/mpc8349eamds.cfg: Avoid + special linkcmds. + 2011-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de> * network/network.c: Update due to API changes. diff --git a/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am b/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am index 00edd5cdb2..7a06d1d4d1 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am +++ b/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am @@ -32,6 +32,7 @@ project_lib_DATA += rtems_crti.$(OBJEXT) dist_project_lib_DATA += startup/linkcmds \ startup/linkcmds.base \ + startup/linkcmds.mpc8309som \ startup/linkcmds.mpc8313erdb \ startup/linkcmds.mpc8349eamds \ startup/linkcmds.hsc_cm01 diff --git a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac index 87551c3160..ee76369778 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/configure.ac +++ b/c/src/lib/libbsp/powerpc/gen83xx/configure.ac @@ -21,38 +21,44 @@ RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED([*],[1]) RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED -RTEMS_BSPOPTS_SET([MPC8313ERDB],[mpc8313erdb],[1]) -RTEMS_BSPOPTS_HELP([MPC8313ERDB], -[If defined, use custom settings for the mpc8313erdb BSP.]) - -RTEMS_BSPOPTS_SET([MPC8349EAMDS],[mpc8349eamds],[1]) -RTEMS_BSPOPTS_HELP([MPC8349EAMDS], -[If defined, use custom settings for the mpc8349eamds BSP.]) - -RTEMS_BSPOPTS_SET([HSC_CM01],[hsc_cm01],[1]) -RTEMS_BSPOPTS_HELP([HSC_CM01], -[If defined, use custom settings for the hsc_cm01 BSP.]) - -RTEMS_BSPOPTS_SET([MPC8349],[mpc8313erdb],[1]) -RTEMS_BSPOPTS_SET([MPC8349],[mpc8349eamds],[1]) -RTEMS_BSPOPTS_SET([MPC8349],[hsc_cm01],[1]) -RTEMS_BSPOPTS_HELP([MPC8349], -[If defined, use custom settings for the MPC8349 libcpu family.]) - -RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[mpc8313erdb],[115200]) -RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[*],[9600]) -RTEMS_BSPOPTS_HELP([BSP_CONSOLE_BAUD],[Default baud for console and other serial devices.]) - -RTEMS_BSPOPTS_SET([BSP_USE_UART_INTERRUPTS],[mpc8313erdb],[1]) +RTEMS_BSPOPTS_SET([MPC83XX_BOARD_MPC8313ERDB],[mpc8313erdb],[1]) +RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8313ERDB], +[if defined, then use settings for the MPC8313ERDB board]) + +RTEMS_BSPOPTS_SET([MPC83XX_BOARD_MPC8349EAMDS],[mpc8349eamds],[1]) +RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8349EAMDS], +[if defined, then use settings for the MPC8349EAMDS board]) + +RTEMS_BSPOPTS_SET([MPC83XX_BOARD_HSC_CM01],[hsc_cm01],[1]) +RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_HSC_CM01], +[if defined, then use settings for the HSC_CM01 board]) + +RTEMS_BSPOPTS_SET([MPC83XX_BOARD_MPC8309SOM],[mpc8309som],[1]) +RTEMS_BSPOPTS_HELP([MPC83XX_BOARD_MPC8309SOM], +[if defined, then use settings for the MPC8309SOM board]) + +RTEMS_BSPOPTS_SET([MPC83XX_CHIP_TYPE],[mpc8309som],[8309]) +RTEMS_BSPOPTS_SET([MPC83XX_CHIP_TYPE],[mpc8349eamds],[8349]) +RTEMS_BSPOPTS_SET([MPC83XX_CHIP_TYPE],[hsc_cm01],[8349]) +RTEMS_BSPOPTS_SET([MPC83XX_CHIP_TYPE],[*],[8313]) +RTEMS_BSPOPTS_HELP([MPC83XX_CHIP_TYPE],[chip type of the MPC83XX family]) + +RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[mpc8349eamds],[9600]) +RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[hsc_cm01],[9600]) +RTEMS_BSPOPTS_SET([BSP_CONSOLE_BAUD],[*],[115200]) +RTEMS_BSPOPTS_HELP([BSP_CONSOLE_BAUD],[default baud for console and other serial devices]) + +RTEMS_BSPOPTS_SET([BSP_USE_UART_INTERRUPTS],[mpc8349eamds],[]) +RTEMS_BSPOPTS_SET([BSP_USE_UART_INTERRUPTS],[hsc_cm01],[]) +RTEMS_BSPOPTS_SET([BSP_USE_UART_INTERRUPTS],[*],[1]) RTEMS_BSPOPTS_HELP([BSP_USE_UART_INTERRUPTS],[enable usage of interrupts for the UART modules]) -RTEMS_BSPOPTS_SET([BSP_USE_UART2],[mpc8313erdb],[1]) -RTEMS_BSPOPTS_SET([BSP_USE_UART2],[mpc8349eamds],[1]) -RTEMS_BSPOPTS_SET([BSP_USE_UART2],[hsc_cm01],[1]) -RTEMS_BSPOPTS_HELP([BSP_USE_UART2],[If defined, enables UART2.]) +RTEMS_BSPOPTS_SET([BSP_USE_UART2],[*],[1]) +RTEMS_BSPOPTS_HELP([BSP_USE_UART2],[if defined, enables UART2]) +RTEMS_BSPOPTS_SET([HAS_UBOOT],[mpc8309som],[1]) RTEMS_BSPOPTS_SET([HAS_UBOOT],[mpc8313erdb],[1]) -RTEMS_BSPOPTS_HELP([HAS_UBOOT],[If defined, enables U-Boot support.]) +RTEMS_BSPOPTS_HELP([HAS_UBOOT],[if defined, enables U-Boot support]) RTEMS_BSPOPTS_SET([GEN83XX_ENABLE_INTERRUPT_NESTING],[*],[1]) RTEMS_BSPOPTS_HELP([GEN83XX_ENABLE_INTERRUPT_NESTING],[enable interrupt nesting]) @@ -65,6 +71,7 @@ AC_CONFIG_FILES([Makefile]) RTEMS_BSP_BOOTCARD_OPTIONS RTEMS_BSP_CLEANUP_OPTIONS(0, 0) +RTEMS_BSP_LINKCMDS RTEMS_PPC_EXCEPTIONS diff --git a/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c b/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c index d338e9207a..da554e56bb 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c +++ b/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c @@ -80,7 +80,11 @@ console_tbl Console_Port_Tbl [PORT_COUNT] = { .getData = NULL, .setData = NULL, .ulClock = 0, +#if MPC83XX_CHIP_TYPE / 10 == 830 + .ulIntVector = BSP_IPIC_IRQ_UART +#else .ulIntVector = BSP_IPIC_IRQ_UART1 +#endif } #ifdef BSP_USE_UART2 , { @@ -100,7 +104,11 @@ console_tbl Console_Port_Tbl [PORT_COUNT] = { .getData = NULL, .setData = NULL, .ulClock = 0, +#if MPC83XX_CHIP_TYPE / 10 == 830 + .ulIntVector = BSP_IPIC_IRQ_UART +#else .ulIntVector = BSP_IPIC_IRQ_UART2 +#endif } #endif }; diff --git a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h index a355cea4a3..147abf5f59 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/gen83xx/include/bsp.h @@ -96,7 +96,7 @@ struct rtems_bsdnet_ifconfig; extern int BSP_tsec_attach(struct rtems_bsdnet_ifconfig *config,int attaching); #define RTEMS_BSP_NETWORK_DRIVER_ATTACH BSP_tsec_attach -#ifdef MPC8313ERDB +#ifdef MPC83XX_BOARD_MPC8313ERDB #define RTEMS_BSP_NETWORK_DRIVER_NAME "tsec2" #define RTEMS_BSP_NETWORK_DRIVER_NAME2 "tsec1" #else @@ -104,7 +104,7 @@ extern int BSP_tsec_attach(struct rtems_bsdnet_ifconfig *config,int attaching); #define RTEMS_BSP_NETWORK_DRIVER_NAME2 "tsec2" #endif -#if defined(MPC8349EAMDS) +#if defined(MPC83XX_BOARD_MPC8349EAMDS) /* * i2c EEPROM device name */ @@ -116,9 +116,9 @@ extern int BSP_tsec_attach(struct rtems_bsdnet_ifconfig *config,int attaching); */ #define RTEMS_BSP_SPI_FLASH_DEVICE_NAME "flash" #define RTEMS_BSP_SPI_FLASH_DEVICE_PATH "/dev/spi.flash" -#endif /* defined(MPC8349EAMDS) */ +#endif /* defined(MPC83XX_BOARD_MPC8349EAMDS) */ -#if defined(HSC_CM01) +#if defined(MPC83XX_BOARD_HSC_CM01) /* * i2c EEPROM device name */ @@ -130,7 +130,7 @@ extern int BSP_tsec_attach(struct rtems_bsdnet_ifconfig *config,int attaching); */ #define RTEMS_BSP_SPI_FRAM_DEVICE_NAME "fram" #define RTEMS_BSP_SPI_FRAM_DEVICE_PATH "/dev/spi.fram" -#endif /* defined(HSC_CM01) */ +#endif /* defined(MPC83XX_BOARD_HSC_CM01) */ extern unsigned int BSP_bus_frequency; diff --git a/c/src/lib/libbsp/powerpc/gen83xx/include/hwreg_vals.h b/c/src/lib/libbsp/powerpc/gen83xx/include/hwreg_vals.h index ea621a7616..e1feb6f2b0 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/include/hwreg_vals.h +++ b/c/src/lib/libbsp/powerpc/gen83xx/include/hwreg_vals.h @@ -29,7 +29,7 @@ /* * distinguish board characteristics */ -#if defined(MPC8349EAMDS) +#if defined(MPC83XX_BOARD_MPC8349EAMDS) /* * for Freescale MPC8349 EAMDS */ @@ -69,7 +69,7 @@ RCWHR_ENDIAN_BIG | \ RCWHR_LALE_NORM | \ RCWHR_LDP_PAR) -#elif defined(HSC_CM01) +#elif defined(MPC83XX_BOARD_HSC_CM01) /* * for JPK HSC_CM01 */ @@ -119,9 +119,9 @@ #endif -#if defined(MPC8349EAMDS) +#if defined(MPC83XX_BOARD_MPC8349EAMDS) /************************** - * for Freescale MPC8349EAMDS + * for Freescale MPC83XX_BOARD_MPC8349EAMDS */ /* @@ -174,7 +174,7 @@ #define DDR_SDRAM_INTTVL_VAL 0x045B0100 #define DDR_SDRAM_CLK_CNTL_VAL 0x00000000 -#elif defined(HSC_CM01) +#elif defined(MPC83XX_BOARD_HSC_CM01) /************************** * for JPK HSC_CM01 */ diff --git a/c/src/lib/libbsp/powerpc/gen83xx/include/irq.h b/c/src/lib/libbsp/powerpc/gen83xx/include/irq.h index ceb1f9aa76..7186d46fc3 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/include/irq.h +++ b/c/src/lib/libbsp/powerpc/gen83xx/include/irq.h @@ -24,12 +24,12 @@ #ifndef GEN83xx_IRQ_IRQ_H #define GEN83xx_IRQ_IRQ_H -#include <stdbool.h> - #include <rtems.h> #include <rtems/irq.h> #include <rtems/irq-extension.h> +#include <bspopts.h> + /* * the following definitions specify the indices used * to interface the interrupt handler API @@ -77,59 +77,90 @@ extern "C" { * index table for the module specific handlers, a few entries are only placeholders */ typedef enum { - BSP_IPIC_IRQ_FIRST = BSP_IPIC_IRQ_LOWEST_OFFSET, - BSP_IPIC_IRQ_ERROR = BSP_IPIC_IRQ_LOWEST_OFFSET + 0, - /* reserved irqs 1- 8 */ - BSP_IPIC_IRQ_UART1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 9, - BSP_IPIC_IRQ_UART2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 10, - BSP_IPIC_IRQ_SEC = BSP_IPIC_IRQ_LOWEST_OFFSET + 11, - /* reserved irqs 12-13 */ + BSP_IPIC_IRQ_FIRST = BSP_IPIC_IRQ_LOWEST_OFFSET, + BSP_IPIC_IRQ_ERROR = BSP_IPIC_IRQ_LOWEST_OFFSET + 0, +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_DMA1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 3, + BSP_IPIC_IRQ_UART = BSP_IPIC_IRQ_LOWEST_OFFSET + 9, + BSP_IPIC_IRQ_FLEXCAN = BSP_IPIC_IRQ_LOWEST_OFFSET + 10, +#else + BSP_IPIC_IRQ_UART1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 9, + BSP_IPIC_IRQ_UART2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 10, + BSP_IPIC_IRQ_SEC = BSP_IPIC_IRQ_LOWEST_OFFSET + 11, +#endif BSP_IPIC_IRQ_I2C1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 14, BSP_IPIC_IRQ_I2C2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 15, BSP_IPIC_IRQ_SPI = BSP_IPIC_IRQ_LOWEST_OFFSET + 16, BSP_IPIC_IRQ_IRQ1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 17, BSP_IPIC_IRQ_IRQ2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 18, BSP_IPIC_IRQ_IRQ3 = BSP_IPIC_IRQ_LOWEST_OFFSET + 19, +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_QUICC_HI = BSP_IPIC_IRQ_LOWEST_OFFSET + 32, + BSP_IPIC_IRQ_QUICC_LO = BSP_IPIC_IRQ_LOWEST_OFFSET + 33, +#else BSP_IPIC_IRQ_IRQ4 = BSP_IPIC_IRQ_LOWEST_OFFSET + 20, BSP_IPIC_IRQ_IRQ5 = BSP_IPIC_IRQ_LOWEST_OFFSET + 21, BSP_IPIC_IRQ_IRQ6 = BSP_IPIC_IRQ_LOWEST_OFFSET + 22, BSP_IPIC_IRQ_IRQ7 = BSP_IPIC_IRQ_LOWEST_OFFSET + 23, - /* reserved irqs 24-31 */ BSP_IPIC_IRQ_TSEC1_TX = BSP_IPIC_IRQ_LOWEST_OFFSET + 32, BSP_IPIC_IRQ_TSEC1_RX = BSP_IPIC_IRQ_LOWEST_OFFSET + 33, BSP_IPIC_IRQ_TSEC1_ERR = BSP_IPIC_IRQ_LOWEST_OFFSET + 34, BSP_IPIC_IRQ_TSEC2_TX = BSP_IPIC_IRQ_LOWEST_OFFSET + 35, BSP_IPIC_IRQ_TSEC2_RX = BSP_IPIC_IRQ_LOWEST_OFFSET + 36, BSP_IPIC_IRQ_TSEC2_ERR = BSP_IPIC_IRQ_LOWEST_OFFSET + 37, +#endif BSP_IPIC_IRQ_USB_DR = BSP_IPIC_IRQ_LOWEST_OFFSET + 38, +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_ESDHC = BSP_IPIC_IRQ_LOWEST_OFFSET + 42, +#else BSP_IPIC_IRQ_USB_MPH = BSP_IPIC_IRQ_LOWEST_OFFSET + 39, - /* reserved irqs 40-47 */ +#endif BSP_IPIC_IRQ_IRQ0 = BSP_IPIC_IRQ_LOWEST_OFFSET + 48, - /* reserved irqs 49-63 */ BSP_IPIC_IRQ_RTC_SEC = BSP_IPIC_IRQ_LOWEST_OFFSET + 64, BSP_IPIC_IRQ_PIT = BSP_IPIC_IRQ_LOWEST_OFFSET + 65, BSP_IPIC_IRQ_PCI1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 66, +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_MSIR1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 67, +#else BSP_IPIC_IRQ_PCI2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 67, +#endif BSP_IPIC_IRQ_RTC_ALR = BSP_IPIC_IRQ_LOWEST_OFFSET + 68, BSP_IPIC_IRQ_MU = BSP_IPIC_IRQ_LOWEST_OFFSET + 69, BSP_IPIC_IRQ_SBA = BSP_IPIC_IRQ_LOWEST_OFFSET + 70, BSP_IPIC_IRQ_DMA = BSP_IPIC_IRQ_LOWEST_OFFSET + 71, BSP_IPIC_IRQ_GTM4 = BSP_IPIC_IRQ_LOWEST_OFFSET + 72, BSP_IPIC_IRQ_GTM8 = BSP_IPIC_IRQ_LOWEST_OFFSET + 73, +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_QUICC_PORTS = BSP_IPIC_IRQ_LOWEST_OFFSET + 74, + BSP_IPIC_IRQ_GPIO = BSP_IPIC_IRQ_LOWEST_OFFSET + 75, +#else BSP_IPIC_IRQ_GPIO1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 74, BSP_IPIC_IRQ_GPIO2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 75, +#endif BSP_IPIC_IRQ_DDR = BSP_IPIC_IRQ_LOWEST_OFFSET + 76, BSP_IPIC_IRQ_LBC = BSP_IPIC_IRQ_LOWEST_OFFSET + 77, BSP_IPIC_IRQ_GTM2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 78, BSP_IPIC_IRQ_GTM6 = BSP_IPIC_IRQ_LOWEST_OFFSET + 79, BSP_IPIC_IRQ_PMC = BSP_IPIC_IRQ_LOWEST_OFFSET + 80, - /* reserved irqs 81-83 */ +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_MSIR2 = BSP_IPIC_IRQ_LOWEST_OFFSET + 81, + BSP_IPIC_IRQ_MSIR3 = BSP_IPIC_IRQ_LOWEST_OFFSET + 82, +#else BSP_IPIC_IRQ_GTM3 = BSP_IPIC_IRQ_LOWEST_OFFSET + 84, BSP_IPIC_IRQ_GTM7 = BSP_IPIC_IRQ_LOWEST_OFFSET + 85, - /* reserved irqs 86-89 */ +#endif +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_MSIR4 = BSP_IPIC_IRQ_LOWEST_OFFSET + 86, + BSP_IPIC_IRQ_MSIR5 = BSP_IPIC_IRQ_LOWEST_OFFSET + 87, + BSP_IPIC_IRQ_MSIR6 = BSP_IPIC_IRQ_LOWEST_OFFSET + 88, + BSP_IPIC_IRQ_MSIR7 = BSP_IPIC_IRQ_LOWEST_OFFSET + 89, +#endif BSP_IPIC_IRQ_GTM1 = BSP_IPIC_IRQ_LOWEST_OFFSET + 90, BSP_IPIC_IRQ_GTM5 = BSP_IPIC_IRQ_LOWEST_OFFSET + 91, - /* reserved irqs 92-127 */ +#if MPC83XX_CHIP_TYPE / 10 == 830 + BSP_IPIC_IRQ_DMA1_ERR = BSP_IPIC_IRQ_LOWEST_OFFSET + 94, + BSP_IPIC_IRQ_DPTC = BSP_IPIC_IRQ_LOWEST_OFFSET + 95, +#endif BSP_IPIC_IRQ_LAST = BSP_IPIC_IRQ_MAX_OFFSET, } rtems_irq_symbolic_name; diff --git a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc index b8d6889bcc..bb704af5ba 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc +++ b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/gen83xx.inc @@ -20,5 +20,3 @@ CPU_CFLAGS = -mcpu=603e -meabi -msdata -fno-common -mstrict-align # optimize flag: typically -O2 CFLAGS_OPTIMIZE_V = -O2 -g -fno-keep-inline-functions - -LDFLAGS += -qnolinkcmds -T $(RTEMS_LINKCMDS) diff --git a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/hsc_cm01.cfg b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/hsc_cm01.cfg index b18ceba454..81205d8e9d 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/hsc_cm01.cfg +++ b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/hsc_cm01.cfg @@ -9,6 +9,4 @@ # parameters differ. # -RTEMS_LINKCMDS=linkcmds.hsc_cm01 - include $(RTEMS_ROOT)/make/custom/gen83xx.inc diff --git a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8309som.cfg b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8309som.cfg new file mode 100644 index 0000000000..be25fcd4fb --- /dev/null +++ b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8309som.cfg @@ -0,0 +1,10 @@ +## +# +# @file +# +# @ingroup mpc83xx_config +# +# @brief Configuration file for the MPC8309 System on Module. +# + +include $(RTEMS_ROOT)/make/custom/gen83xx.inc diff --git a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8313erdb.cfg b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8313erdb.cfg index b69c6bb601..4a6331e8c4 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8313erdb.cfg +++ b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8313erdb.cfg @@ -7,6 +7,4 @@ # @brief Configuration file for the MPC8313E Reference Design Board. # -RTEMS_LINKCMDS=linkcmds.mpc8313erdb - include $(RTEMS_ROOT)/make/custom/gen83xx.inc diff --git a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8349eamds.cfg b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8349eamds.cfg index 92d695a13a..d75f8e8667 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8349eamds.cfg +++ b/c/src/lib/libbsp/powerpc/gen83xx/make/custom/mpc8349eamds.cfg @@ -9,6 +9,4 @@ # parameters differ. # -RTEMS_LINKCMDS=linkcmds.mpc8349eamds - include $(RTEMS_ROOT)/make/custom/gen83xx.inc diff --git a/c/src/lib/libbsp/powerpc/gen83xx/network/network.c b/c/src/lib/libbsp/powerpc/gen83xx/network/network.c index aa76cdbd93..fa78fd7edb 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/network/network.c +++ b/c/src/lib/libbsp/powerpc/gen83xx/network/network.c @@ -32,18 +32,20 @@ #include <string.h> #include <libcpu/spr.h> +#if MPC83XX_CHIP_TYPE / 10 != 830 + #define TSEC_IFMODE_RGMII 0 #define TSEC_IFMODE_GMII 1 -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) #define TSEC_IFMODE TSEC_IFMODE_RGMII -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) #define TSEC_IFMODE TSEC_IFMODE_GMII -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) #define TSEC_IFMODE TSEC_IFMODE_RGMII @@ -100,7 +102,7 @@ int BSP_tsec_attach if (attaching) { #if (TSEC_IFMODE==TSEC_IFMODE_GMII) -#if !defined(HSC_CM01) +#if !defined(MPC83XX_BOARD_HSC_CM01) /* * do not change system I/O configuration registers on HSC board @@ -132,7 +134,7 @@ int BSP_tsec_attach mpc83xx.gpio[0].gpdir = ((mpc83xx.gpio[0].gpdir & ~0x000FFFFF) | 0x00087881); } -#endif /* !defined(HSC_CM01) */ +#endif /* !defined(MPC83XX_BOARD_HSC_CM01) */ #endif #if (TSEC_IFMODE==TSEC_IFMODE_RGMII) @@ -232,16 +234,16 @@ int BSP_tsec_attach * XXX: Although most hardware builders will assign the PHY addresses * like this, this should be more configurable */ -#ifdef MPC8313ERDB +#ifdef MPC83XX_BOARD_MPC8313ERDB if (unitNumber == 2) { tsec_cfg.phy_default = 4; } else { /* TODO */ return 0; } -#else /* MPC8313ERDB */ +#else /* MPC83XX_BOARD_MPC8313ERDB */ tsec_cfg.phy_default = unitNumber-1; -#endif /* MPC8313ERDB */ +#endif /* MPC83XX_BOARD_MPC8313ERDB */ tsec_cfg.unit_number = unitNumber; tsec_cfg.unit_name = unitName; @@ -251,3 +253,5 @@ int BSP_tsec_attach */ return tsec_driver_attach_detach(config, attaching); } + +#endif /* MPC83XX_CHIP_TYPE / 10 != 830 */ diff --git a/c/src/lib/libbsp/powerpc/gen83xx/preinstall.am b/c/src/lib/libbsp/powerpc/gen83xx/preinstall.am index 31438ab737..9422ee5349 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/preinstall.am +++ b/c/src/lib/libbsp/powerpc/gen83xx/preinstall.am @@ -77,6 +77,10 @@ $(PROJECT_LIB)/linkcmds.base: startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base +$(PROJECT_LIB)/linkcmds.mpc8309som: startup/linkcmds.mpc8309som $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc8309som +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc8309som + $(PROJECT_LIB)/linkcmds.mpc8313erdb: startup/linkcmds.mpc8313erdb $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.mpc8313erdb PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.mpc8313erdb diff --git a/c/src/lib/libbsp/powerpc/gen83xx/spi/spi_init.c b/c/src/lib/libbsp/powerpc/gen83xx/spi/spi_init.c index c59bd73f98..c0df52ee25 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/spi/spi_init.c +++ b/c/src/lib/libbsp/powerpc/gen83xx/spi/spi_init.c @@ -26,15 +26,15 @@ #include <bsp/irq.h> #include <bsp.h> -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) #include <libchip/spi-sd-card.h> -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) #include <libchip/spi-flash-m25p40.h> -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) #include <libchip/spi-fram-fm25l256.h> @@ -69,7 +69,7 @@ static rtems_status_code bsp_spi_sel_addr \*=========================================================================*/ { -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) /* Check address */ if (addr > 0) { @@ -79,7 +79,7 @@ static rtems_status_code bsp_spi_sel_addr /* SCS (active low) */ mpc83xx.gpio [0].gpdat &= ~0x20000000; -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) /* * check device address for valid range @@ -94,7 +94,7 @@ static rtems_status_code bsp_spi_sel_addr */ mpc83xx.gpio[0].gpdat &= ~(1 << (31- 0)); -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) /* * check device address for valid range @@ -143,12 +143,12 @@ static rtems_status_code bsp_spi_send_start_dummy \*=========================================================================*/ { -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) /* SCS (inactive high) */ mpc83xx.gpio [0].gpdat |= 0x20000000; -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) /* * GPIO1[0] is nSEL_SPI for M25P40 @@ -156,7 +156,7 @@ static rtems_status_code bsp_spi_send_start_dummy */ mpc83xx.gpio[0].gpdat |= (1 << (31- 0)); -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) /* * GPIO1[27] is high-active strobe @@ -191,12 +191,12 @@ static rtems_status_code bsp_spi_send_stop printk("bsp_spi_send_stop called... "); #endif -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) /* SCS (inactive high) */ mpc83xx.gpio [0].gpdat |= 0x20000000; -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) /* * deselect given device @@ -205,7 +205,7 @@ static rtems_status_code bsp_spi_send_stop */ mpc83xx.gpio[0].gpdat |= (1 << (31- 0)); -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) /* * deselect device @@ -248,7 +248,7 @@ static mpc83xx_spi_desc_t bsp_spi_bus_desc = { } }; -#ifdef MPC8313ERDB +#ifdef MPC83XX_BOARD_MPC8313ERDB #include <libchip/spi-sd-card.h> @@ -274,7 +274,7 @@ sd_card_driver_entry sd_card_driver_table [SD_CARD_NUMBER] = { } }; -#endif /* MPC8313ERDB */ +#endif /* MPC83XX_BOARD_MPC8313ERDB */ /*=========================================================================*\ @@ -312,7 +312,7 @@ rtems_status_code bsp_register_spi * init port pins used to address/select SPI devices */ -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) /* * Configured as master (direct connection to SD card) @@ -336,7 +336,7 @@ rtems_status_code bsp_register_spi /* Open Drain */ /* mpc83xx.gpio [0].gpdr |= 0x0000000f; */ -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) /* * GPIO1[0] is nSEL_SPI for M25P40 @@ -346,7 +346,7 @@ rtems_status_code bsp_register_spi mpc83xx.gpio[0].gpdir |= (1 << (31- 0)); mpc83xx.gpio[0].gpdr &= ~(1 << (31- 0)); -#elif defined( HSC_CM01) +#elif defined( MPC83XX_BOARD_HSC_CM01) /* * GPIO1[24] is SPI_A0 @@ -376,7 +376,7 @@ rtems_status_code bsp_register_spi } spi_busno = (unsigned) ret_code; -#if defined( MPC8313ERDB) +#if defined( MPC83XX_BOARD_MPC8313ERDB) /* Register SD Card driver */ sd_card_driver_table [0].bus = spi_busno; @@ -385,7 +385,7 @@ rtems_status_code bsp_register_spi return sc; } -#elif defined( MPC8349EAMDS) +#elif defined( MPC83XX_BOARD_MPC8349EAMDS) /* * register M25P40 Flash @@ -393,7 +393,7 @@ rtems_status_code bsp_register_spi ret_code = rtems_libi2c_register_drv(RTEMS_BSP_SPI_FLASH_DEVICE_NAME, spi_flash_m25p40_rw_driver_descriptor, spi_busno,0x00); -#elif defined(HSC_CM01) +#elif defined(MPC83XX_BOARD_HSC_CM01) /* * register FM25L256 FRAM diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c b/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c index bfcd649196..873c76da33 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c +++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/cpuinit.c @@ -260,7 +260,7 @@ void cpu_init( void) ); SET_DBAT( 2, dbat.batu, dbat.batl); -#if defined(HSC_CM01) +#if defined(MPC83XX_BOARD_HSC_CM01) calc_dbat_regvals( &dbat, FPGA_START, @@ -274,7 +274,7 @@ void cpu_init( void) SET_DBAT(3,dbat.batu,dbat.batl); #endif -#ifdef MPC8313ERDB +#ifdef MPC83XX_BOARD_MPC8313ERDB /* Enhanced Local Bus Controller (eLBC) */ calc_dbat_regvals( &dbat, @@ -287,7 +287,7 @@ void cpu_init( void) BPP_RW ); SET_DBAT( 3, dbat.batu, dbat.batl); -#endif /* MPC8313ERDB */ +#endif /* MPC83XX_BOARD_MPC8313ERDB */ /* Read MSR */ msr = ppc_machine_state_register(); diff --git a/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som new file mode 100644 index 0000000000..6f5e80137b --- /dev/null +++ b/c/src/lib/libbsp/powerpc/gen83xx/startup/linkcmds.mpc8309som @@ -0,0 +1,14 @@ +/** + * @file + * + * MPC8309 System on Module. + */ + +MEMORY { + RAM : ORIGIN = 0x0, LENGTH = 256M + ROM : ORIGIN = 0xfe000000, LENGTH = 8M + MPC83XX_REGS : ORIGIN = 0xe0000000, LENGTH = 256k + NIRVANA : ORIGIN = 0x0, LENGTH = 0 +} + +INCLUDE linkcmds.base |