Writing to PCI registers before probe?

From: Mark Tranchant
Date: Tue Mar 02 2004 - 04:51:14 EST


I have an old Pentium 100 machine running 2.6.3, with onboard PIIXa controller. I'm trying to enable DMA, but the controller doesn't even recognize its own IDE interface. Here's the snipped output from lspci:

root@mauve:~# lspci
00:00.0 Host bridge: Intel Corp. 430FX - 82437FX TSC [Triton I] (rev 02)
00:07.0 ISA bridge: Intel Corp. 82371FB PIIX ISA [Triton I] (rev 02)
(other devices)

If I use setpci to write to an appropriate register, the device then recognizes its IDE interface if I tell lspci to do a direct access scan:

root@mauve:~# setpci -s 00:07.0 6a.w=0005
root@mauve:~# lspci -H 1
00:00.0 Host bridge: Intel Corp. 430FX - 82437FX TSC [Triton I] (rev 02)
00:07.0 ISA bridge: Intel Corp. 82371FB PIIX ISA [Triton I] (rev 02)
00:07.1 IDE interface: Intel Corp. 82371FB PIIX IDE [Triton I] (rev 02)
(other devices)

However, the bus has already been scanned, so a straight lspci gives the same results as before, and hdparm still can't turn on DMA. Compiling PIIX support as a module and insmoding after the setpci makes no difference.

I want to do the register write prior to the bus being scanned. I've seen solutions with older kernels, but the bus scan has been significantly re-written since then. Would anyone familiar with the 2.6 PCI subsystem kindly help me out here? This is a production server, so I don't want too much downtime experimenting.

Many thanks,

--
Mark.
mark@xxxxxxxxxxxxxxxxxx
http://tranchant.plus.com/


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/