[hw_random] device not detected/patch

From: Eric Van Buggenhaut
Date: Sun Jan 01 2006 - 19:08:16 EST


I run a TP42 with 2.6.14.2

One of the pci device is

0000:00:1e.0 0604: 8086:2448 (rev 81)
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=08, sec-latency=64
I/O behind bridge: 00004000-00008fff
Memory behind bridge: c0200000-cfffffff
Prefetchable memory behind bridge: e8000000-efffffff


discover sees it as a hw_random device

# grep 80862448 /lib/discover/pci.lst
80862448 bridge i810_rng 82801 Mobile PCI Bridge


and tries to load i810_rng module when support is really in hw_random:

# cat drivers/char/hw_random.c
[...]
static struct pci_device_id rng_pci_tbl[] = {
{ 0x1022, 0x7443, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_amd },
{ 0x1022, 0x746b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_amd },

{ 0x8086, 0x2418, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x2428, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x2448, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x244e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x245e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },

{ 0, }, /* terminate list */
};


device isn't detected though:

# modprobe hw_random
FATAL: Error inserting hw_random (/lib/modules/2.6.14.2n/kernel/drivers/char/hw_random.ko): No such device

hw_random: RNG not detected

Why wouldn't module detect the device ?


OTOH, pci.lst also lists device 80862430 as another RNG

# grep 80862430 /lib/discover/pci.lst
80862430 bridge i810_rng 82801AB PCI Bridge

but it's not listed in rng_pci_tbl[]

Does

--- drivers/char/hw_random.c.orig 2005-12-22 19:36:00.000000000 +0100
+++ drivers/char/hw_random.c 2005-12-22 19:36:16.000000000 +0100
@@ -155,6 +155,7 @@

{ 0x8086, 0x2418, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x2428, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
+ { 0x8086, 0x2430, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x2448, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x244e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },
{ 0x8086, 0x245e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_intel },

seem reasonable ?

Please CC me on reply

--
Eric VAN BUGGENHAUT
ericvb@xxxxxxxxxx
-
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/