What if my SATA controller doesn’t see my new 1TB SATA hard disk?

First-generation SATA controllers have several problems getting along with newer SATA drives, among them: inability to negotiate transfer rate of the drive down from 3.0Gb/s to 1.5Gb/s, and failure to account for the large capacity of the drive (>527GB).  There is more information on this issue in this excellent post.

Unfortunately, it is difficult to tell which issue is being experienced when the BIOS merely locks up, or the controller locks up during drive inquiry and is invisible to the system thereafter. Assuming first that the problem persists under a newer version of the Linux kernel with the libata drivers mostly sorted out, there are several other potential compatibility fixes that do not involve buying and installing a newer SATA controller card that you are sure will work:

  • Add a jumper on the hard drive to limit hard drive speed to 1.5Gb/s
  • Use hard drive manufacturer’s tool to limit hard drive speed to 1.5Gb/s
  • Change other firmware settings or update the drive firmware
  • Update the SATA controller BIOS

The first two options will only fix speed autonegotiation problems. If your problem is related to the disk capacity, you will need one or both of the latter two options.

For the first option, you will have to find magic jumper settings from the drive manufacturer that limit the speed to 1.5Gb/s. These jumpers do not always exist, and from model to model they can vary.  On the newer Samsung Spinpoint F1 drives, they have only 4 pins instead of 8 pins, and the pins that are in the position where the speed-limit pins used to be on the 8-pin model no longer have that function!

For the second option, unfortunately, you will have to plug your drive into a different controller that is able to talk to the drive first, use the manufacturer’s utility to set the drive speed to 1.5Gb/s, and then replace it into the problematic system.  Some of these utilities have bugs.  For example, if you are installing a Samsung Spinpoint F1 with Samsung’s utility, for example, the options to change the transfer speed are exactly opposite how they are labeled! In the case of Samsung HD103UJ or HD753LJ drives, there is no speed-limit jumper and this tool must be used. (It may be preferable to use Samsung’s ES-TOOL instead, and select the option Set UDMA Mode, if this tool works with your controller.)

For the third option, you will have to find a firmware update program for your particular drive on the web. These are not always easy to find, probably deliberately. Creative use of Google will usually net some results. Also, some drives implement a Spread Spectrum setting that can be disabled, which is NOT the same as the Spread Spectrum settings in your BIOS.

For the last option, it is easier to do this if the controller is an add-in card. If the controller is on the motherboard, flash it with the most recent BIOS from the manufacturer. If the most recent BIOS from the manufacturer is several years out of date, you’ve got some work to do.

First, you need to figure out which particular controller is in your system. lspci can help you with this. Then you need to find some other manufacturer’s motherboard that has a more recent version of the controller BIOS. This can be determined with more creative use of google. Then you need to download that BIOS image, and use the Award BIOS CBROM utility with the “/pci Extract” option to extract the appropriate option ROM from the image. If you are not sure which one it is, extract all of them and use a hex editor to figure it out. Then, use CBROM again with the “/pci Release” option on the image you downloaded for your motherboard’s own BIOS to remove the old option ROM from it, and then use the /pci option to add the newer option ROM you extracted from the other BIOS into your own BIOS. Then flash this newly combined BIOS image using the normal procedure.

I was able to use this procedure to steal the VIA VT8237 (3149) option ROM from a Giga-Byte GA-VM800PMC, version 4.97 (the latest version I could locate, 237R497.rom), and insert it into a EPoX EP-8KRA2+ BIOS, replacing the VT8237 option ROM version 2.20 (6420R220.rom). This solved the size limitation that I was running into, and combined with using the Samsung tool to properly limit the drive speed to 1.5Gb/s, a Samsung 1TB drive is now happily running in the old 8KRA2 with the onboard VT8237.

Other things you can try are removing all PCI cards, changing the INT# line that the onboard SATA controller is connected to, changing PCI settings, trying a different SATA cable, etc. But if you have tried all these things and are still unable to get a VT8237 (VIA KT600) or older SIS southbridge to talk to, for example, a new 1TB drive, you may be out of luck.

36 Responses to “What if my SATA controller doesn’t see my new 1TB SATA hard disk?”

  1. casa says:

    Hi folks,
    I’ve the same EP-8KRA2+Mobo in my old desktop-pc and the same problem with a Samsung SATA HD103UJ with 1 Tb.
    After extracting the 237R497.rom from the Gigabyte GA-VM800PCM-BIOS (not GA-VM800PMC) I’ve seen that the size is 65536 Bytes instead of 59392 Bytes from the original 6420R220.rom. Also the Type is different, from the 237R497.rom it’s Type:4086, from the 6420R220.rom it’s Type:4087.
    I’m not sure what happens when inserting the larger 237R497.rom into the 8KRA2+ BIOS.
    Does anybody know?

  2. nemesis says:

    The minor differences between the BIOS should be fine. The CBROM utility packs the file into the BIOS image, so the original size does not matter much. Good luck, and please report if it works correctly!

  3. casa says:

    Okay nemesis, it worked fine for me!

    My Samsung HD103UJ with 1 TB is now known as SCSI drive in the BIOS of the old EPOX 8KRA2+. As you said, the size of the .rom doesn’t matter. The CBROM utility I used was 2.20, AWDFLASH in version 8.94 with options /cc /cd /cp /py /cks /R. If the BIOS should backuped during the flash operation, option /sy is recommended.
    Last but not least for everybody: It’s very highly recommended to have a BIOS backup or an appropriate OEM-BIOS and Flashtool on a bootable floppy before starting with the flash procedure!!!!
    In my work on the EP-8KRA2+ the first flash ended with message “successfully”, but on reboot I got a ROM checksum error. Don’t know what happened during the flash, the 2nd trial was ok and worked.
    Thanks for this article to nemesis, hope it’s also helpful for other people with the same problem.

  4. Charalampos says:

    Hello and congratulations for this great article. Well, I have an Asrock P4V88 motherboard and I have to add a new SATAII hard disk (Western Digital WD6401AALS). The problem is that the onboard SATA/RAID controller (VT8237) has a very old firmware (v2.20) and it can’t handle correctly the new HDD. It doesn’t even detect it during POST! In fact, it can only detect it if I use a jumper to limit the drive to SATA 150 mode. But even then, I can’t format the disk from Windows XP Disk Management console. So I have to update the controller’s firmware by modding the official BIOS of my motherboard.

    First of all, I want to report that I have already upgraded to the latest BIOS of my motherboard, which is v1.80. Unfortunately, there was no change in VT8237’s firmware, so it still remains to v2.20.

    In the past, I have made similar BIOS modding for two Award BIOS motherboards. I used CBROM to inject newer ROM modules of SATA controllers to official BIOS files. It was an easy and very interesting process. So I have some kind of experience.

    The problem is that now I have to deal with an AMI BIOS motherboard. I read some stuff on the Internet and I think that I have to use the MMTOOL v3.22 to replace the PCI Option ROM (DeviceID 3149) of the official 1.80 BIOS with a newer ROM, extracted from another BIOS. Personally, I used the VIA VT8237 option ROM from the GigaByte GA-VM800PMC, version 4.97 (237R497.rom).

    My specific problem is that when I am trying to make the replacement with MMTOOL, I receive the following error message:
    “Error!! ROM space isn’t enough. It exceeded D68h Bytes”.

    I hope that there is a solution for this issue. I need some help from more experienced people. It would be nice if someone could make the modding of BIOS 1.80 for me. I would like to have the version 4.97 for my SATA controller. Thanks!

  5. nemesis says:

    Can you delete some other useless option rom such as PXE that might be in the BIOS? It is also possible that the MMTOOL doesn’t automatically rearrange the option roms to fit. Therefore, if the VIA rom is in the middle of several other option roms and the newer image is bigger, it won’t fit. So in that case, try exporting all the option roms following the original place of the VIA rom, then add them back one by one!

  6. Charalampos says:

    Hello nemesis and thank you for your fast reply. Here is a screen shot of MMTOOL loaded with the official Asrock BIOS 1.80:

    Is it something that I can SAFELY remove? I don’t want to end-up with a dead motherboard. CBROM was very reliable in such replacements, I hope the same for MMTOOL!

    Also, here is another screen shot, after I made a successful replacement of module 3149 with the module 6420R241.ROM:

    If I am not mistaken, this is version 2.41 for my controller. This replacement was successful! The size of this file is 56 KB, while the size of 2.20 is 58 KB! I think that this is strange though, because newer firmwares are often larger. For example, 4.97 is 64 KB!

    First, I will try to flash my motherboard with this mod BIOS image and check if firmware 2.41 is loaded in VT8237. If it’s OK, I will try to search for newer ROM modules, for example 3.x.

    Can you tell me your thoughts about it?

  7. nemesis says:

    I’m not sure how reliable MMTOOL is, since I haven’t used it myself. You could get one of those cheap “BIOS Saver” things so that you have a good rom to easily boot from in case anything goes wrong. But I don’t foresee any problems with simply removing option rom modules and re-inserting them. This is something OEMs do on a regular basis, so the process shouldn’t even approach rocket science.

    Like you, I also don’t understand the wide variance in file sizes between the different versions of the VIA ROM. If you find a newer version, let me know and I’ll update the post to reflect that information. Good luck!

    Edit: I just noticed that it seems to be showing the PCI vendor (1106) and device ID (3xxx) in the right hand column for the VIA devices at least. That other VIA option rom that follows the SATA option rom is just the boot rom for the VIA integrated network adapter. Unless you use it, I definitely think you would be safe to remove it to make room for the newest SATA BIOS.

  8. Charalampos says:

    Hello nemesis and thank you for your fast reply. Basically, I have just updated my motherboard with the modded BIOS that has 2.41 firmware. Indeed, everything went fine and now I see the “VT8237 SATA RAID setup utility v2.41” during POST! So I am satisfied by this success!

    The problem is that nothing has actually change… No disk detection, unless I use the jumper to limit HDD in SATA150 (I would like this to happen automatically during negotiation) and even then the disk can’t be formatted (I can’t create a new partition). Disk capacity and temperature is normally detected by Speedfan and also the disk is reported in Device Manager. Is this a driver issue or a hardware problem? My “VIA RAID Controller – 3149” device has driver with date 10/07/2008.

    Also, I have found firmware version 4.31 which is 62 KB (not 64 KB like 4.97), but it doesn’t fit! I have to find a firmware for VT8237 that can fit in this small 256 KB BIOS image! I will ask in VIA forums about available ROM modules for this damn controller.

    PS: Your comment for my 1106:3065 PCI Option ROM was very interesting! Indeed, I have a “VIA Rhine II Fast Ethernet Adapter” device. I could possibly use a PCI network card and delete this module from my BIOS to make room for firmware 4.97, BUT IS IT REALLY SAFE? I don’t want to end-up with a dead motherboard.

  9. nemesis says:

    Even with the new VIA BIOS, I had to use the speed-limit jumper on the drive or else use the manufacturer’s software to limit the speed to 1.5Gb/s. I was told that there is no way to fix this because it is the limitation of the PHY of the VT8237, since it was made when 3.0Gb/s standard did not exist. Therefore, it is strange to me that your drive is even detected at all by Windows, since in my experience the drive would not negotiate a transfer speed at all.

    I believe you will have no problems removing the network boot ROM from the BIOS image, unless of course you boot from a network at any point. It is unnecessary for the normal operation of the integrated network adapter, so adding a PCI network card is unnecessary, the VIA integrated network will still work once the OS driver loads.

  10. DaRuSsIaMaN says:

    Hi nemesis! Thanks so much for this post! So I also want to use cbrom to deal with a motherboard possessing the VT8237 southbridge. I’ve already done this procedure successfully on a gigabyte ga-7n400 pro board, but that was much easier because it has a Silicon Image controller, and they actually offer the firmware right on their website. However, VIA is apparently a piece of crap company, by contrast, because I can’t find anything like that on their website, nor anywhere else.

    Anyway my question is, could there be compatibility problems with using the firmware for the VT8237R+ chip on a VT8237A chip? The gigabyte board you “stole” the firmware from uses a the later version chip, the VT8237R+. But my motherboard is only the earlier VT8237A chip. I believe your epox EP-8KRA2+ board also has the earlier version chip? Is this correct? I could not verify this fact because apparently the Epox website is the absolute shittiest, least professional-looking website I’ve ever encountered, and they for some reason wanted some kind of password/username to download the manual for that board…

    So, is your epox board’s chip the earlier VT8237A chip? Thank you!

  11. nemesis says:

    On the 8KRA2+ it’s only a VT8237 marked 0328CD, not VT8237A or VT8237R+. I think you’ll be fine.

  12. DaRuSsIaMaN says:

    Man I want to cry. It seems like the entire computer universe has conspired to screw me over…

    Why won’t MMTool open my BIOS? I followed Charalampos’s steps. The motherboard I want to work on is an ASRock K7Upgrade-880.

    In the overview it says it also has an AMI BIOS. In fact, the bios description is exactly the same as for Charalampos’s P4V88 motherboard; except for mine it says 4MB whereas for the P4V88 it says 2MB bios. I tried downloading the P4V88 bios, and it opened in MMTool just fine. I downloaded the bios for my board, and it won’t open! I tried a couple other ASRock bios-es, like for the KNF2-RAID, and they all work. Why does only mine not work?? Are there other tools to mod bios-es which might save me??

  13. DaRuSsIaMaN says:

    Ok nevermind, I think I can get it to work using MMTool 2.xx. Seems to be working so far using v2.22.1. It opens the k7Upgrade-880 bios. Haven’t done the modding yet, though. Sorry about bothering you.

  14. nemesis says:

    Let me know how it goes.

  15. DaRuSsIaMaN says:

    Hi again,

    Well, bad news… it’s not working. It’s so strange. I did the replacement using MMTool, and it flashes fine. But for some reason as soon as I flash it, the SATA utility stops working. When I flash the original bios of the same version, that is, the bios without any modification, it works. I tried it two ways in MMTool: one was to delete the rom and then insert the new rom; the second was to use the replace tab. Screenshot of the first way, the new PCI rom appears at the bottom of the list
    The second way, it appears in the same spot as where the original was:

    Either way, same result. What happens is during the boot process the SATA utility doesn’t ever show up. When I have the original bios in there, it shows up text that says some stuff related to SATA and that it’s V2.20, and that it checks both channels and finds no device on either channel. After I put in the modded bios, that screen never shows up at all. The boot process just completely skips over it.

    It’s so unreasonable. Why did it work for Charalampos? He has practically the same motherboard, except for Intel chip. Everything should be the same… His replacement worked fine… I just don’t get it 🙁

    Do you know why or what could be wrong? Thanks

  16. nemesis says:

    The only thing I can think of is that perhaps CMOS needs to be cleared because of the settings related to enabling onboard SATA. Perhaps the VIA ROM believes it has been disabled and skips itself entirely.

  17. DaRuSsIaMaN says:

    Ok well do you know for sure how to actually set a Samsung Spinpoint F3 1TB drive (model HD103SJ) to the SATAI standard using the jumper? You mention using the utility thing on it. But can it actually be done via jumper? The stupid Samsung website continues to point to a picture that has 8 pins (4 columns of 2). It’s so stupid. My HDD obviously has only 4 pins on the back (2 columns of 2).

    Someone on the VIA forums,

    told me that his 1TB drive works on an ASRock K7VT4A Pro motherboard without doing anything. I just extracted the ROM module and opened it with a hex editor, and it says it’s the same v. 2.20 as I have on my board natively. Really interesting…

  18. nemesis says:

    I was not able to do it via a jumper, only with a utility as mentioned above. The drawback with this is that it’s impossible to run the utility if your system doesn’t detect the drive or locks up during controller BIOS initialization due to drivesize bugs.

    Try doing a binary compare on the two BIOS to determine if they really are the same.

    I don’t think the assertion on the forums regarding the controller itself being incompatible with larger drivesize is correct. In my experience it was the BIOS code that was the problem. The issue with the controller itself is the SATA link speed issue.

  19. DaRuSsIaMaN says:

    Ok great news! This is a really long delay but I completely abandoned this whole project and re-focused on school, but now I have time again, so I finally figured it out!

    Actually, forget what I said in both my last posts, especially the one from April 10. The implanted module for version 4.97 of the VT8239 controller was working fine the entire time after I first flashed the modded bios! The only reason I thought that it didn’t work was because I still had not changed my HDD from sata II down to sata I. This 4.97 just behaves differently. I thought it was not working because, unlike the 2.20 version, I could no longer see any text during boot that mentioned anything about RAID or detecting the two sata channels. Well, as soon as I switched the HDD to sata I mode (with the help of a friend’s computer), the controller showed itself in its full glory. I see all the text during boot, and the drive works in every other respect, too. I installed WinXP on it a few days ago.

    So, the story of the ASRock K7Upgrade-880 motherboard is a success. Used the same source as you did (GA-VM800PMC mobo) for taking that 4.97 version of the controller’s bios. Had some stumbles trying to mod my motherboard’s bios, though, because the newest MMTool would not work with it. But using v. 2 did the trick. From there, just switched my Samsung HDD to sata I using ESTool.

    Thank you, nemesis!

  20. Aivaras says:

    Hi guys!
    I’m having similar problem as all of you – my PC’s motherboard can’t recognise SATAII hard drive. I was thinking about making a bios mod, but I don’t know anything about how to do this kind of stuff. So I’m here to ask if someone could make a mod for me?
    AsRock P4V88
    VT8237 controller
    Bios version 1.80

  21. DaRuSsIaMaN says:

    Hey Aivaras,

    I can’t make a mod for you but I assure you it’s not actually that complicated if you just follow the steps others have already done. nemesis has already done the hard work of finding the motherboard from which to steal a newer version of the VT8237 controller firmware. All you have to do is learn how to extract it and then how to implant it correctly into your own bios. Since that gigabyte motherboard uses an AWARD bios, you will need to use modbin to extract the module. Here is a simple guide for how to do that.


    Go through the whole thread, though, the bottom posts have updates. It also has additional links to further tutorials if you want to see those as well.

    The second step is to then implant that extracted module into your bios to replace the outdated module. Your motherboard uses AMI bios. For that, you will have to use MMTool, as I have done. You can see some guides to using MMTool here:

    But MMTool is actually easier than modbin, since it’s entirely GUI-based; no need for command line stuff. The important thing is to identify which module you will need to replace. You’ll know that just by identifying the vendor and device ID, which MMTool shows (this point was also addressed by Charalampos in the comments above). You can follow my own process of using MMTool in detail here:

    I am using alias WintersEdge, and I asked questions at each step of the way while using MMTool to get it done, so any questions you might have while trying to do the process will likely be answered already.

  22. Aivaras says:

    Hi DaRuSsIaMaN,
    thank you for this very helpful post. I’ve successfully replaced controller firmware with version 2.41 using MMTool and flashed BIOS. So this is good news. Bad news – HDD still isn’t working. And the worst thing is that I can’t use newer ROM version, because it doesn’t fit into BIOS image.
    I guess I’ll try to switch my HDD to SATA I using the utility you have mentioned ant maybe it will do a trick, because setting HDD to SATA I with jumper does nothing.

  23. nemesis says:

    Alvaras, what is your hdd model?

  24. Aivaras says:

    Hi nemesis,
    my HDD is Samsung HD502HJ (500GB/7200rpm/16M)

  25. nemesis says:

    Remember that the Samsung utility to change the drive transfer rate operates incorrectly as noted in the original post.

  26. Aivaras says:

    Great news! Finally, Samsung HD502HJ is properly recognized and working on AsRock P4V88 motherbord. Controller’s BIOS v.2.41 that I’ve used can be found in VIA website. It’s named SATA drivers version 3.00b or something like that and that package has seperate folder with BIOS .rom files. After upgrading BIOS, I’ve switched HDD to SATA I using ESTool and now everything working well.
    Thank you nemesis for this useful post, DaRuSsiaMaN for all the help and information and good luck to all guys who has similar problem.

  27. nemesis says:

    I knew if you kept trying you’d get it working. Thanks for providing more proof that it can be done!

  28. DaRuSsIaMaN says:

    Hi Aivaras. Great, I’m glad for your success! And also glad that I was finally able to give something back to the computing community after so many others have helped me get the job done 🙂

    That’s interesting, though, that you found the controller’s bios/module/whatever-you-call-it directly on the VIA website… That was the first place I tried looking, and I couldn’t find it! That’s why this post by nemesis saved me because otherwise I had no idea where to find the controller bios. I remember I went here but it’s just advertising basically:

    Just out of curiosity… where did you find it, more specifically?? I still can’t find it lol. I tried going to VIA home page, then Support > Drivers, then filling out the fill-in fields to lead me to SATA drivers. But those are just drivers that you need to provide when installing WinXP on an SATA HD. I checked the downloads but I don’t see the controller bios among the contents… am I blind lol?

  29. Aivaras says:

    Hi DaRuSsIaMaN. Funny thing that now I can’t find it on the VIA website too lol. So best solution is to google for “via vt8237 3.00b”. You should find .zip or similar archive (~7mb) named VIA_RAID_300b. Inside it is a folder named BIOS containing other three folders. Personally Í used bios rom from folder VT6420.
    Also you can try going to VIA drivers download page, selecting your OS to Win XP and after it shows results on the bottom right you should find link to older releases.
    Good luck. 😉

  30. MajorHealey says:

    Hi. I just bought a Samsung HD103SJ 1Tb SATA HD that I want to use with an old Asus A8V Deluxe. This thing doesn’t recognize the drive and after reading here I realize I have to change from Sata II to Sata I using the Estool from Seagate. How can I possible do this with the A8V mobo? I have no way to borrow a newer mobo with Sata II to do this change. Can I use the HD as an external drive and use EStool with the usb port?

  31. nemesis says:

    No, unfortunately you have to change the setting using a different controller card that negotiates the link speed correctly with the drive. But once you have changed the setting it will link up with the A8V controller correctly. Then you just have to worry about the potential issue of needing to upgrade the embedded SATA BIOS for the drive to be recognized correctly.

  32. MajorHealey says:

    Thanks nemesis. Could you please explain this potential issue you mentioned? How can I do the upgrading?

  33. nemesis says:

    The original post and other comments describe what needs to be done. You take a BIOS image from the motherboard manufacturer and a sufficiently new version of the VIA SATA controller ROM (which I had to extract from a different motherboard BIOS), then use the BIOS manufacturer’s utility to delete the existing VIA SATA ROM in your motherboard’s BIOS and replace it with the newer version you got. Then flash this modified BIOS to your motherboard and hope you did everything right 🙂 It should work as long as you are careful, and familiar with these topics.

  34. MajorHealey says:

    Thank you nemesis. I am comfortable flashing uncomplicated bios, but this might be just a little more than I can afford. But I have to do it so I will beg The Big Guy up there for a hand.

  35. FrankCZ says:

    Hi, I know this thread is dead, but maybe this post could be helpful for somebody nowadays. I just want let you know that I tried SATA 3Gbps and even SATA 6Gbps hard drives from WD (SATA II and SATA III native HDDs without any jumpers on) and it was perfectly working on my Asus K8V-VM vith VIA VT8237A southbridge, so this SB do supports the autonegotiation by itself. No flashing BIOS was needed. Among the other VIA chipsets also VT8237R Plus and VT8237S should do the trick. Nowhere on the internet I found this information so now it is clear.

  36. FrankCZ says:

    Next news guys! My native SATA III HDD from WD (320GB) also works on my obsolete ECS 760GX-M V3.0 mainboard with SiS 964 Southbridge (RAID BIOS version 1.06 in first released bios), hope this will help someone.

Leave a Reply