1 /* 2 * (C) Copyright 2012 3 * Stefan Roese, DENX Software Engineering, sr@denx.de. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <common.h> 9 #include <asm/io.h> 10 #include <asm/byteorder.h> 11 12 #if !defined(CONFIG_SYS_BOOTCOUNT_LE) && !defined(CONFIG_SYS_BOOTCOUNT_BE) 13 # if __BYTE_ORDER == __LITTLE_ENDIAN 14 # define CONFIG_SYS_BOOTCOUNT_LE 15 # else 16 # define CONFIG_SYS_BOOTCOUNT_BE 17 # endif 18 #endif 19 20 #ifdef CONFIG_SYS_BOOTCOUNT_LE 21 static inline void raw_bootcount_store(volatile u32 *addr, u32 data) 22 { 23 out_le32(addr, data); 24 } 25 26 static inline u32 raw_bootcount_load(volatile u32 *addr) 27 { 28 return in_le32(addr); 29 } 30 #else 31 static inline void raw_bootcount_store(volatile u32 *addr, u32 data) 32 { 33 out_be32(addr, data); 34 } 35 36 static inline u32 raw_bootcount_load(volatile u32 *addr) 37 { 38 return in_be32(addr); 39 } 40 #endif 41