Updating DPAA2 configuration into a SPI Flex Nor (add network interface) on NXP LX2160A-RDB-B

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Updating DPAA2 configuration into a SPI Flex Nor (add network interface) on NXP LX2160A-RDB-B

1,532 Views
Thierry_LOUSSOT
Contributor II

Hi for all !!!

 

Sorry as 'long' explanations in 1 and 2 sections, but gives full example with restool ... 

the 3 section concern my question.

__________________________________________________________________

Introduction

__________________________________________________________________

 

Working on the board 'NXP LX2160A-RDB-B'

and after building a VxWorks OS (vxworks 21.12 Cert Edition Helix)


I have updated the UBOOT parameters to load and run this OS instead of the tinyLinux OS already built and saved
into a 'SPI Flex Nor Flash' Soc on the board.

Before loading my OS Vxworks, a call under UBOOT 'fsl_mc apply DPL 0x20d00000' ss done, so the DPAA2 configuration has been saved at this address on the 'SPI Flex Nor Flash'.

The DPAA2 driver is then loaded after booting from the components drivers I have previously included into my VIP (building a VxWorks VIP gives the OS binary)
INCLUDE_VXB_FSL_DPIO_DRV, INCLUDE_VXB_FSL_DPNI_DRV, ..., INCLUDE_VXB_FSL_MC_DRV

Results of this :
Under VxWorks, I have succeeded to use the 1G MAC17 port and only this interface and not any other ...


That's my issue : how getting to the others network interface (by updating DPL)


As, I suscpect that the issue is around the DPAA2 configuration which is not fully done
to use all the Ethernet Port available on this board.

 

Here is my approach :

1./- check the current configuration showing that not all the interface are setting under DPAA2 configuration
2./- update the configuration to consider new interface into DPL (add dpni, dpmac where already defined)
3./- my questions are about dpmac not defined into DPL and how to finalise the step
fsl_mc apply DPL <adress>/<file>

______________________________________________________________________________
1./ Analysis of the configuration
______________________________________________________________________________


After booting on my tinyLinux (root), on my board

I use restool build-in wrappers:

root@TinyLinux:~# ls-listni
dprc.1/dpni.1 (interface: eth0, end point: dpmac.2)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.17)

root@TinyLinux:~# ls-listmac
dprc.1/dpmac.18
dprc.1/dpmac.17 (end point: dpni.0)
dprc.1/dpmac.6
dprc.1/dpmac.5
dprc.1/dpmac.4
dprc.1/dpmac.3
dprc.1/dpmac.2 (end point: dpni.1)
root@TinyLinux:~#

and always with restool command, I can many nodes defined into this 'bus'

about dprc:
_________________

root@TinyLinux:~# restool dprc list
dprc.1

root@TinyLinux:~# restool dprc show dprc.1
dprc.1 contains 96 objects:
object label plugged-state
dpni.1 plugged
dpni.0 plugged
dpbp.1 plugged
dpbp.0 plugged
dpmac.18 plugged
dpmac.17 plugged
dpmac.6 plugged
dpmac.5 plugged
dpmac.4 plugged
dpmac.3 plugged
dpmac.2 plugged
dpseci.0 plugged
dpmcp.35 plugged
dpmcp.34 plugged
dpmcp.33 plugged
dpmcp.32 plugged
dpmcp.31 plugged
dpmcp.30 plugged
dpmcp.29 plugged
dpmcp.28 plugged
dpmcp.27 plugged
dpmcp.26 plugged
dpmcp.25 plugged
dpmcp.24 plugged
dpmcp.23 plugged
dpmcp.22 plugged
dpmcp.21 plugged
dpmcp.20 plugged
dpmcp.19 plugged
dpmcp.18 plugged
dpmcp.17 plugged
dpmcp.16 plugged
dpmcp.15 plugged
dpmcp.14 plugged
dpmcp.13 plugged
dpmcp.12 plugged
dpmcp.11 plugged
dpmcp.10 plugged
dpmcp.9 plugged
dpmcp.8 plugged
dpmcp.7 plugged
dpmcp.6 plugged
dpmcp.5 plugged
dpmcp.4 plugged
dpmcp.3 plugged
dpmcp.2 plugged
dpmcp.1 plugged
dprtc.0 plugged
dpio.15 plugged
dpio.14 plugged
dpio.13 plugged
dpio.12 plugged
dpio.11 plugged
dpio.10 plugged
dpio.9 plugged
dpio.8 plugged
dpio.7 plugged
dpio.6 plugged
dpio.5 plugged
dpio.4 plugged
dpio.3 plugged
dpio.2 plugged
dpio.1 plugged
dpio.0 plugged
dpcon.31 plugged
dpcon.30 plugged
dpcon.29 plugged
dpcon.28 plugged
dpcon.27 plugged
dpcon.26 plugged
dpcon.25 plugged
dpcon.24 plugged
dpcon.23 plugged
dpcon.22 plugged
dpcon.21 plugged
dpcon.20 plugged
dpcon.19 plugged
dpcon.18 plugged
dpcon.17 plugged
dpcon.16 plugged
dpcon.15 plugged
dpcon.14 plugged
dpcon.13 plugged
dpcon.12 plugged
dpcon.11 plugged
dpcon.10 plugged
dpcon.9 plugged
dpcon.8 plugged
dpcon.7 plugged
dpcon.6 plugged
dpcon.5 plugged
dpcon.4 plugged
dpcon.3 plugged
dpcon.2 plugged
dpcon.1 plugged
dpcon.0 plugged
root@TinyLinux:~#

