Module Name:    src
Committed By:   matt
Date:           Fri Oct 12 17:18:02 UTC 2012

Modified Files:
        src/sys/arch/arm/broadcom: bcm53xx_pax.c bcm53xx_reg.h

Log Message:
Add a way to force PCI to negotiate gen1 (setting flags 1 in the config file).


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm53xx_pax.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/broadcom/bcm53xx_reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/broadcom/bcm53xx_pax.c
diff -u src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.5 src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.6
--- src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.5	Thu Sep 27 00:25:26 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_pax.c	Fri Oct 12 17:18:02 2012
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(1, "$NetBSD: bcm53xx_pax.c,v 1.5 2012/09/27 00:25:26 matt Exp $");
+__KERNEL_RCSID(1, "$NetBSD: bcm53xx_pax.c,v 1.6 2012/10/12 17:18:02 matt Exp $");
 
 #include <sys/bus.h>
 #include <sys/device.h>
@@ -218,8 +218,6 @@ bcmpax_ccb_attach(device_t parent, devic
 	bcmpax_write_4(sc, PCIE_CLK_CONTROL, 3);
 	delay(250);
 	bcmpax_write_4(sc, PCIE_CLK_CONTROL, 1);
-	// delay(100*1000);
-
 
 	uint32_t v = bcmpax_read_4(sc, PCIE_STRAP_STATUS);
 	const bool enabled = (v & STRAP_PCIE_IF_ENABLE) != 0;
@@ -292,6 +290,13 @@ bcmpax_ccb_attach(device_t parent, devic
 	KASSERT(ok);
 
 	/*
+	 * This will force the device to negotiate to a max of gen1.
+	 */
+	if (device_cfdata(self)->cf_flags & 1) {
+		bcmpax_conf_write(sc, 0, offset + PCI_PCIE_LCSR2, 1); 
+	}
+
+	/*
 	 * Now we wait (.25 sec) for the link to come up.
 	 */
 	offset += PCI_PCIE_LCSR;

Index: src/sys/arch/arm/broadcom/bcm53xx_reg.h
diff -u src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.7 src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.8
--- src/sys/arch/arm/broadcom/bcm53xx_reg.h:1.7	Fri Oct  5 02:45:51 2012
+++ src/sys/arch/arm/broadcom/bcm53xx_reg.h	Fri Oct 12 17:18:02 2012
@@ -443,6 +443,8 @@
 #define PCIE_SYS_RC_INTX_EN	0x330
 #define PCIE_SYS_RC_INTX_CSR	0x334
 
+#define	PCIE_CFG000_BASE	0x400
+
 #define	PCIE_FUNC0_IMAP0_0	0xc00
 #define	PCIE_FUNC0_IMAP0_1	0xc04
 #define	PCIE_FUNC0_IMAP0_2	0xc08

Reply via email to