// See LICENSE for license details. #ifndef _ISS_PLATFORM_H #define _ISS_PLATFORM_H #if __riscv_xlen == 32 #define MCAUSE_INT 0x80000000UL #define MCAUSE_CAUSE 0x000003FFUL #else #define MCAUSE_INT 0x8000000000000000UL #define MCAUSE_CAUSE 0x00000000000003FFUL #endif #define APB_BUS #include "ehrenberg/devices/gpio.h" #include "ehrenberg/devices/uart.h" #include "ehrenberg/devices/timer.h" #include "ehrenberg/devices/aclint.h" #include "ehrenberg/devices/qspi.h" #include "ehrenberg/devices/i2s.h" #include "ehrenberg/devices/camera.h" #include "ehrenberg/devices/dma.h" #include "ehrenberg/devices/msg_if.h" #define PERIPH(TYPE, ADDR) ((volatile TYPE*) (ADDR)) #define APB_BASE 0xF0000000 #define gpio PERIPH(gpio_t, APB_BASE+0x0000) #define uart PERIPH(uart_t, APB_BASE+0x1000) #define timer PERIPH(timercounter_t, APB_BASE+0x20000) #define aclint PERIPH(aclint_t, APB_BASE+0x30000) #define irq PERIPH(irq_t, APB_BASE+0x40000) #define qspi PERIPH(qspi_t, APB_BASE+0x50000) #define i2s PERIPH(i2s_t, APB_BASE+0x90000) #define camera PERIPH(camera_t, APB_BASE+0xA0000) #define dma PERIPH(dma_t, APB_BASE+0xB0000) #define msgif PERIPH(msgif_t, APB_BASE+0xC0000) #define XIP_START_LOC 0xE0040000 #define RAM_START_LOC 0x80000000 // Misc #include void init_pll(void); unsigned long get_cpu_freq(void); unsigned long get_timer_freq(void); #endif /* _ISS_PLATFORM_H */