|
|
|
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. ------------------------------------------------------------------- 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]
![]() |
![]() |