Module Name: src
Committed By: matt
Date: Wed Jul 18 19:38:26 UTC 2012
Modified Files:
src/sys/arch/evbppc/mpc85xx: machdep.c
src/sys/arch/powerpc/booke/pci: pq3pci.c
src/sys/arch/powerpc/include/booke: e500reg.h
Log Message:
Add P1025 support to the PCI truth tables.
P1025 only has two PCIe ports, not 3.
To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sys/arch/evbppc/mpc85xx/machdep.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/powerpc/booke/pci/pq3pci.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/powerpc/include/booke/e500reg.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/evbppc/mpc85xx/machdep.c
diff -u src/sys/arch/evbppc/mpc85xx/machdep.c:1.26 src/sys/arch/evbppc/mpc85xx/machdep.c:1.27
--- src/sys/arch/evbppc/mpc85xx/machdep.c:1.26 Tue Jul 17 01:36:12 2012
+++ src/sys/arch/evbppc/mpc85xx/machdep.c Wed Jul 18 19:38:26 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.26 2012/07/17 01:36:12 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.27 2012/07/18 19:38:26 matt Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -364,11 +364,12 @@ static const struct cpunode_locators mpc
1 + ilog2(DEVDISR_PCIE2),
{ SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
SVR_P1025v1 >> 16 } },
+#endif
+#if defined(MPC8572) || defined(P2020)
{ "pcie", PCIE3_MPC8572_BASE, PCI_SIZE, 3,
1, { ISOURCE_PCIEX3_MPC8572 },
1 + ilog2(DEVDISR_PCIE3),
- { SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ { SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16, } },
#endif
#if defined(MPC8536) || defined(P1025) || defined(P2020)
{ "ehci", USB1_BASE, USB_SIZE, 1,
@@ -1422,15 +1423,16 @@ cpu_startup(void)
case SVR_MPC8544v1 >> 16:
case SVR_MPC8572v1 >> 16:
case SVR_P1016v1 >> 16:
- case SVR_P1025v1 >> 16:
case SVR_P2010v2 >> 16:
case SVR_P2020v2 >> 16:
- mpc85xx_pci_setup("pcie1-interrupt-map", 0x001800, IST_LEVEL,
- 0, 1, 2, 3);
- mpc85xx_pci_setup("pcie2-interrupt-map", 0x001800, IST_LEVEL,
- 4, 5, 6, 7);
mpc85xx_pci_setup("pcie3-interrupt-map", 0x001800, IST_LEVEL,
8, 9, 10, 11);
+ /* FALLTHROUGH */
+ case SVR_P1025v1 >> 16:
+ mpc85xx_pci_setup("pcie2-interrupt-map", 0x001800, IST_LEVEL,
+ 4, 5, 6, 7);
+ mpc85xx_pci_setup("pcie1-interrupt-map", 0x001800, IST_LEVEL,
+ 0, 1, 2, 3);
break;
#endif
}
Index: src/sys/arch/powerpc/booke/pci/pq3pci.c
diff -u src/sys/arch/powerpc/booke/pci/pq3pci.c:1.12 src/sys/arch/powerpc/booke/pci/pq3pci.c:1.13
--- src/sys/arch/powerpc/booke/pci/pq3pci.c:1.12 Fri Jan 27 18:52:59 2012
+++ src/sys/arch/powerpc/booke/pci/pq3pci.c Wed Jul 18 19:38:26 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pq3pci.c,v 1.12 2012/01/27 18:52:59 para Exp $ */
+/* $NetBSD: pq3pci.c,v 1.13 2012/07/18 19:38:26 matt Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -44,7 +44,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pq3pci.c,v 1.12 2012/01/27 18:52:59 para Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pq3pci.c,v 1.13 2012/07/18 19:38:26 matt Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -87,6 +87,11 @@ __KERNEL_RCSID(0, "$NetBSD: pq3pci.c,v 1
__SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result), \
TRUTH_ENCODE(SVR_P2010v2, inst, PORDEVSR_##field, \
__SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result)
+#define PORDEVSR_P1025_TRUTH_ENCODE(inst, field, value, result) \
+ TRUTH_ENCODE(SVR_P1025v1, inst, PORDEVSR_##field, \
+ __SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result), \
+ TRUTH_ENCODE(SVR_P1016v1, inst, PORDEVSR_##field, \
+ __SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result)
#define PORDEVSR_TRUTH_ENCODE(svr, inst, field, value, result) \
TRUTH_ENCODE(svr, inst, PORDEVSR_##field, \
@@ -157,6 +162,15 @@ const struct e500_truthtab pq3pci_pcie_l
PORDEVSR_P20x0_TRUTH_ENCODE(3, IOSEL, PCIE12_X1_3_X2, 2),
PORDEVSR_P20x0_TRUTH_ENCODE(3, IOSEL, PCIE13_X2, 2),
#endif
+
+#ifdef P1025
+ PORDEVSR_P1025_TRUTH_ENCODE(1, IOSEL, PCIE1_X1, 1),
+ PORDEVSR_P1025_TRUTH_ENCODE(1, IOSEL, PCIE1_X4, 4),
+ PORDEVSR_P1025_TRUTH_ENCODE(1, IOSEL, PCIE12_X1_SGMII23, 1),
+ PORDEVSR_P1025_TRUTH_ENCODE(1, IOSEL, PCIE1_X2_SGMII23, 2),
+
+ PORDEVSR_P1025_TRUTH_ENCODE(2, IOSEL, PCIE12_X1_SGMII23, 1),
+#endif
};
static const struct e500_truthtab pq3pci_pci_pcix[] = {
Index: src/sys/arch/powerpc/include/booke/e500reg.h
diff -u src/sys/arch/powerpc/include/booke/e500reg.h:1.12 src/sys/arch/powerpc/include/booke/e500reg.h:1.13
--- src/sys/arch/powerpc/include/booke/e500reg.h:1.12 Tue Jul 17 01:36:13 2012
+++ src/sys/arch/powerpc/include/booke/e500reg.h Wed Jul 18 19:38:26 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: e500reg.h,v 1.12 2012/07/17 01:36:13 matt Exp $ */
+/* $NetBSD: e500reg.h,v 1.13 2012/07/18 19:38:26 matt Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -418,6 +418,10 @@
#define IOSEL_P20x0_PCIE1_X1_SRIO2500_1X 13
#define IOSEL_P20x0_PCIE12_X1_SGMII23 14
#define IOSEL_P20x0_PCIE1_X2_SGMII23 15
+#define IOSEL_P1025_PCIE1_X1 0 /* same at P20x10 */
+#define IOSEL_P1025_PCIE1_X4 6 /* same at P20x10 */
+#define IOSEL_P1025_PCIE12_X1_SGMII23 14 /* same at P20x10 */
+#define IOSEL_P1025_PCIE1_X2_SGMII23 15 /* same at P20x10 */
#define PORDEVSR_PCI2_ARB __PPCBIT(13)
#define PORDEVSR_PCI1_ARB __PPCBIT(14)
#define PORDEVSR_PCI32 __PPCBIT(15)