paul@194 | 1 | #ifndef __MEMORY_H__ |
paul@194 | 2 | #define __MEMORY_H__ |
paul@194 | 3 | |
paul@209 | 4 | #include "board.h" |
paul@209 | 5 | |
paul@209 | 6 | /* Kernel stack addresses. */ |
paul@200 | 7 | |
paul@194 | 8 | #define STAGE2_INIT_STACK 0x80004000 |
paul@194 | 9 | #define STAGE2_EXCEPTION_STACK 0x80008000 |
paul@194 | 10 | |
paul@209 | 11 | /* Page table details accessed in kernel mode. */ |
paul@209 | 12 | |
paul@214 | 13 | #define STAGE2_PAGE_TABLE_TOP 0x81800000 |
paul@209 | 14 | #define STAGE2_PAGE_TABLE_BASE 0x81400000 |
paul@209 | 15 | |
paul@209 | 16 | /* Page table virtual address limit. */ |
paul@209 | 17 | |
paul@209 | 18 | #define STAGE2_VIRTUAL_TOP 0x08000000 |
paul@209 | 19 | |
paul@209 | 20 | /* Page table computed task structure size. */ |
paul@209 | 21 | |
paul@209 | 22 | #define STAGE2_PAGE_TABLE_TASK (STAGE2_VIRTUAL_TOP / (2 * STAGE2_PAGESIZE)) |
paul@194 | 23 | |
paul@204 | 24 | /* User mode and physical addresses. */ |
paul@200 | 25 | |
paul@209 | 26 | #define TASK_GPIO_BASE (STAGE2_VIRTUAL_TOP - GPIO_REGION_SIZE) |
paul@209 | 27 | #define TASK_STACK_TOP TASK_GPIO_BASE |
paul@204 | 28 | #define TASK_STACK_PHYSICAL 0x01c00000 |
paul@204 | 29 | #define TASK_STACK_SIZE 0x00002000 |
paul@200 | 30 | |
paul@200 | 31 | /* Common configuration. */ |
paul@200 | 32 | |
paul@194 | 33 | #define STAGE2_PAGESIZE (4 * 1024) |
paul@194 | 34 | |
paul@194 | 35 | #endif /* __MEMORY_H__ */ |