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