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))