Subject: compat/native?
To: None <port-ofppc@netbsd.org>
From: Toru Nishimura <locore64@alkyltechnology.com>
List: port-ofppc
Date: 12/03/2007 19:14:41
Frank Wille says;

> I have cleared the native-mode bits in the PCI-interface register, but
> the result is that the controller is dead, and no more drives will be found.

Let's summarize our unstandings first to talk further;

On compat mode the IDE HW uses legacy ISA address for register
control and emits legacy i8259 IRQs.  Some IDE HW can change
addresses and/or IRQs among predefined choices fiddling
proprietary knobs.

Native IDE HW can be "relocatable,"  which means multiple IDE cards
may be used in a single system.  To make possible IDE BARs must be
arranged as independent values by firmware (often mentioned as a
BIOS) at pre-booting stage.  A pair of pin-A and correctly chosen
line disignation makes sense only in this context if-and-only-if HW can
emit real PCI interrupt.

Now, some NetBSD ports have pci/pciide_machdep.c to divert the
compat case and the compat IDE HW is known working in legacy
mode, that is, with legacy register addresses and legacy i8259 IRQs,
14 for primary and 15 for secondary.

> there is simple solution (or hack) to make it work perfectly: whenever
> the native PCI interrupt handler for irq 14 is installed, I will additionally
> install the same handler for irq 15. Tested. Works fine!

Is it really "native PCI interrupt handler" in irq (vague term ...) 15/14?
If s/native PCI/legacy/, then your story makes all sense.  The IDE HW
is working as designed.

Toru Nishimura/ALKYL Technology