Back to home page

OSCL-LXR

 
 

    


0001 =========================================================================
0002 RapidIO subsystem mport driver for IDT Tsi721 PCI Express-to-SRIO bridge.
0003 =========================================================================
0004 
0005 1. Overview
0006 ===========
0007 
0008 This driver implements all currently defined RapidIO mport callback functions.
0009 It supports maintenance read and write operations, inbound and outbound RapidIO
0010 doorbells, inbound maintenance port-writes and RapidIO messaging.
0011 
0012 To generate SRIO maintenance transactions this driver uses one of Tsi721 DMA
0013 channels. This mechanism provides access to larger range of hop counts and
0014 destination IDs without need for changes in outbound window translation.
0015 
0016 RapidIO messaging support uses dedicated messaging channels for each mailbox.
0017 For inbound messages this driver uses destination ID matching to forward messages
0018 into the corresponding message queue. Messaging callbacks are implemented to be
0019 fully compatible with RIONET driver (Ethernet over RapidIO messaging services).
0020 
0021 1. Module parameters:
0022 
0023 - 'dbg_level'
0024       - This parameter allows to control amount of debug information
0025         generated by this device driver. This parameter is formed by set of
0026         This parameter can be changed bit masks that correspond to the specific
0027         functional block.
0028         For mask definitions see 'drivers/rapidio/devices/tsi721.h'
0029         This parameter can be changed dynamically.
0030         Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
0031 
0032 - 'dma_desc_per_channel'
0033       - This parameter defines number of hardware buffer
0034         descriptors allocated for each registered Tsi721 DMA channel.
0035         Its default value is 128.
0036 
0037 - 'dma_txqueue_sz'
0038       - DMA transactions queue size. Defines number of pending
0039         transaction requests that can be accepted by each DMA channel.
0040         Default value is 16.
0041 
0042 - 'dma_sel'
0043       - DMA channel selection mask. Bitmask that defines which hardware
0044         DMA channels (0 ... 6) will be registered with DmaEngine core.
0045         If bit is set to 1, the corresponding DMA channel will be registered.
0046         DMA channels not selected by this mask will not be used by this device
0047         driver. Default value is 0x7f (use all channels).
0048 
0049 - 'pcie_mrrs'
0050       - override value for PCIe Maximum Read Request Size (MRRS).
0051         This parameter gives an ability to override MRRS value set during PCIe
0052         configuration process. Tsi721 supports read request sizes up to 4096B.
0053         Value for this parameter must be set as defined by PCIe specification:
0054         0 = 128B, 1 = 256B, 2 = 512B, 3 = 1024B, 4 = 2048B and 5 = 4096B.
0055         Default value is '-1' (= keep platform setting).
0056 
0057 - 'mbox_sel'
0058       - RIO messaging MBOX selection mask. This is a bitmask that defines
0059         messaging MBOXes are managed by this device driver. Mask bits 0 - 3
0060         correspond to MBOX0 - MBOX3. MBOX is under driver's control if the
0061         corresponding bit is set to '1'. Default value is 0x0f (= all).
0062 
0063 2. Known problems
0064 =================
0065 
0066   None.
0067 
0068 3. DMA Engine Support
0069 =====================
0070 
0071 Tsi721 mport driver supports DMA data transfers between local system memory and
0072 remote RapidIO devices. This functionality is implemented according to SLAVE
0073 mode API defined by common Linux kernel DMA Engine framework.
0074 
0075 Depending on system requirements RapidIO DMA operations can be included/excluded
0076 by setting CONFIG_RAPIDIO_DMA_ENGINE option. Tsi721 miniport driver uses seven
0077 out of eight available BDMA channels to support DMA data transfers.
0078 One BDMA channel is reserved for generation of maintenance read/write requests.
0079 
0080 If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
0081 this driver will accept DMA-specific module parameter:
0082 
0083   "dma_desc_per_channel"
0084                          - defines number of hardware buffer descriptors used by
0085                            each BDMA channel of Tsi721 (by default - 128).
0086 
0087 4. Version History
0088 
0089   =====   ====================================================================
0090   1.1.0   DMA operations re-worked to support data scatter/gather lists larger
0091           than hardware buffer descriptors ring.
0092   1.0.0   Initial driver release.
0093   =====   ====================================================================
0094 
0095 5.  License
0096 ===========
0097 
0098   Copyright(c) 2011 Integrated Device Technology, Inc. All rights reserved.
0099 
0100   This program is free software; you can redistribute it and/or modify it
0101   under the terms of the GNU General Public License as published by the Free
0102   Software Foundation; either version 2 of the License, or (at your option)
0103   any later version.
0104 
0105   This program is distributed in the hope that it will be useful, but WITHOUT
0106   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0107   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
0108   more details.
0109 
0110   You should have received a copy of the GNU General Public License along with
0111   this program; if not, write to the Free Software Foundation, Inc.,
0112   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.