
I went to LowYat last Friday and got myself a PCI SATA Card. (I took a picture of the card, but seems like I’ve accidentally deleted it as I was organising my photos. Dang! And since the hardware is already installed it’s troublesome for me to get another picture of it.)
Here’s some shot of the Box and the Picture on the Box (:-)

The one which I got was the PCI SATA 150 Card

Since mine is just a measly celeron, I didn’t have a PCI express slot and had to settle with a 1.5GB/s bus. (So what!)
The price I paid was RM75 for this card which was based on a Silicon Image Sil3112 chipset which I scoured through the internet for list of compatible CARDs/Chipsets. (There wasn’t any 3114/3124 chipsets available, although there was VIA’s chipset available.)
I specifically chose this chipset because it was mentioned that it is supported under Linux, in addition to that it it also mentioned that it is now an Open Spec Chipset, which is always good especially when you run Linux, or any other open source program/distribution etc.
(There you see, manufacturers, us users are buying the hardware based on your open specs and if you support it under our operating of choice!)
Anyhoo, I bought it, took it home and proceeded to install it. (Boy, was I in for a heart attack!) In the beginning, it installed into the PCI Slot fine, the box booted up, but it would hang at the hardware detection stage! No amount of waiting will yield anything past that screen. I can’t even get into the card’s BIOS!
After multiple tries and moving the card to a different PCI slots an what nots, I finally went to search around in the Interweb for some workaround.
20mins later..
1st Try.. didn’t yield anything..
Back to the drawing board. I took another Hard Drive, this one was a 75GB SATA drive (10K RPM) and plugged it in. It worked!. So, now at least I was getting somewhere.
It seems that the new drive I was putting onto the SATA bus was just too huge for it to recognise. (the new drive was a 750GB SATA drive). It would detect the hard drive and the model number fine, but hang during the detection of the drive’s capacity.
Back to google.
Found this link...
Then I also found this link at the Silicon Image site.
The bios version on my card (out of the box) was 4.2.1.2 (IIRC) and the newer bios was version 4.2.83 (but, in it’s changelog, there was no mention at all of whether it fixes the capacity detection issue. Had to try anyway.) I figured that there was only 2 things which can happen.
1. I fry the Bios
2. It works
To start flashing the bios, I must tell you, is really not a simple job in this day and age. (you would think that it would really be very easy and a no-brainer, but you’ll be surprised!)
Newer PCs are not equipped with a Floppy drive and there’s no clear way of making a bootable floppy! What’s more, the bootable floppy must be running on DOS! This requirement makes things even more complicated, since Windows(tm) > 98/ME does not permit you to easily create a bootable floppy!
Your options are to use a Bootable USB or a Bootable CDROM.
The readme in the Silicon Image BIOS upgrade asks for users to download a copy of FreeDOS (A very old version I might add from the year 2004 IIRC). After reading through the howto on getting a bootable FreeDOS working either in USB or CDROM, I ended up more confused than I was enlightened. (I know how to use syslinux to make a bootable Linux USB, but not DOS.)
As in Linux/Open Source, there’s always more than one way to skin a cat. I googled further and found this other link. This link provides a step-by-step way to create a bootable CDROM (downloading the bootable floppy from bootdisk.com and getting this file.
Following the instruction went w/o any issues.
After copying the files r4283.bin and upflash.exe into the temp directory, proceeded to create the ISO.
BTW, if you’re following the instructions and you’re confused with the mkisofs command, here it is duplicated for brewity.
$ cd $WORKDIR $ mkisofs -o bootcd.iso \ > -b boot98c.IMA \ > -c boot98c.cat \ > ./boot98c.IMA
- -o bootcd.iso tells mkisofs the name of the ISO image.
- -b boot98c.IMA tells mkisofs where to find the bootable image to use.
- -c boot98c.cat tells mkisofs the name of the boot catalog file that a
bootable CD-ROM must have (you don’t have to create it because mkisofs creates it for you). - ./boot98c.IMA tells mkisofs what files to put in the ISO.
(I got confused because it referred to the IMA file as boot.IMA instead of boot98c.IMA)
2 min later I was down and meddling with the server.
Booted into the box with the CDROM and was dropped into an “A:” prompt.
Ran the command as the updflash.exe file states..
updflash r4283.bin
answered a few questions and then proceeded to pray to the Hardware Gods. (actually, i went to the toilet. Anything to distract myself in this critical times!!)
2 min later, I came back and found that everything was well.
Rebooted the box and was greeted with the new 4.2.8.3 version of the BIOS (whew!) and then it proceeded to detect the hardward, CooL! Recognised the drive as 695GB.
Booted into Linux fine!
a lspci -v churned this out..

(also in this picture, you’ll see that I also have an additional PCI IDE Card installed - also Silicon Image based chipset)
I modprobe the silicon image driver (sata_sil), formatted the drive (ext3) and we’re in business!!

Man.. it was lucky that it worked, else it would have been a long night...
ps: did I mention that I have another 750GB still as a spare??