public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-02  5:16 ` Stefan Roese
@ 2007-05-09  7:17   ` Jonathan Pratt
  2007-05-09  9:16     ` Eric BENARD
                       ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Jonathan Pratt @ 2007-05-09  7:17 UTC (permalink / raw)
  To: u-boot

Hi.

I have a IXP425 (IXDPG425 dev board) running u-boot [yay!] but I get the
message 'No Ethernet Found' in the start up sequence. I would like to
get ethernet working but I have been unable to find out what I should do
so it happens.

When I used a pristine copy of u-boot, it wouldn't build for this target
(couldn't make .depend in the cpu/ixp/npe directory or something
similar). Since I had been building (snapgear) Linux using the Intel
Open Access Library I copied IxNpeMicrocode.c from
IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE Library] into
the cpu/ixp/npe directory. Admittedly this was just a guess as to what
to do. U-boot now builds OK for this target, and I now have it running,
but without ethernet.

Is there some doco somewhere that explains what to do next, or does
someone have some insights to offer?

Thanks

Jonathan Pratt
Senior Development Engineer

ELPRO Technologies Pty Ltd
"Wireless Solutions Since 1983"
 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09  7:17   ` [U-Boot-Users] IXP425 ethernet & NPE microcode Jonathan Pratt
@ 2007-05-09  9:16     ` Eric BENARD
  2007-05-09  9:52     ` Stefan Roese
  2007-05-09 22:37     ` Wolfgang Denk
  2 siblings, 0 replies; 18+ messages in thread
From: Eric BENARD @ 2007-05-09  9:16 UTC (permalink / raw)
  To: u-boot

Hi Jonathan,

Jonathan Pratt a ?crit :
> When I used a pristine copy of u-boot, it wouldn't build for this
> target (couldn't make .depend in the cpu/ixp/npe directory or
> something similar). Since I had been building (snapgear) Linux using
> the Intel Open Access Library I copied IxNpeMicrocode.c from 
> IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE Library] into
>  the cpu/ixp/npe directory. Admittedly this was just a guess as to
> what to do. U-boot now builds OK for this target, and I now have it
> running, but without ethernet.
> 
You may check the Image Identifier in IxNpeMicrocode.c and be sure it's
the same as in the defines in include/IxNpeMicrocode.h else the
microcode search will fail and the NPE won't be loaded.

Eric

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09  7:17   ` [U-Boot-Users] IXP425 ethernet & NPE microcode Jonathan Pratt
  2007-05-09  9:16     ` Eric BENARD
@ 2007-05-09  9:52     ` Stefan Roese
  2007-05-09 20:32       ` Jonathan Pratt
  2007-05-09 22:37     ` Wolfgang Denk
  2 siblings, 1 reply; 18+ messages in thread
From: Stefan Roese @ 2007-05-09  9:52 UTC (permalink / raw)
  To: u-boot

Hi Jonathan,

On Wednesday 09 May 2007, Jonathan Pratt wrote:
> I have a IXP425 (IXDPG425 dev board) running u-boot [yay!] but I get the
> message 'No Ethernet Found' in the start up sequence. I would like to
> get ethernet working but I have been unable to find out what I should do
> so it happens.
>
> When I used a pristine copy of u-boot, it wouldn't build for this target
> (couldn't make .depend in the cpu/ixp/npe directory or something
> similar). Since I had been building (snapgear) Linux using the Intel
> Open Access Library I copied IxNpeMicrocode.c from
> IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE Library] into
> the cpu/ixp/npe directory. Admittedly this was just a guess as to what
> to do. U-boot now builds OK for this target, and I now have it running,
> but without ethernet.
>
> Is there some doco somewhere that explains what to do next, or does
> someone have some insights to offer?

Did you set the "ethaddr" environment variable? If not, please do and reset 
the board after saving it. Could be that the driver only enables the 
interfaces when ethXaddr is set.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09  9:52     ` Stefan Roese
@ 2007-05-09 20:32       ` Jonathan Pratt
  0 siblings, 0 replies; 18+ messages in thread
From: Jonathan Pratt @ 2007-05-09 20:32 UTC (permalink / raw)
  To: u-boot

Thanks.

For future reference, the ethernet mac id (ethaddr) needed to be set...

Jonathan Pratt
Senior Development Engineer
 

> -----Original Message-----
> From: Stefan Roese [mailto:sr at denx.de] 
> Sent: Wednesday, 9 May 2007 7:53 PM
> To: u-boot-users at lists.sourceforge.net
> Cc: Jonathan Pratt
> Subject: Re: [U-Boot-Users] IXP425 ethernet & NPE microcode
> 
> Hi Jonathan,
> 
> On Wednesday 09 May 2007, Jonathan Pratt wrote:
> > I have a IXP425 (IXDPG425 dev board) running u-boot [yay!] 
> but I get 
> > the message 'No Ethernet Found' in the start up sequence. I 
> would like 
> > to get ethernet working but I have been unable to find out what I 
> > should do so it happens.
> >
> > When I used a pristine copy of u-boot, it wouldn't build for this 
> > target (couldn't make .depend in the cpu/ixp/npe directory or 
> > something similar). Since I had been building (snapgear) 
> Linux using 
> > the Intel Open Access Library I copied IxNpeMicrocode.c from 
> > IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE 
> Library] into 
> > the cpu/ixp/npe directory. Admittedly this was just a guess 
> as to what 
> > to do. U-boot now builds OK for this target, and I now have it 
> > running, but without ethernet.
> >
> > Is there some doco somewhere that explains what to do next, or does 
> > someone have some insights to offer?
> 
> Did you set the "ethaddr" environment variable? If not, 
> please do and reset the board after saving it. Could be that 
> the driver only enables the interfaces when ethXaddr is set.
> 
> Best regards,
> Stefan
> 
> =====================================================================
> DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
> Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
> =====================================================================
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09  7:17   ` [U-Boot-Users] IXP425 ethernet & NPE microcode Jonathan Pratt
  2007-05-09  9:16     ` Eric BENARD
  2007-05-09  9:52     ` Stefan Roese
@ 2007-05-09 22:37     ` Wolfgang Denk
  2007-05-09 22:55       ` Jonathan Pratt
  2 siblings, 1 reply; 18+ messages in thread
From: Wolfgang Denk @ 2007-05-09 22:37 UTC (permalink / raw)
  To: u-boot

In message <7EDC24AB1ED682439657D3B7790609D39397CC@deepthought.Elpro.local> you wrote:
> 
> similar). Since I had been building (snapgear) Linux using the Intel
> Open Access Library I copied IxNpeMicrocode.c from
> IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE Library] into
> the cpu/ixp/npe directory. Admittedly this was just a guess as to what

Note that you cannot do this because of license conflicts.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,    CEO: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Let's say the docs present a simplified view of reality...    :-)
                      - Larry Wall in  <6940@jpl-devvax.JPL.NASA.GOV>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09 22:37     ` Wolfgang Denk
@ 2007-05-09 22:55       ` Jonathan Pratt
  2007-05-09 23:16         ` David Hawkins
  0 siblings, 1 reply; 18+ messages in thread
From: Jonathan Pratt @ 2007-05-09 22:55 UTC (permalink / raw)
  To: u-boot

Hi Wolfgang.

Is there another way of providing ethernet support for this platform
without the license violation? Are there any legal ramifications that
follow? (Are they more likely to come from Intel or elsewhere?)

It seems that u-boot wouldn't build until I added the file (I suppose
that I could have tried disabling ethernet)...

Jonathan Pratt
Senior Development Engineer
 

