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

Thomas Weber weber at corscience.de
Tue May 11 10:46:09 CEST 2010


Hello Marek,

On 05/11/10 04:25, Marek Vasut wrote:
> 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;
>         }

I think you need:
Message-Id: <1273525682-27308-1-git-send-email-wd at denx.de>

Thomas


More information about the U-Boot mailing list