From 09e2cb829682d5df1321383dec448392ea5a35d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= Date: Fri, 10 Jun 2016 19:35:15 +0200 Subject: [PATCH] UPSTREAM: arch/riscv: copy read/write8/16/32 from x86 BUG=None BRANCH=None TEST=None Change-Id: I12de8f82499074f0fbbc1c09210b00c6a9614c1b Original-Signed-off-by: Jonathan Neuschfer Original-Reviewed-on: https://review.coreboot.org/15146 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Martin Roth Signed-off-by: Aaron Durbin Reviewed-on: https://chromium-review.googlesource.com/352023 Commit-Ready: Furquan Shaikh Tested-by: Furquan Shaikh Reviewed-by: Furquan Shaikh --- src/arch/riscv/include/arch/io.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/arch/riscv/include/arch/io.h b/src/arch/riscv/include/arch/io.h index 804d7dc1b1..5bc10c0cd4 100644 --- a/src/arch/riscv/include/arch/io.h +++ b/src/arch/riscv/include/arch/io.h @@ -45,4 +45,34 @@ static inline uint32_t inl(uint16_t port) return 0; } +static inline __attribute__((always_inline)) uint8_t read8(const volatile void *addr) +{ + return *((volatile uint8_t *)(addr)); +} + +static inline __attribute__((always_inline)) uint16_t read16(const volatile void *addr) +{ + return *((volatile uint16_t *)(addr)); +} + +static inline __attribute__((always_inline)) uint32_t read32(const volatile void *addr) +{ + return *((volatile uint32_t *)(addr)); +} + +static inline __attribute__((always_inline)) void write8(volatile void *addr, uint8_t value) +{ + *((volatile uint8_t *)(addr)) = value; +} + +static inline __attribute__((always_inline)) void write16(volatile void *addr, uint16_t value) +{ + *((volatile uint16_t *)(addr)) = value; +} + +static inline __attribute__((always_inline)) void write32(volatile void *addr, uint32_t value) +{ + *((volatile uint32_t *)(addr)) = value; +} + #endif