Bugfix for Prolific PL3057

Something useful for a change. What's the big ruckus on the net about this FireWire/USB chipset found in several external racks? Well to sum it up: you can't use two of these racks on the same 1394 bus, IF they both contain the same type of device (e.g. two HDDs, or two CD drives).

Why? The firmware of this device generates an 1394 unique ID (like MAC address for network cards), based on the IDE/ATAPI device inside. For me, it was "0050770e 00071002" (0x0e is the generated value, the others are hardcoded). However, two devices can't have the same ID on the same bus (which occurs for example with daisy chaining, or using 1394 hub), and this setup will not work.

For example, the XNU kernel (MacOSX) says:


kernel[0]: FireWire Error: Devices with identical unique ID: 0050770e 00071002 cannot be used.


The fix is simple: take the ROMWrite.exe utility, grab the latest (or as a last resort: use your current one, the aforementioned util can extract it) firmware, connect the rack to a Windows by USB, and modify this ID in the firmware file (look for 0x00071002). I bumped the last value to 0x03 and 0x04, uploaded the new firmware, and voila it's working.

Thanks to Pontscho / fresh!mindworkz for pointing out.