* MBX experiences
@ 2000-01-26 18:53 Digby Tarvin
2000-01-27 0:08 ` Graham Stoney
0 siblings, 1 reply; 2+ messages in thread
From: Digby Tarvin @ 2000-01-26 18:53 UTC (permalink / raw
To: linuxppc-embedded
Greetings all,
I am new to this list, and am trying to get Linux going on a
Motorola MBX821, and am hoping someone can give me an update on the
state of the art in this area to save me doing too much re-invention.
The following is a summary of where I have gotten so far, in case it is
of any help/interest to anyone. I would welcome any suggestions from
those that have gotten further or can see things that I am doing
wrong.
My board identifies itself as follows:
Copyright Motorola Inc. 1988-1998, All Rights Reserved
MBX Debugger/Diagnostics Release Version 1.4 - 04/01/98 RM01
COLD Start
Local Memory Found =01000000 (&16777216)
MPU Clock Speed =40Mhz
WARNING: Keyboard Not Connected
WARNING: Low Battery Status - On_Board Battery
EPPC-Bug>ver
Debugger/Diagnostics Type/Revision..................=MBX/1.4
Debugger/Diagnostics Revision Date..................=04/01/98 RM01
MicroProcessor Version/Revision.....................=0050/0000
MicroProcessor Internal Clock Speed (MHZ)...........=40
MicroProcessor External Clock Speed (MHZ)...........=40
Communication Processor Module (CPM) Part/Mask......=00/20
Internal Memory Map Pointer.........................=FA200000
Local Memory Size...................................=01000000 (16MB)
PCI Device (00009800) ID/Revision...................=056510AD/10
PCI Device (00009900) ID/Revision...................=010510AD/05
My initial search for MBX and Linux located the archive:
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/
which contains:
-rw-r--r-- 1 dmalek 1000 17293 Nov 10 11:41 dl-machine.h
-rw-r--r-- 1 dmalek 1000 6018 Jul 8 1999 embedded_notes
-rw-r--r-- 1 dmalek 1000 32876 Oct 22 17:31 fadsrom.tgz
-rw-r--r-- 1 dmalek dmalek 31153 Jan 19 09:15 fec.c
-rw-r--r-- 1 dmalek 1000 166978 Nov 5 18:55 gdbserver.tgz
-rw-r--r-- 1 dmalek 1000 7492 Oct 28 12:28 getting_started.rpx
-rw-r--r-- 1 dmalek 1000 3446575 Nov 8 17:07 glibc-0.961212-1r.src.rpm
-rw-r--r-- 1 dmalek 1000 707994 Mar 4 1999 libc-1.99-8xx.tar.gz
-rw-r--r-- 1 dmalek 1000 13402725 Sep 14 19:41 linux-2.3.18.tgz
-rw-r--r-- 1 dmalek 1000 6345 Jul 8 1999 mbxnotes
-rw-r--r-- 1 dmalek 1000 133029168 Feb 12 1999 mbxroot.full.tgz
-rw-r--r-- 1 dmalek 1000 910617 Sep 18 1998 mbxroot.min.tgz
-rw-r--r-- 1 dmalek 1000 17172560 Oct 22 17:38 mpc8xx-2.2.13.tgz
-rw-r--r-- 1 dmalek 1000 5335914 Jul 28 1999 xppc_tools.tgz
-rw-r--r-- 1 dmalek dmalek 2042 Nov 30 11:23 zsrec.c
These look a little old, but at the time was all I could find, so I
gave them a try.
I Downloaded mbxroot.min.tgz and and mbxroot.full.tgz (as well as mbxnotes)
and configured BOOTP on my host system to use the kernel from mbxroot.min.tgz
(zImage.mbx), and unpacked mbxroot.full.tgz to give me a filesystem via NFS.
There was a mysterious error when I un-tar'd the mbxroot.full.tgz
archive as follows:
/usr/home/digbyt/embedded/tmp> sudo tar -xf ../mbxroot.full.tar
tar: mbxroot/usr/bin/sperl5.00401: Could not link to `mbxroot/usr/bin/suidperl': No such file or directory
tar: Error exit delayed from previous errors
I have only seen this sort of message in the past when the filesystem
was being changed while the archive was being built. It didn't seem to
serious, but seemed strange that such a flaw would have gone uncorrected.
The first hiccup I encountered when trying to boot was that the kernel seems
to mis-read the IP addresses used to boot it, causing the NFS mount to fail
as follows:
EPPC-Bug>pl 20, 0
Network Booting from: MPC860, Controller 20, Device 0
Loading: /tftpboot/zImage.mbx
Client IP Address = 203.27.41.9
Server IP Address = 203.27.41.5
Gateway IP Address = 203.27.41.5
Subnet IP Address Mask = 255.255.255.192
Boot File Name = /tftpboot/zImage.mbx
Argument File Name =
Bytes Received =&492532, Bytes Loaded =&492532
Bytes/Second =&98506, Elapsed Time =5 Second(s)
loaded at: 00210000 0030E42C
relocated to: 00100000 001FE42C
board data at: 00FF4558 00FF4580
relocated to: 00200100 00200128
zimage at: 00216000 00276D6D
avail ram: 0030E42C 00FF5000
Linux/PPC load:
Uncompressing Linux...done.
Now booting the kernel
Linux version 2.1.119 (dan@pbdan.clearone.com) (gcc version egcs-2.90.25 980302
(egcs-1.0.2 prerelease)) #31 Mon Sep 7 18:14:20 EDT 1998
Boot arguments: root=/dev/nfs nfsaddrs=23.27.41.9:23.27.41.5 nfsroot=23.27.41.5:
/tftpboot
Note that what should have been '203' became '23'.....
giving the appropriate commands to override this at the 'Linux/PPC load:'
prompt overcomes this, and I was able to boot with the following result:
EPPC-Bug>pl 20 0
Network Booting from: MPC860, Controller 20, Device 0
Loading: /tftpboot/zImage.mbx
Client IP Address = 203.27.41.9
Server IP Address = 203.27.41.5
Gateway IP Address = 203.27.41.5
Subnet IP Address Mask = 255.255.255.192
Boot File Name = /tftpboot/zImage.mbx
Argument File Name =
Bytes Received =&492532, Bytes Loaded =&492532
Bytes/Second =&82088, Elapsed Time =6 Second(s)
loaded at: 00210000 0030E42C
relocated to: 00100000 001FE42C
board data at: 00FF4558 00FF4580
relocated to: 00200100 00200128
zimage at: 00216000 00276D6D
avail ram: 0030E42C 00FF5000
Linux/PPC load: root=/dev/nfs nfsaddr=203.27.41.9:203.27.41.10 nfsroot=203.27.41.10:
/usr/home/digbyt/embedded/mbxroot
Uncompressing Linux...done.
Now booting the kernel
Linux version 2.1.119 (dan@pbdan.clearone.com) (gcc version egcs-2.90.25 980302 (egc
s-1.0.2 prerelease)) #31 Mon Sep 7 18:14:20 EDT 1998
Boot arguments: root=/dev/nfs nfsaddr=203.27.41.9:203.27.41.10 nfsroot=203.27.41.10:
/usr/home/digbyt/embedded/mbxroot
time_init: decrementer frequency = 150000000/60
Memory: 15004k available (732k kernel code, 612k data, 36k init) [c0000000,c1000000]
PCI: Probing PCI hardware
Calibrating delay loop... 39.73 BogoMIPS
POSIX conformance testing by UNIFIX
Swansea University Computer Society NET3.039 for Linux 2.1
NET3: Unix domain sockets 0.16 for Linux NET3.038.
Swansea University Computer Society TCP/IP for NET3.037
IP Protocols: ICMP, UDP, TCP, IGMP
Starting kswapd v 1.5
CPM UART driver version 0.02
ttyS00 at 0x0280 is a SMC
ttyS01 at 0x0380 is a SMC
ttyS02 at 0x0100 is a SCC
ttyS03 at 0x0200 is a SCC
CPM ENET Version 0.1, 08:00:3e:27:b8:fd
PPP: version 2.3.3 (demand dialling)
TCP compression code copyright 1989 Regents of the University of California
PPP line discipline registered.
Sending BOOTP and RARP requests.... OK
IP-Config: Got BOOTP answer from 203.27.41.5, my address is 203.27.41.9
Looking up port of RPC 100003/2 on 203.27.41.10
Looking up port of RPC 100005/1 on 203.27.41.10
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 36k init 28k prep
#
after which I can run commands like:
# mount /proc
# cat /proc/cpuinfo
processor : 0
cpu : 860
clock : 132MHz
bus clock : 136MHz
revision : 0.0
bogomips : 39.73
zero pages : total 0 (0Kb) current: 0 (0Kb) hits: 0/9 (0%)
# cat /proc/version
Linux version 2.1.119 (dan@pbdan.clearone.com) (gcc version egcs-2.90.25 980302 (egc
s-1.0.2 prerelease)) #31 Mon Sep 7 18:14:20 EDT 1998
#
I can successfully telnet out of the MBX, so the network driver seems fine
(obviously, since my filesystem is coming from the net...), but the
filesystem did not seem to contain the necessary binaries to run
servers to let me telnet in from outside, or go into multi-user mode.
The main problem now, apart from the incomplete set of tools, is that many
key programs fail, for instance:
# ps
Bad emulation ps/9
NIP: 300d00e0 instruction: fc200090 opcode: 3f A: 0 B: 0 C: 2 code: 8 rc: 0
pte @ 0x300d00e0: (0xc0f3d300)->(0xc0f3b340)->0x00f14881
RPN: 00f14 PP: 2 SPS: 0 SH: 0 CI: 0 v: 1
Kernel VA for NIP c0f140e0 pte @ 0xc0f140e0: (0xc0f3dc0c)->(0xc0123c50)->0x00f141c
5
RPN: 00f14 PP: 0 SPS: 0 SH: 1 CI: 0 v: 1
Software Emulation ps/9 NIP: 300d00e0 *NIP: 0xfc200090 code: 1Illegal Instruction
#
This also happens if I try to set the date. Is this a floating point emulation
problem? Given that the tree was built for MBX targets, I am not sure why
mine should fail and others not. Is anyone else having more success with
this?
Also, if I try to use gcc, the system seems to just hang.
Finally, I tried configuring a cross compiler to run on an Intel Linux
system (Red Hat 5.2), using a set of instructions I found by
mmporter@home.com (for Egcs 1.1.2), which seemed to work fine, except
that my compiles failed the link stage due to a missing crt1.o and crti.o
libc.o and crtn.o
I copied these across from /usr/lib of the mbxroot.full file tree, and managed
to get an executable, and when I copied it across to my MBX file system,
lo and behold:
# ./hello
Hello from MBX world
However I am still curious to know where the crt1.o, crti.o libc.o and crtn.o
that were missing after my build from source of the compiler come from,
so that I can have a cross compiler built completely from source....
Regards,
DigbyT
--
Digby R. S. Tarvin digbyt@acm.org
http://www.cthulhu.dircon.co.uk
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: MBX experiences
2000-01-26 18:53 MBX experiences Digby Tarvin
@ 2000-01-27 0:08 ` Graham Stoney
0 siblings, 0 replies; 2+ messages in thread
From: Graham Stoney @ 2000-01-27 0:08 UTC (permalink / raw
To: digbyt; +Cc: linuxppc-embedded
Digby Tarvin writes:
> I am new to this list, and am trying to get Linux going on a
> Motorola MBX821, and am hoping someone can give me an update on the
> state of the art in this area to save me doing too much re-invention.
>
> The following is a summary of where I have gotten so far, in case it is
> of any help/interest to anyone. I would welcome any suggestions from
> those that have gotten further or can see things that I am doing
> wrong.
Sounds like you've actually got quite a long way. In the hope that it helps,
I've included a copy of a HOWTO I've been putting together which you might
find helpful. I'd be interested in any feedback you had on it.
[ questions I can't answer snipped ]
> However I am still curious to know where the crt1.o, crti.o libc.o and crtn.o
> that were missing after my build from source of the compiler come from,
> so that I can have a cross compiler built completely from source....
They come from your C library, such as glibc. If you really want to rebuild
the ones from libc-1.99-8xx.tar.gz, I believe the sources are at
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/glibc-0.961212-1r.src.rpm
Regards,
Graham
Linux for PowerPC Embedded Systems HOWTO/FAQ
Graham Stoney
greyham@research.canon.com.au
Last updated: 25 January 1999.
Introduction
This document is an attempt to tell you what you need to know to use Linux on
an embedded PowerPC-based system, and is a distillation of the collective
wisdom from the linuxppc-embedded mailing list. Comments, feedback and
corrections to this document are most welcome; please send them to the address
above.
Much of the information here is in the form of references to the mailing list
archives. Follow the threads in the archive to get more information.
The most relevant net resources are:
The home page at: http://www.ppc.kernel.org/embedded.html
Introductory stuff.
The ftp site: ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/
Contains almost everything you'll need in terms of sources. Check it often.
The mailing list archives: http://lists.linuxppc.org/lists/linuxppc-embedded
Indespensible wisdom answering most questions already. Browse it!
You are encouraged to subscribe by following the [List Info] link at the bottom
of the page. However, please search the archives before asking questions.
General information about Linux for PowerPC: http://www.ppc.kernel.org/
CPU
Your first step is to pick the processor which most closely matches your I/O
requirements. Then see if you can find an off-the-shelf board which also most
closely matches what you need.
Motorola 7xx/8xx devices are all covered in the code on the ftp site.
For 4xx devices, see: http://www.lcse.umn.edu/~grant/Linux/
For 603e, see: ftp://vlab1.iram.es/pub/linux-2.2/
Target Hardware
There are many options including systems from Motorola and other parties. If
you're planning on building your own custom hardware, consider using one of
the off-the-shelf Single Board Computer systems listed below instead. You may
get by with just a custom daughter card, or may not need to do any hardware of
your own at all.
If you do end up with a full custom design, pick a board from one of the
following sources with the closest feature match to yours to kick start your
software development:
Embedded Planet: http://www.embeddedplanet.com/
For CLLF users, grab the kernel at:
ftp://mail.netx4.com/pub/cllf-2.2.13.tgz
Also, see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199910/msg00055.html
CLLF-860T users should see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/200001/msg00143.html
Bright Star Engineering: http://www.brightstareng.com/
Has an onboard FPGA for configuring hardware.
If using a 2.2.x kernel, see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00088.html
Motorola Computer Group:
http://www.mcg.mot.com/cfm/templates/product.cfm?PageID=217&ProductID=51&PageTypeID=1
TQComponents: http://www.tqs.de/HTM_Files/TQM8xx_Serie.htm
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199910/msg00088.html
Motorola Semiconductor Family Application Development System:
(Anyone have a URL for the Motorola FADS?)
Before you choose this one, see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199909/msg00007.html
Nevertheless, it is possible. Do a search for 'FADS' in the archive for more.
Motorola PowerPlus SBC:
http://members.home.net/mmporter/linux/
MVME2600:
ftp://vlab1.iram.es/pub/linux-2.2/
Mention to the vendor that you want to run Linux on the board, and encourage
them to support it, perhaps by contracting one of the developers on the net to
do a port for integration into the main kernel development tree.
Host Development System
Embedded Linux's compelling advantage over other Embedded OS's is that your
development host and target are the same. While you could theoretically develop
your embedded Linux target system software on any host OS, Linux is the only
sensible choice. Even Cygwin/UWIN is likely to waste more of your time.
Using a PowerPC based development development host platform makes life easier,
since the same binaries will run on your host and target. However, if your
choice of host platform is restricted to non-PowerPC, cross compiling adds
some minor inconvenience, primarily in finding or building your own toolset.
Compiler Tools
Use the latest gcc (2.95.2) and binutils (2.9.1.0.25), unless you're on a
PowerPC based host and already have a working native toolset you can use.
For cross development, there is a crossgcc mailing list and FAQ to help you
out: http://www.objsw.com/CrossGCC/
Binaries are available for several host platforms at:
http://members.home.net/mmporter/linux/cross/
For pre-packaged scripts to build a PPC Cross Development Kit for MPC8xx, see:
ftp://ftp.denx.de/pub/LinuxPPC/usr/src/CDK.tar.gz
For a guide to building the PowerPC/Linux cross compiler on a Sun host, see:
http://www.lcse.umn.edu/~grant/Linux/cross.html
If you're using gcc-2.95.2 with binutils-2.9.1.0.25, you'll need a minor change
to the gcc specs file regarding the linker emulation. Alternatively, use a
later binutils snapshot.
You may get a kickstart by purchasing Bright Star's SDK; comments:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00075.html
Debugging
For help with decoding kernel panic messages, see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00090.html
BDM
BDM is way cool, especially if you are bringing up a custom board and don't
want to invest in an In Circuit Emulator. You should definitely include a BDM
connector on any custom hardware, and all off-the-shelf boards have it.
Unfortunately, it's not fully useful once the kernel is running though:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199909/msg00021.html
Fortunately, once the kernel is running you can run gdb native on the target
hardware provided you have enough RAM. It's worth providing extra RAM on some
of your development boards to allow this.
There are many sources of BDM tools:
Macraigor Systems: http://www.macraigor.com/
Currently only support Windoze platform, but say Linux support should be
available sometime in Q1 2000. Beware that the 1999 version of OCD Commander
silently truncates S-records longer than 20 bytes during download.
Build your own: http://cyclone.parad.ru/ppcdbm/
EST Corporation: http://www.estc.com/
(Anyone else used a BDM vendor's system with Embedded Linux?)
Runtime Library
The current release of glibc is very large for a traditional embedded system.
If your application requires only one or two user programs, you can statically
link them to avoid requiring the entire dynamic library. Another option is to
hand-strip the dynamic library to a bare minimum.
Building glibc:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199909/msg00000.html
After applying these mods, glibc-2.1.2 can be configured for cross-compiling
with:
#!/bin/sh
export PATH=/path/to/local/i686-pc-linux-gnu/bin:$PATH
export CFLAGS="-msoft-float -O2 -DNDEBUG=1"
export CC=powerpc-linux-gcc
export AR=powerpc-linux-ar
export RANLIB=powerpc-linux-ranlib
configure --host=powerpc-linux --prefix=/path/to/local/powerpc-linux \
--with-headers=/path/to/linux-2.2.13/include --enable-add-ons=linuxthreads \
--with-gnu-as --with-gnu-ld --disable-sanity-checks --without-fp
There is also an attempt to produce a small glibc suitable for embedded
systems at:
http://lists.varesearch.com/lists/listinfo/sglibc
To cut down some of the bloat in glibc, apply the patches at:
http://lists.varesearch.com/archives/sglibc/1999-September/000007.html
ftp://ftp.valinux.com/pub/support/hjl/glibc/glibc-old_version.tar.gz
Older Linux libc's are often quite small. There is one on the ftp site.
newlib may be another option, although it does not currently run under Linux.
Threads
If you need multithreading, using POSIX threads will give your application
portability, even to non-Linux embedded systems. For example, they're
supported by EL/IX, eCos, RTEMs and virtually all desktop systems.
POSIX threads support is supplied with glibc2 as an add-on, enabled by
configuring with '--enable-add-ons=linuxthreads'.
It is also possible to build older (i.e. smaller) libc5 with LinuxThreads. See:
http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html
LinuxThread support has yet to be integrated into the official gdb release,
which makes debugging difficult. The gdb in mbxroot.full.tgz does not support
threads directly, although you can 'attach' to the thread processes
individually.
The courageous can also call clone() directly.
Kernel
You have essentially two options here:
stable: ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/mpc8xx-2.2.13.tgz
development: ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/linux-2.3.18.tgz
You are probably best off using the stable version, unless you want to actively
participate in future development of Linux itself.
Root File System
Minimal and complete root file system images are available on the ftp site at:
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/mbxroot.min.tgz and
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/mbxroot.full.tgz
During development, the embedded system can NFS-mount its root file system
from your file sever to provide a complete diskless Linux system. The file
server need not be the same architecture as the embedded client. Answer "Y"
to the kernel configuration questions regarding NFS client and root filesystem
via NFS, and "make zImage". The embedded system will attempt to mount its
root file system from the server as "/tftpboot/<ipaddress>", where <ipaddress>
is it's IP address. Extract one of the 'mbxroot' images in this directory as
root on the server, and export the directory tree with an entry in
/etc/exports on the server, like:
/tftpboot (rw,no_root_squash)
If your system has a hard disk, you can start by using NFS then build a root
file system on the disk and boot from that.
If your system has no ethernet, you may want to start developing on a board
that does.
Initial Ramdisk: initrd
To get initial ramdisk to work in 2.2.x, you may require the kernel patch in:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/200001/msg00064.html
Initial ramdisk support is currently broken in the Linux 2.3 development tree.
To make a diskless system standalone, you need an initial ramdisk image
containing an ext2 filesystem to put in arch/ppc/mbxboot/ramdisk.image.gz.
Then, build with "make zImage.initrd" and the ramdisk image will be mounted as
the root filesystem at startup. An example ramdisk.image.gz is already
included in the 2.2.13 kernel source tarball at:
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/mpc8xx-2.2.13.tgz
You can also create your own on your development machine in a filesystem on
/dev/ram. Another approach is to use the loop device on your Linux development
host to mount the ramdisk image as a local filesystem, and then copy the files
you require into it. To allow users to mount the ramdisk.image on /mnt/loop
with "mount /mnt/loop", add this entry to your /etc/fstab:
/path/to/ramdisk.image /mnt/loop auto user,noauto,rw,loop 0 0
Note that the minix file system code in Linux is not endian-independant, so
you can't build a minix file system image on an x86 machine and expect to read
it on a PowerPC machine. ext2 does not suffer from this problem.
For more info on building a root filesystem, see:
http://linuxdoc.org/HOWTO/Bootdisk-HOWTO-4.html
ROM Monitor
If you're using custom hardware, you may want a ROM monitor to help bring it
up. There are several available on the net:
8xxROM, derived from FADSROM; see:
http://www.s4l.de/powerpc.html
FADSROM:
ftp://linuxppc.cs.nmt.edu/pub/linuxppc/embedded/fadsrom.tgz
DINK32:
http://www.mot.com/SPS/PowerPC/teksupport/tools/DINK32/VERSION12/dinkindex.htm
Boot Loading
If you're using custom hardware, or want to replace the ROM monitor on your
board, you'll need a boot loader. Some of this is board specific, but you can
assemble the bits from what's already available on the net:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199911/msg00034.html
The 'fadsrom' code on the ftp site also includes initialisation and loading:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00045.html
For PreP and PowerPlus SBC's, see:
http://members.home.net/mmporter/linux/
http://members.home.net/mmporter/linux/linuxppc/preploader.tgz
http://members.home.net/mmporter/linux/linuxppc/bugboot-0.3.tar.gz
Floating Point
Most of the embedded PowerPC processors lack a floating point unit. If your
application has very intensive floating point requirements, you may need to
switch to fixed point or change tack on your target processor choice.
Floating point can be performed either by instruction emulation in the kernel,
or by compiling everything (including the runtime library) with -msoft-float.
See:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199911/msg00056.html
To add kernel math emulation to the 2.2.13 kernel, see:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00017.html
Real Time Response
If your application requires a hard real time response with guaranteed low
latency, you may need to encapsulate the real time aspects in a device driver.
However, for many applications a soft real time user space thread is adequate,
particularly if you minimise kernel latency with the patches at:
http://www.redhat.com/~mingo/lowlatency-2.2.13-A1
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00006.html
Flash Drivers
http://www.linux-mtd.infradead.org/doc2000.html
Watchdog
Using the on-chip watchdog to provide the basic "write kicked" /dev/watchdog
interface described in Documentation/watchdog.txt is problematic, because the
SYPCR register controlling it can only be written once after reset to both set
the timeout and enable the watchdog. Once enabled, the boot loader and kernel
must keep it from expiring up until the point where the user application opens
/dev/watchdog. Littering the generic kernel decompress and startup code with
watchdog kicks to do this isn't acceptable to other Linux users. Hence,
hardware watchdog support hasn't been implemented yet.
The general plan to solve this problem is described in:
http://lists.linuxppc.org/listarcs/linuxppc-embedded/199910/msg00026.html
You can probably use Linux's software watchdog in the mean time.
Other Useful Resources:
One man's in-depth porting report:
http://www.datessa.se/~leif/linux_860_report.doc
Matt Porter's Linux page:
http://members.home.net/mmporter/linux/
Solutions4Linux ADS/FADS 8xx:
http://www.solutions4linux.de/powerpc.htlm
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2000-01-27 0:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2000-01-26 18:53 MBX experiences Digby Tarvin
2000-01-27 0:08 ` Graham Stoney
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.