[U-Boot] FDT include file problems
Jerry Van Baren
gvb.uboot at gmail.com
Tue Oct 21 01:43:45 CEST 2008
Wolfgang Denk wrote:
> Dear Jerry Van Baren,
>
> In message <48FC5AB3.10302 at gmail.com> you wrote:
>> Google hasn't been very helpful for answering the question of how to
>> handle endian issues in userland (non-kernel) code. Hmmm. Grrr. Maybe
>> I'm not asking it the right question.
>
> This patch seems to work for me:
>
> diff --git a/include/libfdt_env.h b/include/libfdt_env.h
> index 671c3a8..355ebf2 100644
> --- a/include/libfdt_env.h
> +++ b/include/libfdt_env.h
> @@ -24,19 +24,28 @@
> #ifdef USE_HOSTCC
> #include <stdint.h>
> #include <string.h>
> +#include <endian.h>
> +#include <byteswap.h>
> #else
> #include <linux/string.h>
> #include <linux/types.h>
> +#include <asm/byteorder.h>
> #endif /* USE_HOSTCC */
>
> #include <stddef.h>
> -#include <asm/byteorder.h>
> extern struct fdt_header *working_fdt; /* Pointer to the working fdt */
>
> -#define fdt32_to_cpu(x) __be32_to_cpu(x)
> -#define cpu_to_fdt32(x) __cpu_to_be32(x)
> -#define fdt64_to_cpu(x) __be64_to_cpu(x)
> -#define cpu_to_fdt64(x) __cpu_to_be64(x)
> +#if __BYTE_ORDER == __LITTLE_ENDIAN
> +#define fdt32_to_cpu(x) bswap_32(x)
> +#define cpu_to_fdt32(x) bswap_32(x)
> +#define fdt64_to_cpu(x) bswap_64(x)
> +#define cpu_to_fdt64(x) bswap_64(x)
> +#else
> +#define fdt32_to_cpu(x) (x)
> +#define cpu_to_fdt32(x) (x)
> +#define fdt64_to_cpu(x) (x)
> +#define cpu_to_fdt64(x) (x)
> +#endif
>
> /*
> * Types for `void *' pointers.
>
> Best regards,
>
> Wolfgang Denk
Dear Wolfgang,
This works for me too. Do you want to apply it directly? That would be
fastest and easiest.
Acked-by: Gerald Van Baren <vanbaren at cideas.com>
Thanks,
gvb
More information about the U-Boot
mailing list