• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

I Just Ruined My SATA Card!!!

CC_333

68040
Hi,

I was doing a firmware update this morning on the SATA card in my G4, and the OS crashed. After that, I was able to restart using the drive attached to the card, presumably some sort of fail safe mode, but then I thought I'd restart using a drive which is separate (which was probably my fatal mistake), only to find the computer doesn't recognize it. It seems reasonable to assume that it could be fixed somehow, but I'm not sure what the procedure is.

Can anybody offer any assistance?

It's not a huge loss (the computer's still perfectly usable without it), but I spent $60 on the card, and I don't want it to go to waste if there's any possibility of recovery.

Thanks,

c

 
inb4 it is the drive that failed and the card is fine.

Either way, what card is it?

Can you dump it into a PC and use a DOS based flasher to clean up any potential mess?

Also, I think it is generally recommended to not use whatever card you are flashing as the boot device. I have never personally tested that but in the future I would suggest to go as barebones as possible for any flashing operations and that may even include a fresh OS install on a spare drive&built-in header or in a firewire enclosure or something.

Anyway, better luck next time.

If it is a Sonnet TSATA, check System Profiler for the card and try to reflash it with no drives connected to it. If it is unflashable in the Mac, you are going to need a PC and a copy of the firmware read from someone else's card... unless you want to try your hand at extracting it from the firmware update but there is something funky done to it and the operation is not as simple as it ideally could be.

 
Wait, so the drive running the OS was connected to the card you were flashing? What made you think that would work? That's like trying to put a new engine in your car while you're still driving it.

 
Is this an ebay card or was it new from OWC?

You might be able to call sonnet and just politely tell them what happened,

they might just swap it out for you?

 
Wait, so the drive running the OS was connected to the card you were flashing? What made you think that would work? That's like trying to put a new engine in your car while you're still driving it.
Yeah... I should've known. I wasn't awake and I momentarily lost my mind ::)
Is this an ebay card or was it new from OWC?
Neither. It was used off of Amazon, so I doubt I'll be able to get a replacement. And it's too late for a refund.
I think I'll try the put-in-PC-and-flash-there thing, if only I knew how.

Anyone care to lend a hand?

c

 
assuming it is a sil3112 or sil 3512 based card, you could try flasing it using the wibietech flasher, but replacing the included firmware with the on for your card

As long as the card can be seen by the system (but it dosen't have to work) it will flash the card, i used this to flash the sonnet firmware to a 3112 card with a larger flash chip installed (pulled of a pc mb, so it would have a seemingly junk firmware to the card)

It however, dose flash compleatley blindly, doing no checks to the firmware, so make sure you have the right one!

 
Yes, it is a Sonnet. A Tempo PCI I believe.

I checked System Profiler, and it still recognizes the card as a Sonnet something or other, but there aren't any drivers installed (presumably, that's because of the corrupted firmware).

If someone wants to help me out with the wibietech flasher, that would be excellent. I have the firmware flasher that I used (SeriTek1S2_513), I just need a way to extract the firmware.

c

 
If the card is still listed in system profiler as a Sonnet then you may want to try running the flasher recommended by Sonnet again, just make sure there are no drives connected to it.

If the flasher does not like the card, it will tell you. If it likes the card but fails at the same point as before you might consider safe mode or a fresh OS or something.

 
System Profiler (and presumably the system at large) sees the card, but the flasher utility doesn't. When I try launching it, it says "There is no card for this utility to update." Given this, I must assume that the utility somehow determines if there's a card it can flash by looking for something in the now non-existent firmware.

I'd be willing to send this card off to someone who knows what they're doing, if I fail all attempts at fixing it myself.

But keep the advice coming in! I might yet learn for myself how to fix it!

c

p.s. Is it possible to do a raw firmware write on the Mac by using the Terminal? Or perhaps Linux?

EDIT: I think I found the bare firmware file. It is 136 KB in size. Does this sound right?

 
Hi,

Well, I finally figured out the WiebeTech flasher- I need to use it in single user mode in order for it to properly detect the card. However, it doesn't appear to support it :( . It says there's unsupported ROM.

Is there a way to modify it to support my ROM?

If not, are there similar programs which would run on a Mac? S flasher from another vender, perhaps?

So close, yet so far...

c

 
Looks like the firmware is indeed a 138,752-byte file in the firmware updater program:

SeriTek1S2Flasher.app/Contents/Resources/ROMFILE.1S2

