From 9b28179d27f94d5b485dbbd20c10dd619dd74fab Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Wed, 31 Jan 2007 03:50:13 +0000 Subject: 2007-01-30 Till Straumann * Makefile.am, preinstall.am, * vme/vmeconfig.c (removed), vme/VMEConfig.h (added): cleaned up vme support - use files from libbsp/powerpc/shared/vme and define BSP specifica in VMEConfig.h. Use VME DMA support implemented by vmeUniverse and libbsp/powerpc/shared/vme/vme_universe_dma.c * irq/irq.c, include/gen2.h: removed _BSP_vme_bridge_irq variable and BSP_PIC_DO_EOI definition. Support for VME IRQ software priorities was incomplete/incorrect on this BSP. --- c/src/lib/libbsp/powerpc/score603e/ChangeLog | 14 ++ c/src/lib/libbsp/powerpc/score603e/Makefile.am | 16 +- c/src/lib/libbsp/powerpc/score603e/include/gen2.h | 2 - c/src/lib/libbsp/powerpc/score603e/irq/irq.c | 2 - c/src/lib/libbsp/powerpc/score603e/preinstall.am | 14 +- c/src/lib/libbsp/powerpc/score603e/vme/VMEConfig.h | 98 ++++++++++++ c/src/lib/libbsp/powerpc/score603e/vme/vmeconfig.c | 178 --------------------- 7 files changed, 137 insertions(+), 187 deletions(-) create mode 100644 c/src/lib/libbsp/powerpc/score603e/vme/VMEConfig.h delete mode 100644 c/src/lib/libbsp/powerpc/score603e/vme/vmeconfig.c (limited to 'c/src/lib') diff --git a/c/src/lib/libbsp/powerpc/score603e/ChangeLog b/c/src/lib/libbsp/powerpc/score603e/ChangeLog index 27404a2934..5586d32a2f 100644 --- a/c/src/lib/libbsp/powerpc/score603e/ChangeLog +++ b/c/src/lib/libbsp/powerpc/score603e/ChangeLog @@ -1,3 +1,17 @@ +2007-01-30 Till Straumann + + * Makefile.am, preinstall.am, + * vme/vmeconfig.c (removed), vme/VMEConfig.h (added): + cleaned up vme support - use files from libbsp/powerpc/shared/vme + and define BSP specifica in VMEConfig.h. + Use VME DMA support implemented by vmeUniverse and + libbsp/powerpc/shared/vme/vme_universe_dma.c + + * irq/irq.c, include/gen2.h: + removed _BSP_vme_bridge_irq variable and BSP_PIC_DO_EOI definition. + Support for VME IRQ software priorities was incomplete/incorrect + on this BSP. + 2006-12-02 Ralf Corsépius * configure.ac: New BUG-REPORT address. diff --git a/c/src/lib/libbsp/powerpc/score603e/Makefile.am b/c/src/lib/libbsp/powerpc/score603e/Makefile.am index 37e151e677..3989479609 100644 --- a/c/src/lib/libbsp/powerpc/score603e/Makefile.am +++ b/c/src/lib/libbsp/powerpc/score603e/Makefile.am @@ -83,12 +83,20 @@ vectors_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) include_bsp_HEADERS += ../../shared/vmeUniverse/vmeUniverse.h \ ../../shared/vmeUniverse/vme_am_defs.h \ ../../shared/vmeUniverse/VME.h \ - ../../powerpc/shared/vme/VMEConfig.h \ - ../../powerpc/shared/motorola/motorola.h - + vme/VMEConfig.h \ + ../../powerpc/shared/motorola/motorola.h \ + ../../shared/vmeUniverse/vmeUniverseDMA.h\ + ../../shared/vmeUniverse/bspVmeDmaList.h\ + ../../shared/vmeUniverse/VMEDMA.h + noinst_PROGRAMS += vme.rel vme_rel_SOURCES = ../../shared/vmeUniverse/vmeUniverse.c \ - ../../shared/vmeUniverse/vme_am_defs.h vme/vmeconfig.c + ../../shared/vmeUniverse/bspVmeDmaList.c \ + ../../shared/vmeUniverse/vme_am_defs.h \ + ../shared/vme/vmeconfig.c \ + ../shared/vme/vme_universe.c \ + ../shared/vme/vme_universe_dma.c + vme_rel_CPPFLAGS = $(AM_CPPFLAGS) vme_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) diff --git a/c/src/lib/libbsp/powerpc/score603e/include/gen2.h b/c/src/lib/libbsp/powerpc/score603e/include/gen2.h index 3fa3742f1b..d51cede04a 100644 --- a/c/src/lib/libbsp/powerpc/score603e/include/gen2.h +++ b/c/src/lib/libbsp/powerpc/score603e/include/gen2.h @@ -249,8 +249,6 @@ extern "C" { /* to start/stop the timer. */ #define BSP_TIMER_LEAST_VALID 1 /* Don't trust a value lower than this */ -#define BSP_PIC_DO_EOI /* XXX - Don't know what this corresponds to on the score board */ - /* * Convert decrement value to tenths of microsecnds (used by * shared timer driver). diff --git a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c index a5deb06b7b..7c154ec9cf 100644 --- a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c @@ -388,8 +388,6 @@ int BSP_rtems_irq_mngt_get(rtems_irq_global_settings** config) return 0; } -int _BSP_vme_bridge_irq = -1; - unsigned BSP_spuriousIntr = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry diff --git a/c/src/lib/libbsp/powerpc/score603e/preinstall.am b/c/src/lib/libbsp/powerpc/score603e/preinstall.am index 882704e0ef..de04d02e52 100644 --- a/c/src/lib/libbsp/powerpc/score603e/preinstall.am +++ b/c/src/lib/libbsp/powerpc/score603e/preinstall.am @@ -105,7 +105,7 @@ $(PROJECT_INCLUDE)/bsp/VME.h: ../../shared/vmeUniverse/VME.h $(PROJECT_INCLUDE)/ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VME.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VME.h -$(PROJECT_INCLUDE)/bsp/VMEConfig.h: ../../powerpc/shared/vme/VMEConfig.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) +$(PROJECT_INCLUDE)/bsp/VMEConfig.h: vme/VMEConfig.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VMEConfig.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VMEConfig.h @@ -113,6 +113,18 @@ $(PROJECT_INCLUDE)/bsp/motorola.h: ../../powerpc/shared/motorola/motorola.h $(PR $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/motorola.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h +$(PROJECT_INCLUDE)/bsp/vmeUniverseDMA.h: ../../shared/vmeUniverse/vmeUniverseDMA.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vmeUniverseDMA.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vmeUniverseDMA.h + +$(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h: ../../shared/vmeUniverse/bspVmeDmaList.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bspVmeDmaList.h + +$(PROJECT_INCLUDE)/bsp/VMEDMA.h: ../../shared/vmeUniverse/VMEDMA.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VMEDMA.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VMEDMA.h + $(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT) TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT) diff --git a/c/src/lib/libbsp/powerpc/score603e/vme/VMEConfig.h b/c/src/lib/libbsp/powerpc/score603e/vme/VMEConfig.h new file mode 100644 index 0000000000..12307948be --- /dev/null +++ b/c/src/lib/libbsp/powerpc/score603e/vme/VMEConfig.h @@ -0,0 +1,98 @@ +#ifndef RTEMS_BSP_VME_CONFIG_H +#define RTEMS_BSP_VME_CONFIG_H +/* $Id$ */ + +/* BSP specific address space configuration parameters */ + +/* + * Authorship + * ---------- + * This software was created by + * Till Straumann , 2002, + * Stanford Linear Accelerator Center, Stanford University. + * + * Acknowledgement of sponsorship + * ------------------------------ + * This software was produced by + * the Stanford Linear Accelerator Center, Stanford University, + * under Contract DE-AC03-76SFO0515 with the Department of Energy. + * + * Government disclaimer of liability + * ---------------------------------- + * Neither the United States nor the United States Department of Energy, + * nor any of their employees, makes any warranty, express or implied, or + * assumes any legal liability or responsibility for the accuracy, + * completeness, or usefulness of any data, apparatus, product, or process + * disclosed, or represents that its use would not infringe privately owned + * rights. + * + * Stanford disclaimer of liability + * -------------------------------- + * Stanford University makes no representations or warranties, express or + * implied, nor assumes any liability for the use of this software. + * + * Stanford disclaimer of copyright + * -------------------------------- + * Stanford University, owner of the copyright, hereby disclaims its + * copyright and all other rights in this software. Hence, anyone may + * freely use it for any purpose without restriction. + * + * Maintenance of notices + * ---------------------- + * In the interest of clarity regarding the origin and status of this + * SLAC software, this and all the preceding Stanford University notices + * are to remain affixed to any copy or derivative of this software made + * or distributed by the recipient and are to be affixed to any copy of + * software made or distributed by the recipient that contains a copy or + * derivative of this software. + * + * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 + */ +/* + * The BSP maps VME address ranges into + * one BAT. + * NOTE: the BSP (startup/bspstart.c) uses + * hardcoded window lengths that match this + * layout: + * + * BSP_VME_BAT_IDX defines + * which BAT to use for mapping the VME bus. + * If this is undefined, no extra BAT will be + * configured and VME has to share the available + * PCI address space with PCI devices. + */ +#undef BSP_VME_BAT_IDX + +#define _VME_A32_WIN0_ON_PCI 0x10000000 +#define _VME_A24_ON_PCI 0x1f000000 +#define _VME_A16_ON_PCI 0x1fff0000 + +/* start of the A32 window on the VME bus + * TODO: this should perhaps be a configuration option + */ +#define _VME_A32_WIN0_ON_VME 0x20000000 + +/* if _VME_DRAM_OFFSET is defined, the BSP + * will map our RAM onto the VME bus, starting + * at _VME_DRAM_OFFSET + */ +#undef _VME_DRAM_OFFSET + +/* Tell the interrupt manager that the universe driver + * already called openpic_eoi() and that this step hence + * must be omitted. + */ + +#undef _VME_CSR_ON_PCI + +#undef BSP_PCI_VME_DRIVER_DOES_EOI + +extern int BSP_VMEInit(); +extern int BSP_VMEIrqMgrInstall(); + +#define BSP_VME_UNIVERSE_INSTALL_IRQ_MGR \ + do { \ + vmeUniverseInstallIrqMgr(0,5,1,6); \ + } while (0) + +#endif diff --git a/c/src/lib/libbsp/powerpc/score603e/vme/vmeconfig.c b/c/src/lib/libbsp/powerpc/score603e/vme/vmeconfig.c deleted file mode 100644 index 2cb70532b1..0000000000 --- a/c/src/lib/libbsp/powerpc/score603e/vme/vmeconfig.c +++ /dev/null @@ -1,178 +0,0 @@ -/* vmeconfig.c,v 1.1.2.2 2003/03/25 16:46:01 joel Exp */ - -/* Standard VME bridge configuration for VGM type boards */ - -/* - * Authorship - * ---------- - * This software was created by - * Till Straumann , 2002, - * Stanford Linear Accelerator Center, Stanford University. - * - * Acknowledgement of sponsorship - * ------------------------------ - * This software was produced by - * the Stanford Linear Accelerator Center, Stanford University, - * under Contract DE-AC03-76SFO0515 with the Department of Energy. - * - * Government disclaimer of liability - * ---------------------------------- - * Neither the United States nor the United States Department of Energy, - * nor any of their employees, makes any warranty, express or implied, or - * assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness of any data, apparatus, product, or process - * disclosed, or represents that its use would not infringe privately owned - * rights. - * - * Stanford disclaimer of liability - * -------------------------------- - * Stanford University makes no representations or warranties, express or - * implied, nor assumes any liability for the use of this software. - * - * Stanford disclaimer of copyright - * -------------------------------- - * Stanford University, owner of the copyright, hereby disclaims its - * copyright and all other rights in this software. Hence, anyone may - * freely use it for any purpose without restriction. - * - * Maintenance of notices - * ---------------------- - * In the interest of clarity regarding the origin and status of this - * SLAC software, this and all the preceding Stanford University notices - * are to remain affixed to any copy or derivative of this software made - * or distributed by the recipient and are to be affixed to any copy of - * software made or distributed by the recipient that contains a copy or - * derivative of this software. - * - * ------------------ SLAC Software Notices, Set 4 OTT.002a, 2004 FEB 03 - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/* Use a weak alias for the VME configuration. - * This permits individual applications to override - * this routine. - * They may even create an 'empty' - * - * void BSP_vme_config(void) {} - * - * which will avoid linking in the Universe driver - * at all :-). - */ - -void BSP_vme_config(void) __attribute__ (( weak, alias("__BSP_default_vme_config") )); - -SPR_RO(DBAT0U) - -extern uint32_t VME_Slot1; - -void -__BSP_default_vme_config(void) -{ -union { - struct _BATU bat; - unsigned long batbits; -} dbat0u; - - vmeUniverseInit(); - vmeUniverseReset(); - - /* setup a PCI area to map the VME bus */ - - dbat0u.batbits = _read_DBAT0U(); - - /* map VME address ranges */ - vmeUniverseMasterPortCfg( - 0, - VME_AM_EXT_SUP_DATA, - _VME_A32_WIN0_ON_VME, - _VME_A32_WIN0_ON_PCI, - 0x0F000000); - vmeUniverseMasterPortCfg( - 1, - VME_AM_STD_SUP_DATA, - 0x00000000, - _VME_A24_ON_PCI, - 0x00ff0000); - vmeUniverseMasterPortCfg( - 2, - VME_AM_SUP_SHORT_IO, - 0x00000000, - _VME_A16_ON_PCI, - 0x00010000); - -#ifdef _VME_DRAM_OFFSET -#if 0 - if (VME_Slot1){ - /* map our memory to VME */ -printk("vmeUniverseSlavePortCfg length of 0x%x\n", BSP_mem_size); - vmeUniverseSlavePortCfg( - 0, - VME_AM_EXT_SUP_DATA, - _VME_DRAM_32_OFFSET1, - PCI_DRAM_OFFSET, - BSP_mem_size); -printk("vmeUniverseSlavePortCfg length of 0x%x\n", _VME_A24_SIZE); - vmeUniverseSlavePortCfg( - 1, - VME_AM_STD_SUP_DATA, - _VME_DRAM_24_OFFSET1, - PCI_DRAM_OFFSET, - _VME_A24_SIZE); -printk("vmeUniverseSlavePortCfg length of 0x%x\n", _VME_A16_SIZE); - vmeUniverseSlavePortCfg( - 2, - VME_AM_SUP_SHORT_IO, - _VME_DRAM_16_OFFSET1, - PCI_DRAM_OFFSET, - _VME_A16_SIZE); - } - else { -printk("vmeUniverseSlavePortCfg length of 0x%x\n", BSP_mem_size); - vmeUniverseSlavePortCfg( - 0, - VME_AM_EXT_SUP_DATA, - _VME_DRAM_32_OFFSET2, - PCI_DRAM_OFFSET, - BSP_mem_size); -printk("vmeUniverseSlavePortCfg length of 0x%x\n", _VME_A24_SIZE); - vmeUniverseSlavePortCfg( - 1, - VME_AM_STD_SUP_DATA, - _VME_DRAM_24_OFFSET2, - PCI_DRAM_OFFSET, - _VME_A24_SIZE); -printk("vmeUniverseSlavePortCfg length of 0x%x\n", _VME_A16_SIZE); - vmeUniverseSlavePortCfg( - 2, - VME_AM_SUP_SHORT_IO, - _VME_DRAM_16_OFFSET2, - PCI_DRAM_OFFSET, - _VME_A16_SIZE); - } -#endif - - /* make sure the host bridge PCI master is enabled */ - vmeUniverseWriteReg( - vmeUniverseReadReg(UNIV_REGOFF_PCI_CSR) | UNIV_PCI_CSR_BM, - UNIV_REGOFF_PCI_CSR); -#endif - - - /* stdio is not yet initialized; the driver will revert to printk */ - vmeUniverseMasterPortsShow(0); - vmeUniverseSlavePortsShow(0); - - /* install the VME insterrupt manager */ - vmeUniverseInstallIrqMgr(0,5,1,6); - if (vmeUniverse0PciIrqLine<0) - BSP_panic("Unable to get interrupt line info from PCI config"); - _BSP_vme_bridge_irq=BSP_PCI_IRQ_LOWEST_OFFSET+vmeUniverse0PciIrqLine; -} -- cgit v1.2.3