> -----Original Message-----
> From: wd at denx.de [mailto:wd at denx.de] 
> Sent: Thursday, 10 May 2007 8:37 AM
> To: Jonathan Pratt
> Cc: u-boot-users at lists.sourceforge.net; Stefan Roese
> Subject: Re: [U-Boot-Users] IXP425 ethernet & NPE microcode 
> 
> In message 
> <7EDC24AB1ED682439657D3B7790609D39397CC@deepthought.Elpro.loca
> l> you wrote:
> > 
> > similar). Since I had been building (snapgear) Linux using 
> the Intel 
> > Open Access Library I copied IxNpeMicrocode.c from 
> > IPL_ixp400NpeLibrary-2_0.zip [ie version 2.0 of the NPE 
> Library] into 
> > the cpu/ixp/npe directory. Admittedly this was just a guess 
> as to what
> 
> Note that you cannot do this because of license conflicts.
> 
> Best regards,
> 
> Wolfgang Denk
> 
> -- 
> DENX Software Engineering GmbH,    CEO: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> Let's say the docs present a simplified view of reality...    :-)
>                       - Larry Wall in  <6940@jpl-devvax.JPL.NASA.GOV>
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09 22:55       ` Jonathan Pratt
@ 2007-05-09 23:16         ` David Hawkins
  2007-05-10  1:50           ` Jonathan Pratt
  0 siblings, 1 reply; 18+ messages in thread
From: David Hawkins @ 2007-05-09 23:16 UTC (permalink / raw)
  To: u-boot

Hi Jonathan,

> Is there another way of providing ethernet support for this platform
> without the license violation? Are there any legal ramifications that
> follow? (Are they more likely to come from Intel or elsewhere?)
> 
> It seems that u-boot wouldn't build until I added the file (I suppose
> that I could have tried disabling ethernet)...

Take a look at the www.nslu2-linux.org project.

The NSLU2 is a Linksys USB network storage device.
It has the same issue with IXP4xx Intel firmware.

The Slug's, as they are fondly referred to, use
RedBoot as a bootloader, and there exist various
Linux kernels.

Look around the NSLU2 web site for comments on the
Intel firmware. If there is nothing definitive there,
I recall Rod Whitby posted messages to the nslu2-linux
newsgroup explaining the requirements; check the archives,
or join the group and ask Rod directly.

I haven't looked into the details, but I figured you
might not be aware of the project, so this might
help.

Regards,
Dave

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-09 23:16         ` David Hawkins
@ 2007-05-10  1:50           ` Jonathan Pratt
  2007-05-10  5:16             ` Stefan Roese
  0 siblings, 1 reply; 18+ messages in thread
From: Jonathan Pratt @ 2007-05-10  1:50 UTC (permalink / raw)
  To: u-boot

> -----Original Message-----
> From: David Hawkins [mailto:dwh at ovro.caltech.edu] 
> Sent: Thursday, 10 May 2007 9:16 AM
> To: Jonathan Pratt
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] IXP425 ethernet & NPE microcode
> 
> Hi Jonathan,
> 
> > Is there another way of providing ethernet support for this 
> platform 
> > without the license violation? Are there any legal 
> ramifications that 
> > follow? (Are they more likely to come from Intel or elsewhere?)
> > 
> > It seems that u-boot wouldn't build until I added the file 
> (I suppose 
> > that I could have tried disabling ethernet)...
> 
> Take a look at the www.nslu2-linux.org project.
> 
> The NSLU2 is a Linksys USB network storage device.
> It has the same issue with IXP4xx Intel firmware.
> 
> The Slug's, as they are fondly referred to, use RedBoot as a 
> bootloader, and there exist various Linux kernels.
> 
> Look around the NSLU2 web site for comments on the Intel 
> firmware. If there is nothing definitive there, I recall Rod 
> Whitby posted messages to the nslu2-linux newsgroup 
> explaining the requirements; check the archives, or join the 
> group and ask Rod directly.
> 
> I haven't looked into the details, but I figured you might 
> not be aware of the project, so this might help.
> 
> Regards,
> Dave


Thanks, David.

I was not aware of the project. They merely point out that it's a
necessary evil. The Intel redistribution restrictions seem rather
draconian, however.

I'm not sure about the conflict with u-boot (GPL), however, and whether
the issues are more than philosophical.

Jonathan Pratt
Senior Development Engineer
 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-10  1:50           ` Jonathan Pratt
@ 2007-05-10  5:16             ` Stefan Roese
  2007-05-10  9:04               ` Øyvind Repvik
  0 siblings, 1 reply; 18+ messages in thread
From: Stefan Roese @ 2007-05-10  5:16 UTC (permalink / raw)
  To: u-boot

On Thursday 10 May 2007, Jonathan Pratt wrote:
> I was not aware of the project. They merely point out that it's a
> necessary evil. The Intel redistribution restrictions seem rather
> draconian, however.
>
> I'm not sure about the conflict with u-boot (GPL), however, and whether
> the issues are more than philosophical.

You can include the NPE binary into U-Boot as you did, but this violates the 
GPL and therefore you are not allowed to ship products using this resulting 
image.

The best solution for this problem right now, if to not included the NPE 
binary in the U-Boot build process, but program it into a separate FLASH 
sector, and let the NPE ethernet driver load the NPE's with the binary from 
this location. This way we don't have link the NPE binary into the U-Boot 
image. Unfortunately nobody found the time to implement this solution till 
now.

And furthermore, it would be very desireable to drop the current NPE U-Boot 
ethernet driver implementation based on the original Intel code with the 
complex and ugly Intel access library completely, and re-implement the driver 
based on the new Linux IXP4xx NPE ethernet drivers. There are currently 2 
completely new drivers without the Intel access library which will result in 
lower memory footprint and much less and cleaner code.

Patches welcome! :-)

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-10  5:16             ` Stefan Roese
@ 2007-05-10  9:04               ` Øyvind Repvik
  2007-05-10 11:25                 ` Stefan Roese
  0 siblings, 1 reply; 18+ messages in thread
From: Øyvind Repvik @ 2007-05-10  9:04 UTC (permalink / raw)
  To: u-boot

On Thursday 10 May 2007 07:16:50 Stefan Roese wrote:
> On Thursday 10 May 2007, Jonathan Pratt wrote:

> And furthermore, it would be very desireable to drop the current NPE U-Boot 
> ethernet driver implementation based on the original Intel code with the 
> complex and ugly Intel access library completely, and re-implement the driver 
> based on the new Linux IXP4xx NPE ethernet drivers. There are currently 2 
> completely new drivers without the Intel access library which will result in 
> lower memory footprint and much less and cleaner code.

That would be Christian Hohnstaedt <chohnstaedt@innominate.com>'s driver
which is (afaik) in mainstream by now, and  
Krzysztof Halasa <khc@pm.waw.pl>'s driver, which is newer. There's a discussion
about these drivers on linux-arm-kernel. 

Getting either of those drivers fixed up and pushed to u-boot would be great. Of
course, one will still need to put the microcode somewhere else due to licencing,
but that's a minor matter.

?yvind Repvik
nslu2-linux developer

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-10  9:04               ` Øyvind Repvik
@ 2007-05-10 11:25                 ` Stefan Roese
  0 siblings, 0 replies; 18+ messages in thread
From: Stefan Roese @ 2007-05-10 11:25 UTC (permalink / raw)
  To: u-boot

On Thursday 10 May 2007, ?yvind Repvik wrote:
> > And furthermore, it would be very desireable to drop the current NPE
> > U-Boot ethernet driver implementation based on the original Intel code
> > with the complex and ugly Intel access library completely, and
> > re-implement the driver based on the new Linux IXP4xx NPE ethernet
> > drivers. There are currently 2 completely new drivers without the Intel
> > access library which will result in lower memory footprint and much less
> > and cleaner code.
>
> That would be Christian Hohnstaedt <chohnstaedt@innominate.com>'s driver
> which is (afaik) in mainstream by now, and 
> Krzysztof Halasa <khc@pm.waw.pl>'s driver, which is newer. There's a
> discussion about these drivers on linux-arm-kernel.

Yes, but IIRC the one from Christian never made it into mainstream. And the 
new one from Krzysztof seems to get quite good reactions.

> Getting either of those drivers fixed up and pushed to u-boot would be
> great.

Yes, both would be way better than the current implementation. Hopefully one 
of those drivers will make in into mainline and this should be the one to 
pick then.

> Of course, one will still need to put the microcode somewhere else 
> due to licencing, but that's a minor matter.

Yes, just a minor issue from the code point of view, but a big issue from the 
licensing point of view.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
@ 2007-05-10 13:08 Martijn de Gouw
  2007-05-10 17:53 ` Stefan Roese
  0 siblings, 1 reply; 18+ messages in thread
From: Martijn de Gouw @ 2007-05-10 13:08 UTC (permalink / raw)
  To: u-boot

Hi 

> On Thursday 10 May 2007, ?yvind Repvik wrote:
> > > And furthermore, it would be very desireable to drop the 
> current NPE
> > > U-Boot ethernet driver implementation based on the 
> original Intel code
> > > with the complex and ugly Intel access library completely, and
> > > re-implement the driver based on the new Linux IXP4xx NPE ethernet
> > > drivers. There are currently 2 completely new drivers 
> without the Intel
> > > access library which will result in lower memory 
> footprint and much less
> > > and cleaner code.
> >
> > That would be Christian Hohnstaedt 
> <chohnstaedt@innominate.com>'s driver
> > which is (afaik) in mainstream by now, and 
> > Krzysztof Halasa <khc@pm.waw.pl>'s driver, which is newer. There's a
> > discussion about these drivers on linux-arm-kernel.
> 
> Yes, but IIRC the one from Christian never made it into 
> mainstream. And the 
> new one from Krzysztof seems to get quite good reactions.

this driver is in the linux-2.6 tree of denx I do believe.
It fetches the npe binaries out of flash.

> 
> > Getting either of those drivers fixed up and pushed to 
> u-boot would be
> > great.
> 
> Yes, both would be way better than the current 
> implementation. Hopefully one 
> of those drivers will make in into mainline and this should 
> be the one to 
> pick then.
> 
> > Of course, one will still need to put the microcode somewhere else 
> > due to licencing, but that's a minor matter.

We have changed the intel code a little bit, that the npe microcode is read
from flash. loading this binaries seperatly from u-boot is not a 
license violation.

Right now, I'm creating a patch wich I will post later this day.

Best regards,
Martijn de Gouw

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
@ 2007-05-10 13:46 Martijn de Gouw
  2007-05-10 16:39 ` Wolfgang Denk
  0 siblings, 1 reply; 18+ messages in thread
