Just browsed through the mailing list archive and found lots people
did the same on LPC2XXX. How about patching tree with something like
that?

Index: packages/devs/serial/arm/lpc2xxx/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/arm/lpc2xxx/current/ChangeLog,v
retrieving revision 1.2
diff -u -r1.2 ChangeLog
--- packages/devs/serial/arm/lpc2xxx/current/ChangeLog  15 Nov 2004
09:20:25 -0000  1.2
+++ packages/devs/serial/arm/lpc2xxx/current/ChangeLog  19 Jun 2007
06:17:31 -0000
@@ -1,3 +1,8 @@
+2007-06-19  Alexander Aganichev <[EMAIL PROTECTED]>
+
+       * cdl/ser_arm_lpc2xxx.cdl:
+       Added CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH option.
+
2004-11-15  Jani Monoses <[EMAIL PROTECTED]>

        * include/arm_lpc2xxx_ser.inl:
Index: packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl
===================================================================
RCS file: 
/cvs/ecos/ecos/packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl,v
retrieving revision 1.1
diff -u -r1.1 ser_arm_lpc2xxx.cdl
--- packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl    14
Nov 2004 14:12:13 -0000 1.1
+++ packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl    19
Jun 2007 06:29:26 -0000
@@ -74,6 +74,7 @@
        puts $::cdl_system_header "/***** serial driver proc output
start *****/"
        puts $::cdl_system_header "#define
CYGDAT_IO_SERIAL_GENERIC_16X5X_INL <cyg/io/arm_lpc2xxx_ser.inl>"
        puts $::cdl_system_header "#define
CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG <pkgconf/io_serial_arm_lpc2xxx.h>"
+        puts $::cdl_system_header "#define
CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH"
        puts $::cdl_system_header "/*****  serial driver proc output
end  *****/"
    }

Index: packages/devs/serial/generic/16x5x/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/ChangeLog,v
retrieving revision 1.15
diff -u -r1.15 ChangeLog
--- packages/devs/serial/generic/16x5x/current/ChangeLog        27 Nov 2006
13:59:50 -0000  1.15
+++ packages/devs/serial/generic/16x5x/current/ChangeLog        19 Jun 2007
06:12:27 -0000
@@ -1,3 +1,10 @@
+2007-06-19  Alexander Aganichev  <[EMAIL PROTECTED]>
+
+       * src/ser_16x5x.c (pc_serial_start_xmit): Allow platform to define
+       CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH if enabling THRE
+       interrupt does not generate interrupt unless bytes are posted to the
+       FIFO.
+
2006-11-27  Jonathan Larmour  <[EMAIL PROTECTED]>

        * src/ser_16x5x.c (serial_config_port): Add
Index: packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c
===================================================================
RCS file: 
/cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c,v
retrieving revision 1.14
diff -u -r1.14 ser_16x5x.c
--- packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c  27 Nov
2006 13:59:50 -0000     1.14
+++ packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c  19 Jun
2007 06:05:47 -0000
@@ -516,6 +516,9 @@
    HAL_READ_UINT8(base+REG_ier, _ier);
    _ier |= IER_XMT;                    // Enable xmit interrupt
    HAL_WRITE_UINT8(base+REG_ier, _ier);
+#ifdef CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH
+    (chan->callbacks->xmt_char)(chan);
+#endif
}

// Disable the transmitter on the device


On 6/19/07, Alexander Aganichev <[EMAIL PROTECTED]> wrote:
Sorry, posted to the wrong list initially.

---------- Forwarded message ----------
From: Alexander Aganichev <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]


I found that driver not transmit anything in interrupt driving mode
unless I made the following patch:

Index: packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c
===================================================================
RCS file: 
/cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c,v
retrieving revision 1.14
diff -u -r1.14 ser_16x5x.c
--- packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c  27 Nov
2006 13:59:50 -0000     1.14
+++ packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c  18 Jun
2007 12:21:30 -0000
@@ -516,6 +516,7 @@
     HAL_READ_UINT8(base+REG_ier, _ier);
     _ier |= IER_XMT;                    // Enable xmit interrupt
     HAL_WRITE_UINT8(base+REG_ier, _ier);
+    (chan->callbacks->xmt_char)(chan); // <<<<<<
 }

 // Disable the transmitter on the device

Am I right to make this change or I just missed another process that
should call xmt_char? I'm using LPC2294 based board and use this
driver for the UART1.

--
WBR, Alexander



--
WBR, Alexander

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to