TS-7800-V2
Product Page | |
Product Images | |
Specifications | |
Documentation | |
---|---|
Schematic | |
Mechanical Drawing | |
FTP Path | |
Processor | |
Marvell MV88F6820 | |
Armada 385 ARM Cortex-A9 1.3 GHz Dual Core CPU |
WARNING: | This is PRELIMINARY INFORMATION ONLY. |
Overview
The TS-7800-V2 is a RoHS compliant Single Board Computer (SBC) based on a Marvell MV88F6820 1.3GHz (1.8GHz optional) Cortex-A9 Dual Core CPU. On-board PCI bus provides a standard set of high-end peripherals such as 10/100/1000 ethernet, dual SATA and dual USB 3.0 ports. The Mini PCI Express connector allows for the connection of off-board mSATA or PCIe cards. The TS-7800-V2 features 1 GB to 2 GB RAM of DDR3 RAM and 4 GB eMMC flash. The TS-7800-V2 also has on-board WiFi, Bluetooth, and an accelerometer.
Getting Started
A Linux PC is recommended for development. For developers who use Windows, virtualized Linux using VMWare or similar are recommended in order to make the full power of Linux available. The developer will need to be comfortable with Linux anyway in order to work with embedded Linux on the target platform. The main reasons that Linux is useful are:
- Linux filesystems on the microSD card can be accessed on the PC.
- More ARM cross-compilers are available.
- If recovery is needed, a bootable medium can be written.
- A network filesystem can be served.
- Builds such as Linux kernel, buildroot, yocto, distro-seed will not work from WSL1/2 on a case insensitive filesystem.
WARNING: | Be sure to take appropriate Electrostatic Discharge (ESD) precautions. Disconnect the power source before moving, cabling, or performing any set up procedures. Inappropriate handling may cause damage to the board. |
Getting Console and Powering up
Set the "EN Con" jumper, and use a null modem cable to connect the board's DB-9 connector to your workstation's COM port. Alternatively, connect a micro USB Type B cable to CN12, with the other end going to a USB port on a workstation.
DB9 The DB9 console port comprises of RS232 serial communication at 115200 baud, no parity, 8 data bits, 1 stop bit, no handshaking, no flow control.
Micro USB The Micro USB type B port hosts a USB virtual serial port on the managing microcontroller. Some users may require the OS-appropriate driver provided by SiLabs found here: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers The TS-7800-V2 will respond over the virtual serial port at 115200 baud, no parity, 8 data bits, 1 stop bit, no handshake.
Note: | Some terminal software will default to software flow control XON/XOFF. This setting is not compatible with the TS-7800-V2. Be sure to turn off both hardware flow control and software flow control (sometimes called "handshake") when configuring the console interface for the TS-7800-V2. |
Console from Linux
There are many serial clients for Linux, but 3 simple ones would be picocom, screen, and minicom. These examples assume that your COM device is /dev/ttyUSB0 (common for USB adapters), but replace them with the COM device on your workstation.
Linux has a few applications capable of connecting to the board over serial. You can use any of these clients that may be installed or available in your workstation's package manager:
Picocom is a very small and simple client.
picocom -b 115200 /dev/ttyUSB0
Screen is a terminal multiplexer which happens to have serial support.
screen /dev/ttyUSB0 115200
Or a very commonly used client is minicom which is quite powerful:
minicom -s
- Navigate to 'serial port setup'
- Type "a" and change location of serial device to '/dev/ttyUSB0' then hit "enter"
- If needed, modify the settings to match this and hit "esc" when done:
E - Bps/Par/Bits : 115200 8N1 F - Hardware Flow Control : No G - Software Flow Control : No
- Navigate to 'Save setup as dfl', hit "enter", and then "esc"
Console from Windows
Putty is a small simple client available for download here. Open up Device Manager to determine your console port. See the putty configuration image for more details.
The TS-7800-V2 receives power through the +5VDC power connector with a 1A minimum supply. Once power is applied, the device will output information via the console. The first output is from U-Boot:[1]
BootROM - 1.73 Booting from MMC General initialization - Version: 1.0.0 AVS selection from EFUSE disabled (Skip reading EFUSE values) Overriding default AVS value to: 0x23 Detected Device ID 6820 High speed PHY - Version: 2.0 Init Customer board board SerDes lanes topology details: | Lane # | Speed| Type | ------------------------------| | 0 | 3 | SATA0 | | 1 | 5 | USB3 HOST0 | | 2 | 3 | SATA1 | | 3 | 5 | USB3 HOST1 | | 5 | 5 | PCIe2 | ------------------------------- mvSysEnvReadPcieGenSetting: TWSI Read of SatR field 'isForceGen1 failed :** Link is Gen1, check the EP capability PCIe, Idx 2: remains Gen1 High speed PHY - Ended Successfully DDR3 Training Sequence - Ver TIP-1.54.0 DDR3 Training Sequence - Switching XBAR Window to FastPath Window DDR3 Training Sequence - Ended Successfully BootROM: Image checksum verification PASSED __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** LOADER ** U-Boot 2013.01 (May 01 2017 - 14:41:41) Marvell version: 2016_T1.0.eng_drop_v2 mvBoardIoExpanderDataSet: Write IO expander (addr=0x20, offset=2, value=0x40 tol Board: Technologic Systems TS-7800v2 SoC: MV88F6820 Rev A0 running 2 CPUs CPU: ARM Cortex A9 MPCore (Rev 1) LE CPU 0 CPU @ 1066 [MHz] L2 @ 533 [MHz] TClock @ 250 [MHz] DDR3 @ 533 [MHz] DDR3 32 Bit Width,FastPath Memory Access, DLB Enabled, ECC Disabled DRAM: 1 GiB MMC: mv_sdh: 0 sdhci_transfer_data: Error detected in status(0x408000)! *** Warning - bad CRC, using default environment PCI-e 2 (IF 0 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1 USB2.0 0: Host Mode USB3.0 0: Host Mode USB3.0 1: Host Mode Map: Code: 0x3fee4000:0x3ff97500 BSS: 0x3ffef754 Stack: 0x3f963f20 Heap: 0x3f964000:0x3fee4000 U-Boot Environment: 0x00100200:0x00180200 (MMC) Board configuration detected: Net: | port | Interface | PHY address | |--------|-----------|--------------| | egiga0 | RGMII | 0x01 | egiga0 [PRIME] Hit any key to stop autoboot: 0
The "SD Boot" jumper, when set, will cause U-Boot to boot to SD, and when unset, U-Boot will boot to eMMC.
Note: | The "*** Warning - bad CRC, using default environment" can be safely ignored. This indicates that u-boot scripts are not being customized. Typing "env save" will hide these messages, but this is not needed. |
Busybox / Fastboot
After the TS-7800-V2 is first booted you will be at this shell:
Welcome to Buildroot Type 'tshelp' for help / #
This is a busybox shell which presents you with a very minimalistic system. This filesystem is loaded into memory, so none of the changes will be saved unless you type 'save', or mount a filesystem as read write. This can also provide a simple mechanism for running your application in an entirely read only environment. The linuxrc script will be the first thing executed as soon as the kernel is loaded. This sets the default IP address, starts the userspace ctl applications, and more. Read the linuxrc for more information.
While busybox itself doesn't contain much functionality, it does mount the Debian partition under /mnt/root/. It will also add common paths and load libraries from the Debian system. Many of the Debian applications will work by default. If an application relies on certain paths being in certain places, or running services, you should instead boot to Debian to run them.
This shell when started on the COM port is what is blocking a Debian boot. If you close it by typing 'exit', the boot process will continue. If you are connected through telnet, this will instead open up its own instance of the shell so typing 'exit' will only end that session. You would have to relink the linuxrc script to always boot to a specific partition from telnet. When logging into Debian, the default user is 'root' with no password. Technologic Systems strongly recommends setting a secure password for your system root account.
The compiled instance of busybox includes internal commands listed below:
/ # /bin/busybox --help
BusyBox v1.24.1 (2017-05-02 11:36:21 PDT) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.
Usage: busybox [function [arguments]...]
or: busybox --list
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, [[, acpid, ash, base64, basename, beep, blkid, blockdev, bootchartd,
brctl, bzip2, cal, cat, catv, chat, chgrp, chmod, chown, chroot, cksum,
clear, comm, conspy, cp, cttyhack, cut, date, dd, depmod, devmem, df,
dhcprelay, dirname, dmesg, dnsdomainname, du, dumpleases, echo, egrep,
env, expr, false, fatattr, fbsplash, fdisk, fgconsole, fgrep, find,
findfs, flock, free, fstrim, fsync, ftpd, getopt, getty, grep, groups,
gunzip, halt, hd, head, hexdump, hostname, id, ifconfig, ifenslave,
ifplugd, init, insmod, iostat, kbd_mode, kill, killall, linuxrc, ln,
login, lpd, lpq, lpr, ls, lsmod, lsof, lspci, lsusb, lzop, lzopcat,
makemime, man, md5sum, mdev, microcom, mkdir, mkdosfs, mke2fs, mkfifo,
mkfs.ext2, mkfs.vfat, mknod, modinfo, modprobe, more, mount, mpstat,
mv, mvtime, nbd-client, netstat, nice, nohup, nslookup, ntpd, pgrep,
ping, ping6, pivot_root, pkill, pmap, popmaildir, poweroff, powertop,
printenv, printf, ps, pscan, pstree, pwd, pwdx, rdev, readahead,
reboot, reformime, rev, rm, rmdir, rmmod, route, rtcwake, rx, script,
scriptreplay, sed, sendmail, setconsole, setfont, setlogcons,
setserial, setsid, sh, sha1sum, sha256sum, sha3sum, sha512sum, showkey,
shuf, sleep, smemcap, split, stat, stty, sum, sync, tac, tail, tar,
tee, telnetd, test, tftp, tftpd, time, timeout, top, tr, traceroute,
traceroute6, true, truncate, tty, tunctl, udhcpc, udhcpd, uevent,
umount, uname, unlink, unlzop, unxz, unzip, uptime, usleep, uudecode,
uuencode, vi, volname, wget, whois, xargs, xz, xzcat, zcat
Note: | You may want to refer to the sources for some of these commands if they are not behaving as you would expect. Busybox implements them so they are incredibly small, but they don't always provide all of the functionality as is in the standard gnu/bash shell commands. Some commands will provide the same functionality like date, but may only work with very specific formats. |
First Linux Boot
U-Boot is always loaded from the onboard eMMC flash. U-Boot has the ability to boot Linux, Android, QNX, or other operating systems on the SD or eMMC. The eMMC and SD cards shipped with the unit are pre-programmed with our Debian Jessie image. See other OS sections for information on the various OS options that we provide.
Jumper Configuration
Jumper | Function |
---|---|
SD Boot | Boot to SD (Otherwise eMMC) |
EN Console | Enables the console |
U Boot | TBD |
Backup / Restore
SD Card
TBD
Onboard Flash
TBD
System Configuration
TBD
Configuring the network
TBD
Network Troubleshooting
Installing New Software
TBD
Setting Up SSH
TBD
Starting Automatically
TBD
Software Development
TBD
Linux Kernel
TBD
Compiling The Kernel
Features
CPU Functionality
MMU
The 88F6020 features a Memory Management Unit, enabling high level operating systems such as Embedded Linux and Windows CE to run on the TS-7800-V2. In the same way, the Linux TS-Kernel takes advantage of the MMU functionality. The MMU is controlled by page tables stored in system memory and is responsible for virtual address to physical address translation, memory protection through access permissions and domains, MMU cache and write buffer access. In doing so, software applications can access larger "virtual" memory space than the available physical memory size, allowing multiple programs to run and use the system memory simultaneously.
Interrupts
The 88F6020 has 192 interrupts available on chip as well as another TBD implemented in the Lattice FPGA by using the doorbell interrupt register (???).
TBD
For more information about the interrupt functionalities, refer to the 88F6020 User's Guide.
Onboard eMMC Flash
The TS-7800-V2 has 4 GB of eMMC flash installed as standard.
TBD
USB Host
The USB Connector on the TS-7800-V2 provide two USB 3.0 interfaces for the user. These are directly connected to the MV88F6020 processor, which integrates a USB dual-port Extensible Host Controller Interface (xHCI), providing serial communications ports at a baud rate of up to 5 Gbit/s ("SuperSpeed"). The MV88F6020 also has a USB 2.0 controller, with Enhanced Host Controller Interface (EHCI) for full compatibility with USB 2.0 at speeds up to 480 Mbits/sec ("High-Speed").
Additional non-volatile storage may be added with a USB flash drive. This device supplies additional non-volatile storage either for data or for a complete operation system distribution, such as Debian. A tar-file of Debian is available on the Technologic Systems FTP site.
SATA
The TS-7800-V2 provides up to two SATA 3.0 ports. These allow connection of mass storage devices in excess of [some very large number goes here], at data rates of up to 6 Gbits/sec.
DDR3 RAM
FPGA Functionality
Serial Ports
Realtime Clock
Temperature Sensor
WiFi
Bluetooth
Accelerometer
Status LEDs
Cooling Fan
External Interfaces
DIO Header
LCD Header
Ethernet Port
SD Connectors
Mini PCI Express Connector
Power Supply Connector
DB9 Connector
USB Host Connector
Micro USB Connector
COM2 Header
COM3 Header
A/D Header
JTAG Connectors
FPGA JTAG
CPU JTAG
PC104 Header
References
- ↑ The TS-7800-V2 uses the U-Boot system loader, while the TS-7800 used a proprietary loader. The text output from each is significantly different.