• 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.

Sil3112 Card in a PowerBook Pismo

uyjulian

Well-known member
Would be interesting to have a method to load or extract the EEPROM data such that it can be used at runtime. Might be interesting for quickly iterating on other PCI<->SATA bridge chips, virtio-blk or NVMe support also.
 

Phipli

Well-known member
Would be interesting to have a method to load or extract the EEPROM data such that it can be used at runtime. Might be interesting for quickly iterating on other PCI<->SATA bridge chips, virtio-blk or NVMe support also.
There are methods - the EEPROMs contain open firmware scripts that run during initialisation. This could be done from another card for example, or even from disk... But I don't know the subject matter at all.
 

dougg3

Well-known member
Slightly concerning that the device ID on the card is 5 characters though. Perhaps I can use some tool to modify them directly on the card? Sadly I can't find the Sil3112 datasheet, Google keeps returning an end user manual instead.

I just wanted to point out that I think the IDs are already correct -- the Vendor ID and Device ID in your picture are displayed in decimal for some reason. 4245 is 0x1095 and 12562 is 0x3112.
 

Phipli

Well-known member
I just wanted to point out that I think the IDs are already correct -- the Vendor ID and Device ID in your picture are displayed in decimal for some reason. 4245 is 0x1095 and 12562 is 0x3112.
Curses! I didn't expect them to be decimal. I was confused by the 5 characters and now it makes sense.

Right, that means the driver isn't for the Sil3112, must only work with the 3512.
 

joevt

Well-known member
I would use pciutils in Mac OS X to verify if the card has a ROM or not. Or you might see that info in ioreg. There's also lspci for Open Firmware. I've already mentioned these.

The ROMs we have for sil3112 do have Mac OS 9 and OS X drivers. For OS 9, it's an ndrv. For OS X, it's an mkext. You can get the hex for these from ioreg if you have a working sil3112. Convert the ndrv to an extension for OS 9. Extract the kexts from the mkext for OS X. I don't know if the kext and ndrv will be compatible with a cardbus version of the sil3112.

If you want to boot from the card without a ROM, then OF can probably be patched to load the ROM from a built-in disk. Even if you don't want to boot from it, it might be preferable to have OF load the driver into RAM instead of having to install the ndrv or kext.

The attached are from Feb 3, 2023. I don't know if any changes were made by @dosdude1 to these binaries or if all the changes were made only to the fcode or if any changes were made to these binaries afterward. You don't need the mkext. The kexts are extracted from the mkext using mkextunpack. The kext should be pretty easy to install. The ndrv might need some work to make Mac OS 9 load it (type? creator? cfrg resource? init?). Maybe see #351 -> #366
 

Attachments

  • Sil3112 ndrv kext mkext.zip
    149.3 KB · Views: 0

Phipli

Well-known member
I would use pciutils in Mac OS X to verify if the card has a ROM or not. Or you might see that info in ioreg. There's also lspci for Open Firmware. I've already mentioned these.
I'm really sorry joevt, but I've had a cursory look at the software you've linked before, and to the uninitiated... we'll, I'm just not clever enough to be confident that I can get the tools up and running, especially in a reasonable timeframe. It looks to be several layers of manually compiled, non-stock dependencies and having skimmed through what is needed and the available direction, I'm not confident that I can get everything working on my Pismo without messing up.

A binary would be absolutely great, but I suspect that a binary still wouldn't be an all inclusive package. I appreciate your direction with this sort of stuff, but I just don't confidently understand your instructions.

Faced with the number of hours I believe I'd need to spin your custom pciutils up, to verify if there is a ROM present, I can alternatively verify in the datasheet that there is no integrated ROM, and visually that there is no ROM chip (attached - 3114 is the closest I could find).
The ROMs we have for sil3112 do have Mac OS 9 and OS X drivers. For OS 9, it's an ndrv. For OS X, it's an mkext. You can get the hex for these from ioreg if you have a working sil3112. Convert the ndrv to an extension for OS 9. Extract the kexts from the mkext for OS X. I don't know if the kext and ndrv will be compatible with a cardbus version of the sil3112.

If you want to boot from the card without a ROM, then OF can probably be patched to load the ROM from a built-in disk. Even if you don't want to boot from it, it might be preferable to have OF load the driver into RAM instead of having to install the ndrv or kext.

The attached are from Feb 3, 2023. I don't know if any changes were made by @dosdude1 to these binaries or if all the changes were made only to the fcode or if any changes were made to these binaries afterward. You don't need the mkext. The kexts are extracted from the mkext using mkextunpack. The kext should be pretty easy to install. The ndrv might need some work to make Mac OS 9 load it (type? creator? cfrg resource? init?). Maybe see #351 -> #366
This is all absolutely amazing stuff, and the implications are that it may be possible to even boot from the card, loading the driver from disk with a nvramrc script (I forgot that later versions of OpenFirmware can actually read from HFS+ partitions).

I'm still at the same blocking point though, I don't understand the instructions. I really am sorry, and I don't want to seem stupid, but your guidance is intimidating to say the least.
 

Attachments

  • 20240329_151438.jpg
    20240329_151438.jpg
    890.5 KB · Views: 7
  • 20240329_151453.jpg
    20240329_151453.jpg
    555 KB · Views: 7
  • SII3114.PDF
    564.2 KB · Views: 1
Top