Dear Jerry Van Baren, In message <[EMAIL PROTECTED]> 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 -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED] The speed of time is one second per second. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot