Module Name: src
Committed By: nonaka
Date: Sat Dec 27 16:19:34 UTC 2014
Modified Files:
src/sys/arch/evbppc/conf: files.mpc85xx
src/sys/arch/evbppc/mpc85xx: machdep.c
src/sys/arch/powerpc/booke: e500_intr.c
src/sys/arch/powerpc/booke/dev: pq3gpio.c
src/sys/arch/powerpc/booke/pci: pq3pci.c
src/sys/arch/powerpc/include/booke: e500reg.h openpicreg.h
Log Message:
Preliminary support for P1023.
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbppc/conf/files.mpc85xx
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/evbppc/mpc85xx/machdep.c
cvs rdiff -u -r1.27 -r1.28 src/sys/arch/powerpc/booke/e500_intr.c
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/powerpc/booke/dev/pq3gpio.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/powerpc/booke/pci/pq3pci.c
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/powerpc/include/booke/e500reg.h
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/powerpc/include/booke/openpicreg.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/conf/files.mpc85xx
diff -u src/sys/arch/evbppc/conf/files.mpc85xx:1.9 src/sys/arch/evbppc/conf/files.mpc85xx:1.10
--- src/sys/arch/evbppc/conf/files.mpc85xx:1.9 Sun Jul 15 08:44:56 2012
+++ src/sys/arch/evbppc/conf/files.mpc85xx Sat Dec 27 16:19:33 2014
@@ -1,9 +1,9 @@
-# $NetBSD: files.mpc85xx,v 1.9 2012/07/15 08:44:56 matt Exp $
+# $NetBSD: files.mpc85xx,v 1.10 2014/12/27 16:19:33 nonaka Exp $
#
# mpc85xx-specific configuration info
defflag opt_mpc85xx.h MPC8536 MPC8544 MPC8548 MPC8555 MPC8568 MPC8572
- P1025 P2020 CADMUS PIXIS E500_WDOG_STACK
+ P1023 P1025 P2020 CADMUS PIXIS E500_WDOG_STACK
defparam opt_mpc85xx.h SYS_CLK MEMSIZE
file arch/evbppc/mpc85xx/autoconf.c
Index: src/sys/arch/evbppc/mpc85xx/machdep.c
diff -u src/sys/arch/evbppc/mpc85xx/machdep.c:1.36 src/sys/arch/evbppc/mpc85xx/machdep.c:1.37
--- src/sys/arch/evbppc/mpc85xx/machdep.c:1.36 Fri Dec 19 04:31:41 2014
+++ src/sys/arch/evbppc/mpc85xx/machdep.c Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.36 2014/12/19 04:31:41 nonaka Exp $ */
+/* $NetBSD: machdep.c,v 1.37 2014/12/27 16:19:33 nonaka Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -207,14 +207,15 @@ static struct consdev e500_earlycons = {
static const struct cpunode_locators mpc8548_cpunode_locs[] = {
{ "cpu", 0, 0, 0, 0, { 0 }, 0, /* not a real device */
{ 0xffff, SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
-#if defined(MPC8572) || defined(P2020) || defined(P1025)
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
+#if defined(MPC8572) || defined(P2020) || defined(P1025) \
+ || defined(P1023)
{ "cpu", 0, 0, 1, 0, { 0 }, 0, /* not a real device */
{ SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
{ "cpu", 0, 0, 2, 0, { 0 }, 0, /* not a real device */
{ SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
#endif
{ "wdog" }, /* not a real device */
{ "duart", DUART1_BASE, 2*DUART_SIZE, 0,
@@ -223,7 +224,7 @@ static const struct cpunode_locators mpc
{ "tsec", ETSEC1_BASE, ETSEC_SIZE, 1,
3, { ISOURCE_ETSEC1_TX, ISOURCE_ETSEC1_RX, ISOURCE_ETSEC1_ERR },
1 + ilog2(DEVDISR_TSEC1),
- { 0xffff, SVR_P1025v1 >> 16 } },
+ { 0xffff, SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
#if defined(P1025)
{ "mdio", ETSEC1_BASE, ETSEC_SIZE, 1,
0, { },
@@ -366,30 +367,33 @@ static const struct cpunode_locators mpc
1 + ilog2(DEVDISR_PCI2),
{ SVR_MPC8548v1 >> 16 }, },
#endif
-#if defined(MPC8572) || defined(P1025) || defined(P2020)
+#if defined(MPC8572) || defined(P1025) || defined(P2020) \
+ || defined(P1023)
{ "pcie", PCIE1_BASE, PCI_SIZE, 1,
1, { ISOURCE_PCIEX },
1 + ilog2(DEVDISR_PCIE),
{ SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
{ "pcie", PCIE2_MPC8572_BASE, PCI_SIZE, 2,
1, { ISOURCE_PCIEX2 },
1 + ilog2(DEVDISR_PCIE2),
{ SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
#endif
-#if defined(MPC8572) || defined(P2020)
+#if defined(MPC8572) || defined(P2020) || defined(_P1023)
{ "pcie", PCIE3_MPC8572_BASE, PCI_SIZE, 3,
1, { ISOURCE_PCIEX3_MPC8572 },
1 + ilog2(DEVDISR_PCIE3),
- { SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16, } },
+ { SVR_MPC8572v1 >> 16, SVR_P2020v2 >> 16,
+ SVR_P1023v1 >> 16 } },
#endif
-#if defined(MPC8536) || defined(P1025) || defined(P2020)
+#if defined(MPC8536) || defined(P1025) || defined(P2020) \
+ || defined(P1023)
{ "ehci", USB1_BASE, USB_SIZE, 1,
1, { ISOURCE_USB1 },
1 + ilog2(DEVDISR_USB1),
{ SVR_MPC8536v1 >> 16, SVR_P2020v2 >> 16,
- SVR_P1025v1 >> 16 } },
+ SVR_P1025v1 >> 16, SVR_P1023v1 >> 16 } },
#endif
#ifdef MPC8536
{ "ehci", USB2_BASE, USB_SIZE, 2,
@@ -417,11 +421,14 @@ static const struct cpunode_locators mpc
1 + ilog2(DEVDISR_ESDHC_12),
{ SVR_MPC8536v1 >> 16 }, },
#endif
-#if defined(P1025) || defined(P2020)
+#if defined(P1025) || defined(P2020) || defined(P1023)
{ "spi", SPI_BASE, SPI_SIZE, 0,
1, { ISOURCE_SPI },
1 + ilog2(DEVDISR_SPI_28),
- { SVR_P2020v2 >> 16, SVR_P1025v1 >> 16 }, },
+ { SVR_P2020v2 >> 16, SVR_P1025v1 >> 16,
+ SVR_P1023v1 >> 16 }, },
+#endif
+#if defined(P1025) || defined(P2020)
{ "sdhc", ESDHC_BASE, ESDHC_SIZE, 0,
1, { ISOURCE_ESDHC },
1 + ilog2(DEVDISR_ESDHC_10),
@@ -681,6 +688,7 @@ getsvr(void)
case SVR_MPC8541v1 >> 16: return SVR_MPC8555v1 >> 16;
case SVR_P2010v2 >> 16: return SVR_P2020v2 >> 16;
case SVR_P1016v1 >> 16: return SVR_P1025v1 >> 16;
+ case SVR_P1017v1 >> 16: return SVR_P1023v1 >> 16;
default: return svr;
}
}
@@ -705,6 +713,8 @@ socname(uint32_t svr)
case SVR_P2020v2 >> 8: return "P2020";
case SVR_P2010v2 >> 8: return "P2010";
case SVR_P1016v1 >> 8: return "P1016";
+ case SVR_P1017v1 >> 8: return "P1017";
+ case SVR_P1023v1 >> 8: return "P1023";
case SVR_P1025v1 >> 8: return "P1025";
default:
panic("%s: unknown SVR %#x", __func__, svr);
@@ -1490,11 +1500,13 @@ cpu_startup(void)
break;
#endif
#if defined(MPC8544) || defined(MPC8572) || defined(MPC8536) \
- || defined(P1025) || defined(P2020)
+ || defined(P1025) || defined(P2020) || defined(P1023)
case SVR_MPC8536v1 >> 16:
case SVR_MPC8544v1 >> 16:
case SVR_MPC8572v1 >> 16:
case SVR_P1016v1 >> 16:
+ case SVR_P1017v1 >> 16:
+ case SVR_P1023v1 >> 16:
case SVR_P2010v2 >> 16:
case SVR_P2020v2 >> 16:
mpc85xx_pci_setup("pcie3-interrupt-map", 0x001800, IST_LEVEL,
Index: src/sys/arch/powerpc/booke/e500_intr.c
diff -u src/sys/arch/powerpc/booke/e500_intr.c:1.27 src/sys/arch/powerpc/booke/e500_intr.c:1.28
--- src/sys/arch/powerpc/booke/e500_intr.c:1.27 Sat Dec 20 17:55:07 2014
+++ src/sys/arch/powerpc/booke/e500_intr.c Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: e500_intr.c,v 1.27 2014/12/20 17:55:07 nonaka Exp $ */
+/* $NetBSD: e500_intr.c,v 1.28 2014/12/27 16:19:33 nonaka Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -39,7 +39,7 @@
#define __INTR_PRIVATE
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: e500_intr.c,v 1.27 2014/12/20 17:55:07 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: e500_intr.c,v 1.28 2014/12/27 16:19:33 nonaka Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -360,6 +360,29 @@ const struct e500_intr_name p20x0_onchip
INTR_INFO_DECL(p20x0, P20x0);
#endif
+#ifdef P1023
+#define p1023_external_intr_names default_external_intr_names
+const struct e500_intr_name p1023_onchip_intr_names[] = {
+ { ISOURCE_FMAN, "fman" },
+ { ISOURCE_MDIO, "mdio" },
+ { ISOURCE_QMAN0, "qman0" },
+ { ISOURCE_BMAN0, "bman0" },
+ { ISOURCE_QMAN1, "qman1" },
+ { ISOURCE_BMAN1, "bman1" },
+ { ISOURCE_QMAN2, "qman2" },
+ { ISOURCE_BMAN2, "bman2" },
+ { ISOURCE_SECURITY2_P1023, "sec2" },
+ { ISOURCE_SEC_GENERAL, "sec-general" },
+ { ISOURCE_DMA2_CHAN1, "dma2-chan1" },
+ { ISOURCE_DMA2_CHAN2, "dma2-chan2" },
+ { ISOURCE_DMA2_CHAN3, "dma2-chan3" },
+ { ISOURCE_DMA2_CHAN4, "dma2-chan4" },
+ { 0, "" },
+};
+
+INTR_INFO_DECL(p1023, P1023);
+#endif
+
static const char ist_names[][12] = {
[IST_NONE] = "none",
[IST_EDGE] = "edge",
@@ -1048,6 +1071,12 @@ e500_intr_init(void)
*ii = mpc8572_intr_info;
break;
#endif
+#ifdef P1023
+ case SVR_P1017v1 >> 16:
+ case SVR_P1023v1 >> 16:
+ *ii = p1023_intr_info;
+ break;
+#endif
#ifdef P1025
case SVR_P1016v1 >> 16:
case SVR_P1025v1 >> 16:
Index: src/sys/arch/powerpc/booke/dev/pq3gpio.c
diff -u src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.10 src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.11
--- src/sys/arch/powerpc/booke/dev/pq3gpio.c:1.10 Sat Dec 20 18:03:17 2014
+++ src/sys/arch/powerpc/booke/dev/pq3gpio.c Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: pq3gpio.c,v 1.10 2014/12/20 18:03:17 nonaka Exp $ */
+/* $NetBSD: pq3gpio.c,v 1.11 2014/12/27 16:19:33 nonaka Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -41,7 +41,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pq3gpio.c,v 1.10 2014/12/20 18:03:17 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pq3gpio.c,v 1.11 2014/12/27 16:19:33 nonaka Exp $");
#include <sys/param.h>
#include <sys/cpu.h>
@@ -161,9 +161,9 @@ pq3gpio_pin_ctl(void *v, int num, int ct
}
#endif
-#if defined(MPC8536) || defined(P2020)
+#if defined(MPC8536) || defined(P2020) || defined(P1023)
/*
- * MPC8536 / P20x0 have controllable input/output pins
+ * MPC8536 / P20x0 / P1023 have controllable input/output pins
*/
static void
pq3gpio_pin_ctl(void *v, int num, int ctl)
@@ -465,6 +465,43 @@ pq3gpio_p20x0_attach(device_t self, bus_
}
#endif /* P2020 */
+#ifdef P1023
+static void
+pq3gpio_p1023_attach(device_t self, bus_space_tag_t bst,
+ bus_space_handle_t bsh, u_int svr)
+{
+ static const uint32_t gpio2pmuxcr2_map[][3] = {
+ { __PPCBITS( 0, 1), __PPCBITS( 0, 1), 0 }, /* GPIO_1 */
+ { __PPCBIT(2), __PPCBITS( 2, 3), 0 }, /* GPUO_2 */
+ { __PPCBITS( 4, 5), __PPCBITS( 4, 5), 0 }, /* GPUO_3 */
+ { __PPCBITS( 6, 7), __PPCBITS( 6, 7), 0 }, /* GPUO_4 */
+ { __PPCBITS( 8, 9), __PPCBITS( 8, 9), 0 }, /* GPUO_5 */
+ { __PPCBITS(10,11), __PPCBITS(10,11), 0 }, /* GPUO_6 */
+ { __PPCBITS(12,13), __PPCBITS(12,13), 0 }, /* GPUO_7 */
+ { __PPCBITS(14,15), __PPCBITS(14,15), 0 }, /* GPUO_8 */
+ { __PPCBIT(3), __PPCBITS(18,19), 0 }, /* GPUO_9 */
+ };
+
+ uint32_t pinmask = 0xffff0000; /* assume all bits are valid */
+ size_t pincnt = 16;
+ const uint32_t pmuxcr2 = cpu_read_4(GLOBAL_BASE + PMUXCR2);
+ for (size_t i = 0; i < __arraycount(gpio2pmuxcr2_map); i++) {
+ const uint32_t *map = gpio2pmuxcr2_map[i];
+ if ((pmuxcr2 & map[1]) != map[2]) {
+ pinmask &= ~map[0];
+ pincnt--;
+ }
+ }
+
+ /*
+ * Create GPIO pin groups
+ */
+ aprint_normal_dev(self, "%zu input/output/opendrain pins\n", pincnt);
+ pq3gpio_group_create(self, bst, bsh, GPDAT, pinmask,
+ GPIO_PIN_INPUT|GPIO_PIN_OUTPUT|GPIO_PIN_OPENDRAIN, pq3gpio_pin_ctl);
+}
+#endif /* P1023 */
+
static const struct pq3gpio_svr_info {
uint16_t si_svr;
void (*si_attach)(device_t, bus_space_tag_t, bus_space_handle_t, u_int);
@@ -495,6 +532,10 @@ static const struct pq3gpio_svr_info {
{ SVR_P2020v2 >> 16, pq3gpio_p20x0_attach,
GPIO_BASE, GPIO_SIZE },
#endif
+#ifdef P1023
+ { SVR_P1023v1 >> 16, pq3gpio_p1023_attach,
+ GPIO_BASE, GPIO_SIZE },
+#endif
};
void
Index: src/sys/arch/powerpc/booke/pci/pq3pci.c
diff -u src/sys/arch/powerpc/booke/pci/pq3pci.c:1.19 src/sys/arch/powerpc/booke/pci/pq3pci.c:1.20
--- src/sys/arch/powerpc/booke/pci/pq3pci.c:1.19 Sat Dec 20 18:03:17 2014
+++ src/sys/arch/powerpc/booke/pci/pq3pci.c Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: pq3pci.c,v 1.19 2014/12/20 18:03:17 nonaka Exp $ */
+/* $NetBSD: pq3pci.c,v 1.20 2014/12/27 16:19:33 nonaka 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.19 2014/12/20 18:03:17 nonaka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pq3pci.c,v 1.20 2014/12/27 16:19:33 nonaka Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -92,6 +92,11 @@ __KERNEL_RCSID(0, "$NetBSD: pq3pci.c,v 1
__SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result), \
TRUTH_ENCODE(SVR_P1016v1, inst, PORDEVSR_##field, \
__SHIFTIN(field##_##P20x0##_##value, PORDEVSR_##field), result)
+#define PORDEVSR_P1023_TRUTH_ENCODE(inst, field, value, result) \
+ TRUTH_ENCODE(SVR_P1023v1, inst, PORDEVSR_##field, \
+ __SHIFTIN(field##_##value, PORDEVSR_##field), result), \
+ TRUTH_ENCODE(SVR_P1017v1, inst, PORDEVSR_##field, \
+ __SHIFTIN(field##_##value, PORDEVSR_##field), result)
#define PORDEVSR_TRUTH_ENCODE(svr, inst, field, value, result) \
TRUTH_ENCODE(svr, inst, PORDEVSR_##field, \
@@ -171,6 +176,21 @@ const struct e500_truthtab pq3pci_pcie_l
PORDEVSR_P1025_TRUTH_ENCODE(2, IOSEL, PCIE12_X1_SGMII23, 1),
#endif
+
+#ifdef P1023
+ PORDEVSR_P1023_TRUTH_ENCODE(1, IOSEL_P1023, PCIE12_X1, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(1, IOSEL_P1023, PCIE123_X1, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(1, IOSEL_P1023, PCIE123_X1_SGMII2, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(1, IOSEL_P1023, PCIE12_X1_SGMII12, 1),
+
+ PORDEVSR_P1023_TRUTH_ENCODE(2, IOSEL_P1023, PCIE12_X1, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(2, IOSEL_P1023, PCIE123_X1, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(2, IOSEL_P1023, PCIE123_X1_SGMII2, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(2, IOSEL_P1023, PCIE12_X1_SGMII12, 1),
+
+ PORDEVSR_P1023_TRUTH_ENCODE(3, IOSEL_P1023, PCIE123_X1, 1),
+ PORDEVSR_P1023_TRUTH_ENCODE(3, IOSEL_P1023, PCIE123_X1_SGMII2, 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.14 src/sys/arch/powerpc/include/booke/e500reg.h:1.15
--- src/sys/arch/powerpc/include/booke/e500reg.h:1.14 Thu Jul 26 18:41:32 2012
+++ src/sys/arch/powerpc/include/booke/e500reg.h Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: e500reg.h,v 1.14 2012/07/26 18:41:32 matt Exp $ */
+/* $NetBSD: e500reg.h,v 1.15 2014/12/27 16:19:33 nonaka Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -394,6 +394,11 @@
#define PORDEVSR_PCI1 __PPCBIT(8)
#define PCI1_PCIX 0
#define PCI1_PCI1 1
+#define PORDEVSR_IOSEL_P1023 __PPCBITS(9,10)
+#define IOSEL_P1023_PCIE12_X1 0
+#define IOSEL_P1023_PCIE123_X1 1
+#define IOSEL_P1023_PCIE123_X1_SGMII2 2
+#define IOSEL_P1023_PCIE12_X1_SGMII12 3
#define PORDEVSR_IOSEL __PPCBITS(9,12)
#define IOSEL_MPC8536_OFF 0x01
#define IOSEL_MPC8536_PCIE1_X4 0x02
@@ -496,11 +501,16 @@
#define PMUXCR_DMA1 __PPCBIT(30)
#define PMUXCR_DMA3 __PPCBIT(31)
+#define PMUXCR2 0x064 /* Alternate function signal multiplex control2 */
+
/* Device Disables */
#define DEVDISR 0x070 /* Device disable control */
#define DEVDISR_PCI1 __PPCBIT(0)
+#define DEVDISR_QMAN_BMAN __PPCBIT(0) /* P1023 */
#define DEVDISR_PCI2 __PPCBIT(1)
+#define DEVDISR_FMAN __PPCBIT(1) /* P1023 */
#define DEVDISR_PCIE __PPCBIT(2)
+#define DEVDISR_MACSEC __PPCBIT(3) /* P1023 */
#define DEVDISR_LBC __PPCBIT(4)
#define DEVDISR_PCIE2 __PPCBIT(5)
#define DEVDISR_PCIE3 __PPCBIT(6)
Index: src/sys/arch/powerpc/include/booke/openpicreg.h
diff -u src/sys/arch/powerpc/include/booke/openpicreg.h:1.6 src/sys/arch/powerpc/include/booke/openpicreg.h:1.7
--- src/sys/arch/powerpc/include/booke/openpicreg.h:1.6 Sun Jul 15 08:44:57 2012
+++ src/sys/arch/powerpc/include/booke/openpicreg.h Sat Dec 27 16:19:33 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: openpicreg.h,v 1.6 2012/07/15 08:44:57 matt Exp $ */
+/* $NetBSD: openpicreg.h,v 1.7 2014/12/27 16:19:33 nonaka Exp $ */
/*-
* Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -275,6 +275,30 @@
+ MPC8572_TIMERSOURCES \
+ MPC8572_MISOURCES))
+#define P1023_EXTERNALSOURCES 12
+#define P1023_ONCHIPSOURCES 64
+#define P1023_ONCHIPBITMAP { 0xbc07f5f9, 0xf0000e00 }
+#define P1023_IPISOURCES 4
+#define P1023_TIMERSOURCES 4/*8?*/
+#define P1023_MISOURCES 4/*8?*/
+#define P1023_MSIGROUPSOURCES 8
+#define P1023_NCPUS 2
+#define P1023_SOURCES /* 116 */ \
+ (P1023_EXTERNALSOURCES \
+ + P1023_ONCHIPSOURCES \
+ + P1023_MSIGROUPSOURCES \
+ + P1023_NCPUS*(P1023_IPISOURCES \
+ + P1023_TIMERSOURCES \
+ + P1023_MISOURCES))
+#define P1017_NCPUS 1
+#define P1017_SOURCES \
+ (P1023_EXTERNALSOURCES \
+ + P1023_ONCHIPSOURCES \
+ + P1023_MSIGROUPSOURCES \
+ + P1017_NCPUS*(P1023_IPISOURCES \
+ + P1023_TIMERSOURCES \
+ + P1023_MISOURCES))
+
#define P1025_EXTERNALSOURCES 6
#define P1025_ONCHIPSOURCES 64
#define P1025_ONCHIPBITMAP { 0xbd1fffff, 0x01789c18 }
@@ -348,20 +372,28 @@
#define ISOURCE_PCIEX3_MPC8572 8 /* MPC8572/P20x0/P1025 */
#define ISOURCE_PCI1 8 /* MPC8548/MPC8544/MPC8536/MPC8555 */
#define ISOURCE_ETSEC1_G1_ERR 8 /* P1025 */
+#define ISOURCE_FMAN 8 /* P1023 */
#define ISOURCE_PCI2 9 /* MPC8548 */
#define ISOURCE_PCIEX2 9 /* MPC8544/MPC8572/MPC8536/P20x0 */
#define ISOURCE_ETSEC3_G1_TX 9 /* P1025 */
#define ISOURCE_PCIEX 10
#define ISOURCE_ETSEC3_G1_RX 10 /* P1025 */
+#define ISOURCE_MDIO 10 /* P1023 */
#define ISOURCE_PCIEX3 11 /* MPC8544/MPC8536 */
#define ISOURCE_ETSEC3_G1_ERR 11 /* P1025 */
-#define ISOURCE_USB1 12 /* MPC8536/P20x0/P1025 */
+#define ISOURCE_USB1 12 /* MPC8536/P20x0/P1025/P1023 */
#define ISOURCE_ETSEC1_TX 13
+#define ISOURCE_QMAN0 13 /* P1023 */
#define ISOURCE_ETSEC1_RX 14
+#define ISOURCE_BMAN0 14 /* P1023 */
#define ISOURCE_ETSEC3_TX 15
+#define ISOURCE_QMAN1 15 /* P1023 */
#define ISOURCE_ETSEC3_RX 16
+#define ISOURCE_BMAN1 16 /* P1023 */
#define ISOURCE_ETSEC3_ERR 17
+#define ISOURCE_QMAN2 17 /* P1023 */
#define ISOURCE_ETSEC1_ERR 18
+#define ISOURCE_BMAN2 18 /* P1023 */
#define ISOURCE_ETSEC2_TX 19 /* !MPC8544/!MPC8536/!P1025 */
#define ISOURCE_ETSEC2_RX 20 /* !MPC8544/!MPC8536/!P1025 */
#define ISOURCE_ETSEC4_TX 21 /* !MPC8544/!MPC8536/!P20x0/!P1025 */
@@ -389,7 +421,9 @@
#define ISOURCE_SRIO_OMU2 39 /* !MPC8548&!P20x0&!P1025 */
#define ISOURCE_SRIO_IMU2 40 /* !MPC8548&!P20x0&!P1025 */
#define ISOURCE_PME_GENERAL 41 /* MPC8572 */
+#define ISOURCE_SECURITY2_P1023 41 /* P1023 */
#define ISOURCE_SECURITY2 42 /* MPC8572|MPC8536|P20x0|P1025 */
+#define ISOURCE_SEC_GENERAL 42 /* P1023 */
#define ISOURCE_SPI 43 /* MPC8536|P20x0|P1025 */
#define ISOURCE_QEB_IECC 43 /* MPC8568 */
#define ISOURCE_USB3 44 /* MPC8536 */
@@ -410,9 +444,9 @@
#define ISOURCE_57 57
#define ISOURCE_SATA1 58 /* MPC8536 */
#define ISOURCE_TLU2 59 /* MPC8572 */
-#define ISOURCE_DMA2_CHAN1 60 /* MPC8572|P20x0 */
-#define ISOURCE_DMA2_CHAN2 61 /* MPC8572|P20x0 */
-#define ISOURCE_DMA2_CHAN3 62 /* MPC8572|P20x0 */
-#define ISOURCE_DMA2_CHAN4 63 /* MPC8572|P20x0 */
+#define ISOURCE_DMA2_CHAN1 60 /* MPC8572|P20x0|P1023 */
+#define ISOURCE_DMA2_CHAN2 61 /* MPC8572|P20x0|P1023 */
+#define ISOURCE_DMA2_CHAN3 62 /* MPC8572|P20x0|P1023 */
+#define ISOURCE_DMA2_CHAN4 63 /* MPC8572|P20x0|P1023 */
#endif /* _POWERPC_BOOKE_OPENPICREG_H_ */