Support_T4240V2_FSL_DPA ERROR

cancel
Showing results for 
Search instead for 
Did you mean: 

Support_T4240V2_FSL_DPA ERROR

Jump to solution
1,836 Views
731020999
Contributor I

Hi,support

I have encountered a network error when the kernel booting-up process is complete on a customized board.

The console prints the error as follows:

root@t4240qds:~# fsl_dpa: fsl-dpa: non-zero error counters in fman statistics (sysfs)

Sometimes it will report another error which is:

root@t4240qds:~# fsl_dpa: fsl-dpa: non-zero error counters in fman statistics (sysfs)

fsl_dpa ethernet.18 fm2-mac1: Err FD status = 0x00040000

fsl_dpa ethernet.18 fm2-mac1: Err FD status = 0x00040000

fsl_dpa ethernet.18 fm2-mac1: Err FD status = 0x00040000

fsl_dpa ethernet.18 fm2-mac1: Err FD status = 0x00040000

CPU : T4240 Version 2.0

Kernel : linux-3.12.19 from QorIQ-SDK-V1.6

U-boot: u-boot-2015.01 from QorIQ-SDK-V1.8

FMan: fsl_fman_ucode_t4240_r2.0_106_4_14 from QorIQ-SDK-V1.6

PHY: VSC8488

According to the kernel code(driver/net/Ethernet/freescale/dpa/dpaa_eth.c line 257) comments the error “FM_FD_STAT_ERR_PHYSICAL”

means:

/**< Rx FIFO overflow, FCS error, code error, running disparity

error (SGMII and TBI modes), FIFO parity error. PHY Sequence error, PHY error control character detected. */

In order to locate the error, I added the following code to the end of the function “static void _dpa_rx_error()” (driver/net/Ethernet/freescale/dpa/dpaa_eth.c line 243)

printk("percpu_priv->stats.rx_errors : %lld \n", percpu_priv->stats.rx_errors);

printk("percpu_priv->rx_errors.dme : %lld \n", percpu_priv->rx_errors.dme);

printk("percpu_priv->rx_errors.fpe : %lld \n", percpu_priv->rx_errors.fpe);

printk("percpu_priv->rx_errors.fse : %lld \n", percpu_priv->rx_errors.fse);

printk("percpu_priv->rx_errors.phe : %lld \n", percpu_priv->rx_errors.phe);

  And the console prints as follows:

1.png

When I tested the speed of the 10GE network through iperf-2.0.5, the number of the error counters continuously increased.

The “ifconfig” command result comes out as:

2.png

However, the error was not show up when I tested the 1GE network.

I have already done the PRBS31 pattern loopback test on phy(VSC8488), and it works well.

What can I do to fix the error?

Any suggestions would be greatly appreciated!

Please refer to the attachment for details.

Have a great day!

Xiao Jun

Labels (1)
0 Kudos
1 Solution
528 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Xiao Jun,

This problem is a known issue of SDK 1.6, and it has been tracked in our internal defect system.

This defect has already been resolved in SDK 1.8 release, so I suggest you use Linux Kernel from SDK 1.8 or SDK 1.9.

Please refer to the following issue list  from SDK 1.8 document.

pastedImage_0.png

pastedImage_1.png


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
9 Replies
528 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Xiao Jun,

This error means that the frame is too long or frame size exceeds max_length_fram. Did you send jumbo frames? If so, please configure Kernel appropriately? Such as enable CONFIG_FSL_DPAA_ETH_JUMBO_FRAME.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
528 Views
731020999
Contributor I

Hello Yiping,

Thank you for your reply! I really appreciate it!

I have already enabled CONFIG_FSL_DPAA_ETH_JUMBO_FRAME and set Maximum L2 frame size to 9600.

I tested the 10G network by iperf-2.0.5 and I don't think the iperf tool will send jumbo frames.

So it is not the reason for the error.

Have a nice day.

Xiao Jun

0 Kudos
529 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Xiao Jun,

This problem is a known issue of SDK 1.6, and it has been tracked in our internal defect system.

This defect has already been resolved in SDK 1.8 release, so I suggest you use Linux Kernel from SDK 1.8 or SDK 1.9.

Please refer to the following issue list  from SDK 1.8 document.

