PCI Device Driver: Porting to 2.6 kernel

John Klingler john at jupiter.com
Thu Jan 26 22:31:09 UTC 2006


I am porting PCI fabric device drivers from the 2.4 kernel to 2.6. 
Although the driver finds the devices and calls exported pci core 
functions to attach and enable them, entries are not being made in the 
/proc/bus/pci/devices file.

The devices are accessed through a fabric bridge attached to a fabric 
switchcard on another chassis. The driver allocated bridge numbers 
arbitrarily starting at 80. Entries for accessing the device do get 
created in /proc/bus/pci:
ls /proc/bus/pci
00  01  02  03  04  05  06  07  08  81  82  83  devices
/proc/bus/pci/81: 00.0  01.0  02.0  03.0
/proc/bus/pci/82: 00.0
/proc/bus/pci/83: 00.0  01.0

However, corresponding entries are not being created in 
/sys/bus/pci/devices.

I might add, these drivers are production code that works on the 2.4 
kernel. Minor modifications had to be made for 2.6, e.g. some functions 
have been renamed and the read/write routines take a size parameter 
instead of having separate functions for 8, 16 and 32 bit operations.

I have not been able to locate the core code that makes the entries in 
the /proc/bus/pci/devices file or creates the device entries in 
/sys/bus/pci/devices.

Has anyone encountered these problems?

John




More information about the fedora-list mailing list