Patrick Georgi has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/50115 )
Change subject: libpayload/arm*: Add 64bit memory access primitives ......................................................................
libpayload/arm*: Add 64bit memory access primitives
Add read64 and write64 for consistency with x86.
BUG=b:178785769
Change-Id: I342e3a23201d0b804ea5ecfe47ee3e4bb516de4c Signed-off-by: Patrick Georgi pgeorgi@google.com --- M payloads/libpayload/include/arm/arch/io.h M payloads/libpayload/include/arm64/arch/io.h 2 files changed, 26 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/15/50115/1
diff --git a/payloads/libpayload/include/arm/arch/io.h b/payloads/libpayload/include/arm/arch/io.h index 6d549de..ce48baf 100644 --- a/payloads/libpayload/include/arm/arch/io.h +++ b/payloads/libpayload/include/arm/arch/io.h @@ -98,6 +98,12 @@ return *(volatile uint32_t *)addr; }
+static inline uint64_t read64(const void *addr) +{ + dmb(); + return *(volatile uint64_t *)addr; +} + static inline void write8(void *addr, uint8_t val) { dmb(); @@ -119,4 +125,11 @@ dmb(); }
+static inline void write64(void *addr, uint64_t val) +{ + dmb(); + *(volatile uint64_t *)addr = val; + dmb(); +} + #endif diff --git a/payloads/libpayload/include/arm64/arch/io.h b/payloads/libpayload/include/arm64/arch/io.h index 00c75c4..0921988 100644 --- a/payloads/libpayload/include/arm64/arch/io.h +++ b/payloads/libpayload/include/arm64/arch/io.h @@ -99,6 +99,12 @@ return *(volatile uint32_t *)addr; }
+static inline uint64_t read64(const void *addr) +{ + dmb(); + return *(volatile uint64_t *)addr; +} + static inline void write8(void *addr, uint8_t val) { dmb(); @@ -120,4 +126,11 @@ dmb(); }
+static inline void write64(void *addr, uint64_t val) +{ + dmb(); + *(volatile uint64_t *)addr = val; + dmb(); +} + #endif