root@TinyLinux:~# restool dprc info dprc.1
container id: 1
icid: 23
portal id: 0
dprc options: 0x4f
DPRC_CFG_OPT_SPAWN_ALLOWED
DPRC_CFG_OPT_ALLOC_ALLOWED
DPRC_CFG_OPT_OBJ_CREATE_ALLOWED
DPRC_CFG_OPT_TOPOLOGY_CHANGES_ALLOWED
DPRC_CFG_OPT_IRQ_CFG_ALLOWED
root@TinyLinux:~#

about dpni:
_________________

root@TinyLinux:~# restool dpni info dpni.1
dpni version: 7.16
dpni id: 1
plugged state: plugged
endpoint state: 0
endpoint: dpmac.2, link is down
link status: 0 - down
mac address: 00:04:9f:07:59:54
dpni_attr.options value is: 0
num_queues: 16
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
root@TinyLinux:~#

root@TinyLinux:~# restool dpni info dpni.0
dpni version: 7.16
dpni id: 0
plugged state: plugged
endpoint state: 0
endpoint: dpmac.17, link is down
link status: 0 - down
mac address: 00:04:9f:07:59:54
dpni_attr.options value is: 0
num_queues: 16
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
root@TinyLinux:~#

about dpmac:
_________________

root@TinyLinux:~# restool dpmac info dpmac.17
dpmac version: 4.7
dpmac object id/portal id: 17
plugged state: plugged
endpoint state: 0
endpoint: dpni.0, link is down
DPMAC link type: DPMAC_LINK_TYPE_PHY
DPMAC ethernet interface: DPMAC_ETH_IF_RGMII
MAC address: 00:04:9f:07:59:54
maximum supported rate 1000 Mbps
Counters:
rx all frames: 0
rx frames ok: 0
rx frame errors: 0
rx frame discards: 0
rx u-cast: 0
rx b-cast: 0
rx m-cast: 0
rx 64 bytes: 0
rx 65-127 bytes: 0
rx 128-255 bytes: 0
rx 256-511 bytes: 0
rx 512-1023 bytes: 0
rx 1024-1518 bytes: 0
rx 1519-max bytes: 0
rx frags: 0
rx jabber: 0
rx align errors: 0
rx oversized: 0
rx pause: 0
rx bytes: 0
tx frames ok: 0
tx u-cast: 0
tx m-cast: 0
tx b-cast: 0
tx frame errors: 0
tx undersized: 0
tx b-pause: 0
tx bytes: 0
root@TinyLinux:~#


root@TinyLinux:~# restool dpmac info dpmac.2
dpmac version: 4.7
dpmac object id/portal id: 2
plugged state: plugged
endpoint state: 0
endpoint: dpni.1, link is down
DPMAC link type: DPMAC_LINK_TYPE_FIXED
DPMAC ethernet interface: DPMAC_ETH_IF_XFI
MAC address: 00:04:9f:07:59:54
maximum supported rate 40000 Mbps
Counters:
rx all frames: 0
rx frames ok: 0
rx frame errors: 0
rx frame discards: 0
rx u-cast: 0
rx b-cast: 0
rx m-cast: 0
rx 64 bytes: 0
rx 65-127 bytes: 0
rx 128-255 bytes: 0
rx 256-511 bytes: 0
rx 512-1023 bytes: 0
rx 1024-1518 bytes: 0
rx 1519-max bytes: 0
rx frags: 0
rx jabber: 0
rx align errors: 0
rx oversized: 0
rx pause: 0
rx bytes: 0
tx frames ok: 0
tx u-cast: 0
tx m-cast: 0
tx b-cast: 0
tx frame errors: 0
tx undersized: 0
tx b-pause: 0
tx bytes: 0
root@TinyLinux:~#


