SATA? In an old world PCI Power Mac?! IMPOSSIBRU! (Updated 11/22/23)

Nov 4, 2021
126
98
28
Tucson, AZ
Linux isn't going to fall for those OF shenanigans, OS9 probably will be so try flashing from there. Linux re-probes the PCI bus itself so it's going to pull up the 6112 ID again. I think that 6112 ID is a red herring. The main ID is still 3112, it's the subsystem device ID that's 6112 (aka RAID mode). Flashrom only checks the primary device id so being in RAID mode shouldn't be noticed.
Could be a bug in the satasii flashrom driver in void. A different distro might help but it probably wont. I'll try and get Linux on my G5 and see if I can reproduce your trouble
 
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
Linux isn't going to fall for those OF shenanigans, OS9 probably will be so try flashing from there. Linux re-probes the PCI bus itself so it's going to pull up the 6112 ID again. I think that 6112 ID is a red herring. The main ID is still 3112, it's the subsystem device ID that's 6112 (aka RAID mode). Flashrom only checks the primary device id so being in RAID mode shouldn't be noticed.
Could be a bug in the satasii flashrom driver in void. A different distro might help but it probably wont. I'll try and get Linux on my G5 and see if I can reproduce your trouble
Thanks for your suggestions. Unfortunately, flasher under OS9 is freezing the computer when clicking “update firmware”. I thought it was the B&W G3 but I just read someone having the same problem with the same card on a beige G3. I will try a Debian Linux on my G5, but I am not very optimistic either. Despite all the efforts of Dosdude1 for changing the chip properties to 3112, it is still recognized as a Raid card and not a Mass storage device…
 
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
Have you tried running flashrom with the verbose switch (-V, -VV or -VVV) to get more information? It's pretty specific.
yes I did, here is copy as attachment. If you can send yours also and doing sudo, it gives the details of "capabilities" , I will compare them this afternoon, but I have the impression that they are the same.
 

Attachments

  • IMG_2194.jpeg
    IMG_2194.jpeg
    230.4 KB · Views: 89
  • Like
Reactions: AirplaneHome.com

dosdude1

Tinkerer
Jan 10, 2022
18
32
13
Unfortunately, as flashrom does not recognized the card, the verbose is just one extra line with the built reference of flashrom
Have to try Debian, hopefully tomorrow
View attachment 11144
What EEPROM does your card have? It's come to my attention that the AM28F010 EEPROM commonly found on these cards is not supported by Flashrom. I'm not sure if this would be the cause of your issue, but could be. I have compiled a custom version of Flashrom for DOS with the necessary AM28F010 definition, and can do the same for PowerPC if needed. My custom DOS version can be found here: http://dosdude1.com/files/flashrom/flashrom-dos-am28f010.zip
 
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
What EEPROM does your card have? It's come to my attention that the AM28F010 EEPROM commonly found on these cards is not supported by Flashrom. I'm not sure if this would be the cause of your issue, but could be. I have compiled a custom version of Flashrom for DOS with the necessary AM28F010 definition, and can do the same for PowerPC if needed. My custom DOS version can be found here: http://dosdude1.com/files/flashrom/flashrom-dos-am28f010.zip
I have indeed the AM28F010. As I do not have a PC, I would really appreciate I you could compile a version for PowerPC.
 
  • Like
Reactions: AirplaneHome.com

dosdude1

Tinkerer
Jan 10, 2022
18
32
13
I can build and post a macppc Linux binary if dosdude1 posts the AM28F010 source diff.
Add the following to "flashchips.c" (I added this right after the entry for AM29F010):

Code:
    {
        .vendor        = "AMD",
        .name        = "Am28F010",
        .bustype    = BUS_PARALLEL,
        .manufacture_id    = AMD_ID,
        .model_id    = AMD_AM28F010,
        .total_size    = 128,
        .page_size    = 16 * 1024,
        .feature_bits    = FEATURE_SHORT_RESET,
        .tested        = TEST_UNTESTED,
        .probe        = PROBE_JEDEC,
        .probe_timing    = TIMING_ZERO,
        .block_erasers    =
        {
            {
                .eraseblocks = { {16 * 1024, 8} },
                .block_erase = JEDEC_SECTOR_ERASE,
            }, {
                .eraseblocks = { {128 * 1024, 1} },
                .block_erase = JEDEC_CHIP_BLOCK_ERASE,
            },
        },
        .write        = WRITE_JEDEC1,
        .read        = READ_MEMMAPPED,
        .voltage    = {4500, 5500},
    },

and the following to "include/flashchips.h":

Code:
#define AMD_AM28F010 0xA7
 

dosdude1

Tinkerer
Jan 10, 2022
18
32
13
Just looked into it a bit further, and unfortunately there's a chance Flashrom may not actually be able to program this EEPROM onboard, as apparently it requires 12V for erasing and programming (according to the datasheet). So AM28F010 may HAVE to be flashed externally with an EEPROM programmer.
 
  • Like
Reactions: AirplaneHome.com

dosdude1

