Silicon Image SIL3112 Flashing: Easier Way Using flashrom

Compgeke

Well-known member
I've dug through the various threads both here and elsewhere on flashing these cards and found a bunch of different ways, some that work (like flashing the Wiebetech rom) and many that don't (like making the Seritek 1S2 ROM work). All of this is fun and all but the Wiebetech ROM is OS X only, no OS 9 support. 

After much playing around and planning to just flash the ROM with a proper programmer, I was reading through an old thread and found a reference to flashrom supporting SIL3112 cards. I decided to give that a try.

flashrom does in fact support these cards but it requires a ROM image of the actual size of the rom, no flashing the 130someoddK image of the 1S2. My cards I'm using have an AM29LV040B ROM factory, meaning flashrom threw a size error. Padding the ROM to 512K got me around this problem, and I've confirmed works!

So, here's a quick runthrough. First off, find a card with either a larger than 128K ROM (aka something that isn't an 010 ending). These socketed Silicon Image cards seem to have an 040, and there are some more of a similar style on ebay for $20.

0NK6X8Yl.jpg.a7f6d6ccb20e8c56ada1dd17e8179950.jpg


Next step is download the files I'll attach to this post and get them on a DOS boot disk. Run that and once booted type "flashrom --programmer satasii -w 1S2_512.ROM" and hit enter. This _will_ erase and flash the ROM on the card. If you want a backup of the original ROM first, type "flashrom --programmer satasii -r backup.rom" before the -w command.

Cc5ZdPCl.jpg.db1508645bbcf3ea41611ad6a8b8849c.jpg


Finally throw the card in a Mac and see what it does. I've had this work twice now, no problems at all, under OS 9 and OS X 10.4 and 10.5.

GRe9hDi.png.dedc08fa260a30d082a5c5fb42775531.png


6Dms3rZ.png.ed2fad106d5ccedc7c75d9bd1849e497.png


RW0MNrN.png.88ea3cddd5fbec8d2dd417b0c607d36b.png


3112_Flashing.zip

 

Attachments

  • 3112_Flashing.zip
    350.8 KB · Views: 277
Last edited by a moderator:

defor

You can make up something and come back to it late
Staff member
A few points:

  • SeriTek v5.0.7 actually fits on a 128kb ROM
    I need to get a spare 1megabit chip to test it with since all my 3112 cards came with 4megabit chips, but it should work fine on cards with a limited PCI boot ROM capacity.
    It's not particularly unstable and I've been running it on one of my machines for a few years now - the only real bug fixes between 5.0.7 and 5.3.1 are the following:
    ​5.0.8 - Fixes issue where drives incorrectly report 128GB 
  • 5.1.1 - Faster boot
  • 5.2.5 - [SIZE=10pt]Work around for Seagate drives 7200.9 and 7200.10 [/SIZE]
  • [SIZE=10pt]5.3.1 - Leopard wake on sleep fix. Possible issues with some G4 models.[/SIZE]
     

[*]I'm still not entirely sure how the SeriTek upgrader identifies the card, as it appears to be cross-checking the ROM payload with each PCI card's loaded firmware, and if there's no match, then it fails, but I've yet to be able to discern this exactly. I do believe that a proper OS9 flasher is the best solution however, moving forwards. Not everyone has easy access to a PC with traditional PCI slots after all.
 
[*]I've been poking around with the OS9 firmware upgrader and have made a proper upgrader to 5.3.1 since FirmTek didn't release it except for OS X for some unknown reason.It's attached below:

SeriTek1S2Flasher (5.3.1).hqx

 

Attachments

  • SeriTek1S2Flasher (5.3.1).hqx
    324.2 KB · Views: 129
Last edited by a moderator:

Bolle

Well-known member
If I am not mistaken you can not just use any Flash chip at least with the firmware from 5.1.3 and newer due to the built in check.

The chip should be one of those:

Pm39LV040
MX29LV040
Am29LV040B

 

defor

You can make up something and come back to it late
Staff member
If I am not mistaken you can not just use any Flash chip at least with the firmware from 5.1.3 and newer due to the built in check.

The chip should be one of those:

Pm39LV040

MX29LV040

Am29LV040B
This is correct- I've been pre-programming my chips with 5.0.7 using an external eprom programmer to, then I can either upgrading to 5.1.3 or 5.3.1, or just leave as-is.

 

Bolle

Well-known member
Mind sharing these firmware images above btw?

 
Last edited by a moderator:

defor

You can make up something and come back to it late
Staff member
Heh-- doing some testing, but offhand it's not going well- Still waiting for a proper 39LV010 to test with- tried with a 39F010, and card boots, shows correct firmware version and shows as a SCSI controller, but doesnt seem to want to actually work. strange as there's a proper termination 0x00 both at 128k and 512k, so maybe I missed something, but it looks like a viable dual-size ROM- might be something to do with using the 5V flash which should read right (clearly wont write)...

I'll share the ROM regardless, I just want to know what's going on either way before I post so as to not post any misleading info.