Under this configuration : I remark that dpmac.2 and dpmac.17 have the same MAC Address ????
not correct, but as a remainder : 1G MAC17 works fine !, so I let this point now


For further analysis, I can dump this original configuration DPL into a file

restool dprc generate-dpl > adnc2_poc_arm_update.dts

______________________________________________________________________________
2./ Analysis of what I want and update configuration
______________________________________________________________________________

So As I wish to use my physical Ethernet Port ('10G MAC3': dpmac.3 and '10G MAC4': dpmac.4) into my OS (VxWorks)

about dpmac:
_________________

root@TinyLinux:~# restool dpmac info dpmac.3
dpmac version: 4.7
dpmac object id/portal id: 3
plugged state: plugged
endpoint state: -1
endpoint: No object associated
DPMAC link type: DPMAC_LINK_TYPE_PHY
DPMAC ethernet interface: DPMAC_ETH_IF_USXGMII
MAC address: 00:04:9f:07:59:50
maximum supported rate 10000 Mbps
Counters:
rx all frames: 0
rx frames ok: 0
rx frame errors: 0
rx frame discards: 0
rx u-cast: 0
rx b-cast: 0
rx m-cast: 0
rx 64 bytes: 0
rx 65-127 bytes: 0
rx 128-255 bytes: 0
rx 256-511 bytes: 0
rx 512-1023 bytes: 0
rx 1024-1518 bytes: 0
rx 1519-max bytes: 0
rx frags: 0
rx jabber: 0
rx align errors: 0
rx oversized: 0
rx pause: 0
rx bytes: 0
tx frames ok: 0
tx u-cast: 0
tx m-cast: 0
tx b-cast: 0
tx frame errors: 0
tx undersized: 0
tx b-pause: 0
tx bytes: 0
root@TinyLinux:~# restool dpmac info dpmac.4
dpmac version: 4.7
dpmac object id/portal id: 4
plugged state: plugged
endpoint state: -1
endpoint: No object associated
DPMAC link type: DPMAC_LINK_TYPE_PHY
DPMAC ethernet interface: DPMAC_ETH_IF_USXGMII
MAC address: 00:04:9f:07:59:51
maximum supported rate 10000 Mbps
Counters:
rx all frames: 0
rx frames ok: 0
rx frame errors: 0
rx frame discards: 0
rx u-cast: 0
rx b-cast: 0
rx m-cast: 0
rx 64 bytes: 0
rx 65-127 bytes: 0
rx 128-255 bytes: 0
rx 256-511 bytes: 0
rx 512-1023 bytes: 0
rx 1024-1518 bytes: 0
rx 1519-max bytes: 0
rx frags: 0
rx jabber: 0
rx align errors: 0
rx oversized: 0
rx pause: 0
rx bytes: 0
tx frames ok: 0
tx u-cast: 0
tx m-cast: 0
tx b-cast: 0
tx frame errors: 0
tx undersized: 0
tx b-pause: 0
tx bytes: 0


about dpni: I need to create new one for dpmac.3 and dpmac.4 !
_________________

root@TinyLinux:~# restool dpni info dpni.2
dpni.2 does not exist
root@TinyLinux:~# restool dpni info dpni.3
dpni.3 does not exist
root@TinyLinux:~#

Then I create them from

