NXP Layerscape® LS1046A Freeway Board - Review

Table of contents

RoadTest: NXP Layerscape® LS1046A Freeway Board

Author: Attila Tőkés

Creation date:

Evaluation Type: Development Boards & Tools

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Raspberry Pi 4 (2/4 GB)

What were the biggest problems encountered?: Wifi performance, figuring out the login credentials, missing modules for the custom built Linux kernel

Detailed Review:

Hi Element14 Comunity!

 

Here is my Road Test of the NXP Layerscape® LS1046A Freeway Board board:

 

1. Unboxing & Getting Started

 

The FRWY-LS1046A-AC comes in a fairly big box, which includes a plenty of stuff in it:

  • the FRWY-LS1046A board
  • Metal Enclosure
  • AC/DC Brick Power Supply
  • AC Universal Power Plug Adaptor
  • MicroSD Card with pre-loaded image
  • Wifi Antennas, a set of jumpers
  • Packaging List, Demo Sheet, Quick Start Guide

 

{gallery} Unboxing

Packaging List

Demo Sheet

Brick Power Supply & Cable

The device itself and power plug adapter kit

Quick Reference Card

Universal Power Plug Adaptor Kit

Universal Power Plug Adaptor Kit

FRWY-LS1046A-AC

FRWY-LS1046A-AC

Front

Back

Accessories

FRWY-LS1046A Assembled

 

The build quality of the device looks pretty solid.

 

The unit comes with a 60W (5A @12V) brick style power supply. The package includes a standard 3-pin power cord with US plug, and a nice mains power adapter (usable in most of the countries). However, I decided to just grab a EU plug power cord and put that nice power adapter away for travels .

 

To get started, we just need to insert the pre-loaded MicroSD card in the slot at the back of the device, mount the Wifi Antennas and plug in the power supply.

 

After about a minute the device should be booted, and we should see a Wifi network with SSID: FRWY-LS1046A-XX:XX:

We can connect to it with the password "frwyls1046a".

 

Then, if we access 192.168.99.1 from a browser a graphical interface should come up:

2. Demo Software

The pre-loaded MicroSD card comes with a Demo Software showcasing different use cases for the device.

 

2.1 CPU Performance

The 1st demo comes with two CPU performance tests and some graphics showing the power consumption, CPU temperature and CPU usage.

 

I ran the tests and got the following results:

  • CoreMark - 40575 iterations / sec
  • Dhrystone - 37614 DMIPS

 

{gallery} Demo 1: CPU Performance

CPU Performance demo page

CoreMark test running (unfortunately the graphics are not real time)

CoreMark test results

Dhrystone test running

Dhrystone test results

 

2.2 Data Analytics

The 2nd demo, I think, is meant to demonstrate the data processing capabilities of the device.

 

It consists of two demo applications:

  • Cold Storage Data Analytics
  • Sensor Data Analytics

 

{gallery} Demo 2: Data Analytics

Cold Storage Data Analytics

Cold Storage Data Analytics running

Cold Storage Data Analytics running (2)

Cold Storage Data Analytics running (3)

Sensor Data Analytics

Sensor Data Analytics (2)

 

2.3 Machine Learning / Video Analytics


The 3rd demo is a little bit more interesting, as it demonstrates real-time video processing using AI.

 

We need an USB webcam to run it. I used a Logitech C920:

There are two demo apps:

  • People Counting Demo - an object detection demo
  • Industrial Safety Demo - checks in the webcam image if we ware a safety google or not

 

{gallery} Demo 3: Video Analytics

Machine Learning / Video Analytics

People Counting Demo starting up

Object detection / People Counting Demo running.

Industrial Safety Demo starting up

Industrial Safety demo - no safety google (normal glasses)

Industrial Safety demo - safety googles detected

 

2.4 Video Vault

The 4th demo page is a collection of 6 videos. I think, they are also available somewhere on the NXP website.

 

I had a little bit of trouble with this page. When I tried to play the first video it was really slow / laggy.

 

It turned out that the Wifi performance although the signal was full was just crap. If I tried to download the video manually, I got a speed of 153 Kb / sec.

 

