RoadTest: NXP Layerscape® LS1046A Freeway Board
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
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.
$ 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
#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:
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.
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!
At work I actually have the AMD Ryzen Embedded v1605b in a reference design, I have been patiently waiting for some one to mass produce a commercial variant of the board (they are trickling out after being released by AMD 2-3 years ago). Udoo is that company, but they are based in Europe, so slowly trickling over, but looks like Mouser(sorry Avnet) has them now:
I think Udoo sells a case, but I haven't looked state side to see if I could find one.
Update: and it looks like you can buy direct from Udoo as well, I had expected shipping to be horrible, but the precheckout price was only $11 when I looked.