TS-7800-V2: Difference between revisions

From embeddedTS Manuals
mNo edit summary
Line 25: Line 25:


= Getting Started =
= Getting Started =
{{:Generic Getting Started}}
{{:Generic Getting Started}}


{{Note|If you are moving from a TS-7800 board to the TS-7800-V2, be sure to read the next section before continuing!}}
== Moving from TS-7800 to TS-7800-V2 ==


== Getting Console and Powering up ==
== Getting Console and Powering up ==

Revision as of 14:02, 17 May 2017

TS-7800-V2
ts-7800-v2.gif
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.
Note: If you are moving from a TS-7800 board to the TS-7800-V2, be sure to read the next section before continuing!

Moving from TS-7800 to TS-7800-V2

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.

Device Manager Putty Configuration Putty Configuration B

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

The TS-7800-V2 comes with 1 GB of DDR3 as standard, with 2 GB as an option.

FPGA Functionality

Serial Ports

Realtime Clock

The TS-7800-V2 uses the Realtime Clock on the Marvell 88F6820. Linux supports this RTC with the armada38x-rtc driver.

Temperature Sensor

WiFi

The TS-7800-V2 offers optional WiFi (and Bluetooth) using an ATWILC3000-MR110CA IEEE 802.11 b/g/n Link Controller Module With Integrated Bluetooth® 4.0. Linux provides support for this module using the wilc3000 driver.

Summary features:

  • IEEE 802.11 b/g/n RF/PHY/MAC SOC
  • IEEE 802.11 b/g/n (1x1) for up to 72 Mbps PHY rate
  • Single spatial stream in 2.4GHz ISM band
  • Integrated PA and T/R Switch Integrated Chip Antenna
  • Superior Sensitivity and Range via advanced PHY signal processing
  • Advanced Equalization and Channel Estimation
  • Advanced Carrier and Timing Synchronization
  • Wi-Fi Direct and Soft-AP support
  • Supports IEEE 802.11 WEP, WPA, and WPA2 Security
  • Supports China WAPI security
  • Operating temperature range of -40°C to +85°C

Bluetooth

Accelerometer

The TS-7800-V2 offers optional 9-axis MotionTracking, using an InvenSense MPU-9250 Gyro/Accelerometer/Compass device.

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

  1. 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.