Skip to content
Stuart Longland edited this page Aug 25, 2018 · 4 revisions

Linux kernel tree for Technologic Systems TS-7670 and TS-7400-V2.

What is this?

This is a port of Linux to the Technologic Systems TS-7670 and TS-7400-V2 single-board computers which are based on the Freescale/NXP i.MX286 system on chip.

The purpose of this port is to provide an up-to-date mainline Linux kernel tree for these devices.

Why do this?

Technologic Systems ship an officially supported image based on Debian Wheezy and Linux kernel 2.6.36. Debian Wheezy is officially out of support now, and most modern Linux distributions will not run on such an old kernel.

This enables these devices to run current versions of Linux distributions such as Debian Jessie and Stretch (and the upcoming Buster release) which require newer kernels to operate.

Is this supported?

This tree is not supported by Technologic Systems.

Customers of VRT Systems who have purchased A-series WideSky Gateways and WAGES Hubs from us based on the TS-7670 should refer to their support agreement with VRT Systems for support.

How well do these machines run?

On Jessie and Stretch? Just fine. These machines will never compete for number one spot in the TOP500 supercomputer rankings, but inspite of their modest specifications, they can perform quite useful tasks such as acting as intelligent RS-232, RS-485 and CAN-BUS gateways, acting as a low-power router or interfacing to custom hardware.

Accepting that these machines have about the computing capacity of a desktop PC of the late 90s, they are still quite useful.

Do you support all the official kernel's features?

Supported features

MMC/SD interfaces

All TS-7670 boards feature dual MicroSD sockets. Revision C and D boards also feature on-board eMMC flash.

  • /dev/mmcblk0 is CN3
  • /dev/mmcblk1 is on-board eMMC on rev C and D boards
  • /dev/mmcblk2 is CN4

USB 2.0

This works as a host port. Note the hardware is likely to take umbrage to people plugging in bus-powered hard drives, but any low-power peripherals should work fine.

USB Console

This is the USB type B port next to the host port. It connects to a USB-serial converter which is wired up to /dev/ttyAMA0. U-Boot and the system console is accessible via this port.

Ethernet

A single 10/100Mbps Ethernet interface should appear as eth0. If you need multiple ports, then setting up 802.1Q VLANs and using a managed switch is known to work just fine.

LEDs

All LEDs are controllable via the Linux kernel LEDs framework.

The blue LED (marked STATUS 1) is controlled in a diode-OR arrangement using two N-channel MOSFETs, one which is under the control of the Linux kernel, the other is controlled by the companion MCU in the TS-7670.

No support is available for controlling the companion MCUs use of this LED, thus on most systems, this LED will just stay permanently on.

Modbus serial interface and RS-232 interfaces

These need transceivers that are all separately controlled with GPIOs, in the case of the RS-232 ports and a PWM channel for RS-485. The PWM is to supply the RS-485 transceiver with a clock, which it inexplicably needs. It should be a 50% duty cycle, and a frequency equal to the baud rate.

Since kernel 4.4.1, support has been added to the auart-mxs driver drive the PWM channel for the RS-485 port. Handling of other GPIO signals is on the TODO list.

Real-time clock

The system-on-chip has one, but there is also a second one on the board. Both are supported.

The on-board RTC also has NVRAM, support for this is untested. At worst, this should be accessible from userspace using /dev/i2c-0 at address 0x57 using i2cdump, i2cget and i2cset.

NAND flash on rev A and B boards

On earlier TS-7670s, NAND flash rather than eMMC storage is available. This is supported.

Watchdog in LPC11U14F companion MCU

This is supported, as is the built-in watchdog of the i.MX286.

GSM/3G module

This does communicate with the host (via /dev/ttyAP3), although last time this was attempted, we found the module did not like talking to the Telstra 3G network or sharing its session with the host. Your mileage may vary.

Untested features

CANbus

The kernel can see it, and reports the presence of can0 and can1, but at this time, no attempt has been made to test it.

WiFi

This is via a USB dongle. I've never used a board that had this feature, but see no reason why it couldn't be made to work with some effort.

GPS

The GPS requires a GPIO to be turned on, after that it may be accessed via one of the UARTs (/dev/ttyAP4)

  • NVRAM in RTC chip
  • Anything on TS-7400-V2 (the board is very similar to the TS-7670)

Not supported

Doublestore

This is, for want of better terminology, a form of mirror-RAID tweaked for MicroSD cards. On official TS images, this is presented to the kernel by way of a network block device from a userspace application.

No effort has been made to test or support Doublestore.

An alternative option is to use the built-in RAID features in the Linux kernel which include:

Where do I get an OS to run with this kernel?

There's a few options. Specifically, you want to look for distributions that support ARMv5:

Where do I get a bootloader for this kernel?

We have a port of u-boot.