root@TinyLinux:~# ls-addni dpmac.3
[11712.558997] fsl_mc_allocator dpbp.2: Adding to iommu group 11
[11712.565894] fsl_mc_allocator dpmcp.36: Adding to iommu group 11
[11712.571997] fsl_mc_allocator dpcon.47: Adding to iommu group 11
[11712.578010] fsl_mc_allocator dpcon.46: Adding to iommu group 11
[11712.584013] fsl_mc_allocator dpcon.45: Adding to iommu group 11
[11712.590012] fsl_mc_allocator dpcon.44: Adding to iommu group 11
[11712.596007] fsl_mc_allocator dpcon.43: Adding to iommu group 11
[11712.602003] fsl_mc_allocator dpcon.42: Adding to iommu group 11
[11712.608003] fsl_mc_allocator dpcon.41: Adding to iommu group 11
[11712.613996] fsl_mc_allocator dpcon.40: Adding to iommu group 11
[11712.619991] fsl_mc_allocator dpcon.39: Adding to iommu group 11
[11712.625993] fsl_mc_allocator dpcon.38: Adding to iommu group 11
[11712.631991] fsl_mc_allocator dpcon.37: Adding to iommu group 11
[11712.637985] fsl_mc_allocator dpcon.36: Adding to iommu group 11
[11712.643978] fsl_mc_allocator dpcon.35: Adding to iommu group 11
[11712.649969] fsl_mc_allocator dpcon.34: Adding to iommu group 11
[11712.655963] fsl_mc_allocator dpcon.33: Adding to iommu group 11
[11712.661954] fsl_mc_allocator dpcon.32: Adding to iommu group 11
[11712.668190] fsl_dpaa2_eth dpni.2: Adding to iommu group 11
[11712.820222] fsl_dpaa2_eth dpni.2: Probed interface eth2
Created interface: eth2 (object:dpni.2, endpoint: dpmac.3)
root@TinyLinux:~# ls-addni dpmac.4
[11726.184244] fsl_mc_allocator dpbp.3: Adding to iommu group 11
[11726.191124] fsl_mc_allocator dpmcp.37: Adding to iommu group 11
[11726.197242] fsl_mc_allocator dpcon.63: Adding to iommu group 11
[11726.203241] fsl_mc_allocator dpcon.62: Adding to iommu group 11
[11726.209237] fsl_mc_allocator dpcon.61: Adding to iommu group 11
[11726.215233] fsl_mc_allocator dpcon.60: Adding to iommu group 11
[11726.221229] fsl_mc_allocator dpcon.59: Adding to iommu group 11
[11726.227226] fsl_mc_allocator dpcon.58: Adding to iommu group 11
[11726.233220] fsl_mc_allocator dpcon.57: Adding to iommu group 11
[11726.239225] fsl_mc_allocator dpcon.56: Adding to iommu group 11
[11726.245222] fsl_mc_allocator dpcon.55: Adding to iommu group 11
[11726.251217] fsl_mc_allocator dpcon.54: Adding to iommu group 11
[11726.257212] fsl_mc_allocator dpcon.53: Adding to iommu group 11
[11726.263207] fsl_mc_allocator dpcon.52: Adding to iommu group 11
[11726.269201] fsl_mc_allocator dpcon.51: Adding to iommu group 11
[11726.275196] fsl_mc_allocator dpcon.50: Adding to iommu group 11
[11726.281189] fsl_mc_allocator dpcon.49: Adding to iommu group 11
[11726.287179] fsl_mc_allocator dpcon.48: Adding to iommu group 11
[11726.293651] fsl_dpaa2_eth dpni.3: Adding to iommu group 11
[11726.448266] fsl_dpaa2_eth dpni.3: Probed interface eth3
Created interface: eth3 (object:dpni.3, endpoint: dpmac.4)


I can check the results:

root@TinyLinux:~# ls-listni
dprc.1/dpni.3 (interface: eth3, end point: dpmac.4)
dprc.1/dpni.2 (interface: eth2, end point: dpmac.3)
dprc.1/dpni.1 (interface: eth0, end point: dpmac.2)
dprc.1/dpni.0 (interface: eth1, end point: dpmac.17)
root@TinyLinux:~#

I can then dump the DPL to the output

