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