From: Martijn de Gouw @ 2007-05-10 13:46 UTC (permalink / raw)
  To: u-boot

Hi 


> We have changed the intel code a little bit, that the npe 
> microcode is read
> from flash. loading this binaries seperatly from u-boot is not a 
> license violation.
> 
> Right now, I'm creating a patch wich I will post later this day.

pdnb3: trim u-boot size

Signed-off-by: Micha Nelissen <micha.nelissen@prodrive.nl>

---
commit aa380bf9caed231db860d3cbd040d049355c8dad
tree 59ded6605683ef41cc6e53e9671826c53b5c908e
parent 36b4fda0083606a54029d539ed838eebe26f71e2
author Micha Nelissen <micha.nelissen@prodrive.nl> Mon, 16 Apr 2007
11:48:31 +0200
committer Micha Nelissen <mn@linuxsrv1.prodrive.nl> Mon, 16 Apr 2007
11:48:31 +0200

 cpu/ixp/npe/IxNpeDl.c                   |  312 -------------------
 cpu/ixp/npe/IxNpeDlImageMgr.c           |  503
++-----------------------------
 cpu/ixp/npe/Makefile                    |    3 
 cpu/ixp/npe/include/IxNpeDlImageMgr_p.h |    3 
 cpu/ixp/npe/include/IxNpeMicrocode.h    |   24 -
 cpu/ixp/npe/npe.c                       |    4 
 include/configs/pdnb3.h                 |   14 +
 7 files changed, 48 insertions(+), 815 deletions(-)

diff --git a/cpu/ixp/npe/IxNpeDl.c b/cpu/ixp/npe/IxNpeDl.c
index ffe355c..4bddb78 100644
--- a/cpu/ixp/npe/IxNpeDl.c
+++ b/cpu/ixp/npe/IxNpeDl.c
@@ -106,212 +106,7 @@ static BOOL ixNpeDlNpeStarted[IX_NPEDL_N
  * static function prototypes.
  */
 PRIVATE IX_STATUS
-ixNpeDlNpeInitAndStartInternal (UINT32 *imageLibrary, UINT32 imageId);
-
-/*
- * Function definition: ixNpeDlMicrocodeImageLibraryOverride
- */
-PUBLIC IX_STATUS
-ixNpeDlMicrocodeImageLibraryOverride (UINT32 *clientImageLibrary)
-{
-    IX_STATUS status = IX_SUCCESS;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Entering
ixNpeDlMicrocodeImageLibraryOverride\n");
-
-    if (clientImageLibrary == NULL)
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlMicrocodeImageLibraryOverride -
"
-                               "invalid parameter\n");
-    }
-    else
-    {
-        status = ixNpeDlImageMgrMicrocodeImageLibraryOverride
(clientImageLibrary);
-        if (status != IX_SUCCESS)
-        {
-            status = IX_FAIL;
-        }
-    } /* end of if-else(clientImageLibrary) */
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Exiting ixNpeDlMicrocodeImageLibraryOverride : "
-                     "status = %d\n", status);
-    return status;
-}
-
-/*
- * Function definition: ixNpeDlImageDownload
- */
-PUBLIC IX_STATUS
-ixNpeDlImageDownload (IxNpeDlImageId *imageIdPtr,
-                      BOOL verify)
-{
-    UINT32        imageSize;
-    UINT32       *imageCodePtr  = NULL;
-    IX_STATUS     status;
-    IxNpeDlNpeId  npeId           = imageIdPtr->npeId;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Entering ixNpeDlImageDownload\n");
-
-    ixNpeDlStats.attemptedDownloads++;
-
-    /* Check input parameters */
-    if ((npeId >= IX_NPEDL_NPEID_MAX) || (npeId < 0))
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlImageDownload - invalid
parameter\n");
-    }
-    else
-    {
-        /* Ensure initialisation has been completed */
-        ixNpeDlNpeMgrInit();
-
-	/* If not IXP42X A0 stepping, proceed to check for existence of
npe's */
-	if ((IX_FEATURE_CTRL_SILICON_TYPE_A0 !=
-	     (ixFeatureCtrlProductIdRead() &
IX_FEATURE_CTRL_SILICON_STEPPING_MASK))
-	    || (IX_FEATURE_CTRL_DEVICE_TYPE_IXP42X !=
ixFeatureCtrlDeviceRead ()))
-	{
-            if (npeId == IX_NPEDL_NPEID_NPEA)
-            {
-                if (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEA) ==
-                    IX_FEATURE_CTRL_COMPONENT_DISABLED)
-                {
-                    IX_NPEDL_WARNING_REPORT("Warning: the NPE A
component you specified does"
-                                            " not exist\n");
-                    return IX_SUCCESS;
-                }
-            } /* end of if(npeId) */
-            else if (npeId == IX_NPEDL_NPEID_NPEB)
-            {
-                if (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEB)==
-                    IX_FEATURE_CTRL_COMPONENT_DISABLED)
-                {
-                    IX_NPEDL_WARNING_REPORT("Warning: the NPE B
component you specified"
-                                            " does not exist\n");
-                    return IX_SUCCESS;
-                }
-            } /* end of elseif(npeId) */
-            else if (npeId == IX_NPEDL_NPEID_NPEC)
-            {
-                if (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEC)==
-                    IX_FEATURE_CTRL_COMPONENT_DISABLED)
-                {
-                    IX_NPEDL_WARNING_REPORT("Warning: the NPE C
component you specified"
-                                            " does not exist\n");
-                    return IX_SUCCESS;
-                }
-            } /* end of elseif(npeId) */
-        } /* end of if(IX_FEATURE_CTRL_SILICON_TYPE_B0) */ /*End of
Silicon Type Check*/
-
-        /* stop and reset the NPE */
-        if (IX_SUCCESS != ixNpeDlNpeStopAndReset (npeId))
-        {
-            IX_NPEDL_ERROR_REPORT ("Failed to stop and reset NPE\n");
-            return IX_FAIL;
-        }
-
-        /* Locate image */
-        status = ixNpeDlImageMgrImageLocate (imageIdPtr, &imageCodePtr,
-                                             &imageSize);
-        if (IX_SUCCESS == status)
-        {
-            /*
-             * If download was successful, store image Id in list of
-             * currently loaded images. If a critical error occured
-             * during download, record that the NPE has an invalid
image
-             */
-            status = ixNpeDlNpeMgrImageLoad (npeId, imageCodePtr,
-                                             verify);
-            if (IX_SUCCESS == status)
-            {
-                ixNpeDlNpeState[npeId].imageId = *imageIdPtr;
-                ixNpeDlNpeState[npeId].validImage = TRUE;
-                ixNpeDlStats.successfulDownloads++;
-
-                status =  ixNpeDlNpeExecutionStart (npeId);
-            }
-            else if ((status == IX_NPEDL_CRITICAL_NPE_ERR) ||
-                     (status == IX_NPEDL_CRITICAL_MICROCODE_ERR))
-            {
-                ixNpeDlNpeState[npeId].imageId = *imageIdPtr;
-                ixNpeDlNpeState[npeId].validImage = FALSE;
-                ixNpeDlStats.criticalFailDownloads++;
-            }
-        } /* end of if(IX_SUCCESS) */ /* condition: image located
successfully in microcode image */
-    } /* end of if-else(npeId) */ /* condition: parameter checks ok */
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Exiting ixNpeDlImageDownload : status = %d\n",
status);
-    return status;
-}
-
-/*
- * Function definition: ixNpeDlAvailableImagesCountGet
- */
-PUBLIC IX_STATUS
-ixNpeDlAvailableImagesCountGet (UINT32 *numImagesPtr)
-{
-    IX_STATUS status;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Entering ixNpeDlAvailableImagesCountGet\n");
-
-    /* Check input parameters */
-    if (numImagesPtr == NULL)
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlAvailableImagesCountGet - "
-                               "invalid parameter\n");
-    }
-    else
-    {
-        /*
-         * Use ImageMgr module to get no. of images listed in Image
Library Header.
-         * If NULL is passed as imageListPtr parameter to following
function,
-         * it will only fill number of images into numImagesPtr
-         */
-        status = ixNpeDlImageMgrImageListExtract (NULL, numImagesPtr);
-    } /* end of if-else(numImagesPtr) */
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Exiting ixNpeDlAvailableImagesCountGet : "
-                     "status = %d\n", status);
-    return status;
-}
-
-/*
- * Function definition: ixNpeDlAvailableImagesListGet
- */
-PUBLIC IX_STATUS
-ixNpeDlAvailableImagesListGet (IxNpeDlImageId *imageIdListPtr,
-                               UINT32 *listSizePtr)
-{
-    IX_STATUS status;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Entering ixNpeDlAvailableImagesListGet\n");
-
-    /* Check input parameters */
-    if ((imageIdListPtr == NULL) || (listSizePtr == NULL))
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlAvailableImagesListGet - "
-                               "invalid parameter\n");
-    }
-    else
-    {
-        /* Call ImageMgr to get list of images listed in Image Library
Header */
-        status = ixNpeDlImageMgrImageListExtract (imageIdListPtr,
-                                                  listSizePtr);
-    } /* end of if-else(imageIdListPtr) */
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Exiting ixNpeDlAvailableImagesListGet : status =
%d\n",
-                     status);
-    return status;
-}
+ixNpeDlNpeInitAndStartInternal (UINT32 imageId);
 
 /*
  * Function definition: ixNpeDlLoadedImageGet
@@ -386,80 +181,6 @@ ixNpeDlLoadedImageGet (IxNpeDlNpeId npeI
 }
 
 /*
- * Function definition: ixNpeDlLatestImageGet
- */
-PUBLIC IX_STATUS
-ixNpeDlLatestImageGet (
-    IxNpeDlNpeId npeId,
-    IxNpeDlFunctionalityId functionalityId,
-    IxNpeDlImageId *imageIdPtr)
-{
-    IX_STATUS status;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Entering ixNpeDlLatestImageGet\n");
-
-    /* Check input parameters */
-    if ((npeId >= IX_NPEDL_NPEID_MAX) ||
-        (npeId < 0) ||
-        (imageIdPtr == NULL))
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlLatestImageGet - "
-                               "invalid parameter\n");
-    } /* end of if(npeId) */
-    else
-    {
-
-	/* If not IXP42X A0 stepping, proceed to check for existence of
npe's */
-	if ((IX_FEATURE_CTRL_SILICON_TYPE_A0 !=
-	     (ixFeatureCtrlProductIdRead() &
IX_FEATURE_CTRL_SILICON_STEPPING_MASK))
-	    || (IX_FEATURE_CTRL_DEVICE_TYPE_IXP42X !=
ixFeatureCtrlDeviceRead ()))
-        {
-            if (npeId == IX_NPEDL_NPEID_NPEA &&
-                (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEA) ==
-                 IX_FEATURE_CTRL_COMPONENT_DISABLED))
-            {
-                IX_NPEDL_WARNING_REPORT("Warning: the NPE A component
you specified does"
-                                        " not exist\n");
-                return IX_SUCCESS;
-            } /* end of if(npeId) */
-
-            if (npeId == IX_NPEDL_NPEID_NPEB &&
-                (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEB) ==
-                 IX_FEATURE_CTRL_COMPONENT_DISABLED))
-            {
-                IX_NPEDL_WARNING_REPORT("Warning: the NPE B component
you specified does"
-                                        " not exist\n");
-                return IX_SUCCESS;
-            } /* end of if(npeId) */
-
-            if (npeId == IX_NPEDL_NPEID_NPEC &&
-                (ixFeatureCtrlComponentCheck(IX_FEATURECTRL_NPEC) ==
-                 IX_FEATURE_CTRL_COMPONENT_DISABLED))
-            {
-                IX_NPEDL_WARNING_REPORT("Warning: the NPE C component
you specified does"
-                                        " not exist\n");
-                return IX_SUCCESS;
-            } /* end of if(npeId) */
-        } /* end of if not IXP42x-A0 silicon */
-
-        imageIdPtr->npeId = npeId;
-        imageIdPtr->functionalityId = functionalityId;
-        imageIdPtr->major = IMAGEID_MAJOR_NUMBER_DEFAULT;
-        imageIdPtr->minor = IMAGEID_MINOR_NUMBER_DEFAULT;
-        /* Call ImageMgr to get list of images listed in Image Library
Header */
-        status = ixNpeDlImageMgrLatestImageExtract(imageIdPtr);
-    } /* end of if-else(npeId) */
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-                     "Exiting ixNpeDlLatestImageGet : status = %d\n",
-                     status);
-
-    return status;
-}
-
-/*
  * Function definition: ixNpeDlNpeStopAndReset
  */
 PUBLIC IX_STATUS
