Mercurial > flash_v2
changeset 1639:73b71f156116
* New package which implements serial for the AIM711
| author | asl |
|---|---|
| date | Fri, 14 May 2004 14:51:28 +0000 |
| parents | 8986eb86c6a6 |
| children | b958d883e5f5 |
| files | packages/devs/serial/arm/aim711/current/ChangeLog packages/devs/serial/arm/aim711/current/cdl/ser_arm_aim711.cdl packages/devs/serial/arm/aim711/current/cdl/ser_arm_aim711_16x5x.cdl packages/devs/serial/arm/aim711/current/cdl/ser_arm_aim711_s3c4510.cdl packages/devs/serial/arm/aim711/current/include/ser_arm_aim711_16x5x.inl packages/devs/serial/arm/aim711/current/include/ser_arm_aim711_s3c4510.inl |
| diffstat | 6 files changed, 752 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/packages/devs/serial/arm/aim711/current/ChangeLog @@ -0,0 +1,38 @@ +2003-10-30 Roland Cassebohm <roland.cassebohm@visionsystems.de> + + * 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/serial/arm/aim711/current/cdl/ser_arm_aim711.cdl @@ -0,0 +1,96 @@ +# ==================================================================== +# +# ser_arm_aim711.cdl +# +# eCos serial ARM Industrial Module AIM 711 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): Lars.Lindqvist@combitechsystems.com +# Contributors: jlarmour +# Date: 2001-10-19 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + + +cdl_package CYGPKG_IO_SERIAL_ARM_AIM711 { + display "ARM Industrial Module AIM 711 serial device drivers" + + parent CYGPKG_IO_SERIAL_DEVICES + active_if CYGPKG_IO_SERIAL + + include_dir cyg/io + include_files ; # none _exported_ whatsoever + description " + This package contains serial device drivers for the + ARM Industrial Module AIM 711." + + define_proc { + puts $::cdl_system_header "/***** serial driver proc output start *****/" + puts $::cdl_system_header "#ifndef CYGDAT_IO_SERIAL_DEVICE_HEADER" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_DEVICE_HEADER <pkgconf/io_serial_arm_aim711.h>" + puts $::cdl_system_header "#endif" + puts $::cdl_system_header "/***** serial driver proc output end *****/" + puts $::cdl_header "#include <pkgconf/system.h>"; + puts $::cdl_header "#include <pkgconf/io_serial_arm_s3c4510.h>"; + puts $::cdl_header "#include <pkgconf/io_serial_generic_16x5x.h>"; + puts $::cdl_header "#include CYGDAT_IO_SERIAL_ARM_S3C4510_CFG"; + puts $::cdl_header "#include CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG"; + } + + cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_TESTING { + display "Testing parameters" + flavor bool + calculated 1 + active_if CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0 + + cdl_option CYGPRI_SER_TEST_SER_DEV { + display "Serial device used for testing" + flavor data + default_value { CYGDAT_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_NAME } + } + + define_proc { + puts $::cdl_header "#define CYGPRI_SER_TEST_CRASH_ID \"arm16x5x\"" + puts $::cdl_header "#define CYGPRI_SER_TEST_TTY_DEV \"/dev/tty2\"" + } + } +} + +# EOF ser_arm_aim711.cdl
new file mode 100644 --- /dev/null +++ b/packages/devs/serial/arm/aim711/current/cdl/ser_arm_aim711_16x5x.cdl @@ -0,0 +1,156 @@ +# ==================================================================== +# +# ser_arm_aim711_16x5x.cdl +# +# eCos serial ARM Industrial Module AIM 711 configuration data +# for the 16550 serial driver +# +# ==================================================================== +#####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): Lars.Lindqvist@combitechsystems.com +# Contributors: jlarmour +# Date: 2001-10-19 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + + +cdl_package CYGPKG_IO_SERIAL_ARM_AIM711_16X5X { + display "ARM Industrial Module AIM 711 16x5x serial device drivers" + + parent CYGPKG_IO_SERIAL_DEVICES + active_if CYGPKG_IO_SERIAL + active_if CYGPKG_HAL_ARM_AIM711 + + requires CYGPKG_ERROR + include_dir cyg/io + description " + This package contains serial device drivers for the + ARM Industrial Module AIM 711 for the 16550 serial + interface on board." + + # FIXME: This really belongs in the GENERIC_16X5X package + cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED { + display "Generic 16x5x serial driver required" + } + + define_proc { + puts $::cdl_system_header "/***** serial driver proc output start *****/" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_INL <cyg/io/ser_arm_aim711_16x5x.inl>" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG <pkgconf/io_serial_arm_aim711_16x5x.h>" + puts $::cdl_system_header "/***** serial driver proc output end *****/" + } + +cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0 { + display "AIM 711 16X5X serial port 0 driver (COM1)" + flavor bool + default_value 1 + description " + This option includes the serial device driver for the AIM 711 16X5X + port 0, which is COM1 on the AIM 711." + + implements CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED + implements CYGINT_IO_SERIAL_FLOW_CONTROL_HW + implements CYGINT_IO_SERIAL_LINE_STATUS_HW + + cdl_option CYGDAT_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_NAME { + display "Device name for the AIM 711 16X5X serial port 0 driver (COM1)" + flavor data + default_value {"\"/dev/ser1\""} + description " + This option sets the name of the serial device for the AIM 711 + 16X5X port 0 (COM1)." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BAUD { + display "Baud rate for the AIM 711 16X5X serial port 0 driver" + flavor data + legal_values { 50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600 + 4800 7200 9600 14400 19200 38400 57600 115200 230400 + } + default_value 38400 + description " + This option specifies the default baud rate (speed) for the + AIM 711 16X5X port 0." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BUFSIZE { + display "Buffer size for the AIM 711 16X5X serial port 0 driver" + flavor data + legal_values 0 to 8192 + default_value 128 + description " + This option specifies the size of the internal buffers used for + the AIM 711 16X5X port 0." + } +} + + cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_OPTIONS { + display "Serial device driver 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_IO_SERIAL_ARM_AIM711_16X5X_CFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building these serial device drivers. These flags are used in addition + to the set of global flags." + } + + cdl_option CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_CFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building these serial device drivers. These flags are removed from + the set of global flags if present." + } + } +} + +# EOF ser_arm_aim711_16x5x.cdl
new file mode 100644 --- /dev/null +++ b/packages/devs/serial/arm/aim711/current/cdl/ser_arm_aim711_s3c4510.cdl @@ -0,0 +1,196 @@ +# ==================================================================== +# +# ser_arm_aim711_s3c4510.cdl +# +# eCos serial ARM Industrial Module AIM 711 configuration data +# for the internal ARM/S3C4510 serial driver +# +# ==================================================================== +#####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): Lars.Lindqvist@combitechsystems.com +# Contributors: jlarmour +# Date: 2001-10-19 +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + + +cdl_package CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510 { + display "ARM Industrial Module AIM 711 S3C4510 serial device drivers" + + parent CYGPKG_IO_SERIAL_DEVICES + active_if CYGPKG_IO_SERIAL + active_if CYGPKG_HAL_ARM_AIM711 + + requires CYGPKG_ERROR + include_dir cyg/io + description " + This package contains serial device drivers for the + ARM Industrial Module AIM 711 for the internal serial + interface of the S3C4510." + + # FIXME: This really belongs in the SERIAL_ARM_S3C4510 package + cdl_interface CYGINT_IO_SERIAL_ARM_S3C4510_REQUIRED { + display "Generic s3c4510 serial driver required" + } + + define_proc { + puts $::cdl_system_header "/***** serial driver proc output start *****/" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_ARM_S3C4510_INL <cyg/io/ser_arm_aim711_s3c4510.inl>" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_ARM_S3C4510_CFG <pkgconf/io_serial_arm_aim711_s3c4510.h>" + puts $::cdl_system_header "/***** serial driver proc output end *****/" + } + +cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0 { + display "AIM 711 S3C4510 serial port 0 driver (service adapter)" + flavor bool + default_value 1 + description " + This option includes the serial device driver for the AIM 711 S3C4510 + port 0, which is on the AIM 711 the port on the service adapter." + + implements CYGINT_IO_SERIAL_ARM_S3C4510_REQUIRED + + cdl_option CYGDAT_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_NAME { + display "Device name for the AIM 711 S3C4510 serial port 0 driver (service adapter)" + flavor data + default_value {"\"/dev/ser0\""} + description " + This option sets the name of the serial device for the AIM 711 + S3C4510 port 0 (service adapter)." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BAUD { + display "Baud rate for the AIM 711 S3C4510 serial port 0 driver" + flavor data + legal_values { 50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600 + 4800 7200 9600 14400 19200 38400 57600 115200 230400 + } + default_value 38400 + description " + This option specifies the default baud rate (speed) for the + AIM 711 S3C4510 port 0." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BUFSIZE { + display "Buffer size for the AIM 711 S3C4510 serial port 0 driver" + flavor data + legal_values 0 to 8192 + default_value 128 + description " + This option specifies the size of the internal buffers used for + the AIM 711 S3C4510 port 0." + } +} + +cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1 { + display "AIM 711 S3C4510 serial port 1 driver (COM2)" + flavor bool + default_value 1 + description " + This option includes the serial device driver for the AIM 711 + S3C4510 port 1, which is the COM2 on the AIM 711." + + implements CYGINT_IO_SERIAL_ARM_S3C4510_REQUIRED + + cdl_option CYGDAT_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_NAME { + display "Device name for the AIM 711 S3C4510 serial port 1 driver (COM2)" + flavor data + default_value {"\"/dev/ser2\""} + description " + This option specifies the name of serial device for the + AIM 711 S3C4510 port 1 (COM2)." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BAUD { + display "Baud rate for the AIM 711 S3C4510 serial port 1 driver" + flavor data + legal_values { 50 75 110 "134_5" 150 200 300 600 1200 1800 2400 3600 + 4800 7200 9600 14400 19200 38400 57600 115200 230400 + } + default_value 38400 + description " + This option specifies the default baud rate (speed) for the + AIM 711 S3C4510 port 1." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BUFSIZE { + display "Buffer size for the AIM 711 S3C4510 serial port 1 driver" + flavor data + legal_values 0 to 8192 + default_value 128 + description " + This option specifies the size of the internal buffers used + for the AIM 711 S3C4510 port 1." + } +} + + cdl_component CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_OPTIONS { + display "Serial device driver 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_IO_SERIAL_ARM_AIM711_S3C4510_CFLAGS_ADD { + display "Additional compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building these serial device drivers. These flags are used in addition + to the set of global flags." + } + + cdl_option CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_CFLAGS_REMOVE { + display "Suppressed compiler flags" + flavor data + no_define + default_value { "" } + description " + This option modifies the set of compiler flags for + building these serial device drivers. These flags are removed from + the set of global flags if present." + } + } +} + +# EOF ser_arm_aim711_s3c4510.cdl
new file mode 100644 --- /dev/null +++ b/packages/devs/serial/arm/aim711/current/include/ser_arm_aim711_16x5x.inl @@ -0,0 +1,125 @@ +//========================================================================== +// +// ser_arm_aim711_16x5x.inl +// +// ARM Industrial Module AIM 711 Serial I/O Interface Module +// (interrupt driven) for use with 16x5x driver. +// +//========================================================================== +//####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): jlarmour +// Contributors: +// Date: 2001-06-08 +// Purpose: Serial I/O module (interrupt driven version) +// Description: +// +//####DESCRIPTIONEND#### +// +//========================================================================== + +#include <cyg/hal/hal_intr.h> + +//----------------------------------------------------------------------------- +// Baud rate specification, based on raw 7.3728 MHz clock + +static unsigned short select_baud[] = { + 0, // Unused + 9216, // 50 + 6144, // 75 + 4189, // 110 + 3426, // 134.5 + 3072, // 150 + 2304, // 200 + 1537, // 300 + 768, // 600 + 384, // 1200 + 256, // 1800 + 192, // 2400 + 128, // 3600 + 96, // 4800 + 64, // 7200 + 48, // 9600 + 32, // 14400 + 24, // 19200 + 12, // 38400 + 8, // 57600 + 4, // 115200 + 2, // 230400 + 1, // 460800 +}; + +#ifdef CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0 +static pc_serial_info aim711_16x5x_serial_info0 = {0x7fd0008, + CYGNUM_HAL_INTERRUPT_EXT0}; +#if CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BUFSIZE > 0 +static unsigned char aim711_16x5x_serial_out_buf0[CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BUFSIZE]; +static unsigned char aim711_16x5x_serial_in_buf0[CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BUFSIZE]; + +static SERIAL_CHANNEL_USING_INTERRUPTS(aim711_16x5x_serial_channel0, + pc_serial_funs, + aim711_16x5x_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT, + &aim711_16x5x_serial_out_buf0[0], sizeof(aim711_16x5x_serial_out_buf0), + &aim711_16x5x_serial_in_buf0[0], sizeof(aim711_16x5x_serial_in_buf0) + ); +#else +static SERIAL_CHANNEL(aim711_16x5x_serial_channel0, + pc_serial_funs, + aim711_16x5x_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +#endif + +DEVTAB_ENTRY(aim711_16x5x_serial_io0, + CYGDAT_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0_NAME, + 0, // Does not depend on a lower level interface + &cyg_io_serial_devio, + pc_serial_init, + pc_serial_lookup, // Serial driver may need initializing + &aim711_16x5x_serial_channel0 + ); +#endif // CYGPKG_IO_SERIAL_ARM_AIM711_16X5X_SERIAL0 + +// EOF ser_arm_aim711_16x5x.inl
new file mode 100644 --- /dev/null +++ b/packages/devs/serial/arm/aim711/current/include/ser_arm_aim711_s3c4510.inl @@ -0,0 +1,141 @@ +// ==================================================================== +// +// ser_arm_aim711_s3c4510.inl +// +// ARM Industrial Module AIM 711 Serial I/O Interface Module +// (interrupt driven) for use with s3c4510 driver. +// +// ==================================================================== +//####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): Lars.Lindqvist@combitechsystems.com +// Contributors: jlarmour +// Date: 2001-10-19 +// Purpose: Internal interfaces for serial I/O drivers +// Description: +// +//####DESCRIPTIONEND#### +// +// ==================================================================== + +#include <pkgconf/hal.h> // Value CYGNUM_HAL_ARM_S3C4510_CLOCK_SPEED needed +#include <cyg/hal/hal_intr.h> + +#define CYGNUM_HAL_ARM_S3C4510_CLOCK_SPEED CYGNUM_HAL_CPUCLOCK + +#ifdef CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0 +static s3c4510_serial_info s3c4510_serial_info0 = {0x07FFd000, + CYGNUM_HAL_INTERRUPT_UART0_TX, + CYGNUM_HAL_INTERRUPT_UART0_RX}; +#if CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BUFSIZE > 0 +static unsigned char s3c4510_serial_out_buf0[CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BUFSIZE]; +static unsigned char s3c4510_serial_in_buf0[CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BUFSIZE]; + +static SERIAL_CHANNEL_USING_INTERRUPTS(s3c4510_serial_channel0, + s3c4510_serial_funs, + s3c4510_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT, + &s3c4510_serial_out_buf0[0], sizeof(s3c4510_serial_out_buf0), + &s3c4510_serial_in_buf0[0], sizeof(s3c4510_serial_in_buf0) + ); +#else +static SERIAL_CHANNEL(s3c4510_serial_channel0, + s3c4510_serial_funs, + s3c4510_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +#endif + +DEVTAB_ENTRY(s3c4510_serial_io0, + CYGDAT_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0_NAME, + 0, // Does not depend on a lower level interface + &cyg_io_serial_devio, + s3c4510_serial_init, + s3c4510_serial_lookup, // Serial driver may need initializing + &s3c4510_serial_channel0 + ); +#endif // CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL0 + +#ifdef CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1 +static s3c4510_serial_info s3c4510_serial_info1 = {0x07FFe000, + CYGNUM_HAL_INTERRUPT_UART1_TX, + CYGNUM_HAL_INTERRUPT_UART1_RX}; +#if CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BUFSIZE > 0 +static unsigned char s3c4510_serial_out_buf1[CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BUFSIZE]; +static unsigned char s3c4510_serial_in_buf1[CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BUFSIZE]; + +static SERIAL_CHANNEL_USING_INTERRUPTS(s3c4510_serial_channel1, + s3c4510_serial_funs, + s3c4510_serial_info1, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT, + &s3c4510_serial_out_buf1[0], sizeof(s3c4510_serial_out_buf1), + &s3c4510_serial_in_buf1[0], sizeof(s3c4510_serial_in_buf1) + ); +#else +static SERIAL_CHANNEL(s3c4510_serial_channel1, + s3c4510_serial_funs, + s3c4510_serial_info1, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +#endif + +DEVTAB_ENTRY(s3c4510_serial_io1, + CYGDAT_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1_NAME, + 0, // Does not depend on a lower level interface + &cyg_io_serial_devio, + s3c4510_serial_init, + s3c4510_serial_lookup, // Serial driver may need initializing + &s3c4510_serial_channel1 + ); +#endif // CYGPKG_IO_SERIAL_ARM_AIM711_S3C4510_SERIAL1 + +// EOF ser_arm_aim711_s3c4510.inl
