1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright 2022-2023 NXP 4 * 5 * Brief Qemu Virt platform configuration. 6 */ 7 8 #ifndef PLATFORM_CONFIG_H 9 #define PLATFORM_CONFIG_H 10 11 #include <mm/generic_ram_layout.h> 12 13 /* The stack pointer is always kept 16-byte aligned */ 14 #define STACK_ALIGNMENT 16 15 16 /* DRAM */ 17 #ifndef DRAM_BASE 18 #define DRAM_BASE 0x80000000 19 #define DRAM_SIZE 0x10000000 20 #endif 21 22 /* CLINT */ 23 #ifndef CLINT_BASE 24 #define CLINT_BASE 0x02000000 25 #endif 26 27 /* PLIC */ 28 #ifndef PLIC_BASE 29 #define PLIC_BASE 0x0c000000 30 #define PLIC_REG_SIZE 0x1000 31 #define PLIC_NUM_SOURCES 0x7f 32 #endif 33 34 /* UART */ 35 #ifndef UART0_BASE 36 #define UART0_BASE 0x10000000 37 #endif 38 #define UART0_IRQ 0x0a 39 40 /* RTC */ 41 #ifndef RTC_BASE 42 #define RTC_BASE 0x101000 43 #endif 44 #define RTC_IRQ 0x0b 45 46 /* VIRTIO MMIOs */ 47 #define NUM_VIRTIO_MMIOS 8 48 49 #ifndef VIRTIO_MMIO1 50 #define VIRTIO_MMIO1 0x10001000 51 #define VIRTIO_MMIO1_IRQ 0x01 52 #endif 53 54 #ifndef VIRTIO_MMIO2 55 #define VIRTIO_MMIO2 0x10002000 56 #define VIRTIO_MMIO2_IRQ 0x02 57 #endif 58 59 #ifndef VIRTIO_MMIO3 60 #define VIRTIO_MMIO3 0x10003000 61 #define VIRTIO_MMIO3_IRQ 0x03 62 #endif 63 64 #ifndef VIRTIO_MMIO4 65 #define VIRTIO_MMIO4 0x10004000 66 #define VIRTIO_MMIO4_IRQ 0x04 67 #endif 68 69 #ifndef VIRTIO_MMIO5 70 #define VIRTIO_MMIO5 0x10005000 71 #define VIRTIO_MMIO5_IRQ 0x05 72 #endif 73 74 #ifndef VIRTIO_MMIO6 75 #define VIRTIO_MMIO6 0x10006000 76 #define VIRTIO_MMIO6_IRQ 0x06 77 #endif 78 79 #ifndef VIRTIO_MMIO7 80 #define VIRTIO_MMIO7 0x10007000 81 #define VIRTIO_MMIO7_IRQ 0x07 82 #endif 83 84 #ifndef VIRTIO_MMIO8 85 #define VIRTIO_MMIO8 0x10008000 86 #define VIRTIO_MMIO8_IRQ 0x08 87 #endif 88 89 #ifdef CFG_RISCV_MTIME_RATE 90 #define RISCV_MTIME_RATE CFG_RISCV_MTIME_RATE 91 #else 92 #define RISCV_MTIME_RATE 1000000 93 #endif 94 95 #endif /*PLATFORM_CONFIG_H*/ 96