heres the datasheet on the sil3112
screenshots are an example of the 16 hex- bytes of the config string from the 3512 pdf
could this be a simple fix of correcting the vendor + device ids in the firmware?
max1zzz are u up for checking this out?? i think the very first thing to do would be to check the device id + vendor id
are matching up correctly for a 3512 vs 3112
observe that the setup for the string is structured slightly different depending on which type of memory the rom file is stored in
flash rom vs eeprom
also remember that dougg3 had said that this string is read *backwards* from the end of the file, back 1 by 1 hex byte (not sure if thats the proper reference) so its the last 16 characters of the rom file to look at... see dougs post here:
https://68kmla.org/forums/index.php?/topic/13557-sil3112-flashing-sata/?p=221554The last 16 bytes of the flash chip contain some configuration values for the Sil3112 according to the Sil3112 datasheet. It sets stuff like the PCI ID and some register options in the chip. It reads backwards from the end of the chip looking for these bytes (very last byte first, then second to last byte, and so on...):
0xAA (data signature) 0x55 (data signature) flash speed (0xAA = 120 ns, otherwise 240 ns) 0x55 (data signature) PCI device ID bits 23:16 PCI device ID bits 31:24 PCI class code bits 15:8 PCI class code bits 23:16 PCI sub-system vendor ID bits 7:0 PCI sub-system vendor ID bits 15:8 PCI sub-system ID bits 23:16 PCI sub-system ID bits 31:24 SATA PHY config bits 7:0 (default: 0xF1) SATA PHY config bits 15:8 (default: 0x80) SATA PHY config bits 23:16 (default: 0x00) SATA PHY config bits 31:24 (default: 0x00)
It's probably a good idea to ensure that string is at the end of the chip. Good call on doing that!
anyway
we need to compare like i said a working 3512 rom file.. (saved from a working 3512 card?) with the 1s2 firmware file
i think that these values are very important and that these values matching between the 3112a cards is the only reason why the firmware 'works' with only those cards.. because the device id + vendor id and/or other values is somehow matching up properly on these cards.. but on other non 3112a cards there is a slight mismatch... but if we can change these values to their correct values we might be able to realize having bootable 3512 / 3124 cards!!! enough 'shooting in the dark' we need factual intelligent information on how to fix this + configure these things correctly.. its not rocket science if u have the information regarding setup to cross reference.. then u change a few numbers + it works!
i will attach the 3124 pdf datasheet also
i found the filenames (but broken links) here
http://wiki.osdev.org/User:Quok/Silicon_Image_Datasheets14 12 0C 72
6F 6D 2D 72
65 76 69 73
69 6F 6E 01
this is the last string in the 1s2 rom of 16 'bytes' before it 'pads out' all zeroed blocks 00000000
so going by what dougg3 said, 73 69 would be the pci device id entries?
then 76 65 the pci class codes
then 72 2D the vendor id's
and then 6D 6F the subsystem id. etc etc
how do i convert these to normal digits
where is blitter when u need him LOL