xref: /rk3399_rockchip-uboot/arch/arm/include/asm/byteorder.h (revision 0ae7653128c80a4f2920cbe9b124792c2fd9d9e0)
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*0ae76531SDavid Feng #ifdef	CONFIG_ARM64
27*0ae76531SDavid Feng 
28*0ae76531SDavid Feng #ifdef __AARCH64EB__
29*0ae76531SDavid Feng #include <linux/byteorder/big_endian.h>
30*0ae76531SDavid Feng #else
31*0ae76531SDavid Feng #include <linux/byteorder/little_endian.h>
32*0ae76531SDavid Feng #endif
33*0ae76531SDavid Feng 
34*0ae76531SDavid Feng #else	/* CONFIG_ARM64 */
35*0ae76531SDavid Feng 
36819833afSPeter Tyser #ifdef __ARMEB__
37819833afSPeter Tyser #include <linux/byteorder/big_endian.h>
38819833afSPeter Tyser #else
39819833afSPeter Tyser #include <linux/byteorder/little_endian.h>
40819833afSPeter Tyser #endif
41819833afSPeter Tyser 
42*0ae76531SDavid Feng #endif	/* CONFIG_ARM64 */
43*0ae76531SDavid Feng 
44819833afSPeter Tyser #endif
45