NXP LS1088A - NIC setup

Table of Contents

Board LS1088ARDB-PB.

The default config DPL (Data Path Layout) enables only one network interface on DPAA2, which shows up as eth0. This document describe howto configure the hardware to create the network interfaces.

Add/setup DPPA2 network interfaces

The default config DPL (Data Path Layout) enables only one network interface on DPAA2, which shows up as eth0.

As described in: "4.1.7.4 Bringing up DPPA2 network interfaces".

To configure/create more interfaces from Linux the tool 'restool' can be used. The doc says it was part of the Ubuntu install, this was not the case for me, so I git-cloned and compiled it on the board:

Example output for default config:

root@localhost:~/git/restool# ls-listmac 
dprc.1/dpmac.10 
dprc.1/dpmac.9 
dprc.1/dpmac.8 
dprc.1/dpmac.7 
dprc.1/dpmac.6 
dprc.1/dpmac.5 (end point: dpni.0)
dprc.1/dpmac.4 
dprc.1/dpmac.3 
dprc.1/dpmac.2 
dprc.1/dpmac.1 

root@localhost:~/git/restool# ls-listni  
dprc.1/dpni.0 (interface: eth0, end point: dpmac.5)

Manual setup

Create interface:

ls-addni dpmac.9
Created interface: eth1 (object:dpni.1, endpoint: dpmac.9)

Info for interface:

# restool dpni info dpni.1
dpni version: 7.9
dpni id: 1
plugged state: plugged
endpoint state: 0
endpoint: dpmac.9, link is down
link status: 0 - down
mac address: ca:b3:a4:6a:c6:53
dpni_attr.options value is: 0
num_queues: 8
num_cgs: 1
num_rx_tcs: 1
num_tx_tcs: 1
mac_entries: 16
vlan_entries: 0
qos_entries: 0
fs_entries: 64
qos_key_size: 0
fs_key_size: 56
ingress_all_frames: 0
ingress_all_bytes: 0
ingress_multicast_frames: 0
ingress_multicast_bytes: 0
ingress_broadcast_frames: 0
ingress_broadcast_bytes: 0
egress_all_frames: 0
egress_all_bytes: 0
egress_multicast_frames: 0
egress_multicast_bytes: 0
egress_broadcast_frames: 0
egress_broadcast_bytes: 0
ingress_filtered_frames: 0
ingress_discarded_frames: 0
ingress_nobuffer_discards: 0
egress_discarded_frames: 0
egress_confirmed_frames: 0

DPL (Data Path Layout) file

The configuration can also be saved into a DPL file, as described in: "4.1.7.4.4 Save configuration to a custom DPL file (Optional)"

I got a new DPL file from NXP.

  • dpl-ls1088-2x10-2x1.dts - a Data Path Layout (DPL) file which describes the configuration of the hardware (this should be compiled into a dtb)

Install the compile tool software package:

  • Fedora: "dtc" (Device Tree Compiler)
  • Ubuntu: device-tree-compiler

Compiling DPL/DTS to DTB

Compiling the file:

dtc -I dts -O dtb dpl-ls1088-2x10-2x1.dts -o dpl-ls1088-2x10-2x1.dtb

File seems to work, but it give some warnings (reduced output):

$ dtc -I dts -O dtb dpl-ls1088-2x10-2x1.dts -o dpl-ls1088-2x10-2x1.dtb
dpl-ls1088-2x10-2x1.dtb: Warning (unit_address_vs_reg): /containers/dprc@1: node has a unit name, but no reg property
dpl-ls1088-2x10-2x1.dtb: Warning (unit_address_vs_reg): /containers/dprc@1/objects/obj_set@dpbp: node has a unit name, but no reg property
[...]
dpl-ls1088-2x10-2x1.dtb: Warning (unit_address_vs_reg): /objects/dpbp@0: node has a unit name, but no reg property
dpl-ls1088-2x10-2x1.dtb: Warning (unit_address_vs_reg): /objects/dpbp@1: node has a unit name, but no reg property
[...]
dpl-ls1088-2x10-2x1.dtb: Warning (unit_address_vs_reg): /connections/connection@4: node has a unit name, but no reg property

Loading DPL

The DPL file can be flashed onto the board and used to boot to Linux.

Reset board and "break" in U-Boot.

Copied these files over to board boot partition (but I don't know howto access and load these files during U-boot). The contents of the SD-card MMC device can be listed via command: ext4ls mmc 0:2.

U-Boot setup network with static IP (for dynamic-IP use cmd dhcp):

setenv ipaddr 192.168.42.10
setenv netmask 255.255.255.0
setenv serverip 192.168.42.3
saveenv

Setup on TFTP server on 192.168.42.3 in /var/lib/tftpboot.

Start service:

sudo systemctl start tftp.service

Loading via TFTP failed as wrong port was used (see "Using DPMAC1@xgmii device"):

=> tftp 0x80010000 dpl-ls1088-2x10-2x1.dtb
Using DPMAC1@xgmii device
TFTP from server 192.168.42.3; our IP address is 192.168.42.10
Filename 'dpl-ls1088-2x10-2x1.dtb'.
Load address: 0x80010000
Loading: *
ARP Retry count exceeded; starting again

The port chosen for the connection to the TFTP server dictates the value of the 'ethact' u-boot variable. For example, if using the MAC1, the ethact is DPMAC1@xgmii. If wanting to use MAC5 the port is DPMAC5@qsgmii.

Loading via TFTP:

setenv ethact DPMAC5@qsgmii
setenv serverip 192.168.42.3
tftp 0x80010000 dpl-ls1088-2x10-2x1.dtb

After loading use the NXP/freescale command 'fsl_mc' to apply the data path layout (DPL):

=> fsl_mc apply dpl 0x80010000
fsl-mc: Deploying data path layout ... SUCCESS

Saving DPL in SD-card (mmc)

You can load via tftp and apply via fsl_mc as desc above, but it only works for a single boot. After reboot/power-cycle the board the DPL setup is gone.

For storing the DPL on the SD-card/mmc media, reference Chapter "4.4 LSDK Memory Layout" to identify the location. The DPL file should be put starting with block # 0x06800 onto the SD card.

To do this, you can use the following u-boot commands. The first step is to tftp the DPL into the 0x80010000 RAM address and them write from it to the SD card.

Step-1: tftp load into memory as above:

setenv ethact DPMAC5@qsgmii
tftp 0x80010000 dpl-ls1088-2x10-2x1.dtb

Step-2: store into SD-card/mmc device. The 0x800 is the size, in blocks of 512 bytes, reserved for the DPL image in the SD memory layout:

mmc write 0x80010000 0x06800 0x800

Ubuntu network setup

Ubuntu netplan setup

From: "4.1.7.4.5 Assign IP addresses to network interfaces".

Static IP addresses can also be assigned using netplan. Create a file called config.yaml in /etc/netplan. Using atext editor, add the following lines to this config file and save it:

File: /etc/netplan/config.yaml

network:
  version: 2
  renderer: networkd
  ethernets: 
    eth0:
      addresses:
	- 192.168.42.10/24

After saving this file, run the following command to apply this netplan configuration and then reboot the board.

netplan apply

Date: 2021-09-20 Mon 18:33

Validate