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