summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Denk <wd@xpert.denx.de>2008-10-21 11:23:56 +0200
committerWolfgang Denk <wd@denx.de>2008-10-21 21:35:44 +0200
commitdef0819e920b05b34b56d8b42e1e43d9b89a52d6 (patch)
tree955dd2fbe11c8573f84a3a308e2eb5b0f41fd09c
parent06c29422189388f3082c5bab226af17e90d51ee7 (diff)
downloadu-boot-imx-def0819e920b05b34b56d8b42e1e43d9b89a52d6.zip
u-boot-imx-def0819e920b05b34b56d8b42e1e43d9b89a52d6.tar.gz
u-boot-imx-def0819e920b05b34b56d8b42e1e43d9b89a52d6.tar.bz2
FDT: don't use private kernel header files
On some systems (for example Fedora Core 4) U-Boot builds with the following wanrings only: ... In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! This patch fixes this problem. Signed-off-by: Wolfgang Denk <wd@denx.de>
-rw-r--r--include/image.h20
-rw-r--r--include/libfdt_env.h19
2 files changed, 25 insertions, 14 deletions
diff --git a/include/image.h b/include/image.h
index 82e6345..1598b61 100644
--- a/include/image.h
+++ b/include/image.h
@@ -33,27 +33,29 @@
#ifndef __IMAGE_H__
#define __IMAGE_H__
-#include <asm/byteorder.h>
-#include <command.h>
-
-#ifndef USE_HOSTCC
-#include <lmb.h>
-#include <linux/string.h>
-#include <asm/u-boot.h>
-
-#else
+#if USE_HOSTCC
+#include <endian.h>
/* new uImage format support enabled on host */
#define CONFIG_FIT 1
#define CONFIG_OF_LIBFDT 1
#define CONFIG_FIT_VERBOSE 1 /* enable fit_format_{error,warning}() */
+#else
+
+#include <lmb.h>
+#include <linux/string.h>
+#include <asm/u-boot.h>
+#include <asm/byteorder.h>
+
#endif /* USE_HOSTCC */
#if defined(CONFIG_FIT) && !defined(CONFIG_OF_LIBFDT)
#error "CONFIG_OF_LIBFDT not enabled, required by CONFIG_FIT!"
#endif
+#include <command.h>
+
#if defined(CONFIG_FIT)
#include <fdt.h>
#include <libfdt.h>
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.