• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Silicon Image SIL3112 Flashing: Easier Way Using flashrom

mg.man

Well-known member
thanks to @mg.man for the kind donation
...just a down-payment on the next box of @joshc's stuff he doesn't need, nor do I, but I'll take it and toss in my storage unit on the off chance that one day there might be something in there that I *do* need.... 😜
 

shadedream

Well-known member
What machine is it? The decompression takes less than 2 seconds to run on even the slowest of machines, so that won't be the issue. Though the SeriTek ROM is known to cause this delay on some machines.
It's a Gossamer (beige) G3 Tower. Might just be the seritek firmware then. It's not an issue, just figured I'd see if there was a workaround for it.
 

Pushpull76

Well-known member
I FINALLY got it figured out, well, sort of... I couldn't figure out what in my implementation was causing the issue, so I decided to make a new implementation, based off a different C implementation along with a (broken) Forth implementation I came across. With this decompression routine implemented, the USB probing issue stopped happening on my MDD! So now, finally, we have a fully working ROM that fits onto a 128K EEPROM! I have attached this new ROM below, along with my patched copy of the OS 9 SeriTek flasher tool with said ROM embedded (which will allow you to flash a "blank" card with any EEPROM), as well as the Forth source of the new decompression implementation.
Thanks for this massive work, it's an amazing solution. I'm trying to understand if someone already tried with a 39SF010 chip.
 

dosdude1

Well-known member
Thanks for this massive work, it's an amazing solution. I'm trying to understand if someone already tried with a 39SF010 chip.
Yep, it will work fine with that chip. Really will work with any chip 64K or larger in size, the only oddity is the “28” series EEPROMs (such as the AM28F010) require 12V for programming, so must be flashed externally with an EEPROM programmer and cannot be flashed on the card. After flashing, though will work fine with my patched ROM just the same once flashed.
 

cobalt60

Well-known member
Sorry if I'm missing something obvious, but I can't quite figure out the exact ROM to use. I've got the RHC SATA HardCard, so it's a SiI3112 chip-set and has a 512K flash. I want to use the card in a PowerMac 9500, but it'd be great if it could be swapped into G3s and G4s and still work. So which is the ROM I want and where can I find it?

I did download a bunch of ROMs but I keep losing track of what's what, which are newer, better, appropriate, etc, so any guidance greatly appreciated.
 

croissantking

Well-known member
Sorry if I'm missing something obvious, but I can't quite figure out the exact ROM to use. I've got the RHC SATA HardCard, so it's a SiI3112 chip-set and has a 512K flash. I want to use the card in a PowerMac 9500, but it'd be great if it could be swapped into G3s and G4s and still work. So which is the ROM I want and where can I find it?

I did download a bunch of ROMs but I keep losing track of what's what, which are newer, better, appropriate, etc, so any guidance greatly appreciated.
Most of us are using dosdude1's patched copy of the OS 9 SeriTek flasher tool with ROM embedded in post #56.
 

bigmessowires

Well-known member
Many thanks to @dosdude1 for answering my question about flashing the Rabbit Hole Computing SATA card here: https://68kmla.org/bb/index.php?thr...-satas-20th-birthday.43133/page-4#post-509279 I'm responding here with a question about non-RHC options, so as to not derail that other thread.

After reading through the posts here, I'm having trouble seeing the forest through the trees about which PCI SATA cards may be expected to work, and what mods are needed aside from flashing the new firmware.

1. Some earlier posts talked about physically replacing the Flash ROM chip on the card, but I think that's no longer necessary, correct?

2. Other posts mention needing to remove the 24WC02J EEPROM. Does this apply to all SATA cards or only the black unbranded $12 Chinese ones?

3. Need to replace the 3.3V regulator to make it work on a G4 Quicksilver?

4. Which SATA cards can be expected to work? Black unbranded Chinese PCI SATA? Adaptec 1210SA? Others? Anything with a Sil3112 chipset?
 

dosdude1

Well-known member
Many thanks to @dosdude1 for answering my question about flashing the Rabbit Hole Computing SATA card here: https://68kmla.org/bb/index.php?thr...-satas-20th-birthday.43133/page-4#post-509279 I'm responding here with a question about non-RHC options, so as to not derail that other thread.

After reading through the posts here, I'm having trouble seeing the forest through the trees about which PCI SATA cards may be expected to work, and what mods are needed aside from flashing the new firmware.

