Embedded Linux: Hardware, Software and Interfacing Serving the Embedded Linux Community Since 2001    
 Welcome to Embedded Linux: Hardware, Software and Interfacing
 Monday, September 06 2010 @ 04:15 AM MDT
Board - Technologics TS-5300

Manufacturer
Product Information
Manual
CPU Manual
config file 2.4.20

BoardImage


Console Access
Connect a serial null-modem (crossover) cable between the TS-5300's COM2 port and your PC. Open a terminal emulator, such as minicom or hyperterm. Set your terminal emulator's serial data rate to 9600 8-N-1.


Instructions for CF booting the TS-5300
Power your board. During the power-on memory test, hit control-c. Scroll to 'Basic CMOS Configuration' with control-x or control-e, then select with 'enter' key .

Change your bios setup to match the table below. Use control-e/control-x/Tab keys to select parameter and the +/- keys to modify the value. The arrow keys don't work (don't use them), use control-e, control-x and Tab to move around.
+------------------------------------------------------------------------------+
|                 System Bios Setup - Basic CMOS Configuration                 |
|            (C) 2000 General Software, Inc. All rights reserved               |
+---------------------------+--------------------+-----------------------------+
| DRIVE ASSIGNMENT ORDER:   | Date:>Mar 06, 2006 | Typematic Delay  : 250 ms   |
| Drive A: (None)           | Time: 22 : 11 : 35 | Typematic Rate   : 30 cps   |
| Drive B: (None)           | NumLock:  Disabled | Seek at Boot     : None     |
| Drive C: Ide 0/Pri Master +--------------------+ Show "Hit Del"   : Enabled  |
| Drive D: (None)           | BOOT ORDER:        | Config Box       : Enabled  |
| Drive E: (None)           | Boot 1st: Drive C: | F1 Error Wait    : Disabled |
| Drive F: (None)           | Boot 2nd: (None)   | Parity Checking  : (Unused) |
| Drive G: (None)           | Boot 3rd: (None)   | Memory Test Tick : Disabled |
| Drive H: (None)           | Boot 4th: (None)   | Test Above 1 MB  : Disabled |
| Drive I: (None)           | Boot 5th: (None)   | Debug Breakpoints: Disabled |
| Drive J: (None)           | Boot 6th: (None)   | Splash Screen    : (Unused) |
| Drive K: (None)           +--------------------+-----------------+-----------+
| Boot Method: Boot Sector  | IDE DRIVE GEOMETRY:  Sect  Hds  Cyls | Memory    |
+---------------------------+ Ide 0: 3 = AUTOCONFIG, LBA           |  Base:    |
| FLOPPY DRIVE TYPES:       | Ide 1: Not installed                 |   640KB   |
| Floppy 0: Not installed   | Ide 2: Not installed                 |  Ext:     |
| Floppy 1: Not installed   | Ide 3: Not installed                 |   15MB    |
+---------------------------+--------------------------------------+-----------+
|                    ^E/^X/ to select or +/- to modify                         |
|                          to return to main menu                              |
+------------------------------------------------------------------------------+

When complete, return to main menu with 'escape' key. Then use, control-x to scroll to "Write to CMOS and Exit", save using 'enter' key.

Booting from external IDE, use TS-9600

  • BIOS, set IDE0 to LBA
  • Sec off, IRQ14
  • Technologics made IDE scanning fast, who boots an embedded device on an actual drive anyway? Anyway, if you connect an IDE drive to the TS-9500 it has to be a fast one, ie boot up time. You can't slow down the boot process of the board. What about slow drives. I had problems with slow seagates, I set the bios up as in the table below, a cold power up misses the IDE drive but you get a menu to enter set up, reboot or debug. Rebooting here will find the drive the second time through. Kind of pain, but it works. You don't want to use a slow drive in a product!

  • Entering BIOS, control-c during memory test

Lilo stuff

  • append="hdb=none hdc=none hdd=none hde=none hdf=none hdg=none hdh=none hdi=none hdj=none hdk=none hdl=none console=ttyS1,9600"

KDB hackin'

  • even though kdb works on the serial port, it still wants to scan the PCs? keyboard hardware
  • in kdb/kdbmain.c comment out kdba_local_arch_setup(); kdba_local_arch_cleanup();
  • Keith at kdb will fix this in v4.2


