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
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
Hi for all
Finally, by searching into Layerscape-Knowledge-Base
it seems the solution described into this post
should match with my needs
Need to do a test !
I will check this and will give answer about this
@+
Thierry