root@TinyLinux:~# restool dprc generate-dpl
/dts-v1/;
/ {
dpl-version = <10>;
/*****************************************************************
* Containers
*****************************************************************/
containers {

dprc@1 {
compatible = "fsl,dprc";
parent = "none";
options = "DPRC_CFG_OPT_SPAWN_ALLOWED", "DPRC_CFG_OPT_ALLOC_ALLOWED", "DPRC_CFG_OPT_OBJ_CREATE_ALLOWED", "DPRC_CFG_OPT_TOPOLOGY_CHANGES_ALLOWED", "DPRC_CFG_OPT_IRQ_CFG_ALLOWED";

objects {

/* -------------- DPBPs --------------*/
obj_set@dpbp {
type = "dpbp";
ids = <0 1 2 3 >;
};

/* -------------- DPCONs --------------*/
obj_set@dpcon {
type = "dpcon";
ids = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 >;
};

/* -------------- DPIOs --------------*/
obj_set@dpio {
type = "dpio";
ids = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 >;
};

/* -------------- DPMACs --------------*/
obj_set@dpmac {
type = "dpmac";
ids = <2 3 4 5 6 17 18 >;
};

/* -------------- DPMCPs --------------*/
obj_set@dpmcp {
type = "dpmcp";
ids = <1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 >;
};

/* -------------- DPNIs --------------*/
obj_set@dpni {
type = "dpni";
ids = <0 1 2 3 >;
};

/* -------------- DPRTCs --------------*/
obj_set@dprtc {
type = "dprtc";
ids = <0 >;
};

/* -------------- DPSECIs --------------*/
obj_set@dpseci {
type = "dpseci";
ids = <0 >;
};
};
};
};

/*****************************************************************
* Objects
*****************************************************************/
objects {

dpbp@0 {
compatible = "fsl,dpbp";
};

dpbp@1 {
compatible = "fsl,dpbp";
};

dpbp@2 {
compatible = "fsl,dpbp";
};

dpbp@3 {
compatible = "fsl,dpbp";
};

dpcon@0 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@1 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@2 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@3 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@4 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@5 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@6 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@7 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@8 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@9 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@10 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@11 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@12 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@13 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@14 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@15 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@16 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@17 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@18 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@19 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@20 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@21 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@22 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@23 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@24 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@25 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@26 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@27 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@28 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@29 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@30 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@31 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@32 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@33 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@34 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@35 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@36 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@37 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@38 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@39 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@40 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@41 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@42 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@43 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@44 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@45 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@46 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@47 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@48 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@49 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@50 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@51 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@52 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@53 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@54 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@55 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@56 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@57 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@58 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@59 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@60 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@61 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@62 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpcon@63 {
compatible = "fsl,dpcon";
num_priorities = <0x2>;
};

dpio@0 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@1 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@2 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@3 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@4 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@5 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@6 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@7 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@8 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@9 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@10 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@11 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@12 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@13 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@14 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpio@15 {
compatible = "fsl,dpio";
channel_mode = "DPIO_LOCAL_CHANNEL";
num_priorities = <0x8>;
};

dpmac@2 {
compatible = "fsl,dpmac";
};

dpmac@3 {
compatible = "fsl,dpmac";
};

dpmac@4 {
compatible = "fsl,dpmac";
};

dpmac@5 {
compatible = "fsl,dpmac";
};

dpmac@6 {
compatible = "fsl,dpmac";
};

dpmac@17 {
compatible = "fsl,dpmac";
};

dpmac@18 {
compatible = "fsl,dpmac";
};

dpmcp@1 {
compatible = "fsl,dpmcp";
};

dpmcp@2 {
compatible = "fsl,dpmcp";
};

dpmcp@3 {
compatible = "fsl,dpmcp";
};

dpmcp@4 {
compatible = "fsl,dpmcp";
};

dpmcp@5 {
compatible = "fsl,dpmcp";
};

dpmcp@6 {
compatible = "fsl,dpmcp";
};

dpmcp@7 {
compatible = "fsl,dpmcp";
};

dpmcp@8 {
compatible = "fsl,dpmcp";
};

dpmcp@9 {
compatible = "fsl,dpmcp";
};

dpmcp@10 {
compatible = "fsl,dpmcp";
};

dpmcp@11 {
compatible = "fsl,dpmcp";
};

dpmcp@12 {
compatible = "fsl,dpmcp";
};

dpmcp@13 {
compatible = "fsl,dpmcp";
};

dpmcp@14 {
compatible = "fsl,dpmcp";
};

dpmcp@15 {
compatible = "fsl,dpmcp";
};

dpmcp@16 {
compatible = "fsl,dpmcp";
};

dpmcp@17 {
compatible = "fsl,dpmcp";
};

dpmcp@18 {
compatible = "fsl,dpmcp";
};

dpmcp@19 {
compatible = "fsl,dpmcp";
};

dpmcp@20 {
compatible = "fsl,dpmcp";
};

dpmcp@21 {
compatible = "fsl,dpmcp";
};

dpmcp@22 {
compatible = "fsl,dpmcp";
};

dpmcp@23 {
compatible = "fsl,dpmcp";
};

dpmcp@24 {
compatible = "fsl,dpmcp";
};

dpmcp@25 {
compatible = "fsl,dpmcp";
};

dpmcp@26 {
compatible = "fsl,dpmcp";
};

dpmcp@27 {
compatible = "fsl,dpmcp";
};

dpmcp@28 {
compatible = "fsl,dpmcp";
};

dpmcp@29 {
compatible = "fsl,dpmcp";
};

dpmcp@30 {
compatible = "fsl,dpmcp";
};

dpmcp@31 {
compatible = "fsl,dpmcp";
};

dpmcp@32 {
compatible = "fsl,dpmcp";
};

dpmcp@33 {
compatible = "fsl,dpmcp";
};

dpmcp@34 {
compatible = "fsl,dpmcp";
};

dpmcp@35 {
compatible = "fsl,dpmcp";
};

dpmcp@36 {
compatible = "fsl,dpmcp";
};

dpmcp@37 {
compatible = "fsl,dpmcp";
};

dpni@0 {
compatible = "fsl,dpni";
type = "DPNI_TYPE_NIC";
num_queues = <16>;
num_tcs = <1>;
num_cgs = <1>;
mac_filter_entries = <16>;
vlan_filter_entries = <0>;
fs_entries = <64>;
qos_entries = <0>;
dist_key_size = <56>;
};

dpni@1 {
compatible = "fsl,dpni";
type = "DPNI_TYPE_NIC";
num_queues = <16>;
num_tcs = <1>;
num_cgs = <1>;
mac_filter_entries = <16>;
vlan_filter_entries = <0>;
fs_entries = <64>;
qos_entries = <0>;
dist_key_size = <56>;
};

dpni@2 {
compatible = "fsl,dpni";
type = "DPNI_TYPE_NIC";
num_queues = <16>;
num_tcs = <1>;
num_cgs = <1>;
mac_filter_entries = <16>;
vlan_filter_entries = <0>;
fs_entries = <64>;
qos_entries = <0>;
dist_key_size = <56>;
};

dpni@3 {
compatible = "fsl,dpni";
type = "DPNI_TYPE_NIC";
num_queues = <16>;
num_tcs = <1>;
num_cgs = <1>;
mac_filter_entries = <16>;
vlan_filter_entries = <0>;
fs_entries = <64>;
qos_entries = <0>;
dist_key_size = <56>;
};

dprtc@0 {
compatible = "fsl,dprtc";
};

dpseci@0 {
compatible = "fsl,dpseci";
priorities = <1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>;
};
};

/*****************************************************************
* Connections
*****************************************************************/
connections {

connection@1{
endpoint1 = "dpni@0";
endpoint2 = "dpmac@17";
};

connection@2{
endpoint1 = "dpni@1";
endpoint2 = "dpmac@2";
};

connection@3{
endpoint1 = "dpni@2";
endpoint2 = "dpmac@3";
};

connection@4{
endpoint1 = "dpni@3";
endpoint2 = "dpmac@4";
};
};
};
root@TinyLinux:~#


