Software APIs
device_silicon.c
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
5#include <stdbool.h>
6
8
9#include "rv_core_ibex_regs.h"
10#include "uart_regs.h"
11
12/**
13 * Device-specific symbol definitions for the Silicon device.
14 */
15
17
18const uint64_t kClockFreqCpuMhz = 100;
19
20const uint64_t kClockFreqCpuHz = kClockFreqCpuMhz * 1000 * 1000;
21
22uint64_t to_cpu_cycles(uint64_t usec) { return usec * kClockFreqCpuMhz; }
23
24const uint64_t kClockFreqHiSpeedPeripheralHz = 96 * 1000 * 1000; // 96MHz
25
26const uint64_t kClockFreqPeripheralHz = 24 * 1000 * 1000; // 24MHz
27
28const uint64_t kClockFreqUsbHz = 48 * 1000 * 1000; // 48MHz
29
30const uint64_t kClockFreqAonHz = 200 * 1000; // 200kHz
31
32const uint64_t kUartBaudrate = 115200;
33
34const uint32_t kUartNCOValue =
35 CALCULATE_UART_NCO(kUartBaudrate, kClockFreqPeripheralHz);
36
37const uint32_t kUartBaud115K =
38 CALCULATE_UART_NCO(115200, kClockFreqPeripheralHz);
39const uint32_t kUartBaud230K =
40 CALCULATE_UART_NCO(115200 * 2, kClockFreqPeripheralHz);
41const uint32_t kUartBaud460K =
42 CALCULATE_UART_NCO(115200 * 4, kClockFreqPeripheralHz);
43const uint32_t kUartBaud921K =
44 CALCULATE_UART_NCO(115200 * 8, kClockFreqPeripheralHz);
45const uint32_t kUartBaud1M33 =
46 CALCULATE_UART_NCO(1333333, kClockFreqPeripheralHz);
47const uint32_t kUartBaud1M50 =
48 CALCULATE_UART_NCO(1500000, kClockFreqPeripheralHz);
49
51 kUartBaudrate, kClockFreqCpuHz, UART_PARAM_TX_FIFO_DEPTH);
52
53const uint32_t kAstCheckPollCpuCycles =
55
56uintptr_t device_test_status_address(void) { return 0; }
57
58uintptr_t device_log_bypass_uart_address(void) { return 0; }
59
60void device_fpga_version_print(void) {}