4498c31adf
Add module parameters to allow load time configuration of DMA channels. Depending on application, performance of DMA data transfers can benefit from adjusted sizes of buffer descriptor ring and/or transaction requests queue. Having HW DMA channel selector mask allows to define which channels (from seven available) are controlled by the mport device driver and reserve some of them for direct use by other drivers. Link: http://lkml.kernel.org/r/1469125134-16523-5-git-send-email-alexandre.bounine@idt.com Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Tested-by: Barry Wood <barry.wood@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@prodrive-technologies.com> Cc: Barry Wood <barry.wood@idt.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
86 lines
3.9 KiB
Plaintext
86 lines
3.9 KiB
Plaintext
RapidIO subsystem mport driver for IDT Tsi721 PCI Express-to-SRIO bridge.
|
|
=========================================================================
|
|
|
|
I. Overview
|
|
|
|
This driver implements all currently defined RapidIO mport callback functions.
|
|
It supports maintenance read and write operations, inbound and outbound RapidIO
|
|
doorbells, inbound maintenance port-writes and RapidIO messaging.
|
|
|
|
To generate SRIO maintenance transactions this driver uses one of Tsi721 DMA
|
|
channels. This mechanism provides access to larger range of hop counts and
|
|
destination IDs without need for changes in outbound window translation.
|
|
|
|
RapidIO messaging support uses dedicated messaging channels for each mailbox.
|
|
For inbound messages this driver uses destination ID matching to forward messages
|
|
into the corresponding message queue. Messaging callbacks are implemented to be
|
|
fully compatible with RIONET driver (Ethernet over RapidIO messaging services).
|
|
|
|
1. Module parameters:
|
|
- 'dbg_level' - This parameter allows to control amount of debug information
|
|
generated by this device driver. This parameter is formed by set of
|
|
This parameter can be changed bit masks that correspond to the specific
|
|
functional block.
|
|
For mask definitions see 'drivers/rapidio/devices/tsi721.h'
|
|
This parameter can be changed dynamically.
|
|
Use CONFIG_RAPIDIO_DEBUG=y to enable debug output at the top level.
|
|
|
|
- 'dma_desc_per_channel' - This parameter defines number of hardware buffer
|
|
descriptors allocated for each registered Tsi721 DMA channel.
|
|
Its default value is 128.
|
|
|
|
- 'dma_txqueue_sz' - DMA transactions queue size. Defines number of pending
|
|
transaction requests that can be accepted by each DMA channel.
|
|
Default value is 16.
|
|
|
|
- 'dma_sel' - DMA channel selection mask. Bitmask that defines which hardware
|
|
DMA channels (0 ... 6) will be registered with DmaEngine core.
|
|
If bit is set to 1, the corresponding DMA channel will be registered.
|
|
DMA channels not selected by this mask will not be used by this device
|
|
driver. Default value is 0x7f (use all channels).
|
|
|
|
II. Known problems
|
|
|
|
None.
|
|
|
|
III. DMA Engine Support
|
|
|
|
Tsi721 mport driver supports DMA data transfers between local system memory and
|
|
remote RapidIO devices. This functionality is implemented according to SLAVE
|
|
mode API defined by common Linux kernel DMA Engine framework.
|
|
|
|
Depending on system requirements RapidIO DMA operations can be included/excluded
|
|
by setting CONFIG_RAPIDIO_DMA_ENGINE option. Tsi721 miniport driver uses seven
|
|
out of eight available BDMA channels to support DMA data transfers.
|
|
One BDMA channel is reserved for generation of maintenance read/write requests.
|
|
|
|
If Tsi721 mport driver have been built with RAPIDIO_DMA_ENGINE support included,
|
|
this driver will accept DMA-specific module parameter:
|
|
"dma_desc_per_channel" - defines number of hardware buffer descriptors used by
|
|
each BDMA channel of Tsi721 (by default - 128).
|
|
|
|
IV. Version History
|
|
|
|
1.1.0 - DMA operations re-worked to support data scatter/gather lists larger
|
|
than hardware buffer descriptors ring.
|
|
1.0.0 - Initial driver release.
|
|
|
|
V. License
|
|
-----------------------------------------------
|
|
|
|
Copyright(c) 2011 Integrated Device Technology, Inc. All rights reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by the Free
|
|
Software Foundation; either version 2 of the License, or (at your option)
|
|
any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc.,
|
|
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|