Mercurial > ecos
changeset 1028:8a8d24f4000a
* include/hal_diag.h:
* src/at91_misc.c: Added function to generate a hardware reset
using the watchdog.
| author | nickg |
|---|---|
| date | Fri, 16 May 2003 17:11:49 +0000 |
| parents | f0473e6bec8f |
| children | c4851c42c5d7 |
| files | packages/hal/arm/at91/var/current/ChangeLog packages/hal/arm/at91/var/current/include/hal_diag.h packages/hal/arm/at91/var/current/src/at91_misc.c |
| diffstat | 3 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/hal/arm/at91/var/current/ChangeLog +++ b/packages/hal/arm/at91/var/current/ChangeLog @@ -1,3 +1,9 @@ +2003-05-15 Thomas Koeller <thomas.koeller@baslerweb.com> + + * include/hal_diag.h: + * src/at91_misc.c: Added function to generate a hardware reset + using the watchdog. + 2003-05-15 Nick Garnett <nickg@balti.calivar.com> * src/at91_misc.c (hal_delay_us): Added calculation to better
--- a/packages/hal/arm/at91/var/current/include/hal_diag.h +++ b/packages/hal/arm/at91/var/current/include/hal_diag.h @@ -44,7 +44,7 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): jskov -// Contributors:jskov, gthomas +// Contributors:jskov, gthomas, tkoeller // Date: 2001-07-12 // Purpose: HAL Support for Kernel Diagnostic Routines // Description: Diagnostic routines for use during kernel development. @@ -75,5 +75,10 @@ extern void hal_delay_us(cyg_int32 usecs #define HAL_DELAY_US(n) hal_delay_us(n); //----------------------------------------------------------------------------- +// reset + +extern void hal_at91_reset_cpu(void); + +//----------------------------------------------------------------------------- // end of hal_diag.h #endif // CYGONCE_HAL_DIAG_H
--- a/packages/hal/arm/at91/var/current/src/at91_misc.c +++ b/packages/hal/arm/at91/var/current/src/at91_misc.c @@ -42,7 +42,7 @@ //#####DESCRIPTIONBEGIN#### // // Author(s): gthomas -// Contributors: gthomas, jskov, nickg +// Contributors: gthomas, jskov, nickg, tkoeller // Date: 2001-07-12 // Purpose: HAL board support // Description: Implementations of HAL board interfaces @@ -264,5 +264,15 @@ void hal_show_IRQ(int vector, int data, } +/* Use the watchdog to generate a reset */ +void hal_at91_reset_cpu(void) +{ + HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR, AT91_WD_OMR_OKEY); + HAL_WRITE_UINT32(AT91_WD + AT91_WD_CMR, AT91_WD_CMR_CKEY); + HAL_WRITE_UINT32(AT91_WD + AT91_WD_CR, AT91_WD_CR_RSTKEY); + HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR, AT91_WD_OMR_OKEY | AT91_WD_OMR_RSTEN | AT91_WD_OMR_WDEN); + while(1) CYG_EMPTY_STATEMENT; +} + //-------------------------------------------------------------------------- // EOF at91_misc.c
