summaryrefslogtreecommitdiff
path: root/ecos/packages/devs/serial/sh/sh4_202_md/current
diff options
context:
space:
mode:
Diffstat (limited to 'ecos/packages/devs/serial/sh/sh4_202_md/current')
-rw-r--r--ecos/packages/devs/serial/sh/sh4_202_md/current/ChangeLog27
-rw-r--r--ecos/packages/devs/serial/sh/sh4_202_md/current/cdl/ser_sh4_202_md.cdl149
-rw-r--r--ecos/packages/devs/serial/sh/sh4_202_md/current/include/sh4_202_md_scif.inl117
3 files changed, 293 insertions, 0 deletions
diff --git a/ecos/packages/devs/serial/sh/sh4_202_md/current/ChangeLog b/ecos/packages/devs/serial/sh/sh4_202_md/current/ChangeLog
new file mode 100644
index 0000000..5a1f496
--- /dev/null
+++ b/ecos/packages/devs/serial/sh/sh4_202_md/current/ChangeLog
@@ -0,0 +1,27 @@
+2003-09-18 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * New package, based on se77x9 driver.
+
+//===========================================================================
+// ####GPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 2003 Free Software Foundation, Inc.
+//
+// This program 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.
+//
+// This program 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 this program; if not, write to the
+// Free Software Foundation, Inc., 51 Franklin Street,
+// Fifth Floor, Boston, MA 02110-1301, USA.
+// -------------------------------------------
+// ####GPLCOPYRIGHTEND####
+//===========================================================================
diff --git a/ecos/packages/devs/serial/sh/sh4_202_md/current/cdl/ser_sh4_202_md.cdl b/ecos/packages/devs/serial/sh/sh4_202_md/current/cdl/ser_sh4_202_md.cdl
new file mode 100644
index 0000000..e365b57
--- /dev/null
+++ b/ecos/packages/devs/serial/sh/sh4_202_md/current/cdl/ser_sh4_202_md.cdl
@@ -0,0 +1,149 @@
+# ====================================================================
+#
+# ser_sh4_202_md.cdl
+#
+# eCos SH4-202 MicroDev serial configuration data
+#
+# ====================================================================
+## ####ECOSGPLCOPYRIGHTBEGIN####
+## -------------------------------------------
+## This file is part of eCos, the Embedded Configurable Operating System.
+## Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, 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.,
+## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 v2.
+##
+## This exception does not invalidate any other reasons why a work based
+## on this file might be covered by the GNU General Public License.
+## -------------------------------------------
+## ####ECOSGPLCOPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s): jlarmour
+# Contributors:
+# Date: 2003-09-18
+# Description: Based on se77x9 driver by jskov.
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+
+cdl_package CYGPKG_IO_SERIAL_SH_SH4_202_MD {
+ display "SH4-202 MicroDev serial device driver"
+
+ parent CYGPKG_IO_SERIAL_DEVICES
+ active_if CYGPKG_IO_SERIAL
+ active_if CYGPKG_HAL_SH_SH4_202_MD
+
+ requires CYGPKG_ERROR
+ include_dir cyg/io
+
+ description "
+ This option enables the serial device drivers for the
+ SuperH SH4-202 MicroDev board, based on the generic SH SCIF driver."
+
+
+ # FIXME: This really belongs in the SH_SCIF package
+ cdl_interface CYGINT_IO_SERIAL_SH_SCIF_REQUIRED {
+ display "SH SCIF driver required"
+ }
+
+ # SCIF port
+ cdl_component CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1 {
+ display "SH4-202 MicroDev SCIF serial port driver"
+ flavor bool
+ default_value 1
+ description "
+ This option includes the serial device driver for the SCIF
+ port on the SH4-202 MicroDev development board."
+
+ implements CYGINT_IO_SERIAL_SH_SCIF_REQUIRED
+ implements CYGINT_IO_SERIAL_FLOW_CONTROL_HW
+ implements CYGINT_IO_SERIAL_LINE_STATUS_HW
+ implements CYGINT_IO_SERIAL_SH_SCIF_ASYNC_RXTX
+ implements CYGINT_IO_SERIAL_SH_SCIF_BR_INTERRUPT
+
+ define_proc {
+ puts $::cdl_system_header "/***** serial driver proc output start *****/"
+ puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_SH_SCIF_INL <cyg/io/sh4_202_md_scif.inl>"
+ puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_SH_SCIF_CFG <pkgconf/io_serial_sh_sh4_202_md.h>"
+ puts $::cdl_system_header "/***** serial driver proc output end *****/"
+ }
+
+ cdl_option CYGDAT_IO_SERIAL_SH_SH4_202_MD_SERIAL1_NAME {
+ display "Device name"
+ flavor data
+ default_value {"\"/dev/ser1\""}
+ description "
+ This option specifies the device name for the serial
+ port."
+ }
+
+ cdl_option CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BAUD {
+ display "Baud rate"
+ flavor data
+ legal_values { 4800 9600 14400 19200 38400 57600 115200 }
+ default_value 38400
+ description "
+ This option specifies the default baud rate (speed)
+ for the serial driver."
+ }
+
+ cdl_option CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE {
+ display "Buffer size"
+ flavor data
+ legal_values 0 to 8192
+ default_value 128
+ description "
+ This option specifies the size of the internal buffers
+ used for the serial driver."
+ }
+
+# DMA not yet implemented
+# cdl_option CYGSEM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_DMA {
+# display "Enable SCIF serial driver DMA"
+# active_if CYGINT_HAL_SH_DMA_CHANNELS
+# implements CYGINT_HAL_SH_DMA_CHANNELS_USED
+# implements CYGINT_IO_SERIAL_SH_SCIF_DMA
+# default_value 1
+# description "
+# Enable DMA for this port."
+# }
+# }
+
+ cdl_component CYGPKG_IO_SERIAL_SH_SH4_202_MD_TESTING {
+ display "Testing parameters"
+ flavor bool
+ calculated 1
+ no_define
+ active_if CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1
+
+ define_proc {
+ puts $::cdl_header "#define CYGPRI_SER_TEST_CRASH_ID \"sh-sh4_202_md\""
+ puts $::cdl_header "#define CYGPRI_SER_TEST_SER_DEV CYGDAT_IO_SERIAL_SH_SH4_202_MD_SERIAL1_NAME"
+ puts $::cdl_header "#define CYGPRI_SER_TEST_TTY_DEV \"/dev/tty1\""
+ }
+ }
+}
+# EOF ser_sh_sh4_202_md.cdl
diff --git a/ecos/packages/devs/serial/sh/sh4_202_md/current/include/sh4_202_md_scif.inl b/ecos/packages/devs/serial/sh/sh4_202_md/current/include/sh4_202_md_scif.inl
new file mode 100644
index 0000000..6745f61
--- /dev/null
+++ b/ecos/packages/devs/serial/sh/sh4_202_md/current/include/sh4_202_md_scif.inl
@@ -0,0 +1,117 @@
+#ifndef CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
+#define CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
+
+//==========================================================================
+//
+// devs/serial/sh/sh4_202_md_scif.inl
+//
+// Serial I/O specification for SuperH SH4-202 MicroDev development board
+//
+//==========================================================================
+// ####ECOSGPLCOPYRIGHTBEGIN####
+// -------------------------------------------
+// This file is part of eCos, the Embedded Configurable Operating System.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, 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.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 v2.
+//
+// This exception does not invalidate any other reasons why a work based
+// on this file might be covered by the GNU General Public License.
+// -------------------------------------------
+// ####ECOSGPLCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s): jlarmour
+// Contributors:
+// Date: 2003-09-18
+// Purpose: Specifies serial resources for the platform.
+// Description: This file can be include from either SCI or SCIF/IRDA driver
+// sources and should specify driver information as required
+// for the platform. This file was derived from the se77x9
+// driver.
+//
+//####DESCRIPTIONEND####
+//==========================================================================
+
+#include <pkgconf/io_serial_sh_sh4_202_md.h>
+
+#ifdef CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1
+static sh_scif_info sh4_202_md_serial_info1 = {
+ er_int_num : CYGNUM_HAL_INTERRUPT_SCIF_ERI,
+ rx_int_num : CYGNUM_HAL_INTERRUPT_SCIF_RXI,
+ br_int_num : CYGNUM_HAL_INTERRUPT_SCIF_BRI,
+ tx_int_num : CYGNUM_HAL_INTERRUPT_SCIF_TXI,
+ ctrl_base : CYGARC_REG_SCIF_SCSMR2,
+#ifdef CYGINT_IO_SERIAL_SH_SCIF_DMA
+# ifdef CYGSEM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_DMA
+ dma_enable : true,// we want DMA for this channel
+ dma_xmt_cr_flags : CYGARC_REG_CHCR_RS_SCIF_TX
+# else
+ dma_enable : false // No DMA
+# endif
+#endif
+};
+
+#if CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE > 0
+static unsigned char sh4_202_md_serial_out_buf1[CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE];
+static unsigned char sh4_202_md_serial_in_buf1[CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BUFSIZE];
+
+static SERIAL_CHANNEL_USING_INTERRUPTS(sh4_202_md_serial_channel1,
+ sh_scif_funs,
+ sh4_202_md_serial_info1,
+ CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BAUD),
+ CYG_SERIAL_STOP_DEFAULT,
+ CYG_SERIAL_PARITY_DEFAULT,
+ CYG_SERIAL_WORD_LENGTH_DEFAULT,
+ CYG_SERIAL_FLAGS_DEFAULT,
+ &sh4_202_md_serial_out_buf1[0],
+ sizeof(sh4_202_md_serial_out_buf1),
+ &sh4_202_md_serial_in_buf1[0],
+ sizeof(sh4_202_md_serial_in_buf1)
+ );
+#else
+static SERIAL_CHANNEL(sh4_202_md_serial_channel1,
+ sh_scif_funs,
+ sh4_202_md_serial_info1,
+ CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SH_SH4_202_MD_SERIAL1_BAUD),
+ CYG_SERIAL_STOP_DEFAULT,
+ CYG_SERIAL_PARITY_DEFAULT,
+ CYG_SERIAL_WORD_LENGTH_DEFAULT,
+ CYG_SERIAL_FLAGS_DEFAULT
+ );
+#endif
+
+DEVTAB_ENTRY(sh_serial_io1,
+ CYGDAT_IO_SERIAL_SH_SH4_202_MD_SERIAL1_NAME,
+ 0, // Does not depend on a lower level interface
+ &cyg_io_serial_devio,
+ sh_scif_init,
+ sh_scif_lookup, // Serial driver may need initializing
+ &sh4_202_md_serial_channel1
+ );
+#endif // CYGPKG_IO_SERIAL_SH_SH4_202_MD_SERIAL1
+
+#endif // CYGONCE_DEVS_SH_SH4_202_MD_SCIF_H
+
+// EOF sh4_202_md_scif.inl