Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:xtensa-linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:users:jcmvbkbc:xtensa-linux [2011/06/24 22:58] jcmvbkbcusers:jcmvbkbc:xtensa-linux [2016/08/07 00:34] – ↷ Page moved from user:jcmvbkbc:xtensa-linux to users:jcmvbkbc:xtensa-linux kel
Line 120: Line 120:
         retw                            # rotate back by 4 registers, possibly with underflow         retw                            # rotate back by 4 registers, possibly with underflow
                                         # Back out our _entry Frame above...                                         # Back out our _entry Frame above...
 +</code>
 +
 +
 +==== Random symbols appear like being typed on the console ====
 +There's no checks for select simcall error status (or maybe there just should not be EINTR error, that's just not documented). Fix is the following:
 +
 +<code>
 +diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
 +index e650152..285744e 100644
 +--- a/arch/xtensa/platforms/iss/console.c
 ++++ b/arch/xtensa/platforms/iss/console.c
 +@@ -126,10 +126,11 @@ static void rs_poll(unsigned long priv)
 + 
 +        spin_lock(&timer_lock);
 + 
 +-       while (__simc(SYS_select_one, 0, XTISS_SELECT_ONE_READ, (int)&tv,0,0)){
 +-               __simc (SYS_read, 0, (unsigned long)&c, 1, 0, 0);
 +-               tty_insert_flip_char(tty, c, TTY_NORMAL);
 +-               i++;
 ++       while (__simc(SYS_select_one, 0, XTISS_SELECT_ONE_READ, (int)&tv,0,0) > 0) {
 ++               if (__simc (SYS_read, 0, (unsigned long)&c, 1, 0, 0) == 1) {
 ++                       tty_insert_flip_char(tty, c, TTY_NORMAL);
 ++                       i++;
 ++               }
 +        }
 + 
 +        if (i)
 +</code>
 +
 +==== Console is tooooo slooooow ====
 +There's polling timer, it's 20 seconds :(). Fix is the following:
 +
 +<code>
 +diff --git a/arch/xtensa/platforms/iss/console.c b/arch/xtensa/platforms/iss/console.c
 +index e650152..285744e 100644
 +--- a/arch/xtensa/platforms/iss/console.c
 ++++ b/arch/xtensa/platforms/iss/console.c
 +@@ -35,7 +35,7 @@
 + #endif
 + 
 + #define SERIAL_MAX_NUM_LINES 1
 +-#define SERIAL_TIMER_VALUE (20 * HZ)
 ++#define SERIAL_TIMER_VALUE (HZ / 10)
 + 
 + static struct tty_driver *serial_driver;
 + static struct timer_list serial_timer;
 </code> </code>
etc/users/jcmvbkbc/xtensa-linux.txt · Last modified: 2016/08/08 20:53 by kel