summaryrefslogtreecommitdiffstats
path: root/sys/contrib/octeon-sdk
diff options
context:
space:
mode:
authorgonzo <gonzo@FreeBSD.org>2012-01-13 02:33:55 +0000
committergonzo <gonzo@FreeBSD.org>2012-01-13 02:33:55 +0000
commit27c18071544f0e80e34e6d6506a3a53dbd5a9ffb (patch)
tree77ab1fcf5cde18ae6e3844b12be1ebe36dca2f7a /sys/contrib/octeon-sdk
parent7e48086a86bd27a66ffcd516748a3099662fdefe (diff)
downloadFreeBSD-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/octeon-sdk')
-rw-r--r--sys/contrib/octeon-sdk/cvmx-pcie.c6
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 */
OpenPOWER on IntegriCloud