I can dump the DPL into a file

restool dprc generate-dpl > adnc2_poc_arm_update.dts


I can configure into my tinyLinux an interface (as original configuration is OK for one interface)

root@TinyLinux:~# ifconfig eth1 10.24.10.187 netmask 255.255.255.0 up
root@TinyLinux:~# [14074.447438] dpaa2_mac dpmac.17 (unnamed net_device) (uninitialized): Link is Up - 100Mbps/Full - flow control off
[14074.467789] fsl_dpaa2_eth dpni.0 eth1: Link Event: state up
[14074.473438] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

I can ping my host

root@TinyLinux:~# ping 10.24.10.161
PING 10.24.10.161 (10.24.10.161): 56 data bytes
64 bytes from 10.24.10.161: seq=0 ttl=64 time=0.513 ms
64 bytes from 10.24.10.161: seq=1 ttl=64 time=0.383 ms
64 bytes from 10.24.10.161: seq=2 ttl=64 time=0.518 ms
64 bytes from 10.24.10.161: seq=3 ttl=64 time=0.409 ms

So I can send my 'original' and 'update' configuration onto an host (linux)

scp adnc2_poc_arm_orig.dts tloussot@10.24.100.161:/home/users/tloussot/poc_arm/adnc2_poc_arm_orig.dts
scp adnc2_poc_arm_update.dts tloussot@10.24.100.161:/home/users/tloussot/poc_arm/adnc2_poc_arm_update.dts

 

______________________________________________________________________________
3./ my final questions :
______________________________________________________________________________


1./ I am suprise to find not any information about MAC adress into DPL ...
somewhere I am waiting the full configuration of the DPAA2 into the DPL
I have certainly miss something ...

