Thread (68 messages) 68 messages, 8 authors, 2005-05-31

Re: Playing with SATA NCQ

From: Erik Slagter <hidden>
Date: 2005-05-29 17:46:13
Also in: lkml

On Sun, 2005-05-29 at 13:29 -0400, Jeff Garzik wrote:
On Sun, May 29, 2005 at 07:23:52PM +0200, Erik Slagter wrote:
quoted
On Sun, 2005-05-29 at 12:59 -0400, Jeff Garzik wrote:
quoted
quoted
My question was if there is a fundamental reason why the AHCI mode of
the ICH6/7 must be enabled by the BIOS, is there a reason why the kernel
doesn't do it, or can't do it?
The BIOS sets up PCI resources necessary to use AHCI mode.
Ok. So there's absolutely no way to do that afterwards? It'd really be a
pity :-(
It is technically possible.  BIOS is just software, just like the OS.

It's just a huge pain in the butt, because the kernel might accidentally
stomp on some resources the BIOS secretly set up, or somesuch.
Ah, ok. I wasn't aware of this large role of the BIOS in setting up
hardware, nowadays. Grmbl.
quoted
On the same subject: is there a reason why ICH6 gets "BAR0-3 ignored"
and always gets the legacy i/o ports and IRQ's assigned? I'd say there
is absolutely no need to be compatible in this way, the PCI code can
assign the IRQ and I/O ports as with any other PCI device?
IDE is special.

This is due to how the BIOS sets up an IDE PCI device in legacy mode.
BAR0-3 are set to zero, which is a signal to the OS that the IDE PCI
device is in legacy mode (io 0x1f0+0x170, irq 14+15).  Since the IDE I/O
ports are in ISA space not PCI space, the PCI BARs reflect nothing.
Goodie. So we will be stuck with MS/DOS compatibility until somewhere in
the next millenium.

I guess the only way to have, for example the ICH6, not using legacy
IRQ/ports, is to switch it to AHCI, which only the BIOS can do (if
implemented).

Thrilling.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help