提交 beacfaac 编写于 作者: H Huang, Ying 提交者: Ingo Molnar

x86 32-bit boot: rename bt_ioremap() to early_ioremap()

This patch renames bt_ioremap to early_ioremap, which is used in
x86_64. This makes it easier to merge i386 and x86_64 usage.

[ mingo@elte.hu: fix ]
Signed-off-by: NHuang Ying <ying.huang@intel.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
上级 4716e79c
......@@ -256,12 +256,12 @@ void __init efi_init(void)
memmap.desc_version = boot_params.efi_info.efi_memdesc_version;
memmap.desc_size = boot_params.efi_info.efi_memdesc_size;
efi.systab = efi_early_ioremap((unsigned long)efi_phys.systab,
sizeof(efi_system_table_t));
efi.systab = early_ioremap((unsigned long)efi_phys.systab,
sizeof(efi_system_table_t));
if (efi.systab == NULL)
printk(KERN_ERR "Couldn't map the EFI system table!\n");
memcpy(&efi_systab, efi.systab, sizeof(efi_system_table_t));
efi_early_iounmap(efi.systab, sizeof(efi_system_table_t));
early_iounmap(efi.systab, sizeof(efi_system_table_t));
efi.systab = &efi_systab;
/*
......@@ -278,14 +278,14 @@ void __init efi_init(void)
/*
* Show what we know for posterity
*/
c16 = tmp = efi_early_ioremap(efi.systab->fw_vendor, 2);
c16 = tmp = early_ioremap(efi.systab->fw_vendor, 2);
if (c16) {
for (i = 0; i < sizeof(vendor) && *c16; ++i)
vendor[i] = *c16++;
vendor[i] = '\0';
} else
printk(KERN_ERR PFX "Could not map the firmware vendor!\n");
efi_early_iounmap(tmp, 2);
early_iounmap(tmp, 2);
printk(KERN_INFO "EFI v%u.%.02u by %s \n",
efi.systab->hdr.revision >> 16,
......@@ -294,7 +294,7 @@ void __init efi_init(void)
/*
* Let's see what config tables the firmware passed to us.
*/
config_tables = efi_early_ioremap(
config_tables = early_ioremap(
efi.systab->tables,
efi.systab->nr_tables * sizeof(efi_config_table_t));
if (config_tables == NULL)
......@@ -328,7 +328,7 @@ void __init efi_init(void)
}
}
printk("\n");
efi_early_iounmap(config_tables,
early_iounmap(config_tables,
efi.systab->nr_tables * sizeof(efi_config_table_t));
/*
......@@ -337,8 +337,8 @@ void __init efi_init(void)
* address of several of the EFI runtime functions, needed to
* set the firmware into virtual mode.
*/
runtime = efi_early_ioremap((unsigned long)efi.systab->runtime,
sizeof(efi_runtime_services_t));
runtime = early_ioremap((unsigned long)efi.systab->runtime,
sizeof(efi_runtime_services_t));
if (runtime != NULL) {
/*
* We will only need *early* access to the following
......@@ -357,11 +357,11 @@ void __init efi_init(void)
} else
printk(KERN_ERR "Could not map the EFI runtime service "
"table!\n");
efi_early_iounmap(runtime, sizeof(efi_runtime_services_t));
early_iounmap(runtime, sizeof(efi_runtime_services_t));
/* Map the EFI memory map */
memmap.map = efi_early_ioremap((unsigned long)memmap.phys_map,
memmap.nr_map * memmap.desc_size);
memmap.map = early_ioremap((unsigned long)memmap.phys_map,
memmap.nr_map * memmap.desc_size);
if (memmap.map == NULL)
printk(KERN_ERR "Could not map the EFI memory map!\n");
memmap.map_end = memmap.map + (memmap.nr_map * memmap.desc_size);
......
......@@ -117,7 +117,7 @@ void __init efi_map_memmap(void)
{
memmap.map = NULL;
memmap.map = bt_ioremap((unsigned long) memmap.phys_map,
memmap.map = early_ioremap((unsigned long) memmap.phys_map,
(memmap.nr_map * memmap.desc_size));
if (memmap.map == NULL)
printk(KERN_ERR "Could not remap the EFI memmap!\n");
......
......@@ -577,9 +577,9 @@ static void __init relocate_initrd(void)
if (clen > MAX_MAP_CHUNK-slop)
clen = MAX_MAP_CHUNK-slop;
mapaddr = ramdisk_image & PAGE_MASK;
p = bt_ioremap(mapaddr, clen+slop);
p = early_ioremap(mapaddr, clen+slop);
memcpy(q, p+slop, clen);
bt_iounmap(p, clen+slop);
early_iounmap(p, clen+slop);
q += clen;
ramdisk_image += clen;
ramdisk_size -= clen;
......@@ -697,7 +697,7 @@ void __init setup_arch(char **cmdline_p)
memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));
pre_setup_arch_hook();
early_cpu_init();
bt_ioremap_init();
early_ioremap_init();
#ifdef CONFIG_EFI
if (!strncmp((char *)&boot_params.efi_info.efi_loader_signature,
......
......@@ -297,7 +297,7 @@ int __init get_memcfg_from_srat(void)
}
rsdt = (struct acpi_table_rsdt *)
bt_ioremap(rsdp->rsdt_physical_address, sizeof(struct acpi_table_rsdt));
early_ioremap(rsdp->rsdt_physical_address, sizeof(struct acpi_table_rsdt));
if (!rsdt) {
printk(KERN_WARNING
......@@ -337,11 +337,11 @@ int __init get_memcfg_from_srat(void)
for (i = 0; i < tables; i++) {
/* Map in header, then map in full table length. */
header = (struct acpi_table_header *)
bt_ioremap(saved_rsdt.table.table_offset_entry[i], sizeof(struct acpi_table_header));
early_ioremap(saved_rsdt.table.table_offset_entry[i], sizeof(struct acpi_table_header));
if (!header)
break;
header = (struct acpi_table_header *)
bt_ioremap(saved_rsdt.table.table_offset_entry[i], header->length);
early_ioremap(saved_rsdt.table.table_offset_entry[i], header->length);
if (!header)
break;
......
......@@ -429,11 +429,11 @@ static void __init pagetable_init (void)
* Fixed mappings, only the page table structure has to be
* created - mappings will be set by set_fixmap():
*/
bt_ioremap_clear();
early_ioremap_clear();
vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK;
end = (FIXADDR_TOP + PMD_SIZE - 1) & PMD_MASK;
page_table_range_init(vaddr, end, pgd_base);
bt_ioremap_reset();
early_ioremap_reset();
permanent_kmaps_init(pgd_base);
......
......@@ -212,36 +212,36 @@ static __initdata int after_paging_init;
static __initdata unsigned long bm_pte[1024]
__attribute__((aligned(PAGE_SIZE)));
static inline unsigned long * __init bt_ioremap_pgd(unsigned long addr)
static inline unsigned long * __init early_ioremap_pgd(unsigned long addr)
{
return (unsigned long *)swapper_pg_dir + ((addr >> 22) & 1023);
}
static inline unsigned long * __init bt_ioremap_pte(unsigned long addr)
static inline unsigned long * __init early_ioremap_pte(unsigned long addr)
{
return bm_pte + ((addr >> PAGE_SHIFT) & 1023);
}
void __init bt_ioremap_init(void)
void __init early_ioremap_init(void)
{
unsigned long *pgd;
pgd = bt_ioremap_pgd(fix_to_virt(FIX_BTMAP_BEGIN));
pgd = early_ioremap_pgd(fix_to_virt(FIX_BTMAP_BEGIN));
*pgd = __pa(bm_pte) | _PAGE_TABLE;
memset(bm_pte, 0, sizeof(bm_pte));
BUG_ON(pgd != bt_ioremap_pgd(fix_to_virt(FIX_BTMAP_END)));
BUG_ON(pgd != early_ioremap_pgd(fix_to_virt(FIX_BTMAP_END)));
}
void __init bt_ioremap_clear(void)
void __init early_ioremap_clear(void)
{
unsigned long *pgd;
pgd = bt_ioremap_pgd(fix_to_virt(FIX_BTMAP_BEGIN));
pgd = early_ioremap_pgd(fix_to_virt(FIX_BTMAP_BEGIN));
*pgd = 0;
__flush_tlb_all();
}
void __init bt_ioremap_reset(void)
void __init early_ioremap_reset(void)
{
enum fixed_addresses idx;
unsigned long *pte, phys, addr;
......@@ -249,7 +249,7 @@ void __init bt_ioremap_reset(void)
after_paging_init = 1;
for (idx = FIX_BTMAP_BEGIN; idx <= FIX_BTMAP_END; idx--) {
addr = fix_to_virt(idx);
pte = bt_ioremap_pte(addr);
pte = early_ioremap_pte(addr);
if (!*pte & _PAGE_PRESENT) {
phys = *pte & PAGE_MASK;
set_fixmap(idx, phys);
......@@ -257,7 +257,7 @@ void __init bt_ioremap_reset(void)
}
}
static void __init __bt_set_fixmap(enum fixed_addresses idx,
static void __init __early_set_fixmap(enum fixed_addresses idx,
unsigned long phys, pgprot_t flags)
{
unsigned long *pte, addr = __fix_to_virt(idx);
......@@ -266,7 +266,7 @@ static void __init __bt_set_fixmap(enum fixed_addresses idx,
BUG();
return;
}
pte = bt_ioremap_pte(addr);
pte = early_ioremap_pte(addr);
if (pgprot_val(flags))
*pte = (phys & PAGE_MASK) | pgprot_val(flags);
else
......@@ -274,24 +274,24 @@ static void __init __bt_set_fixmap(enum fixed_addresses idx,
__flush_tlb_one(addr);
}
static inline void __init bt_set_fixmap(enum fixed_addresses idx,
static inline void __init early_set_fixmap(enum fixed_addresses idx,
unsigned long phys)
{
if (after_paging_init)
set_fixmap(idx, phys);
else
__bt_set_fixmap(idx, phys, PAGE_KERNEL);
__early_set_fixmap(idx, phys, PAGE_KERNEL);
}
static inline void __init bt_clear_fixmap(enum fixed_addresses idx)
static inline void __init early_clear_fixmap(enum fixed_addresses idx)
{
if (after_paging_init)
clear_fixmap(idx);
else
__bt_set_fixmap(idx, 0, __pgprot(0));
__early_set_fixmap(idx, 0, __pgprot(0));
}
void __init *bt_ioremap(unsigned long phys_addr, unsigned long size)
void __init *early_ioremap(unsigned long phys_addr, unsigned long size)
{
unsigned long offset, last_addr;
unsigned int nrpages;
......@@ -327,7 +327,7 @@ void __init *bt_ioremap(unsigned long phys_addr, unsigned long size)
*/
idx = FIX_BTMAP_BEGIN;
while (nrpages > 0) {
bt_set_fixmap(idx, phys_addr);
early_set_fixmap(idx, phys_addr);
phys_addr += PAGE_SIZE;
--idx;
--nrpages;
......@@ -335,7 +335,7 @@ void __init *bt_ioremap(unsigned long phys_addr, unsigned long size)
return (void*) (offset + fix_to_virt(FIX_BTMAP_BEGIN));
}
void __init bt_iounmap(void *addr, unsigned long size)
void __init early_iounmap(void *addr, unsigned long size)
{
unsigned long virt_addr;
unsigned long offset;
......@@ -350,7 +350,7 @@ void __init bt_iounmap(void *addr, unsigned long size)
idx = FIX_BTMAP_BEGIN;
while (nrpages > 0) {
bt_clear_fixmap(idx);
early_clear_fixmap(idx);
--idx;
--nrpages;
}
......
......@@ -5,9 +5,6 @@
#ifdef CONFIG_X86_32
/* Use early IO mappings for DMI because it's initialized early */
#define dmi_ioremap bt_ioremap
#define dmi_iounmap bt_iounmap
#define dmi_alloc alloc_bootmem
#else /* CONFIG_X86_32 */
......@@ -28,9 +25,9 @@ static inline void *dmi_alloc(unsigned len)
return dmi_alloc_data + idx;
}
#endif
#define dmi_ioremap early_ioremap
#define dmi_iounmap early_iounmap
#endif
#endif
......@@ -33,9 +33,6 @@ extern unsigned long asmlinkage efi_call_phys(void *, ...);
#define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \
efi_call_virt(f, a1, a2, a3, a4, a5, a6)
#define efi_early_ioremap(addr, size) bt_ioremap(addr, size)
#define efi_early_iounmap(vaddr, size) bt_iounmap(vaddr, size)
#define efi_ioremap(addr, size) ioremap(addr, size)
#define end_pfn_map max_low_pfn
......@@ -91,13 +88,8 @@ extern u64 efi_call6(void *fp, u64 arg1, u64 arg2, u64 arg3,
efi_call6((void *)(efi.systab->runtime->f), (u64)(a1), (u64)(a2), \
(u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6))
#define efi_early_ioremap(addr, size) early_ioremap(addr, size)
#define efi_early_iounmap(vaddr, size) early_iounmap(vaddr, size)
extern void *efi_ioremap(unsigned long offset, unsigned long size);
extern int efi_time;
#endif /* CONFIG_X86_32 */
extern void efi_reserve_bootmem(void);
......
......@@ -135,20 +135,20 @@ static inline void __iomem * ioremap(unsigned long offset, unsigned long size)
extern void iounmap(volatile void __iomem *addr);
/*
* bt_ioremap() and bt_iounmap() are for temporary early boot-time
* early_ioremap() and early_iounmap() are for temporary early boot-time
* mappings, before the real ioremap() is functional.
* A boot-time mapping is currently limited to at most 16 pages.
*/
extern void bt_ioremap_init(void);
extern void bt_ioremap_clear(void);
extern void bt_ioremap_reset(void);
extern void *bt_ioremap(unsigned long offset, unsigned long size);
extern void bt_iounmap(void *addr, unsigned long size);
extern void early_ioremap_init(void);
extern void early_ioremap_clear(void);
extern void early_ioremap_reset(void);
extern void *early_ioremap(unsigned long offset, unsigned long size);
extern void early_iounmap(void *addr, unsigned long size);
extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
/* Use early IO mappings for DMI because it's initialized early */
#define dmi_ioremap bt_ioremap
#define dmi_iounmap bt_iounmap
#define dmi_ioremap early_ioremap
#define dmi_iounmap early_iounmap
#define dmi_alloc alloc_bootmem
/*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册