Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - Native io-pkt Ethernet Driver(mpc85xx): (6 Items)
   
Native io-pkt Ethernet Driver(mpc85xx)  
Hi,

I need some help to debug one of the issue we are facing in native io-pkt Ethernet driver (mpc85xx), it looks that after
 few packet transfer the Ethernet driver continue to hit the following error during packet receive with  following error
 "mpc85xx_receive(): status RXBD_ERR 0x1D04".

Following is the below code in receive.c where this error is logged.

// any problems with this rxd packet?
        if (status & RXBD_ERR) {
			// give old packet back to nic
            mpc85xx_add_pkt(mpc85xx, rpkt, this_idx);  
			log(LOG_ERR, "%s(): status RXBD_ERR 0x%X", __FUNCTION__, status);
			ifp->if_ierrors++;
            continue;
        }

It will be great if somebody can asset in analyzing/resolving following issue.

Thanx and regards,
Tarun
Associations:
topc8829:
              mpc85xx driver err -  - Akash Goswami(deleted)
            
RE: Native io-pkt Ethernet Driver(mpc85xx)  
Hi Tarun,

Can you specify following:

Command line to start io-pkt
Packet rate at which you are feeding packets. Also what kind of packets?
BSP detail  
SMP or single CPU core 
nicinfo results
 
At the moment it looks like Rx CRC errors in received broadcast frames.

BR,
Akash Goswami

-----Original Message-----
From: Santosh Kumar [mailto:community-noreply@qnx.com] 
Sent: Friday, September 25, 2009 9:28 AM
To: drivers-networking
Subject: Native io-pkt Ethernet Driver(mpc85xx)

Hi,

I need some help to debug one of the issue we are facing in native
io-pkt Ethernet driver (mpc85xx), it looks that after few packet
transfer the Ethernet driver continue to hit the following error during
packet receive with  following error "mpc85xx_receive(): status RXBD_ERR
0x1D04".

Following is the below code in receive.c where this error is logged.

// any problems with this rxd packet?
        if (status & RXBD_ERR) {
			// give old packet back to nic
            mpc85xx_add_pkt(mpc85xx, rpkt, this_idx);  
			log(LOG_ERR, "%s(): status RXBD_ERR 0x%X",
__FUNCTION__, status);
			ifp->if_ierrors++;
            continue;
        }

It will be great if somebody can asset in analyzing/resolving following
issue.

Thanx and regards,
Tarun




_______________________________________________

Networking Drivers
http://community.qnx.com/sf/go/post38705
Re: RE: Native io-pkt Ethernet Driver(mpc85xx)  
Thanks Akash for reply. Is there any way to to know the cause and prevent this error.

Here is the below information.

Command line to start io-pkt: The below command is used in preinit script to start devnp-mpc85xx.so($ETHDRIVER)
mount -T io-pkt -o "mac=$MACADDR,deviceindex=3" $ETHDRIVER
mount -T io-pkt -o "mac=$MACADDR,deviceindex=2" $ETHDRIVER
mount -T io-pkt -o "mac=$MACADDR,speed=1000,duplex=1,deviceindex=1" $ETHDRIVER
mount -T io-pkt -o "mac=$MACADDR,speed=100,duplex=1,deviceindex=0"  $ETHDRIVER
echo "Enabling Support for QNet"
#mount -T io-pkt /lib/dll/lsm-qnet.so
mount -T io-pkt -o "bind=tsec3,no_slog=1" /lib/dll/lsm-qnet.so
echo "Enabling TIPC"
mount -T io-pkt -o "verbose=0,bufsize=131072" /lib/dll/lsm-tipc.so
echo "bringing up necessary interfaces"
/sbin/ifconfig tsec0 up
/sbin/ifconfig tsec1 up
/sbin/ifconfig tsec2 media 1000T mediaopt fdx
/sbin/ifconfig tsec2 up
/sbin/ifconfig tsec3 media 100baseTX-FDX
/sbin/ifconfig tsec3 up
/sbin/ifconfig tsec0 $IPADDR netmask $NETMASK up
echo "ifconfig tsec0 $IPADDR netmask $NETMASK up"

Packet rate at which you are feeding packets. Also what kind of packets?: Close to 1G on tsec2, packets are intermix of 
Multicast and Unicast packets. 

