xref: /openbmc/u-boot/arch/arm/include/asm/byteorder.h (revision 707acd01)
1819833afSPeter Tyser /*
2819833afSPeter Tyser  *  linux/include/asm-arm/byteorder.h
3819833afSPeter Tyser  *
4819833afSPeter Tyser  * ARM Endian-ness.  In little endian mode, the data bus is connected such
5819833afSPeter Tyser  * that byte accesses appear as:
6819833afSPeter Tyser  *  0 = d0...d7, 1 = d8...d15, 2 = d16...d23, 3 = d24...d31
7819833afSPeter Tyser  * and word accesses (data or instruction) appear as:
8819833afSPeter Tyser  *  d0...d31
9819833afSPeter Tyser  *
10819833afSPeter Tyser  * When in big endian mode, byte accesses appear as:
11819833afSPeter Tyser  *  0 = d24...d31, 1 = d16...d23, 2 = d8...d15, 3 = d0...d7
12819833afSPeter Tyser  * and word accesses (data or instruction) appear as:
13819833afSPeter Tyser  *  d0...d31
14819833afSPeter Tyser  */
15819833afSPeter Tyser #ifndef __ASM_ARM_BYTEORDER_H
16819833afSPeter Tyser #define __ASM_ARM_BYTEORDER_H
17819833afSPeter Tyser 
18819833afSPeter Tyser 
19819833afSPeter Tyser #include <asm/types.h>
20819833afSPeter Tyser 
21819833afSPeter Tyser #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
22819833afSPeter Tyser #  define __BYTEORDER_HAS_U64__
23819833afSPeter Tyser #  define __SWAB_64_THRU_32__
24819833afSPeter Tyser #endif
25819833afSPeter Tyser 
26*795611e6STom Rini #if defined(__ARMEB__) || defined(__AARCH64EB__)
270ae76531SDavid Feng #include <linux/byteorder/big_endian.h>
280ae76531SDavid Feng #else
290ae76531SDavid Feng #include <linux/byteorder/little_endian.h>
300ae76531SDavid Feng #endif
310ae76531SDavid Feng 
32819833afSPeter Tyser #endif
33