FlashROM V1.2, 02.09.99 ======================= Introduction ------------ FlashROM is a tool to update the flash ROM of a SCSI or ATAPI drive. At the moment it supports Plextor and Yamaha CD writers. A complete list is given below, together with remarks about supporting other hardware. Any SCSI or ATAPI device can be used as long as it is compliant to the Amiga SCSI direct standard. Disclaimer ---------- Neither the author of this tool nor the vendor of the drive shall be held responsible for any damages or losses, direct or consequential, resulting from the use, or inability to use the software. This applies even if the authors have been made aware of the possibility of losses or damage. FlashROM is copyright 1998-99 by Patrick Ohly. Copying and usage are allowed for free as long as no profit is made in doing so. Commercial distribution or distribution together with commercial products or commercial usage of FlashROM require the permission of the author. MakeCD + Availability of FlashROM --------------------------------- FlashROM was brought to you by the author who also wrote the SCSI, IO and GUI part of MakeCD, an "excellent" (Amiga Format #112) CD writing software for the Amiga. In contrast to one of our competitors I have decided not to restrict the usage of this tool to the users of our CD writing software. MakeCD does not need such an exclusive feature to be worth its money and I don't want anybody to buy it just to update his or her drive. Of course you are welcome to have a look at MakeCD in case that you should not know or use it already. An only slightly restricted demo of the current version is available at "http://makecd.core.de/". You will also find the current version of FlashROM there. I also believe that updating the firmware of drives is not one of the tasks a CD writing software should take care of. I regret that our competitor was not able to make their tool available to the Amiga community for free because of costs they had and still would have and because of their liability in case of a damage. I understand their objections and even though I decided to go a different way I share them, so once again in plain English: FLASHROM COMES WITH ABSOLUTELY NO WARRANTY OR SUPPORT! Usage ----- FlashROM has no graphical user interface. It is started from a Shell and takes the following arguments: DEVICE,ROMFILE,UNIT,DRIVE/K,OPTIONS/K DEVICE - SCSI or ATAPI device name, e.g. scsi.device; if no device name is given FlashROM prints a list of the currently available Amiga Exec devices. ROMFILE - file containing the new contents of the ROM; the file has to be uncompressed. If it is not named FlashROM will only try to find a known drive or check the given unit. UNIT - unit number of the drive to be flashed; if no unit is specified FlashROM scans the SCSI bus for a drive it knows, so usually this argument doesn't have to specified. The other arguments are usually not required: DRIVE - FlashROM has a builtin list of known drives and chooses the update method based on the drive's vendor and product code (e.g. "PLEXTOR CD-R PX-R412C"). If your drive is not recognized but compatible with one of the known drives listed below, you can override the drives ID with DRIVE "". Don't forget the quotes and choose the drive ID carefully. Spaces in the product code are relevant. OPTIONS - Some of the update methods may require additional arguments for drives that are new and not just clones of the known drives. See the description of known drives below. Step by step instructions ------------------------- 1. Get the firmware that you want to upgrade to. See below for addresses. 2. Plextor PX-R412C only: Set the flash switch on the drive as documented in the manual for your drive while the drive and the computer are turned off. It may be either a DIP switch or a jumper header, so consult the drive's manual for further info. CAUTION: Don't insert the Caddy during Flash mode. If you try to insert it or force it in, it will cause a malfunction! 3. Unpack the archive. FlashROM will tell you if it can check the ROM file before sending it to the drive. In this case no harm will be done if you forget to unpack it or use a wrong one, but sometimes this is not possible, so take care! 4. Open a Shell window. If the FlashROM tool is not found by your shell, then "CD" to the directory where it is located or type in the complete path each time you want to start it. 5. Find out what the name of your SCSI or ATAPI device is. If you start FlashROM without any arguments you will get a list of the available devices and the correct one will probably have "scsi" in its name: | 4.Ram Disk:> FlashROM | Please start FlashROM with your SCSI device as argument (including | the ».device«). These devices are currently available: | 2nd.scsi.device | clipboard.device | console.device | input.device | keyboard.device | ramdrive.device | scsi.device | timer.device 6. Start FlashROM with the names of device and ROM file as arguments. FlashROM will try to match the file with a known drive attached to the bus: | 4.Ram Disk:> FlashROM device 2nd.scsi.device ROMFile Plextor412_104.bin | Checking drives at 2nd.scsi.device: | 0. »cannot open« | 1. »cannot open« | 2. QUANTUM FIREBALL1080S 1Q09 - not supported | 3. PLEXTOR *Program Mode1* 1.00 - ready | | | Everything is ready for flashing the new contents. | The ROM file has been loaded and checked. | | If you are not sure that your SCSI transfer is reliable and | no other system component will interfere with flashing, then | you can still safely abort now. | | Enter »yes« to proceed. Abort with »no« or CTRL-C + RETURN: If you have more than one supported drive you may have to select the desired one by also giving the UNIT argument on the command line explicitely. If the firmware check is not possible with your drive, the line "The ROM file has been loaded and checked" will be replaced by different texts warning you that the check was not possible and about the consequences of using a wrong or damaged firmware. Some drives recognize that themselves, but others have to be reflashed to get them working again in this case. Plextor PX-R412C only: If you have not set the flash switch correctly, then the Plextor will be listed as "PLEXTOR CD-R PX-R412C - supported, but not ready" and FlashROM will refuse to continue. 7. Usually you don't have to unmount filesystems or boot without startup sequence. You can still try it this way if flashing the new ROM failed, but if you have known problems with the reliability of data transfer to and from the drive then you should solve that first. Try if disabling reselection or synchronous transfer helps. Consult the manual for your SCSI device to find out how to do this. So far no damage could have been done to the drive and everything is ready to do the flashing, so now enter "yes" to proceed. *** Warning *** Some controllers or systems have problems with flashing a new firmware, probably because the drives' behaviour is unusual while they are changing the firmware. In this case FlashROM may hang and/or the system can be slowed down or even crash. The ROM is still flashed properly, but be prepared to reset the machine. 8. FlashROM will now transfer the new ROM contents and check it afterwards. If everything goes well you will get the following message: | Enter »yes« to proceed. Abort with »no« or CTRL-C + RETURN: yes | | Flashing ROM now... | done. | | The flash ROM has been changed successfully. Otherwise you will get an error message reporting error codes that might help a technician to explain what went wrong, so write them down in case you want to ask for help. You will also be told if the flash ROM was damaged and what you might do next. Yamaha and Plextor PX-R820: This check is not 100% reliable. FlashROM just waits for the drive to come up again, but cannot check if the desired firmware is really active and correct afterwards. If FlashROM is not proceeding for more than two minutes, then you will have to reset the machine. 9. Plextor PX-R412C only: Return the flash switch or jumper header to the former setting according to the description in the drive's manual. After turning on the computer again (after step 9. for a Plextor PX-R412C) or immediately (with the other drives) you can check if the new firmware ist active. It is listed after the product code: | 4.Ram Disk:> flashrom device 2nd.scsi.device | Checking drives at 2nd.scsi.device: | 0. »cannot open« | 1. »cannot open« | 2. QUANTUM FIREBALL1080S 1Q09 - not supported | 3. PLEXTOR CD-R PX-R412C 1.04 - supported, but flash mode not enabled | 4. QUANTUM LP240S GM240S01X 6.4 - not supported | 5. »cannot open« | 6. »cannot open« | 7. »cannot open« What to do in case of a failure? -------------------------------- Failed ROM updates are indicated by the drives as described below and perhaps by FlashROM itself after flashing. Try to flash again. If it still fails, check your cabling, disable reselection and synchronous transfer. Boot without startup sequence and Workbench and try it once more. If it does not work with your computer you might ask a friend to do it with his. If you cannot access the drive at all any more, then you will have to sent it to the vendor for repair. Support ------- This software has been made available for free under the provision that the author won't have to answer questions regarding the usage, SCSI problems, or problems with any of the supported drives. Contact the vendor of the drive for help with that. Of course you are welcome to report bugs in FlashROM, but make sure it is FlashROM not working properly and not your system. Plextor: Excelsiorlaan 1 1930 Zaventem Belgium phone: 32-2-725 55 22 fax: 32-2-725 94 57 BBS: 32-2-720 49 57 http://www.plextor.be/ http://www.plextor.be/english/technical/download.htm Yamaha (USA): YAMAHA SYSTEMS TECHN0L0GY, INC. 100 Century Center Court, San Jose, CA 95112 U.S.A. phone: 1 408 467 2300 fax: 1 408 437 8791 http://www.yamahayst.com/ http://www.yamahayst.com/techsup/download.htm Author: Patrick Ohly Patrick.Ohly@gmx.de http://home.pages.de/~Ohly/ not longer than summer '99: Weechstr. 1, WG E4/5 76131 Karlsruhe Germany Credits ------- Thanks to - Rik Swusten/Plextor for lending us a Plextor PX-R24CS once and now even permanently a PX-R412C and providing the information about the flash ROM commands. Support for these drives in MakeCD would have been difficult without this support, and FlashROM would have been impossible without the information. - Craig Campbell/Yamaha for providing three drives and the required documentation. This is indeed a very generous and more than welcome help. - Thanks to these guys for testing: Heinz Wrobel - A4000T internal SCSI + PX-R412C Massimo Mancini - A4000T internal SCSI + PX-R820T Giulio Guaglianone - Amiga IDE (IDEfix?) + CDR4001 Peter Kulisic - DKB Spitfire Zorro II SCSI2 + CDR400 Ben Matthew - Phase V 1230scsi.device 8.5 + CDR400 Tore Bjoernsen - Plextor PX-40S Adam Carrano - A4000, CyberStormPPC SCSI controller (cybppc.device V44.57) + PX-R412C Adam Carrano's company is also selling MakeCD and the Plextor PX-R412C, so here's the full address ;-) APS 15 rue Louis Maurel 13006 Marseille France phone: 04.91.00.30.44 fax: 04.91.00.30.43 http://www.aps.fr/ Known drives ------------ PLEXTOR CD-R PX-R412C (flash mode not enabled) PLEXTOR *Program Mode1* (a PX-R412C with flash mode enabled) The firmware is checked in advance. No command line options are required to update this drive. If the firmware download goes wrong, you will be told so by FlashROM and/or the Plextor PX-R412C will light two LEDs: the outer most left (green) and the outer most right (orange). But it is still is possible to re-program the drive. PLEXTOR CD-R PX-R820T PLEXTOR CD-R PX-W4220T PLEXTOR CD-R PX-W8220T PLEXTOR CD-ROM PX-40TS PLEXTOR CD-ROM PX-40TW FlashROM will only check for byte errors in the firmware file, but the firmware will also be checked by the drive itself and FlashROM will be told if it was suitable or not. No command line options are required to update these drives. Error codes: $9/$87/$0 - FIRMWARE DATA ERROR Your firmware file is damaged or not uncompressed. It might also get damaged unnoticedly during transfer. $9/$88/$0 - TRANSFER DATA ERROR The drive has detected a transfer error of the firmware data. If the firmware download goes wrong, orange and green LEDs will blink alternately and the tray load/eject will not work. But it is still is possible to re-program the drive. YAMAHA CDR400c YAMAHA CDR400t YAMAHA CDR401t YAMAHA CDR200c YAMAHA CDR200t YAMAHA CRW2260 YAMAHA CRW2260t YAMAHA CRW4260 YAMAHA CRW4260t YAMAHA CRW4261 YAMAHA CRW4001 YAMAHA CRW2216S YAMAHA CRW2216E YAMAHA CRW4416S YAMAHA CRW4416E YAMAHA CRW6416S YAMAHA CRW6416E The exact type of the drive (caddy "c", tray "t", SCSI "S", IDE "E") is irrelevant for flashing the ROM. The firmware cannot be checked in advance and these drives will take over invalid data. This would lead to the situation described in the next paragraph: If the drives flash ROM became invalid somehow, it will show up on the SCSI bus with "CORE" attached to the product code. If DISC and Read/Write light are solid amber, it can still be re-programmes. A drive in this state should still be recognized by FlashROM. Otherwise use the DRIVE command line argument to specify the drive. DISC and Read/Write light blinking red indicate that the Servo information has been over written. According to Yamaha this should be impossible, but it has happend under yet unknown circumstances. A reflash will not resolve the issue. New Yamaha models are supported by overriding the drive ID and specifying the ROM offset in hex. This offset can be inquired from the Yamaha support. Here is how the CDR4416S could be flashed if it was not known already: | 15.Ram Disk:> FlashROM dracoscsi.device 2 CDRW4416S_10e.bin DRIVE "YAMAHA CDR400c" OPTIONS 10800 | Checking unit 2 at dracoscsi.device: | 2. YAMAHA CRW4416S 1.0e = YAMAHA CDR400c - supported Make sure you got the correct offset and specify it in hex _without_ a prefix like $ or 0x. History ------- V1.0 - initial release for Plextor PX-R412C V1.1 - added support for Yamaha drives and Plextor PX-R820T V1.2 - added recognition of Yamaha CRW6416S/E and support for Plextor CD-ROM 40TS/W, added simple file check for Plextor firmware files Support for other drives ------------------------ Here are my preconditions for adding support of other drives: 1. The vendor supports the implementation by providing the documentation of the required commands. 2. I won't be held liable for any damage. 3. I get at least one free example of the hardware. 4. The hardware should be fairly well spreaded. Item 1 and 2 are absolutely necessary - especially analyzing other software to learn about the required commands is out of question. The other items however are negotiable: if someone is willing to pay me, such offers are welcome. I have to live on something in the end, and eating hardware isn't very healthy ;-)