Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The guide will give a technical overview about the product and by the end of it you should be able to boot an operating system and begin testing your application.

Revision and Notes

Date

Owner

Revision

Notes

1.0

Table of Contents

Table of Contents
minLevel1
maxLevel7

Hardware Setup

Product Specifications

ClearFog CX LX2

HoneyComb LX2

I/Os

3 x USB 3.0
3 x USB 2.0

3 x USB 3.0
3 x USB 2.0

Networking

1 x QSFP port 100GbE
4 x SFP+ ports (10GbE each)
1 x 1GbE copper (RJ45)

4 x SFP+ ports (10GbE each)
1 x 1GbE copper (RJ45)

Processor

NXP Layerscape LX2160A 16-core Arm Cortex A72 up to 2GHz

NXP Layerscape LX2160A 16-core Arm Cortex A72 up to 2GHz

Memory & Storage

Up to 64GB DDR4 DIMM
64GB eMMC
MicroSD
4 x SATA 3.0

Up to 64GB DDR4 DIMM
64GB eMMC
MicroSD
4 x SATA 3.0

Misc.

USB to STM32 for remote management

USB to STM32 for remote management

Development and Debug interfaces

Micro USB
JTAG

Micro USB
JTAG

Power

ATX standard

ATX standard

Expansion card I/Os

1 x PCIe x8 Gen 3.0, open slot (can support x16)
1 x M.2

1 x PCIe x8 Gen 3.0, open slot (can support x16)
1 x M.2

Temperature

Commercial: 0°C to 70°C

Commercial: 0°C to 70°C

Dimensions

PCBA: 170 x 170mm

PCBA: 170 x 170mm

...

  • See list of tested LX2160A COM Tested SO-DIMM Memory modules.

  • The difference between the two versions is that HoneyComb does not have a QSFP interface

  • Serdes-1 lanes 0..3 are routed to the QSFP28 connector via TI retimers

  • Serdes-1 lanes 4..7 are directly connected to the 4xSFP+ ports

...

Before powering up the board for the first time it is recommended to select the boot media. In order to configure the boot media, please refer to the following DIP switch:

Boot media

Switch 1

Switch 2

Switch 3

Switch 4

Switch 5

SD

OFF

ON

ON

ON

X

eMMC

OFF

ON

ON

OFF

X

SPI

OFF

OFF

OFF

OFF

X


The following shows how to set the switches on the boot source selector:

...

The switches on the boot source SW1 selector must be set as follows:

Switch 1

Switch 2

Switch 3

Switch 4

Switch 5

OFF

ON

ON

ON

X


The following shows how to set the switches on the boot source selector:

...

Download a pre-built snapshot image from SolidRun Images

Those images are built with the suffix of the commit ID of organised by branch, build-date and commit id from the GitHub - SolidRun/lx2160a_build  project that you can clone and build by yourself.

Please note

The prebuilt images are configured for SO-DIMM DDR4 with speed of 3200, 2900, 2600 and 2400 Mtps (with or without ECC support),. Images that have the prefix lx2160ainfix _xspi_ are intended to be flashed into SPI and recommended for later use after being booted booting another image from micro SD

You can build your own image using the script in here – GitHub - SolidRun/lx2160a_build

...

Use the following commands for writing the image to an SD card:

Code Block
breakoutModewide
breakoutWidth760
xz -dc lx2160acex7_2000lx2160a_700_....img.xz | dd of=/dev/sdX bs=4k4M conv=fdatasyncfsync

Note: Plug a micro SD into your Linux PC, the following assumes that the micro SD is added as /dev/sdX and all it’s partitions are unmounted.

...

Please insert the micro USB into your device, then you can refer to Serial Connection for installing necessary serial connection software in Linux/Windows. Stop the

6. Install rootfs Image to eMMC (or microSD)

The default images are designed to simplify installation of rootfs to eMMC, booting only into a minimal initramfs. For access to a full featured rootfs, install the contained image to either eMMC or the very same microSD:

 Stop the u-boot count down by clicking any key –

...

To flash to eMMC run the following commands (it will wipre wipe your data on the eMMC device).

code
Code Block
breakoutMode
Note

For this to work eMMC distroboot support is required (patch is here – LSDK-19.09 u-boot support · SolidRun/lx2160a_build@75891e5  )

wide
breakoutWidth760
load mmc 0:1 0xa4000000 ubuntu-core.img
mmc dev 1
mmc write 0xa4000000 0 0xd2000

...

Alternatively flash to the same microSD card used to boot:

Code Block
breakoutModewide
breakoutWidth760
load mmc 0:1 0xa4000000 ubuntu-core.img
mmc dev 0
mmc write 0xa4000000 0 0xd2000

...

Note

Please Note:

The above commands should be run only once (in the fist boot), or when a new image is to be used.

Boot the machine by running ‘boot’ in u-boot.

...

Note

Please note

If you are willing to use a similar image in production you must change this password, or completely disable root login.

67. Final stages

