Wolfgang Denk wrote:
> 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

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 <[EMAIL PROTECTED]>

Thanks,
gvb

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to