To fix it, I decided to move on to Ethernet. So, I ended up setting up a router with the 192.168.99.* subnet, and connected both the FRWY-LS1046A and my laptop.

 

Next, I tried to play the again video and it just worked fine. Looks like there is some problem with the Wifi networking, but I did not had the time to check it yet.

 

{gallery} Demo 4:

Video Vault

Playing Video - it can be seen that the pre-buffering is really slow

Trying to download the video manually. The speed over Wifi is 153 KB/s

 

2.5 System Metrics

In the header of the demo pages there is Detailed CPU Analytics button. If we click on it a page with a bunch of real-time metrics about the system are shown. I found this page very interesting, as it has a lot of useful data on it.

 

It looks like it is netdata install:
https://github.com/netdata/netdata

 

{gallery} Demo 5: System Metrics

System Metrics

System Metrics (2)

System Metrics (3)

 

3. SSH, Networking Performance and Other Stuff

Next I wanted to check a couple of things in the console.

 

I tried to SSH into the machine. Initially, I had some trouble figuring out the credentials, as they does not seems to appear in any user guide or documentation. So, I ended up removing the microSD card and manually adding my SSH public to /home/user/.ssh/authorized_keys.

 

Later, I figured out that the password is just user for user, and root for root.

 

A first look on the SSH shows that the device runs Ubuntu 18.04.3 LTS with the Linux Kernel 4.14.83. This is nice as we can use apt-get to easily install new stuff on it.

$ ssh user@192.168.0.116

Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.14.83 aarch64)

 

* Documentation:  https://help.ubuntu.com

* Management:     https://landscape.canonical.com

* Support:        https://ubuntu.com/advantage

 

* Overheard at KubeCon: "microk8s.status just blew my mind".

 

     https://microk8s.io/docs/commands#microk8s.status

Last login: Sat Dec 28 11:03:54 2019 from 192.168.0.109

 

user@localhost:~$ uname -a

Linux localhost 4.14.83 #1 SMP PREEMPT Wed May 8 09:33:44 CDT 2019 aarch64 aarch64 aarch64 GNU/Linux

 

3.1 Networking Performance

 

One thing I wanted to check is the networking performance. So, I installed iperf3 both on the device and on my laptop and run a quick test:

$ sudo apt-get install iperf3

$ iperf3 -s

-----------------------------------------------------------

Server listening on 5201

-----------------------------------------------------------

Accepted connection from 192.168.0.117, port 52606

[  5] local 192.168.0.116 port 5201 connected to 192.168.0.117 port 52608

[ ID] Interval           Transfer     Bandwidth

[  5]   0.00-1.00   sec   109 MBytes   913 Mbits/sec                

[  5]   1.00-2.00   sec   112 MBytes   942 Mbits/sec                

[  5]   2.00-3.00   sec   112 MBytes   942 Mbits/sec                

[  5]   3.00-4.00   sec   112 MBytes   942 Mbits/sec                

[  5]   4.00-5.00   sec   112 MBytes   942 Mbits/sec                

[  5]   5.00-6.00   sec   112 MBytes   942 Mbits/sec                

[  5]   6.00-7.00   sec   112 MBytes   942 Mbits/sec                

[  5]   7.00-8.00   sec   112 MBytes   942 Mbits/sec                

[  5]   8.00-9.00   sec   111 MBytes   932 Mbits/sec                

[  5]   9.00-10.00  sec   112 MBytes   942 Mbits/sec                

[  5]  10.00-10.03  sec  3.09 MBytes   940 Mbits/sec                

- - - - - - - - - - - - - - - - - - - - - - - - -

[ ID] Interval           Transfer     Bandwidth

[  5]   0.00-10.03  sec  0.00 Bytes  0.00 bits/sec                  sender

[  5]   0.00-10.03  sec  1.09 GBytes   938 Mbits/sec                  receiver

-----------------------------------------------------------

 

# from my laptop: iperf3 -c 192.168.0.116

It looks like we have Gigabit speed, as promised .

 

3.2 Let's open it up

Next, I thought it would be fun to open up the case and see what's inside.

 

{gallery} Open it up

The case can be opened by just unscrewing a few screws.