Also got a spare 3512 card in today to see if there's anything involving the configuration settings that can be used to allow to work bootable.

 

supernova777

Well-known member
SeriTek v5.0.7 actually fits on a 128kb ROM
can someone share this version of hte seritek firmware?
am i correct to think that this is only available to people who happen to have an early revision card with the firmware on the cards flash chip?

please share this version 

 

DerNuntius

New member
A few points:

  • SeriTek v5.0.7 actually fits on a 128kb ROM
    I need to get a spare 1megabit chip to test it with since all my 3112 cards came with 4megabit chips, but it should work fine on cards with a limited PCI boot ROM capacity.
    It's not particularly unstable and I've been running it on one of my machines for a few years now - the only real bug fixes between 5.0.7 and 5.3.1 are the following:


    5.0.8 - Fixes issue where drives incorrectly report 128GB 
  • 5.1.1 - Faster boot
  • 5.2.5 - [SIZE=10pt]Work around for Seagate drives 7200.9 and 7200.10 [/SIZE]
  • [SIZE=10pt]5.3.1 - Leopard wake on sleep fix. Possible issues with some G4 models.[/SIZE]
     

[*]I'm still not entirely sure how the SeriTek upgrader identifies the card, as it appears to be cross-checking the ROM payload with each PCI card's loaded firmware, and if there's no match, then it fails, but I've yet to be able to discern this exactly. I do believe that a proper OS9 flasher is the best solution however, moving forwards. Not everyone has easy access to a PC with traditional PCI slots after all.
 

[*]I've been poking around with the OS9 firmware upgrader and have made a proper upgrader to 5.3.1 since FirmTek didn't release it except for OS X for some unknown reason.
It's attached below:

SeriTek1S2Flasher (5.3.1).hqx
Can you share rom dumps from earlier versions?

 

macuserman

Well-known member
Bump on this request. Is anyone able to share the 128k version?
There is so much information floating around on the web for this, hack I wadded through a million forum posts and started taking my own notes to filter through all the crap, in the end I up buying several boards and some components to make some of my own and so far that seems to have worked. I need to make a post about what I have compiled that is more concise. The roms I have are from some actual sonnet cards I owned, and those have been working well for me. But I ended up rom swapping the cards I bought to make it all work.
 

acarteas

Member
There is so much information floating around on the web for this, hack I wadded through a million forum posts and started taking my own notes to filter through all the crap...
I agree. It's hard to find anything but the Wiebe drivers for OSX -- Like the OP, I'm trying to get something for OS 9. I have some no-name brand SIL3112 cards that I'm trying to flash. Please share whatever you have and I'll report back.
 

acarteas

Member
Ya, that's the more widely available 5.1.3 ROM, which is frustratingly 138k -- I double checked your download just to be sure. If only the programmers had been more efficient in their logic! @defor claims that 5.0.7 fits onto a 128K ROM but I haven't yet been able to find it. Thanks for sharing and trying!
 

acarteas

Member
That one appears to be a version of the Wiebe ROM. Based on the hex values, it does appear different than the Wiebi ROM that I currently have, so I gave it a try. Unfortunately, that ROM also appears to be OSX-only. Even though OS9 detects the card in System Profiler, it cannot detect a drive that was attached. Booting to OSX on the same machine worked fine. however.
 
Last edited:

macuserman

Well-known member
That one appears to be a version of the Wiebe ROM. Based on the hex values, it does appear different than the Wiebi ROM that I currently have, so I gave it a try. Unfortunately, that ROM also appears to be OSX-only. Even though OS9 detects the System Profiler, it cannot detect a drive that was attached. Booting to OSX on the same machine worked fine. however.
Why not just swap the rom to the bigger rom so you don't have to worry about it? That's what I ended up doing.
 

acarteas

Member
That would require me to desolder the existing 128k rom chip on the card and solder on a compatible 256k+ replacement. Doing so would be at the limit of my soldering capabilities. It's not out of the question, but it seems easier to just find a 128k ROM, especially since we know such a thing is available.
 

macuserman

Well-known member
That would require me to desolder the existing 128k rom chip on the card and solder on a compatible 256k+ replacement. Doing so would be at the limit of my soldering capabilities. It's not out of the question, but it seems easier to just find a 128k ROM, especially since we know such a thing is available.
Gotcha well if you get tired of waiting I am happy to do that for you if you need if you want to send me the rom and your board. That's what I did for mine, and seemed like it worked well.
 

acarteas

Member
Ya, I suppose I can give it a shot. I bought the cards off AliExpress for pretty cheap so no big deal if I break one. What ROM chip did you use?
 

macuserman

Well-known member
Ya, I suppose I can give it a shot. I bought the cards off AliExpress for pretty cheap so no big deal if I break one. What ROM chip did you use?
I used MX29LV040 one thing of note with this way I'm not sure if you can flash them with a flashing utility on the board when they are blank. You might be able to, but I preprogrammed mine with a flasher before soldering them onto the board first.
 
Top