The Linux OS for the TS-7400 is
powered with unique out-of-the-box software
utilities and solutions that accelerate
embedded productivity, including:

Flexible
Booting Options
The TS-7400 board has Linux installed
by default on onboard flash. Upon bootup,
The board will boot within 1.1 seconds
to a Linux prompt on UART #0 (/dev/ttyAM0),
powered with various Busybox commands.
At this point, if you type 'exit' from
the serial shell, the TS-7400 will then
attempt a full Debian Linux bootup from
the SD card on partition #3. If the SD
card is not present or the EXT2 filesystem
does not pass a basic sanity test or
the special file "/notrootfs" exists,
a demonstration version of a miniature
Linux distribution contained on the onboard
flash itself is instead booted.
Should you wish to automatically bypass
the fastboot and proceed directly into
starting the version of Linux of choice,
you can do so by using the various linuxrc
scripts included by default on the TS-7400
fastboot shell. These scripts allow mounting
of a root filesystem via:
- onboard NAND Flash
- SD Card
- USB Flash Drive or USB Hard Drive
- NFS
For example, in order to automatically
mount the SD Card Linux root filesystem
after power up, you can use the following
command issued to the fastboot shell:
ln -sf /linuxrc-sdroot /linuxrc;
save
For the onboard flash the command is:
ln -sf /linuxrc-mtdroot /linuxrc;
save
For the USB flash dongle or USB hard
drive:
ln -sf /linuxrc-usbroot /linuxrc;
save
For a network filesystem (NFS root):
ln -sf /linuxrc-nfsroot /linuxrc;
save
To get back to the fastboot shell, you
can do so by placing the file "/fastboot" in
the root directory of the new filesystem
mounted:
touch /fastboot
Or just issue the following command
to the fastboot shell:
ln -sf /linuxrc-fastboot /linuxrc;
save
The '/linuxrc' file is a shell script
that is the very first thing run by the
kernel on startup. Several sample startup
scripts are included and can either be
used directly ("ln -sf /linuxrc-XXX
/linuxrc" command) or modified to
include custom bootup logic. These shell
scripts were designed to be as fast and
simple as possible (approximately 45
lines of code) for easy customer modifications.
It is anticipated that this shell script
be modified from the default to implement
things in the customer's product such
as backup configurations, software field
updates, conditional booting/verification
of SD cards, etc. Technologic Systems
professional services is available should
you need help in implementing a specific
feature.
Software
Update via USB Flash Drive in Default
Configuration
Although Technologic Systems production
staff can load the flash with customer
supplied software, it is often more convenient
to have a local production process for
installing or updating the files and
programs that make your product unique.
The default software installation of
the TS-7400 enables this by providing
a hook to allow customer code to "hijack" the
normal fast-boot bootup process. The
default linuxrc (linuxrc-fastboot) will
run a program "/bin/check-usb-update" in
the background after bootup has completed.
This program looks for a script "/tsinit" on
the USB mass storage device (USB thumb-drive,
or USB hard drive) connected to the bottom
USB slot. If this script exists, it is
then run automatically as the Linux "root" user-ID.
A sample /tsinit script that copies a
program "myprogram" to onboard
flash, and then changes the default bootup
to the SD card follows:
#!/bin/sh
ln -sf /linuxrc-sdroot /linuxrc
mount /dev/mtdblock/3 /onboardflash
cp /mnt/root/myprogram /onboardflash/bin
umount /onboardflash
save
reboot
While the "tsinit" script
is run, the red LED will be on. After
it is complete, the red LED will go off.
A customer can mass-update many TS-7400's
quickly and easily by using a USB flash
dongle with a custom "tsinit" and
data files and applying power with the
USB dongle on, wait for the LED to go
off, then proceed to the next board.
The "tsinit" script will begin
to execute approximately 3 seconds after
power-on.
Changing
/ Updating the TS-BOOTROM
Normally, the TS-7400 boot firmware
is loaded with the TS-FLASHBOOT bootup
program. This program bootstraps the
CPU by loading the first 512 bytes from
the NAND flash and jumping into it. This
program then loads the kernel and initrd
from the NAND flash. Once the kernel
has booted and mounted the initrd, it
can "pivot_root" and give the
illusion it actually booted directly
from SD, NAND, NFS, etc file systems.
Should you wish to actually load the
kernel and fastboot initrd from an SD
card, the TS-FLASHBOOT bootup program
must be replaced with TS-SDBOOT. This
can be done with the "tsbootrom-update" program
available at:
Usage and command line help for this
command follows:
Usage: tsbootrom-update [OPTION]
...
Updates TS-BOOTROM bootup program stored
on EEPROM
General options:
-n Do not actually write EEPROM
-s, --sdboot Write TS-SDBOOT bootup program
-f, --flashboot Write TS-FLASHBOOT bootup
program
-u, --burninboot Write TS-BURNINBOOT
bootup program
-p, --spiflashboot Write TS-SPIFLASHBOOT
bootup program
-b, --blastboard Write to blast board
EEPROM instead of SBC
-h, --help This help
EEPROM security block options:
-m, --mac=X Write X as ethernet MAC address
-l, --verifylen=N Checksum includes first
N 512 byte sectors
-d, --device=FILE Use FILE to re-compute
checksum value
-V, --verifydat=N Use N as pre-computed
checksum value
-L, --lockdat=X Use X for the SD unlock
data token from
previous "sdlock --set" command
-k, --verifylock Do not boot to an unlocked
SD card
-c, --noconsole Disable serial console
bootup messages
TS-production specific options:
-a, --alloc-mac Get MAC address from
/var/ts-production/mac
The TS bootup programs will by default
print a banner message on bootup to the
serial port displaying its build date,
etc. If you wish to use all serial ports
for your application and do not wish
to have a serial console, the tsbootrom-update
program can be used to silence early
bootstrap banner messages preventing
confusion of any potential external device
UART#0 may be connected to.
Other bootstrap programs are available
for purchase from Technologic Systems
should you need them and custom
programming is available as one of
our services. For instance, the TS-ETHBOOT
bootup program may be used to completely
boot Linux from the network without NAND
flash or SD card installed.
Hardware
Control through Linux Shell Scripts
Technologic Systems provide a package
of shell functions which enable control
to some of the TS-7000 hardware functions
without having to write/compile C code.
These shell functions allow you to access
various functions such as DIO, ADCs from
the command line or in your own shell
scripts. The ts7xxx.subr file, which
includes the implementation of all shell
functions, is available at:
There are two new commands added to
the provided TS busybox to support these
shell functions. These commands are "peekpoke" which
is used to provide direct access to memory,
and ADCread, which will provide a continuous
stream of analog to digital readings
(either on one channel or all channels)
to stdout in text format. Both of these
commands provide more info on what options
are available if you type them without
any arguments.
The Shell Functions include:
- dio_dir_get <n>: get the current
direction (0=input,1=output) of DIO
#n (n in 0..15)
- dio_dir_set <n> <dir>:
set the direction of DIO #n to the
specified direction (0=input,1=output)
- dio_data_get <n>: get the
current value (0=Low,1=High) of DIO
#n
- dio_data_set <n> <val>:
set the current value (0=Low,1=High)
of DIO #n (specified pin should be
set to be an output already)
- usb_init: call this function to
turn the USB ports on and initialize
them
- usb_off: call this function to turn
off the USB ports
- usb_numports: prints the number
of USB ports on the board. this may
be greater then the actual number of
physical ports. the first port is port
0
- usb_port_devexists <port>:
prints '1' if something is plugged
into the specified port, or '0' otherwise.
- eth_off: turns off the ethernet
port and phy
- eth_on: turns on the ethernet port
and phy
- led0 <state>: sets the state
of the green LED (0=OFF,1=ON)
- led1 <state>: sets the state
of the red LED (0=OFF,1=ON)
- cpu_speed_max: set the CPU and bus
speed to their maximum (normal) values,
e.g. 200Mhz/100Mhz.
- cpu_speed_166: set the CPU speed
to 166Mhz and the bus speed to 66Mhz.
- cpu_speed_42: set the CPU speed
and bus speed to 41.5Mhz. This is the
slowest speed that Ethernet will work
at.
- cpu_speed_min: set the CPU and bus
speed to their minimum values (14.7456Mhz)
- temp_read: returns the current Celsius
temperature reading from the TMP124
chip.
For more information on
Linux solutions, contact a Technologic
Systems engineer. |