Module Name: src
Committed By: kiyohara
Date: Mon Dec 23 04:12:09 UTC 2013
Modified Files:
src/sys/arch/arm/marvell: armadaxp.c kirkwood.c mvsoc.c mvsocreg.h
mvsocvar.h
src/sys/arch/evbarm/armadaxp: armadaxp_machdep.c
src/sys/arch/evbarm/marvell: marvell_machdep.c
Log Message:
Support to check the clock gating for Armada XP in armadaxp.c.
Also move the checking for clock gate of Kirkwood into kirkwood.c.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/marvell/armadaxp.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/marvell/kirkwood.c \
src/sys/arch/arm/marvell/mvsocreg.h
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/marvell/mvsoc.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/marvell/mvsocvar.h
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c
cvs rdiff -u -r1.25 -r1.26 src/sys/arch/evbarm/marvell/marvell_machdep.c
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/marvell/armadaxp.c
diff -u src/sys/arch/arm/marvell/armadaxp.c:1.5 src/sys/arch/arm/marvell/armadaxp.c:1.6
--- src/sys/arch/arm/marvell/armadaxp.c:1.5 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/arm/marvell/armadaxp.c Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: armadaxp.c,v 1.5 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: armadaxp.c,v 1.6 2013/12/23 04:12:09 kiyohara Exp $ */
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates
@@ -37,7 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
*******************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: armadaxp.c,v 1.5 2013/12/23 03:19:43 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: armadaxp.c,v 1.6 2013/12/23 04:12:09 kiyohara Exp $");
#define _INTR_PRIVATE
@@ -149,6 +149,37 @@ static struct pic_softc armadaxp_pic = {
.pic_name = "armadaxp",
};
+static struct {
+ bus_size_t offset;
+ uint32_t bits;
+} clkgatings[]= {
+ { ARMADAXP_GBE3_BASE, (1 << 1) },
+ { ARMADAXP_GBE2_BASE, (1 << 2) },
+ { ARMADAXP_GBE1_BASE, (1 << 3) },
+ { ARMADAXP_GBE0_BASE, (1 << 4) },
+ { MVSOC_PEX_BASE, (1 << 5) },
+ { ARMADAXP_PEX01_BASE, (1 << 6) },
+ { ARMADAXP_PEX02_BASE, (1 << 7) },
+ { ARMADAXP_PEX03_BASE, (1 << 8) },
+ { ARMADAXP_PEX10_BASE, (1 << 9) },
+ { ARMADAXP_PEX11_BASE, (1 << 10) },
+ { ARMADAXP_PEX12_BASE, (1 << 11) },
+ { ARMADAXP_PEX13_BASE, (1 << 12) },
+#if 0
+ { NetA, (1 << 13) },
+#endif
+ { ARMADAXP_SATAHC_BASE, (1 << 14) | (1 << 15) | (1 << 29) | (1 << 30) },
+ { ARMADAXP_LCD_BASE, (1 << 16) },
+ { ARMADAXP_SDIO_BASE, (1 << 17) },
+ { ARMADAXP_USB1_BASE, (1 << 19) },
+ { ARMADAXP_USB2_BASE, (1 << 20) },
+ { ARMADAXP_PEX2_BASE, (1 << 26) },
+ { ARMADAXP_PEX3_BASE, (1 << 27) },
+#if 0
+ { DDR, (1 << 28) },
+#endif
+};
+
/*
* armadaxp_intr_bootstrap:
*
@@ -420,3 +451,22 @@ armadaxp_io_coherency_init(void)
/* Mark as enabled */
iocc_state = 1;
}
+
+int
+armadaxp_clkgating(struct marvell_attach_args *mva)
+{
+ uint32_t val;
+ int i;
+
+ for (i = 0; i < __arraycount(clkgatings); i++) {
+ if (clkgatings[i].offset == mva->mva_offset) {
+ val = read_miscreg(ARMADAXP_MISC_PMCGC);
+ if ((val & clkgatings[i].bits) == clkgatings[i].bits)
+ /* Clock enabled */
+ return 0;
+ return 1;
+ }
+ }
+ /* Clock Gating not support */
+ return 0;
+}
Index: src/sys/arch/arm/marvell/kirkwood.c
diff -u src/sys/arch/arm/marvell/kirkwood.c:1.7 src/sys/arch/arm/marvell/kirkwood.c:1.8
--- src/sys/arch/arm/marvell/kirkwood.c:1.7 Thu Sep 6 03:05:41 2012
+++ src/sys/arch/arm/marvell/kirkwood.c Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: kirkwood.c,v 1.7 2012/09/06 03:05:41 msaitoh Exp $ */
+/* $NetBSD: kirkwood.c,v 1.8 2013/12/23 04:12:09 kiyohara Exp $ */
/*
* Copyright (c) 2010 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kirkwood.c,v 1.7 2012/09/06 03:05:41 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kirkwood.c,v 1.8 2013/12/23 04:12:09 kiyohara Exp $");
#define _INTR_PRIVATE
@@ -88,6 +88,27 @@ static struct pic_softc kirkwood_pic = {
.pic_name = "kirkwood",
};
+static struct {
+ bus_size_t offset;
+ uint32_t bits;
+} clkgatings[]= {
+ { KIRKWOOD_GBE0_BASE, (1 << 0) },
+ { MVSOC_PEX_BASE, (1 << 2) },
+ { KIRKWOOD_USB_BASE, (1 << 3) },
+ { KIRKWOOD_SDIO_BASE, (1 << 4) },
+ { KIRKWOOD_MTS_BASE, (1 << 5) },
+#if 0
+ { Dunit, (1 << 6) }, /* SDRAM Unit Clock */
+ { Runit, (1 << 7) }, /* Runit Clock */
+#endif
+ { KIRKWOOD_IDMAC_BASE, (1 << 8) | (1 << 16) },
+ { KIRKWOOD_AUDIO_BASE, (1 << 9) },
+ { KIRKWOOD_SATAHC_BASE, (1 << 14) | (1 << 15) },
+ { KIRKWOOD_CESA_BASE, (1 << 17) },
+ { KIRKWOOD_GBE1_BASE, (1 << 19) },
+ { KIRKWOOD_TDM_BASE, (1 << 20) },
+};
+
/*
* kirkwood_intr_bootstrap:
@@ -260,3 +281,22 @@ kirkwood_getclks(bus_addr_t iobase)
#undef MHz
}
+
+int
+kirkwood_clkgating(struct marvell_attach_args *mva)
+{
+ uint32_t val;
+ int i;
+
+ for (i = 0; i < __arraycount(clkgatings); i++) {
+ if (clkgatings[i].offset == mva->mva_offset) {
+ val = read_mlmbreg(MVSOC_MLMB_CLKGATING);
+ if ((val & clkgatings[i].bits) == clkgatings[i].bits)
+ /* Clock enabled */
+ return 0;
+ return 1;
+ }
+ }
+ /* Clock Gating not support */
+ return 0;
+}
Index: src/sys/arch/arm/marvell/mvsocreg.h
diff -u src/sys/arch/arm/marvell/mvsocreg.h:1.7 src/sys/arch/arm/marvell/mvsocreg.h:1.8
--- src/sys/arch/arm/marvell/mvsocreg.h:1.7 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/arm/marvell/mvsocreg.h Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsocreg.h,v 1.7 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: mvsocreg.h,v 1.8 2013/12/23 04:12:09 kiyohara Exp $ */
/*
* Copyright (c) 2007, 2008 KIYOHARA Takashi
* All rights reserved.
@@ -112,6 +112,10 @@
#define MVSOC_MLMB_MLMBIMR 0x114 /*Mb-L to Mb Bridge Intr Mask */
#define MVSOC_MLMB_CLKGATING 0x11c /* Clock Gating Control */
+#define MVSOC_MLMB_CLKGATING_LNR (1 << 13) /* Load New Ratio */
+#define MVSOC_MLMB_CLKGATING_GPH (1 << 12) /* Go To Power Half */
+#define MVSOC_MLMB_CLKGATING_GPS (1 << 11) /* Go To Power Save */
+#define MVSOC_MLMB_CLKGATING_CR (1 << 10) /* Production Realignment */
#define MVSOC_MLMB_CLKGATING_BIT(n) (1 << (n))
#define MVSOC_MLMB_L2CFG 0x128 /* L2 Cache Config */
Index: src/sys/arch/arm/marvell/mvsoc.c
diff -u src/sys/arch/arm/marvell/mvsoc.c:1.15 src/sys/arch/arm/marvell/mvsoc.c:1.16
--- src/sys/arch/arm/marvell/mvsoc.c:1.15 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/arm/marvell/mvsoc.c Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsoc.c,v 1.15 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: mvsoc.c,v 1.16 2013/12/23 04:12:09 kiyohara Exp $ */
/*
* Copyright (c) 2007, 2008 KIYOHARA Takashi
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvsoc.c,v 1.15 2013/12/23 03:19:43 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvsoc.c,v 1.16 2013/12/23 04:12:09 kiyohara Exp $");
#include "opt_cputypes.h"
#include "opt_mvsoc.h"
@@ -70,6 +70,7 @@ static vaddr_t regbase = 0xffffffff, dsc
vaddr_t mlmb_base;
void (*mvsoc_intr_init)(void);
+int (*mvsoc_clkgating)(struct marvell_attach_args *);
#ifdef MVSOC_CONSOLE_EARLY
@@ -345,7 +346,6 @@ static const struct mvsoc_periph {
int unit;
bus_size_t offset;
int irq;
- uint32_t clkpwr_bit;
} mvsoc_periphs[] = {
#if defined(ORION)
#define ORION_IRQ_TMR (32 + MVSOC_MLMB_MLMBI_CPUTIMER0INTREQ)
@@ -490,23 +490,15 @@ static const struct mvsoc_periph {
{ KIRKWOOD(88F6281),"mvsocrtc",0, KIRKWOOD_RTC_BASE,IRQ_DEFAULT },
{ KIRKWOOD(88F6281),"com", 0, MVSOC_COM0_BASE, KIRKWOOD_IRQ_UART0INT },
{ KIRKWOOD(88F6281),"com", 1, MVSOC_COM1_BASE, KIRKWOOD_IRQ_UART1INT },
- { KIRKWOOD(88F6281),"ehci", 0, KIRKWOOD_USB_BASE,KIRKWOOD_IRQ_USB0CNT,
- MVSOC_MLMB_CLKGATING_BIT(3) },
+ { KIRKWOOD(88F6281),"ehci", 0, KIRKWOOD_USB_BASE,KIRKWOOD_IRQ_USB0CNT },
{ KIRKWOOD(88F6281),"gtidmac", 0, KIRKWOOD_IDMAC_BASE,IRQ_DEFAULT },
{ KIRKWOOD(88F6281),"gttwsi", 0, MVSOC_TWSI_BASE, KIRKWOOD_IRQ_TWSI },
- { KIRKWOOD(88F6281),"mvcesa", 0, KIRKWOOD_CESA_BASE,KIRKWOOD_IRQ_SECURITYINT,
- MVSOC_MLMB_CLKGATING_BIT(17) },
- { KIRKWOOD(88F6281),"mvgbec", 0, KIRKWOOD_GBE0_BASE,IRQ_DEFAULT,
- MVSOC_MLMB_CLKGATING_BIT(0) },
- { KIRKWOOD(88F6281),"mvgbec", 1, KIRKWOOD_GBE1_BASE,IRQ_DEFAULT,
- MVSOC_MLMB_CLKGATING_BIT(19) },
- { KIRKWOOD(88F6281),"mvpex", 0, MVSOC_PEX_BASE, KIRKWOOD_IRQ_PEX0INT,
- MVSOC_MLMB_CLKGATING_BIT(2) },
- { KIRKWOOD(88F6281),"mvsata", 0, KIRKWOOD_SATAHC_BASE,KIRKWOOD_IRQ_SATA,
- MVSOC_MLMB_CLKGATING_BIT(14) |
- MVSOC_MLMB_CLKGATING_BIT(15) },
- { KIRKWOOD(88F6281),"mvsdio", 0, KIRKWOOD_SDIO_BASE,KIRKWOOD_IRQ_SDIOINT,
- MVSOC_MLMB_CLKGATING_BIT(4) },
+ { KIRKWOOD(88F6281),"mvcesa", 0, KIRKWOOD_CESA_BASE,KIRKWOOD_IRQ_SECURITYINT },
+ { KIRKWOOD(88F6281),"mvgbec", 0, KIRKWOOD_GBE0_BASE,IRQ_DEFAULT },
+ { KIRKWOOD(88F6281),"mvgbec", 1, KIRKWOOD_GBE1_BASE,IRQ_DEFAULT },
+ { KIRKWOOD(88F6281),"mvpex", 0, MVSOC_PEX_BASE, KIRKWOOD_IRQ_PEX0INT },
+ { KIRKWOOD(88F6281),"mvsata", 0, KIRKWOOD_SATAHC_BASE,KIRKWOOD_IRQ_SATA },
+ { KIRKWOOD(88F6281),"mvsdio", 0, KIRKWOOD_SDIO_BASE,KIRKWOOD_IRQ_SDIOINT },
{ KIRKWOOD(88F6282),"mvsoctmr",0, MVSOC_TMR_BASE, KIRKWOOD_IRQ_TMR },
{ KIRKWOOD(88F6282),"mvsocgpp",0, MVSOC_GPP_BASE, KIRKWOOD_IRQ_GPIOLO7_0},
@@ -561,7 +553,7 @@ static const struct mvsoc_periph {
{ ARMADAXP(MV78130), "com", 1, MVSOC_COM1_BASE, ARMADAXP_IRQ_UART1 },
{ ARMADAXP(MV78130), "com", 2, ARMADAXP_COM2_BASE,ARMADAXP_IRQ_UART2 },
{ ARMADAXP(MV78130), "com", 3, ARMADAXP_COM3_BASE,ARMADAXP_IRQ_UART3 },
- { ARMADAXP(MV78130), "mvsocrtc",0, ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
+ { ARMADAXP(MV78130), "mvsocrtc",0,ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
{ ARMADAXP(MV78130), "gttwsi", 0, MVSOC_TWSI_BASE, ARMADAXP_IRQ_TWSI0 },
{ ARMADAXP(MV78130), "gttwsi", 1, ARMADAXP_TWSI1_BASE,ARMADAXP_IRQ_TWSI1 },
{ ARMADAXP(MV78130), "gtidmac",0, ARMADAXP_XORE0_BASE,IRQ_DEFAULT },
@@ -587,7 +579,7 @@ static const struct mvsoc_periph {
{ ARMADAXP(MV78160), "com", 1, MVSOC_COM1_BASE, ARMADAXP_IRQ_UART1 },
{ ARMADAXP(MV78160), "com", 2, ARMADAXP_COM2_BASE,ARMADAXP_IRQ_UART2 },
{ ARMADAXP(MV78160), "com", 3, ARMADAXP_COM3_BASE,ARMADAXP_IRQ_UART3 },
- { ARMADAXP(MV78160), "mvsocrtc",0, ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
+ { ARMADAXP(MV78160), "mvsocrtc",0,ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
{ ARMADAXP(MV78160), "gttwsi", 0, MVSOC_TWSI_BASE, ARMADAXP_IRQ_TWSI0 },
{ ARMADAXP(MV78160), "gttwsi", 1, ARMADAXP_TWSI1_BASE,ARMADAXP_IRQ_TWSI1 },
{ ARMADAXP(MV78160), "gtidmac",0, ARMADAXP_XORE0_BASE,IRQ_DEFAULT },
@@ -615,7 +607,7 @@ static const struct mvsoc_periph {
{ ARMADAXP(MV78230), "com", 1, MVSOC_COM1_BASE, ARMADAXP_IRQ_UART1 },
{ ARMADAXP(MV78230), "com", 2, ARMADAXP_COM2_BASE,ARMADAXP_IRQ_UART2 },
{ ARMADAXP(MV78230), "com", 3, ARMADAXP_COM3_BASE,ARMADAXP_IRQ_UART3 },
- { ARMADAXP(MV78230), "mvsocrtc",0, ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
+ { ARMADAXP(MV78230), "mvsocrtc",0,ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
{ ARMADAXP(MV78230), "gttwsi", 0, MVSOC_TWSI_BASE, ARMADAXP_IRQ_TWSI0 },
{ ARMADAXP(MV78230), "gttwsi", 1, ARMADAXP_TWSI1_BASE,ARMADAXP_IRQ_TWSI1 },
{ ARMADAXP(MV78230), "gtidmac",0, ARMADAXP_XORE0_BASE,IRQ_DEFAULT },
@@ -642,7 +634,7 @@ static const struct mvsoc_periph {
{ ARMADAXP(MV78260), "com", 1, MVSOC_COM1_BASE, ARMADAXP_IRQ_UART1 },
{ ARMADAXP(MV78260), "com", 2, ARMADAXP_COM2_BASE,ARMADAXP_IRQ_UART2 },
{ ARMADAXP(MV78260), "com", 3, ARMADAXP_COM3_BASE,ARMADAXP_IRQ_UART3 },
- { ARMADAXP(MV78260), "mvsocrtc",0, ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
+ { ARMADAXP(MV78260), "mvsocrtc",0,ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
{ ARMADAXP(MV78260), "gttwsi", 0, MVSOC_TWSI_BASE, ARMADAXP_IRQ_TWSI0 },
{ ARMADAXP(MV78260), "gttwsi", 1, ARMADAXP_TWSI1_BASE,ARMADAXP_IRQ_TWSI1 },
{ ARMADAXP(MV78260), "gtidmac",0, ARMADAXP_XORE0_BASE,IRQ_DEFAULT },
@@ -670,7 +662,7 @@ static const struct mvsoc_periph {
{ ARMADAXP(MV78460), "com", 1, MVSOC_COM1_BASE, ARMADAXP_IRQ_UART1 },
{ ARMADAXP(MV78460), "com", 2, ARMADAXP_COM2_BASE,ARMADAXP_IRQ_UART2 },
{ ARMADAXP(MV78460), "com", 3, ARMADAXP_COM3_BASE,ARMADAXP_IRQ_UART3 },
- { ARMADAXP(MV78460), "mvsocrtc",0, ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
+ { ARMADAXP(MV78460), "mvsocrtc",0,ARMADAXP_RTC_BASE,ARMADAXP_IRQ_RTC },
{ ARMADAXP(MV78460), "gttwsi", 0, MVSOC_TWSI_BASE, ARMADAXP_IRQ_TWSI0 },
{ ARMADAXP(MV78460), "gttwsi", 1, ARMADAXP_TWSI1_BASE,ARMADAXP_IRQ_TWSI1 },
{ ARMADAXP(MV78460), "gtidmac",0, ARMADAXP_XORE0_BASE,IRQ_DEFAULT },
@@ -716,7 +708,6 @@ mvsoc_attach(device_t parent, device_t s
struct marvell_attach_args mva;
uint16_t model;
uint8_t rev;
- uint32_t clkpwr, clkpwrbit;
int i;
sc->sc_dev = self;
@@ -756,20 +747,6 @@ mvsoc_attach(device_t parent, device_t s
if (mvsoc_periphs[i].model != model)
continue;
- /* Skip clock disabled devices */
- clkpwrbit = mvsoc_periphs[i].clkpwr_bit;
- if (clkpwrbit != 0) {
- clkpwr = read_mlmbreg(MVSOC_MLMB_CLKGATING);
-
- if ((clkpwr & clkpwrbit) == 0) {
- aprint_normal("%s: %s%d clock disabled\n",
- device_xname(self),
- mvsoc_periphs[i].name,
- mvsoc_periphs[i].unit);
- continue;
- }
- }
-
mva.mva_name = mvsoc_periphs[i].name;
mva.mva_model = model;
mva.mva_revision = rev;
@@ -782,6 +759,13 @@ mvsoc_attach(device_t parent, device_t s
mva.mva_dmat = sc->sc_dmat;
mva.mva_irq = mvsoc_periphs[i].irq;
+ /* Skip clock disabled devices */
+ if (mvsoc_clkgating != NULL && mvsoc_clkgating(&mva)) {
+ aprint_normal_dev(self, "%s%d clock disabled\n",
+ mvsoc_periphs[i].name, mvsoc_periphs[i].unit);
+ continue;
+ }
+
config_found_sm_loc(sc->sc_dev, "mvsoc", NULL, &mva,
mvsoc_print, mvsoc_search);
}
Index: src/sys/arch/arm/marvell/mvsocvar.h
diff -u src/sys/arch/arm/marvell/mvsocvar.h:1.6 src/sys/arch/arm/marvell/mvsocvar.h:1.7
--- src/sys/arch/arm/marvell/mvsocvar.h:1.6 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/arm/marvell/mvsocvar.h Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mvsocvar.h,v 1.6 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: mvsocvar.h,v 1.7 2013/12/23 04:12:09 kiyohara Exp $ */
/*
* Copyright (c) 2007, 2010 KIYOHARA Takashi
* All rights reserved.
@@ -122,16 +122,20 @@ enum mvsoc_tags {
};
int mvsoc_target(int, uint32_t *, uint32_t *, uint32_t *, uint32_t *);
+extern int (*mvsoc_clkgating)(struct marvell_attach_args *);
+
void orion_intr_bootstrap(void);
void orion_getclks(bus_addr_t);
void kirkwood_intr_bootstrap(void);
void kirkwood_getclks(bus_addr_t);
+int kirkwood_clkgating(struct marvell_attach_args *);
void mv78xx0_intr_bootstrap(void);
void mv78xx0_getclks(bus_addr_t);
void armadaxp_intr_bootstrap(bus_addr_t);
void armadaxp_getclks(void);
+int armadaxp_clkgating(struct marvell_attach_args *);
#endif /* _MVSOCVAR_H_ */
Index: src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c
diff -u src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c:1.5 src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c:1.6
--- src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c:1.5 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/evbarm/armadaxp/armadaxp_machdep.c Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: armadaxp_machdep.c,v 1.5 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: armadaxp_machdep.c,v 1.6 2013/12/23 04:12:09 kiyohara Exp $ */
/*******************************************************************************
Copyright (C) Marvell International Ltd. and its affiliates
@@ -37,7 +37,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
*******************************************************************************/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: armadaxp_machdep.c,v 1.5 2013/12/23 03:19:43 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: armadaxp_machdep.c,v 1.6 2013/12/23 04:12:09 kiyohara Exp $");
#include "opt_machdep.h"
#include "opt_mvsoc.h"
@@ -356,6 +356,7 @@ initarm(void *arg)
extern vaddr_t misc_base;
misc_base = MARVELL_INTERREGS_VBASE + ARMADAXP_MISC_BASE;
armadaxp_getclks();
+ mvsoc_clkgating = armadaxp_clkgating;
/* Preconfigure interrupts */
armadaxp_intr_bootstrap(MARVELL_INTERREGS_PBASE);
Index: src/sys/arch/evbarm/marvell/marvell_machdep.c
diff -u src/sys/arch/evbarm/marvell/marvell_machdep.c:1.25 src/sys/arch/evbarm/marvell/marvell_machdep.c:1.26
--- src/sys/arch/evbarm/marvell/marvell_machdep.c:1.25 Mon Dec 23 03:19:43 2013
+++ src/sys/arch/evbarm/marvell/marvell_machdep.c Mon Dec 23 04:12:09 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: marvell_machdep.c,v 1.25 2013/12/23 03:19:43 kiyohara Exp $ */
+/* $NetBSD: marvell_machdep.c,v 1.26 2013/12/23 04:12:09 kiyohara Exp $ */
/*
* Copyright (c) 2007, 2008, 2010 KIYOHARA Takashi
* All rights reserved.
@@ -25,7 +25,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: marvell_machdep.c,v 1.25 2013/12/23 03:19:43 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: marvell_machdep.c,v 1.26 2013/12/23 04:12:09 kiyohara Exp $");
#include "opt_evbarm_boardtype.h"
#include "opt_ddb.h"
@@ -314,6 +314,7 @@ initarm(void *arg)
nremap = KIRKWOOD_MLMB_NREMAP;
kirkwood_getclks(MARVELL_INTERREGS_VBASE);
+ mvsoc_clkgating = kirkwood_clkgating;
break;
#endif /* KIRKWOOD */
@@ -351,6 +352,7 @@ initarm(void *arg)
extern vaddr_t misc_base;
misc_base = MARVELL_INTERREGS_VBASE + ARMADAXP_MISC_BASE;
armadaxp_getclks();
+ mvsoc_clkgating = armadaxp_clkgating;
#ifdef L2CACHE_ENABLE
/* Initialize L2 Cache */