PCI fundas

Hi all,

I want to know the PCI fundas

  1. How the PCI Buses are enumerated while booting linux?
  2. How it detects the Vendor ID,Device ID,etc., and make the device structure for various cards?
  3. What Happens if two or more same cards which are having same DEVICE ID,VENDOR ID,and SUB-SYSTEM ID connected to the slots.I mean to say, Are they having same IRQs,same IRQ_FLAGS(SA_INTERRUPT/SA_SHIRQ)?
4.In the prev case, Is kernel allocate any different adderss space for each (same kind of) cards ? Please reply me ASAP Thanks Rafi.
Reply to
linux_boy
Loading thread data ...

I'm not an expert, so maybe I'm wrong...

This is done by the BIOS before Linux is started. The configuration is stored in the CMOS RAM and if the configuration is changed by (un)plugging cards, interrupts, IO/Ranges and memory Ranges are redistributed.

Linux uses an API to ask the BIOS.

No IRQs memory and I/O ranges are distributed according to the request of the cards (they have a serial flash to that contains the requests (and DEVICE ID, VENDOR ID) ), separately for each card (addressed as bus-NR / Card NR).

The driver _should_ use the memory and I/O addresses assigned by the BIOS (though technically it _could_ use something else, but I doubt that this makes any sense).

-Michael

Reply to
Michael Schnell

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.