[U-Boot] [PATCH] Devkit8000: Fix compilation after changes in dm9000

Marek Vasut marek.vasut at gmail.com
Tue May 11 06:25:58 CEST 2010


Dne Út 11. května 2010 05:47:40 Marek Vasut napsal(a):
> Dne Út 11. května 2010 05:28:38 Marek Vasut napsal(a):
> > Dne Pá 7. května 2010 18:58:34 Thomas Weber napsal(a):
> > >  On 07.05.2010 17:15, Wolfgang Denk wrote:
> > > Dear Thomas Weber,
> > > 
> > > In message <1273242366-6552-1-git-send-email-weber at corscience.de>
> > > 
> > > <1273242366-6552-1-git-send-email-weber at corscience.de> you wrote:
> > >  In commit a45dde2293c816138e53c26eca6fd0322583f9a6 the I/O accessor
> > >  for
> > > 
> > > the DM9000 is changed.
> > > 
> > > The definition of __io is required to use the standard I/O accessors
> > > from asm/io.h.
> > > 
> > > Signed-off-by: Thomas Weber <weber at corscience.de> <weber at corscience.de>
> > > ---
> > > 
> > >  include/configs/devkit8000.h |    2 ++
> > >  1 files changed, 2 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/include/configs/devkit8000.h
> > > b/include/configs/devkit8000.h index 7d1332f..6e53c0d 100644
> > > --- a/include/configs/devkit8000.h
> > > +++ b/include/configs/devkit8000.h
> > > @@ -31,6 +31,7 @@
> > > 
> > >  #ifndef __CONFIG_H
> > >  #define __CONFIG_H
> > > 
> > > +
> > > 
> > >  Unrelated (und unneeded) change. Please omit this.
> > >  
> > >   /* High Level Configuration Options */
> > >  
> > >  #define CONFIG_ARMCORTEXA8	1	/* This is an ARM V7 CPU core */
> > >  #define CONFIG_OMAP		1	/* in a TI OMAP core */
> > > 
> > > @@ -79,6 +80,7 @@
> > > 
> > >  #define	CONFIG_DM9000_USE_16BIT		1
> > >  #define CONFIG_DM9000_NO_SROM		1
> > >  #undef	CONFIG_DM9000_DEBUG
> > > 
> > > +#define __io
> > > 
> > >  Hm... the commit message says "__io is required to use the standard
> > > 
> > > I/O accessors" - but I don't see any of these in this definition here?
> > > 
> > > Best regards,
> > > 
> > > Wolfgang Denk
> > > 
> > >  Hi,
> > > 
> > > thanks for reviewing the patch.
> > > 
> > > In
> > > dm9000.c is <asm/io.h> included and outb, etc. used
> > > and in
> > > arch/arm/include/asm/io.h +201
> > > I found  #ifdef __io
> > > but __io wasn't defined.
> > > 
> > > I also think, that all arm-boards that uses the dm9000 will have this
> > > problem at the moment. I tried to compile at91sam9261 and got the same
> > > problem.
> > > 
> > > Because I have an other problem with gcc I cannot compile completely.
> > > 
> > > Thomas
> > 
> > 52dbac69c27dee67a4c051b1055d93b0ac4e2062 <-- this one probably causes the
> > other errors
> 
> Interesting ... the commit 'doesn't seem to be there'
> 
> It seems someone made some inccorect operation with git and some patches
> were forgotten/rewritten by old files.

I take what I said back, it's there, I mislooked.

But, here's a workaround-patch (unapplicable obviously). Conclusion from why it 
works with this is up to you:

diff --git a/include/common.h b/include/common.h
index 8bca04f..ce67403 100644
--- a/include/common.h
+++ b/include/common.h
@@ -218,7 +218,7 @@ void        hang            (void) __attribute__ 
((noreturn));
 /* */
 phys_size_t initdram (int);
 int    display_options (void);
-void   print_size(unsigned long long, const char *);
+void   print_size(unsigned /*long*/ long, const char *);
 int    print_buffer (ulong addr, void* data, uint width, uint count, uint 
linelen);
 
 /* common/main.c */
diff --git a/lib/display_options.c b/lib/display_options.c
index 86df05d..146e50a 100644
--- a/lib/display_options.c
+++ b/lib/display_options.c
@@ -43,11 +43,11 @@ int display_options (void)
  * xxx GiB, xxx.y GiB, etc as needed; allow for optional trailing string
  * (like "\n")
  */
-void print_size(unsigned long long size, const char *s)
+void print_size(unsigned /*long*/ long size, const char *s)
 {
        unsigned long m = 0, n;
-       static const char names[] = {'E', 'P', 'T', 'G', 'M', 'K'};
-       unsigned long long d = 1ULL << (10 * ARRAY_SIZE(names));
+       static const char names[] = {/*'E', 'P', 'T',*/ 'G', 'M', 'K'};
+       unsigned long /*long*/ d = 1ULL << (10 * ARRAY_SIZE(names));
        char c = 0;
        unsigned int i;
 
@@ -59,7 +59,7 @@ void print_size(unsigned long long size, const char *s)
        }
 
        if (!c) {
-               printf("%llu Bytes%s", size, s);
+               printf("%lu Bytes%s", size, s);
                return;
        }


More information about the U-Boot mailing list