7 #include "dt/dt_rv_core_ibex.h"
10 #include "sw/device/silicon_creator/lib/drivers/ibex.h"
11 #include "sw/device/silicon_creator/lib/drivers/uart.h"
13 #include "rv_core_ibex_regs.h"
14 #include "uart_regs.h"
17 static const dt_rv_core_ibex_t kRvCoreIbexDt = (dt_rv_core_ibex_t)0;
18 static_assert(kDtRvCoreIbexCount == 1,
"Only single core tops are supported");
20 static inline uintptr_t rv_core_ibex_base(
void) {
21 return (uintptr_t)dt_rv_core_ibex_primary_reg_block(kRvCoreIbexDt);
31 const uint64_t kClockFreqCpuMhz = 24;
35 uint64_t
to_cpu_cycles(uint64_t usec) {
return usec * kClockFreqCpuMhz; }
52 const uint32_t kUartBaud230K =
54 const uint32_t kUartBaud460K =
56 const uint32_t kUartBaud921K =
58 const uint32_t kUartBaud1M33 =
60 const uint32_t kUartBaud1M50 =
70 return rv_core_ibex_base() + RV_CORE_IBEX_DV_SIM_WINDOW_REG_OFFSET;
77 uint32_t version = ibex_fpga_version();
79 const uint32_t kRom = 0x3a4d4f52;
83 const uint32_t kNewline = 0x0a0d;
84 uart_write_hex(version,
sizeof(version), kNewline);