diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-03-05 09:03:58 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-03-05 09:03:58 +0100 |
commit | 7604a1308793a7a6a5b9de2d518c90b5dc501c96 (patch) | |
tree | 145f43f0f22b9453d5eee12e27f89d8a3dec43b4 /bsps/include | |
parent | bsps/powerpc: Move .rtemstack section (diff) | |
download | rtems-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.h | 133 | ||||
-rw-r--r-- | bsps/include/bsp/VMEDMA.h | 309 | ||||
-rw-r--r-- | bsps/include/bsp/bspVmeDmaList.h | 140 |
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 |