@@ -770,8 +491,7 @@ ixNpeDlStatsReset (void)
  * Function definition: ixNpeDlNpeInitAndStartInternal
  */
 PRIVATE IX_STATUS
-ixNpeDlNpeInitAndStartInternal (UINT32 *imageLibrary,
-                                UINT32 imageId)
+ixNpeDlNpeInitAndStartInternal (UINT32 imageId)
 {
     UINT32        imageSize;
     UINT32       *imageCodePtr  = NULL;
@@ -863,8 +583,7 @@ ixNpeDlNpeInitAndStartInternal (UINT32 *
         }
 
         /* Locate image */
-        status = ixNpeDlImageMgrImageFind (imageLibrary, imageId,
-                                           &imageCodePtr, &imageSize);
+        status = ixNpeDlImageMgrImageFind (imageId, &imageCodePtr,
&imageSize);
         if (IX_SUCCESS == status)
         {
             /*
@@ -908,35 +627,12 @@ ixNpeDlNpeInitAndStartInternal (UINT32 *
 }
 
 /*
- * Function definition: ixNpeDlCustomImageNpeInitAndStart
- */
-PUBLIC IX_STATUS
-ixNpeDlCustomImageNpeInitAndStart (UINT32 *imageLibrary,
-                                   UINT32 imageId)
-{
-    IX_STATUS status;
-
-    if (imageLibrary == NULL)
-    {
-        status = IX_NPEDL_PARAM_ERR;
-        IX_NPEDL_ERROR_REPORT ("ixNpeDlCustomImageNpeInitAndStart "
-                               "- invalid parameter\n");
-    }
-    else
-    {
-        status = ixNpeDlNpeInitAndStartInternal (imageLibrary,
imageId);
-    } /* end of if-else(imageLibrary) */
-
-    return status;
-}
-
-/*
  * Function definition: ixNpeDlNpeInitAndStart
  */
 PUBLIC IX_STATUS
 ixNpeDlNpeInitAndStart (UINT32 imageId)
 {
-    return ixNpeDlNpeInitAndStartInternal (NULL, imageId);
+    return ixNpeDlNpeInitAndStartInternal (imageId);
 }
 
 /*
diff --git a/cpu/ixp/npe/IxNpeDlImageMgr.c
b/cpu/ixp/npe/IxNpeDlImageMgr.c
index e05c228..2ebc22b 100644
--- a/cpu/ixp/npe/IxNpeDlImageMgr.c
+++ b/cpu/ixp/npe/IxNpeDlImageMgr.c
@@ -133,369 +133,9 @@ typedef struct
  */
 static IxNpeDlImageMgrStats ixNpeDlImageMgrStats;
 
-/* default image */
-#ifdef IX_NPEDL_READ_MICROCODE_FROM_FILE
-static UINT32 *IxNpeMicroCodeImageLibrary = NULL;  /* Gets set to
proper value at runtime */
-#else
-static UINT32 *IxNpeMicroCodeImageLibrary = (UINT32
*)IxNpeMicrocode_array;
-#endif
-
-
-/*
- * static function prototypes.
- */
-PRIVATE BOOL
-ixNpeDlImageMgrSignatureCheck (UINT32 *microCodeImageLibrary);
-
-PRIVATE void  
-ixNpeDlImageMgrImageIdFormat (UINT32 rawImageId, IxNpeDlImageId
*imageId);
-
-PRIVATE BOOL
-ixNpeDlImageMgrImageIdCompare (IxNpeDlImageId *imageIdA, 
-				 IxNpeDlImageId *imageIdB);
-				 
-PRIVATE BOOL
-ixNpeDlImageMgrNpeFunctionIdCompare (IxNpeDlImageId *imageIdA,
-    				       IxNpeDlImageId *imageIdB);
-
-PRIVATE IX_STATUS
-ixNpeDlImageMgrImageFind_legacy (UINT32 *imageLibrary,
-                                 UINT32 imageId,
-                                 UINT32 **imagePtr,
-                                 UINT32 *imageSize);
-
-/*
- * Function definition: ixNpeDlImageMgrMicrocodeImageLibraryOverride
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-IX_STATUS
-ixNpeDlImageMgrMicrocodeImageLibraryOverride (
-    UINT32 *clientImageLibrary)
-{
-    IX_STATUS status = IX_SUCCESS;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT, 
-		     "Entering
ixNpeDlImageMgrMicrocodeImageLibraryOverride\n");
-
-    if (ixNpeDlImageMgrSignatureCheck (clientImageLibrary))
-    {
-	IxNpeMicroCodeImageLibrary = clientImageLibrary;
-    }
-    else
-    {
-	IX_NPEDL_ERROR_REPORT
("ixNpeDlImageMgrMicrocodeImageLibraryOverride: "
-			       "Client-supplied image has invalid
signature\n");
-	status = IX_FAIL;
-    }
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT, 
-		     "Exiting
ixNpeDlImageMgrMicrocodeImageLibraryOverride: status = %d\n",
-		     status);
-    return status;
-}
-
-
-/*
- * Function definition: ixNpeDlImageMgrImageListExtract
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-IX_STATUS
-ixNpeDlImageMgrImageListExtract (
-    IxNpeDlImageId *imageListPtr,
-    UINT32 *numImages)
-{
-    UINT32 rawImageId;
-    IxNpeDlImageId formattedImageId;
-    IX_STATUS status = IX_SUCCESS;
-    UINT32 imageCount = 0;
-    IxNpeDlImageMgrImageLibraryHeader *header;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT, 
-		     "Entering ixNpeDlImageMgrImageListExtract\n");
-
-    header = (IxNpeDlImageMgrImageLibraryHeader *)
IxNpeMicroCodeImageLibrary;
-
-    if (ixNpeDlImageMgrSignatureCheck (IxNpeMicroCodeImageLibrary))
-    {
-	/* for each image entry in the image header ... */
-	while (header->entry[imageCount].eohMarker !=
-	       IX_NPEDL_IMAGEMGR_END_OF_HEADER)
-	{
-	    /*
-	     * if the image list container from calling function has
capacity,
-	     * add the image id to the list 
-	     */
-	    if ((imageListPtr != NULL) && (imageCount < *numImages))
-	    {
-		rawImageId = header->entry[imageCount].image.id;
-	        ixNpeDlImageMgrImageIdFormat (rawImageId,
&formattedImageId);
-		imageListPtr[imageCount] = formattedImageId;
-	    }
-	    /* imageCount reflects no. of image entries in image library
header */
-	    imageCount++;  
-	}
-	
-	/*
-	 * if image list container from calling function was too small
to
-	 * contain all image ids in the header, set return status to
FAIL
-	 */
-	if ((imageListPtr != NULL) && (imageCount > *numImages))
-	{
-	    status = IX_FAIL;
-	    IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageListExtract: "
-				   "number of Ids found exceeds list
capacity\n");
-	    ixNpeDlImageMgrStats.imageIdListOverflow++;
-	}
-	/* return number of image ids found in image library header */
-	*numImages = imageCount;  
-    }
-    else
-    {
-	status = IX_FAIL;
-	IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageListExtract: "
-			       "invalid signature in image\n");
-    }
+static IX_STATUS ixNpeDlImageMgrImageFindAtAddr(
+    UINT32 *imageLibrary, UINT32 imageId, UINT32 **imagePtr, UINT32
*imageSize);
     
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT, 
-		     "Exiting ixNpeDlImageMgrImageListExtract: status =
%d\n",
-		     status);
-    return status;
-}
-
-
-/*
- * Function definition: ixNpeDlImageMgrImageLocate
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-IX_STATUS
-ixNpeDlImageMgrImageLocate (
-    IxNpeDlImageId *imageId,
-    UINT32 **imagePtr,
-    UINT32 *imageSize)
-{
-    UINT32 imageOffset;
-    UINT32 rawImageId;
-    IxNpeDlImageId formattedImageId;
-    /* used to index image entries in image library header */
-    UINT32 imageCount = 0;   
-    IX_STATUS status = IX_FAIL;
-    IxNpeDlImageMgrImageLibraryHeader *header;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Entering ixNpeDlImageMgrImageLocate\n");
-
-    header = (IxNpeDlImageMgrImageLibraryHeader *)
IxNpeMicroCodeImageLibrary;
-
-    if (ixNpeDlImageMgrSignatureCheck (IxNpeMicroCodeImageLibrary))
-    {
-	/* for each image entry in the image library header ... */
-	while (header->entry[imageCount].eohMarker !=
-	       IX_NPEDL_IMAGEMGR_END_OF_HEADER)
-	{
-	    rawImageId = header->entry[imageCount].image.id;
-	    ixNpeDlImageMgrImageIdFormat (rawImageId,
&formattedImageId);
-	    /* if a match for imageId is found in the image library
header... */
-	    if (ixNpeDlImageMgrImageIdCompare (imageId,
&formattedImageId))
-	    {
-		/*
-		 * get pointer to the image in the image library using
offset from
-		 * 1st word in image library
-		 */
-		imageOffset = header->entry[imageCount].image.offset;
-		*imagePtr = &IxNpeMicroCodeImageLibrary[imageOffset];
-		/* get the image size */
-		*imageSize = header->entry[imageCount].image.size;
-		status = IX_SUCCESS;
-		break;
-	    }
-	    imageCount++;
-	}
-	if (status != IX_SUCCESS)
-	{
-	    IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageLocate: "
-				   "imageId not found in image library
header\n");
-	    ixNpeDlImageMgrStats.imageIdNotFound++;
-	}
-    }
-    else
-    {
-	IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageLocate: "
-			       "invalid signature in image library\n");
-    }
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Exiting ixNpeDlImageMgrImageLocate: status =
%d\n", status);
-    return status;
-}
-
-/*
- * Function definition: ixNpeDlImageMgrLatestImageExtract
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-IX_STATUS
-ixNpeDlImageMgrLatestImageExtract (IxNpeDlImageId *imageId)
-{
-    UINT32 imageCount = 0; 
-    UINT32 rawImageId;
-    IxNpeDlImageId formattedImageId;
-    IX_STATUS status = IX_FAIL;
-    IxNpeDlImageMgrImageLibraryHeader *header;
-    
-    
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Entering ixNpeDlImageMgrLatestImageExtract\n");
-		     
-    header = (IxNpeDlImageMgrImageLibraryHeader *)
IxNpeMicroCodeImageLibrary;
-    
-    if (ixNpeDlImageMgrSignatureCheck (IxNpeMicroCodeImageLibrary))
-    {
-	/* for each image entry in the image library header ... */
-	while (header->entry[imageCount].eohMarker !=
-	       IX_NPEDL_IMAGEMGR_END_OF_HEADER)
-	{
-	    rawImageId = header->entry[imageCount].image.id;
-	    ixNpeDlImageMgrImageIdFormat (rawImageId,
&formattedImageId);
-	    /* 
-	     * if a match for the npe Id and functionality Id of the
imageId is
-	     *  found in the image library header... 
-	     */
-            if(ixNpeDlImageMgrNpeFunctionIdCompare(imageId,
&formattedImageId))
-            {
-                if(imageId->major <= formattedImageId.major)
-                {
-                    if(imageId->minor < formattedImageId.minor)
-                    {
-                        imageId->minor = formattedImageId.minor;
-                    }
-                    imageId->major = formattedImageId.major;
-                }
-                status = IX_SUCCESS;
-            }
-            imageCount++;
-	}
-	if (status != IX_SUCCESS)
-	{
-	    IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrLatestImageExtract: "
-				   "imageId not found in image library
header\n");
-	    ixNpeDlImageMgrStats.imageIdNotFound++;
-	}
-    }
-    else
-    {
-	IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrLatestImageGet: "
-			       "invalid signature in image library\n");
-    }
-
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Exiting ixNpeDlImageMgrLatestImageGet: status =
%d\n", status);
-    return status;
-}
-
-/*
- * Function definition: ixNpeDlImageMgrSignatureCheck
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-PRIVATE BOOL
-ixNpeDlImageMgrSignatureCheck (UINT32 *microCodeImageLibrary)
-{
-    IxNpeDlImageMgrImageLibraryHeader *header =
-	(IxNpeDlImageMgrImageLibraryHeader *) microCodeImageLibrary;
-    BOOL result = TRUE;
-
-    if (header->signature != IX_NPEDL_IMAGEMGR_SIGNATURE)
-    {
-	result = FALSE;
-	ixNpeDlImageMgrStats.invalidSignature++;
-    }
-
-    return result;
-}
-
-
-/*
- * Function definition: ixNpeDlImageMgrImageIdFormat
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-PRIVATE void
-ixNpeDlImageMgrImageIdFormat (
-    UINT32 rawImageId, 
-    IxNpeDlImageId *imageId)
-{  
-    imageId->npeId = (rawImageId >>
-				IX_NPEDL_IMAGEID_NPEID_OFFSET) &
-	IX_NPEDL_NPEIMAGE_FIELD_MASK;
-    imageId->functionalityId = (rawImageId >> 
-				  IX_NPEDL_IMAGEID_FUNCTIONID_OFFSET) &
-	IX_NPEDL_NPEIMAGE_FIELD_MASK;
-    imageId->major = (rawImageId >>
-				IX_NPEDL_IMAGEID_MAJOR_OFFSET) &
-	IX_NPEDL_NPEIMAGE_FIELD_MASK;
-    imageId->minor = (rawImageId >>
-				IX_NPEDL_IMAGEID_MINOR_OFFSET) &
-	IX_NPEDL_NPEIMAGE_FIELD_MASK;
-
-}
-
-
-/*
- * Function definition: ixNpeDlImageMgrImageIdCompare
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-PRIVATE BOOL
-ixNpeDlImageMgrImageIdCompare (
-    IxNpeDlImageId *imageIdA,
-    IxNpeDlImageId *imageIdB)
-{
-    if ((imageIdA->npeId   == imageIdB->npeId)   &&
-	(imageIdA->functionalityId == imageIdB->functionalityId) &&
-	(imageIdA->major   == imageIdB->major)   &&
-	(imageIdA->minor   == imageIdB->minor))
-    {
-	return TRUE;
-    }
-    else
-    {
-	return FALSE;
-    }
-}
-
-/*
- * Function definition: ixNpeDlImageMgrNpeFunctionIdCompare
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
- */
-PRIVATE BOOL
-ixNpeDlImageMgrNpeFunctionIdCompare (
-    IxNpeDlImageId *imageIdA,
-    IxNpeDlImageId *imageIdB)
-{
-    if ((imageIdA->npeId   == imageIdB->npeId)   &&
-	(imageIdA->functionalityId == imageIdB->functionalityId))
-    {
-	return TRUE;
-    }
-    else
-    {
-	return FALSE;
-    }
-}
-
-
 /*
  * Function definition: ixNpeDlImageMgrStatsShow
  */
