-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 374667 b: refs/heads/master c: b2396f7 h: refs/heads/master i: 374665: 22aac6c 374663: db90c20 v: v3
- Loading branch information
Vinod Koul
committed
May 2, 2013
1 parent
8a372f2
commit 062ae6f
Showing
38 changed files
with
3,114 additions
and
443 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: de61608acf89779c8831aaa1428b6975d49d98c0 | ||
refs/heads/master: b2396f7984ea09e83d489cfca6d5da62cc22945a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,39 @@ | ||
* Atmel Direct Memory Access Controller (DMA) | ||
|
||
Required properties: | ||
- compatible: Should be "atmel,<chip>-dma" | ||
- reg: Should contain DMA registers location and length | ||
- interrupts: Should contain DMA interrupt | ||
- compatible: Should be "atmel,<chip>-dma". | ||
- reg: Should contain DMA registers location and length. | ||
- interrupts: Should contain DMA interrupt. | ||
- #dma-cells: Must be <2>, used to represent the number of integer cells in | ||
the dmas property of client devices. | ||
|
||
Examples: | ||
Example: | ||
|
||
dma@ffffec00 { | ||
dma0: dma@ffffec00 { | ||
compatible = "atmel,at91sam9g45-dma"; | ||
reg = <0xffffec00 0x200>; | ||
interrupts = <21>; | ||
#dma-cells = <2>; | ||
}; | ||
|
||
DMA clients connected to the Atmel DMA controller must use the format | ||
described in the dma.txt file, using a three-cell specifier for each channel: | ||
a phandle plus two interger cells. | ||
The three cells in order are: | ||
|
||
1. A phandle pointing to the DMA controller. | ||
2. The memory interface (16 most significant bits), the peripheral interface | ||
(16 less significant bits). | ||
3. The peripheral identifier for the hardware handshaking interface. The | ||
identifier can be different for tx and rx. | ||
|
||
Example: | ||
|
||
i2c0@i2c@f8010000 { | ||
compatible = "atmel,at91sam9x5-i2c"; | ||
reg = <0xf8010000 0x100>; | ||
interrupts = <9 4 6>; | ||
dmas = <&dma0 1 7>, | ||
<&dma0 1 8>; | ||
dma-names = "tx", "rx"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
DMA Test Guide | ||
============== | ||
|
||
Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||
|
||
This small document introduces how to test DMA drivers using dmatest module. | ||
|
||
Part 1 - How to build the test module | ||
|
||
The menuconfig contains an option that could be found by following path: | ||
Device Drivers -> DMA Engine support -> DMA Test client | ||
|
||
In the configuration file the option called CONFIG_DMATEST. The dmatest could | ||
be built as module or inside kernel. Let's consider those cases. | ||
|
||
Part 2 - When dmatest is built as a module... | ||
|
||
After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest | ||
folder with nodes will be created. They are the same as module parameters with | ||
addition of the 'run' node that controls run and stop phases of the test. | ||
|
||
Note that in this case test will not run on load automatically. | ||
|
||
Example of usage: | ||
% echo dma0chan0 > /sys/kernel/debug/dmatest/channel | ||
% echo 2000 > /sys/kernel/debug/dmatest/timeout | ||
% echo 1 > /sys/kernel/debug/dmatest/iterations | ||
% echo 1 > /sys/kernel/debug/dmatest/run | ||
|
||
Hint: available channel list could be extracted by running the following | ||
command: | ||
% ls -1 /sys/class/dma/ | ||
|
||
After a while you will start to get messages about current status or error like | ||
in the original code. | ||
|
||
Note that running a new test will stop any in progress test. | ||
|
||
The following command should return actual state of the test. | ||
% cat /sys/kernel/debug/dmatest/run | ||
|
||
To wait for test done the user may perform a busy loop that checks the state. | ||
|
||
% while [ $(cat /sys/kernel/debug/dmatest/run) = "Y" ] | ||
> do | ||
> echo -n "." | ||
> sleep 1 | ||
> done | ||
> echo | ||
|
||
Part 3 - When built-in in the kernel... | ||
|
||
The module parameters that is supplied to the kernel command line will be used | ||
for the first performed test. After user gets a control, the test could be | ||
interrupted or re-run with same or different parameters. For the details see | ||
the above section "Part 2 - When dmatest is built as a module..." | ||
|
||
In both cases the module parameters are used as initial values for the test case. | ||
You always could check them at run-time by running | ||
% grep -H . /sys/module/dmatest/parameters/* | ||
|
||
Part 4 - Gathering the test results | ||
|
||
The module provides a storage for the test results in the memory. The gathered | ||
data could be used after test is done. | ||
|
||
The special file 'results' in the debugfs represents gathered data of the in | ||
progress test. The messages collected are printed to the kernel log as well. | ||
|
||
Example of output: | ||
% cat /sys/kernel/debug/dmatest/results | ||
dma0chan0-copy0: #1: No errors with src_off=0x7bf dst_off=0x8ad len=0x3fea (0) | ||
|
||
The message format is unified across the different types of errors. A number in | ||
the parens represents additional information, e.g. error code, error counter, | ||
or status. | ||
|
||
Comparison between buffers is stored to the dedicated structure. | ||
|
||
Note that the verify result is now accessible only via file 'results' in the | ||
debugfs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.