On the top part of the board we have: Wifi / BT module (WNFQ-255ACm, 802.11/ac dual band), CPU, Memory, Ethernet PHY, and a bunch of other components

On the bottom we got: the 2nd M.2 slot, a 4 Gb NAND Flash chip (S34MS04G200BHI000), and some other small components

The case has a removable cover for the 2nd M.2 port. Nice detail: it means we don't need take apart the device to install a M.2 device.

 

 

4. Comparison with Raspberry Pi 4

For at least on the CPU side, the FRWY-LS1046A and the new Raspberry Pi 4 are pretty similar. So, I thought it would be a good idea to compare them.

 

4.1 Specs

Here is a comparison between the specs of the two devices:

Header 1FRWY-LS1046ARaspberry Pi 4
Price

FRWY-LS1046A-AC - $495

FRWY-LS1046A-PA  - $395

1 GB model - $35

2 GB model - $45

3 GB model - $55

CPU

LS1046A

4 x ARM A72 cores @ 1.6Ghz

32 KB data + 48 KB instruction L1 cache

2 MB L2 cache

extra features:

10G / 2.5G / 1G Ethernet controllers

3 x PCIe 3.0 (x4, x2, x1)

1 x SATA 3.0

BMC2711

4 x ARM A72 cores @ 1.5 GHz

32 KB data + 48 KB instruction L1 cache

1 MB L2 cache

 

extra features:

1G Ethernet controller

H.265 (4Kp60 decode), H.264 (1080p60 decode, 1080p30 encode) support
OpenGL ES, 3.0 graphics
CSI and DSI ports for camera and display

RAM4 GB DDR4 with ECC1 / 2 / 4 GB LPDDR4-3200
USB2 x USB 3.02 x USB 3.0, 2 x USB 2.0
Networking

4 x Gigabit Ethernet

802.11 ac, dual band Wifi

Bluetooth 5

1 x Gigabit Ethernet

802.11 ac, dual band Wifi

Bluetooth 5

Other

2 x M.2, PCIe slots

mikroBUS™ socket

4 GB NAND Flash

2 x Micro HDMI

Audio Output

CSI Camera connector

DSI Display connector

 

From the performance point of view, the SoC-s of the FRWY-LS1046A (LS1046A) and the Raspberry Pi 4 (BMC2711) should be about the same. The LS1046A may have a small advantage because of the +0.1GHz clock speed and +1M L2 cache.

 

On the other hand, with the Raspberry Pi 4 and its BMC2711 SoC we get pretty good display, recording and graphics capabilities. These are unfortunately missing from the FRWY-LS1046A (LS1046A).

 

The main selling point of the LS1046A looks to be its powerful networking interfaces. It the SoC supports 2 x 10G, 1 X 2G and 4 x 1G connections, from which the four 1 Gigabit one are exposed on the FRWY-LS1046A board.

 

From the price point of view the FRWY-LS1046A is probably a little too expensive for hobbyists. If you don't need four 1G Ethernet ports, or PCIe, the Raspberry Pi is probably a better option.

 

4.2 CPU Bechmarks

One of the most promoted features of the FRWY-LS1046A board / the LS1046A were the powerful CPU core.

 

I thought it would be fun to run some benchmarks on both on the Raspberry Pi 4 and the FRWY-LS1046A. I wanted a Raspberry Pi 4 anyway, so this was a good excuse to buy one . So, I got a Raspberry Pi 4 (2GB). The benchmarks selected were the CoreMark and Dhrystone, which are also featured in the demo software.

 

To have a fair comparison, I decided to compile and run the tests in the same way on both board. For FRWY-LS1046A we could have used the results from the demo software, but that probably would not be same version / settings for the benchmarks.

 

The tests were run on both the boards without special cooling setup.

 

4.2.1 CoreMark

# clone repo

$ git clone https://github.com/eembc/coremark.git

$ cd coremark

 

# single threaded run

$ make XCFLAGS="-DPERFORMANCE_RUN=1" REBUILD=1 run1.log
# multi threaded run

$ make XCFLAGS="-DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1" REBUILD=1 run1.log

FRWY-LS1046A:

