return fdt_virt;
}
-void __init remove_early_mappings(void)
+void __init remove_early_mappings(unsigned long va, unsigned long size)
{
lpae_t pte = {0};
- write_pte(xen_second + second_table_offset(BOOT_FDT_VIRT_START), pte);
- write_pte(xen_second + second_table_offset(BOOT_FDT_VIRT_START + SZ_2M),
+ write_pte(xen_second + second_table_offset(va), pte);
+ write_pte(xen_second + second_table_offset(va + size),
pte);
- flush_xen_tlb_range_va(BOOT_FDT_VIRT_START, BOOT_FDT_SLOT_SIZE);
+ flush_xen_tlb_range_va(va, size);
}
/*
#include <xen/libfdt/libfdt.h>
#include <xen/acpi.h>
#include <xen/warning.h>
+#include <xen/sizes.h>
#include <asm/alternative.h>
#include <asm/page.h>
#include <asm/current.h>
mi->nr_mods = 0;
- remove_early_mappings();
+ remove_early_mappings(BOOT_FDT_VIRT_START, SZ_2M);
}
/* Relocate the FDT in Xen heap */
/* Map FDT in boot pagetable */
extern void *early_fdt_map(paddr_t fdt_paddr);
/* Remove early mappings */
-extern void remove_early_mappings(void);
+extern void remove_early_mappings(unsigned long va, unsigned long size);
/* Allocate and initialise pagetables for a secondary CPU. Sets init_ttbr to the
* new page table */
extern int init_secondary_pagetables(int cpu);