Re: 2.6.18-rc7-git1: AHCI not seeing devices on ICH8 mobo (DG965RY)

Robin H. Johnson
2006-09-16T20:53:53Z

[-- Attachment #1: Type: text/plain, Size: 2823 bytes --]

On Sat, Sep 16, 2006 at 01:38:12PM -0700, Robin H. Johnson wrote:
> Ok, I picked up some SATA hard drives now, and the AHCI driver DOES see them.
> However, it gets more interesting now.
>
> The board has 4 SATA ports.
>
> In the BIOS, all 4 of them work, and can start the bootloader from any
> of them.
>
> In the kernel, ONLY the first two ports work.
>
> The only thing I see on this, is that in my original dmesg, when the DVD
> drive was connected to the 4th port, and nothing connected on SATA1-3,
> SControl was 300 for 1/2 and 0 for 3/4.

I recompiled libata and AHCI using the ATA_DEBUG and ATA_VERBOSE_DEBUG
defines, and got an interesting trace.

In specific, look at port_idx 2/3, being all zeros in ahci_host_init.

I'm digging into it further now, but something makes me suspect that
base addresses for ports 3/4 are wrong.

Full file at:
http://orbis-terrarum.net/~robbat2/x86_64-mmconfig-failure/2.6.18-rc7-git1-libata-ahci-verbose-failure.dmesg

Initial portion:
libata version 2.00 loaded.
ahci_init_one: ENTER
ahci 0000:00:1f.2: version 2.0
ACPI: PCI Interrupt 0000:00:1f.2[A] -> GSI 19 (level, low) -> IRQ 193
ahci_host_init: cap 0xe320ffc3 port_map 0x33 n_ports 4
ahci_host_init: mmio ffffc20000018000 port_mmio ffffc20000018100
ahci_setup_port: ENTER, base==0xffffc20000018000, port_idx 0
ahci_setup_port: base now==0xffffc20000018100
ahci_setup_port: EXIT
ahci_host_init: PORT_CMD 0x6
ahci_host_init: PORT_SCR_ERR 0x4050000
ahci_host_init: PORT_IRQ_STAT 0x0
ahci_host_init: mmio ffffc20000018000 port_mmio ffffc20000018180
ahci_setup_port: ENTER, base==0xffffc20000018000, port_idx 1
ahci_setup_port: base now==0xffffc20000018180
ahci_setup_port: EXIT
ahci_host_init: PORT_CMD 0x6
ahci_host_init: PORT_SCR_ERR 0x4050000
ahci_host_init: PORT_IRQ_STAT 0x0
ahci_host_init: mmio ffffc20000018000 port_mmio ffffc20000018200
ahci_setup_port: ENTER, base==0xffffc20000018000, port_idx 2
ahci_setup_port: base now==0xffffc20000018200
ahci_setup_port: EXIT
ahci_host_init: PORT_CMD 0x0
ahci_host_init: PORT_SCR_ERR 0x0
ahci_host_init: PORT_IRQ_STAT 0x0
ahci_host_init: mmio ffffc20000018000 port_mmio ffffc20000018280
ahci_setup_port: ENTER, base==0xffffc20000018000, port_idx 3
ahci_setup_port: base now==0xffffc20000018280
ahci_setup_port: EXIT
ahci_host_init: PORT_CMD 0x0
ahci_host_init: PORT_SCR_ERR 0x0
ahci_host_init: PORT_IRQ_STAT 0x0
ahci_host_init: HOST_CTL 0x80000000
ahci_host_init: HOST_CTL 0x80000002
PCI: Setting latency timer of device 0000:00:1f.2 to 64
ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0x33 impl SATA mode
ahci 0000:00:1f.2: flags: 64bit ncq led clo pio slum part