[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

debian testing amd64 on inspiron 1501 - SB600 SATA controller

I hope this information will be interesting to the members of this list.

After having reported the installation a complete success, I started seeing some odd behavior during boot up over the next few days. 60-70% of the time the laptop would boot up normally and the other 30-40% of the time it would pause and give me repeating messages like:

ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: qc timeout (cmd 0xec)
ata1.00: failed to IDENTIFY (I/O error, err_mask=0x104)

then followed for about two minutes by

Waiting for root filesystem...

And then it would dump me to an (initramfs) prompt, presumably unable to mount the root filesystem, in my case /dev/hda2. The really odd thing is that if I rebooted the machine usually once or twice (never more than three times) it would boot up normally. Weird.

It seemed like this was being caused by some drivers that were in conflict for the SB600 controller?? The first seems to be the ide_generic or generic IDE driver and the second is the AHCI SATA driver. To complicate things further the AHCI SATA driver does not seem to work properly with the SB600 if MSIs are enabled.

So I compiled a new kernel based on the debian 2.6.18-4-amd64 kernel but without the following modules selected: ide_disk, generic, ide_generic (BLK_DEV_IDEDISK, IDE_GENERIC, BLK_DEV_GENERIC respectively in .config) I then booted with this kernel using pci=nomsi on the kernel command line. It found the SB600 controller ok but /dev/hda turned into /dev/sda. So back to the kernel command line and change the h to s in root=/dev/hdaX. (root=/dev/hda2 becomes root=/dev/sda2) pci=nomsi is still required. After this it booted up.

Then I just had to manually edit /etc/fstab and change the appropriate /dev/hdaX entries to /dev/sdaX so all the other partitions would mount properly. Seems to be working very well now.

I did not have this issue at all when I tested the i386 installation.

The SATA controller:
00:12.0 IDE interface [0101]: ATI Technologies Inc SB600 Non-Raid-5 SATA [1002:4380] (prog-if 8f [Master SecP SecO PriP PriO])
        Subsystem: Dell Unknown device [1028:01f5]
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 185
        I/O ports at 8438 [size=8]
        I/O ports at 8454 [size=4]
        I/O ports at 8430 [size=8]
        I/O ports at 8450 [size=4]
        I/O ports at 8400 [size=16]
        Memory at c0004000 (32-bit, non-prefetchable) [size=1K]
        Capabilities: [60] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 Enable-
        Capabilities: [70] #12 [0010]

The IDE controller which I believe is used for the CD drive:
00:14.1 IDE interface [0101]: ATI Technologies Inc SB600 IDE [1002:438c] (prog-if 8a [Master SecP PriP])
        Subsystem: Dell Unknown device [1028:01f5]
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 177
        I/O ports at <ignored>
        I/O ports at <ignored>
        I/O ports at <unassigned>
        I/O ports at <unassigned>
        I/O ports at 8420 [size=16]
Capabilities: [70] Message Signalled Interrupts: Mask- 64bit- Queue=0/0 Enable-

I have two questions:

1. How to disable the ide_disk, generic, ide_generic modules from the kernel command line rather than having to compile a new kernel?

2. How to disable MSIs for the SB600 SATA controller only? (Instead of the entire PCI bus)

Chris Jones

Reply to: