[ECOS] NPE ethernet not working with Redboot v2.04

Ravi R rr94ca@gmail.com
Fri Jun 20 08:07:00 GMT 2008

I see that the AHBQ Mgr registers are being byte swapped before being
written and are therefore being written wrong. Eg Q base address is
being written to where the read/write pointers should be in the
configuration word. This is being done by IX_OSAL_WRITE_LONG() based

I have built Redboot in LE mode, using the Little Endian template, so
I assume all defines/byte swappings should be correct.
But obviously something is not right. Am not sure where the proper
place is to correct/set the defines.
There does not seem to be any setting in the ecos.ecc file.

The Xscale is correctly set to LE, the BYTE_SWAP_EN bit is set in the
EXPB CONTR. Am not sure if the MMU should/also cause the bytes to be
swapped when writting to the QMgr registers to compensate for the
IX_OS_WRITE_LONG() byte swap?

I would appreciate any help on what to set where...

FYI - Regarding the PHY - I stepped through the code pretty carefully
and it appears to correctly talk to the Phy - e.g it read the type of
Phy I am using LXT972 from a Phy register via the MII. (The board has
only one Phy)

RaviRe: NPE ethernet not working with Redboot v2.04
From: Mark Salter <msalter at redhat dot com>
To: Ravi R <rr94ca at gmail dot com>
Cc: ecos-discuss at ecos dot sourceware dot org
Date: Thu, 19 Jun 2008 09:04:57 -0400
Subject: Re: [ECOS] NPE ethernet not working with Redboot v2.04
References: <513ab1aa0806181926v6894d715ya04e1030d0b36025@mail.gmail.com>

>>On Wed, 2008-06-18 at 19:26 -0700, Ravi R wrote:
>> We are developing a product based on a board very similar to the Intel IXDP425.
>> We have taken the Redboot v2.04 source from the Intel IXP400 software
>> web site and built the source per instructions (with a few small
>> modifications to GPIO etc) and have installed Redboot on the board.
>> Redboot seems to be working fine including Serial, PCI configuration
>> and Flash services.
>> However, the Ethernet connection is not working.
>> A default ESA is set correctly, the NPE successfully detects and sets
>> up the PHY ("success using NPE-B with PHY 0"), the PHY link is
>> established (Link LED on PHY), the NPE subsystem seems to get
>> initialized correctly (no errors reported) and the NPE subsystem seems
>> to accept packets for transmission. However the NPE/Ethernet subsystem
>> does not appear to send out more than 1 packet (detected on the MII
>> TX_EN line to the Phy). All subsequent packets are blocked waiting on
>> the second packet to get transmitted (npe_can_send() returns 0). The
>> call sequence is as follows:

>Its hard to say what could be going wrong. Are you sure the first packet
>gets sent on the wire? Depending on how you have things configured, the
>"success using NPE-x with PHY n" message could have different meanings.
>If you have statically configured NPE-B to use PHY 0, then the message
>simply means that PHY 0 was found. It does not mean the PHY 0 is
>actually connected to NPE-B. All NPEs share the same mdc/mdio interface
>to the PHYs. So first, I would make sure that NPE-B really is connected
>to PHY 0.

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list