1. Some earlier posts talked about physically replacing the Flash ROM chip on the card, but I think that's no longer necessary, correct?

2. Other posts mention needing to remove the 24WC02J EEPROM. Does this apply to all SATA cards or only the black unbranded $12 Chinese ones?

3. Need to replace the 3.3V regulator to make it work on a G4 Quicksilver?

4. Which SATA cards can be expected to work? Black unbranded Chinese PCI SATA? Adaptec 1210SA? Others? Anything with a Sil3112 chipset?
1. No need to replace Flash ROM on card in most cases, though some really cheap Chinese ones these days seem to be coming with AM28F010, which needs 12V for erasing and programming, so CANNOT be programmed on-board. This EEPROM will work just fine with my patched SeriTek ROM, but must be removed from the board and programmed externally with an EEPROM programmer. You can replace this ROM with a 29 or 39 series EEPROM to restore on-board programming capability if desired.

2. The 24C02 EEPROM is only present in the Adaptec cards, and needs to be removed to restore correct Sil3112 device IDs needed for SeriTek ROM to execute. This will not be the case with any other card.

3. Most, if not all, cheap Chinese Sil3112 cards need to have this regulator replaced to fix sleep issues on Quicksilver. As stock it will still work, but cause sleep issues.

4. Any Sil3112 card will work, as long as the above is noted.
 

bigmessowires

Well-known member
I now have one of these Adaptec 1210SA SATA cards, and installed it in my Quicksilver. I was planning to remove the 24WC02 chip as described earlier, to give it the correct vendor/device ID, but I decided to check it first. When installed in my QS in the PCI slot furthest from the CPU, the SATA card doesn't even appear in the System Profiler PCI cards list under OSX 10.4.11. It shows my PCI SCSI controller card, but nothing else. Would this be normal for one of these cards prior to removing the 24WC02 or is it a problem? I expected the card to show up in System Profiler, but with the wrong ID bytes.
 

joevt

Well-known member
I now have one of these Adaptec 1210SA SATA cards, and installed it in my Quicksilver. I was planning to remove the 24WC02 chip as described earlier, to give it the correct vendor/device ID, but I decided to check it first. When installed in my QS in the PCI slot furthest from the CPU, the SATA card doesn't even appear in the System Profiler PCI cards list under OSX 10.4.11. It shows my PCI SCSI controller card, but nothing else. Would this be normal for one of these cards prior to removing the 24WC02 or is it a problem? I expected the card to show up in System Profiler, but with the wrong ID bytes.
Does the Adaptec 1210SA SATA card appear in Open Firmware?
 

bigmessowires

Well-known member
I'm not sure why the Adaptec 1210SA wasn't showing up in OSX System Profiler initially, but after flashing the card and disabling the 24WC02 EEPROM by lifting its VCC pin, now it's working.

Unfortunately I'm now running into the dreaded sleep problems with my G4 Quicksilver. The computer will go to sleep, and will wake up enough to turn on the fan, but the screen remains black and the computer is unresponsive. There's no way out except to reboot.

I've read the comments about sleep problems caused by voltage regulator issues, but I thought those were specific to the $10 Chinese black SATA cards. From other comments here, I thought the Adaptec 1210SA specifically was known to work in the Quicksilver. If anybody else is using this combination, does sleep work correctly and did you need to modify the voltage regulator? The 3.3V regulator is an ST LD33A and 1.8V regulator is ST LD18.
 

bigmessowires

Well-known member
I think I understand now. Those ST chips are LD1117's, it's just that the name is abbreviated when printed on the tiny chip. They have a dropout voltage of a little more than 1 volt, which is the problem. The replacement regulators that have been suggested like the MIC29150 have a lower dropout voltage like 220 mV. That is the important difference. Probably any 3.3V regulator in SOT-223 package with a low-enough dropout and correct pinout should work. The MIC29150 isn't actually the correct package, it doesn't fit the board and requires an ugly bodge. Unfortunately a brief search at DigiKey failed to turn up any regulators with the correct package, pinout, and dropout voltage.
 

bigmessowires

Well-known member
The voltage regulator surgery was successful! My Quicksilver now goes to sleep and wakes up normally with the SATA card installed.

