|
@@ -1253,7 +1253,7 @@ static inline void prepare_page_table(void)
|
|
|
|
|
|
#ifdef CONFIG_XIP_KERNEL
|
|
|
/* The XIP kernel is mapped in the module area -- skip over it */
|
|
|
- addr = ((unsigned long)_etext + PMD_SIZE - 1) & PMD_MASK;
|
|
|
+ addr = ((unsigned long)_exiprom + PMD_SIZE - 1) & PMD_MASK;
|
|
|
#endif
|
|
|
for ( ; addr < PAGE_OFFSET; addr += PMD_SIZE)
|
|
|
pmd_clear(pmd_off_k(addr));
|
|
@@ -1335,7 +1335,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
|
|
|
#ifdef CONFIG_XIP_KERNEL
|
|
|
map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
|
|
|
map.virtual = MODULES_VADDR;
|
|
|
- map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
|
|
|
+ map.length = ((unsigned long)_exiprom - map.virtual + ~SECTION_MASK) & SECTION_MASK;
|
|
|
map.type = MT_ROM;
|
|
|
create_mapping(&map);
|
|
|
#endif
|
|
@@ -1426,7 +1426,11 @@ static void __init kmap_init(void)
|
|
|
static void __init map_lowmem(void)
|
|
|
{
|
|
|
struct memblock_region *reg;
|
|
|
+#ifdef CONFIG_XIP_KERNEL
|
|
|
+ phys_addr_t kernel_x_start = round_down(__pa(_sdata), SECTION_SIZE);
|
|
|
+#else
|
|
|
phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
|
|
|
+#endif
|
|
|
phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
|
|
|
|
|
|
/* Map all the lowmem memory banks. */
|