# HG changeset patch # User iap10@labyrinth.cl.cam.ac.uk # Date 1058100129 0 # Node ID 2302a65a8f7a1b54e2b5a6cbe8957cec2e6a8a6c # Parent cda951fc1befbf6123266395e29f7d34d62bc34e bitkeeper revision 1.342 (3f1153a1RLTmwr7Jo9U1gUChA4e0Jw) cleanup diff -r cda951fc1bef -r 2302a65a8f7a xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c --- a/xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c Sun Jul 13 09:04:34 2003 +0000 +++ b/xenolinux-2.4.21-sparse/arch/xeno/mm/ioremap.c Sun Jul 13 12:42:09 2003 +0000 @@ -175,6 +175,11 @@ void iounmap(void *addr) vfree((void *)((unsigned long)addr & PAGE_MASK)); } +/* implementation of boot time ioremap for purpose of provising access +to the vga console for privileged domains. Unlike boot time ioremap on +other architectures, ours is permanent and not reclaimed when then vmalloc +infrastructure is started */ + void __init *bt_ioremap(unsigned long machine_addr, unsigned long size) { unsigned long offset, last_addr; @@ -206,25 +211,17 @@ void __init *bt_ioremap(unsigned long ma idx = FIX_BTMAP_BEGIN; while (nrpages > 0) { set_fixmap(idx, machine_addr); - - //unsigned long address = __fix_to_virt(idx); - - - -//direct_set_pte(address, direct_mk_pte_phys(machine_addr, PAGE_KERNEL_NOCACHE)); - machine_addr += PAGE_SIZE; --idx; --nrpages; } -flush_tlb_all(); + flush_tlb_all(); return (void*) (offset + fix_to_virt(FIX_BTMAP_BEGIN)); } #if 0 /* We don't support these functions. They shouldn't be required. */ -void __init *bt_ioremap(unsigned long machine_addr, unsigned long size) {} void __init bt_iounmap(void *addr, unsigned long size) {} #endif diff -r cda951fc1bef -r 2302a65a8f7a xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h --- a/xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h Sun Jul 13 09:04:34 2003 +0000 +++ b/xenolinux-2.4.21-sparse/include/asm-xeno/fixmap.h Sun Jul 13 12:42:09 2003 +0000 @@ -50,7 +50,7 @@ enum fixed_addresses { #define NR_FIX_BTMAPS 8 /* 32KB For the Dom0 VGA Console */ FIX_BTMAP_END, FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS - 1, - + /* our bt_ioremap is permenant unlike other architectures */ __end_of_permanent_fixed_addresses, __end_of_fixed_addresses = __end_of_permanent_fixed_addresses };