* [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 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 --
[not found] <4CD35CD1F8085945B597F80EEC8942135FA60A@exc01.bk.prodrive.nl>
2007-06-06 12:21 ` [U-Boot-Users] IXP425 ethernet & NPE microcode Stefan Roese
2007-05-11 7:05 Martijn de Gouw
2007-05-11 8:00 ` 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