* [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug
@ 2015-07-15 20:26 York Sun
2015-07-16 7:01 ` Albert ARIBAUD
0 siblings, 1 reply; 5+ messages in thread
From: York Sun @ 2015-07-15 20:26 UTC (permalink / raw)
To: u-boot
fdt_addr_t and fdt_size_t can be either 64-bit or 32-bit, depending
on the architecture. Change the type to phys_addr_t and phys_size_t.
Signed-off-by: York Sun <yorksun@freescale.com>
---
include/fdtdec.h | 7 +++----
lib/fdtdec.c | 4 ++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/include/fdtdec.h b/include/fdtdec.h
index 2323603..c61734c 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -14,6 +14,7 @@
* changes to support FDT are minimized.
*/
+#include <linux/types.h>
#include <libfdt.h>
#include <pci.h>
@@ -21,15 +22,13 @@
* A typedef for a physical address. Note that fdt data is always big
* endian even on a litle endian machine.
*/
+typedef phys_addr_t fdt_addr_t;
+typedef phys_size_t fdt_size_t;
#ifdef CONFIG_PHYS_64BIT
-typedef u64 fdt_addr_t;
-typedef u64 fdt_size_t;
#define FDT_ADDR_T_NONE (-1ULL)
#define fdt_addr_to_cpu(reg) be64_to_cpu(reg)
#define fdt_size_to_cpu(reg) be64_to_cpu(reg)
#else
-typedef u32 fdt_addr_t;
-typedef u32 fdt_size_t;
#define FDT_ADDR_T_NONE (-1U)
#define fdt_addr_to_cpu(reg) be32_to_cpu(reg)
#define fdt_size_to_cpu(reg) be32_to_cpu(reg)
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 9877849..1f22fab 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -102,8 +102,8 @@ fdt_addr_t fdtdec_get_addr_size(const void *blob, int node,
size = (fdt_size_t *)((char *)cell +
sizeof(fdt_addr_t));
*sizep = fdt_size_to_cpu(*size);
- debug("addr=%08lx, size=%08x\n",
- (ulong)addr, *sizep);
+ debug("addr=%pa, size=%zx\n",
+ &addr, *sizep);
} else {
debug("%08lx\n", (ulong)addr);
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread* [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug
2015-07-15 20:26 [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug York Sun
@ 2015-07-16 7:01 ` Albert ARIBAUD
2015-07-16 16:40 ` Simon Glass
0 siblings, 1 reply; 5+ messages in thread
From: Albert ARIBAUD @ 2015-07-16 7:01 UTC (permalink / raw)
To: u-boot
Hello York,
On Wed, 15 Jul 2015 13:26:46 -0700, York Sun <yorksun@freescale.com>
wrote:
> fdt_addr_t and fdt_size_t can be either 64-bit or 32-bit, depending
> on the architecture. Change the type to phys_addr_t and phys_size_t.
If the only reason for changing the type is to avoid warnings in
debug() then I don't think this is the right approach (see my message
re PRIu64).
If, on the other hand, there is reason to believe the fdt_addr_t and
fdt_size_t are wrongly defined and should be typedef'd or ~define's as
phys_*_t, then the rationale for this should be exposed.
Amicalement,
--
Albert.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug
2015-07-16 7:01 ` Albert ARIBAUD
@ 2015-07-16 16:40 ` Simon Glass
2015-07-16 17:00 ` York Sun
0 siblings, 1 reply; 5+ messages in thread
From: Simon Glass @ 2015-07-16 16:40 UTC (permalink / raw)
To: u-boot
Hi,
On 16 July 2015 at 01:01, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
> Hello York,
>
> On Wed, 15 Jul 2015 13:26:46 -0700, York Sun <yorksun@freescale.com>
> wrote:
>> fdt_addr_t and fdt_size_t can be either 64-bit or 32-bit, depending
>> on the architecture. Change the type to phys_addr_t and phys_size_t.
>
> If the only reason for changing the type is to avoid warnings in
> debug() then I don't think this is the right approach (see my message
> re PRIu64).
>
> If, on the other hand, there is reason to believe the fdt_addr_t and
> fdt_size_t are wrongly defined and should be typedef'd or ~define's as
> phys_*_t, then the rationale for this should be exposed.
>
> Amicalement,
> --
> Albert.
For LBA we do this in ide.h:
#ifdef CONFIG_SYS_64BIT_LBA
typedef uint64_t lbaint_t;
#define LBAF "%llx"
#define LBAFU "%llu"
#else
typedef ulong lbaint_t;
#define LBAF "%lx"
#define LBAFU "%lu"
#endif
How about something similar for this case? It would be nice to avoid
promoting everything to 64-bit given that very few platforms are
actually 64-bit.
Regards,
Simon
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug
2015-07-16 16:40 ` Simon Glass
@ 2015-07-16 17:00 ` York Sun
2015-07-16 17:10 ` Simon Glass
0 siblings, 1 reply; 5+ messages in thread
From: York Sun @ 2015-07-16 17:00 UTC (permalink / raw)
To: u-boot
On 07/16/2015 09:40 AM, Simon Glass wrote:
> Hi,
>
> On 16 July 2015 at 01:01, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
>> Hello York,
>>
>> On Wed, 15 Jul 2015 13:26:46 -0700, York Sun <yorksun@freescale.com>
>> wrote:
>>> fdt_addr_t and fdt_size_t can be either 64-bit or 32-bit, depending
>>> on the architecture. Change the type to phys_addr_t and phys_size_t.
>>
>> If the only reason for changing the type is to avoid warnings in
>> debug() then I don't think this is the right approach (see my message
>> re PRIu64).
>>
>> If, on the other hand, there is reason to believe the fdt_addr_t and
>> fdt_size_t are wrongly defined and should be typedef'd or ~define's as
>> phys_*_t, then the rationale for this should be exposed.
>>
>> Amicalement,
>> --
>> Albert.
>
> For LBA we do this in ide.h:
>
> #ifdef CONFIG_SYS_64BIT_LBA
> typedef uint64_t lbaint_t;
> #define LBAF "%llx"
> #define LBAFU "%llu"
> #else
> typedef ulong lbaint_t;
> #define LBAF "%lx"
> #define LBAFU "%lu"
> #endif
>
> How about something similar for this case? It would be nice to avoid
> promoting everything to 64-bit given that very few platforms are
> actually 64-bit.
>
Simon,
Do you think fdt_addr_t should be phys_addr_t? According to the comments you put
in file, "A typedef for a physical address". If yes, I can change the commit
message.
On the other hand, if we want to keep the current typedef, we can use Albert's
PRIu64 technique, we then don't have to define the format string.
York
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug
2015-07-16 17:00 ` York Sun
@ 2015-07-16 17:10 ` Simon Glass
0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2015-07-16 17:10 UTC (permalink / raw)
To: u-boot
Hi York,
On 16 July 2015 at 11:00, York Sun <yorksun@freescale.com> wrote:
>
>
> On 07/16/2015 09:40 AM, Simon Glass wrote:
>> Hi,
>>
>> On 16 July 2015 at 01:01, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
>>> Hello York,
>>>
>>> On Wed, 15 Jul 2015 13:26:46 -0700, York Sun <yorksun@freescale.com>
>>> wrote:
>>>> fdt_addr_t and fdt_size_t can be either 64-bit or 32-bit, depending
>>>> on the architecture. Change the type to phys_addr_t and phys_size_t.
>>>
>>> If the only reason for changing the type is to avoid warnings in
>>> debug() then I don't think this is the right approach (see my message
>>> re PRIu64).
>>>
>>> If, on the other hand, there is reason to believe the fdt_addr_t and
>>> fdt_size_t are wrongly defined and should be typedef'd or ~define's as
>>> phys_*_t, then the rationale for this should be exposed.
>>>
>>> Amicalement,
>>> --
>>> Albert.
>>
>> For LBA we do this in ide.h:
>>
>> #ifdef CONFIG_SYS_64BIT_LBA
>> typedef uint64_t lbaint_t;
>> #define LBAF "%llx"
>> #define LBAFU "%llu"
>> #else
>> typedef ulong lbaint_t;
>> #define LBAF "%lx"
>> #define LBAFU "%lu"
>> #endif
>>
>> How about something similar for this case? It would be nice to avoid
>> promoting everything to 64-bit given that very few platforms are
>> actually 64-bit.
>>
>
> Simon,
>
> Do you think fdt_addr_t should be phys_addr_t? According to the comments you put
> in file, "A typedef for a physical address". If yes, I can change the commit
> message.
Sounds good to me.
>
> On the other hand, if we want to keep the current typedef, we can use Albert's
> PRIu64 technique, we then don't have to define the format string.
The only reason for a difference typedef is the big endian nature of
FDT data. So I think your patch is fine on that front.
Regards,
Simon
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-07-16 17:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-15 20:26 [U-Boot] [RFC] lib/fdtdec: Fix compiling warning for debug York Sun
2015-07-16 7:01 ` Albert ARIBAUD
2015-07-16 16:40 ` Simon Glass
2015-07-16 17:00 ` York Sun
2015-07-16 17:10 ` Simon Glass
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox