Esempio n. 1
0
void __init sfi_init_late(void)
{
	int length;

	if (sfi_disabled)
		return;

	length = syst_va->header.len;
	sfi_unmap_memory(syst_va, sizeof(struct sfi_table_simple));

	/* Use ioremap now after it is ready */
	sfi_use_ioremap = 1;
#ifdef CONFIG_X86_EARLYMIC
	/* E820 does not mark page reserved */
	memblock_reserve(0x92000, PAGE_SIZE);
	/* needed for ioremap */
	SetPageReserved(pfn_to_page(0x92));
#endif
	syst_va = sfi_map_memory(syst_pa, length);

	sfi_acpi_init();
}
Esempio n. 2
0
/*
 * sfi_unmap_table()
 *
 * Undoes effect of sfi_map_table() by unmapping table
 * if it did not completely fit on same page as SYST.
 */
static void sfi_unmap_table(struct sfi_table_header *th)
{
	if (!TABLE_ON_PAGE(syst_va, th, th->len))
		sfi_unmap_memory(th, TABLE_ON_PAGE(th, th, th->len) ?
					sizeof(*th) : th->len);
}