~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/Documentation/cdrom/cdu31a

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 
  2                 CDU31A/CDU33A Driver Info
  3                 -------------------------
  4 
  5 Information on the Sony CDU31A/CDU33A CDROM driver for the Linux
  6 kernel.
  7 
  8    Corey Minyard (minyard@metronet.com)
  9   
 10    Colossians 3:17
 11 
 12 Crude Table of Contents
 13 -----------------------
 14 
 15   Setting Up the Hardware
 16   Configuring the Kernel
 17   Configuring as a Module
 18   Driver Special Features
 19 
 20   
 21 This device driver handles Sony CDU31A/CDU33A CDROM drives and
 22 provides a complete block-level interface as well as an ioctl()
 23 interface as specified in include/linux/cdrom.h).  With this
 24 interface, CDROMs can be accessed, standard audio CDs can be played
 25 back normally, and CD audio information can be read off the drive.
 26 
 27 Note that this will only work for CDU31A/CDU33A drives.  Some vendors
 28 market their drives as CDU31A compatible.  They lie.  Their drives are
 29 really CDU31A hardware interface compatible (they can plug into the
 30 same card).  They are not software compatible.
 31 
 32 Setting Up the Hardware
 33 -----------------------
 34 
 35 The CDU31A driver is unable to safely tell if an interface card is
 36 present that it can use because the interface card does not announce
 37 its presence in any way besides placing 4 I/O locations in memory.  It
 38 used to just probe memory and attempt commands, but Linus wisely asked
 39 me to remove that because it could really screw up other hardware in
 40 the system.
 41 
 42 Because of this, you must tell the kernel where the drive interface
 43 is, what interrupts are used, and possibly if you are on a PAS-16
 44 soundcard.
 45 
 46 If you have the Sony CDU31A/CDU33A drive interface card, the following
 47 diagram will help you set it up.  If you have another card, you are on
 48 your own.  You need to make sure that the I/O address and interrupt is
 49 not used by another card in the system.  You will need to know the I/O
 50 address and interrupt you have set.  Note that use of interrupts is
 51 highly recommended, if possible, it really cuts down on CPU used.
 52 Unfortunately, most soundcards do not support interrupts for their
 53 CDROM interfaces.  By default, the Sony interface card comes with
 54 interrupts disabled.
 55    
 56         +----------+-----------------+----------------------+
 57         |  JP1     |  34 Pin Conn    |                      |
 58         |  JP2     +-----------------+                      |
 59         |  JP3                                              |
 60         |  JP4                                              |
 61         |                                                   +--+
 62         |                                                   |  +-+
 63         |                                                   |  | |  External
 64         |                                                   |  | |  Connector
 65         |                                                   |  | |
 66         |                                                   |  +-+
 67         |                                                   +--+
 68         |                                                   |
 69         |                                          +--------+
 70         |                                          |
 71         +------------------------------------------+
 72    
 73       JP1 sets the Base Address, using the following settings:
 74    
 75         Address         Pin 1           Pin 2
 76         -------         -----           -----
 77         0x320           Short           Short
 78         0x330           Short           Open
 79         0x340           Open            Short
 80         0x360           Open            Open
 81    
 82       JP2 and JP3 configure the DMA channel; they must be set the same.
 83    
 84         DMA             Pin 1           Pin 2           Pin 3
 85         ---             -----           -----           -----
 86         1               On              Off             On
 87         2               Off             On              Off
 88         3               Off             Off             On
 89    
 90       JP4 Configures the IRQ:
 91    
 92         IRQ     Pin 1           Pin 2           Pin 3           Pin 4
 93         ---     -----           -----           -----           -----
 94         3       Off             Off             On              Off
 95         4       Off             Off*            Off             On
 96         5       On              Off             Off             Off
 97         6       Off             On              Off             Off
 98    
 99                   The documentation states to set this for interrupt
100                   4, but I think that is a mistake.
101 
102 Note that if you have another interface card, you will need to look at
103 the documentation to find the I/O base address.  This is specified to
104 the SLCD.SYS driver for DOS with the /B: parameter, so you can look at
105 you DOS driver setup to find the address, if necessary.
106 
107 Configuring the Kernel
108 ----------------------
109 
110 You must tell the kernel where the drive is at boot time.  This can be
111 done at the Linux boot prompt, by using LILO, or by using Bootlin.
112 Note that this is no substitute for HOWTOs and LILO documentation, if
113 you are confused please read those for info on bootline configuration
114 and LILO.
115 
116 At the linux boot prompt, press the ALT key and add the following line
117 after the boot name (you can let the kernel boot, it will tell you the
118 default boot name while booting):
119 
120         cdu31a=<base address>,<interrupt>[,PAS]
121 
122 The base address needs to have "0x" in front of it, since it is in
123 hex.  For instance, to configure a drive at address 320 on interrupt 5,
124 use the following:
125 
126         cdu31a=0x320,5
127 
128 I use the following boot line:
129 
130         cdu31a=0x1f88,0,PAS
131 
132 because I have a PAS-16 which does not support interrupt for the
133 CDU31A interface.
134 
135 Adding this as an append line at the beginning of the /etc/lilo.conf
136 file will set it for lilo configurations.  I have the following as the
137 first line in my lilo.conf file:
138 
139         append="cdu31a=0x1f88,0"
140 
141 I'm not sure how to set up Bootlin (I have never used it), if someone
142 would like to fill in this section please do.
143 
144 
145 Configuring as a Module
146 -----------------------
147 
148 The driver supports loading as a module.  However, you must specify
149 the boot address and interrupt on the boot line to insmod.  You can't
150 use modprobe to load it, since modprobe doesn't support setting
151 variables.
152 
153 Anyway, I use the following line to load my driver as a module
154 
155   /sbin/insmod /lib/modules/`uname -r`/misc/cdu31a.o cdu31a_port=0x1f88
156 
157 You can set the following variables in the driver:
158 
159   cdu31a_port=<I/O address> - sets the base I/O.  If hex, put 0x in
160                               front of it.  This must be specified.
161 
162   cdu31a_irq=<interrupt> - Sets the interrupt number.  Leaving this
163                            off will turn interrupts off.
164 
165 
166 Driver Special Features
167 -----------------------
168 
169 This section describes features beyond the normal audio and CD-ROM
170 functions of the drive.
171 
172 2048 byte buffer mode
173 
174 If a disk is mounted with -o block=2048, data is copied straight from
175 the drive data port to the buffer.  Otherwise, the readahead buffer
176 must be involved to hold the other 1K of data when a 1K block
177 operation is done.  Note that with 2048 byte blocks you cannot execute
178 files from the CD.
179 
180 XA compatibility
181 
182 The driver should support XA disks for both the CDU31A and CDU33A.  It
183 does this transparently, the using program doesn't need to set it.
184 
185 Multi-Session
186 
187 A multi-session disk looks just like a normal disk to the user.  Just
188 mount one normally, and all the data should be there.  A special
189 thanks to Koen for help with this!
190 
191 Raw sector I/O
192 
193 Using the CDROMREADAUDIO it is possible to read raw audio and data
194 tracks.  Both operations return 2352 bytes per sector.  On the data
195 tracks, the first 12 bytes is not returned by the drive and the value
196 of that data is indeterminate.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.