// See LICENSE for license details. #ifndef _ISS_PLATFORM_H #define _ISS_PLATFORM_H // Some things missing from the official encoding.h #define MCAUSE_INT 0x80000000 #define MCAUSE_CAUSE 0x7FFFFFFF #define UART0_BASE_ADDR 0xffff0000ULL #define UART_REG_TXFIFO 0x00 #define UART_REG_RXFIFO 0x04 #define UART_REG_TXCTRL 0x08 #define UART_REG_RXCTRL 0x0c #define UART_REG_IE 0x10 #define UART_REG_IP 0x14 #define UART_REG_DIV 0x18 #define UART_TXEN 0x1 #define UART0_REG(ADDR) *((volatile uint32_t*) (UART0_BASE_ADDR + ADDR)) /**************************************************************************** * Platform definitions *****************************************************************************/ #define MEM_BASE_ADDR _AC(0x00000000,UL) // Helper functions #define _REG32(p, i) (*(volatile uint32_t *) ((p) + (i))) #define _REG32P(p, i) ((volatile uint32_t *) ((p) + (i))) // Misc #include void init_pll(void); unsigned long get_cpu_freq(void); unsigned long get_timer_freq(void); uint64_t get_timer_value(void); #endif /* _ISS_PLATFORM_H */