RE: ixp4xx ethernet driver issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


>
>Thanks for the response Krzysztof,
>
>>Hi,
>>
>>"Mo, Vincent" <vincent.mo@xxxxxxxxxxxxxxxxxx> writes:
>>
>>> The problem I'm experiencing with using the 2.6.28.1 kernel is this.
>>> I've been able to build it and load it onto my IXDP465 development
>board
>>> and have verified that the Ethernet works.
>>
>>Good to know. I assume IXP465 or similar (460, 455) CPU.
>
>I'm using the IXP465 cpu.
>
>>> But when I load it onto my
>>> own board, the Ethernet does not work.  I don't suppose the
>difference
>>> in the PHYs would really matter that much, I'm using National's
>DP83640
>>> phy.  The kernel is able to detect a link since it displays the
>message
>>> "eth0: link up, 100Mbps, full-duplex, lpa 0x45E1" on the console.
>But
>>> I'm not able to ping any hosts on the network.  Issuing an
"ifconfig"
>>> shows that the interface has not received nor transmitted any
>packets.
>>> Also, when I look at the number of interrupts "IXP4xx Queue Manager"
>has
>>> received, it shows 0.
>>
>>Are you using the same firmware files and kernel sources/config?
>
>Yes I am, I'm using the exact same sources and config.
>
>>MDIO doesn't use the firmware, it's connected directly to the pins
>>(balls actually).
>
>Even though MDIO doesn't use the firmware, the NPE needs it right?  I
>thought it can't work with out
>the microcode/firmware.
>
>>> Does the ixp4xx_eth/ixp4xx_npe/ixp4xx_qmgr driver expect a board
>layout
>>> similar to the ixdp465?
>>
>>No.
>>I'm told it works on NSLU2 (IXP425). I'm using it on a different
>>machine also based on IXP425.
>>
>>> Or should it just work if the phy's connected
>>> to the "ETHB" module of the CPU.
>>
>>If you get valid MDIO link then MDIO works. It's not interrupt-driven
>>(simple timer), only packet TX/RX is.
>>
>>The driver in 2.6.29-rc* uses PHYLIB instead of MII. Probably
>>irrelevant but you may want to try it.
>>
>>Can you show the "platform" (Ethernet) structure(s)?
>
>Could you please explain what you mean by "platform" structure?
>
>>Perhaps the queue manager is at fault?
>>
>>There are certain #define DEBUG* near the top of relevant .c files
>>(ixp4xx_eth and _qmgr + _npe), you may try to enable them, perhaps the
>>logs will have some clues?
>
>I did enable the log and this is what I got:
>
>net eth0: firmware: requesting NPE-B
>NPE-B: firmware: FEEDF00D 01000201 00000BAC (0x2EB0 bytes)
>NPE-B: firmware functionality 0x0, revision 0x2:1
>NPE-B: 5 firmware blocks found
>NPE-B: Trying to receive message ETH_GET_STATUS
>NPE-B: Received [00000000:01000201]
>eth0: mdio_write()
>eth0: mdio_cmd() took 31 cycles
>NPE-B: Trying to send message ETH_SET_RXQ [0B100000:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100000:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100001:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100001:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100002:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100002:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100003:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100003:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100004:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100004:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100005:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100005:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100006:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100006:00830030]
>NPE-B: Trying to send message ETH_SET_RXQ [0B100007:00830030]
>NPE-B: Trying to receive message ETH_SET_RXQ
>NPE-B: Received [0B100007:00830030]
>NPE-B: Trying to send message ETH_SET_MAC [01000011:22334455]
>NPE-B: Trying to receive message ETH_SET_MAC
>NPE-B: Received [01000011:22334455]
>NPE-B: Trying to send message ETH_SET_FIREWALL_MODE [0E100000:00000000]
>NPE-B: Trying to receive message ETH_SET_FIREWALL_MODE
>NPE-B: Received [0E100000:00000000]
>qmgr: requested queue 27, addr = 0x04
>qmgr: requested queue 3, addr = 0x08
>qmgr: requested queue 24, addr = 0x0C
>qmgr: requested queue 20, addr = 0x0D
>qmgr: requested queue 31, addr = 0x0E
>Queue 20 <- 2497800
>2497800: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497820
>2497820: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497840
>2497840: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497860
>2497860: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497880
>2497880: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24978A0
>24978A0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24978C0
>24978C0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24978E0
>24978E0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497900
>2497900: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497920
>2497920: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497940
>2497940: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497960
>2497960: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 2497980
>2497980: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24979A0
>24979A0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24979C0
>24979C0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 20 <- 24979E0
>24979E0: 0   0   0 00000000  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497000
>2497000: 0 600   0 02BA0812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497020
>2497020: 0 600   0 02BA1012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497040
>2497040: 0 600   0 02BA1812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497060
>2497060: 0 600   0 02BA2012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497080
>2497080: 0 600   0 02BA2812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24970A0
>24970A0: 0 600   0 02BA3012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24970C0
>24970C0: 0 600   0 02BA3812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24970E0
>24970E0: 0 600   0 01104012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497100
>2497100: 0 600   0 01104812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497120
>2497120: 0 600   0 01105012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497140
>2497140: 0 600   0 01105812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497160
>2497160: 0 600   0 01106012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497180
>2497180: 0 600   0 01106812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24971A0
>24971A0: 0 600   0 01107012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24971C0
>24971C0: 0 600   0 01107812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24971E0
>24971E0: 0 600   0 01114012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497200
>2497200: 0 600   0 01114812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497220
>2497220: 0 600   0 01115012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497240
>2497240: 0 600   0 01115812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497260
>2497260: 0 600   0 01116012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497280
>2497280: 0 600   0 01116812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24972A0
>24972A0: 0 600   0 01117012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24972C0
>24972C0: 0 600   0 01117812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24972E0
>24972E0: 0 600   0 01118012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497300
>2497300: 0 600   0 01118812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497320
>2497320: 0 600   0 01119012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497340
>2497340: 0 600   0 01119812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497360
>2497360: 0 600   0 0111A012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497380
>2497380: 0 600   0 0111A812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24973A0
>24973A0: 0 600   0 0111B012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24973C0
>24973C0: 0 600   0 0111B812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24973E0
>24973E0: 0 600   0 0111C012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497400
>2497400: 0 600   0 0111C812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497420
>2497420: 0 600   0 0111D012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497440
>2497440: 0 600   0 0111D812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497460
>2497460: 0 600   0 0111E012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497480
>2497480: 0 600   0 0111E812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24974A0
>24974A0: 0 600   0 0111F012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24974C0
>24974C0: 0 600   0 0111F812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24974E0
>24974E0: 0 600   0 02B00012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497500
>2497500: 0 600   0 02B00812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497520
>2497520: 0 600   0 02B01012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497540
>2497540: 0 600   0 02B01812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497560
>2497560: 0 600   0 02B02012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497580
>2497580: 0 600   0 02B02812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24975A0
>24975A0: 0 600   0 02B03012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24975C0
>24975C0: 0 600   0 02B03812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24975E0
>24975E0: 0 600   0 02B04012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497600
>2497600: 0 600   0 02B04812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497620
>2497620: 0 600   0 02B05012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497640
>2497640: 0 600   0 02B05812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497660
>2497660: 0 600   0 02B06012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497680
>2497680: 0 600   0 02B06812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24976A0
>24976A0: 0 600   0 02B07012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24976C0
>24976C0: 0 600   0 02B07812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24976E0
>24976E0: 0 600   0 02B08012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497700
>2497700: 0 600   0 02B08812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497720
>2497720: 0 600   0 02B09012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497740
>2497740: 0 600   0 02B09812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497760
>2497760: 0 600   0 02B0A012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 2497780
>2497780: 0 600   0 02B0A812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24977A0
>24977A0: 0 600   0 02B0B012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24977C0
>24977C0: 0 600   0 02B0B812  0 <  0    0 0 0 0 000000000000 <
>000000000000
>Queue 27 RX-free#0 <- 24977E0
>24977E0: 0 600   0 02B0C012  0 <  0    0 0 0 0 000000000000 <
>000000000000
>eth0: mdio_cmd() took 32 cycles
>eth0: mdio_cmd() took 32 cycles
>eth0: link down
>eth0: mdio_cmd() took 32 cycles
>*eth0: MII PHY register 0x00 reads 0x3500
>eth0: mdio_cmd() took 32 cycles
>*eth0: MII PHY register 0x01 reads 0x78c9
>eth0: eth_poll
>Queue 3 -> 0
>eth0: eth_poll netif_rx_complete
>eth0: eth_poll all done
>eth0: mdio_cmd() took 32 cycles
>*eth0: MII PHY register 0x10 reads 0x0
>eth0: mdio_cmd() took 32 cycles
>*eth0: MII PHY register 0x11 reads 0x1
>eth0: mdio_cmd() took 32 cycles
>eth0: MII PHY register 0x19 reads 0x8000
>Empty flash at 0x0000108c ends at 0x0001f400
>CLEANMARKER node found at 0x0001f400, not first node in block
>(0x00000000)
>eth0: mdio_cmd() took 31 cycles
>eth0: mdio_cmd() took 32 cycles
>eth0: mdio_cmd() took 32 cycles
>eth0: mdio_cmd() took 32 cycles
>eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
>eth0: mdio_cmd() took 32 cycles
>...this goes on and on
>
>>> The microcode I'm trying to use is version 2.4.  When I try to use
>3.0
>>> even on the IXDP465 board, the Ethernet doesn't work.
>>
>>I'm not surprised. 3.0 doesn't work on IXP425.
>>--
>>Krzysztof Halasa
>
>Another thing I want to point out, the IXP465 is not outputting the
>ETHB_RXCLK to the phy.  This is strange, the phy is clearly receiving
>packets and is toggling its' link/activity line, but it's not able to
>transmit the received packets to the CPU because there is no receive
>clock.

I'm correcting myself, the phy should be driving the RXCLK line.  I'm
not sure why the phy is not driving it...

-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

[Linux ARM]     [Linux ARM MSM]     [Linux ARM Kernel]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

Add to Google Follow linuxarm on Twitter