• 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

Phipli

Well-known member
Because of the recent developments regarding the Sil3112 by @dosdude1 @joevt and @cheesestraws, in particular the native flasher that supports smaller chips, when I spotted a cardbus Sil3112 card I was curious if it could be made to work in my Pismo.

I won't keep you waiting, it didn't :)

20230215_112147.jpg
I tried running the patched flasher, and it saw the card and offered to flash it, then froze at "Writing to offset: 0"
20230215_104429.jpg20230215_104424.jpg20230215_104446.jpg
20230215_104504.jpg
After waiting f or about half an hour just in case, (and possibly after damaging the stock firmware on the card) I booted into the OpenFirmware command line to see what I could see. Cardbus shows as a bridge chip and nothing loads past that. This is the same with my WiFi card, so I assume cardbus is dealt with after OpenFirmware passes over to the OS.

20230215_111334.jpg

Is this remotely possible? Can we get the Sil3112 to load on the Pismo? Even non-bootable would be useful for transferring files.

Any thoughts?
 
Last edited:

Phipli

Well-known member
As a side note, similar to the PM 6500 and friends, we once again have integrated ATi Rage graphics, this time a 128 of some description. Not sure if that is pertinent.
 

Phipli

Well-known member
Personally, I have no idea: my ignorance about the pismo is profound.
It's worth picking one up, they're like the 8600 or 650... just... stable and good. Boring, but reliable and useful.

It's my actual bridge machine when I use one. Has 1GB of RAM (cost me £9) and a DVD/CD writer. Ethernet, WiFi that supports modern stuff when booted in OSX, a 128GB SD card for a disk (about £5 for the adapter at the time), built in USB and FW. Only things it is missing are Serial and SCSI. I have a USB to serial adapter, but it doesn't support localtalk.
 

Phipli

Well-known member
More info :

20230215_114546.jpg
20230215_115353.jpg
So OS 10.4.11 sees the card's ids. OS9 is only seeing the CardBus bridge. I suspect this is OS9's system Profiler just not knowing about cardbus, as OSX shows the bridge under PCI devices.
20230215_115619.jpg
 

Phipli

Well-known member
I swapped the compact ROM into the OSX update utility just on the off-chance, but it doesn't see the card.

I have a PCI to CardBus adapter as a last thing to try hardware wise, but since that is a bit more faff, I'll hold off for other people to tell me not to bother.
 

Attachments

  • 20230215_122214.jpg
    20230215_122214.jpg
    400 KB · Views: 12

dosdude1

Well-known member
Because of the recent developments regarding the Sil3112 by @dosdude1 @joevt and @cheesestraws, in particular the native flasher that supports smaller chips, when I spotted a cardbus Sil3112 card I was curious if it could be made to work in my Pismo.

I won't keep you waiting, it didn't :)

View attachment 52413
I tried running the patched flasher, and it saw the card and offered to flash it, then froze at "Writing to offset: 0"
View attachment 52416View attachment 52415View attachment 52414
View attachment 52417
After waiting f or about half an hour just in case, (and possibly after damaging the stock firmware on the card) I booted into the OpenFirmware command line to see what I could see. Cardbus shows as a bridge chip and nothing loads past that. This is the same with my WiFi card, so I assume cardbus is dealt with after OpenFirmware passes over to the OS.

View attachment 52418

Is this remotely possible? Can we get the Sil3112 to load on the Pismo? Even non-bootable would be useful for transferring files.

Any thoughts?
This is happening because the SeriTek tool does not like the EEPROM on the card. The same occurred on normal PCI cards with certain EEPROMs when testing. You’ll need to flash via some other means, probably using Flashrom on a PC laptop with a PCMCIA slot.
 

Phipli

Well-known member
This is happening because the SeriTek tool does not like the EEPROM on the card. The same occurred on normal PCI cards with certain EEPROMs when testing. You’ll need to flash via some other means, probably using Flashrom on a PC laptop with a PCMCIA slot.
I'll check if I have a working Dell D630 still... and if it has cardbus.
 

Phipli

Well-known member
What's the version of Open Firmware?
Looks like 4.1.8f5, although mine has a firmware update applied, I believe machines that haven't been update might have... 2.1f1? That's from a forum, rather than first hand.
Can you telnet or serial port to it? Get a rom dump? lspci for Open Firmware?
I'll have to get back to you for the rest.
 

joevt