Building a driver development harddisk for the TS-5300 (This page isn't section correct, my script installs kernel version 2.4.20. I need to fix all the scripts to run 2.4.18 CH 030804)

If you want to write device drivers for the TS-5300 you'll need a development environment that matches the Technologic distribution. Basically you'll need a compiler, the kernel source (maybe) and the kernel headers that match the kernel running from the Technologic (on July 14, their kernel version 2.4.18). You can set up this environment easily on a desktop workstation but if your writing device drivers, you'll need access to the real hardware. Since most device drivers are small, you can use the board itself to compile its own code. But that takes a little setup before that can happen. Here are the options for development environment.

1. Compile on desktop, copy binary to target, run on target (the execute, debug, edit, compile loop time is long)
2. Target NFS mounts desktop directory, desktop compiles, target executes (NFS can be pain to setup)
3. Boot target on development harddisk, compile and execute on target (simple, but compile times can be long)

The third option is most attractive because its simple. Remember you are only compiling device drivers which are small. If you want to compile the kernel on the TS-5300, be prepared to wait for a long, long time.

Instructions

On a desktop, install Debian 3.0 on a 1.2G HD or greater, follow these instructions
THIS ISNT CORRECT YET CH 030806 Then run this sbc.install script
This sbc.install installs everything needed, compiler, kernel source and headers, kernel 2.4.18
Connect this disk to the TS-5300, change BIOS to boot from HD (see BIOS setup below for HD booting), boot and your ready for development

cd /tmp
tar zxvf linux-2.14.8.tar.gz
bzip -d kdb*
bzip -d TSpatchfile?
cd linux
patch -p0 < ../TS
patch -p1 < ../kdb
patch -p1 < ../kdb
make oldconfig
make dep bzImage

helloworld_proc_module.c is in /root, grep it for gcc to see how to compile it

 cd /root
 grep gcc helloworld_proc_module.c > a
 cat a
  gcc -O2 -D__KERNEL__ -DMODULE -I/usr/src/linux/include -c helloworld_proc_module.c -o helloworld_proc_module.o

 source a
 insmod helloworld_proc_module.o
 lsmod
  Module                  Size  Used by    Tainted: P
  helloworld_proc_module     765   0  (unused)
 cat /proc/helloworld
  helloworld Default

DOC patching 2.4.20 notes

I couldn't patch 2.4.20 with doc 5.1.4, using old 5.0.0

 cd /usr/src
 rm -rf linux
 tar zxvf linux-2.4.20.tar.gz
 ln -s linux-2.4.20 linux
 tar zxvf doc-linux-5.0.0.tgz
 cd doc-linux-5.0.0/driver
 ./patch_linux linux-2_4-patch driver-patch /usr/src/linux
 cd /usr/src/linux
 wget http://www.embeddedlinuxinterfacing.com/seminar/ouray03w/config2.4.20doc
 cp config2.4.20doc .config
 yes n | make oldconfig
 make dep
 make bzImage
 cp arch/i386/boot/bzImage /tmp
 make modules
 cp drivers/block/doc/doc.o /tmp

Here's the fastest boot setup for development disk booting

 +------------------------------------------------------------------------------+
 |                 System Bios Setup - Basic CMOS Configuration                 |
 |            (C) 2000 General Software, Inc. All rights reserved               |
 +---------------------------+--------------------+-----------------------------+
 | DRIVE ASSIGNMENT ORDER:   | Date:>Aug 04, 2003 | Typematic Delay  : 250 ms   |
 | Drive A: (None)           | Time: 18 : 59 : 07 | Typematic Rate   : 30 cps   |
 | Drive B: (None)           | NumLock:  Disabled | Seek at Boot     : None     |
 | Drive C: Ide 0/Pri Master +--------------------+ Show "Hit Del"   : Enabled  |
 | Drive D: (None)           | BOOT ORDER:        | Config Box       : Enabled  |
 | Drive E: (None)           | Boot 1st: (None)   | F1 Error Wait    : Enabled  |
 | Drive F: (None)           | Boot 2nd: Drive C: | Parity Checking  : (Unused) |
 | Drive G: (None)           | Boot 3rd: (None)   | Memory Test Tick : Enabled  |
 | Drive H: (None)           | Boot 4th: (None)   | Test Above 1 MB  : Enabled  |
 | Drive I: (None)           | Boot 5th: (None)   | Debug Breakpoints: Disabled |
 | Drive J: (None)           | Boot 6th: (None)   | Splash Screen    : (Unused) |
 | Drive K: (None)           +--------------------+-----------------+-----------+
 | Boot Method: Boot Sector  | IDE DRIVE GEOMETRY:  Sect  Hds  Cyls | Memory    |
 +---------------------------+ Ide 0: 3 = AUTOCONFIG, LBA           |  Base:    |
 | FLOPPY DRIVE TYPES:       | Ide 1: Not installed                 |   640KB   |
 | Floppy 0: Not installed   | Ide 2: Not installed                 |  Ext:     |
 | Floppy 1: Not installed   | Ide 3: Not installed                 |   15MB    |
 +---------------------------+--------------------------------------+-----------+
Boot on the harddisk, then
 insmod /usr/src/ts5300/doc.o
 mount /dev/fla1 /mnt
 ls /mnt

Copy your working device drivers to /mnt.

Shutdown, remove development hardware and power up. The TS-5300 should boot from flash with the TS-5300 distribution.


I need a section here about booting from CF drive.

Here's a start.
Change your etc/fstab entries to hdc instead of hda
Set the TS-9500 dip switches to secondary and IRQ7.
Put in the CF drive on the TS-5300
Boot and set this up

 +------------------------------------------------------------------------------+
 |                 System Bios Setup - Basic CMOS Configuration                 |
 |            (C) 2000 General Software, Inc. All rights reserved               |
 +---------------------------+--------------------+-----------------------------+
 | DRIVE ASSIGNMENT ORDER:   | Date: Aug 04, 2003 | Typematic Delay  : 250 ms   |
 | Drive A: 5300 Flash A:    | Time: 19 : 53 : 31 | Typematic Rate   : 30 cps   |
 | Drive B: 5300 Flash B:    | NumLock:  Disabled | Seek at Boot     : None     |
 | Drive C: Ide 0/Pri Master +--------------------+ Show "Hit Del"   : Enabled  |
 | Drive D: Ide 1/Pri Slave  | BOOT ORDER:        | Config Box       : Enabled  |
 | Drive E: Ide 2/Sec Master | Boot 1st: Drive E: | F1 Error Wait    : Enabled  |
 | Drive F: Ide 3/Sec Slave  | Boot 2nd:>Drive F: | Parity Checking  : (Unused) |
 | Drive G: (None)           | Boot 3rd: Drive D: | Memory Test Tick : Enabled  |
 | Drive H: (None)           | Boot 4th: (None)   | Test Above 1 MB  : Enabled  |
 | Drive I: (None)           | Boot 5th: (None)   | Debug Breakpoints: Enabled  |
 | Drive J: (None)           | Boot 6th: (None)   | Splash Screen    : (Unused) |
 | Drive K: (None)           +--------------------+-----------------+-----------+
 | Boot Method: Boot Sector  | IDE DRIVE GEOMETRY:  Sect  Hds  Cyls | Memory    |
 +---------------------------+ Ide 0: Not installed                 |  Base:    |
 | FLOPPY DRIVE TYPES:       | Ide 1: Not installed                 |   640KB   |
 | Floppy 0: Not installed   | Ide 2: 3 = AUTOCONFIG, LBA           |  Ext:     |
 | Floppy 1: Not installed   | Ide 3: 3 = AUTOCONFIG, LBA           |   15MB    |
 +---------------------------+--------------------------------------+-----------+

Now at boot prompt, l2420 root=/dev/hdc2


Hold down control-c during memory test, then select BIOS debugger

BIOS Debugger help screen
 REBOOT                          - cold boot the target
 CONSOLE [CON|COMn]              - set debug console
 MASK x                          - set debug mask for EDOSROM
 WCOMx byte [n]                  - write byte to COMx n times
 MODE n                          - set video mode
 D[b|w|d] [addr]                 - dump memory (bytes/words/dwords)
 R[16|32] [reg value]            - display registers
 I[w|d] port                     - input from 8/16/32-bit I/O port
 O[w|d] port val                 - output to 8/16/32-bit I/O port
 U[16|32] [addr]                 - unassemble code
 E addr byte [...]               - enter bytes
 V vector#                       - display interrupt vector table pointer
 T                               - trace next instruction
 +|-                             - inc/dec IP
 G                               - go (resume execution)
 BP addr                         - set breakpoint
 BC bkpt#                        - clear breakpoint
 BL                              - list breakpoints
 SO x                            - route EDOSROM output to COMx
 EA20|DA20                       - enable/disable A20 line
 ECACHE|DCACHE                   - enable/disable cache
 TORAM                           - run BIOS from RAM
 TOROM                           - run BIOS from ROM
 WP [addr]                       - set/clear watchpoint
 RC index                        - read CMOS RAM data
 WC index byte ...               - write CMOS RAM data
 RFL phys:phys len               - read nwords words from Flash
 WFL phys:phys xxxx ...          - write words to Flash
 EFL phys:phys                   - erase Flash block
 LFL phys:phys                   - lock Flash block
 SFL phys:phys wdcnt value       - set Flash words to value
 UFL phys:phys wdcnt addr        - update Flash from buffer
 CSR index                       - read data from chipset
 CSW index data                  - write data to chipset
 SIOR index                      - read data from SIO chip
 SIOW index data                 - write data to SIO chip
 PCIR[BWD] idx [func dev bus]    - read data from PCI device
 PCIW[BWD] idx val [func dev bus]- write data to PCI device
 PCID                            - dump PCI enumeration
 RD|WD unit sec hd trk addr      - read/write disk sector to/from buffer
 BIOSDATA                        - display BIOS data area
 ?|HELP                          - show this help


Last Updated Monday, March 06 2006 @ 02:26 PM MST View Printable Version


Copyright © 2002-2008 Craig Hollabaugh
All trademarks and copyrights on this page are owned by their respective owners.
Powered By Geeklog 
Created this page in 0.13 seconds