Problems enabling DMA using sis5513 chipset on Asus k8s-mx motherboard

Submitted by nothing
on March 25, 2005 - 4:06pm

For some reason I can't enable dma for my eide harddrive with this chipset. I was able to with last computer it was in (I forget which chipset it had, though). From google I was able to see that a few others encountered the same problem. Probably would be more but it is a relatively new motherboard and most people are using SATA drives nowadays. Unfortunately, none of the 2-3 hits I found on google provided a resolution to this issue so I thought I would ask for suggestions here.

So far I have tried multiple kernel configurations thinking that perhaps one of the generic drivers was conflicting with the sis5513 one, but that doesn't appear to be the case. I also tried disabling acpi, but to no avail. My kernel config, dmesg output and hdparm errors can be found here: www.mentalcases.net/dmaproblem. Thanks in advance for any help you can give.

Just for sure.

Anonymous (not verified)
on
March 25, 2005 - 5:17pm

make sure that all of Device Drivers -> ATA/ATAPI/MFM/RLL support -> *=y
Don't make the modules(*=M) in that section.

Anyway this is just my case. Good luck.

So...you're suggesting waste

nothing
on
March 25, 2005 - 5:26pm

So...you're suggesting I should waste my memory by adding a bunch of useless support for IDE controllers I don't even have to my kernel? I'm somehow skeptical that that will help.

If you bothered to look at the kernel config in that url, you would have noticed that I have everything added that would be necessary for an IDE harddrive to work, I believe.

# CONFIG_BLK_DEV_HPT34X is no

Anonymous (not verified)
on
March 25, 2005 - 7:48pm

# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_PIIX is not set

try these set 'y'

Why in the world would Highpo

Anonymous (not verified)
on
August 10, 2006 - 9:59am

Why in the world would Highpoint or Intel PIIX drivers help with a SIS chipset?

Sometimes BIOS must be reset to default

Anony Moose (not verified)
on
March 25, 2005 - 5:21pm

I had trouble with an ASUS board in Linux. Well, ASUS is not a big supporter of Linux in the first place. Google on that.

But I got one to work with both IDE and an SATA drive, but I had to set the BIOS so it would work, and I don't remember it all, but I remember I had to set it to some value that seemed wrong in order for it to work. There was some place in the CMOS BIOS settings where I had to put it back to the default for its handling of SATA and IDE. I don't have that computer here, I worked on it for someone else and it and its little motherboard book are gone.

My impression of that board was that it just barely worked on SATA and IDE, and if you tried another BIOS setting, it wouldn't work, but they put that other setting in the BIOS to make it appear that you might have that possibility, but you really didn't, because they couldn't get it working.

I don't know if this is your problem, but it fixed my problem with an ASUS ide/SATA board. Of course, ASUS doesn't support their onboard NIC and sound for Linux, and Linux wouldn't run them, so I ended up shutting the onboard sound and NIC off and putting in PCI cards. In general, for Linux, don't get ASUS.

Yeah, I had always heard good

nothing
on
March 25, 2005 - 5:36pm

Yeah, I had always heard good things about Asus but now I'm starting to regret it. I wish I had known of the poor support before I got it...

Luckily my sound works fine and so does my video. From other posts I've seen regarding the mobo, I'm pretty sure that when I manage to get a SATA drive I will be fine. Unfortunately I couldn't get the sis190 integrated nic to work either (made another post on here about it a couple of weeks ago), but luckily I have a usb-to-ethernet adapter that works fine.

I did try playing around with the bios settings a little but I didn't want to mess anything up. (I set it to 'UDMA5' that the drive should use instead of 'auto') and also tried setting something to 32bit, but I don't remember what it was, haha. I remember being fairly certain it would work, though and it didn't, hehe.

SOLUTION FOUND!

nothing
on
May 2, 2005 - 1:31am

Ok, it seems that for some reason, sis5513.c doesn't reference the product ID # for the sis5513 (go figure). Here is the code which specifies which IDs to look for (/usr/src/linux/drivers/ide/pci/sis5513):

/*
* Devices supported
*/
static const struct {
const char *name;
u16 host_id;
u8 chipset_family;
u8 flags;
} SiSHostChipInfo[] = {
{ "SiS745", PCI_DEVICE_ID_SI_745, ATA_100 },
{ "SiS735", PCI_DEVICE_ID_SI_735, ATA_100 },
{ "SiS733", PCI_DEVICE_ID_SI_733, ATA_100 },
{ "SiS635", PCI_DEVICE_ID_SI_635, ATA_100 },
{ "SiS633", PCI_DEVICE_ID_SI_633, ATA_100 },

{ "SiS730", PCI_DEVICE_ID_SI_730, ATA_100a },
{ "SiS550", PCI_DEVICE_ID_SI_550, ATA_100a },

{ "SiS640", PCI_DEVICE_ID_SI_640, ATA_66 },
{ "SiS630", PCI_DEVICE_ID_SI_630, ATA_66 },
{ "SiS620", PCI_DEVICE_ID_SI_620, ATA_66 },
{ "SiS540", PCI_DEVICE_ID_SI_540, ATA_66 },
{ "SiS530", PCI_DEVICE_ID_SI_530, ATA_66 },

{ "SiS5600", PCI_DEVICE_ID_SI_5600, ATA_33 },
{ "SiS5598", PCI_DEVICE_ID_SI_5598, ATA_33 },
{ "SiS5597", PCI_DEVICE_ID_SI_5597, ATA_33 },
{ "SiS5591/2", PCI_DEVICE_ID_SI_5591, ATA_33 },
{ "SiS5582", PCI_DEVICE_ID_SI_5582, ATA_33 },
{ "SiS5581", PCI_DEVICE_ID_SI_5581, ATA_33 },

{ "SiS5596", PCI_DEVICE_ID_SI_5596, ATA_16 },
{ "SiS5571", PCI_DEVICE_ID_SI_5571, ATA_16 },
{ "SiS551x", PCI_DEVICE_ID_SI_5511, ATA_16 },
};

