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

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@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
+ /* 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
/* NS16550 Configuration */ #define CONFIG_SYS_NS16550

Dear Thomas Weber,
In message 1273242366-6552-1-git-send-email-weber@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@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

On 07.05.2010 17:15, Wolfgang Denk wrote:
Dear Thomas Weber,
In message 1273242366-6552-1-git-send-email-weber@corscience.de 1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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

On Friday 07 May 2010 12:58:34 Thomas Weber wrote:
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.
i dont know the arm u-boot port at all, but perhaps the asm-arm/io.h should be changed like so: #ifndef __io # define __io(p) (p) #endif -mike

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@corscience.de 1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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
It's not a problem with GCC ... I get the same problem as well. And the problem appeared recently.
btw. for me, DM9000 is buggered as well.
3699c28e6d16b563629c285311a0ce62a2c4c5d0 still worked fine. I'm bisecting it.

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@corscience.de 1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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

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@corscience.de
1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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.

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@corscience.de
1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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; }

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@corscience.de
1273242366-6552-1-git-send-email-weber@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@corscience.de weber@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@denx.de
Thomas
participants (5)
-
Marek Vasut
-
Mike Frysinger
-
Thomas Weber
-
Thomas Weber
-
Wolfgang Denk