diff options
author | gonzo <gonzo@FreeBSD.org> | 2012-01-13 02:33:55 +0000 |
---|---|---|
committer | gonzo <gonzo@FreeBSD.org> | 2012-01-13 02:33:55 +0000 |
commit | 27c18071544f0e80e34e6d6506a3a53dbd5a9ffb (patch) | |
tree | 77ab1fcf5cde18ae6e3844b12be1ebe36dca2f7a /sys/contrib | |
parent | 7e48086a86bd27a66ffcd516748a3099662fdefe (diff) | |
download | FreeBSD-src-27c18071544f0e80e34e6d6506a3a53dbd5a9ffb.zip FreeBSD-src-27c18071544f0e80e34e6d6506a3a53dbd5a9ffb.tar.gz |
- Do not enumerate PCIe bus on CN56XX Pass 1 devices to avoid hard hang.
There is known issue with this hardware.
Submitted by: Andrew Duane <aduane@juniper.net>
Diffstat (limited to 'sys/contrib')
-rw-r--r-- | sys/contrib/octeon-sdk/cvmx-pcie.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/contrib/octeon-sdk/cvmx-pcie.c b/sys/contrib/octeon-sdk/cvmx-pcie.c index 7c8dc2a..bfa6091 100644 --- a/sys/contrib/octeon-sdk/cvmx-pcie.c +++ b/sys/contrib/octeon-sdk/cvmx-pcie.c @@ -501,6 +501,12 @@ retry: } } + /* Make sure a CN56XX pass 1 isn't trying to do anything; errata for PASS 1 */ + if (OCTEON_IS_MODEL(OCTEON_CN56XX_PASS1_X)) { + cvmx_dprintf ("PCIe port %d: CN56XX_PASS_1, skipping\n", pcie_port); + return -1; + } + /* PCIe switch arbitration mode. '0' == fixed priority NPEI, PCIe0, then PCIe1. '1' == round robin. */ npei_ctl_status.s.arb = 1; /* Allow up to 0x20 config retries */ |