Mercurial > ecos-v2_0-branch
changeset 296:542103a53d53
Add new Hitachi H8/300H package contribution from Yoshinori Sato
| author | jlarmour |
|---|---|
| date | Wed, 14 Aug 2002 19:01:02 +0000 |
| parents | 953d23c104a1 |
| children | 38e03cb8babb |
| files | packages/ChangeLog packages/NEWS packages/devs/watchdog/h8300/h8300h/current/ChangeLog packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx packages/ecos.db packages/hal/h8300/h8300h/current/ChangeLog packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h |
| diffstat | 8 files changed, 347 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/ChangeLog +++ b/packages/ChangeLog @@ -1,3 +1,7 @@ +2002-08-14 Yoshinori Sato <qzb04471@nifty.ne.jp> + + * ecos.db: Add H8/300H watchdog driver package. + 2002-08-07 Andrew Lunn <andrew.lunn@ascom.ch> * ecos.db: Added CRC package. @@ -24,6 +28,7 @@ 2002-05-08 Jesper Skov <jskov@redhat.c * ecos.db: Removed special SH2 SCIF driver. The changes have been merged into the SH3 (now generic SH) driver. + 2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp> * ecos.db: Add H8/300 serial driver.
--- a/packages/NEWS +++ b/packages/NEWS @@ -1,3 +1,4 @@ +* Yoshinori Sato has contributed a watchdog driver for the Hitachi H8/300H. * Add AT91 watchdog driver. Contributed by Thomas Koeller of Basler Vision Technologies. * SMP support added for x86.
new file mode 100644 --- /dev/null +++ b/packages/devs/watchdog/h8300/h8300h/current/ChangeLog @@ -0,0 +1,36 @@ +2002-08-14 Yoshinori Sato <qzb04471@nifty.ne.jp> + + * New package. + +//####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####
new file mode 100644 --- /dev/null +++ b/packages/devs/watchdog/h8300/h8300h/current/cdl/watchdog_h8300h.cdl @@ -0,0 +1,103 @@ +# ==================================================================== +# +# 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 + 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." + } + + } +} + +# EOF watchdog_h8300h.cdl
new file mode 100644 --- /dev/null +++ b/packages/devs/watchdog/h8300/h8300h/current/src/watchdog_h8300h.cxx @@ -0,0 +1,113 @@ +//========================================================================== +// +// 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 <cyg/infra/cyg_trac.h> // tracing macros + +#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
--- a/packages/ecos.db +++ b/packages/ecos.db @@ -1461,6 +1461,16 @@ package CYGPKG_DEVICES_WATCHDOG_SH_SH3 { 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
--- a/packages/hal/h8300/h8300h/current/ChangeLog +++ b/packages/hal/h8300/h8300h/current/ChangeLog @@ -1,3 +1,7 @@ +2002-08-14 Yoshinori Sato <qzb04471@nifty.ne.jp> + + * include/mod_regs_wdt.h: New file. Providing watchdog hardware data. + 2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp> * New package.
new file mode 100644 --- /dev/null +++ b/packages/hal/h8300/h8300h/current/include/mod_regs_wdt.h @@ -0,0 +1,75 @@ +#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 + +// EOF mod_regs_wdt.h
