| /* |
| * Copyright (c) 2017 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| #ifndef __BOOT_PAGE_TABLE_H__ |
| #define __BOOT_PAGE_TABLE_H__ |
| |
| #ifndef X86_MMU_GET_PT_ADDR |
| |
| /* Helper macros to ease the usage of the MMU page table structures. |
| * Returns the Page table address for the particular address. |
| * Page Table address(returned value) is always 4KBytes aligned. |
| */ |
| #define X86_MMU_GET_PT_ADDR(addr) \ |
| ((struct x86_mmu_page_table *) \ |
| (X86_MMU_GET_PDE(addr)->page_table << MMU_PAGE_SHIFT)) |
| |
| #endif |
| |
| #ifndef X86_MMU_GET_PTE |
| /* Returns the page table entry for the addr |
| * use the union to extract page entry related information. |
| */ |
| |
| #define X86_MMU_GET_PTE(addr) \ |
| ((union x86_mmu_pae_pte *) \ |
| (&X86_MMU_GET_PT_ADDR(addr)->entry[MMU_PAGE_NUM(addr)])) |
| #endif |
| |
| #define MMU_READ 0x00 |
| #define MMU_WRITE 0x01 |
| #define MMU_READ_WRITE (MMU_READ | MMU_WRITE) |
| #define MMU_PAGE_USER 0x02 |
| #define START_ADDR_RANGE1 0x12300000 |
| #define START_ADDR_RANGE2 0x12340000 |
| #define START_ADDR_RANGE3 0x12400000 |
| #define START_ADDR_RANGE4 0x12460000 |
| #define ADDR_SIZE 0x1000 |
| #define STARTING_ADDR_RANGE_LMT 0x0009ff |
| #define START_ADR_RANGE_OVRLP_LMT 0x001000 |
| #define REGION_PERM (MMU_READ_WRITE | MMU_PAGE_USER) |
| #endif |