config.rs 1.5 KB
Newer Older
Y
Yifan Wu 已提交
1 2
#[allow(unused)]

3 4
pub const USER_STACK_SIZE: usize = 4096 * 2;
pub const KERNEL_STACK_SIZE: usize = 4096 * 2;
5
pub const KERNEL_HEAP_SIZE: usize = 0x20_0000;
6
pub const MEMORY_END: usize = 0x80800000;
Y
Yifan Wu 已提交
7 8
pub const PAGE_SIZE: usize = 0x1000;
pub const PAGE_SIZE_BITS: usize = 0xc;
9

10 11 12
pub const TRAMPOLINE: usize = usize::MAX - PAGE_SIZE + 1;
pub const TRAP_CONTEXT: usize = TRAMPOLINE - PAGE_SIZE;

13
#[cfg(feature = "board_k210")]
14
pub const CLOCK_FREQ: usize = 403000000 / 62;
15 16

#[cfg(feature = "board_qemu")]
Y
Yifan Wu 已提交
17 18 19 20
pub const CLOCK_FREQ: usize = 12500000;

#[cfg(feature = "board_qemu")]
pub const MMIO: &[(usize, usize)] = &[
Y
Yifan Wu 已提交
21
    (0x10001000, 0x1000),
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
];

#[cfg(feature = "board_k210")]
pub const MMIO: &[(usize, usize)] = &[
    // we don't need clint in S priv when running
    // we only need claim/complete for target0 after initializing
    (0x0C00_0000, 0x3000),      /* PLIC      */
    (0x0C20_0000, 0x1000),      /* PLIC      */
    (0x3800_0000, 0x1000),      /* UARTHS    */
    (0x3800_1000, 0x1000),      /* GPIOHS    */
    (0x5020_0000, 0x1000),      /* GPIO      */
    (0x5024_0000, 0x1000),      /* SPI_SLAVE */
    (0x502B_0000, 0x1000),      /* FPIOA     */
    (0x502D_0000, 0x1000),      /* TIMER0    */
    (0x502E_0000, 0x1000),      /* TIMER1    */
    (0x502F_0000, 0x1000),      /* TIMER2    */
    (0x5044_0000, 0x1000),      /* SYSCTL    */
    (0x5200_0000, 0x1000),      /* SPI0      */
    (0x5300_0000, 0x1000),      /* SPI1      */
    (0x5400_0000, 0x1000),      /* SPI2      */
Y
Yifan Wu 已提交
42
];