POK(kernelpart)
|
#include <types.h>
Go to the source code of this file.
Macros | |
#define | LEON_CTX_NBR 256 |
PTD/PTE ET field | |
(cf SPARC V8 Manual, page 247) | |
#define | MM_ET_INVALID 0x0 |
#define | MM_ET_PTD 0x1 |
#define | MM_ET_PTE 0x2 |
PTE ACC field | |
Acces permisions. (cf SPARC V8 Manual, page 248) | |
#define | MM_ACC_R (0x0 << 2) |
#define | MM_ACC_RW (0x1 << 2) |
#define | MM_ACC_RE (0x2 << 2) |
#define | MM_ACC_RWE (0x3 << 2) |
#define | MM_ACC_E (0x4 << 2) |
#define | MM_ACC_R_S_RW (0x5 << 2) |
#define | MM_ACC_S_RE (0x6 << 2) |
#define | MM_ACC_S_RWE (0x7 << 2) |
PTE misc fields | |
(cf SPARC V8 Manual, page 248) | |
#define | MM_CACHEABLE (1 << 7) |
#define | MM_MODIFIED (1 << 6) |
#define | MM_REFERENCED (1 << 5) |
MMU levels utils | |
#define | MM_LVL1_ENTRIES_NBR 256 |
#define | MM_LVL1_PAGE_SIZE (64 * 64 * 4 * 1024) |
#define | mm_index1(addr) (((addr) >> 24) & 0xFF) |
#define | MM_LVL2_ENTRIES_NBR 64 |
#define | MM_LVL2_PAGE_SIZE (64 * 4 * 1024) |
#define | mm_index2(addr) (((addr) >> 18) & 0x3F) |
#define | MM_LVL3_ENTRIES_NBR 64 |
#define | MM_LVL3_PAGE_SIZE (4 * 1024) |
#define | mm_index3(addr) (((addr) >> 12) & 0x3F) |
MMU ASI and registers | |
#define | ASI_M_MMUREGS 0x19 /* not sparc v8 compliant */ |
#define | MMU_CTRL_REG 0x00000000 |
#define | MMU_CTXTBL_PTR 0x00000100 |
#define | MMU_CTX_REG 0x00000200 |
#define | MMU_FAULT_STATUS 0x00000300 |
#define | MMU_FAULT_ADDR 0x00000400 |
Typedefs | |
typedef uint32_t | pte |
typedef uint32_t | ptd |
Functions | |
void | pok_arch_space_init (void) |
Definition in file space.h.
#define MM_ACC_R_S_RW (0x5 << 2) |
#define mm_index1 | ( | addr | ) | (((addr) >> 24) & 0xFF) |
#define mm_index2 | ( | addr | ) | (((addr) >> 18) & 0x3F) |
#define mm_index3 | ( | addr | ) | (((addr) >> 12) & 0x3F) |
#define MM_LVL1_ENTRIES_NBR 256 |
#define MM_LVL2_ENTRIES_NBR 64 |
#define MM_LVL3_ENTRIES_NBR 64 |