After reviewing this first question, it is about the final step describe below

2./ I should have finally to call, from UBOOT

fsl_mc apply DPL <adress>

it is also possible to specify a <file> instead of the <adress>


Then from an Unix machine, If I have a dts, I should build (to get a .dtb)

with the command 'dtc -I dts -O dtb <file.dts> <file.dtb>'

-> someone can give me information how to get the dtc command ?

After I am a little bit alone to continue ...

need to flash the SPI flex ? how ?

I have two bank into SPI flex (so could work on the 2nd bank to do my test
to not crash my original configuration ...)


Thanks for any help

and do not hesitate if my analysis is wrong

I am discovering the DPAA2 concept, 2 weeks ago ...

Best regards

Thierry

Tags (3)
0 Kudos
Reply
2 Replies

1,487 Views
Thierry_LOUSSOT
Contributor II


Hi for All

Yes the solution is well around DPL configuration


considering under UBOOT, board configuration:
00:04:9f:07:59:4f DPMAC2@xlaui4
00:04:9f:07:59:50 DPMAC3@xgmii
00:04:9f:07:59:51 DPMAC4@xgmii
00:04:9f:07:59:54 DPMAC17@rgmii-id


From:
- defining a dynamic DPL configuration under TinyLinux(defining only a DPNI on DPMAC17): a TinyLinux is launched after count-down on UBOOT, as defined also on the SPI Flex NOr
- getting the DPL configuration file,
- sending this file to a Linux Host to build DPL file to get a DTD file
- flashing SPI Flex NOR on alternate bank from the DTD file
- resetting board to target alternate bank
- launch a TFTP boot on vxworks, with FSL_MC driver included into VIP : I get well a success to use the DPMAC17

But I get some issue to use any another Ethernet PORT than the DPMAC17 ????, then not any possibility for me to define more than 2 Ethernet Ports into
my Partition Operating System under Vxworks (21.12 Cert Edition - from Hypervisor)


Before checking this point under VxWorks, lets go back to TinyLinux (as launched after count-down on UBOOT, as defined also on the SPI Flex NOr) : under TinyLinux I would like to use more than 2 Ethernet Port and I get failure ... to do this : only one Ethernet Port is working ???? 

but some link detection is well done on the two Ethernet Ports : strange ....

 

1./ Clean my FSL_MC configuration

echo dpni.0 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind
echo dpni.1 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind
echo dpni.2 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind
echo dpni.3 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind

restool dpni destroy dpni.0
restool dpni destroy dpni.1
restool dpni destroy dpni.2
restool dpni destroy dpni.3

2./ configuration of MAC3 (1Gb) and also MAC4 (1Gb)

root@TinyLinux:~# ls-listni
root@TinyLinux:~# ls-addni dpmac.3
[ 165.307936] fsl_mc_allocator dpbp.4: Adding to iommu group 11
[ 165.314817] fsl_mc_allocator dpmcp.38: Adding to iommu group 11
[ 165.320942] fsl_mc_allocator dpcon.79: Adding to iommu group 11
[ 165.326937] fsl_mc_allocator dpcon.78: Adding to iommu group 11
[ 165.332932] fsl_mc_allocator dpcon.77: Adding to iommu group 11
[ 165.338922] fsl_mc_allocator dpcon.76: Adding to iommu group 11
[ 165.344926] fsl_mc_allocator dpcon.75: Adding to iommu group 11
[ 165.350920] fsl_mc_allocator dpcon.74: Adding to iommu group 11
[ 165.356918] fsl_mc_allocator dpcon.73: Adding to iommu group 11
[ 165.362912] fsl_mc_allocator dpcon.72: Adding to iommu group 11
[ 165.368907] fsl_mc_allocator dpcon.71: Adding to iommu group 11
[ 165.374901] fsl_mc_allocator dpcon.70: Adding to iommu group 11
[ 165.380891] fsl_mc_allocator dpcon.69: Adding to iommu group 11
[ 165.386883] fsl_mc_allocator dpcon.68: Adding to iommu group 11
[ 165.392872] fsl_mc_allocator dpcon.67: Adding to iommu group 11
[ 165.398863] fsl_mc_allocator dpcon.66: Adding to iommu group 11
[ 165.404855] fsl_mc_allocator dpcon.65: Adding to iommu group 11
[ 165.410845] fsl_mc_allocator dpcon.64: Adding to iommu group 11
[ 165.417487] fsl_dpaa2_eth dpni.0: Adding to iommu group 11
[ 165.576502] fsl_dpaa2_eth dpni.0: Probed interface eth0
Created interface: eth0 (object:dpni.0, endpoint: dpmac.3)
root@TinyLinux:~# ifconfig eth0 10.24.10.184 netmask 255.255.255.0 up