CoreMark 1.0 : 8880.277711 / GCC7.4.0 -O2 -DPERFORMANCE_RUN=1  -lrt / Heap

CoreMark 1.0 : 35743.298132 / GCC7.4.0 -O2 -DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1  -lrt / Heap / 4:Fork


Raspberry Pi 4 (2GB)
:

CoreMark 1.0 : 8289.999246 / GCC8.3.0 -O2 -DPERFORMANCE_RUN=1  -lrt / Heap

CoreMark 1.0 : 33100.127887 / GCC8.3.0 -O2 -DPERFORMANCE_RUN=1 -DMULTITHREAD=4 -DUSE_FORK=1  -lrt / Heap / 4:Fork

 

The CoreMark score for the FRWY-LS1046A is about 7% higher than the Raspberry Pi 4. That's about we could expect from the 0.1GHz difference in the clock speeds.

 

4.2.2 Dhrystone

# clone repo
$ git clone https://github.com/Keith-S-Thompson/dhrystone.git

$ cd dhrystone/v2.2

 

# run, and collect the results from the last run

$ CFLAGS=-O3 sh dry.c


FRWY-LS1046A
:

Microseconds for one run through Dhrystone:        0.1

Dhrystones per Second:                        15625000

 

Raspberry Pi 4 (2GB):

Microseconds for one run through Dhrystone:        0.1

Dhrystones per Second:                         9025271

 

In the Dhrystone the FRWY-LS1046A gets a little bit better results, about ~40% better then Raspberry Pi 4. I'm not really sure what causing this, maybe the +1 Mb L2 cache or maybe the RPi is just thermal throttling.

 

5. A Simple NAS and Media Server

My initial plan was to build a NAS and Media Server using FRWY-LS1046A. I got some progress here, but is not yet quite done. Lets see what we got.

 

5.1 USB Disk

There are multiple options to build a NAS with the FRWY-LS1046A, but for the first iteration I wanted to go simple. For this reason, I went with an Inateck SATA to USB 3.0 adapter and a 500 GB HDD from an old laptop:

For further versions, I plan to use more disks to have redundancy and it would be also useful to NVMe SSD for caching.

 

The disk was plugged in to one of the USB ports, and it was correctly detected:

$ sudo fdisk -l

 

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0x6641b647

 

Device     Boot Start       End   Sectors   Size Id Type

/dev/sda1        2048 976773119 976771072 465.8G 83 Linux

 

Quick check on the disk speed:

$ sudo hdparm -tT /dev/sda

 

/dev/sda:

Timing cached reads:   4086 MB in  2.00 seconds = 2044.55 MB/sec

Timing buffered disk reads: 314 MB in  3.00 seconds = 104.51 MB/sec

We got 104.51 MB / sec. This is about what it should be. It's about the same result I got on my laptop.

 

Next we can mount the ext4 partition from the disk:

$ sudo mkdir /media/usbdisk

$ sudo chmod a+rw /media/usbdisk

$ sudo mount /dev/sda1 /media/usbdisk

 

user@localhost:~$ ls -ahl /media/usbdisk/

total 1.5G

drwxrwxrwx 3 root root 4.0K Dec 28 12:09 .

drwxr-xr-x 3 root root 4.0K Dec 26 14:43 ..

-rw-r--r-- 1 user user 1.5G Jul 28 18:30 archive.tar.gz

drwx------ 2 root root  16K Dec 22 15:58 lost+found

 

Performance over SSH?

$ scp user@192.168.0.116:/media/usbdisk/archive.tar.gz /tmp/

archive.tar.gz                 100% 1451MB  68.7MB/s   00:21

Pretty good.

 

5.2 NFS, Samba Share

Next, I wanted to do make the mount available over the network.

 

This can be done in multiple ways:

  • SSH - works, but is not the most convenient
  • Network File System - fist I wanted to go with this, but the device comes with a custom Linux kernel, and the nfsd kernel module required for NFS shares was not included
  • Samba - this was the next option. I went with this.

 

Setting up a Samba share is pretty straight forward.

 

First we need to install Samba using apt-get, and we need to enable it in the firewall:

$ sudo apt install samba

 

