Skip to contentSkip to conversation

i.MX31: fixed CTRL-C detection

PATCH New Juergen Kilb 3 participants 3 messages Jun 8, 2008 – Jul 5, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i.MX31: fixed CTRL-C detection

The Register URXD contains status information in bits [15..8]. With status bit 15 set, CTRL-C was reported as 0x8003 instead of 0x03. Therefore CTRL-C was not detected.
To solve this, bits [15..8] were masked out now.

---
 cpu/arm1136/mx31/serial.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
cpu/arm1136/mx31/serial.c +2 -1
index 1cad8f9..f498599 100644
@@ -63,6 +63,7 @@
 #define  URXD_FRMERR     (1<<12)
 #define  URXD_BRK        (1<<11)
 #define  URXD_PRERR      (1<<10)
+#define  URXD_RX_DATA    (0xFF)
 #define  UCR1_ADEN       (1<<15) /* Auto dectect interrupt */
 #define  UCR1_ADBR       (1<<14) /* Auto detect baud rate */
 #define  UCR1_TRDYEN     (1<<13) /* Transmitter ready interrupt enable */
@@ -165,7 +166,7 @@ void serial_setbrg (void)
 int serial_getc (void)
 {
 	while (__REG(UART_PHYS + UTS) & UTS_RXEMPTY);
-	return __REG(UART_PHYS + URXD);
+	return (__REG(UART_PHYS + URXD) & URXD_RX_DATA); /* mask out status from upper word */
 }
 
 void serial_putc (const char c)
Signature · 1 line
1.5.5.1
#1 lore raw

PATCH 1/1 i.MX31: fixed CTRL-C detection

Hi, Juergen

I can confirm that this patch fixes the problem with CTRC-C on my I.MX31ADS evaluation board. I can now abort operations that previously required system reset.

I hope this patch will be applied before release of 1.3.4

Thanks a lot.

Felix.

Quoted 48 lines · Juergen Kilb

The Register URXD contains status information in bits [15..8]. With status bit 15 set, CTRL-C was reported as 0x8003 instead of 0x03. Therefore CTRL-C was not detected.
To solve this, bits [15..8] were masked out now.

---
 cpu/arm1136/mx31/serial.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
cpu/arm1136/mx31/serial.c +2 -1
index 1cad8f9..f498599 100644
@@ -63,6 +63,7 @@
 #define  URXD_FRMERR     (1<<12)
 #define  URXD_BRK        (1<<11)
 #define  URXD_PRERR      (1<<10)
+#define  URXD_RX_DATA    (0xFF)
 #define  UCR1_ADEN       (1<<15) /* Auto dectect interrupt */
 #define  UCR1_ADBR       (1<<14) /* Auto detect baud rate */
 #define  UCR1_TRDYEN     (1<<13) /* Transmitter ready interrupt enable */
@@ -165,7 +166,7 @@ void serial_setbrg (void)
 int serial_getc (void)
 {
 	while (__REG(UART_PHYS + UTS) & UTS_RXEMPTY);
-	return __REG(UART_PHYS + URXD);
+	return (__REG(UART_PHYS + URXD) & URXD_RX_DATA); /* mask out status from

upper word */
}

void serial_putc (const char c)

Signature · 12 lines
1.5.5.1


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users
Signature · 2 lines
View this message in context: http://www.nabble.com/-PATCH--i.MX31%3A-fixed-CTRL-C-detection-tp17720150p18011808.html
Sent from the Uboot - Users mailing list archive at Nabble.com.
#2 lore raw

PATCH 1/1 i.MX31: fixed CTRL-C detection

In reply to Juergen Kilb
Quoted 9 lines · In message <[email protected]> you wrote:

The Register URXD contains status information in bits [15..8]. With status bit 15 set, CTRL-C was reported as 0x8003 instead of 0x03. Therefore CTRL-C was not detected.
To solve this, bits [15..8] were masked out now.

---
 cpu/arm1136/mx31/serial.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
There is, however, a strange, musty smell in the air that reminds  me
of something...hmm...yes...I've got it...there's a VMS nearby, or I'm
a Blit.          - Larry Wall in Configure from the perl distribution