diff -rbupN ecos/packages/ChangeLog ecos.modified/packages/ChangeLog --- ecos/packages/ChangeLog 2006-10-16 16:36:14.000000000 +0200 +++ ecos.modified/packages/ChangeLog 2006-11-21 11:21:10.000000000 +0100 @@ -1,3 +1,7 @@ +2006-11-21 Alexander Neundorf + * ecos.db: add generic interrupt driven serial IO driver + for PXA 2X0 platforms + 2006-10-16 Jonathan Larmour * ecos.db: Comment out CYGPKG_DEVS_ETH_ARM_AT91 for now - it's still diff -rbupN ecos/packages/devs/serial/arm/pxa2x0/current/cdl/ser_arm_xscale_pxa2x0.cdl ecos.modified/packages/devs/serial/arm/pxa2x0/current/cdl/ser_arm_xscale_pxa2x0.cdl --- ecos/packages/devs/serial/arm/pxa2x0/current/cdl/ser_arm_xscale_pxa2x0.cdl 1970-01-01 01:00:00.000000000 +0100 +++ ecos.modified/packages/devs/serial/arm/pxa2x0/current/cdl/ser_arm_xscale_pxa2x0.cdl 2006-11-21 10:59:32.000000000 +0100 @@ -0,0 +1,155 @@ +# ==================================================================== +# +# ser_arm_xscale_pxa2x0.cdl +# +# eCos serial PXA 2X0 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): msalter +# Original data: msalter +# Contributors: Alexander Neundorf +# Date: 21st November 2006 (last modification) +# +#####DESCRIPTIONEND#### +# +# ==================================================================== + + +cdl_package CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0 { + display "PXA2X0 serial device drivers" + + parent CYGPKG_IO_SERIAL_DEVICES + active_if CYGPKG_IO_SERIAL + active_if CYGPKG_HAL_ARM_XSCALE_PXA2X0 + + requires CYGPKG_ERROR + include_dir cyg/io + + description " + This option enables the serial device drivers for pxa." + doc redirect/ecos-device-drivers.html + + # 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_header "#define CYGPRI_IO_SERIAL_GENERIC_16X5X_STEP 4" + } + + + define_proc { + puts $::cdl_system_header "/***** serial driver proc output start *****/" + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_INL " + puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG " + puts $::cdl_system_header "/***** serial driver proc output end *****/" + } + + cdl_component CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0 { + display "ARM XSCALE PXA2X0 serial port 0 driver" + flavor bool + default_value 1 + + implements CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED + implements CYGINT_IO_SERIAL_FLOW_CONTROL_HW + implements CYGINT_IO_SERIAL_LINE_STATUS_HW + implements CYGNUM_SERIAL_FLOW_RTSCTS_RX + implements CYGNUM_SERIAL_FLOW_RTSCTS_TX + + + description " + This option includes the serial device driver for the PXA 2X0." + + cdl_option CYGDAT_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_NAME { + display "Device name for PXA 2X0 serial port 0 driver" + flavor data + default_value {"\"/dev/ser0\""} + description " + This option specifies the name of the serial device + for the PXA 2X0 port 0." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BAUD { + display "Baud rate for the PXA2X0 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 } + default_value 115200 + description " + This option specifies the default baud rate (speed) + for the PXA2X0 port 0." + } + + cdl_option CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BUFSIZE { + display "Buffer size for the 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 port 0." + } + } + + + cdl_component CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0_TESTING { + display "Testing parameters" + flavor bool + calculated 1 + active_if CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0 + + implements CYGINT_IO_SERIAL_TEST_SKIP_9600 + implements CYGINT_IO_SERIAL_TEST_SKIP_115200 + implements CYGINT_IO_SERIAL_TEST_SKIP_PARITY_EVEN + + cdl_option CYGPRI_SER_TEST_SER_DEV { + display "Serial device used for testing" + flavor data + default_value { CYGDAT_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_NAME } + } + + define_proc { + puts $::cdl_header "#define CYGPRI_SER_TEST_CRASH_ID \"pxa2x0\"" + puts $::cdl_header "#define CYGPRI_SER_TEST_TTY_DEV \"/dev/tty0\"" + } + } + +} + +# EOF ser_arm_xscale_pxa2x0.cdl diff -rbupN ecos/packages/devs/serial/arm/pxa2x0/current/ChangeLog ecos.modified/packages/devs/serial/arm/pxa2x0/current/ChangeLog --- ecos/packages/devs/serial/arm/pxa2x0/current/ChangeLog 1970-01-01 01:00:00.000000000 +0100 +++ ecos.modified/packages/devs/serial/arm/pxa2x0/current/ChangeLog 2006-11-21 11:03:08.000000000 +0100 @@ -0,0 +1,47 @@ +2006-11-21 Alexander Neundorf + * generic PXA 2X0 serial IO support, based on the IQ80321 driver + +2003-02-24 Jonathan Larmour + + * cdl/ser_arm_iq80321.cdl: Remove irrelevant doc link. + +2002-01-25 Nick Garnett + + * include/arm_iq80321_ser.inl: + * cdl/ser_arm_iq80321.cdl: + IQ80321 files created, by copying the IQ80310 versions and editing. + +//=========================================================================== +//####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#### +//=========================================================================== diff -rbupN ecos/packages/devs/serial/arm/pxa2x0/current/include/arm_xscale_pxa2x0_ser.inl ecos.modified/packages/devs/serial/arm/pxa2x0/current/include/arm_xscale_pxa2x0_ser.inl --- ecos/packages/devs/serial/arm/pxa2x0/current/include/arm_xscale_pxa2x0_ser.inl 1970-01-01 01:00:00.000000000 +0100 +++ ecos.modified/packages/devs/serial/arm/pxa2x0/current/include/arm_xscale_pxa2x0_ser.inl 2006-11-21 11:01:03.000000000 +0100 @@ -0,0 +1,123 @@ +//========================================================================== +// +// io/serial/arm/arm_xscale_pxa2x0_ser.inl +// +// Generic PXA 2X0 Serial I/O definitions +// +//========================================================================== +//#####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): msalter +// Contributors: msalter, Alexander Neundorf +// Date: 21st November 2006 +// Purpose: PXA2X0 Serial I/O module (interrupt driven version) +// Description: +// +//####DESCRIPTIONEND#### +// +//========================================================================== + +#include + +//----------------------------------------------------------------------------- +// Baud rate specification + +static unsigned short select_baud[] = { + 0, // Unused + 0, // 50 + 0, // 75 + 0, // 110 + 0, // 134.5 + 0, // 150 + 0, // 200 + 0, // 300 + 0, // 600 + 0, // 1200 + 0, // 1800 + 0, // 2400 + 0, // 3600 + 0, // 4800 + 0, // 7200 + 0, // 9600 + 64, // 14400 + 48, // 19200 + 24, // 38400 + 16, // 57600 + 8, // 115200 +}; + +#ifdef CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0 +static pc_serial_info pxa2x0_serial_info0 = {PXA2X0_FFUART_BASE, + CYGNUM_HAL_INTERRUPT_FFUART}; +#if CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BUFSIZE > 0 +static unsigned char pxa2x0_serial_out_buf0[CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BUFSIZE]; +static unsigned char pxa2x0_serial_in_buf0[CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BUFSIZE]; + +static SERIAL_CHANNEL_USING_INTERRUPTS(pxa2x0_serial_channel0, + pc_serial_funs, + pxa2x0_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT, + &pxa2x0_serial_out_buf0[0], sizeof(pxa2x0_serial_out_buf0), + &pxa2x0_serial_in_buf0[0], sizeof(pxa2x0_serial_in_buf0) + ); +#else +static SERIAL_CHANNEL(pxa2x0_serial_channel0, + pc_serial_funs, + pxa2x0_serial_info0, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +#endif + +DEVTAB_ENTRY(pxa2x0_serial_io0, + CYGDAT_IO_SERIAL_ARM_XSCALE_PXA2X0_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 + &pxa2x0_serial_channel0 + ); +#endif // CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0_SERIAL0 + + +// EOF arm_xscale_pxa2x0_ser.inl diff -rbupN ecos/packages/ecos.db ecos.modified/packages/ecos.db --- ecos/packages/ecos.db 2006-10-16 16:36:14.000000000 +0200 +++ ecos.modified/packages/ecos.db 2006-11-21 11:26:03.000000000 +0100 @@ -836,6 +836,16 @@ package CYGPKG_IO_SERIAL_ARM_EBSA285 { description "Intel StrongARM/EBSA285 serial device drivers" } +package CYGPKG_IO_SERIAL_ARM_XSCALE_PXA2X0 { + alias { "Intel XScale PXA2X0 serial driver" + devs_serial_arm_xscale_pxa pxa_serial_driver } + hardware + directory devs/serial/arm/pxa2x0 + script ser_arm_xscale_pxa2x0.cdl + description "Intel XScale/PXA2X0 serial device drivers" +} + + package CYGPKG_IO_SERIAL_ARM_XSCALE_IOP310 { alias { "Intel XScale IOP310 serial driver" devs_serial_arm_iop310 iop310_serial_driver }