BSP detail:  QNX BSP for MPC8572, kernel is “procnto-booke-smp-instr”.

SMP or single CPU core : SMP

nicinfo results:
# nicinfo tsec2 
tsec2: 
  MPC85XX TSEC Ethernet Controller

  Physical Node ID ........................... 000000 000000
  Current Physical Node ID ................... 001FAA 000102
  Current Operation Rate ..................... 1000.00 Mb/s full-duplex
  Active Interface Type ...................... MII
    Active PHY address ....................... 13
  Maximum Transmittable data Unit ............ 1500
  Maximum Receivable data Unit ............... 1500
  Hardware Interrupt ......................... 0x13
  Hardware Interrupt ......................... 0x14
  Hardware Interrupt ......................... 0x18
  Memory Aperture ............................ 0xe0025000 - 0xe0025fff
  Promiscuous Mode ........................... Off
  Multicast Support .......................... Enabled
  Packets Transmitted OK ..................... 23
  Bytes Transmitted OK ....................... 2070
  Broadcast Packets Transmitted OK ........... 0
  Multicast Packets Transmitted OK ........... 23
  Memory Allocation Failures on Transmit ..... 0
  Packets Received OK ........................ 12
  Bytes Received OK .......................... 1080
  Broadcast Packets Received OK .............. 0
  Multicast Packets Received OK .............. 12
  Memory Allocation Failures on Receive ...... 0
  Single Collisions on Transmit .............. 0
  Multiple Collisions on Transmit ............ 0
  Late Collision on Transmit errors .......... 0
  Transmits aborted (excessive collisions) ... 0
  Transmits aborted (excessive deferrals) .... 0
  Transmit Underruns ......................... 0
  No Carrier on Transmit ..................... 0
  Jabber detected ............................ 0
  Receive Alignment errors ................... 0
  Received packets with CRC errors ........... 0
  Packets Dropped on receive ................. 0
  Ethernet Header length field mismatches .... 0
  Oversized Packets received ................. 0
  Short packets .............................. 0
Re: RE: Native io-pkt Ethernet Driver(mpc85xx)  
Hi,

Following is a similar post where Andrew has explained possible root cause of a CRC error:
http://community.qnx.com/sf/go/topc8829

Its hard to say the root cause of CRC errors, but try to isolate the problem using different cable type/ packet 
throughput rate/ packet length etc.  See if you can insert a gigabit switch between the board and testing machine, if 
this is a PHY related issue.
I havent seen this board, so cant comment more about it.

BR
Akash 
Associations:
post33710:
              mpc85xx driver err - Same kind of issue - Akash Goswami(deleted)
            
Re: RE: Native io-pkt Ethernet Driver(mpc85xx)  
Hi Akash,

I have tried this on different system and i still see this error, how do we isolate if this is a h/w issue? Do you 
suggest any diagnostic command other then below command to be run to get more information.

=> tsectbiregs 4
TSEC4: TBI CR [0x00] = 0x140
TSEC4: TBI Status Reg [0x01] = 0x14d
TSEC4: TBI AN Advertisement Reg [0x04] = 0x20
TSEC4: TBI AN Link Reg [0x05] = 0x0
TSEC4: TBI AN Expansion Reg [0x06] = 0x4
TSEC4: TBI AN Next Page Tx Reg [0x07] = 0x0
TSEC4: TBI AN Link Partner Reg [0x08] = 0x0
TSEC4: TBI Extended Status Reg [0x0F] = 0xa000
TSEC4: TBI Jitter Diag Reg [0x10] = 0x0
TSEC4: TBI Control Reg [0x11] = 0x20
=> mii dump 2 0
0.     (1140)                 -- PHY control register --
  (8000:0000) 0.15    =     0    reset
  (4000:0000) 0.14    =     0    loopback
  (2040:0040) 0. 6,13 =   b10    speed selection = 1000 Mbps
  (1000:1000) 0.12    =     1    A/N enable
  (0800:0000) 0.11    =     0    power-down
  (0400:0000) 0.10    =     0    isolate
  (0200:0000) 0. 9    =     0    restart A/N
  (0100:0100) 0. 8    =     1    duplex = full
  (0080:0000) 0. 7    =     0    collision test enable
  (003f:0000) 0. 5- 0 =     0    (reserved)