$ sudo ufw allow 'Samba'

Then we can share our /media/usbdisk folder by adding the following into the /etc/samba/smb.conf:

[usbdisk]

     path = /media/usbdisk

     comment = USB Disk

     browseable = yes

     read only = no

     writable = yes

     guest ok = yes

Next, if we restart the smbd and nmbd services:

$ sudo systemctl restart smbd

$ sudo systemctl restart nmbd

we should be able to access the share:

5.3 KODI Media Server

As a media server I chose KODI.

 

First I tried installing KODI using apt-get, which did not worked as apparently KODI does not supports running from without a display.

 

Then, after a little bit of googling, I found a headless version of KODI for aarch64 available as a Docker image:

$ mkdir /home/user/kodi-headless

 

$ docker create --name=kodi-headless -v /home/user/kodi-data:/config/.kodi -e PGID=gid -e PUID=uid -e TZ=timezone -p 8080:8080 -p 9090:9090 -p 9777:9777/udp lsioarmhf/kodi-headless

...

0e502324b7d2e1faf796a0afd62e2cb236bc37fd4a6bb8f46be81be7ed8ca227

 

$ docker start 0e502324b7d2e1faf796a0afd62e2cb236bc37fd4a6bb8f46be81be7ed8ca227

Now we should be able to access the KODI web interface at: http://frwy-1046a-ip:8080/

I works, but I did not managed yet to get the Samba mount recognized.

 

6. Conclusions and Future Plans

The FRWY-LS1046A board with the LS1046A SoC has definitely a lot of potential.

 

The SoC has four powerful ARM A72 CPU cores, which makes it suitable applications involving real-time video or data processing, machine learning and artificial intelligence.

 

The 2 x 10G, 1 x 2.5G and 4 x 1G networking interfaces, combined the powerful CPU can be used to build capable networking devices like routers, switches and firewalls.

 

The FRWY-LS1046A board itself also have some interesting features that may worth trying: PCIe M.2 ports, the mikroBUS socket, 4 GB flash storage.

 

Some thinks I plan to do with the device are:

  • testing network performance on all 4 gigabit port (1Gbps) at once
  • building a Linux kernel / distribution from scratch using the Layerscape Software Development Kit
  • building and running OpenWRT (ref: LS1012A Broadband Home Router)
  • check out the Bluetooth 5.0 support and capabilities
  • figuring out what's wrong with the Wifi performance
  • booting from the 4 GB flash

 

Hope you enjoyed this RoadTest!

Anonymous
  • Thanks for the good review!

    Just letting you know, there's a new Linux image available to download. This has Google TPU demos included. If you purchase a Google TPU (either USB or m.2), you could make it do inferencing much quicker!

  • I think, just the NVMe SSD would work, but not the SATA ones. The LS1046A SoC from the board has a SATA interface, but I'm not sure if that is routed or not to any of the M.2 ports.

  •   wrote:

     

    For a NAS, I would use the Raspberry Pi 4 too. The FRWY-LS1046A offers little advantage for its significantly higher price. One thing you we could do with the FRWY-LS1046A is to bond its four 1Gbps interfaces, into one 4Gpbs interface. This way the full speed of a HDD could be used.

     

    In terms of internal storage, there is a M.2 NVMe slot that can be used with SSD-s. The only thing it that only fits 2242 size devices, which limits our options a little bit.

    Not too bad looking at https://www.amazon.com/2242-ssd/s?k=2242+ssd

  • For a NAS, I would use the Raspberry Pi 4 too. The FRWY-LS1046A offers little advantage for its significantly higher price. One thing you we could do with the FRWY-LS1046A is to bond its four 1Gbps interfaces, into one 4Gpbs interface. This way the full speed of a HDD could be used.

     

    In terms of internal storage, there is a M.2 NVMe slot that can be used with SSD-s. The only thing it that only fits 2242 size devices, which limits our options a little bit.

  • Thanks for a thorough review . After some thoughts, a Raspberry Pi 4 would compare well as a NAS machine. Add a switch to that for a few dollars and you can have 4 ports as well. Barring price, it is a very nice looking and professional in workmanship. Does this support internal storage?

    Clem