Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | README FOR LINUX SONY CDU-535/531 DRIVER |
2 | ======================================== | |
3 | ||
4 | This is the Sony CDU-535 (and 531) driver version 0.7 for Linux. | |
5 | I do not think I have the documentation to add features like DMA support | |
6 | so if anyone else wants to pursue it or help me with it, please do. | |
7 | (I need to see what was done for the CDU-31A driver -- perhaps I can | |
8 | steal some of that code.) | |
9 | ||
10 | This is a Linux device driver for the Sony CDU-535 CDROM drive. This is | |
11 | one of the older Sony drives with its own interface card (Sony bus). | |
12 | The DOS driver for this drive is named SONY_CDU.SYS - when you boot DOS | |
13 | your drive should be identified as a SONY CDU-535. The driver works | |
14 | with a CDU-531 also. One user reported that the driver worked on drives | |
15 | OEM'ed by Procomm, drive and interface board were labelled Procomm. | |
16 | ||
17 | The Linux driver is based on Corey Minyard's sonycd 0.3 driver for | |
18 | the CDU-31A. Ron Jeppesen just changed the commands that were sent | |
19 | to the drive to correspond to the CDU-535 commands and registers. | |
20 | There were enough changes to let bugs creep in but it seems to be stable. | |
21 | Ron was able to tar an entire CDROM (should read all blocks) and built | |
22 | ghostview and xfig off Walnut Creek's X11R5/GNU CDROM. xcdplayer and | |
23 | workman work with the driver. Others have used the driver without | |
24 | problems except those dealing with wait loops (fixed in third release). | |
25 | Like Minyard's original driver this one uses a polled interface (this | |
26 | is also the default setup for the DOS driver). It has not been tried | |
27 | with interrupts or DMA enabled on the board. | |
28 | ||
29 | REQUIREMENTS | |
30 | ============ | |
31 | ||
32 | - Sony CDU-535 drive, preferably without interrupts and DMA | |
33 | enabled on the card. | |
34 | ||
35 | - Drive must be set up as unit 1. Only the first unit will be | |
36 | recognized | |
37 | ||
38 | - You must enter your interface address into | |
39 | /usr/src/linux/drivers/cdrom/sonycd535.h and build the | |
40 | appropriate kernel or use the "kernel command line" parameter | |
41 | sonycd535=0x320 | |
42 | with the correct interface address. | |
43 | ||
44 | NOTES: | |
45 | ====== | |
46 | ||
47 | 1) The drive MUST be turned on when booting or it will not be recognized! | |
48 | (but see comments on modularized version below) | |
49 | ||
50 | 2) when the cdrom device is opened the eject button is disabled to keep the | |
51 | user from ejecting a mounted disk and replacing it with another. | |
52 | Unfortunately xcdplayer and workman also open the cdrom device so you | |
53 | have to use the eject button in the software. Keep this in mind if your | |
54 | cdrom player refuses to give up its disk -- exit workman or xcdplayer, or | |
55 | umount the drive if it has been mounted. | |
56 | ||
57 | THANKS | |
58 | ====== | |
59 | ||
60 | Many thanks to Ron Jeppesen (ronj.an@site007.saic.com) for getting | |
61 | this project off the ground. He wrote the initial release | |
62 | and the first two patches to this driver (0.1, 0.2, and 0.3). | |
63 | Thanks also to Eberhard Moenkeberg (emoenke@gwdg.de) for prodding | |
64 | me to place this code into the mainstream Linux source tree | |
65 | (as of Linux version 1.1.91), as well as some patches to make | |
66 | it a better device citizen. Further thanks to Joel Katz | |
67 | <joelkatz@webchat.org> for his MODULE patches (see details below), | |
68 | Porfiri Claudio <C.Porfiri@nisms.tei.ericsson.se> for patches | |
69 | to make the driver work with the older CDU-510/515 series, and | |
70 | Heiko Eissfeldt <heiko@colossus.escape.de> for pointing out that | |
720a8459 JJ |
71 | the verify_area() checks were ignoring the results of said checks |
72 | (note: verify_area() has since been replaced by access_ok()). | |
1da177e4 LT |
73 | |
74 | (Acknowledgments from Ron Jeppesen in the 0.3 release:) | |
75 | Thanks to Corey Minyard who wrote the original CDU-31A driver on which | |
76 | this driver is based. Thanks to Ken Pizzini and Bob Blair who provided | |
77 | patches and feedback on the first release of this driver. | |
78 | ||
79 | Ken Pizzini | |
80 | ken@halcyon.com | |
81 | ||
82 | ------------------------------------------------------------------------------ | |
83 | (The following is from Joel Katz <joelkatz@webchat.org>.) | |
84 | ||
85 | To build a version of sony535.o that can be installed as a module, | |
86 | use the following command: | |
87 | ||
88 | gcc -c -D__KERNEL__ -DMODULE -O2 sonycd535.c -o sonycd535.o | |
89 | ||
90 | To install the module, simply type: | |
91 | ||
92 | insmod sony535.o | |
93 | or | |
94 | insmod sony535.o sonycd535=<address> | |
95 | ||
96 | And to remove it: | |
97 | ||
98 | rmmod sony535 | |
99 | ||
100 | The code checks to see if MODULE is defined and behaves as it used | |
101 | to if MODULE is not defined. That means your patched file should behave | |
102 | exactly as it used to if compiled into the kernel. | |
103 | ||
104 | I have an external drive, and I usually leave it powered off. I used | |
105 | to have to reboot if I needed to use the CDROM drive. Now I don't. | |
106 | ||
107 | Even if you have an internal drive, why waste the 96K of memory | |
108 | (unswappable) that the driver uses if you use your CD-ROM drive infrequently? | |
109 | ||
110 | This driver will not install (whether compiled in or loaded as a | |
111 | module) if the CDROM drive is not available during its initialization. This | |
112 | means that you can have the driver compiled into the kernel and still load | |
113 | the module later (assuming the driver doesn't install itself during | |
114 | power-on). This only wastes 12K when you boot with the CDROM drive off. | |
115 | ||
116 | This is what I usually do; I leave the driver compiled into the | |
117 | kernel, but load it as a module if I powered the system up with the drive | |
118 | off and then later decided to use the CDROM drive. | |
119 | ||
120 | Since the driver only uses a single page to point to the chunks, | |
121 | attempting to set the buffer cache to more than 2 Megabytes would be very | |
122 | bad; don't do that. |