Module Name: src
Committed By: nonaka
Date: Sun Aug 12 17:25:32 UTC 2012
Modified Files:
src/sys/arch/zaurus/zaurus: machdep.c zaurus_reg.h
Log Message:
To reset the watchdog timer in SL-C7x0/SL-C860.
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/arch/zaurus/zaurus/machdep.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/zaurus/zaurus/zaurus_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/zaurus/zaurus/machdep.c
diff -u src/sys/arch/zaurus/zaurus/machdep.c:1.31 src/sys/arch/zaurus/zaurus/machdep.c:1.32
--- src/sys/arch/zaurus/zaurus/machdep.c:1.31 Sun Jul 29 00:07:06 2012
+++ src/sys/arch/zaurus/zaurus/machdep.c Sun Aug 12 17:25:32 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.31 2012/07/29 00:07:06 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.32 2012/08/12 17:25:32 nonaka Exp $ */
/* $OpenBSD: zaurus_machdep.c,v 1.25 2006/06/20 18:24:04 todd Exp $ */
/*
@@ -107,7 +107,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.31 2012/07/29 00:07:06 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.32 2012/08/12 17:25:32 nonaka Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -163,6 +163,8 @@ __KERNEL_RCSID(0, "$NetBSD: machdep.c,v
#include <arm/xscale/pxa2x0var.h>
#include <arm/xscale/pxa2x0_gpio.h>
+#include <arm/sa11x0/sa11x0_ostvar.h>
+
#include <arch/zaurus/zaurus/zaurus_reg.h>
#include <arch/zaurus/zaurus/zaurus_var.h>
@@ -457,11 +459,16 @@ zaurus_restart(void)
/* External reset circuit presumably asserts nRESET_GPIO. */
pxa2x0_gpio_set_function(89, GPIO_OUT | GPIO_SET);
- } else if (ZAURUS_ISC860) {
- /* XXX not yet */
- printf("zaurus_restart() for C7x0 is not implemented yet.\n");
+ } else {
+ /* SL-C7x0/SL-C860 */
+ /* Clear all reset status */
+ ioreg_write(ZAURUS_POWMAN_VBASE + POWMAN_RCSR,
+ POWMAN_HWR|POWMAN_WDR|POWMAN_SMR|POWMAN_GPR);
+
+ /* watchdog reset */
+ saost_reset();
}
- delay(1 * 1000* 1000); /* wait 1s */
+ delay(1 * 1000 * 1000); /* wait 1s */
}
static inline pd_entry_t *
@@ -546,6 +553,12 @@ static const struct pmap_devmap zaurus_d
_S(4 * COM_NPORTS),
VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE,
},
+ {
+ ZAURUS_POWMAN_VBASE,
+ _A(PXA2X0_POWMAN_BASE),
+ _S(PXA2X0_POWMAN_SIZE),
+ VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE,
+ },
{0, 0, 0, 0, 0,}
};
Index: src/sys/arch/zaurus/zaurus/zaurus_reg.h
diff -u src/sys/arch/zaurus/zaurus/zaurus_reg.h:1.4 src/sys/arch/zaurus/zaurus/zaurus_reg.h:1.5
--- src/sys/arch/zaurus/zaurus/zaurus_reg.h:1.4 Sun Jan 29 10:12:42 2012
+++ src/sys/arch/zaurus/zaurus/zaurus_reg.h Sun Aug 12 17:25:32 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: zaurus_reg.h,v 1.4 2012/01/29 10:12:42 tsutsui Exp $ */
+/* $NetBSD: zaurus_reg.h,v 1.5 2012/08/12 17:25:32 nonaka Exp $ */
/* $OpenBSD: zaurus_reg.h,v 1.7 2005/12/14 14:39:38 uwe Exp $ */
/* NetBSD: lubbock_reg.h,v 1.1 2003/06/18 10:51:15 bsh Exp */
@@ -49,7 +49,8 @@
#define ZAURUS_FFUART_VBASE 0xfd600000
#define ZAURUS_BTUART_VBASE 0xfd700000
#define ZAURUS_STUART_VBASE 0xfd800000
-#define ZAURUS_VBASE_FREE 0xfd900000
+#define ZAURUS_POWMAN_VBASE 0xfd900000
+#define ZAURUS_VBASE_FREE 0xfda00000
#define ioreg_read(a) (*(volatile uint32_t *)(a))
#define ioreg_write(a,v) (*(volatile uint32_t *)(a)=(v))