Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | -- Documentation/cdrom/isp16 |
| 2 | |
| 3 | Docs by Eric van der Maarel <H.T.M.v.d.Maarel@marin.nl> |
| 4 | |
| 5 | This is the README for version 0.6 of the cdrom interface on an |
| 6 | ISP16, MAD16 or Mozart sound card. |
| 7 | |
| 8 | The detection and configuration of this interface used to be included |
| 9 | in both the sjcd and optcd cdrom driver. Drives supported by these |
| 10 | drivers came packed with Media Magic's multi media kit, which also |
| 11 | included the ISP16 card. The idea (thanks Leo Spiekman) |
| 12 | to move it from these drivers into a separate module and moreover, not to |
| 13 | rely on the MAD16 sound driver, are as follows: |
| 14 | -duplication of code in the kernel is a waste of resources and should |
| 15 | be avoided; |
| 16 | -however, kernels and notably those included with Linux distributions |
| 17 | (cf Slackware 3.0 included version 0.5 of the isp16 configuration |
| 18 | code included in the drivers) don't always come with sound support |
| 19 | included. Especially when they already include a bunch of cdrom drivers. |
| 20 | Hence, the cdrom interface should be configurable _independently_ of |
| 21 | sound support. |
| 22 | |
| 23 | The ISP16, MAD16 and Mozart sound cards have an OPTi 82C928 or an |
| 24 | OPTi 82C929 chip. The interface on these cards should work with |
| 25 | any cdrom attached to the card, which is 'electrically' compatible |
| 26 | with Sanyo/Panasonic, Sony or Mitsumi non-ide drives. However, the |
| 27 | command sets for any proprietary drives may differ |
| 28 | (and hence may not be supported in the kernel) from these four types. |
| 29 | For a fact I know the interface works and the way of configuration |
| 30 | as described in this documentation works in combination with the |
| 31 | sjcd (in Sanyo/Panasonic compatibility mode) cdrom drivers |
| 32 | (probably with the optcd (in Sony compatibility mode) as well). |
| 33 | If you have such an OPTi based sound card and you want to use the |
| 34 | cdrom interface with a cdrom drive supported by any of the other cdrom |
| 35 | drivers, it will probably work. Please let me know any experience you |
| 36 | might have). |
| 37 | I understand that cards based on the OPTi 82C929 chips may be configured |
| 38 | (hardware jumpers that is) as an IDE interface. Initialisation of such a |
| 39 | card in this mode is not supported (yet?). |
| 40 | |
| 41 | The suggestion to configure the ISP16 etc. sound card by booting DOS and |
| 42 | do a warm reboot to boot Linux somehow doesn't work, at least not |
| 43 | on my machine (IPC P90), with the OPTi 82C928 based card. |
| 44 | |
| 45 | Booting the kernel through the boot manager LILO allows the use |
| 46 | of some command line options on the 'LILO boot:' prompt. At boot time |
| 47 | press Alt or Shift while the LILO prompt is written on the screen and enter |
| 48 | any kernel options. Alternatively these options may be used in |
| 49 | the appropriate section in /etc/lilo.conf. Adding 'append="<cmd_line_options>"' |
| 50 | will do the trick as well. |
| 51 | The syntax of 'cmd_line_options' is |
| 52 | |
| 53 | isp16=[<port>[,<irq>[,<dma>]]][[,]<drive_type>] |
| 54 | |
| 55 | If there is no ISP16 or compatibles detected, there's probably no harm done. |
| 56 | These options indicate the values that your cdrom drive has been (or will be) |
| 57 | configured to use. |
| 58 | Valid values for the base i/o address are: |
| 59 | port=0x340,0x320,0x330,0x360 |
| 60 | for the interrupt request number |
| 61 | irq=0,3,5,7,9,10,11 |
| 62 | for the direct memory access line |
| 63 | dma=0,3,5,6,7 |
| 64 | and for the type of drive |
| 65 | drive_type=noisp16,Sanyo,Panasonic,Sony,Mitsumi. |
| 66 | Note that these options are case sensitive. |
| 67 | The values 0 for irq and dma indicate that they are not used, and |
| 68 | the drive will be used in 'polling' mode. The values 5 and 7 for irq |
| 69 | should be avoided in order to avoid any conflicts with optional |
| 70 | sound card configuration. |
| 71 | The syntax of the command line does not allow the specification of |
| 72 | irq when there's nothing specified for the base address and no |
| 73 | specification of dma when there is no specification of irq. |
| 74 | The value 'noisp16' for drive_type, which may be used as the first |
| 75 | non-integer option value (e.g. 'isp16=noisp16'), makes sure that probing |
| 76 | for and subsequent configuration of an ISP16-compatible card is skipped |
| 77 | all together. This can be useful to overcome possible conflicts which |
| 78 | may arise while the kernel is probing your hardware. |
| 79 | The default values are |
| 80 | port=0x340 |
| 81 | irq=0 |
| 82 | dma=0 |
| 83 | drive_type=Sanyo |
| 84 | reflecting my own configuration. The defaults can be changed in |
| 85 | the file linux/drivers/cdrom/ips16.h. |
| 86 | |
| 87 | The cdrom interface can be configured at run time by loading the |
| 88 | initialisation driver as a module. In that case, the interface |
| 89 | parameters can be set by giving appropriate values on the command |
| 90 | line. Configuring the driver can then be done by the following |
| 91 | command (assuming you have iso16.o installed in a proper place): |
| 92 | |
| 93 | insmod isp16.o isp16_cdrom_base=<port> isp16_cdrom_irq=<irq> \ |
| 94 | isp16_cdrom_dma=<dma> isp16_cdrom_type=<drive_type> |
| 95 | |
| 96 | where port, irq, dma and drive_type can have any of the values mentioned |
| 97 | above. |
| 98 | |
| 99 | |
| 100 | Have fun! |