pastedImage_0.png

pastedImage_1.png


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
528 Views
mohankumarkanne
Contributor I

Hi Sylvia,

We are also having the similar issues with SDK1.7. Thanks for mentioning that it got fixed in SDK1.8.

We do have SDK1.8 but we can't really upgrade our kernel to SDK1.8 right now.

Is it possible to backport this fix to SDK1.7??

Thanks,

Mohan.

0 Kudos
528 Views
731020999
Contributor I

Hello Yiping,

I extracted linux-3.12.37 and standalone toolchain from QorIQ-SDK-V1.8.

However, linux-3.12.37 compiles failed with error as follows,

______________________________

make uImage

...

...

LINK vmlinux

LD vmlinux.o

powerpc-fsl-linux-ld: Relocatable linking with relocations from format elf32-powerpc

(/opt/fsl-networking/QorIQ-SDK-V1.8/sysroots/ppce6500-fsl-linux/usr/lib/powerpc-fsl-linux/4.9.2/libgcc.a(_popcountdi2.o))

to format elf64-powerpc (vmlinux.o) is not supported

make: *** [vmlinux] Error 1

_______________________________


I also tried standalone toolchain from QorIQ-SDK-V1.6 to compile linux-3.12.37 and the console prints the same error.

But, linux-3.12.19(from SDK1.6) compiles successfully with standalone toolchain from QorIQ-SDK-V1.6.

Both of the two kernel use the same .config file.

By the way, I have successfully compiled the kernel by QorIQ-SDK-V1.6 through the command,

$ bitbake -c compile -f virtual/kernel

with the same .config file.

How could I fix the error and use the standalone toolchain to compile the kernel.

PS: I setup the shell environment by sourcing the environment file from /opt/fsl-networking/QorIQ-SDK-V1.8/environment-xxxx.

Waiting for your reply.

Thanks! Have a nice day!

Xiao Jun

0 Kudos
528 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Xiao Jun,

Please use the following procedure, which I have verified previously.

$source /opt/fsl-networking/QorIQ-SDK-V1.8/environment-setup-ppc64e6500-fsl-linux

$unset LDFLAGS

$ make uImage CC='powerpc64-fsl-linux-gcc  -mhard-float -m64 -mcpu=e6500 --sysroot=/opt/fsl-networking/QorIQ-SDK-V1.8/sysroots/ppc64e6500-fsl-linux'


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
528 Views
731020999
Contributor I

Hello Yiping,

The toolchain I extracted is 32b version and my environment file is /opt/fsl-networking/QorIQ-SDK-V1.8/environment-setup-ppce6500-fsl-linux.

And the powerpc-fsl-linux-gcc is 32b.

I wonder why standalone toolchain(32b) from QorIQ-SDK-V1.6 works well for linux-3.12.19(from SDK1.6),

and the vmlinux is 64b, everything goes well.

But it prints error when I compile linux-3.12.37(from SDK1.8) even by the same toolchain from SDK1.6.

I wonder if some files changed between linux-3.12.19(from SDK1.6) and linux-3.12.37(from SDK1.8), such as xxx.lds or Makefile.

How can I keep the standalone toolchain(32b) no matter from SDK1.6 or SDK1.8 to compile the linux-3.12.37(from SDK1.8) and make things right.

After all, most of our applications is 32b and I do not want to change the toolchain to 64b version.

Thanks for your reply. It's my honor to have your support!

Xiao Jun

0 Kudos
528 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Xiao Jun,

Please refer to the following procedure, if you want to use 32 bit Toolchain.

$source /opt/fsl-networking/QorIQ-SDK-V1.8/environment-setup-ppce6500-fsl-linux

$unset LDFLAGS

$ make CC='powerpc-fsl-linux-gcc  -m32 -mhard-float -mcpu=e6500 --sysroot=/opt/fsl-networking/QorIQ-SDK-V1.8/sysroots/ppce6500-fsl-linux'


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
528 Views
731020999
Contributor I

Hello Yiping,

Great! You really did me a huge favor!

I have been stuck on the error for a long time!

I will try the Linux Kernel from SDK 1.8 or SDK 1.9.

Thanks for your help!

Have a nice day!

Xiao Jun

0 Kudos