As soon as wire is plugged into the MAC3 Ethernet Port: detection is well done !

root@TinyLinux:~# [ 179.951677] dpaa2_mac dpmac.3 (unnamed net_device) (uninitialized): Link is Up - 100Mbps/Full - flow control off
[ 179.977050] fsl_dpaa2_eth dpni.0 eth0: Link Event: state up
[ 179.982676] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready


So add MAC4

ls-addni dpmac.4
[ 191.792981] fsl_mc_allocator dpbp.5: Adding to iommu group 11
[ 191.799883] fsl_mc_allocator dpmcp.39: Adding to iommu group 11
[ 191.806027] fsl_mc_allocator dpcon.95: Adding to iommu group 11
[ 191.812031] fsl_mc_allocator dpcon.94: Adding to iommu group 11
[ 191.818027] fsl_mc_allocator dpcon.93: Adding to iommu group 11
[ 191.824029] fsl_mc_allocator dpcon.92: Adding to iommu group 11
[ 191.830031] fsl_mc_allocator dpcon.91: Adding to iommu group 11
[ 191.836032] fsl_mc_allocator dpcon.90: Adding to iommu group 11
[ 191.842030] fsl_mc_allocator dpcon.89: Adding to iommu group 11
[ 191.848029] fsl_mc_allocator dpcon.88: Adding to iommu group 11
[ 191.854026] fsl_mc_allocator dpcon.87: Adding to iommu group 11
[ 191.860028] fsl_mc_allocator dpcon.86: Adding to iommu group 11
[ 191.866024] fsl_mc_allocator dpcon.85: Adding to iommu group 11
[ 191.872023] fsl_mc_allocator dpcon.84: Adding to iommu group 11
[ 191.878021] fsl_mc_allocator dpcon.83: Adding to iommu group 11
[ 191.884020] fsl_mc_allocator dpcon.82: Adding to iommu group 11
[ 191.890018] fsl_mc_allocator dpcon.81: Adding to iommu group 11
[ 191.896019] fsl_mc_allocator dpcon.80: Adding to iommu group 11
[ 191.902974] fsl_dpaa2_eth dpni.1: Adding to iommu group 11
[ 192.064609] fsl_dpaa2_eth dpni.1: Probed interface eth1


ping works fine on MAC3

unplug MAC3 and plug MAC4

As soon as wire is unplugging from MAC3 and is plugging to MAC4 Ethernet Port: detection is well done for both of them !!!!!!


Created interface: eth1 (object:dpni.1, endpoint: dpmac.4)
root@TinyLinux:~# ifconfig eth1 10.24.10.185 netmask 255.255.255.0 up
root@TinyLinux:~# [ 215.791489] dpaa2_mac dpmac.3 (unnamed net_device) (uninitialized): Link is Down
[ 215.805010] fsl_dpaa2_eth dpni.0 eth0: Link Event: state down
[ 219.215664] dpaa2_mac dpmac.4 (unnamed net_device) (uninitialized): Link is Up - 100Mbps/Full - flow control off
[ 219.241060] fsl_dpaa2_eth dpni.1 eth1: Link Event: state up
[ 219.246675] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready


BUT the ping does not work on DPMAC4 ???

root@TinyLinux:~# ping 10.24
PING 10.24 (10.0.0.24): 56 data bytes
ping: sendto: Network is unreachable
root@TinyLinux:~# ping 10.24.10.161
PING 10.24.10.161 (10.24.10.161): 56 data bytes
^C

 

How I can check this point ????, is there another thing to defined under DPAA2 configuration than creating DPNI ?
(dpmac are not defined by me ...)

or maybe something is fixed into the TinyLinux ?

Thanks for any help/support

Best regards

Thierry

0 Kudos
Reply

1,501 Views
Thierry_LOUSSOT
Contributor II

Hi for all

Finally, by searching into Layerscape-Knowledge-Base


it seems the solution described into this post

https://community.nxp.com/t5/Layerscape-Knowledge-Base/LX2160ARDB-How-to-update-MC-firmware-DPC-and-...

should match with my needs

Need to do a test !

I will check this and will give answer about this

@+

Thierry

0 Kudos
Reply