@@ -528,143 +168,62 @@ ixNpeDlImageMgrStatsReset (void)
 
 
 /*
- * Function definition: ixNpeDlImageMgrImageFind_legacy
- *
- * FOR BACKWARD-COMPATIBILITY WITH OLD NPE IMAGE LIBRARY FORMAT
- * AND/OR LEGACY API FUNCTIONS. TO BE DEPRECATED IN A FUTURE RELEASE
+ * Function definition: ixNpeDlImageMgrImageFind
  */
-PRIVATE IX_STATUS
-ixNpeDlImageMgrImageFind_legacy (
-    UINT32 *imageLibrary,
+IX_STATUS
+ixNpeDlImageMgrImageFind (
     UINT32 imageId,
     UINT32 **imagePtr,
     UINT32 *imageSize)
 {
-    UINT32 imageOffset;
-    /* used to index image entries in image library header */
-    UINT32 imageCount = 0;   
-    IX_STATUS status = IX_FAIL;
-    IxNpeDlImageMgrImageLibraryHeader *header;
-    BOOL imageFound = FALSE;
-
-    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Entering ixNpeDlImageMgrImageFind\n");
-
-
-    /* If user didn't specify a library to use, use the default
-     * one from IxNpeMicrocode.h
-     */
-    if (imageLibrary == NULL)
-    {
-	imageLibrary = IxNpeMicroCodeImageLibrary;
-    }
-    
-    if (ixNpeDlImageMgrSignatureCheck (imageLibrary))
-    {
-	header = (IxNpeDlImageMgrImageLibraryHeader *) imageLibrary;
+    UINT32 *imageLib1, *imageLib2;
+    IX_STATUS ret;
     
-	/* for each image entry in the image library header ... */
-	while ((header->entry[imageCount].eohMarker !=
-               IX_NPEDL_IMAGEMGR_END_OF_HEADER) && !(imageFound))
-	{
-	    /* if a match for imageId is found in the image library
header... */
-	    if (imageId == header->entry[imageCount].image.id)
-	    {
-		/*
-		 * get pointer to the image in the image library using
offset from
-		 * 1st word in image library
-		 */
-		imageOffset = header->entry[imageCount].image.offset;
-		*imagePtr = &imageLibrary[imageOffset];
-		/* get the image size */
-		*imageSize = header->entry[imageCount].image.size;
-		status = IX_SUCCESS;
-		imageFound = TRUE;
-	    }
-	    imageCount++;
-	}
-	if (status != IX_SUCCESS)
-	{
+    switch (imageId) {
+	case IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL:
+	case
IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS:
+	    imageLib1 = (UINT32*)CONFIG_NPE_B_ADDR1;
+	    imageLib2 = (UINT32*)CONFIG_NPE_B_ADDR2;
+	    break;
+	case IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL:
+	case
IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS:
+	    imageLib1 = (UINT32*)CONFIG_NPE_C_ADDR1;
+	    imageLib2 = (UINT32*)CONFIG_NPE_C_ADDR2;
+	    break;
+	default:
 	    IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageFind: "
 				   "imageId not found in image library
header\n");
 	    ixNpeDlImageMgrStats.imageIdNotFound++;
-	}
-    }
-    else
-    {
-	IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageFind: "
-			       "invalid signature in image library\n");
+            /* reached end of library, image not found */
+            return IX_FAIL;
     }
 
-    IX_NPEDL_TRACE1 (IX_NPEDL_FN_ENTRY_EXIT,
-		     "Exiting ixNpeDlImageMgrImageFind: status = %d\n",
status);
-    return status;
+    ret = ixNpeDlImageMgrImageFindAtAddr(imageLib1, imageId, imagePtr,
imageSize);
+    if (ret != IX_SUCCESS)
+	ret = ixNpeDlImageMgrImageFindAtAddr(imageLib2, imageId,
imagePtr, imageSize);
+    return ret;
 }
 
-
-/*
- * Function definition: ixNpeDlImageMgrImageFind
- */
-IX_STATUS
-ixNpeDlImageMgrImageFind (
+static IX_STATUS
+ixNpeDlImageMgrImageFindAtAddr (
     UINT32 *imageLibrary,
     UINT32 imageId,
     UINT32 **imagePtr,
     UINT32 *imageSize)
 {
     IxNpeDlImageMgrImageHeader *image;
-    UINT32 offset = 0;
 
-    /* If user didn't specify a library to use, use the default
-     * one from IxNpeMicrocode.h
-     */
-    if (imageLibrary == NULL)
+    if (*imageLibrary == NPE_IMAGE_MARKER)
     {
-#ifdef IX_NPEDL_READ_MICROCODE_FROM_FILE
-	if (ixNpeMicrocode_binaryArray == NULL)
-        {
-	    printk (KERN_ERR "ixp400.o:  ERROR, no Microcode found in
memory\n");
-	    return IX_FAIL;
-	}
-	else
-	{
-	    imageLibrary = ixNpeMicrocode_binaryArray;
-	}
-#else
-	imageLibrary = IxNpeMicroCodeImageLibrary;
-#endif /* IX_NPEDL_READ_MICROCODE_FROM_FILE */
-    }
-
-    /* For backward's compatibility with previous image format */
-    if (ixNpeDlImageMgrSignatureCheck(imageLibrary))
-    {
-        return ixNpeDlImageMgrImageFind_legacy(imageLibrary,
-                                               imageId,
-                                               imagePtr,
-                                               imageSize);
-    }
-
-    while (*(imageLibrary+offset) == NPE_IMAGE_MARKER)
-    {
-        image = (IxNpeDlImageMgrImageHeader *)(imageLibrary+offset);
-        offset += sizeof(IxNpeDlImageMgrImageHeader)/sizeof(UINT32);
+        image = (IxNpeDlImageMgrImageHeader *)imageLibrary;
+        imageLibrary +=
sizeof(IxNpeDlImageMgrImageHeader)/sizeof(UINT32);
         
         if (image->id == imageId)
         {
-            *imagePtr = imageLibrary + offset;
+            *imagePtr = imageLibrary;
             *imageSize = image->size;
             return IX_SUCCESS;
         }
-        /* 2 consecutive NPE_IMAGE_MARKER's indicates end of library */
-        else if (image->id == NPE_IMAGE_MARKER)
-        {
-	    IX_NPEDL_ERROR_REPORT ("ixNpeDlImageMgrImageFind: "
-				   "imageId not found in image library
header\n");
-	    ixNpeDlImageMgrStats.imageIdNotFound++;
-            /* reached end of library, image not found */
-            return IX_FAIL;
-        }
-        offset += image->size;
     }
 
     /* If we get here, our image library may be corrupted */
diff --git a/cpu/ixp/npe/Makefile b/cpu/ixp/npe/Makefile
index 4de34fd..4ad1184 100644
--- a/cpu/ixp/npe/Makefile
+++ b/cpu/ixp/npe/Makefile
@@ -53,13 +53,13 @@ COBJS := npe.o \
 	IxEthDBHashtable.o \
 	IxEthDBLearning.o \
 	IxEthDBMem.o \
+	IxEthDBVlan.o \
 	IxEthDBNPEAdaptor.o \
 	IxEthDBPortUpdate.o \
 	IxEthDBReports.o \
 	IxEthDBSearch.o \
 	IxEthDBSpanningTree.o \
 	IxEthDBUtil.o \
-	IxEthDBVlan.o \
 	IxEthDBWiFi.o \
 	IxEthMii.o \
 	IxQMgrAqmIf.o \
@@ -72,7 +72,6 @@ COBJS := npe.o \
 	IxNpeDlImageMgr.o \
 	IxNpeDlNpeMgr.o \
 	IxNpeDlNpeMgrUtils.o \
-	IxNpeMicrocode.o \
 	IxNpeMh.o \
 	IxNpeMhConfig.o \
 	IxNpeMhReceive.o \
diff --git a/cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
b/cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
index 622f879..a5592c1 100644
--- a/cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
+++ b/cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
@@ -350,8 +350,7 @@ ixNpeDlImageMgrStatsReset (void);
  *      - IX_FAIL otherwise
  */ 
 IX_STATUS
-ixNpeDlImageMgrImageFind (UINT32 *imageLibrary,
-                          UINT32 imageId,
+ixNpeDlImageMgrImageFind (UINT32 imageId,
 			  UINT32 **imagePtr,
 			  UINT32 *imageSize);
 
diff --git a/cpu/ixp/npe/include/IxNpeMicrocode.h
b/cpu/ixp/npe/include/IxNpeMicrocode.h
index 893d803..c17f2d2 100644
--- a/cpu/ixp/npe/include/IxNpeMicrocode.h
+++ b/cpu/ixp/npe/include/IxNpeMicrocode.h
@@ -267,30 +267,6 @@ extern unsigned IxNpeMicrocode_array[];
 #endif
 #endif
 
-/*
- * sr: undef all but the bare minimum to reduce flash usage for U-Boot
- */
-#undef IX_NPEDL_NPEIMAGE_NPEA_HSS0
-#undef IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_SPHY_1_PORT
-#undef IX_NPEDL_NPEIMAGE_NPEA_HSS0_ATM_MPHY_1_PORT
-#undef IX_NPEDL_NPEIMAGE_NPEA_ATM_MPHY_12_PORT
-#undef IX_NPEDL_NPEIMAGE_NPEA_DMA
-#undef IX_NPEDL_NPEIMAGE_NPEA_HSS_2_PORT
-#undef IX_NPEDL_NPEIMAGE_NPEA_ETH
-#undef IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL
-#undef IX_NPEDL_NPEIMAGE_NPEA_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS
-#undef IX_NPEDL_NPEIMAGE_NPEA_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
-#undef IX_NPEDL_NPEIMAGE_NPEB_ETH
-#undef IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL
-/* #undef
IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS */
-#undef IX_NPEDL_NPEIMAGE_NPEB_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
-#undef IX_NPEDL_NPEIMAGE_NPEB_DMA
-#undef IX_NPEDL_NPEIMAGE_NPEC_ETH
-#undef IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL
-/* #undef
IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIREWALL_VLAN_QOS */
-#undef IX_NPEDL_NPEIMAGE_NPEC_ETH_SPAN_FIREWALL_VLAN_QOS_HDR_CONV
-#undef IX_NPEDL_NPEIMAGE_NPEC_DMA
-
 /**
  * @} defgroup IxNpeMicrocode
  */
diff --git a/cpu/ixp/npe/npe.c b/cpu/ixp/npe/npe.c
index ab7ca8b..c37ac62 100644
--- a/cpu/ixp/npe/npe.c
+++ b/cpu/ixp/npe/npe.c
@@ -310,14 +310,14 @@ static int npe_csr_load(void)
 	}
 
 	if (npe_used[IX_ETH_PORT_1] && npe_exists[IX_ETH_PORT_1] &&
-
ixNpeDlNpeInitAndStart(IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIRE
WALL_VLAN_QOS)
+
ixNpeDlNpeInitAndStart(IX_NPEDL_NPEIMAGE_NPEB_ETH_LEARN_FILTER_SPAN_FIRE
WALL)
 	    != IX_SUCCESS) {
 		printf("Error downloading firmware to NPE-B!\n");
 		return 0;
 	}
 
 	if (npe_used[IX_ETH_PORT_2] && npe_exists[IX_ETH_PORT_2] &&
-
ixNpeDlNpeInitAndStart(IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIRE
WALL_VLAN_QOS)
+
ixNpeDlNpeInitAndStart(IX_NPEDL_NPEIMAGE_NPEC_ETH_LEARN_FILTER_SPAN_FIRE
WALL)
 	    != IX_SUCCESS) {
 		printf("Error downloading firmware to NPE-C!\n");
 		return 0;
diff --git a/include/configs/pdnb3.h b/include/configs/pdnb3.h
index e23f0cb..b99b65f 100644
--- a/include/configs/pdnb3.h
+++ b/include/configs/pdnb3.h
@@ -40,6 +40,10 @@ #define CONFIG_DISPLAY_BOARDINFO 1	/* di
  * Ethernet
  */
 #define CONFIG_IXP4XX_NPE	1	/* include IXP4xx NPE support
*/
+#define CONFIG_NPE_B_ADDR1	0x5003a000
+#define CONFIG_NPE_B_ADDR2	0x50078000
+#define CONFIG_NPE_C_ADDR1	0x5003d000
+#define CONFIG_NPE_C_ADDR2	0x5007c000
 #define CONFIG_NET_MULTI	1
 #define	CONFIG_PHY_ADDR		16	/* NPE0 PHY address
*/
 #define CONFIG_HAS_ETH1
@@ -72,14 +76,14 @@ #define CONFIG_ENV_OVERWRITE
 #define CONFIG_BAUDRATE         115200
 #define CFG_IXP425_CONSOLE	IXP425_UART1   /* we use UART1 for
console */
 
-#define CONFIG_COMMANDS	       (CONFIG_CMD_DFL	| \
+#define CONFIG_COMMANDS	       ((CONFIG_CMD_DFL  & \
+				    ~(CFG_CMD_LOADB   | \
+				      CFG_CMD_LOADS)) | \
 				CFG_CMD_DHCP	| \
-				CFG_CMD_DATE	| \
 				CFG_CMD_NET	| \
 				CFG_CMD_MII	| \
 				CFG_CMD_NAND	| \
 				CFG_CMD_I2C	| \
-				CFG_CMD_ELF	| \
 				CFG_CMD_PING)
 
 /* This must be included AFTER the definition of CONFIG_COMMANDS (if
any) */
@@ -178,7 +182,7 @@ #define PHYS_SDRAM_1_SIZE       0x020000
 
 #define CFG_FLASH_BASE          0x50000000
 #define CFG_MONITOR_BASE	CFG_FLASH_BASE
-#define CFG_MONITOR_LEN		(472 << 10)	/* Reserve 472
kB for Monitor	*/
+#define CFG_MONITOR_LEN		(224 << 10)	/* U-boot size
*/
 
 /*
  * Expansion bus settings
@@ -199,7 +203,7 @@ #define CFG_SDRAM_REFRESH_CNT 	0x81a
 #define FLASH_BASE0_PRELIM	CFG_FLASH_BASE		/* FLASH bank #0
*/
 
 #define CFG_MAX_FLASH_BANKS	1	/* max number of memory banks
*/
-#define CFG_MAX_FLASH_SECT	256	/* max number of sectors on one
chip	*/
+#define CFG_MAX_FLASH_SECT	128	/* max number of sectors on one
chip	*/
 
 #define CFG_FLASH_ERASE_TOUT	120000	/* Timeout for Flash Erase (in
ms)	*/
 #define CFG_FLASH_WRITE_TOUT	1000	/* Timeout for Flash Write (in
ms)	*/ 

Best regards,
Martijn de Gouw

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-10 13:46 Martijn de Gouw
@ 2007-05-10 16:39 ` Wolfgang Denk
  0 siblings, 0 replies; 18+ messages in thread
From: Wolfgang Denk @ 2007-05-10 16:39 UTC (permalink / raw)
  To: u-boot

In message <4CD35CD1F8085945B597F80EEC8942135FA5F0@exc01.bk.prodrive.nl> you wrote:
> 
>  cpu/ixp/npe/IxNpeDl.c                   |  312 -------------------
>  cpu/ixp/npe/IxNpeDlImageMgr.c           |  503
> ++-----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
> -    IX_NPEDL_TRACE0 (IX_NPEDL_FN_ENTRY_EXIT,
> -                     "Entering
> ixNpeDlMicrocodeImageLibraryOverride\n");
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
> -        status = ixNpeDlImageMgrMicrocodeImageLibraryOverride
> (clientImageLibrary);

Your patch is corrupted because it was line-wrapped by your mailer.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,    CEO: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"The number  of  Unix  installations  has  grown  to  10,  with  more
expected."    - The Unix Programmer's Manual, 2nd Edition, June, 1972

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-10 13:08 Martijn de Gouw
@ 2007-05-10 17:53 ` Stefan Roese
  0 siblings, 0 replies; 18+ messages in thread
From: Stefan Roese @ 2007-05-10 17:53 UTC (permalink / raw)
  To: u-boot

Hi Martijn,

On Thursday 10 May 2007, Martijn de Gouw wrote:
> > Yes, but IIRC the one from Christian never made it into
> > mainstream. And the
> > new one from Krzysztof seems to get quite good reactions.
>
> this driver is in the linux-2.6 tree of denx I do believe.
> It fetches the npe binaries out of flash.

No. Even the DENX Linux repository does not support this driver right now. 
Your changes never made it into our version. We should resolve this issue 
soon though.

> > > Of course, one will still need to put the microcode somewhere else
> > > due to licencing, but that's a minor matter.
>
> We have changed the intel code a little bit, that the npe microcode is read
> from flash. loading this binaries seperatly from u-boot is not a
> license violation.
>
> Right now, I'm creating a patch wich I will post later this day.

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
@ 2007-05-11  7:05 Martijn de Gouw
  2007-05-11  8:00 ` Stefan Roese
  0 siblings, 1 reply; 18+ messages in thread
From: Martijn de Gouw @ 2007-05-11  7:05 UTC (permalink / raw)
  To: u-boot

Here is the patch again

> Your patch is corrupted because it was line-wrapped by your mailer.

Crappy outlouk mailer stuff,
now attached.

Best regards,
Martijn de Gouw
-------------- next part --------------
A non-text attachment was scrubbed...
Name: u-boot-npe-nor.diff.gz
Type: application/x-gzip
Size: 6916 bytes
Desc: u-boot-npe-nor.diff.gz
Url : http://lists.denx.de/pipermail/u-boot/attachments/20070511/349113ac/attachment.bin 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
  2007-05-11  7:05 [U-Boot-Users] IXP425 ethernet & NPE microcode Martijn de Gouw
@ 2007-05-11  8:00 ` Stefan Roese
  0 siblings, 0 replies; 18+ messages in thread
From: Stefan Roese @ 2007-05-11  8:00 UTC (permalink / raw)
  To: u-boot

Hi Martijn,

On Friday 11 May 2007, Martijn de Gouw wrote:
> > Your patch is corrupted because it was line-wrapped by your mailer.
>
> Crappy outlouk mailer stuff,
> now attached.

Doesn't apply on current version:

patching file cpu/ixp/npe/IxNpeDl.c
patching file cpu/ixp/npe/IxNpeDlImageMgr.c
patching file cpu/ixp/npe/Makefile
patching file cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
patching file cpu/ixp/npe/include/IxNpeMicrocode.h
patching file cpu/ixp/npe/npe.c
patching file include/configs/pdnb3.h
Hunk #2 FAILED at 76.
Hunk #3 FAILED at 182.
Hunk #4 succeeded at 221 (offset 18 lines).
2 out of 4 hunks FAILED -- saving rejects to file include/configs/pdnb3.h.rej

Could you please create a new patch against the current U-Boot version and 
resend. And please add a more descriptive commit log than:

pdnb3: trim u-boot size

Signed-off-by: Micha Nelissen <micha.nelissen@prodrive.nl>


And please also add a little description (perhap in doc/README.ixp-npe) on how 
to configure the newly added configuration defines "CONFIG_NPE_x_ADDRx". I 
assume they point to a location in FLASH where the NPE binary should be 
stored, right? Please describe this so that other people (and me after a few 
months) understand this too.

Thanks.

Groeten,
Stefan

=====================================================================
DENX Software Engineering GmbH, HRB 165235 Munich, CEO: Wolfgang Denk
Office:  Kirchenstr. 5,       D-82194 Groebenzell,            Germany
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot-Users] IXP425 ethernet & NPE microcode
       [not found] <4CD35CD1F8085945B597F80EEC8942135FA60A@exc01.bk.prodrive.nl>
@ 2007-06-06 12:21 ` Stefan Roese
  0 siblings, 0 replies; 18+ messages in thread
From: Stefan Roese @ 2007-06-06 12:21 UTC (permalink / raw)
  To: u-boot

Hi Martijn,

On Monday 14 May 2007, Martijn de Gouw wrote:
> > Doesn't apply on current version:
> >
> > Could you please create a new patch against the current
> > U-Boot version and
>
> here is a new patch

Sorry it took me so long. Still doesn't apply though:

stefan at ubuntu:~/git/u-boot/u-boot-ixp$ cg-patch < u-boot-npe-nor.diff
patching file include/configs/pdnb3.h
Hunk #2 succeeded at 93 (offset 6 lines).
Hunk #3 succeeded at 132 (offset 6 lines).
Hunk #4 FAILED at 184.
1 out of 4 hunks FAILED -- saving rejects to file include/configs/pdnb3.h.rej
patching file tools/env/fw_env.h
patching file cpu/ixp/npe/IxNpeDl.c
patching file cpu/ixp/npe/IxNpeDlImageMgr.c
patching file cpu/ixp/npe/Makefile
patching file cpu/ixp/npe/include/IxNpeDlImageMgr_p.h
patching file cpu/ixp/npe/include/IxNpeMicrocode.h
patching file cpu/ixp/npe/npe.c
patching file include/configs/pdnb3.h
Hunk #2 FAILED at 76.
Hunk #3 FAILED at 182.
Hunk #4 succeeded@223 (offset 20 lines).
2 out of 4 hunks FAILED -- saving rejects to file include/configs/pdnb3.h.rej

This is quite confusing since you seem to have combined two patches in this 
single patch file. For example pdnb3.h is patched twice! If it's easier for 
you, then please send me two patches, one for the IXP-NPE stuff and one for 
your pdnb3 config file. Thanks.

Could you please resend a patch against the current repository? I'll promise 
to check and submit this time quickly.

> > resend. And please add a more descriptive commit log than:
>
> Patch includes trimming of unused functionality in NPE driver.
>
> The following defines define the address to load firmware from:
>
> CONFIG_NPE_B_ADDR1
> CONFIG_NPE_C_ADDR1
>
> There are also a second set addresses, in case first fails to contain a
> valid microcode image:
>
> CONFIG_NPE_B_ADDR2
> CONFIG_NPE_C_ADDR2

Thanks. But it's still missing the requested README. As I wrote earlier:

"
And please also add a little description (perhap in doc/README.ixp-npe) on how 
to configure the newly added configuration defines "CONFIG_NPE_x_ADDRx". I 
assume they point to a location in FLASH where the NPE binary should be 
stored, right? Please describe this so that other people (and me after a few 
months) understand this too.
"

Best would be to add a small example here, what file needs to get downloaded 
from Intel (NPE binary), and how to program this to the correct location in 
FLASH.

Thanks.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2007-06-06 12:21 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-11  7:05 [U-Boot-Users] IXP425 ethernet & NPE microcode Martijn de Gouw
2007-05-11  8:00 ` Stefan Roese
     [not found] <4CD35CD1F8085945B597F80EEC8942135FA60A@exc01.bk.prodrive.nl>
2007-06-06 12:21 ` Stefan Roese
  -- strict thread matches above, loose matches on Subject: below --
2007-05-10 13:46 Martijn de Gouw
2007-05-10 16:39 ` Wolfgang Denk
2007-05-10 13:08 Martijn de Gouw
2007-05-10 17:53 ` Stefan Roese
2007-05-02  4:39 [U-Boot-Users] U-boot & MonteJade start up Jonathan Pratt
2007-05-02  5:16 ` Stefan Roese
2007-05-09  7:17   ` [U-Boot-Users] IXP425 ethernet & NPE microcode Jonathan Pratt
2007-05-09  9:16     ` Eric BENARD
2007-05-09  9:52     ` Stefan Roese
2007-05-09 20:32       ` Jonathan Pratt
2007-05-09 22:37     ` Wolfgang Denk
2007-05-09 22:55       ` Jonathan Pratt
2007-05-09 23:16         ` David Hawkins
2007-05-10  1:50           ` Jonathan Pratt
2007-05-10  5:16             ` Stefan Roese
2007-05-10  9:04               ` Øyvind Repvik
2007-05-10 11:25                 ` Stefan Roese

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox