Silicon Image SIL3112 Flashing: Easier Way Using flashrom

dosdude1

Well-known member
I have a huge update for you all. After many hours of reverse engineering, I was able to SUCCESSFULLY PATCH that SeriTek 1S2 ROM for the SIl3112 cards, allowing it to work with ANY 512K EEPROM! It functions just as it would with a "supported" EEPROM, working with and booting both OS X and OS9! The patched ROM image is attached. Please test, and let me know how it works!

IMG_2167.JPG
IMG_2166.JPG
IMG_2165.JPG
IMG_2164.JPG
 

Attachments

  • 1S2_512-patched.ROM.zip
    97.4 KB · Views: 119
Last edited:

dosdude1

Well-known member
I would still like to find the 5.0.7 version of this SeriTek ROM if possible, which apparently fits on a 128K EEPROM. That way I could patch this version as well, and it could be used on cards with 128K EEPROMs without having to swap the EEPROM.
 

Phipli

Well-known member
I would still like to find the 5.0.7 version of this SeriTek ROM if possible, which apparently fits on a 128K EEPROM. That way I could patch this version as well, and it could be used on cards with 128K EEPROMs without having to swap the EEPROM.
@defor seemed to suggest they had a copy?

I've never found it sadly, but perhaps I just didn't look hard enough.
 

max1zzz

Well-known member
Just tried it, seems to work fine :) Booted my 8600 into 8.6 from a SATA HDD from a card which now has a SST39SF040 installed
 

dosdude1

Well-known member
Just tried it, seems to work fine :) Booted my 8600 into 8.6 from a SATA HDD from a card which now has a SST39SF040 installed
Yes, awesome! If you can, try it in OS X as well... The OS X patch is completely separate from the classic Mac OS one, and was significantly more difficult. If OS X can mount a drive connected with the SST39SF040 ROM installed, it is properly patched as I intended.
 

Phipli

Well-known member
Just tried it, seems to work fine :) Booted my 8600 into 8.6 from a SATA HDD from a card which now has a SST39SF040 installed
Just to chip in... the SST39SF040 is one of the three supported chips

Edit - sorry, it might be the SST39LV040
 
Last edited:

max1zzz

Well-known member
Just to chip in... the SST39SF040 is one of the three supported chips 🤣
Really? I thought all the supported chips where 3.3v? The SST39SF0x0 series are all 5v chips (the LF are the 3.3v ones)

EDIT: Haveing dug through some old threads it looks like the AM29LV040B, PM39LV040 or MX29LV040 are the only supported chips by the stock firmware
Yes, awesome! If you can, try it in OS X as well... The OS X patch is completely separate from the classic Mac OS one, and was significantly more difficult. If OS X can mount a drive connected with the SST39SF040 ROM installed, it is properly patched as I intended.
I'll try it tomorrow, my 8600 was being very cranky and needs some attention.... Will grab the B/W G3 tomorrow and try it in that :)
 

Phipli

Well-known member
Really? I thought all the supported chips where 3.3v? The SST39SF0x0 series are all 5v chips (the LF are the 3.3v ones)
I thought these were the 5V chips that worked. It is why I have a tube of them.

20230124_214853.jpg

I can't remember if I have one installed on a 5V board though. Most boards are 3.3V
 

max1zzz

Well-known member
I thought these were the 5V chips that worked. It is why I have a tube of them.
From some old threads it seems the AM29LV040B, PM39LV040 or MX29LV040 are the only supported chips by the stock formware though I can't say I ever tried it on one of the SST chips
 

dosdude1

Well-known member
Really? I thought all the supported chips where 3.3v? The SST39SF0x0 series are all 5v chips (the LF are the 3.3v ones)

EDIT: Haveing dug through some old threads it looks like the AM29LV040B, PM39LV040 or MX29LV040 are the only supported chips by the stock firmware

I'll try it tomorrow, my 8600 was being very cranky and needs some attention.... Will grab the B/W G3 tomorrow and try it in that :)
Yes, only those 3 chips are compatible. I originally thought the AM29LV040 was not (as you can see by my testing picture), but looking at the code (control flow diagram of patched OS9 NDRV attached), you can see it checks for the ID of that chip (01 4F), as well as the IDs of the MX29LV040 (C2 4F) and PM39LV040 (9D 3E). The fact that it works now with an SST39SF040 is a great confirmation that my patch was actually successful.

Screen Shot 2023-01-24 at 12.02.01 AM.png
 

Phipli

Well-known member
From some old threads it seems the AM29LV040B, PM39LV040 or MX29LV040 are the only supported chips by the stock formware though I can't say I ever tried it on one of the SST chips
I've just got muddled - must have bought them for another project, or after finding (and perpetuating) a mistake somewhere else on the internet.

Sorry!
 

dosdude1

Well-known member
I have another absolutely MASSIVE update for you all... I was able to implement an LZSS decompression algorithm in the ROM, and use it to decompress a stored LZSS-compressed version of the OS9 NDRV. As such, the ROM has been reduced in size to UNDER 128K! This means that you can now flash it onto cards WITHOUT having to replace the original 128k EEPROM! Of course this image also includes my patched OS9 and OS X NDRVs that remove the EEPROM ID check. The updated ROM image is attached, along with my custom Forth LZSS decompression implementation. Hope you all enjoy!

IMG_2198.JPG
IMG_2196.JPG
IMG_2195.JPG
 

Attachments

  • 1S2-patched-stripped-compressed.ROM.zip
    102.7 KB · Views: 71
  • lzss-fcode.fth.zip
    36.1 KB · Views: 43
Last edited:

dosdude1

Well-known member
I updated the ROM by padding it out to 128K in size, that way it works properly with Flashrom.
 

Attachments

  • 1S2-patched-compressed.ROM.zip
    102.7 KB · Views: 78
Top