=> mii dump 2 1
1.     (796d)                 -- PHY status register --
  (8000:0000) 1.15    =     0    100BASE-T4 able
  (4000:4000) 1.14    =     1    100BASE-X  full duplex able
  (2000:2000) 1.13    =     1    100BASE-X  half duplex able
  (1000:1000) 1.12    =     1    10 Mbps    full duplex able
  (0800:0800) 1.11    =     1    10 Mbps    half duplex able
  (0400:0000) 1.10    =     0    100BASE-T2 full duplex able
  (0200:0000) 1. 9    =     0    100BASE-T2 half duplex able
  (0100:0100) 1. 8    =     1    extended status
  (0080:0000) 1. 7    =     0    (reserved)
  (0040:0040) 1. 6    =     1    MF preamble suppression
  (0020:0020) 1. 5    =     1    A/N complete
  (0010:0000) 1. 4    =     0    remote fault
  (0008:0008) 1. 3    =     1    A/N able
  (0004:0004) 1. 2    =     1    link status
  (0002:0000) 1. 1    =     0    jabber detect
  (0001:0001) 1. 0    =     1    extended capabilities


=> mii dump 2 2
2.     (0143)                 -- PHY ID 1 register --
  (ffff:0143) 2.15- 0 =   323    OUI portion


=> mii dump 2 3
3.     (bcb1)                 -- PHY ID 2 register --
  (fc00:bc00) 3.15-10 =    47    OUI portion
  (03f0:00b0) 3. 9- 4 =    11    manufacturer part number
  (000f:0001) 3. 3- 0 =     1    manufacturer rev. number


=> mii dump 2 4
4.     (0141)                 -- Autonegotiation advertisement register --
  (8000:0000) 4.15    =     0    next page able
  (4000:0000) 4.14    =     0    reserved
  (2000:0000) 4.13    =     0    remote fault
  (1000:0000) 4.12    =     0    reserved
  (0800:0000) 4.11    =     0    asymmetric pause
  (0400:0000) 4.10    =     0    pause enable
  (0200:0000) 4. 9    =     0    100BASE-T4 able
  (0100:0100) 4. 8    =     1    100BASE-TX full duplex able
  (0080:0000) 4. 7    =     0    100BASE-TX able
  (0040:0040) 4. 6    =     1    10BASE-T   full duplex able
  (0020:0000) 4. 5    =     0    10BASE-T   able
  (001f:0001) 4. 4- 0 =     1    selector = IEEE 802.3


=> mii dump 2 5
5.     (4101)                 -- Autonegotiation partner abilities register --
  (8000:0000) 5.15    =     0    next page able
  (4000:4000) 5.14    =     1    acknowledge
  (2000:0000) 5.13    =     0    remote fault
  (1000:0000) 5.12    =     0    (reserved)
  (0800:0000) 5.11    =     0    asymmetric pause able
  (0400:0000) 5.10    =     0    pause able
  (0200:0000) 5. 9    =     0    100BASE-T4 able
  (0100:0100) 5. 8    =     1    100BASE-X full duplex able
  (0080:0000) 5. 7    =     0    100BASE-TX able
  (0040:0000) 5. 6    =     0    10BASE-T full duplex able
  (0020:0000) 5. 5    =     0    10BASE-T able
  (001f:0001) 5. 4- 0 =     1    selector = IEEE 802.3
 
Thanx and regards,
Tarun
RE: RE: Native io-pkt Ethernet Driver(mpc85xx)  
 
Hi Tarun,

Can you check whether the Linux also displays CRC error like this with
the same load condition ?
Linux image should have been preloaded into the flash.

Also one of the idea would be to check the device errata supplied with
the board documentation, if this behaviour is also captured there.


BR,
Akash Goswami

-----Original Message-----
From: Santosh Kumar [mailto:community-noreply@qnx.com] 
Sent: Saturday, September 26, 2009 7:07 AM
To: drivers-networking
Subject: Re: RE: Native io-pkt Ethernet Driver(mpc85xx)

Hi Akash,

I have tried this on different system and i still see this error, how do
we isolate if this is a h/w issue? Do you suggest any diagnostic command
other then below command to be run to get more information.

=> tsectbiregs 4
TSEC4: TBI CR [0x00] = 0x140
TSEC4: TBI Status Reg [0x01] = 0x14d
TSEC4: TBI AN Advertisement Reg [0x04] = 0x20
TSEC4: TBI AN Link Reg [0x05] = 0x0
TSEC4: TBI AN Expansion Reg [0x06] = 0x4
TSEC4: TBI AN Next Page Tx Reg [0x07] = 0x0
TSEC4: TBI AN Link Partner Reg [0x08] = 0x0
TSEC4: TBI Extended Status Reg [0x0F] = 0xa000
TSEC4: TBI Jitter Diag Reg [0x10] = 0x0
TSEC4: TBI Control Reg [0x11] = 0x20
=> mii dump 2 0
0.     (1140)                 -- PHY control register --
  (8000:0000) 0.15    =     0    reset
  (4000:0000) 0.14    =     0    loopback
  (2040:0040) 0. 6,13 =   b10    speed selection = 1000 Mbps
  (1000:1000) 0.12    =     1    A/N enable
  (0800:0000) 0.11    =     0    power-down
  (0400:0000) 0.10    =     0    isolate
  (0200:0000) 0. 9    =     0    restart A/N
  (0100:0100) 0. 8    =     1    duplex = full
  (0080:0000) 0. 7    =     0    collision test enable
  (003f:0000) 0. 5- 0 =     0    (reserved)


=> mii dump 2 1
1.     (796d)                 -- PHY status register --
  (8000:0000) 1.15    =     0    100BASE-T4 able
  (4000:4000) 1.14    =     1    100BASE-X  full duplex able
  (2000:2000) 1.13    =     1    100BASE-X  half duplex able
  (1000:1000) 1.12    =     1    10 Mbps    full duplex able
  (0800:0800) 1.11    =     1    10 Mbps    half duplex able
  (0400:0000) 1.10    =     0    100BASE-T2 full duplex able
  (0200:0000) 1. 9    =     0    100BASE-T2 half duplex able
  (0100:0100) 1. 8    =     1    extended status
  (0080:0000) 1. 7    =     0    (reserved)
  (0040:0040) 1. 6    =     1    MF preamble suppression
  (0020:0020) 1. 5    =     1    A/N complete
  (0010:0000) 1. 4    =     0    remote fault
  (0008:0008) 1. 3    =     1    A/N able
  (0004:0004) 1. 2    =     1    link status
  (0002:0000) 1. 1    =     0    jabber detect
  (0001:0001) 1. 0    =     1    extended capabilities


=> mii dump 2 2
2.     (0143)                 -- PHY ID 1 register --
  (ffff:0143) 2.15- 0 =   323    OUI portion


=> mii dump 2 3
3.     (bcb1)                 -- PHY ID 2 register --
  (fc00:bc00) 3.15-10 =    47    OUI portion
  (03f0:00b0) 3. 9- 4 =    11    manufacturer part number
  (000f:0001) 3. 3- 0 =     1    manufacturer rev. number


=> mii dump 2 4
4.     (0141)                 -- Autonegotiation advertisement register
--
  (8000:0000) 4.15    =     0    next page able
  (4000:0000) 4.14    =     0    reserved
  (2000:0000) 4.13    =     0    remote fault
  (1000:0000) 4.12    =     0    reserved
  (0800:0000) 4.11    =     0    asymmetric pause
  (0400:0000) 4.10    =     0    pause enable
  (0200:0000) 4. 9    =     0    100BASE-T4 able
  (0100:0100) 4. 8    =     1    100BASE-TX full duplex able
  (0080:0000) 4. 7    =     0    100BASE-TX able
  (0040:0040) 4. 6    =     1    10BASE-T   full duplex able
  (0020:0000) 4. 5    =     0    10BASE-T   able
  (001f:0001) 4. 4- 0 =     1    selector = IEEE 802.3


=> mii dump 2 5
5.     (4101)                 -- Autonegotiation partner abilities
register --
  (8000:0000) 5.15    =     0    next page able
  (4000:4000) 5.14    =     1    acknowledge
  (2000:0000) 5.13   ...
View Full Message