Connect with us

PCI Bus, ongoing

Discussion in 'Electronic Design' started by [email protected], Aug 24, 2004.

Scroll to continue with content
  1. Guest

    My thanks to those of you who took the time to answer my questions last week,
    and offer advice on the problems I am having with the PCI interface.

    Its been so long since I did such work, I am afraid I am too far behind to
    catch up with everything. I can sure use the work, and the work that would
    follow, if I can dig the company out of this issue.

    The boards use the PLX 9050 chip. Today I visited the company and tried a few
    things. First thing I did was download the PCI configuration using one of the
    utilities that was pointed out by someone here. Thanks. I have it in a log
    file, and am quite sure that the PLX chip is doing the all setup and
    configuration, but I haven't gone through the file yet.

    The boards, as I mentioned, are pretty simple watchdog, and real time clock
    type devices. I mentioned originally that the problem was with faster
    motherboards, but as I did some testing, that is not the case. Its certainly a
    matter of "newer" boards, but I have here a 400MHz AMD and it fails in that
    one as well. I tried several AMD and Intel machines, with VIA chipsets, and
    some odd names I never heard of before. Its difficult to say what kind of
    machine they work with, and which ones it fails in. All I know is the problem
    started a few months ago. Such data is hard to come by, as they sell the
    boards, but have no control over the PCs they are installed into. Most
    customers are doing fine..... Its sounding like the difference is in the PCI
    standard being used.

    Does anyone know where I would look to learn what rev level the PCI slots are
    at, in each machine?

    The failure is a total lockup of the machine on powerup. No boot, nothing. No
    beeps from the BIOS. All I get is the fan coming on :) The video never inits,
    as the monitor power light stays on amber.

    I checked the power supply lines, and none of them appear shorted, or come up
    out of spec with the board in the slot. There are no other cards in any PCI
    slots, the video being in the AGP slot. In fact, I tried a PCI video card as
    one of the variables and it did not make any difference.

    I first looked int the BIOS for any clock settings on the bus, and all I found
    was one called "latency clock" I changed it through several increments, and
    found no difference. I don't think its the bus speed, based on how it
    instantly locks up. Is it too soon to rule that out?

    I then did the purely scientific test of putting some tape over a group of
    pins to remove them from the bus, and the PC booted up fine. I tried narrowing
    it down, in hopes of getting a clue, but as some of you will guess, it is
    basically just a matter of covering any of the address/data lines and the PC
    will boot. I got it all the way down to just one address line and it still
    allowed the PC to boot, but of course, the card did not appear in any
    configuration, or in the software that controls the card itself.

    I am attempting to contact PLX and get an application engineer to give me a
    hand, but I am hoping there might be some ideas here to move this along if I
    can. It seems that the PLX chip is certainly not initializing, and of course,
    and its hanging the bus.

    The clock lines and other interface lines appear to be physically short
    enough, and I know that the power lines are all correct. I have much to do and
    verify, but that is what I found so far.

    Anyone use the PLX chip before who knows a bit about it, or a similar device?
    I recall that it was pretty much of a "do what the data books says" kind of
    last minute design, so after all these years, its like starting over
    again.....

    In addition, can anyone post, or repost, links to sites that get involved in
    the PCI spec please? Thought I saw one or two before, but I checked the posts,
    and don't see them. Google shows lots of them. Which ones are the best, or
    'most official?'

    I know its long winded. I am hoping to get back up to speed quickly. Do all
    PCI cards require a seperate kind of controller, like the PLX chip? I look at
    the boards now, three + years later, and wonder why we didn't just redesign
    them from scratch, rather than convering from ISA to PCI with that PLX chip. I
    guess its a software issue. That was always a problem with that company, IIRC.

    Either way, I appreciate any advice, and your patience as well. I never
    figured to go back to hardware design, but now that I am getting into it, I am
    thinking I might want to stay there, so if I can pull this off, maybe I will
    get back some of the old confidence :)

    Much obliged for the bandwidth.

    Mark
     
  2. Rich Grise

    Rich Grise Guest

    If you've got no beeps from the BIOS, then you have something very early
    in the POST - is there some kind of boot ROM on the card that could have
    a memory confilct with certain BIOSes?

    Or a port conflict before the board gets initialized - are the factory
    defaults sane values?

    Good Luck!
    Rich
     
  3. PaulCsouls

    PaulCsouls Guest

    I would guess there is something wrong with the circuit board card
    layout and how the signals connect to the PCI bus. PCI uses reflective
    transmission lines. The buses are designed to use the signal
    reflections to boost the signals for communication without lossy
    terminators. What this means is that everything is specified with how
    you connect to the bus. The capacitors used, the trace widths and
    lengths must fall within narrow ranges. The 33 MHz clock line has to
    be exactly some length(2.1 inches?). Really fat traces can be a
    problem with too much capacitance and not enough impedance. When I did
    it I went by the book. I believe I used 7 mil 75 ohm traces. The very
    simplicity of the design may be the cause of your problems. Are these
    multilayer boards with ground planes?

    Paul
     
  4. Norm Dresner

    Norm Dresner Guest

    ....


    Just a random thought. Some time ago we were trying to use a particular
    manufacturer's PCI boards in our systems and found that in some -- and only
    some -- of the various makes and models of PCs that we could use two to four
    of this particular board with no problem and in other PCs we could only use
    one. All failures were machine hangs either during boot or -- more commonly
    in some machines -- when one of the boards was accessed in a particular
    sequence. We also saw that the behavior in a particular instance of PCI bus
    was sensitive to which slot the board was in. Ultimately it came down to
    the loading and abnormal reflections on particularly poorly designed PCI bus
    implementations on some motherboards. In our case the cure was to change to
    a different manufacturer's boards which had PBI bridges on each board right
    at the card edge to keep the stubs to the shortest possible length and
    eliminate as much reflection and ringing as possible. The moral of this
    story is that a PCI bus is a lot more than a bunch of data and address lines
    and a clock rate, it's a whole transmission line system.

    Norm
     
  5. Guest

    Those are good points. I seem to recall referencing the spec for tracks and
    the clock, but it was a long time ago. I cannot double check them as I have
    not yet come up with this elusive specification document. I am better at
    layouts now than I was then, so I wish I could do it over, or at least have
    another go at it <g> The boards are over five years old, I was a bit off in my
    earlier estimate. Where does the time go? :)

    They are not multilayer boards, so that could be an issue.

    I am up for trying anything, but I am going to have to come up with an
    believable, technical explanation as to why hundreds of the boards have been
    working very well for all these years, and now something has gone awry. I
    asked, and was told that they haven't done a new run of the boards in years,
    still working from old inventory, so I can't use chips or other processes as
    the excuse. They send boards to customers, and some return them, and others
    are doing just fine. That seems like a pretty large demographic of success to
    consider that it might be a bad layout/design that barely gets by. I have been
    wrong in the past tho, so I could be wrong today, and tomorrow :)

    I do recall that it was a real challenge to layout the tracks using that big
    old PLX chip and still keep the tracks short.

    Although I am okay with most of the tracks, it would be nice to do a four
    layer, and maybe consider some minor routing changes, but even tho it might
    seem logical, that won't fly with the manager, at least not yet.

    Thank you for your time and the ideas.

    Mark
     
  6. keith

    keith Guest

    If it's not doing its setup in time, chances are it'll be completely
    ignored by the system. I don't think this is your problem.
    Good information.
    All Via chipsets? Via has had problems here. There wouldn't be any
    Creative Labs (SoundBlaster &such) cards in these systems? They're
    well known to be problematic. Though they should at least POST.
    Unlikely. The PCI standard hasn't changed in years. It could be a crappy
    chipset implementation though.
    The motherboard spec should tell you. If that information isn't right
    you're not going to get any information at the connectors.
    Are you *sure* the card mechanicals are correct and nothing is getting
    shorted out? There *is* a reset on the PCI channel? If you'renot getting
    any beeps it's likely not even fetching POST code from memory, which
    coudl happen if the card is shorting out the PCUI channel (BIOS is often
    handing off the southbridge on the ISA side of the PCI/ISA bridge. You
    might see if you canborrow a POST card to see how far it goes.
    Try POSTing without a video card. You'll get beeps if it works.
    ....though I agree, it's not likely.
    That's a latency timer, and only controls releasing the bus if somone's
    hogging it. That's not your problem (you would still POST).
    Good deductions. Which address pin? You might have a short there.
    If it didn't initialize it should *not* be hanging the bus. It should be
    ignore the bus and be ignored. Though, is there a difference in power-on
    time between good and failing systems?
    I *doubt* that it's the problem, but the clock line should *not* be short
    (the spec calls for 2.5" +/- .1"). Indeed to meet spec it should be a
    serpentine around the bottom of the card.
    I used the 9054 a couple of years ago. No real issues, other than
    understanding the local bus (and byte ordering). Nothing ever hung (at
    least that I recall).
    If you're going to get into the signalling the MindShare book cannot be
    beat. I don't think that's your problem though. If it is, I think
    you're going to need a PCI bus analyzer to find it.
    They need a PCI controller of some sort, yes. One can use an FPGA,
    something like your PLX chip, or roll your own. The PCI spec isn't
    trivial to meet though, which of course is why PLX exists (and from my
    experience they're good).
    I don't think your problem would be any different. I *doubt* that it's a
    PLX problem, though there is always that possibility.
    Aw, coem on! Hardware is where the fun is! Crap on C/C++. ;-)
     
  7. Clive

    Clive Guest

    I have/am using PLX chips. I too have had some interesting problems.

    The first thing to consider is layout. You must ensure that good bypassing
    practices are used.

    I have used the 9030 and 9054. The 9030 is easier to use, and from your
    description may be better than the 9050 for your use? It does not support
    DMA however!

    Anyway, other things to look for:

    Typically, LHOLD and LHOLDA should be tied together with a 100R resistor.
    This was advised by PLX for test purposes, but has stayed ever since unless
    you need them to slow things down.

    If you are using a EEPROM, be careful how you set it up initially. The
    pulldown resistor on DI/DO should be removed. This will hang bootup
    otherwise.

    Be very carefull of pullups/pulldowns on the Local Bus control lines. PLX
    has a habit of mis-informing or confusing things here. Read the data sheet
    carefully, since the internal resistors are often not strong enough.

    The PCI clock should be 2.5" long I think, with the other tracks <1.5".

    That being said, I still have a small issue with the PLX9054 not being
    sensed by the bios, but pcitweak (Linux) does find it, and it works fine.
    There are still some mysteries here.

    And take special care with the soldering. Use a good iron with liquid flux
    and preferrably a hollow tip. Check for shorts with a magnifying glass and
    for dry joints with a fine pair of tweezers on each pin. (I'm assuming
    workshop soldering not production)

    I should be able to dig up some old emails on the topic if you still have
    problems.

    Have you got an ID from PLX so you can program your details in the EEPROM?

    Good luck,

    Clive
     
  8. If I recall, the clock line is supposed to be 2.5" +/- 0.1", while the other
    signal lines are supposed to be < 1.5" in length. You often see 'serpentine'
    clock lines because of this.

    Jon
     
  9. Iwo Mergler

    Iwo Mergler Guest

    Can you check the bus lines for activity? Some BIOSes seem
    to get stuck in a loop trying to configure the card, if it
    doesn't respond.

    With the PLX chips, that can easily be a broken configuration
    EEPROM, or bad configuration data. It may be worthwile to
    read back the configuration data, and compare with the data
    sheet as well as the stack of errata publications.

    Kind regards,

    Iwo
     
  10. Guest

    things. First thing I did was download the PCI configuration using one of the
    Guess it wouldn't hurt to state the obvious, that I got the configuration
    while using a PC that gets along with the PCI card in question :)

    I make sure there are no other cards in the board, except for the AGP video.
    It works on one PC with a VIA chipset, but not another...... I am limited to
    how many PCs are laying around. Certainly not as many to choose from as the
    entire customer base. I am unable to find any consistencies with chip sets
    among those I have to work with.

    I am narrowing it down to either crappy MB designs, or crappy PCI card
    layout...... :)

    Seems the PLX device is PCI 2.1 compliant, and so are the MBs I am using.
    I have gone over the board, and am sure in the sense that the same card works
    in every other PC around here, except for one other, that seems to share no
    common characteristics.

    I don't think it is a short issue, but I am pretty convinced the card is
    absolutely hanging the bus, as there are no beeps, and no disk activity at
    all.
    Oooohhhh, good idea. I have no idea where to borrow one :) but its something
    to check out and try.

    Any address pin..... any one at all, which indicates??
    I agree.

    The clock line is 1.2" Could be a mixup there I guess. I am not so proud as
    to confess to such errors :) but it works unfailingly in so many machines,
    for so many years, I am having a hard time accepting that as an issue. I can
    go along with crappy MB design making the problem appear. The MB in front of
    me is an ASUS P5, not exactly new, and not really a poor MB, IMO.

    Care to venture a guess as to the idea of cutting the clock line and using
    jumper wire to prove a point?
    :) I was in it up to my neck for over a dozen years. Stuff happened in life,
    layoffs, and I ended up as a PCB designer (not that this board is my best work
    <g>) and then got canned from that almost three years ago after the WTC fell.
    Haven't been able to find full time work since, so I have been doing other
    stuff. Programming is not in my blood. I would prefer a full time hardware gig
    again, but circumstances have conspired against me. Seems that unless one can
    do hardware and write code, the opportunities are quite limited. For the first
    18 months after the attacks, there were no jobs, and being out that long
    doesn't impress HR folks......I live in Utah, and at one time, there was lots
    of work. Now, its mostly moving overseas and to the south. Few positions, lots
    of people looking.

    Anyway, gotta get this done first. I am loathe to have to tell this small
    business that the layout "might" be an issue, and redo it unless I can
    convince myself the cash outlay for them will be a good investment. If you
    have worked with the PLX, you know that its not a real simple layout from
    that big 160 pin PLCC to PCI pins in the first place. Internal planes would be
    good, but cost is a real concern for them.

    Thanks a lot for the ideas and conversation.

    Mark
     
  11. Nico Coesel

    Nico Coesel Guest

    Look for pci22.pdf with Google to get the specs. I've seen boards
    where Vio is shorted to V33. Maybe this is the case with your boards.
     
  12. Gee, the failing configuration would get you much more information! ;-)
    Different brands? Different models? Same brand/model?
    Can you get feedback from customers with failing units so you can do a
    correlation?
    That's what they claim, anyway. PCI 2.1 has been around for years, so
    I'm doubting that it has any thing to do with the spec.
    I'm fairly certain I've seen 'em cheap in catalogs. I just did a quick
    search and only found them in the low-mid $hundreds though. Maybe you
    could rent a PCI bus analyzer for a month? Dunno what your financial
    commitments are...

    As an aside, I thought it interesting that my motherboard had a POST
    display integrated in. Nice touch, but Murphy would dictate that any
    with this nice feature would always work. ;-)
    ....that my brain hurts? Masking any *single* AD pin allows it to boot?
    I gotta think on that one.
    There's an idea. Perhaps you can force a reset on the PLX chip. Maybe
    change from fast to slow boot (more memory testing) in BIOS. I'm
    thinking that there may be a boot timing issue and the PCI controller
    and card are dueling (a long shot).
    The spec is there for a reason. The board maker may be assuming you're
    following the spec. That said, my first PCI board had the exact same
    Ah $#!+ as yours (there was a reason I pulled this spec out of my
    @$$ ;). Though, I got lucky and it worked. I had the added advantage
    that it only had to work in a small number of systems (exactly one ;-).
    Were it a product, I'd have been more worried.
    The P5 is failing? Ohhh! I found that ASUS products of this era were
    usually very good. I used to "reverse-engineer" such boards for
    comparability testing.
    Do you have inner planes on your board (I thought there was an issue
    here). Without the planes getting the timing down pat would be a
    problem. I'm not giving it a high percentage of success, but it's
    worth a try, if you have to guess (insufficient test equipment
    available).
    Definitely not good. I managed to make it through (in a few cases I
    really don't know how). My project was canceled, no assignment for five
    months when the layoffs came. The programmer I was working with was
    laid off and the boss told me to "go see the verification folks; they
    need help". To which I answered; "I can do that". ;-)

    I just turned the 30-year corner a few months ago (retirement locked in
    and all that good stuff :). I've looked around out in the wild and
    there are hardware jobs, but one has to be ready to move to them. I'd
    really like to do more such hardware design, but the paycheck shows up
    on time and I think again.
    The PLX chip was easy. It laid itself out (fan-out was perfect for two
    layers - no crossings). The FGA680 and BGA256 FPGAs, and the BGA
    processor were somewhat more of a challenge. ;-)
    Good luck! ...and do tell us what you find. It's good to keep a bag-
    o-tricks up one's sleeve.
     
  13. It's supposed to be 2.5" for a reason. There's a needed clock skew of 2ns at
    33MHz (it's 1ns at 66MHz), to the other signal lines.

    Jon
     
  14. Guest


    Great. Downloading it right now and I will sure check those pins.

    Thanks a lot,

    Mark
     
  15. Guest


    Yep. I can't explain an thought processes from that long ago. Mental typo,
    careless, working too fast,.... oh my, if only I was as wise then, as I am now
    :)

    If only it would have failed five or six years ago, and not worked for so many
    boards and customers..... It could be that I was sloppy, and now the MBs are
    sloppy and so here I am.... Like that has never happened before!

    I don't care what the end result turns out to be, I just want to be sure that
    making them trash inventory and invest cash in me fixes the problem.

    I am appreciative of all the help and advice I am getting here.

    Mark
     
  16. Guest

    Hard to gather that kind of data. Not very many machines, and no one to go
    through everything, yet.
    I have submited that request, and am not holding my breath.
    So far, that is what I found. I haven't gone back in and done another card,
    and made sure I got every AD line, but I did a number of them, and that was
    the result. I was originally going to go down each and every pin, out of
    desperation to find something to start checking against. I haven't been there
    yet tho. Every AD pin? Maybe I missed one, but it only took masking any one of
    the ones I hit, and the PC booted up. My brain is unconcsious :)

    Good. I am up for trying anything before committing to a new layout.

    I lost my ego years ago, so this is looking more and more suspicious. I
    appreciate the several comments about it that have been void of "you idiot"
    kinds of remarks :)

    I am gonna try. If it fixes it, I am on the right track, if not, well, I can
    use the practice soldering tiny wires again..... I am not sure I can convince
    this little place that they will need mulitlayer boards.

    I just downloaded the entire PCI spec, and did a quick search for plane, or
    ground plane, and neither seems to appear in the spec. Are power and ground
    planes required, or recommended?

    Good move!
    I am at 25 years, and all the retirement is pretty much gone being out of full
    time, benefit work for nearly three years. Its not relevant here, but I am not
    really able to move do to personal crap that has fallen upon me. I could swing
    a move to Montana, (I wisht) but I don't want to end up in Texas or CA :)

    I have gotten some good ideas and suggestions here and I am grateful for that.
    Its got to be fixed, so soon I will have to take what I have learned and maybe
    decide on the re-layout, but as I mentioned, that will take a good sell job to
    make them happy with that. If it fixes it, I am looking good. If its some
    other incompatibility......... Oye!!

    Thanks Keith,

    Mark.
     
  17. Nico Coesel

    Nico Coesel Guest

    I tried that to find out why a PC got stuck while booting, but I
    quickly discovered I need a very fast logic analyzer to see what's
    going wrong. 100MS/s isn't enough to find timing problems on a PCI
    bus.
    That's because the PCI bus uses parity over the address and the data,
    it will simply discard the configuration transaction. The OP could try
    to keep the card in reset until Windows (or any other OS) has started
    and let the OS detect the hardware again. Chances are that the card is
    found and configured by the OS.

    It seems the OP has the same symptoms I've had with the Xilinx PCI
    core. It had to do with the new PCI-X slots (33MHz/66MHz/100MHz 32bit
    slots) which claim to be PCI 2.2 compatible but I assume the timing is
    a little bit different.

    Another issue may be the voltage on the slots. Are the failing
    motherboards by any chance equiped with 3.3V slots? Another problem
    could be 5V connected to Vio which can be either 5V or 3.3V.
    I don't agree. Each PCI slot has it's own unique select pin which
    selects a slot during configuration transfers. Besides, the start up
    time for a PCI card is well defined in the PCI specification.

    BTW, a lot of hints and information can be found using Google, try a
    search on
    +"PLX 9050" +problem

    This might result in an answer which indicates what is going wrong. A
    4 layer board is better, but a good 2 layer board (with decoupling and
    a gridded power supply distribution) should work as well.
     
  18. Carter Buck

    Carter Buck Guest

    Typically, BIOS PCI Device Lists do not display bridges. If you change
    the Class Code value in EEPROM from the default Other Bridge class to
    a specific device type (listed in the PCI Specification), you should
    see the PLX9054.

    Carter Buck
    Applications Engineer
    PLX Technology, Inc.
     
  19. Carter Buck

    Carter Buck Guest

    A 2-layer board with 1.2 inch PCI CLK trace length is likely to fail.
    The PCI Specification requires unloaded trace characteristic impedance
    to be in the 51-100 ohm range, which is difficult to achieve without 4
    or more layers with power and ground planes. As stated elsewhere in
    this thread, the CLK trace length needs to be 2.5 inches. You could
    try cutting the trace at both ends, replacing it with a 2.5 inch wire.

    Carter Buck
    Applications Engineer
    PLX Technology, Inc.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-