| #include <config.h> |
| #include <linux/linkage.h> |
| |
| /* page table */ |
| #define NR_SECTIONS 4096 |
| #define SECTION_SHIFT 20 |
| #define DEVICE 0x00002002 /* Non-shareable Device */ |
| #define NORMAL 0x0000000e /* Normal Memory Write-Back, No Write-Allocate */ |
| |
| #define TEXT_SECTION ((CONFIG_SPL_TEXT_BASE) >> (SECTION_SHIFT)) |
| #define STACK_SECTION ((CONFIG_SYS_INIT_SP_ADDR) >> (SECTION_SHIFT)) |
| |
| .section ".rodata" |
| .align 14 |
| ENTRY(init_page_table) |
| section = 0 |
| .rept NR_SECTIONS |
| .if section == TEXT_SECTION || section == STACK_SECTION |
| attr = NORMAL |
| .else |
| attr = DEVICE |
| .endif |
| .word (section << SECTION_SHIFT) | attr |
| section = section + 1 |
| .endr |
| END(init_page_table) |