aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-02-10 23:55:44 -0500
committerMichael Ellerman <mpe@ellerman.id.au>2015-03-16 03:58:31 -0400
commit6c87b2202f5414be3acae9df2e1833e8b46c5688 (patch)
tree66b618a24bac394d129577d24ecfd423b467ebba /arch/powerpc
parent1680e4ba3d4f0ab12c387975584924f585fc77eb (diff)
powerpc/boot/fdt: Add little-endian support to libfdt wrappers
For epapr-style boot, we may be little-endian. This change implements the proper conversion for fdt*_to_cpu and cpu_to_fdt*. We also need the full cpu_to_* and *_to_cpu macros for this. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/boot/libfdt_env.h14
-rw-r--r--arch/powerpc/boot/of.h8
2 files changed, 16 insertions, 6 deletions
diff --git a/arch/powerpc/boot/libfdt_env.h b/arch/powerpc/boot/libfdt_env.h
index c89fdb1b80e1..8dcd744e5728 100644
--- a/arch/powerpc/boot/libfdt_env.h
+++ b/arch/powerpc/boot/libfdt_env.h
@@ -4,15 +4,17 @@
4#include <types.h> 4#include <types.h>
5#include <string.h> 5#include <string.h>
6 6
7#include "of.h"
8
7typedef u32 uint32_t; 9typedef u32 uint32_t;
8typedef u64 uint64_t; 10typedef u64 uint64_t;
9typedef unsigned long uintptr_t; 11typedef unsigned long uintptr_t;
10 12
11#define fdt16_to_cpu(x) (x) 13#define fdt16_to_cpu(x) be16_to_cpu(x)
12#define cpu_to_fdt16(x) (x) 14#define cpu_to_fdt16(x) cpu_to_be16(x)
13#define fdt32_to_cpu(x) (x) 15#define fdt32_to_cpu(x) be32_to_cpu(x)
14#define cpu_to_fdt32(x) (x) 16#define cpu_to_fdt32(x) cpu_to_be32(x)
15#define fdt64_to_cpu(x) (x) 17#define fdt64_to_cpu(x) be64_to_cpu(x)
16#define cpu_to_fdt64(x) (x) 18#define cpu_to_fdt64(x) cpu_to_be64(x)
17 19
18#endif /* _ARCH_POWERPC_BOOT_LIBFDT_ENV_H */ 20#endif /* _ARCH_POWERPC_BOOT_LIBFDT_ENV_H */
diff --git a/arch/powerpc/boot/of.h b/arch/powerpc/boot/of.h
index c8c1750aba0c..5603320dce07 100644
--- a/arch/powerpc/boot/of.h
+++ b/arch/powerpc/boot/of.h
@@ -24,11 +24,19 @@ void of_console_init(void);
24typedef u32 __be32; 24typedef u32 __be32;
25 25
26#ifdef __LITTLE_ENDIAN__ 26#ifdef __LITTLE_ENDIAN__
27#define cpu_to_be16(x) swab16(x)
28#define be16_to_cpu(x) swab16(x)
27#define cpu_to_be32(x) swab32(x) 29#define cpu_to_be32(x) swab32(x)
28#define be32_to_cpu(x) swab32(x) 30#define be32_to_cpu(x) swab32(x)
31#define cpu_to_be64(x) swab64(x)
32#define be64_to_cpu(x) swab64(x)
29#else 33#else
34#define cpu_to_be16(x) (x)
35#define be16_to_cpu(x) (x)
30#define cpu_to_be32(x) (x) 36#define cpu_to_be32(x) (x)
31#define be32_to_cpu(x) (x) 37#define be32_to_cpu(x) (x)
38#define cpu_to_be64(x) (x)
39#define be64_to_cpu(x) (x)
32#endif 40#endif
33 41
34#define PROM_ERROR (-1u) 42#define PROM_ERROR (-1u)