URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/rtos/ecos-2.0/packages/devs/watchdog/arm
- from Rev 27 to Rev 174
- ↔ Reverse comparison
Rev 27 → Rev 174
/aeb/v2_0/cdl/watchdog_aeb.cdl
0,0 → 1,102
# ==================================================================== |
# |
# watchdog_aeb.cdl |
# |
# eCos watchdog for ARM/AEB driver configuration data |
# |
# ==================================================================== |
#####ECOSGPLCOPYRIGHTBEGIN#### |
## ------------------------------------------- |
## This file is part of eCos, the Embedded Configurable Operating System. |
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
## |
## eCos is free software; you can redistribute it and/or modify it under |
## the terms of the GNU General Public License as published by the Free |
## Software Foundation; either version 2 or (at your option) any later version. |
## |
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
## for more details. |
## |
## You should have received a copy of the GNU General Public License along |
## with eCos; if not, write to the Free Software Foundation, Inc., |
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
## |
## As a special exception, if other files instantiate templates or use macros |
## or inline functions from this file, or you compile this file and link it |
## with other works to produce a work based on this file, this file does not |
## by itself cause the resulting work to be covered by the GNU General Public |
## License. However the source code for this file must still be made available |
## in accordance with section (3) of the GNU General Public License. |
## |
## This exception does not invalidate any other reasons why a work based on |
## this file might be covered by the GNU General Public License. |
## |
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
## at http://sources.redhat.com/ecos/ecos-license/ |
## ------------------------------------------- |
#####ECOSGPLCOPYRIGHTEND#### |
# ==================================================================== |
######DESCRIPTIONBEGIN#### |
# |
# Author(s): jskov |
# Contributors: jskov |
# Date: 2000-05-31 |
# |
#####DESCRIPTIONEND#### |
# |
# ==================================================================== |
|
cdl_package CYGPKG_DEVICES_WATCHDOG_ARM_AEB { |
parent CYGPKG_IO_WATCHDOG |
active_if CYGPKG_IO_WATCHDOG |
display "AEB watchdog driver" |
requires CYGPKG_HAL_ARM_AEB |
requires CYGPKG_KERNEL |
hardware |
compile watchdog_aeb.cxx |
implements CYGINT_WATCHDOG_HW_IMPLEMENTATIONS |
implements CYGINT_WATCHDOG_RESETS_ON_TIMEOUT |
active_if CYGIMP_WATCHDOG_HARDWARE |
|
cdl_option CYGIMP_WATCHDOG_HARDWARE { |
parent CYGPKG_IO_WATCHDOG_IMPLEMENTATION |
display "Hardware watchdog" |
default_value 1 |
implements CYGINT_WATCHDOG_IMPLEMENTATIONS |
} |
|
cdl_component CYGPKG_DEVICES_WATCHDOG_ARM_AEB_OPTIONS { |
display "AEB watchdog build options" |
flavor none |
description " |
Package specific build options including control over |
compiler flags used only in building this package, |
and details of which tests are built." |
|
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_AEB_CFLAGS_ADD { |
display "Additional compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are used in addition |
to the set of global flags." |
} |
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_AEB_CFLAGS_REMOVE { |
display "Suppressed compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are removed from |
the set of global flags if present." |
} |
|
} |
} |
/aeb/v2_0/src/watchdog_aeb.cxx
0,0 → 1,161
//========================================================================== |
// |
// devs/watchdog/arm/aeb/watchdog_aeb.cxx |
// |
// Watchdog implementation for ARM AEB1 board (SHARP LH77790 CPU) |
// |
//========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//========================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jskov |
// Contributors: jskov |
// Date: 1999-09-01 |
// Purpose: Watchdog class implementation |
// Description: Contains an implementation of the Watchdog class for use |
// with the SHARP LH77790 watchdog timer. |
// |
//####DESCRIPTIONEND#### |
// |
//========================================================================== |
|
#include <pkgconf/system.h> // system configuration file |
#include <pkgconf/watchdog.h> // configuration for this package |
#include <pkgconf/kernel.h> // kernel config |
|
#include <cyg/infra/cyg_trac.h> // tracing macros |
#include <cyg/kernel/instrmnt.h> // instrumentation |
|
#include <cyg/hal/hal_io.h> // IO register access |
|
#include <cyg/io/watchdog.hxx> // watchdog API |
|
// ------------------------------------------------------------------------- |
// Register definitions |
#define CYGARC_REG_WATCHDOG_BASE 0xFFFFAC00 |
#define CYGARC_REG_WATCHDOG_WDCTLR (CYGARC_REG_WATCHDOG_BASE+0x30) |
#define CYGARC_REG_WATCHDOG_WDCNTR (CYGARC_REG_WATCHDOG_BASE+0x34) |
|
// Control register bits |
#define CYGARC_REG_WATCHDOG_WDCTLR_EN 0x01 // enable |
#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_NMF 0x00 // non-maskable fiq |
#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_ER 0x04 // external reset |
#define CYGARC_REG_WATCHDOG_WDCTLR_RSP_SR 0x06 // system reset |
#define CYGARC_REG_WATCHDOG_WDCTLR_FRZ 0x08 // lock enable bit |
#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_MASK 0x70 // time out period |
|
#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_17 0x00 // 2^17 |
#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_17_P 5242880 // = 5.2ms |
|
#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_25 0x40 // 2^25 |
#define CYGARC_REG_WATCHDOG_WDCTLR_TOP_25_P 1342177300 // = 1.3421773s |
|
|
// ------------------------------------------------------------------------- |
// Constructor |
|
void |
Cyg_Watchdog::init_hw(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// No HW init. |
|
resolution = CYGARC_REG_WATCHDOG_WDCTLR_TOP_25_P; |
|
CYG_REPORT_RETURN(); |
} |
|
// ------------------------------------------------------------------------- |
// Start the watchdog running. |
|
void |
Cyg_Watchdog::start() |
{ |
CYG_REPORT_FUNCTION(); |
|
// Clear the watchdog counter. |
HAL_WRITE_UINT32(CYGARC_REG_WATCHDOG_WDCNTR, 0); |
|
// Enable the watchdog (and lock/FRZ it). |
HAL_WRITE_UINT8(CYGARC_REG_WATCHDOG_WDCTLR, |
(CYGARC_REG_WATCHDOG_WDCTLR_TOP_25 |
| CYGARC_REG_WATCHDOG_WDCTLR_FRZ |
| CYGARC_REG_WATCHDOG_WDCTLR_RSP_SR |
| CYGARC_REG_WATCHDOG_WDCTLR_EN)); |
|
CYG_REPORT_RETURN(); |
} |
|
// ------------------------------------------------------------------------- |
// Reset watchdog timer. This needs to be called regularly to prevent |
// the watchdog firing. |
|
void |
Cyg_Watchdog::reset() |
{ |
CYG_REPORT_FUNCTION(); |
|
HAL_WRITE_UINT32(CYGARC_REG_WATCHDOG_WDCNTR, 0); |
|
CYG_REPORT_RETURN(); |
} |
|
#if 0 |
// ------------------------------------------------------------------------- |
// Action which will do a board reset. Application can register this |
// action to get a board reset on watchdog timeout. |
|
void |
Cyg_Watchdog::reset_action(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// Clear the watchdog counter. |
HAL_WRITE_UINT32(CYGARC_REG_WATCHDOG_WDCNTR, 0); |
|
// Enable the watchdog with the smallest timeout. |
HAL_WRITE_UINT8(CYGARC_REG_WATCHDOG_WDCTLR, |
(CYGARC_REG_WATCHDOG_WDCTLR_TOP_17 |
| CYGARC_REG_WATCHDOG_WDCTLR_FRZ |
| CYGARC_REG_WATCHDOG_WDCTLR_RSP_SR |
| CYGARC_REG_WATCHDOG_WDCTLR_EN)); |
|
CYG_REPORT_RETURN(); |
} |
#endif |
|
// ------------------------------------------------------------------------- |
// EOF watchdog_aeb.cxx |
/aeb/v2_0/ChangeLog
0,0 → 1,44
2000-05-31 Jesper Skov <jskov@redhat.com> |
|
* cdl/watchdog_aeb.cdl: |
* src/watchdog_aeb.cxx: |
Driver moved to devs/watchdog/arm/aeb. Stripped out |
unrelated ChangeLog entries. |
|
1999-09-07 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/aeb1.cxx: [added] |
Added watchdog driver for AEB-1 board. |
|
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
/ebsa285/v2_0/cdl/watchdog_ebsa285.cdl
0,0 → 1,102
# ==================================================================== |
# |
# watchdog_ebsa285.cdl |
# |
# eCos watchdog for ARM/EBSA285 driver configuration data |
# |
# ==================================================================== |
#####ECOSGPLCOPYRIGHTBEGIN#### |
## ------------------------------------------- |
## This file is part of eCos, the Embedded Configurable Operating System. |
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
## |
## eCos is free software; you can redistribute it and/or modify it under |
## the terms of the GNU General Public License as published by the Free |
## Software Foundation; either version 2 or (at your option) any later version. |
## |
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
## for more details. |
## |
## You should have received a copy of the GNU General Public License along |
## with eCos; if not, write to the Free Software Foundation, Inc., |
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
## |
## As a special exception, if other files instantiate templates or use macros |
## or inline functions from this file, or you compile this file and link it |
## with other works to produce a work based on this file, this file does not |
## by itself cause the resulting work to be covered by the GNU General Public |
## License. However the source code for this file must still be made available |
## in accordance with section (3) of the GNU General Public License. |
## |
## This exception does not invalidate any other reasons why a work based on |
## this file might be covered by the GNU General Public License. |
## |
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
## at http://sources.redhat.com/ecos/ecos-license/ |
## ------------------------------------------- |
#####ECOSGPLCOPYRIGHTEND#### |
# ==================================================================== |
######DESCRIPTIONBEGIN#### |
# |
# Author(s): jskov |
# Contributors: jskov |
# Date: 2000-05-31 |
# |
#####DESCRIPTIONEND#### |
# |
# ==================================================================== |
|
cdl_package CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285 { |
parent CYGPKG_IO_WATCHDOG |
active_if CYGPKG_IO_WATCHDOG |
display "EBSA285 watchdog driver" |
requires CYGPKG_HAL_ARM_EBSA285 |
requires CYGPKG_KERNEL |
hardware |
compile watchdog_ebsa285.cxx |
implements CYGINT_WATCHDOG_HW_IMPLEMENTATIONS |
implements CYGINT_WATCHDOG_RESETS_ON_TIMEOUT |
active_if CYGIMP_WATCHDOG_HARDWARE |
|
cdl_option CYGIMP_WATCHDOG_HARDWARE { |
parent CYGPKG_IO_WATCHDOG_IMPLEMENTATION |
display "Hardware watchdog" |
default_value 1 |
implements CYGINT_WATCHDOG_IMPLEMENTATIONS |
} |
|
cdl_component CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285_OPTIONS { |
display "EBSA285 watchdog build options" |
flavor none |
description " |
Package specific build options including control over |
compiler flags used only in building this package, |
and details of which tests are built." |
|
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285_CFLAGS_ADD { |
display "Additional compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are used in addition |
to the set of global flags." |
} |
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_EBSA285_CFLAGS_REMOVE { |
display "Suppressed compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are removed from |
the set of global flags if present." |
} |
|
} |
} |
/ebsa285/v2_0/src/watchdog_ebsa285.cxx
0,0 → 1,151
//========================================================================== |
// |
// watchdog/ebsa285.cxx |
// |
// Watchdog implementation for Intel EBSA-285 StronARM board |
// |
//========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//========================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): jskov (based on the MN10300 watchdog code by nickg) |
// Contributors: jskov, nickg |
// Date: 1999-08-26 |
// Purpose: Watchdog class implementation |
// Description: Contains an implementation of the Watchdog class for use |
// with the EBSA285/21285 hardware watchdog timer. |
// |
//####DESCRIPTIONEND#### |
// |
//========================================================================== |
|
#include <pkgconf/system.h> // system configuration file |
#include <pkgconf/watchdog.h> // configuration for this package |
#include <pkgconf/kernel.h> // kernel config |
|
#include <cyg/infra/cyg_trac.h> // tracing macros |
#include <cyg/kernel/instrmnt.h> // instrumentation |
|
#include <cyg/hal/hal_io.h> // IO register access |
|
#include <cyg/io/watchdog.hxx> // watchdog API |
|
// ------------------------------------------------------------------------- |
// 21285 watchdog works by letting timer4 run; if it ever underflows, |
// it resets the system. |
// Timer 4 is set to run at fclk_in/16 = 50MHz/16 = 3.125MHz |
// The timer register is 24 bits, so it can easily hold a value that |
// gives a 1s timeout. |
#define WATCHDOG_TIMER_TICKS 3125000 |
#define WATCHDOG_RESOLUTION (1000000000) |
|
// ------------------------------------------------------------------------- |
// Constructor |
|
void |
Cyg_Watchdog::init_hw(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// HW doesn't need init |
|
resolution = WATCHDOG_RESOLUTION; |
|
CYG_REPORT_RETURN(); |
} |
|
|
|
// ------------------------------------------------------------------------- |
// Start the watchdog running. |
|
void |
Cyg_Watchdog::start(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// Init the watchdog timer. |
HAL_WRITE_UINT32(SA110_TIMER4_LOAD, WATCHDOG_TIMER_TICKS); |
HAL_WRITE_UINT32(SA110_TIMER4_CLEAR, 0); |
HAL_WRITE_UINT32(SA110_TIMER4_CONTROL, |
SA110_TIMER_CONTROL_ENABLE|SA110_TIMER_CONTROL_SCALE_16); |
// Enable the watchdog. |
cyg_uint32 ctrl; |
HAL_READ_UINT32(SA110_CONTROL, ctrl); |
ctrl |= SA110_CONTROL_WATCHDOG; |
HAL_WRITE_UINT32(SA110_CONTROL, ctrl); |
|
CYG_REPORT_RETURN(); |
} |
|
// ------------------------------------------------------------------------- |
// Reset watchdog timer. This needs to be called regularly to prevent |
// the watchdog firing. |
|
void |
Cyg_Watchdog::reset() |
{ |
CYG_REPORT_FUNCTION(); |
|
HAL_WRITE_UINT32(SA110_TIMER4_LOAD, WATCHDOG_TIMER_TICKS); |
|
CYG_REPORT_RETURN(); |
} |
|
#if 0 |
// ------------------------------------------------------------------------- |
// Trigger the watchdog as if the timer had expired. |
|
void |
Cyg_Watchdog::reset_action(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// Init the watchdog timer. |
HAL_WRITE_UINT32(SA110_TIMER4_LOAD, 1); |
HAL_WRITE_UINT32(SA110_TIMER4_CONTROL, SA110_TIMER_CONTROL_ENABLE); |
// Enable the watchdog. |
cyg_uint32 ctrl; |
HAL_READ_UINT32(SA110_CONTROL, ctrl); |
ctrl |= SA110_CONTROL_WATCHDOG; |
HAL_WRITE_UINT32(SA110_CONTROL, ctrl); |
|
CYG_REPORT_RETURN(); |
} |
#endif |
|
|
// ------------------------------------------------------------------------- |
// EOF watchdog_ebsa285.cxx |
/ebsa285/v2_0/ChangeLog
0,0 → 1,44
2000-05-31 Jesper Skov <jskov@redhat.com> |
|
* cdl/watchdog_ebsa285.cdl: |
* src/watchdog_ebsa285.cxx: |
Driver moved to devs/watchdog/arm/ebsa285. Stripped out |
unrelated ChangeLog entries. |
|
1999-08-27 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/ebsa285.cxx: |
Added watchdog device for 21285. |
|
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
/sa11x0/v2_0/cdl/watchdog_sa11x0.cdl
0,0 → 1,102
# ==================================================================== |
# |
# watchdog_sa11x0.cdl |
# |
# eCos watchdog for ARM/SA11X0 driver configuration data |
# |
# ==================================================================== |
#####ECOSGPLCOPYRIGHTBEGIN#### |
## ------------------------------------------- |
## This file is part of eCos, the Embedded Configurable Operating System. |
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
## |
## eCos is free software; you can redistribute it and/or modify it under |
## the terms of the GNU General Public License as published by the Free |
## Software Foundation; either version 2 or (at your option) any later version. |
## |
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
## for more details. |
## |
## You should have received a copy of the GNU General Public License along |
## with eCos; if not, write to the Free Software Foundation, Inc., |
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
## |
## As a special exception, if other files instantiate templates or use macros |
## or inline functions from this file, or you compile this file and link it |
## with other works to produce a work based on this file, this file does not |
## by itself cause the resulting work to be covered by the GNU General Public |
## License. However the source code for this file must still be made available |
## in accordance with section (3) of the GNU General Public License. |
## |
## This exception does not invalidate any other reasons why a work based on |
## this file might be covered by the GNU General Public License. |
## |
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
## at http://sources.redhat.com/ecos/ecos-license/ |
## ------------------------------------------- |
#####ECOSGPLCOPYRIGHTEND#### |
# ==================================================================== |
######DESCRIPTIONBEGIN#### |
# |
# Author(s): jskov |
# Contributors: hmt, jskov |
# Date: 2001-02-27 |
# |
#####DESCRIPTIONEND#### |
# |
# ==================================================================== |
|
cdl_package CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0 { |
parent CYGPKG_IO_WATCHDOG |
active_if CYGPKG_IO_WATCHDOG |
display "SA11X0 watchdog driver" |
requires CYGPKG_HAL_ARM_SA11X0 |
requires CYGPKG_KERNEL |
hardware |
compile watchdog_sa11x0.cxx |
implements CYGINT_WATCHDOG_HW_IMPLEMENTATIONS |
implements CYGINT_WATCHDOG_RESETS_ON_TIMEOUT |
active_if CYGIMP_WATCHDOG_HARDWARE |
|
cdl_option CYGIMP_WATCHDOG_HARDWARE { |
parent CYGPKG_IO_WATCHDOG_IMPLEMENTATION |
display "Hardware watchdog" |
default_value 1 |
implements CYGINT_WATCHDOG_IMPLEMENTATIONS |
} |
|
cdl_component CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0_OPTIONS { |
display "SA11X0 watchdog build options" |
flavor none |
description " |
Package specific build options including control over |
compiler flags used only in building this package, |
and details of which tests are built." |
|
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0_CFLAGS_ADD { |
display "Additional compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are used in addition |
to the set of global flags." |
} |
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_SA11X0_CFLAGS_REMOVE { |
display "Suppressed compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are removed from |
the set of global flags if present." |
} |
|
} |
} |
/sa11x0/v2_0/src/watchdog_sa11x0.cxx
0,0 → 1,147
//========================================================================== |
// |
// watchdog/sa11x0.cxx |
// |
// Watchdog implementation for StrongARM SA11x0s |
// |
//========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//========================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): hmt, jskov (based on the MN10300 watchdog code by nickg) |
// Contributors: jskov, nickg |
// Date: 2001-02-27 |
// Purpose: Watchdog class implementation |
// Description: Contains an implementation of the Watchdog class for use |
// with the SA11X0 hardware watchdog timer. |
// |
//####DESCRIPTIONEND#### |
// |
//========================================================================== |
|
#include <pkgconf/system.h> // system configuration file |
#include <pkgconf/watchdog.h> // configuration for this package |
#include <pkgconf/kernel.h> // kernel config |
|
#include <cyg/infra/cyg_trac.h> // tracing macros |
#include <cyg/kernel/instrmnt.h> // instrumentation |
|
#include <cyg/hal/hal_io.h> // IO register access |
#include <cyg/hal/hal_intr.h> // Interrupts |
#include <cyg/hal/hal_sa11x0.h> // IO registers per se |
|
#include <cyg/io/watchdog.hxx> // watchdog API |
|
// ------------------------------------------------------------------------- |
// SA11x0 watchdog works by enabling the watchdog (duh!) which means that |
// when OS Timer Match Register #3 "OSMR3" compares equal to the 3.6864MHz |
// clock in OSCR, then the system resets. |
// |
// To stay ahead of this, we must repeatedly set OSMR3 to OSCR + K where K |
// is the watchdog timeout. This REQUIRES that the OSCR be freerunning. |
// |
// OSCR runs at 3.6864MHz, so one second is 3686400 ticks. |
// |
// The match register is 32 bits, and wraps as an int32 does (the |
// comparison is exact, so you don't need to take special care.) So we can |
// literally do the addition in the obvious way. |
|
#define WATCHDOG_TIMER_TICKS 3686400 |
#define WATCHDOG_RESOLUTION (1000000000) |
|
// ------------------------------------------------------------------------- |
// Constructor |
|
void |
Cyg_Watchdog::init_hw(void) |
{ |
CYG_REPORT_FUNCTION(); |
|
// HW doesn't need init |
|
resolution = WATCHDOG_RESOLUTION; |
|
CYG_REPORT_RETURN(); |
} |
|
|
|
// ------------------------------------------------------------------------- |
// Start the watchdog running. |
|
void |
Cyg_Watchdog::start(void) |
{ |
int old; |
CYG_REPORT_FUNCTION(); |
|
HAL_DISABLE_INTERRUPTS( old ); |
|
// Init the watchdog timer. |
*SA11X0_OSMR3 = *SA11X0_OSCR + WATCHDOG_TIMER_TICKS; |
*SA11X0_OSSR = SA11X0_OSSR_TIMER3; // Ack any pending intr |
*SA11X0_OIER |= SA11X0_OIER_TIMER3; // Enable interrupt is necessary |
|
CYG_ASSERT( *SA11X0_OSCR < *SA11X0_OSMR3 || |
*SA11X0_OSMR3 <= WATCHDOG_TIMER_TICKS, "Watchdog wierdness" ); |
|
// Enable the watchdog. |
*SA11X0_OWER = SA11X0_OWER_ENABLE; |
|
HAL_RESTORE_INTERRUPTS( old ); |
|
CYG_REPORT_RETURN(); |
} |
|
// ------------------------------------------------------------------------- |
// Reset watchdog timer. This needs to be called regularly to prevent |
// the watchdog firing. |
|
void |
Cyg_Watchdog::reset() |
{ |
CYG_REPORT_FUNCTION(); |
|
*SA11X0_OSMR3 = *SA11X0_OSCR + WATCHDOG_TIMER_TICKS; |
|
CYG_ASSERT( *SA11X0_OSCR < *SA11X0_OSMR3 || |
*SA11X0_OSMR3 <= WATCHDOG_TIMER_TICKS, "Watchdog wierdness" ); |
|
CYG_REPORT_RETURN(); |
} |
|
|
// ------------------------------------------------------------------------- |
// EOF watchdog_sa11x0.cxx |
/sa11x0/v2_0/ChangeLog
0,0 → 1,50
2001-02-28 Hugo Tyson <hmt@redhat.com> |
|
* src/watchdog_sa11x0.cxx: New file. |
* cdl/watchdog_sa11x0.cdl: New file. |
Copied from those referred to below. |
|
2000-05-31 Jesper Skov <jskov@redhat.com> |
|
* cdl/watchdog_ebsa285.cdl: |
* src/watchdog_ebsa285.cxx: |
Driver moved to devs/watchdog/arm/ebsa285. Stripped out |
unrelated ChangeLog entries. |
|
1999-08-27 Jesper Skov <jskov@cygnus.co.uk> |
|
* src/ebsa285.cxx: |
Added watchdog device for 21285. |
|
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
/at91/v2_0/cdl/watchdog_at91.cdl
0,0 → 1,133
# ==================================================================== |
# |
# watchdog_at91.cdl |
# |
# eCos watchdog for ARM AT91 driver configuration data |
# |
# ==================================================================== |
#####ECOSGPLCOPYRIGHTBEGIN#### |
## ------------------------------------------- |
## This file is part of eCos, the Embedded Configurable Operating System. |
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
## |
## eCos is free software; you can redistribute it and/or modify it under |
## the terms of the GNU General Public License as published by the Free |
## Software Foundation; either version 2 or (at your option) any later version. |
## |
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
## WARRANTY; without even the implied warranty of MERCHANTABILITY or |
## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
## for more details. |
## |
## You should have received a copy of the GNU General Public License along |
## with eCos; if not, write to the Free Software Foundation, Inc., |
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
## |
## As a special exception, if other files instantiate templates or use macros |
## or inline functions from this file, or you compile this file and link it |
## with other works to produce a work based on this file, this file does not |
## by itself cause the resulting work to be covered by the GNU General Public |
## License. However the source code for this file must still be made available |
## in accordance with section (3) of the GNU General Public License. |
## |
## This exception does not invalidate any other reasons why a work based on |
## this file might be covered by the GNU General Public License. |
## |
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
## at http://sources.redhat.com/ecos/ecos-license/ |
## ------------------------------------------- |
#####ECOSGPLCOPYRIGHTEND#### |
# ==================================================================== |
######DESCRIPTIONBEGIN#### |
# |
# Author(s): tkoeller |
# Contributors: tkoeller |
# Date: 2000-05-05 |
# |
#####DESCRIPTIONEND#### |
# |
# ==================================================================== |
|
cdl_package CYGPKG_DEVICES_WATCHDOG_ARM_AT91 { |
parent CYGPKG_IO_WATCHDOG |
active_if CYGPKG_IO_WATCHDOG |
display "ARM AT91 watchdog driver" |
requires CYGPKG_HAL_ARM_AT91 |
requires CYGPKG_KERNEL |
hardware |
define_header devs_watchdog_arm_at91.h |
compile watchdog_at91.cxx |
implements CYGINT_WATCHDOG_HW_IMPLEMENTATIONS |
active_if CYGIMP_WATCHDOG_HARDWARE |
description " |
This package uses the watchdog device integrated |
in the ARM CPU to execute a predefined action if the |
application fails to call the reset function for |
longer than a given timeout interval." |
|
cdl_option CYGIMP_WATCHDOG_HARDWARE { |
parent CYGPKG_IO_WATCHDOG_IMPLEMENTATION |
display "Hardware watchdog" |
calculated 1 |
implements CYGINT_WATCHDOG_IMPLEMENTATIONS |
} |
|
cdl_option CYGNUM_DEVS_WATCHDOG_ARM_AT91_DESIRED_TMEOUT_MS { |
display "Desired timeout value" |
flavor data |
legal_values 1 to 2047 |
default_value 100 |
description " |
This parameter controls the watchdog timeout interval. |
Note that you may not get the exact value requested |
here, the timeout interval may have to be adjusted |
because of hardware limitations. The actual timeout |
used will be the smallest possible value that is not |
less than this parameter." |
} |
|
cdl_option CYGSEM_DEVS_WATCHDOG_ARM_AT91_RESET { |
display "Generate reset on watchdog expiration" |
flavor bool |
default_value 1 |
implements CYGINT_WATCHDOG_RESETS_ON_TIMEOUT |
description " |
Enabling this option changes the watchdog operation mode |
to generate a system reset upon expiration instead of |
invoking an application-defined action." |
} |
|
cdl_component CYGPKG_DEVICES_WATCHDOG_ARM_AT91_OPTIONS { |
display "AT91 watchdog build options" |
flavor none |
description " |
Package specific build options including control over |
compiler flags used only in building this package, |
and details of which tests are built." |
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_AT91_CFLAGS_ADD { |
display "Additional compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are used in addition |
to the set of global flags." |
} |
|
cdl_option CYGPKG_DEVICES_WATCHDOG_ARM_AT91_CFLAGS_REMOVE { |
display "Suppressed compiler flags" |
flavor data |
no_define |
default_value { "" } |
description " |
This option modifies the set of compiler flags for |
building the watchdog device. These flags are removed from |
the set of global flags if present." |
} |
|
} |
} |
|
# EOF watchdog_at91.cdl |
/at91/v2_0/src/watchdog_at91.cxx
0,0 → 1,200
//========================================================================== |
// |
// devs/watchdog/arm/at91/watchdog_at91.cxx |
// |
// Watchdog implementation for ARM AT91 CPU |
// |
//========================================================================== |
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |
//========================================================================== |
//#####DESCRIPTIONBEGIN#### |
// |
// Author(s): tkoeller |
// Contributors: tkoeller |
// Date: 2002-05-05 |
// Purpose: Watchdog class implementation |
// Description: Contains an implementation of the Watchdog class for use |
// with the ATMEL AT91 watchdog timer. |
// |
//####DESCRIPTIONEND#### |
// |
//========================================================================== |
|
#include <pkgconf/kernel.h> |
#include <pkgconf/infra.h> |
#include <pkgconf/kernel.h> |
#include <pkgconf/watchdog.h> |
#include <pkgconf/devs_watchdog_arm_at91.h> |
#include <cyg/infra/cyg_type.h> |
#include <cyg/infra/cyg_ass.h> |
#include <cyg/infra/cyg_trac.h> |
#include <cyg/hal/hal_io.h> |
#include <cyg/hal/plf_io.h> |
#include <cyg/hal/hal_diag.h> |
#include <cyg/io/watchdog.hxx> |
#if !defined(CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT) |
#include <cyg/hal/hal_platform_ints.h> |
#include <cyg/kernel/intr.hxx> |
#endif |
|
#define MCLK_FREQUENCY_KHZ 32768 |
#define MAX_TICKS 0x0000ffff |
#define BASE_TICKS (MCLK_FREQUENCY_KHZ * CYGNUM_DEVS_WATCHDOG_ARM_AT91_DESIRED_TMEOUT_MS) |
|
#if BASE_TICKS / 8 <= MAX_TICKS |
#define DIVIDER 0 |
#define DIV_FACTOR 8 |
#elif BASE_TICKS / 32 <= MAX_TICKS |
#define DIVIDER 1 |
#define DIV_FACTOR 32 |
#elif BASE_TICKS / 128 <= MAX_TICKS |
#define DIVIDER 2 |
#define DIV_FACTOR 128 |
#elif BASE_TICKS / 1024 <= MAX_TICKS |
#define DIVIDER 3 |
#define DIV_FACTOR 1024 |
#else |
#error Desired resolution beyond hardware capabilities |
#endif |
|
#define TICKS ((BASE_TICKS / DIV_FACTOR) | 0xfff) |
#define RESOLUTION ((cyg_uint64) (TICKS * DIV_FACTOR ) * 1000000 / MCLK_FREQUENCY_KHZ) |
|
|
|
#if defined(CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT) |
|
#define OMRVAL (AT91_WD_OMR_OKEY | AT91_WD_OMR_RSTEN | AT91_WD_OMR_WDEN) |
|
void |
Cyg_Watchdog::init_hw(void) |
{ |
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARGVOID(); |
resolution = RESOLUTION; |
CYG_REPORT_RETURN(); |
} |
|
#else /* defined(CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT) */ |
|
#define OMRVAL (AT91_WD_OMR_OKEY | AT91_WD_OMR_IRQEN | AT91_WD_OMR_WDEN) |
#define INT_PRIO 7 |
|
|
static void * |
operator new(size_t size) |
{ |
static cyg_uint8 buf[sizeof (Cyg_Interrupt)]; |
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARG1XV(size); |
CYG_ASSERTC(size == sizeof buf); |
CYG_REPORT_RETVAL(buf); |
return buf; |
} |
|
static cyg_uint32 |
isr(cyg_vector vector, CYG_ADDRWORD data) |
{ |
Cyg_Watchdog &wd = *(Cyg_Watchdog *) data; |
|
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARG2XV(vector, data); |
|
wd.trigger(); |
Cyg_Interrupt::acknowledge_interrupt(CYGNUM_HAL_INTERRUPT_WATCHDOG); |
CYG_REPORT_RETVAL(Cyg_Interrupt::HANDLED); |
return Cyg_Interrupt::HANDLED; |
} |
|
static Cyg_Interrupt * wdint; |
|
void |
Cyg_Watchdog::init_hw(void) |
{ |
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARGVOID(); |
|
resolution = RESOLUTION; |
wdint = new Cyg_Interrupt( |
CYGNUM_HAL_INTERRUPT_WATCHDOG, |
INT_PRIO, |
(CYG_ADDRWORD) this, |
isr, |
NULL |
); |
wdint->configure_interrupt(CYGNUM_HAL_INTERRUPT_WATCHDOG, false, true); |
wdint->attach(); |
wdint->acknowledge_interrupt(CYGNUM_HAL_INTERRUPT_WATCHDOG); |
wdint->unmask_interrupt(CYGNUM_HAL_INTERRUPT_WATCHDOG); |
CYG_REPORT_RETURN(); |
} |
|
#endif /* defined(CYGSEM_WATCHDOG_RESETS_ON_TIMEOUT) */ |
|
|
|
/* |
* Reset watchdog timer. This needs to be called regularly to prevent |
* the watchdog from firing. |
*/ |
void |
Cyg_Watchdog::reset(void) |
{ |
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARGVOID(); |
|
/* Write magic code to reset the watchdog. */ |
HAL_WRITE_UINT32(AT91_WD + AT91_WD_CR, AT91_WD_CR_RSTKEY); |
CYG_REPORT_RETURN(); |
} |
|
/* |
* Start watchdog to generate a hardware reset |
* or interrupt when expiring. |
*/ |
void |
Cyg_Watchdog::start(void) |
{ |
CYG_REPORT_FUNCTION(); |
CYG_REPORT_FUNCARGVOID(); |
|
HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR, AT91_WD_OMR_OKEY); |
HAL_WRITE_UINT32( |
AT91_WD + AT91_WD_CMR, |
AT91_WD_CMR_CKEY | ((TICKS >> 10) & AT91_WD_CMR_HPCV) | DIVIDER |
); |
HAL_WRITE_UINT32(AT91_WD + AT91_WD_CR, AT91_WD_CR_RSTKEY); |
HAL_WRITE_UINT32(AT91_WD + AT91_WD_OMR, OMRVAL); |
CYG_REPORT_RETURN(); |
} |
/at91/v2_0/ChangeLog
0,0 → 1,36
2002-08-06 Thomas Koeller <thomas@koeller.dyndns.org> |
|
* Added watchdog driver for ARM AT91 board. |
|
//####ECOSGPLCOPYRIGHTBEGIN#### |
// ------------------------------------------- |
// This file is part of eCos, the Embedded Configurable Operating System. |
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. |
// |
// eCos is free software; you can redistribute it and/or modify it under |
// the terms of the GNU General Public License as published by the Free |
// Software Foundation; either version 2 or (at your option) any later version. |
// |
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
// WARRANTY; without even the implied warranty of MERCHANTABILITY or |
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
// for more details. |
// |
// You should have received a copy of the GNU General Public License along |
// with eCos; if not, write to the Free Software Foundation, Inc., |
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
// |
// As a special exception, if other files instantiate templates or use macros |
// or inline functions from this file, or you compile this file and link it |
// with other works to produce a work based on this file, this file does not |
// by itself cause the resulting work to be covered by the GNU General Public |
// License. However the source code for this file must still be made available |
// in accordance with section (3) of the GNU General Public License. |
// |
// This exception does not invalidate any other reasons why a work based on |
// this file might be covered by the GNU General Public License. |
// |
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
// at http://sources.redhat.com/ecos/ecos-license/ |
// ------------------------------------------- |
//####ECOSGPLCOPYRIGHTEND#### |