The following stages need to be done in order to finalise the imaging:

  1. Run fdisk /dev/mmcblk0mmcblk1 if using SD, or run if using fdisk /dev/mmcblk1mmcblk0 eMMC.

  2. Recreate the first partition by deleting it and then creating a new partition that starts at block 131072 and extends to the end of the drive (or less depending on your needs).

  3. Write the new partition, when prompt about ‘Do you want to remove the signature?’ then answer with No.

  4. Run resize2fs /dev/mmcblk0p1mmcblk1p1 if using SD Card, or Run resize2fs /dev/mmcblk1p1mmcblk0p1 if using eMMC.

  5. In this stage the root partition should be big enough to start populating it; but first update the RTC clock.

  6. Connect the RJ45 to your network with internet access (and DHCP server); and then run dhclient .

  7. Update the RTC clock by running ntpdate pool.ntp.org and then hwclock -w.

  8. Run apt-update commands below and then populate the root filesystem as you wish.

Code Block
breakoutModewide
breakoutWidth760
apt-get update && apt-get upgrade -y

...

For some SFP modules that work on SolidRun networking hardware platforms, please refer to SFP Modules .

Using the built-in NICs

In case of SERDES configuration of 8 18 (default build) then dpmac.3 to dpmac.10 can be exposed. Those are 8x10Gbps 8x10 interfaces where first 4 dpmac.3 to dpmac.6 can be obtained by using a 40G to 4x10G splitter cable (or are exposed on QSFP connector, the remaining dpmac.7 to dpmac.10 are on the 2x2 SFP+ connector cage.

The 4 ports on QSFP can be accessed via 40G to 4x10G or 100G to 4x25G splitter cables (so called octopus cable) when connected to HoneyComb / ClearFog CX QSFP28 port and dpmac.7 to dpmac.10 are on the 2×2 SFP+ connector cage., for 25Gbps speed Linux device-tree needs to be changed.

The SFP+ ports are designed for 10G. They can still support 25G with active modules (i.e. fiber or RJ45) however with some risk of noise between connector and CPU.

Ports are activated using NXP’s “restool” package. For example – dpmac.9 is the SFP+ port on the upper row and left towards PCB edge –

Code Block
breakoutModewide
breakoutWidth760
ls-addni dpmac.9

and then a new ethX ethernet interface is attached to the kernel.

...

  1. Make sure that the kernel is booted with the following variables in the command line –

    Code Block
    default_hugepagesz=1024m hugepagesz=1024m hugepages=2 isolcpus=1-15 iommu.passthrough=1

    If using the above installation of Ubuntu then the /extlinux/extlinux.conf file should look as follows (the default installation with the addition of isolcpus=1-15 iommu.passthrough=1) –

    Code Block
      TIMEOUT 30
      DEFAULT linux
      MENU TITLE linux-lx2160a boot options
      LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
        FDT /boot/fsl-lx2160a-cex7.dtb
        APPEND console=ttyAMA0,115200 earlycon=pl011,mmio32,0x21c0000 default_hugepagesz=1024m hugepagesz=1024m hugepages=2 isolcpus=1-15 iommu.passthrough=1 pci=pcie_bus_perf root=PARTUUID=30303030-01 rw rootwait
  2. From build/dpdk directory under the lx2160a_build project, search for dynamic_dpl.sh and testpmd files and copy them over to the LX2160A Ubuntu root filesystem

  3. Run the following that will generate 10Gbps traffic on dpmac.10 using only a single core. Can be used to generate traffic on dpmac.1 and other interfaces –

Code Block
breakoutModewide
breakoutWidth760
dynamic_dpl.sh dpmac.10
export DPRC=dprc.2
testpmd -c 0x3 -n 1 -- --txd=1500 --txpkts=1500 --tx-first --auto-start --forward-mode=txonly --stats-period=10

...

An alternative way to run testpmd in interactive mode is as follows –

Code Block
breakoutModewide
breakoutWidth760
dynamic_dpl.sh dpmac.10
export DPRC=dprc.2
testpmd -c 0x3 -n 1 -- --txd=1500 -i
set fwd txonly
set txpkts 1500
show port info 0
show config txpkts
start

...

Gentoo is a free and open-source distribution with a rolling-release model.
The bootloader and kernel provided are recent enough to install Gentoo from the eMMC Ubuntu to the NVMe or SATA device.

Code Block
breakoutModewide
breakoutWidth760
 apt install btrfs-progs
 mkfs.btrfs /dev/nvme0n1p1
 mount /dev/nvme0n1p1 /mnt
 cd /mnt
# change 20200609 with what's available here http://distfiles.gentoo.org/experimental/arm64/
 wget http://distfiles.gentoo.org/experimental/arm64/stage3-arm64-20200609.tar.bz2
 mount --rbind /dev dev
 mount --make-rslave dev
 mount -t proc /proc proc
 mount --rbind /sys sys
 mount --make-rslave sys
 mount --rbind /tmp tmp
 cp /etc/resolv.conf etc
 chroot . /bin/bash
 env-update && . /etc/profile
 emerge-webrsync
 emerge superadduser openssh vim
# Set the root password
 passwd 
# enable root login
 vim /etc/ssh/sshd_config 
# or create your user
 superadduser your_user
 ln -s /etc/init.d/net.{lo,eth0}
 rc-update add sshd default
 reboot

...