NXP Layerscape® LS1046A Freeway Board - Review

Table of contents

RoadTest: NXP Layerscape® LS1046A Freeway Board

Author: bslettela

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?: UDOO Bolt V8: AMD Ryzen Embedded V1605b Raspberry Pi 4

What were the biggest problems encountered?: I couldn't inexpensively add large high speed storage to the LS1046 through the m.2 expansion sites (see more detail in the full review) USB to serial device should be powered from PC instead of from FRWY

Detailed Review:

Having used multiple generations of Freescale/NXP QorIQ processors I can say that NXPs commitment to software development is starting to pay off.  With Power PC development on the Freescale MPC7448 and MPC8641D processors embedded programs relied heavily on industry third party vendors to unlock development on these processors.  Around the time of the QorIQ P-series Freescale introduced the Freescale SDK which utilizes the Yocto project to produce U-boot bootloaders, Linux kernels and root file systems. This has evolved and improved to the NXP LayerScape development kit (LSDK) which now uses Flexbuilder (and a combination of bitbake and other tools) to produce images that are compatible with Ubuntu, Debian, CentOS, Android or just stripped down Linux via buildroot.  The advantage of this build system is that you can get a quick prototyping/development environment up and running. Using flexbuild lsdk 19.09 update 221019 I produced an Ubuntu build and with a simple netplan config I easily enabled DHCP on an interface. From this point it was as simple as using the apt package manager to install any needed software to enable testing or any prototyping.

 

Flex builder Documentation

flexbuild_lsdk1909_update_221019.tgz

 

$ tar xvzf flexbuild_<version>.tgz

$ cd flexbuild

$ source setup.env

$ flex-builder -c atf -m ls1046afrwy -b sd

$ flex-builder -c linux -a arm64

$ flex-builder -i mkfw -m ls1046afrwy -b sd

$ flex-builder -i mkbootpartition -a arm64

$ flex-builder -c apps

$ flex-builder -i mkrfs -a arm64

$ cd build/images

#Insert SD card into development Linux machine and replace sdx with the device name

$ flex-installer -b bootpartition_LS_arm64_lts_4.19_201912290920.tgz -r rootfs_lsdk1909_LS_arm64_main.tgz -f firmware_ls1046afrwy_uboot_sdboot.img -d /dev/sdx

 

With this SD card I was able to clone, build and run the coremark benchmark.

 

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

$ cd coremark/

#this runs a single core test

$ make

#this runs multi threaded
$ make XCFLAGS="-DMULTITHREAD=4 -DUSE_FORK=1" REBUILD="1"


Running the same bench mark on the Raspberry Pi 4 and on a AMD Ryzen v1605b development board I got the following results:

 

LS1046A

RPi4

v1605b

compiler

GCC7.4.0

GCC9.2.1 20191008

GCC8.3.0

Single Core

8860

8358

25819

Multi core

35997

32604

97264

Iter/Sec/Mhz

5.5375

5.572

12.9095

 

Beyond running some benchmarks for my professional curiosity, my plans for this evaluation board were to make a NAS and potentially a Plex media server.  After a lot of digging I couldn’t find a way to inexpensively convert the M.2 E-key slots to an M.2 M-key to support large NVMe drives. The two ways I could find were to convert from m.2 E-key to Mini-PCIe and then use a mini-PCIe SATA controller; or to use USB 3.0 external hard drive enclosures.  Both of these are doable, but also drive cost and also might affect transfer speeds depending on how many drives are attached. If I were to just use USB 3.0 drives there is less need to use the LS1046A as a Raspberry Pi 4 has the same processing cores and just as much USB 3.0 connectivity. From a Plex media server perspective neither the LS1046A or the Raspberry Pi4 are superb choices if transcoding media is required.  The Raspberry Pi 4 has decode capability, but the Linux drivers and the PMS currently do all transcoding in software, so this leaves the Pi4 even with the LS1046A, but this also means that neither is fantastic media server, as 250% to 300% of the processing throughput is consumed across the cores while they are transcoding one Full HD stream. 

 

For a computing platform the Raspberry Pi 4 is very comparable from a maker perspective as it supports SPI, I2C, GPIO, but the LS1046A obviously lacks the integrated media interfaces (video and audio)  The trade offs being that you get more expandability for networking and high speed I/O (PCIe) in the form of m.2 E sites.

 

The UDOO Bolt V8 (w the AMD Ryzen Embedded v1605b processro), though having a higher power draw, it brings some of the high speed I/O of the LS1046A and the media interfaces of the Raspberry Pi4, but also brings x86 instructions higher end GPU, and media encoding/decoding. This board is also more expensive considering it doesn't come with RAM, a case, or a power supply.

 

Anonymous