For anybody reading this in the future, I recommend using the Diodes Incorporated AP7361C-33E voltage regulator, and not the MIC29150 that was suggested earlier. The MIC29150 will work, but it's the wrong size and the wrong package. The AP7361C-33E is an exact drop-in replacement, and it's readily available at electronics suppliers for 60 cents.

For making the Quicksilver sleep function work reliably, the important spec is the regulator's dropout voltage. It should be as low as possible. The MIC29150 has a 0.6V dropout voltage, and the AP7361C-33E has a 0.36V dropout voltage. The original regulator was a LD1117 with a substantially higher 1.3V dropout voltage, which is why it caused problems with Quicksilver sleep.

To summarize, here are all the steps required to get a SATA card in your PCI Mac:
  1. Buy an Adaptec 1210SA PCI SATA card for about $20 on eBay. The generic black PCI SATA cards probably work too, and are even cheaper.
  2. Disable the 24WC02 EEPROM chip on the card by lifting its pin 8 off the PCB, or just remove the whole EEPROM chip.
  3. Remove the LD1117 3.3V voltage regulator from the card (mine was stamped "LD33") and replace it with an AP7361C-33E. This is only needed for the G4 Quicksilver, you can skip this step if you have another type of PCI PowerMac or if you don't care about sleep functionality.
  4. Install the SATA card in your Mac.
  5. Download the flashing utility from here and run it under MacOS 9.
Enjoy your new 100 Mbyte/second disk I/O speeds!
 

absurd_engineering

Well-known member
Been following this latest development with interest, amazement, and gratitude — thank you, thank you, O legends of the hobby! 🙏

I've been able to flash an earlier SIIG card successfully, which uses a 39SF010 flash IC. Works perfectly.

I'm trying to duplicate the flashing process with a new, commodity SIL3112 card, which has an AMD AM28F010 flash IC, but getting an instant freeze when clicking the firmware update button in the patched Seritek utility. It recognizes the card, and finds the firmware, but locks up after displaying "Erasing".

I'm using a PowerTower Pro, second revision logic board, with a G3 CPU card, running 9.1. No other SIL3112 card installed.

The flash IC full markings are:

AM28F010
-150JC
0046ABA E
©1991 AMD

For me, and others following who would like to duplicate the flashing process, are there prerequisites for applying the patch that I'm overlooking, or something in my environment that's incompatible?

Many thanks, for all the hard work.
 
Last edited:

croissantking

Well-known member
I'm trying to duplicate the flashing process with a new, commodity SIL3112 card, which has an AMD AM28F010 flash IC, but getting an instant freeze when clicking the firmware update button

The AM28F010 chips can’t be flashed on the card - it’s been discussed earlier on this thread:

AM28F010 requires 12V for programming, so it can't be done on the card itself. It must be done externally using an EEPROM programmer, unfortunately.

You can either do this or replace the chip with something like an AM29F040. Either way, you’ll need to do some soldering.
 

absurd_engineering

Well-known member
The AM28F010 chips can’t be flashed on the card - it’s been discussed earlier on this thread:



You can either do this or replace the chip with something like an AM29F040. Either way, you’ll need to do some soldering.
Ah, OK. Sorry, missed that somehow when searching for the IC number. Oops. I have a programmer but...

The properly flashed card with the 39SF010 hangs my PT Pro before the OS loads anyway, so I suppose it's a lost cause.

Thanks. Fine work, in any case.
 
Last edited:

absurd_engineering

Well-known member
1. No need to replace Flash ROM on card in most cases, though some really cheap Chinese ones these days seem to be coming with AM28F010, which needs 12V for erasing and programming, so CANNOT be programmed on-board. This EEPROM will work just fine with my patched SeriTek ROM, but must be removed from the board and programmed externally with an EEPROM programmer. You can replace this ROM with a 29 or 39 series EEPROM to restore on-board programming capability if desired.

2. The 24C02 EEPROM is only present in the Adaptec cards, and needs to be removed to restore correct Sil3112 device IDs needed for SeriTek ROM to execute. This will not be the case with any other card.

3. Most, if not all, cheap Chinese Sil3112 cards need to have this regulator replaced to fix sleep issues on Quicksilver. As stock it will still work, but cause sleep issues.

4. Any Sil3112 card will work, as long as the above is noted.
Any insights into why a flashed SIIG 3112A card might cause a freeze on a PowerTower Pro (9500 based) before Open Firmware loads? The unflashed card did not, and flashed under OS 9 without issue.
 
Top