diff options
author | Pete Popov <ppopov@embeddedalley.com> | 2005-09-15 04:03:12 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:32:20 -0400 |
commit | 26a940e21752e0de8f068f77dad606a7d1986937 (patch) | |
tree | 88e46225e19c4c72fa6914a21afb28c6ea52bfc6 /Documentation/mips/AU1xxx_IDE.README | |
parent | 64abf64d10b3a547becefeb26394dfbefac273fb (diff) |
Cleaned up AMD Au1200 IDE driver:
- converted to platform bus
- removed pci dependencies
- removed virt_to_phys/phys_to_virt calls
System now can root off of a disk.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/Documentation/mips/AU1xxx_IDE.README b/Documentation/mips/AU1xxx_IDE.README
new file mode 100644
Diffstat (limited to 'Documentation/mips/AU1xxx_IDE.README')
-rw-r--r-- | Documentation/mips/AU1xxx_IDE.README | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Documentation/mips/AU1xxx_IDE.README b/Documentation/mips/AU1xxx_IDE.README new file mode 100644 index 000000000000..a7e4c4ea3560 --- /dev/null +++ b/Documentation/mips/AU1xxx_IDE.README | |||
@@ -0,0 +1,168 @@ | |||
1 | README for MIPS AU1XXX IDE driver - Released 2005-07-15 | ||
2 | |||
3 | ABOUT | ||
4 | ----- | ||
5 | This file describes the 'drivers/ide/mips/au1xxx-ide.c', related files and the | ||
6 | services they provide. | ||
7 | |||
8 | If you are short in patience and just want to know how to add your hard disc to | ||
9 | the white or black list, go to the 'ADD NEW HARD DISC TO WHITE OR BLACK LIST' | ||
10 | section. | ||
11 | |||
12 | |||
13 | LICENSE | ||
14 | ------- | ||
15 | |||
16 | Copyright (c) 2003-2005 AMD, Personal Connectivity Solutions | ||
17 | |||
18 | This program is free software; you can redistribute it and/or modify it under | ||
19 | the terms of the GNU General Public License as published by the Free Software | ||
20 | Foundation; either version 2 of the License, or (at your option) any later | ||
21 | version. | ||
22 | |||
23 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, | ||
24 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||
25 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR | ||
26 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||
27 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||
28 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
29 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
30 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
31 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
32 | POSSIBILITY OF SUCH DAMAGE. | ||
33 | |||
34 | You should have received a copy of the GNU General Public License along with | ||
35 | this program; if not, write to the Free Software Foundation, Inc., | ||
36 | 675 Mass Ave, Cambridge, MA 02139, USA. | ||
37 | |||
38 | Note: for more information, please refer "AMD Alchemy Au1200/Au1550 IDE | ||
39 | Interface and Linux Device Driver" Application Note. | ||
40 | |||
41 | |||
42 | FILES, CONFIGS AND COMPATABILITY | ||
43 | -------------------------------- | ||
44 | |||
45 | Two files are introduced: | ||
46 | |||
47 | a) 'include/asm-mips/mach-au1x00/au1xxx_ide.h' | ||
48 | containes : struct _auide_hwif | ||
49 | struct drive_list_entry dma_white_list | ||
50 | struct drive_list_entry dma_black_list | ||
51 | timing parameters for PIO mode 0/1/2/3/4 | ||
52 | timing parameters for MWDMA 0/1/2 | ||
53 | |||
54 | b) 'drivers/ide/mips/au1xxx-ide.c' | ||
55 | contains the functionality of the AU1XXX IDE driver | ||
56 | |||
57 | Four configs variables are introduced: | ||
58 | |||
59 | CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA - enable the PIO+DBDMA mode | ||
60 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA - enable the MWDMA mode | ||
61 | CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON - set Burstable FIFO in DBDMA | ||
62 | controler | ||
63 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ - maximum transfer size | ||
64 | per descriptor | ||
65 | |||
66 | If MWDMA is enabled and the connected hard disc is not on the white list, the | ||
67 | kernel switches to a "safe mwdma mode" at boot time. In this mode the IDE | ||
68 | performance is substantial slower then in full speed mwdma. In this case | ||
69 | please add your hard disc to the white list (follow instruction from 'ADD NEW | ||
70 | HARD DISC TO WHITE OR BLACK LIST' section). | ||
71 | |||
72 | |||
73 | SUPPORTED IDE MODES | ||
74 | ------------------- | ||
75 | |||
76 | The AU1XXX IDE driver supported all PIO modes - PIO mode 0/1/2/3/4 - and all | ||
77 | MWDMA modes - MWDMA 0/1/2 -. There is no support for SWDMA and UDMA mode. | ||
78 | |||
79 | To change the PIO mode use the program hdparm with option -p, e.g. | ||
80 | 'hdparm -p0 [device]' for PIO mode 0. To enable the MWDMA mode use the option | ||
81 | -X, e.g. 'hdparm -X32 [device]' for MWDMA mode 0. | ||
82 | |||
83 | |||
84 | PERFORMANCE CONFIGURATIONS | ||
85 | -------------------------- | ||
86 | |||
87 | If the used system doesn't need USB support enable the following kernel configs: | ||
88 | |||
89 | CONFIG_IDE=y | ||
90 | CONFIG_BLK_DEV_IDE=y | ||
91 | CONFIG_IDE_GENERIC=y | ||
92 | CONFIG_BLK_DEV_IDEPCI=y | ||
93 | CONFIG_BLK_DEV_GENERIC=y | ||
94 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
95 | CONFIG_IDEDMA_PCI_AUTO=y | ||
96 | CONFIG_BLK_DEV_IDE_AU1XXX=y | ||
97 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y | ||
98 | CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON=y | ||
99 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 | ||
100 | CONFIG_BLK_DEV_IDEDMA=y | ||
101 | CONFIG_IDEDMA_AUTO=y | ||
102 | |||
103 | If the used system need the USB support enable the following kernel configs for | ||
104 | high IDE to USB throughput. | ||
105 | |||
106 | CONFIG_BLK_DEV_IDEDISK=y | ||
107 | CONFIG_IDE_GENERIC=y | ||
108 | CONFIG_BLK_DEV_IDEPCI=y | ||
109 | CONFIG_BLK_DEV_GENERIC=y | ||
110 | CONFIG_BLK_DEV_IDEDMA_PCI=y | ||
111 | CONFIG_IDEDMA_PCI_AUTO=y | ||
112 | CONFIG_BLK_DEV_IDE_AU1XXX=y | ||
113 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y | ||
114 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 | ||
115 | CONFIG_BLK_DEV_IDEDMA=y | ||
116 | CONFIG_IDEDMA_AUTO=y | ||
117 | |||
118 | |||
119 | ADD NEW HARD DISC TO WHITE OR BLACK LIST | ||
120 | ---------------------------------------- | ||
121 | |||
122 | Step 1 : detect the model name of your hard disc | ||
123 | |||
124 | a) connect your hard disc to the AU1XXX | ||
125 | |||
126 | b) boot your kernel and get the hard disc model. | ||
127 | |||
128 | Example boot log: | ||
129 | |||
130 | --snipped-- | ||
131 | Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 | ||
132 | ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx | ||
133 | Au1xxx IDE(builtin) configured for MWDMA2 | ||
134 | Probing IDE interface ide0... | ||
135 | hda: Maxtor 6E040L0, ATA DISK drive | ||
136 | ide0 at 0xac800000-0xac800007,0xac8001c0 on irq 64 | ||
137 | hda: max request size: 64KiB | ||
138 | hda: 80293248 sectors (41110 MB) w/2048KiB Cache, CHS=65535/16/63, (U)DMA | ||
139 | --snipped-- | ||
140 | |||
141 | In this example 'Maxtor 6E040L0'. | ||
142 | |||
143 | Step 2 : edit 'include/asm-mips/mach-au1x00/au1xxx_ide.h' | ||
144 | |||
145 | Add your hard disc to the dma_white_list or dma_black_list structur. | ||
146 | |||
147 | Step 3 : Recompile the kernel | ||
148 | |||
149 | Enable MWDMA support in the kernel configuration. Recompile the kernel and | ||
150 | reboot. | ||
151 | |||
152 | Step 4 : Tests | ||
153 | |||
154 | If you have add a hard disc to the white list, please run some stress tests | ||
155 | for verification. | ||
156 | |||
157 | |||
158 | ACKNOWLEDGMENTS | ||
159 | --------------- | ||
160 | |||
161 | These drivers wouldn't have been done without the base of kernel 2.4.x AU1XXX | ||
162 | IDE driver from AMD. | ||
163 | |||
164 | Additional input also from: | ||
165 | Matthias Lenk <matthias.lenk@amd.com> | ||
166 | |||
167 | Happy hacking! | ||
168 | Enrico Walther <enrico.walther@amd.com> | ||