soc: riscv: litex: soc.h: add litex_write64
add function for a 64-bit write in litex. Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
This commit is contained in:
parent
0d9a5e6f19
commit
c3752bf442
1 changed files with 21 additions and 0 deletions
|
@ -103,6 +103,27 @@ static inline void litex_write32(unsigned int value, unsigned long addr)
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline void litex_write64(uint64_t value, unsigned long addr)
|
||||
{
|
||||
#if CONFIG_LITEX_CSR_DATA_WIDTH == 8
|
||||
sys_write8(value >> 56, addr);
|
||||
sys_write8(value >> 48, addr + 0x4);
|
||||
sys_write8(value >> 40, addr + 0x8);
|
||||
sys_write8(value >> 32, addr + 0xC);
|
||||
sys_write8(value >> 24, addr + 0x10);
|
||||
sys_write8(value >> 16, addr + 0x14);
|
||||
sys_write8(value >> 8, addr + 0x18);
|
||||
sys_write8(value, addr + 0x1C);
|
||||
#elif CONFIG_LITEX_CSR_DATA_WIDTH == 32
|
||||
sys_write32(value >> 32, addr);
|
||||
sys_write32(value, addr + 0x4);
|
||||
#elif CONFIG_LITEX_CSR_DATA_WIDTH >= 64
|
||||
sys_write64(value, addr);
|
||||
#else
|
||||
#error Unsupported CSR data width
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Operates on uint32_t values only
|
||||
* Size is in bytes and meaningful are 1, 2 or 4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue