Subject: RE: Linux on Assabet board

From: Jeff Sutherland <[email-masked]>
Date: Fri, 12 May 2000 11:48:51 -0400

I am testing Linux on an SA-1110 Assabet board and I have got some
problems/questions.

1. I cannot use the system with just one serial port, like it is described
in the Assabet Documentation included in the kernel patch
(diff-2.3.99-pre6-rmk1-np1). After downloading with angelboot and starting
minicom I get a login prompt in the minicom window and on the LCD-display.
But I am not able to type anything in the minicom window, so I cannot login
or do anything else.

----
   Baud rate problem possibly? Do you have the console set to serial port 1?
----

When using the SA-1111 companion board, I can connect a second minicom via a
second serial port (J16 on the companion board) and do my input in that
minicom-window. The first minicom then shows my input and the output of the
linux system. (The LCD display shows no further messages and switches off
after a while.)
So what can I do to run the whole thing without the companion board (without
the second serial connection)?

-----
Make sure the console is set to talk to uart 1 if you want only 1
connection.  The serial port level translator on port 1 has an auto power
down feature that sometimes eats a character or two at 115200 on powering up
again.  If your console has been sitting inactive for a while, sometimes
helps to hit the enter key a couple of times to wake it up.  I got around
the single serial port problem by simply adding a Linear Tech LTC1348 RS232
level translator chip to the "radio" connector, which brings out sa1110 uart
#3.  It was then a simple matter to "adjust" the code to direct the startup
data and the system console out serial port 3.  I use port 1 for
bootloading.  After bootloading you can use serial port 1 as another place
to log in, provided you have modified /etc/passwd to create a regular user
account and /etc/securetty to allow root logins from either ttyS0 or ttyS1
in your ramdisk image.  By default the ramdisk supplied by Nicolas Pitre
allows a root login on the console port ONLY but no password is needed.
Watch out for baud rate changes in the system.  Make sure that the kernel
startup code and eventually the serial driver code use the same baud rates.
Minicom doesn't complain too much about wrong baud rates; you simply see
nothing on the screen.  I run both port1 and 3 at 115200 with no problems.
-----

2. The system seems to be extremly slow. I compiled an mp3 encoding
algorithm with my cross compiler (cross-armv4l-linux-gcc-0.4_2.95.2-6.i386).
It takes about 13 minutes to encode just 4 seconds of music!! On a 450 Mhz
Pentium III it takes one or two seconds. So the StrongARM seems to be about
600 times slower! What can I do do make it faster?
Is there any Initialization to be done, to make the StrongARM running on
full 221Mhz clock frequency?
What compiler options should I use to make a program as fast as possible on
SA-1110?

----
   You must be using floating point in your encoder, correct?  600/1 would
be something like the speed difference between a 450MHz pentium with
hardware fpu and the floating point emulation of the StrongARM.  Caveat: if
you need to do a lot of floating point, you picked the wrong part.  If you
can get away with integer math, a SA1110 running full tilt at 221MHz is
comparable to a K6-233, in some tests faster than a K6.  Nicolas Pitre wrote
an MP3 _decoder_ that uses fixed point math.  On my 275MHz Netwinder it uses
about 1% of the system bandwidth while playing MP3's.  BTW system clock
speed is set by the boot loader, NOT by anything in the kernel.  We don't
use Angelboot so sorry, can't help you there...
----

3. Is there a driver for the UDA 1341 audio codec?

----
Any ideas, folks?  I'll be looking for one meeself soon...
----

Thanks for your help,
Gregor.

----
Regards,
//Jeff
----

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
++        Please use [email-masked] for           ++
++                        kernel-related discussions.                      ++

---

From: Erik Mouw <[email-masked]>
Date: Fri May 12 21:08:09 +0200 (MDT) 2000

> can get away with integer math, a SA1110 running full tilt at 221MHz is

Or fixed point math. BTW: We made some minor modifications (read: added 3
lines) to the kernel that allow read-buffer access from userland. JDB is
currently using it to squeeze some more speed out of his (already fast)
FFT implementation. I'll send the read buffer stuff to Nico when I have a
more or less complete patch ready.

> about 1% of the system bandwidth while playing MP3's.  BTW system clock

I'm not completely sure about that 1%. Rob Leslie pointed out that "time"
or "top" don't show the correct values with multi-threaded programs.

> Any ideas, folks?  I'll be looking for one meeself soon...

Nico is working on one. His latest patch contains a framework, but the
comment says that it will crash your kernel.

Erik

-- 
J.A.K. (Erik) Mouw, Information and Communication Theory Group, Department
of Electrical Engineering, Faculty of Information Technology and Systems,
Delft University of Technology, PO BOX 5031,  2600 GA Delft, The Netherlands
Phone: +31-15-2783635  Fax: +31-15-2781843  Email: [email-masked]
WWW: http://www-ict.its.tudelft.nl/~erik/

---

From: Paul Koning <[email-masked]>
Date: Fri, 12 May 2000 15:20:59 -0400 (EDT)

>>>>> "Erik" == Erik Mouw <[email-masked]> writes:

 >> comparable to a K6-233, in some tests faster than a K6.  Nicolas
 >> Pitre wrote an MP3 _decoder_ that uses fixed point math.  On my
 >> 275MHz Netwinder it uses about 1% of the system bandwidth while
 >> playing MP3's.  BTW system clock

 Erik> I'm not completely sure about that 1%. Rob Leslie pointed out
 Erik> that "time" or "top" don't show the correct values with
 Erik> multi-threaded programs.

As I understand it, in Linux a thread and a process are basically the
same thing (a thread is just a process that wasn't given a private
memory space).  So if you have three threads, ps will show all three,
and top might show any of those.  No idea what time does -- give you
the stats for the original thread that's parent to all the others?

    paul