I'd try to help patch the flasher, but my PowerPC assembly skills are very, very limited. I wonder if it's possible to use a PC-based flasher to flash that file to the card? What does the ROM chip look like on the board? Is it socketed, or (more likely) a chip soldered to the board?

 
I have the same findings.

It should theoretically be possible to flash it to the card using a PC flasher, but it doesn't take for some reason.

The ROM chip is soldered to the board. I can take a picture of it for you if you like.

I think the file might be encoded somehow, because it seems a wee bit too big (I think it's supposed to be 128K, yet the file is actually 136K).

Yay! Progress!!

c

 
Yeah, you'd probably think it would be a power of 2 in size. But then again, Mac firmwares have been known to be bigger than their PC counterparts. I'd be curious to know the size of the flash chip on the card. Can you take a picture of it and/or type the markings on it into here? If it's 128KB in size, then we'd know for sure :-)

When I run the "file" command on the firmware file, it tells me:

ROMFILE.1S2: BIOS (ia32) ROM Ext. (64*512)

What does the PC flasher do when you try to flash it? Also which PC flasher did you try? I've found UpdFlash and SiFlashTool on the Silicon Image website. SiFlashTool seems simple enough to figure out because it's a command line utility. I have to be honest -- I'd have more luck figuring out how to patch the WIndows flasher to force it to work than the OS X flasher, simply due to my lack of experience disassembling PowerPC assembly, and I have access to some nicer disassembly tools that don't work with PowerPC.

 
But then again, Mac firmwares have been known to be bigger than their PC counterparts.
Part of the size of the Sonnet firmware, I suspect, is that it has to include SCSI Toolbox emulation in order to allow booting of pre-OS X systems. By comparison, the smaller WiebeTech firmware just has to set up the OpenFirmware correctly in order to pass control to the OS X driver.

My limited experience with the DOS flasher was that it may require padding the image out to a size which is a power of two (or possibly a multiple of 128kb). That's what ahppended for me when I used it to flash the Wiebe firmware on a cantankerous card.

 
The codes on the chip are:

MX 6041850

29LV0400C-70

2E957500

TAIWAN

I hope this helps.

I used SI's UPDFLASH.EXE to flash the card, by the way. It seems to be working with the card, but the program doesn't like the Mac firmware I'm trying to give it (even though it doesn't complain, it seems to write it wrong, resulting in a corrupt ROM on the chip).

I don't care how we get it done, I just want it done!

c

 
29LV040 is a 4 megabit (512 KB) chip, so it's definitely conceivable that the ROM is actually bigger than 128 KB. (Does it really say 29LV0400? I can't find many references to that, but plenty to 29LV040)

In particular, this is probably the datasheet for the chip you have:

http://www.100y.com.tw/pdf_file/MX29LV040QC-70.pdf

or this:

http://www.zlgmcu.com/mxic/pdf/NOR_Flash_b/MX29LV040C_DS_EN.pdf

Weird that the Windows flasher is acting like it succeeds, not much I can really do in that case then. The only other thing I can think of is maybe we could patch the WeibeTech flasher to recognize that particular flash chip...flash chips generally always talk using the same JEDEC protocol, so it's kind of interesting that they limit it to only work with certain chips. You can read a manufacturer and a chip ID from most flash chips, so that might be what it's restricting itself based on.

In particular this chip identifies itself as manufacturer 0xC2 and device 0x4F.

 
Well, I tried to figure it out, but my PowerPC assembly skills just aren't good enough to know for sure, and I don't have the fancier tools that I have available for x86 and 68k (instead, I'm stuck using otool for disassembly, which is icky).

As far as I can tell, there's something in the WiebeTech kext that reads the manufacturer ID of the chip and doesn't accept it as a valid chip to flash if it's not SST, Winbond, Atmel, or a couple of others. Yours is Macronix. It might be possible to replace SST's ID (0xBF) with Macronix's ID (0xC2) where it checks for the ID to fool it into thinking it's an SST chip, which is at offset 0xAB3 into the kext's binary file (WiebeSATA3112Flash.kext/Contents/MacOS/WiebeSATA3112Flash)

You could definitely try making that change with a hex editor if you want. I don't know for sure if it checks the device ID as well, so it might still fail the check (in which case someone will have to take a deeper look at the disassembly). I also take no responsibility if this bricks something, because it's essentially a shot in the dark :-) But Macronix's chip should definitely support the same JEDEC protocol that would be used when talking to the SST chip.

I'll be happy to take credit if it somehow works though! ;-)

 
Back
Top