Well-known member
This is happening because the SeriTek tool does not like the EEPROM on the card. The same occurred on normal PCI cards with certain EEPROMs when testing. You’ll need to flash via some other means, probably using Flashrom on a PC laptop with a PCMCIA slot.
If Flashrom can work from a PC laptop, then it may be able to work from a Power Mac using DirectHW.kext. I've already made a Power PC version of DirectHW.kext to do PCI config accesses (used by pciutils). It might also be able to do memory mapping for reading ROM. So the next thing to do is to see how Flashrom can be updated on Power Mac to do the Sil3112 update.
 

joevt

Well-known member
I was able to compile my fork of flashrom using my forks of DirectHW and pciutils on macOS 12 Monterey.

pciutils:
make clean
make
sudo make install
sudo make install-lib (required for flashrom pci support)
sudo update-pciids

directhw:
make clean
make
make install (may require a restart in Big Sur or later after allowing in Security preferences panel)

I used homebrew to install flashrom and it's dependencies before trying to build my own fork:

flashrom:
ln -s /Library/Frameworks/DirectHW.framework/Versions/A/Headers DirectHW (required since framework wasn't being found even though it appears to have been installed correctly?)
make clean
make

flashrom make should be able to find these dependencies:
Code:
Dependency libpci found: yes 3.9.0
Dependency libusb1 found: yes 1.0.26
Dependency libftdi1 found: yes 1.5

libpci is used by 12 programmers, 407 internal pci chipsets, 622 mainboards, 25 mobile devices, 47 miscellaneous PCI devices (NVIDIA, Silicon Image, etc.), The one we care about is the satasii programmer for the Silicon Image SiI 3112 chip.

Next step is to see if flashrom can be compiled on Mac OS X 10.4 PowerPC. Maybe use Tigerbrew instead of Homebrew. Then we need to see if libpci needs to be changed to use a different access method for PowerPC Macs. The darwin3 access method works for config space accesses but we may need additional code for I/O accesses.
 

joevt

Well-known member
I was able to get everything compiled on PowerPC (Mac OS X 10.4 and Mac OS X 10.5).

Follow the TigerBrew install instructions, then install some formulae:

For Tiger (since make 3.80 is too old):
brew install make
This installs gmake. You'll want to create a make script that calls gmake and add the path to that to PATH. O you can simply rename the old make and copy gmake like this:
sudo mv /usr/bin/make /usr/bin/makeold
cp -P /usr/local/bin/gmake /usr/local/bin/make

For early macOS versions brew doctor tells you to update curl and git.
brew install curl git

For flashrom, you need the following:
brew install pkg-config libusb libftdi
You don't need to use brew to install flashrom since you'll be building that from my fork.

First you need to build my fork of pciutils and directhw as described in the previous post. Then you can build flashrom.

flashrom:
make clean
make
make install

Does it actually work? I don't know. Everything needed seems to be there. The question is, will flashrom successfully call DirectHW.kext and will DirectHW properly map the BAR of the PCI card and can flashrom then read or write the firmware?
sudo flashrom -p satasii -r satasii.rom
 

Phipli

Well-known member
I got curious and opened the case on the card. Confirmed it is a SIL3112, but there is no EEPROM, so it looks like it must be using no firmware or just a small built in flash area (do I remember it has one? Or am I thinking of another chip?). I'm guessing this means it isn't going to be possible to make it bootable, but can we soft load the driver from somewhere else?

1000017210.jpg
 

croissantking

Well-known member
I got curious and opened the case on the card. Confirmed it is a SIL3112, but there is no EEPROM, so it looks like it must be using no firmware or just a small built in flash area (do I remember it has one? Or am I thinking of another chip?). I'm guessing this means it isn't going to be possible to make it bootable, but can we soft load the driver from somewhere else?

View attachment 71507
This would be really interesting to get working. Curious that it doesn’t have a EEPROM chip.
 

Phipli

Well-known member
Does anyone remember how to edit the Mac OS X 3112 driver to recognise different VID PID combinations? I think I read it, but forget where. Or was that only for the 3512?

This card shows as...

1000017214.jpg

I guess it really should be 1095 and 3112 amusingly.

I'm proud to say I managed to disassemble and reassemble it without breaking it. It still plugs into my Pismo.
 

Phipli

Well-known member
So either an extension (Mac OS 9) or a .kext (Mac OS X)?
I'm not aware of any such extension for OS9, but some Silicon Logic chips work with a built in kext in OS X I half remember... Issue is I've sort of ignored OS X for about 10 years and haven't used PPC OS X hardly at all since it was current, so I don't have the depth of knowledge to know...

What kext it is
What SATA chips it supports
How to modify it with the correct VID / PID.

The last point... I'd possibly just guess if I knew which file it was, by searching for known valid VID/PIDs and YOLO editing them.

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