summaryrefslogtreecommitdiffstats
path: root/bsps/include
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-03-05 09:03:58 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-03-05 09:03:58 +0100
commit7604a1308793a7a6a5b9de2d518c90b5dc501c96 (patch)
tree145f43f0f22b9453d5eee12e27f89d8a3dec43b4 /bsps/include
parentbsps/powerpc: Move .rtemstack section (diff)
downloadrtems-7604a1308793a7a6a5b9de2d518c90b5dc501c96.tar.bz2
bsps: Move VME header files
They are only used by PowerPC BSPs.
Diffstat (limited to 'bsps/include')
-rw-r--r--bsps/include/bsp/VME.h133
-rw-r--r--bsps/include/bsp/VMEDMA.h309
-rw-r--r--bsps/include/bsp/bspVmeDmaList.h140
3 files changed, 0 insertions, 582 deletions
diff --git a/bsps/include/bsp/VME.h b/bsps/include/bsp/VME.h
deleted file mode 100644
index 6727665ad0..0000000000
--- a/bsps/include/bsp/VME.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * @file
- *
- * @ingroup shared_vme
- *
- * @brief SVGM et al. BSP's VME support
- */
-
-#ifndef RTEMS_BSP_VME_API_H
-#define RTEMS_BSP_VME_API_H
-
-/*
- * Authorship
- * ----------
- * This software was created by
- * Till Straumann <strauman@slac.stanford.edu>, 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 <stdio.h>
-
-/* address modifiers & friends */
-#include <bsp/vme_am_defs.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup shared_vme VME related declarations
- *
- * @ingroup shared_vmeuniverse
- *
- * @brief BSP-specific configuration routine; sets up
- * VME windows and installs the VME interrupt manager.
- */
-
-void BSP_vme_config(void);
-
-/* translate through host bridge and vme master window of vme bridge */
-int
-BSP_vme2local_adrs(unsigned long am, unsigned long vmeaddr, unsigned long *plocaladdr);
-
-/* how a CPU address is mapped to the VME bus (if at all) */
-int
-BSP_local2vme_adrs(unsigned long am, unsigned long localaddr, unsigned long *pvmeaddr);
-
-/* interrupt handlers and levels */
-typedef void (*BSP_VME_ISR_t)(void *usrArg, unsigned long vector);
-
-int
-BSP_installVME_isr(unsigned long vector, BSP_VME_ISR_t handler, void *arg);
-int
-BSP_removeVME_isr(unsigned long vector, BSP_VME_ISR_t handler, void *arg);
-
-/* retrieve the currently installed ISR for a given vector */
-BSP_VME_ISR_t
-BSP_getVME_isr(unsigned long vector, void **parg);
-
-int
-BSP_enableVME_int_lvl(unsigned int level);
-
-int
-BSP_disableVME_int_lvl(unsigned int level);
-
-int
-BSP_VMEOutboundPortCfg(
- unsigned long port,
- unsigned long address_space,
- unsigned long vme_address,
- unsigned long pci_address,
- unsigned long size);
-
-int
-BSP_VMEInboundPortCfg(
- unsigned long port,
- unsigned long address_space,
- unsigned long vme_address,
- unsigned long pci_address,
- unsigned long size);
-
-void
-BSP_VMEOutboundPortsShow(FILE *f);
-
-void
-BSP_VMEInboundPortsShow(FILE *f);
-
-/* Assert VME SYSRESET */
-void
-BSP_VMEResetBus(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/bsps/include/bsp/VMEDMA.h b/bsps/include/bsp/VMEDMA.h
deleted file mode 100644
index 636f6d365c..0000000000
--- a/bsps/include/bsp/VMEDMA.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/**
- * @file
- *
- * @ingroup shared_vmedma
- *
- * @brief Public interface of DMA routines
- */
-
-#ifndef BSP_VME_DMA_H
-#define BSP_VME_DMA_H
-
-/*
- * Authorship
- * ----------
- * This software was created by
- * Till Straumann <strauman@slac.stanford.edu>, 2006, 2007
- * 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 <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @defgroup shared_vmedma VMEDMA Support
- *
- * @ingroup shared_vmeuniverse
- *
- * @brief VMEDMA Support Package
- */
-
-
-/* NOTE: Access to DMA Channels is *not* protected / thread-safe.
- * It is the responsability of the user to provide appropriate
- * locking/serialization.
- */
-
-/* Simple abstraction of DMA controller setup / bus utilization: */
-
-/* Since VME is the bottleneck, the settings for PCI are always
- * chosen aggressively.
- */
-
-
-/* Optimize for throughput; accept longer latencies:
- * Choose a large block size (1k) and immediately re-request
- * the bus at block boundaries.
- */
-#define BSP_VMEDMA_OPT_THROUGHPUT 1
-/* Optimize for latency, accept throughput penalty:
- * Choose a small block size (32b) and immediately re-request
- * the bus at block boundaries.
- */
-#define BSP_VMEDMA_OPT_LOWLATENCY 2
-
-/* Optimize for bus sharing with other devices:
- * Choose relatively small block size (128) and back off for 64us
- * at each block boundary.
- */
-#define BSP_VMEDMA_OPT_SHAREDBUS 3
-
-/* Choose bridge default/reset configuration:
- * (see manual)
- */
-#define BSP_VMEDMA_OPT_DEFAULT 4
-
-/* Provide custom configuration pass pointer to array
- * with as many 32-bit words the particular bridge chip
- * expects.
- */
-#define BSP_VMEDMA_OPT_CUSTOM 5
-
-/* VME Transfer modes */
-
-/* Bitwise OR of the VME address-modifier/transfer-type
- * with driver specific (no standard AM code for 2eVME and
- * 2eSST defined) and optional special flags (see below)
- */
-
-/* Additional qualifiers: */
-
-/* Don't increment VME address */
-#define BSP_VMEDMA_MODE_NOINC_VME (1<<20)
-/* Don't increment PCI address */
-#define BSP_VMEDMA_MODE_NOINC_PCI (1<<21)
-
-/* Direction */
-#define BSP_VMEDMA_MODE_PCI2VME (1<<31)
-
-typedef void *BSP_VMEDmaListDescriptor;
-
-/* Program the device for the selected mode;
- *
- * 'bus_mode': one of the ...VMEDMA_OPT... choices
- * listed above.
- * 'xfer_mode': VME address-modifier optionally ORed with
- * ...VMEDMA_MODE... bits listed above.
- * 'custom': (only used if bus_mode is VMEDMA_OPT_CUSTOM)
- * pointer to a list of setup parameters (chip-driver
- * specific).
- *
- * RETURNS: 0 on success, nonzero on error (mode or channel
- * unsupported).
- *
- * NOTES: The setup is preserved across multiple DMA transfers.
- * It is the responsibility of the driver to reprogram
- * the setup if the hardware does not preserve it.
- * However - in linked list mode, some fields may be
- * read from the list descriptors.
- *
- * Usually this routine must be used even in linked-list
- * mode to program the 'bus_mode'.
- *
- * Direction of transfer is specified by a bit in the
- * 'xfer_mode' (BSP_VMEDMA_MODE_PCI2VME).
- */
-int
-BSP_VMEDmaSetup(int channel, uint32_t bus_mode, uint32_t xfer_mode, void *custom_setup);
-
-/* Start direct (not linked-list) transfer.
- *
- * RETURNS: 0 on success, nonzero on failure
- */
-int
-BSP_VMEDmaStart(int channel, uint32_t pci_addr, uint32_t vme_addr, uint32_t n_bytes);
-
-/* Transfer status/result */
-#define BSP_VMEDMA_STATUS_OK 0
-/* Unsupported channel */
-#define BSP_VMEDMA_STATUS_UNSUP (-1)
-/* Bus error on VME */
-#define BSP_VMEDMA_STATUS_BERR_VME 1
-/* Bus error on PCI */
-#define BSP_VMEDMA_STATUS_BERR_PCI 2
-/* Channel busy */
-#define BSP_VMEDMA_STATUS_BUSY 3
-/* Setup/programming error */
-#define BSP_VMEDMA_STATUS_PERR 4
-/* Other/unspecified error */
-#define BSP_VMEDMA_STATUS_OERR 5
-
-/* Retrieve status of last transfer.
- *
- * RETURNS: 0 if the transfer was successful,
- * nonzero on error (e.g., one of the
- * values defined above).
- *
- * NOTE: Driver is allowed to pass other,
- * device specific codes
- */
-
-uint32_t
-BSP_VMEDmaStatus(int channel);
-
-/*
- * Hook a callback (executed from ISR context) to DMA interrupt and
- * enable it.
- * If called with NULL callback then an existing callback is removed
- * and the interrupt disabled.
- *
- * RETURNS: 0 on success, nonzero on failure (IRQ in use, unsupported
- * channel).
- */
-typedef void (*BSP_VMEDmaIRQCallback)(void *usr_arg);
-
-int
-BSP_VMEDmaInstallISR(int channel, BSP_VMEDmaIRQCallback cb, void *usr_arg);
-
-/*
- * DMA List operations.
- *
- * Note that the list is totally unprotected, i.e., the user is
- * responsible for maintaining coherency against concurrent
- * access by multiple threads or hardware.
- * We assume the user builds/updates a list, hands it over to
- * the hardware (list start command) and leaves it alone until
- * the DMA controller is done with it.
- */
-
-/* Modify a list entry. If the list element pointer is NULL
- * then a new list element is allocated.
- * Only the fields with its corresponding bit set in the mask
- * argument are touched.
- *
- * RETURNS: 'd' or newly allocated descriptor or NULL (no memory,
- * or invalid setup).
- */
-#define BSP_VMEDMA_MSK_ATTR (1<<0)
-#define BSP_VMEDMA_MSK_PCIA (1<<1)
-#define BSP_VMEDMA_MSK_VMEA (1<<2)
-#define BSP_VMEDMA_MSK_BCNT (1<<3)
-#define BSP_VMEDMA_MSK_ALL (0xf)
-BSP_VMEDmaListDescriptor
-BSP_VMEDmaListDescriptorSetup(
- BSP_VMEDmaListDescriptor d,
- uint32_t attr_mask,
- uint32_t xfer_mode,
- uint32_t pci_addr,
- uint32_t vme_addr,
- uint32_t n_bytes);
-
-/* De-allocate a list descriptor previously obtained by
- * BSP_VMEDmaListDescriptorSetup(0,...);
- *
- * RETURNS: 0 on success, nonzero on failure (d currently on a list)
- */
-int
-BSP_VMEDmaListDescriptorDestroy(BSP_VMEDmaListDescriptor d);
-
-/* Traverse a list of descriptors and destroy all elements */
-int
-BSP_VMEDmaListDestroy(BSP_VMEDmaListDescriptor anchor);
-
-/* Enqueue a list descriptor 'd' after 'tail'
- *
- * If 'tail' is NULL then 'd' is removed from
- * the list it is currently on.
- *
- * RETURNS: 0 on success, nonzero if 'd' is already
- * on a list (enqueue) or if it is not currently
- * on a list (dequeue).
- *
- * NOTE: it is obviously the user's responsibility to update
- * list queue/tail pointers when changing the
- * structure of the list.
- */
-int
-BSP_VMEDmaListDescriptorEnq(
- BSP_VMEDmaListDescriptor tail,
- BSP_VMEDmaListDescriptor d);
-
-/* Obtain next and previous descriptors */
-BSP_VMEDmaListDescriptor
-BSP_VMEDmaListDescriptorNext(BSP_VMEDmaListDescriptor d);
-
-BSP_VMEDmaListDescriptor
-BSP_VMEDmaListDescriptorPrev(BSP_VMEDmaListDescriptor d);
-
-/* Set and get a 'usrData' pointer in the descriptor */
-void
-BSP_VMEDmaListDescriptorSetUsr(BSP_VMEDmaListDescriptor d, void *usrData);
-
-void *
-BSP_VMEDmaListDescriptorGetUsr(BSP_VMEDmaListDescriptor d);
-
-/* Refresh an entire list. Some DMA controllers modify certain
- * fields (e.g., byte count) and this command restores the original
- * setup.
- */
-
-int
-BSP_VMEDmaListRefresh(BSP_VMEDmaListDescriptor anchor);
-
-/* Start linked-list operation.
- *
- * RETURNS: 0 on success, nonzero on failure
- */
-int
-BSP_VMEDmaListStart(int channel, BSP_VMEDmaListDescriptor list);
-
-#ifdef DEBUG
-void
-BSP_VMEDmaListDump(BSP_VMEDmaListDescriptor p);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/bsps/include/bsp/bspVmeDmaList.h b/bsps/include/bsp/bspVmeDmaList.h
deleted file mode 100644
index 414afab5c9..0000000000
--- a/bsps/include/bsp/bspVmeDmaList.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * @file
- *
- * @ingroup shared_bspvmedmalist
- *
- * @brief This header should only be used inside a BSP
- * chosing to use bspVmeDmaList for implementing VMEDMA.h
- */
-
-#ifndef BSP_VME_DMA_LIST_H
-#define BSP_VME_DMA_LIST_H
-
-
-
-/*
- * The bspVmeDmaList utility implements part of the API defined by
- * 'VMEDMA.h' namely all 'VMEDmaListDescriptor' related entry points:
- *
- * BSP_VMEDmaListDescriptorDestroy(),
- * BSP_VMEDmaListDestroy(),
- * BSP_VMEDmaListDescriptorEnq(),
- * BSP_VMEDmaListDescriptorNext(),
- * BSP_VMEDmaListDescriptorPrev(),
- * BSP_VMEDmaListDescriptorSetUsr(),
- * BSP_VMEDmaListDescriptorGetUsr(),
- * BSP_VMEDmaListRefresh()
- *
- * Also, it provides helper routines to assist BSPs with implementing
- *
- * BSP_VMEDmaListDescriptorSetup()
- *
- * and
- *
- * BSP_VMEDmaListStart()
- *
- * by providing
- *
- * BSP_VMEDmaListDescriptorNewTool(),
- * BSP_VMEDmaListDescriptorSetupTool(),
- *
- * and
- *
- * BSP_VMEDmaListDescriptorStartTool()
- */
-
-/*
- * Authorship
- * ----------
- * This software was created by
- * Till Straumann <strauman@slac.stanford.edu>, 2006, 2007
- * 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 <stdint.h>
-
-#include <bsp/VMEDMA.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct VMEDmaListNodeRec_ *VMEDmaListNode;
-
-typedef struct VMEDmaListClassRec_ *VMEDmaListClass;
-
-/**
- * @defgroup shared_bspvmedmalist Create and setup a new descriptor.
- *
- * @ingroup shared_vmeuniverse
- *
- * @brief The BSP must supply the appropriate controller class.
- */
-
-VMEDmaListNode
-BSP_VMEDmaListDescriptorNewTool(
- VMEDmaListClass pc,
- uint32_t attr_mask,
- uint32_t xfer_mode,
- uint32_t pci_addr,
- uint32_t vme_addr,
- uint32_t n_bytes);
-
-/* Setup an existing descriptor */
-VMEDmaListNode
-BSP_VMEDmaListDescriptorSetupTool(
- VMEDmaListNode n,
- uint32_t attr_mask,
- uint32_t xfer_mode,
- uint32_t pci_addr,
- uint32_t vme_addr,
- uint32_t n_bytes);
-
-
-/* Start a list DMA transfer on 'controller'. The 'controller' information
- * must be provided by the BSP.
- */
-int
-BSP_VMEDmaListDescriptorStartTool(volatile void *controller, int channel, VMEDmaListNode n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif