device/mmio.h: Move readXp/writeXp helpers to device/mmio.h

These helpers are not architecture dependent and it might be used for
different platform.

Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
Change-Id: Ic13a94d91affb7cf65a2f22f08ea39ed671bc8e8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62561
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Jianjun Wang
2022-03-02 10:20:26 +08:00
committed by Hung-Te Lin
parent 0e834a9455
commit 8565b94a53
7 changed files with 62 additions and 50 deletions

View File

@@ -24,6 +24,9 @@ static inline uint32_t read32(const void *addr)
return *(volatile uint32_t *)addr;
}
/* Not supported */
uint64_t read64(const void *addr);
static inline void write8(void *addr, uint8_t val)
{
*(volatile uint8_t *)addr = val;
@@ -39,4 +42,7 @@ static inline void write32(void *addr, uint32_t val)
*(volatile uint32_t *)addr = val;
}
/* Not supported */
void write64(void *addr, uint64_t val);
#endif /* __ARCH_MMIO_H__ */

View File

@@ -29,6 +29,9 @@ static inline uint32_t read32(const void *addr)
return *(volatile uint32_t *)__builtin_assume_aligned(addr, sizeof(uint32_t));
}
/* Not supported */
uint64_t read64(const void *addr);
static inline void write8(void *addr, uint8_t val)
{
dmb();
@@ -50,4 +53,7 @@ static inline void write32(void *addr, uint32_t val)
dmb();
}
/* Not supported */
void write64(void *addr, uint64_t val);
#endif /* __ARCH_MMIO_H__ */

View File

@@ -45,44 +45,4 @@ static __always_inline void write64(volatile void *addr, uint64_t value)
*((volatile uint64_t *)(addr)) = value;
}
static __always_inline uint8_t read8p(const uintptr_t addr)
{
return read8((void *)addr);
}
static __always_inline uint16_t read16p(const uintptr_t addr)
{
return read16((void *)addr);
}
static __always_inline uint32_t read32p(const uintptr_t addr)
{
return read32((void *)addr);
}
static __always_inline uint64_t read64p(const uintptr_t addr)
{
return read64((void *)addr);
}
static __always_inline void write8p(const uintptr_t addr, const uint8_t value)
{
write8((void *)addr, value);
}
static __always_inline void write16p(const uintptr_t addr, const uint16_t value)
{
write16((void *)addr, value);
}
static __always_inline void write32p(const uintptr_t addr, const uint32_t value)
{
write32((void *)addr, value);
}
static __always_inline void write64p(const uintptr_t addr, const uint64_t value)
{
write64((void *)addr, value);
}
#endif /* __ARCH_MMIO_H__ */