[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Correct IDSEL generation/identification.. ??




Hello Abraham,

>this IDSEL acts as a chip select for any one of
>various devices in the bus. in modern PCs, the IDSEL
>of the 1st device on the bus (which i believe means
>the 1st slot?? -- clarify if incorrect) is connected
>(/resistively coupled???) to AD16, 2nd to AD17 and so
>on...

The 1st device on the bus is not necessarily the first slot.  There are
typically several PCI devices on the motherboard itself in addition to the
slots.

>my doubt is: if we need to tell our target device to
>use a particular AD line as chip select for it, how do
>we know which AD line to tell it bcos this may change
>if we change the slot in which we put our pci card?
>won't our device work if placed on any other slot (ie,
>if it takes any other device number??) bcos the the
>logic for decoding the IDSEL is "burn"t inside the
>target device... say, we could tell our card to OK a
>config access if AD16 line is asserted. what if this
>card is put in the next slot? in this case it won't
>work.. it will work only if AD17 is asserted since
>this is the way that the H/PCI bridge generates IDSEL.

Your misunderstanding is that you seem to think that you should use the AD
signal directly to decide if a configuration transaction is targeted to
your device.  You do not use the AD signal.  You use the IDSEL signal.  So
it doesn't matter which slot your card is plugged into -- if the IDSEL is
active on a configuration address tenure, the transaction is for your
device.  This means also that your card will not have a fixed device
number.  The system software (and your device driver) will find out the
device number of your card by "walking the bus" doing config reads of the
device_id of all device number locations.  Your device driver will
recognize your card's device id and will then know which device number it
needs to talk to in order to access it.  I hope this helps.

Rich Iachetta
IBM Microelectronics Division -- Austin
System On a Chip / ASIC Development
Phone: 512-838-6305   Tie Line: 678-6305