This is the mail archive of the ecos-patches@sourceware.org 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] | |
>Hi Steve
>
>This part does not compile:
>
>> + if(scsr & MPC555_SERIAL_SCxSR_NF)
>> + {
>> + stat.which = CYGNUM_SERIAL_STATUS_NOISEERR;
>> + (chan->callbacks->indicate_status)(chan, &stat);
>> + }
>
>I guess you changed serialio.h as well? Please could you
>submit that change as well?
>
> Thanks
> Andrew
>
Sorry, serialio.h slipped through the net.
I've rediffed the diff (including the previous changes).
Also I've received the assignment paperwork from GNU/FSF so I'll try and
get somebody with the legal clout to read through it and sign it off
asap.
Steve
Index: ecos/packages/devs/serial/powerpc/mpc555/current/ChangeLog
===================================================================
RCS file:
/cvs/ecos/ecos/packages/devs/serial/powerpc/mpc555/current/ChangeLog,v
retrieving revision 1.1
diff -u -r1.1 ChangeLog
--- ecos/packages/devs/serial/powerpc/mpc555/current/ChangeLog 6 May
2008 19:04:21 -0000 1.1
+++ ecos/packages/devs/serial/powerpc/mpc555/current/ChangeLog 22 May
2008 10:27:42 -0000
@@ -1,3 +1,9 @@
+2008-05-13 Steven Clugston <steven.clugston@ncl.ac.uk>
+ * cdl/ser_powerpc_mpc555.cdl: Add line status
+ * src/mpc555_serial_with_ints.c:
+ Fixed exception caused by attempt to clear scsr bits.
+ Add line status callbacks
+
2008-04-06 Steven Clugston <steven.clugston@ncl.ac.uk>
* Refactored cme555 package to more generic mpc555
Index:
ecos/packages/devs/serial/powerpc/mpc555/current/cdl/ser_powerpc_mpc555.
cdl
===================================================================
RCS file:
/cvs/ecos/ecos/packages/devs/serial/powerpc/mpc555/current/cdl/ser_power
pc_mpc555.cdl,v
retrieving revision 1.1
diff -u -r1.1 ser_powerpc_mpc555.cdl
---
ecos/packages/devs/serial/powerpc/mpc555/current/cdl/ser_powerpc_mpc555.
cdl 6 May 2008 19:04:21 -0000 1.1
+++
ecos/packages/devs/serial/powerpc/mpc555/current/cdl/ser_powerpc_mpc555.
cdl 22 May 2008 10:27:42 -0000
@@ -32,6 +32,9 @@
##
## 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####
# ====================================================================
@@ -72,6 +75,7 @@
display "mpc555 PowerPC serial port A driver"
flavor bool
default_value 0
+ implements CYGINT_IO_SERIAL_LINE_STATUS_HW
description "
This option includes the serial device driver for the mpc555
PowerPC port A."
@@ -110,6 +114,7 @@
display "mpc555 PowerPC serial port B driver"
flavor bool
default_value 1
+ implements CYGINT_IO_SERIAL_LINE_STATUS_HW
description "
This option includes the serial device driver for the mpc555
PowerPC port B."
Index:
ecos/packages/devs/serial/powerpc/mpc555/current/src/mpc555_serial_with_
ints.c
===================================================================
RCS file:
/cvs/ecos/ecos/packages/devs/serial/powerpc/mpc555/current/src/mpc555_se
rial_with_ints.c,v
retrieving revision 1.1
diff -u -r1.1 mpc555_serial_with_ints.c
---
ecos/packages/devs/serial/powerpc/mpc555/current/src/mpc555_serial_with_
ints.c 6 May 2008 19:04:21 -0000 1.1
+++
ecos/packages/devs/serial/powerpc/mpc555/current/src/mpc555_serial_with_
ints.c 22 May 2008 10:27:42 -0000
@@ -32,6 +32,9 @@
//
// 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####
//======================================================================
====
@@ -609,14 +612,38 @@
cyg_uint16 scdr;
cyg_uint16 scsr;
- // Allways read out the received character, in order to clear
receiver flags
- HAL_READ_UINT16(port + MPC555_SERIAL_SCxDR, scdr);
+#ifdef CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
+ cyg_serial_line_status_t stat;
+#endif
HAL_READ_UINT16(port + MPC555_SERIAL_SCxSR, scsr);
+ // Always read out the received character, in order to clear receiver
flags
+ HAL_READ_UINT16(port + MPC555_SERIAL_SCxDR, scdr);
+
if(scsr & (cyg_uint16)MPC555_SERIAL_SCxSR_ERRORS)
{
- scsr &= ~((cyg_uint16)MPC555_SERIAL_SCxSR_ERRORS);
- HAL_WRITE_UINT16(port + MPC555_SERIAL_SCxSR, scsr);
+#ifdef CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS
+ if(scsr & MPC555_SERIAL_SCxSR_OR)
+ {
+ stat.which = CYGNUM_SERIAL_STATUS_OVERRUNERR;
+ (chan->callbacks->indicate_status)(chan, &stat);
+ }
+ if(scsr & MPC555_SERIAL_SCxSR_NF)
+ {
+ stat.which = CYGNUM_SERIAL_STATUS_NOISEERR;
+ (chan->callbacks->indicate_status)(chan, &stat);
+ }
+ if(scsr & MPC555_SERIAL_SCxSR_FE)
+ {
+ stat.which = CYGNUM_SERIAL_STATUS_FRAMEERR;
+ (chan->callbacks->indicate_status)(chan, &stat);
+ }
+ if(scsr & MPC555_SERIAL_SCxSR_PF)
+ {
+ stat.which = CYGNUM_SERIAL_STATUS_PARITYERR;
+ (chan->callbacks->indicate_status)(chan, &stat);
+ }
+#endif
}
else
{
Index: ecos/packages/io/serial/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/serial/current/ChangeLog,v
retrieving revision 1.72
diff -u -r1.72 ChangeLog
--- ecos/packages/io/serial/current/ChangeLog 30 Jan 2008 18:39:11
-0000 1.72
+++ ecos/packages/io/serial/current/ChangeLog 22 May 2008 10:28:02
-0000
@@ -1,3 +1,8 @@
+2008-05-13 Steven Clugston <steven.clugston@ncl.ac.uk>
+
+ * tests/ser_test_protocol.inl : Add mpc555 generic platform
+ * include/serialio.h : Add noise error define to line status
+
2008-01-30 Andrew Lunn <andrew.lunn@ascom.ch>
* src/common/termiostty.c (termios_lookup): Add missing set of
Index: ecos/packages/io/serial/current/include/serialio.h
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/serial/current/include/serialio.h,v
retrieving revision 1.11
diff -u -r1.11 serialio.h
--- ecos/packages/io/serial/current/include/serialio.h 1 Sep 2006
11:15:01 -0000 1.11
+++ ecos/packages/io/serial/current/include/serialio.h 22 May 2008
10:28:02 -0000
@@ -174,6 +174,7 @@
# define CYGNUM_SERIAL_STATUS_OVERRUNERR 4
# define CYGNUM_SERIAL_STATUS_CARRIERDETECT 5
# define CYGNUM_SERIAL_STATUS_RINGINDICATOR 6
+# define CYGNUM_SERIAL_STATUS_NOISEERR 7
typedef struct {
cyg_uint32 which; // one of CYGNUM_SERIAL_STATUS_* above
Index: ecos/packages/io/serial/current/tests/ser_test_protocol.inl
===================================================================
RCS file:
/cvs/ecos/ecos/packages/io/serial/current/tests/ser_test_protocol.inl,v
retrieving revision 1.31
diff -u -r1.31 ser_test_protocol.inl
--- ecos/packages/io/serial/current/tests/ser_test_protocol.inl 3 Aug
2005 21:00:34 -0000 1.31
+++ ecos/packages/io/serial/current/tests/ser_test_protocol.inl 22 May
2008 10:28:02 -0000
@@ -113,6 +113,15 @@
# define TEST_TTY_DEV CYGDAT_IO_SERIAL_TTY_TTY0_DEV
# endif
#endif
+#if defined(CYGPKG_HAL_POWERPC_MPC5xx) \
+ && defined(CYGPKG_IO_SERIAL_POWERPC_MPC555) \
+ && defined(CYGPKG_IO_SERIAL_POWERPC_MPC555_SERIAL_A)
+# define TEST_CRASH_ID "mpc555"
+# define TEST_SER_DEV CYGDAT_IO_SERIAL_POWERPC_MPC555_SERIAL_A_NAME
+# if defined(CYGPKG_IO_SERIAL_TTY_TTY0)
+# define TEST_TTY_DEV CYGDAT_IO_SERIAL_TTY_TTY0_DEV
+# endif
+#endif
// We can't rely on haldiag for ser_filter detection - it may not
define
// a working character reading function.
Attachment:
mpc555_serial.diff
Description: mpc555_serial.diff
Attachment:
ChangeLog
Description: ChangeLog
Attachment:
serialio.h
Description: serialio.h
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |