HDLC controller of MPC8309

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

HDLC controller of MPC8309

644 Views
Harrison_Choi
NXP Employee
NXP Employee

Hello

 

I would like to ask the following question in Korea disty customer

Customer is using HDLC protocol in the current project. There are a few problems.

The main parameter values set for the hdlc controller are as follows:

TX/RX LINING LEN: 32 pieces each
MFLR : 15360
MRBLR : 1536

HDLC Max Frame size to be processed is 10240 and frames of size 10240 are divided into buffer descriptors (BD) and transferred.
Approximately 7 TxBDs are used to process 10240.

The problem is that the R bit of the TxBD cannot be cleared and remains at 1 after the transmission at some point during normal operation.
It usually occurs when sending a frame of 10K size.
At this time, the HDLC event register (UCCE) has an increased tx error count.

Since then, TxBD's R bit has not been cleared during traffic transmission, and in the end, BD is no longer valid and communication is not possible.

Below is a part of the log, and the yellow highlight is the result of displaying the TxBD value when an interrupt occurs.

 

: bd=252284fc bd->status=1c00
2015/01/17 09:41:06.380 iug205 kernel: (5ab4f32a) S3 RX I(0) S2 R3
2015/01/17 09:41:06.422 iug205 kernel: (5ab4f32a) S3 TX RR(0) R3
2015/01/17 09:41:06.425 iug205 kernel: bd=55005b15 tx_buf=b17f5017 bd->length=2, bd->status=9c00
2015/01/17 09:41:06.427 iug205 kernel: bd=252284fc bd->status=1c00 //the result of displaying the TxBD value when an interrupt occurs.
2015/01/17 09:41:06.430 iug205 kernel: bd=252284fc buf=1c778807 skb->len=2, bd->status=1c00
2015/01/17 09:41:06.555 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:06.557 iug205 kernel: bd=16cd7e56 tx_buf=022cdb38 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.559 iug205 kernel: bd=603bc1a3 tx_buf=0e7f5b08 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.562 iug205 kernel: bd=82954ea4 tx_buf=8efabb1a bd->length=1536, bd->status=8000
2015/01/17 09:41:06.564 iug205 kernel: bd=c30b8cef tx_buf=c5f4b75a bd->length=1536, bd->status=8000
2015/01/17 09:41:06.566 iug205 kernel: bd=7d144207 tx_buf=01101a9e bd->length=1536, bd->status=8000
2015/01/17 09:41:06.569 iug205 kernel: bd=252284fc tx_buf=1c778807 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.571 iug205 kernel: bd=2612c3cf, priv->dirty_tx=2612c3cf
2015/01/17 09:41:06.573 iug205 kernel: bd=2612c3cf tx_buf=875df4e0 bd->length=987, bd->status=9c00
2015/01/17 09:41:06.750 iug205 kernel: bd=2612c3cf bd->status=9c00 //the result of displaying the TxBD value when an interrupt occurs.
2015/01/17 09:41:06.753 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:06.755 iug205 kernel: bd=7a7763db tx_buf=5c379ef3 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.758 iug205 kernel: bd=596e910a tx_buf=61cf91e5 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.760 iug205 kernel: bd=6d7bcc33 tx_buf=afddac44 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.762 iug205 kernel: bd=9ed806a9 tx_buf=2ff0b66c bd->length=1536, bd->status=8000
2015/01/17 09:41:06.765 iug205 kernel: bd=80f7f4c6 tx_buf=5f3e6408 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.767 iug205 kernel: bd=fd6de6e3 tx_buf=7ca3be4c bd->length=1536, bd->status=8000
2015/01/17 09:41:06.769 iug205 kernel: bd=7df28a42 tx_buf=b38ef807 bd->length=987, bd->status=9c00
2015/01/17 09:41:06.946 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:06.949 iug205 kernel: bd=7add25bd tx_buf=0249e29a bd->length=1536, bd->status=8000
2015/01/17 09:41:06.951 iug205 kernel: bd=475a2bd7 tx_buf=dcf3d092 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.953 iug205 kernel: bd=bc835e12 tx_buf=a8d79988 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.956 iug205 kernel: bd=56b5413d tx_buf=3dfa3c0c bd->length=1536, bd->status=8000
2015/01/17 09:41:06.958 iug205 kernel: bd=b8399712 tx_buf=7a53e8fa bd->length=1536, bd->status=8000
2015/01/17 09:41:06.961 iug205 kernel: bd=be1c0ad5 tx_buf=406aeec1 bd->length=1536, bd->status=8000
2015/01/17 09:41:06.963 iug205 kernel: bd=30bfd1f5 tx_buf=5dafb44f bd->length=987, bd->status=9c00
2015/01/17 09:41:07.143 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:07.146 iug205 kernel: bd=ad9ecc11 tx_buf=0bd8d92c bd->length=1536, bd->status=8000
2015/01/17 09:41:07.148 iug205 kernel: bd=0b891264 tx_buf=d886efe6 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.151 iug205 kernel: bd=8f1f7a75 tx_buf=1e05ba2e bd->length=1536, bd->status=8000
2015/01/17 09:41:07.153 iug205 kernel: bd=4a8268d9 tx_buf=bbfbe31b bd->length=1536, bd->status=a000
2015/01/17 09:41:07.156 iug205 kernel: bd=4c6238d8 tx_buf=81ac7b5c bd->length=1536, bd->status=8000
2015/01/17 09:41:07.158 iug205 kernel: bd=61284dfe tx_buf=990f685e bd->length=1536, bd->status=8000
2015/01/17 09:41:07.160 iug205 kernel: bd=d085bb32 tx_buf=bdfd5bee bd->length=987, bd->status=9c00
2015/01/17 09:41:07.340 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:07.342 iug205 kernel: bd=c33a58ee tx_buf=d04efaf8 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.344 iug205 kernel: bd=a7505aa4 tx_buf=42250fb0 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.347 iug205 kernel: bd=0c2ec27f tx_buf=af788d7f bd->length=1536, bd->status=8000
2015/01/17 09:41:07.349 iug205 kernel: bd=55005b15 tx_buf=b17f5017 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.352 iug205 kernel: bd=16cd7e56 tx_buf=022cdb38 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.354 iug205 kernel: bd=603bc1a3 tx_buf=0e7f5b08 bd->length=1536, bd->status=8000
2015/01/17 09:41:07.357 iug205 kernel: bd=82954ea4 tx_buf=8efabb1a bd->length=987, bd->status=9c00
2015/01/17 09:41:07.538 iug205 kernel: (5ab4f32a) S3 TX I(0) S3 R3
2015/01/17 09:41:07.540 iug205 kernel: bd=c30b8cef tx_buf=c5f4b75a bd->length=1536, bd->status=8000
2015/01/17 09:41:07.731 iug205 kernel: hdlc0: no buffer descriptor 10203 bd=7d144207

 

Please check it

 

Thanks

Harrison

0 Kudos
Reply
0 Replies