diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/cdrom/sonycd535 |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/cdrom/sonycd535')
-rw-r--r-- | Documentation/cdrom/sonycd535 | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/Documentation/cdrom/sonycd535 b/Documentation/cdrom/sonycd535 new file mode 100644 index 000000000000..59581a4b302a --- /dev/null +++ b/Documentation/cdrom/sonycd535 | |||
@@ -0,0 +1,121 @@ | |||
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 | ||
71 | the verify_area() checks were ignoring the results of said checks. | ||
72 | |||
73 | (Acknowledgments from Ron Jeppesen in the 0.3 release:) | ||
74 | Thanks to Corey Minyard who wrote the original CDU-31A driver on which | ||
75 | this driver is based. Thanks to Ken Pizzini and Bob Blair who provided | ||
76 | patches and feedback on the first release of this driver. | ||
77 | |||
78 | Ken Pizzini | ||
79 | ken@halcyon.com | ||
80 | |||
81 | ------------------------------------------------------------------------------ | ||
82 | (The following is from Joel Katz <joelkatz@webchat.org>.) | ||
83 | |||
84 | To build a version of sony535.o that can be installed as a module, | ||
85 | use the following command: | ||
86 | |||
87 | gcc -c -D__KERNEL__ -DMODULE -O2 sonycd535.c -o sonycd535.o | ||
88 | |||
89 | To install the module, simply type: | ||
90 | |||
91 | insmod sony535.o | ||
92 | or | ||
93 | insmod sony535.o sonycd535=<address> | ||
94 | |||
95 | And to remove it: | ||
96 | |||
97 | rmmod sony535 | ||
98 | |||
99 | The code checks to see if MODULE is defined and behaves as it used | ||
100 | to if MODULE is not defined. That means your patched file should behave | ||
101 | exactly as it used to if compiled into the kernel. | ||
102 | |||
103 | I have an external drive, and I usually leave it powered off. I used | ||
104 | to have to reboot if I needed to use the CDROM drive. Now I don't. | ||
105 | |||
106 | Even if you have an internal drive, why waste the 96K of memory | ||
107 | (unswappable) that the driver uses if you use your CD-ROM drive infrequently? | ||
108 | |||
109 | This driver will not install (whether compiled in or loaded as a | ||
110 | module) if the CDROM drive is not available during its initialization. This | ||
111 | means that you can have the driver compiled into the kernel and still load | ||
112 | the module later (assuming the driver doesn't install itself during | ||
113 | power-on). This only wastes 12K when you boot with the CDROM drive off. | ||
114 | |||
115 | This is what I usually do; I leave the driver compiled into the | ||
116 | kernel, but load it as a module if I powered the system up with the drive | ||
117 | off and then later decided to use the CDROM drive. | ||
118 | |||
119 | Since the driver only uses a single page to point to the chunks, | ||
120 | attempting to set the buffer cache to more than 2 Megabytes would be very | ||
121 | bad; don't do that. | ||