This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

H8/300 WatchDog Timer Driver


diff -Nrc ecos/packages/ecos.db ecos.ysato/packages/ecos.db
*** ecos/packages/ecos.db	Sun Jun  2 00:21:32 2002
--- ecos.ysato/packages/ecos.db	Sun Jun  2 23:03:43 2002
***************
*** 1451,1456 ****
--- 1451,1466 ----
             Hitachi SH3 chip."
  }
  
+ package CYGPKG_DEVICES_WATCHDOG_H8300_H8300H {
+ 	alias		{ "Watchdog driver for the Hitachi H8/300H chip" devices_watchdog_h8300h device_watchdog_h8300h }
+ 	directory	devs/watchdog/h8300/h8300h
+ 	script          watchdog_h8300h.cdl
+ 	hardware
+         description "
+            This package provides a watchdog driver implementation for the
+            Hitachi H8/300H chip."
+ }
+ 
  package CYGPKG_IO_WATCHDOG {
  	alias		{ "Watchdog IO device" watchdog io_watchdog }
  	directory	io/watchdog
diff -Nrc ecos/packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl ecos.ysato/packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl
*** ecos/packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl	Thu Jan  1 09:00:00 1970
--- ecos.ysato/packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl	Sun Jun  2 19:45:20 2002
***************
*** 0 ****
--- 1,102 ----
+ # ====================================================================
+ #
+ #      watchdog_h8300h.cdl
+ #
+ #      eCos watchdog for the Hitachi H8/300H 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):      ysato
+ # Contributors:   ysato
+ # Date:           2002-04-29
+ #
+ #####DESCRIPTIONEND####
+ #
+ # ====================================================================
+ 
+ cdl_package CYGPKG_DEVICES_WATCHDOG_H8300_H8300H {
+     parent        CYGPKG_IO_WATCHDOG
+     active_if     CYGPKG_IO_WATCHDOG
+     display       "H8/300H watchdog driver"
+     requires      CYGPKG_HAL_H8300_H8300H
+     requires      CYGPKG_KERNEL
+     hardware
+     compile       watchdog_h8300h.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_H8300_H8300H_OPTIONS {
+         display "H8/300H 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_H8300_H8300H_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_H8300_H8300H_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."
+         }
+ 
+     }
+ }
diff -Nrc ecos/packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx ecos.ysato/packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx
*** ecos/packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx	Thu Jan  1 09:00:00 1970
--- ecos.ysato/packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx	Sun Jun  2 19:43:11 2002
***************
*** 0 ****
--- 1,115 ----
+ //==========================================================================
+ //
+ //      devs/watchdog/h8300/h83000/watchdog_h8300.cxx
+ //
+ //      Watchdog implementation for Hitachi H8/300H CPUs
+ //
+ //==========================================================================
+ //####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):    yoshinori sato
+ // Contributors: yoshinori sato
+ // Date:         2002-04-29
+ // Purpose:      Watchdog class implementation
+ // Description:  Contains an implementation of the Watchdog class for use
+ //               with the Hitachi H8/300H 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/mod_regs_wdt.h>       // watchdog register definitions
+ 
+ #include <cyg/io/watchdog.hxx>          // watchdog API
+ 
+ // -------------------------------------------------------------------------
+ // Constructor
+ 
+ void
+ Cyg_Watchdog::init_hw(void)
+ {
+     CYG_REPORT_FUNCTION();
+     
+     // No hardware init needed.
+ 
+     resolution          = CYGARC_WDT_PERIOD;
+ 
+     CYG_REPORT_RETURN();
+ }
+ 
+ // -------------------------------------------------------------------------
+ // Start the watchdog running.
+ 
+ void
+ Cyg_Watchdog::start()
+ {
+     CYG_REPORT_FUNCTION();
+ 
+     //Stop WDT
+     HAL_WRITE_UINT16(CYGARC_TCSR,CYGARC_TCSR_MAGIC);
+     //Clear WDT Count
+     HAL_WRITE_UINT16(CYGARC_TCSR,CYGARC_TCNT_MAGIC);
+     //Start WDT
+     HAL_WRITE_UINT16(CYGARC_TCSR,CYGARC_TCSR_MAGIC|
+                                  CYGARC_WDT_WT|CYGARC_WDT_TME|CYGARC_WDT_CKS);
+     
+     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_UINT16(CYGARC_TCSR,CYGARC_TCNT_MAGIC);
+     
+     CYG_REPORT_RETURN();
+ }
+ 
+ // -------------------------------------------------------------------------
+ // EOF watchdog_h8300.cxx
diff -Nrc ecos/packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h ecos.ysato/packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h
*** ecos/packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h	Thu Jan  1 09:00:00 1970
--- ecos.ysato/packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h	Sun Jun  2 20:34:04 2002
***************
*** 0 ****
--- 1,73 ----
+ #ifndef CYGONCE_MOD_REGS_WDT_H
+ #define CYGONCE_MOD_REGS_WDT_H
+ 
+ //==========================================================================
+ //
+ //      mod_regs_wdt.h
+ //
+ //      Watchdog Timer Register
+ //
+ //==========================================================================
+ //####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):    yoshinori sato
+ // Contributors: yoshinori sato
+ // Date:         2002-02-19
+ //              
+ //####DESCRIPTIONEND####
+ //
+ //==========================================================================
+ 
+ #define CYGARC_TCSR    0xFFFF8C
+ #define CYGARC_TCNT    0xFFFF8D
+ #define CYGARC_RSTCSRW 0xFFFF8E
+ #define CYGARC_RSTCSRR 0xFFFF8F
+ 
+ #define CYGARC_TCNT_MAGIC 0x5A00
+ #define CYGARC_TCSR_MAGIC 0xA500
+ 
+ #define CYGARC_WDT_OVF  0x80
+ #define CYGARC_WDT_WT   0x40
+ #define CYGARC_WDT_TME  0x20
+ #define CYGARC_WDT_CKS2 0x04
+ #define CYGARC_WDT_CKS1 0x02
+ #define CYGARC_WDT_CKS0 0x01
+ 
+ #define CYGARC_WDT_CKS  0x07  //Max Delay
+ 
+ #define CYGARC_WDT_PERIOD ((1000000000/(CYGHWR_HAL_H8300_PROCESSOR_SPEED/4096))*256)
+ 
+ #endif

-- 
Yoshinori Sato
<qzb04471@nifty.ne.jp>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]