public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] U-boot & MonteJade start up
@ 2007-05-02  4:39 Jonathan Pratt
  2007-05-02  5:16 ` Stefan Roese
  0 siblings, 1 reply; 21+ messages in thread
From: Jonathan Pratt @ 2007-05-02  4:39 UTC (permalink / raw)
  To: u-boot

I'm trying to get u-boot up and running on an Intel MonteJade (IXDPG425)
board without much luck.

I downloaded version 2.0 of the Npe code and placed it in the
appropriate directory and the build worked fine. Getting it up and
running on the board has proved more difficulat.

I'm using a Macraigor USB wiggler to download to the FLASH. If anyone
has done this successfully then I would appreciate some pointers as I'm
not sure what I've done thus far is correct.

As far as I understand it, the xscale starts up in little endian mode.
The application is, however, big-endian. When I program the FLASH it
appears to be big-endian, and I don't as yet understand where the
transition from little endian occurs. The u-boot code in the current
state doesn't go anywhere with no response from the serial port.

Is there some pre-bootloader code which does the transition to
big-endian? If so, do I need to program this sepeartely? If not, where
does the transition to big-endian occur and why does the code I see (in
the srec file, for example) appear to start off big-endian? I can
imagine ld getting pretty confused trying to link a little-endian
snippet to a big-endian application.

Thanks

Jonathan Pratt

ELPRO Technologies Pty Ltd
"Wireless Solutions Since 1983"
ISO 9001:2000 Accredited
ABN 17 010 627 835

9/12 Billabong St, Stafford, 
QLD, Australia 4053
Telephone: +61 7 3352 4533   
Facsimile: +61 7 3352 4577

Web Site: http://www.elprotech.com

^ permalink raw reply	[flat|nested] 21+ 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; 21+ 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] 21+ 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; 21+ 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] 21+ 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; 21+ 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] 21+ messages in thread
[parent not found: <4CD35CD1F8085945B597F80EEC8942135FA60A@exc01.bk.prodrive.nl>]

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

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-02  4:39 [U-Boot-Users] U-boot & MonteJade start up Jonathan Pratt
2007-05-02  5:16 ` Stefan Roese
2007-05-02  6:22   ` Jonathan Pratt
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
  -- strict thread matches above, loose matches on Subject: below --
2007-05-10 13:08 Martijn de Gouw
2007-05-10 17:53 ` Stefan Roese
2007-05-10 13:46 Martijn de Gouw
2007-05-10 16:39 ` Wolfgang Denk
2007-05-11  7:05 Martijn de Gouw
2007-05-11  8:00 ` Stefan Roese
     [not found] <4CD35CD1F8085945B597F80EEC8942135FA60A@exc01.bk.prodrive.nl>
2007-06-06 12:21 ` Stefan Roese

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