---

One would assume that SiS551x would support the SiS5513 controller, but apparenlty this isn't the case. The device ID for the 5513 controller differs from that of the 5511 controller, so I have no idea why there is no entry for the sis5513. Anyway, I used 'lspci -n' and double-checked that against /usr/src/linux/include/linux/pci_ids.h. After that, I simply appended this line to the SiSHostChipInfo[] structure right after the entry for SiS551x:

{ "SiS5513", PCI_DEVICE_ID_SI_5513, ATA_16 },

It is really a simple solution and I'm surprised noone else has noticed/posted it before. Perhaps I'm missing something or something. All I know is that SIS5513 used to return -1 and now it seems to load properly and my DMA is now enable-able :).

Feel free to let me know if it worked for you, maybe it will be added to the kernel tree later or something.

Hi sinthetek, What a g

Anonymous (not verified)
on
May 12, 2005 - 12:52am

Hi sinthetek,

What a great solution that I search for centuries. It's even better put ATA_133 instead of ATA_16.

{ "SiS5513", PCI_DEVICE_ID_SI_5513, ATA_16 },

Gideon

Glad it was of use to you :).

nothing
on
May 14, 2005 - 1:05pm

Glad it was of use to you :). I will definately try that. I had thought of trying it when I first realized the problem but I don't know much about hardware and didn't wanna risk hurting the hd or mobo. I was just happy to get DMA to work at all, hehe.

Oh yeah, I just noticed a typo, too. Although I'm sure most wouldn't care, I will correct it now: "/usr/src/linux/drivers/ide/pci/sis5513" should read /usr/src/linux/drivers/ide/pci/sis5513.c

SiS5513.. more probs...

vinay (not verified)
on
June 6, 2005 - 10:28pm

yeah, ur hack works too good.. but has there been any progress about
this..

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
SIS5513: IDE controller at PCI slot 0000:00:02.5
SIS5513: chipset revision 1
SIS5513: not 100% native mode: will probe irqs later
^^^^^^^^^^^^^^
===> Seems like some resources of the IDE are still not
tapped..
SIS5513: SiS5513 ATA 133 (2nd gen) controller
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...

someone else suggested that i correct a line
if(trueid==0x5513) to if((trueid=5513)||(trueid==0x180))
for the above to work.. but looks like it doenst work...

No problem involved

farnz
on
June 7, 2005 - 12:23am

All "not 100% native mode: will probe irqs later" means is that the controller is in an ISA emulation mode when the BIOS hands over to the kernel; it has absolutely no effect on the performance of the controller, as Linux will switch it to PCI mode later.

Exactly hat u did

Vishalj (not verified)
on
January 11, 2006 - 9:14am

after u compiled it with that line.... what is ur bios option at this time.... can you give a step by step info

Thanks

Common driver practice

cushioncritter
on
May 19, 2006 - 6:00pm

Especially in the commercial world, device driver writers like to hard code a list of PCI ids that they have tested their driver on, that are "supported". Then, when a new chipset implements essentially the same interface, and a entity approaches them with "your driver doesn't work on new chipset XYZ", they get to collect several thousand dollars to add a new PCI id and recompile a new driver. Looks like this "commercial coding" habit may have been copied to the OSS world.

EDIT

nothing
on
September 20, 2006 - 9:12am

How the heck did I forget to state that you have to add the correct pci id to pci_ids.h? Wow, i'm glad it was still of use to some people though. For the record, you need to add "PCI_DEVICE_ID_SI_5513 0X5513" your /usr/src/linux/include/linux/pci_ids.h as well as editting sis5513.c as mentioned before in order for this to work.

I've resolved the problem in a different way

Googol (not verified)
on
July 27, 2005 - 10:31am

Hello,

I had also the same problem. I've an Asus P4S800D-X motherboard.

lspci confirms that it has the SiS 5513 IDE controller.

I've changed my /etc/modules to force the kernel to load the sis5513 module before the ide-* modules.

So, at the beginning I had the next lines in my /etc/modules:

ide-cd
ide-disk
ide-generic
lp
mousedev
psmouse

Now, I've added sys5513 at the beginning:

sis5513
ide-cd
ide-disk
ide-generic
lp
mousedev
psmouse

and it is working...

I hope this helps others...

windows 64bit doesn't install

CHANDLER (not verified)
on
May 18, 2006 - 1:22pm

i have amd athlon 3200+ 64 bit, asus k8n-mx motherboard, 80 GB sata hard disk. During installation of windows 64bit, it says 'windows logo test has been failed' please HELP!!!!!!!!

kernel bug

Marijn Schouten (not verified)
on
August 10, 2006 - 9:01am

I've filed a bug about this. It's at
http://bugzilla.kernel.org/show_bug.cgi?id=3511
Please comment there.

Apparently the automatic conv

Anonymous (not verified)
on
August 10, 2006 - 9:07am

Apparently the automatic conversion of URLs into links is bugged. One more try:

http://bugzilla.kernel.org/show_bug.cgi?id=3511

unrelated

nothing
on
September 20, 2006 - 9:01am

That bug is unrelated to this one. I was told when I submitted this fix to the LKML that it has already been fixed and stock kernels have worked on my system for some time now (although it appears they used some other means of fixing it than those I supplied)

thank you all, modprobe

Anonymous (not verified)
on
March 24, 2007 - 4:17pm

thank you all, modprobe sis5513 solved problem here, now I have full speed :)) from 1.33mb to around 30mb :))

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.