PCI Auto Config - How does it work? - VxWorks

This is a discussion on PCI Auto Config - How does it work? - VxWorks ; Hello, I am a PCI newbie and I am trying to understand PCI Auto Configuration and device enumeration. I am using Vxworks 6.x and a PPC board. Here is the scenario ... I insert a custom card and the other ...

+ Reply to Thread
Results 1 to 10 of 10

Thread: PCI Auto Config - How does it work?

  1. PCI Auto Config - How does it work?

    Hello,

    I am a PCI newbie and I am trying to understand PCI Auto Configuration
    and device enumeration. I am using Vxworks 6.x and a PPC board. Here
    is the scenario ... I insert a custom card and the other previously
    recognized card disappears from the list of devices (after I execute
    one of the PCI show commands). I remove the custom card and the old
    cards reappear. What could be causing this strange behavior? How does
    PCI Auto Config work? What would cause it NOT to work?

    Also another question ~ Is the order of devices in PCI slots
    important? I understand that slower cards can affect the others? What
    is the meaning of this?

    Regards,
    Xavi


  2. Re: PCI Auto Config - How does it work?

    On Nov 11, 4:04 pm, xama...@yahoo.com wrote:
    >
    > I am a PCI newbie and I am trying to understand PCI Auto Configuration
    > and device enumeration. I am using Vxworks 6.x and a PPC board. Here
    > is the scenario ... I insert a custom card and the other previously
    > recognized card disappears from the list of devices (after I execute
    > one of the PCI show commands). I remove the custom card and the old
    > cards reappear. What could be causing this strange behavior? How does
    > PCI Auto Config work? What would cause it NOT to work?


    It sounds like you need a PCI bus analyzer and some time with your H/W
    engineer. I doubt a deeper understanding of auto configuration, which
    is
    worthwhile knowing, is going to nail this problem. Suspect the custom
    card of violating PCI spec in some way.

    > Also another question ~ Is the order of devices in PCI slots
    > important? I understand that slower cards can affect the others? What
    > is the meaning of this?


    AFAIK, this has nothing to do with slot order. If a 33Mhz card is on
    the same
    bus as a 66Mhz capable card, the entity that controls the PCI bus
    clock will
    use 33MHz..

    HTH
    GV


  3. Re: PCI Auto Config - How does it work?

    On Nov 12, 4:20 pm, gvarndell wrote:
    > On Nov 11, 4:04 pm, xama...@yahoo.com wrote:
    >
    >
    >
    > > I am a PCI newbie and I am trying to understand PCI Auto Configuration
    > > and device enumeration. I am using Vxworks 6.x and a PPC board. Here
    > > is the scenario ... I insert a custom card and the other previously
    > > recognized card disappears from the list of devices (after I execute
    > > one of the PCI show commands). I remove the custom card and the old
    > > cards reappear. What could be causing this strange behavior? How does
    > > PCI Auto Config work? What would cause it NOT to work?

    >
    > It sounds like you need a PCI bus analyzer and some time with your H/W
    > engineer. I doubt a deeper understanding of auto configuration, which
    > is
    > worthwhile knowing, is going to nail this problem. Suspect the custom
    > card of violating PCI spec in some way.
    >
    > > Also another question ~ Is the order of devices in PCI slots
    > > important? I understand that slower cards can affect the others? What
    > > is the meaning of this?

    >
    > AFAIK, this has nothing to do with slot order. If a 33Mhz card is on
    > the same
    > bus as a 66Mhz capable card, the entity that controls the PCI bus
    > clock will
    > use 33MHz..
    >
    > HTH
    > GV


    I suspect your custom card is not getting properly mapped to PCI
    memory map during auto conficguration.

    Tell me wheter ur custom card alone working fine?

    The custom card and the other PCI device are conflicting their memory
    map whenever you are calling autoconfig function.

    Did you used any static memory configuration of the card before using
    the autoconfig?


  4. Re: PCI Auto Config - How does it work?

    On Nov 12, 4:51 am, Nabendu wrote:
    > On Nov 12, 4:20 pm, gvarndell wrote:
    >
    >
    >
    > > On Nov 11, 4:04 pm, xama...@yahoo.com wrote:

    >
    > > > I am a PCI newbie and I am trying to understand PCI Auto Configuration
    > > > and device enumeration. I am using Vxworks 6.x and a PPC board. Here
    > > > is the scenario ... I insert a custom card and the other previously
    > > > recognized card disappears from the list of devices (after I execute
    > > > one of the PCI show commands). I remove the custom card and the old
    > > > cards reappear. What could be causing this strange behavior? How does
    > > > PCI Auto Config work? What would cause it NOT to work?

    >
    > > It sounds like you need a PCI bus analyzer and some time with your H/W
    > > engineer. I doubt a deeper understanding of auto configuration, which
    > > is
    > > worthwhile knowing, is going to nail this problem. Suspect the custom
    > > card of violating PCI spec in some way.

    >
    > > > Also another question ~ Is the order of devices in PCI slots
    > > > important? I understand that slower cards can affect the others? What
    > > > is the meaning of this?

    >
    > > AFAIK, this has nothing to do with slot order. If a 33Mhz card is on
    > > the same
    > > bus as a 66Mhz capable card, the entity that controls the PCI bus
    > > clock will
    > > use 33MHz..

    >
    > > HTH
    > > GV

    >
    > I suspect your custom card is not getting properly mapped to PCI
    > memory map during auto conficguration.
    >
    > Tell me wheter ur custom card alone working fine?
    >
    > The custom card and the other PCI device are conflicting their memory
    > map whenever you are calling autoconfig function.
    >
    > Did you used any static memory configuration of the card before using
    > the autoconfig?


    The custom card seems to interfere (disable) the other two cards ...
    It CAN be seen when I do a show command ... Can you elaborate on auto-
    configuration and the PCI memory map ~ how can this be screwed up. I
    might very well need a PCI bus analyzer but I have an understanding
    that this card has worked in some incarnation or another and that it
    should be a configuration issue.

    Anymore explanations that could help me identify or rule out issues
    would be good.

    Thanks ...


  5. Re: PCI Auto Config - How does it work?

    On Mon, 12 Nov 2007 03:20:23 -0800, gvarndell wrote:

    > On Nov 11, 4:04 pm, xama...@yahoo.com wrote:
    >>
    >> I am a PCI newbie and I am trying to understand PCI Auto Configuration
    >> and device enumeration. I am using Vxworks 6.x and a PPC board. Here is
    >> the scenario ... I insert a custom card and the other previously
    >> recognized card disappears from the list of devices (after I execute
    >> one of the PCI show commands). I remove the custom card and the old
    >> cards reappear. What could be causing this strange behavior? How does
    >> PCI Auto Config work? What would cause it NOT to work?

    >
    > It sounds like you need a PCI bus analyzer and some time with your H/W
    > engineer. I doubt a deeper understanding of auto configuration, which is
    > worthwhile knowing, is going to nail this problem. Suspect the custom
    > card of violating PCI spec in some way.
    >
    >> Also another question ~ Is the order of devices in PCI slots important?
    >> I understand that slower cards can affect the others? What is the
    >> meaning of this?

    >
    > AFAIK, this has nothing to do with slot order. If a 33Mhz card is on the
    > same
    > bus as a 66Mhz capable card, the entity that controls the PCI bus clock
    > will
    > use 33MHz..
    >
    > HTH
    > GV


    I agree
    One possibility for what's being observed is that the added card's
    configuration header is such that it consumes all of the available memory
    space and subsequent cards cannot be enumerated. Can you provide the
    community with the output of pciDeviceShow for all busses and identify
    the Vendor and Device ID of the card you're adding? Even better would be
    a pciHeaderShow for all the devices as well.

    Regards
    --
    >@<

    Bill Dennen ieee1014@hotmail.com
    Cluelessness: There are no stupid questions, but there are a LOT of
    inquisitive idiots.
    (despair.com)


  6. Re: PCI Auto Config - How does it work?

    On Nov 13, 5:54 am, William Dennen wrote:
    > On Mon, 12 Nov 2007 03:20:23 -0800, gvarndell wrote:
    > > On Nov 11, 4:04 pm, xama...@yahoo.com wrote:

    >
    > >> I am a PCI newbie and I am trying to understand PCI Auto Configuration
    > >> and device enumeration. I am using Vxworks 6.x and a PPC board. Here is
    > >> the scenario ... I insert a custom card and the other previously
    > >> recognized card disappears from the list of devices (after I execute
    > >> one of the PCI show commands). I remove the custom card and the old
    > >> cards reappear. What could be causing this strange behavior? How does
    > >> PCI Auto Config work? What would cause it NOT to work?

    >
    > > It sounds like you need a PCI bus analyzer and some time with your H/W
    > > engineer. I doubt a deeper understanding of auto configuration, which is
    > > worthwhile knowing, is going to nail this problem. Suspect the custom
    > > card of violating PCI spec in some way.

    >
    > >> Also another question ~ Is the order of devices in PCI slots important?
    > >> I understand that slower cards can affect the others? What is the
    > >> meaning of this?

    >
    > > AFAIK, this has nothing to do with slot order. If a 33Mhz card is on the
    > > same
    > > bus as a 66Mhz capable card, the entity that controls the PCI bus clock
    > > will
    > > use 33MHz..

    >
    > > HTH
    > > GV

    >
    > I agree
    > One possibility for what's being observed is that the added card's
    > configuration header is such that it consumes all of the available memory
    > space and subsequent cards cannot be enumerated. Can you provide the
    > community with the output of pciDeviceShow for all busses and identify
    > the Vendor and Device ID of the card you're adding? Even better would be
    > a pciHeaderShow for all the devices as well.
    >
    > Regards
    > -->@<
    >
    > Bill Dennen ieee1...@hotmail.com
    > Cluelessness: There are no stupid questions, but there are a LOT of
    > inquisitive idiots.
    > (despair.com)- Hide quoted text -
    >
    > - Show quoted text -



    ya that will be better...

    If the card pci map overlap this can happen.


  7. Re: PCI Auto Config - How does it work?

    On Nov 12, 7:54 pm, William Dennen wrote:
    > On Mon, 12 Nov 2007 03:20:23 -0800, gvarndell wrote:
    > > On Nov 11, 4:04 pm, xama...@yahoo.com wrote:

    >
    > >> I am a PCI newbie and I am trying to understand PCI Auto Configuration
    > >> and device enumeration. I am using Vxworks 6.x and a PPC board. Here is
    > >> the scenario ... I insert a custom card and the other previously
    > >> recognized card disappears from the list of devices (after I execute
    > >> one of the PCI show commands). I remove the custom card and the old
    > >> cards reappear. What could be causing this strange behavior? How does
    > >> PCI Auto Config work? What would cause it NOT to work?

    >
    > > It sounds like you need a PCI bus analyzer and some time with your H/W
    > > engineer. I doubt a deeper understanding of auto configuration, which is
    > > worthwhile knowing, is going to nail this problem. Suspect the custom
    > > card of violating PCI spec in some way.

    >
    > >> Also another question ~ Is the order of devices in PCI slots important?
    > >> I understand that slower cards can affect the others? What is the
    > >> meaning of this?

    >
    > > AFAIK, this has nothing to do with slot order. If a 33Mhz card is on the
    > > same
    > > bus as a 66Mhz capable card, the entity that controls the PCI bus clock
    > > will
    > > use 33MHz..

    >
    > > HTH
    > > GV

    >
    > I agree
    > One possibility for what's being observed is that the added card's
    > configuration header is such that it consumes all of the available memory
    > space and subsequent cards cannot be enumerated. Can you provide the
    > community with the output of pciDeviceShow for all busses and identify
    > the Vendor and Device ID of the card you're adding? Even better would be
    > a pciHeaderShow for all the devices as well.
    >


    pciDeviceShow does a scan of the configuration space for a given bus.
    It will show devices that are incorrectly configured as well as
    devices that aren't configured.
    I took the OP's description of the problem to mean that this custom
    card makes the other devices disappear from configuration space.
    Your suggestions to the OP will help clear that up.

    GV


  8. Re: PCI Auto Config - How does it work?


    > pciDeviceShow does a scan of the configuration space for a given bus.
    > It will show devices that are incorrectly configured as well as
    > devices that aren't configured.
    > ***I took the OP's description of the problem to mean that this custom
    > card makes the other devices disappear from configuration space.
    > Your suggestions to the OP will help clear that up***
    >
    > GV


    Yes this is correct. The custom card makes the other devices disappear
    (and you only see the custom card). When I remove this custom card the
    other devices appear. I am examining this first as an auto-
    configuration problem because of the strange behavior I observe.

    Can someone explain/elaborate on the comment that a device
    configuration header is such that it consumes all of the available
    memory so that subsequent cards cannot be enumerated? I am assuming
    that the device must be correctly configured or perhaps manually
    configured???



  9. Re: PCI Auto Config - How does it work?

    On Nov 13, 11:14 am, xama...@yahoo.com wrote:
    > > pciDeviceShow does a scan of the configuration space for a given bus.
    > > It will show devices that are incorrectly configured as well as
    > > devices that aren't configured.
    > > ***I took the OP's description of the problem to mean that this custom
    > > card makes the other devices disappear from configuration space.
    > > Your suggestions to the OP will help clear that up***

    >
    > > GV

    >
    > Yes this is correct. The custom card makes the other devices disappear
    > (and you only see the custom card). When I remove this custom card the
    > other devices appear. I am examining this first as an auto-
    > configuration problem because of the strange behavior I observe.
    >
    > Can someone explain/elaborate on the comment that a device
    > configuration header is such that it consumes all of the available
    > memory so that subsequent cards cannot be enumerated? I am assuming
    > that the device must be correctly configured or perhaps manually
    > configured???


    If pciDeviceShow cannot 'see' the other devices, then PCI autoconfig
    cannot either.
    Both use the same mechanism to enumerate the bus.
    If devices don't appear during the configuration space scan, they
    won't be configured -- correctly or otherwise.
    Attempting to manually configure will likely fail because writes to
    configuration space will almost certainly fail for the same reason
    reads are failing.
    As I said before, this is a job for a PCI analyzer.
    I can't think of any other way you're going to understand what the
    custom card is doing to configuration cycles to conceal the other
    devices.

    HTH,
    GV



  10. Re: PCI Auto Config - How does it work?

    On Tue, 13 Nov 2007 08:14:57 -0800, xamalek wrote:

    > Can someone explain/elaborate on the comment that a device configuration
    > header is such that it consumes all of the available memory so that
    > subsequent cards cannot be enumerated? I am assuming that the device
    > must be correctly configured or perhaps manually configured???


    This is standard PCI ...
    There is a set amount of address space (not memory, address space) that
    the OS has reserved for PCI memory and PCI IO space. In PReP it's 1GB
    each, in CHRP it's more flexible. During enumeration the configuration
    header is read and the BARs examined. At power on there is a pattern in
    the BARs that describes the amount of address space the device wants.
    The enumeration code determines if that amount of space is left, and if
    so writes back into the BAR the base address. If that space isn't
    available 0 is written. Sometimes the code is nice and puts out an error
    message; VxWorks can't because the console usually isn't connected
    (enabled) that early in the start up. Once address space has been
    consumed nothing else can be configured. The solution is to either
    increase the amount of PCI memory and IO space reserved -- a difficult
    and laborious task as the entire memory map has to be redone (it looks
    simple but it isn't) or have the device request less space. Commercial
    cards usually don't have this issue, unless they're a PrPMC. If the
    configuration header is "configurable" it may be that the enumeration is
    being performed before the header has been configured -- that's usually
    the issue with a PrPMC. If that's what's happening then ENUM# isn't
    being properly used by the device. Until true a device isn't ready for
    enumeration and pciAutoConfig stalls.

    clear as mud?
    Regards
    --
    >@<

    Bill Dennen ieee1014@hotmail.com
    Cluelessness: There are no stupid questions, but there are a LOT of
    inquisitive idiots.
    (despair.com)



+ Reply to Thread