Tinkerer
Jan 10, 2022
18
32
13
So unfortunately, after a bit more analysis, I found that there is no way the AM28F010 will ever be able to be programmed via Flashrom on the board, as the 12V signals are required in order to perform any commands on the device, such as writing, erasing, or even reading the chip ID. Not only does Flashrom not have any implementation for this, but it would be physically impossible to do, as the card has no 12V source, nor any provision to provide a 12V signal to the EEPROM when sending commands. The ONLY option here is to flash externally, using an EEPROM programmer that supports the chip.
 
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
I meant flashrom -VVV -p satasii. My spew is attached.
OK, I have now some progress on this.
I eventually bought a SIL 3114 card with SIL3114CTU and SST39Sf010A.
First bid disappointment, card not recognized with Flashrom voidLinux!

Decide to try on the G5 with Ubuntu 16.04 remix, and YES, it is recognized. Attached the verbose result.
I had to test again the SIL3112, and YES, the card is recognized BUT, as expected, the AM28F010 cannot be found as it is not in the list of the EEPROM that this version of Flashrom is checking for. Attached file with the result.

Before flashing the card, I want to be sure to have everything to pu tit back in its original configuration. But trying to read existing configuration with
sudo flashrom -p satasii -r satasii.txt
does give me a file which is almost empty, see attached file sil3114read.txt
What am I missing?

Thanks to all of you helping me to understand more what's going on with my tests and that a flashrom is not another flashrom!
 

Attachments

  • SIL3114G5LUBUNTU1604.txt
    19.8 KB · Views: 108
  • SIL3112G5LUBUNTU1604.txt
    24.5 KB · Views: 104
  • sil3114read.txt
    128 KB · Views: 71
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
So unfortunately, after a bit more analysis, I found that there is no way the AM28F010 will ever be able to be programmed via Flashrom on the board, as the 12V signals are required in order to perform any commands on the device, such as writing, erasing, or even reading the chip ID. Not only does Flashrom not have any implementation for this, but it would be physically impossible to do, as the card has no 12V source, nor any provision to provide a 12V signal to the EEPROM when sending commands. The ONLY option here is to flash externally, using an EEPROM programmer that supports the chip.
Unfortunately I have to agree with you. I checked my card and if the 12V signal is present on the PCI pin 2, the card does not have any connection with that pin. Waiting for the AM29F010 to replace the AM28F010, another challenge to replace a 32 pins chip, my first attempt! Attached pictures of the card so that you do not buy it!
 

Attachments

  • IMG_2082.jpeg
    IMG_2082.jpeg
    1.7 MB · Views: 80
  • Like
Reactions: AirplaneHome.com

dosdude1

Tinkerer
Jan 10, 2022
18
32
13
OK, I have now some progress on this.
I eventually bought a SIL 3114 card with SIL3114CTU and SST39Sf010A.
First bid disappointment, card not recognized with Flashrom voidLinux!

Decide to try on the G5 with Ubuntu 16.04 remix, and YES, it is recognized. Attached the verbose result.
I had to test again the SIL3112, and YES, the card is recognized BUT, as expected, the AM28F010 cannot be found as it is not in the list of the EEPROM that this version of Flashrom is checking for. Attached file with the result.

Before flashing the card, I want to be sure to have everything to pu tit back in its original configuration. But trying to read existing configuration with
sudo flashrom -p satasii -r satasii.txt
does give me a file which is almost empty, see attached file sil3114read.txt
What am I missing?

Thanks to all of you helping me to understand more what's going on with my tests and that a flashrom is not another flashrom!
The dump from the original Sil3114 card EEPROM looks correct to me; it's a binary file and not a txt file. You can always flash this back on if you have issues. I put copies of all the ROMs I've found, dumped, and/or modified over the years here: http://dosdude1.com/files/macstuff/PCISataROMs/ ...There is one for an Sil3114 card in there, but it will only work under OS X.

It's really unfortunate that they used the AM28F010 on these cheap Sil3112 cards, as ALL other cards I've seen use a 29 or 39 series EEPROM, which are flashable with 5V. Soldering a new EEPROM is not too difficult, but you'll need hot air to do so. Once a 29 or 39 series EEPROM is installed on the SIl3112 card, though, you should have no issues flashing simply using my patched SeriTek/1S2 OS 9 flashing utility.
 
  • Like
Reactions: AirplaneHome.com

Borgmac

Tinkerer
Dec 21, 2021
68
82
18
71
Richmond, KY
The dump from the original Sil3114 card EEPROM looks correct to me; it's a binary file and not a txt file. You can always flash this back on if you have issues. I put copies of all the ROMs I've found, dumped, and/or modified over the years here: http://dosdude1.com/files/macstuff/PCISataROMs/ ...There is one for an Sil3114 card in there, but it will only work under OS X.

It's really unfortunate that they used the AM28F010 on these cheap Sil3112 cards, as ALL other cards I've seen use a 29 or 39 series EEPROM, which are flashable with 5V. Soldering a new EEPROM is not too difficult, but you'll need hot air to do so. Once a 29 or 39 series EEPROM is installed on the SIl3112 card, though, you should have no issues flashing simply using my patched SeriTek/1S2 OS 9 flashing utility.
OK, found the way to get the binary file in HEX mode (xxd), content looks indeed OK.
So I used your 3114 flash file, worked like a charm!
Been able to startup G5 and G3 computers with only one SSD connected to the PCI to SATA card.
IMG_2230 (1).jpeg



IMG_2232 (1).jpeg

Of course, Quicksilver still refuses to boot, even until Open Firmware, but that's another story.
Thanks a lot for your help and the dedication to this type of project.
Thanks also to speakers and AirplaneHome.com, they put me back on the right track!