# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Node ID 85f326903b0db7eb309fa85618d8623be549f911 # Parent b3a20899830d6e563733ee2db2f9d334f2406cf4 print efi map descriptor infomation at bootup. PATCHNAME: efi_print Signed-off-by: Isaku Yamahata diff -r b3a20899830d -r 85f326903b0d xen/arch/ia64/linux-xen/efi.c --- a/xen/arch/ia64/linux-xen/efi.c Fri Apr 21 11:28:20 2006 +0900 +++ b/xen/arch/ia64/linux-xen/efi.c Fri Apr 21 11:29:00 2006 +0900 @@ -558,6 +558,31 @@ efi_map_pal_code (void) IA64_GRANULE_SHIFT); ia64_set_psr(psr); /* restore psr */ ia64_srlz_i(); +} + +void +efi_print(void) +{ + void *efi_map_start, *efi_map_end; + u64 efi_desc_size; + + /* print EFI memory map: */ + efi_memory_desc_t *md; + void *p; + int i; + + efi_map_start = __va(ia64_boot_param->efi_memmap); + efi_map_end = efi_map_start + ia64_boot_param->efi_memmap_size; + efi_desc_size = ia64_boot_param->efi_memdesc_size; + + + for (i = 0, p = efi_map_start; p < efi_map_end; ++i, p += efi_desc_size) { + md = p; + printk("mem%02u: type=%u, attr=0x%lx, range=[0x%016lx-0x%016lx) (%luMB)\n", + i, md->type, md->attribute, md->phys_addr, + md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT), + md->num_pages >> (20 - EFI_PAGE_SHIFT)); + } } void __init diff -r b3a20899830d -r 85f326903b0d xen/arch/ia64/xen/xensetup.c --- a/xen/arch/ia64/xen/xensetup.c Fri Apr 21 11:28:20 2006 +0900 +++ b/xen/arch/ia64/xen/xensetup.c Fri Apr 21 11:29:00 2006 +0900 @@ -268,6 +268,7 @@ void start_kernel(void) - IA64_GRANULE_SIZE) >> PAGE_SHIFT; printf("find_memory: last granule reserved for dom0; xen max_page=%lx\n", max_page); + efi_print(); heap_start = memguard_init(ia64_imva(&_end)); printf("Before heap_start: %p\n", heap_start); diff -r b3a20899830d -r 85f326903b0d xen/include/asm-ia64/linux-xen/linux/efi.h --- a/xen/include/asm-ia64/linux-xen/linux/efi.h Fri Apr 21 11:28:20 2006 +0900 +++ b/xen/include/asm-ia64/linux-xen/linux/efi.h Fri Apr 21 11:29:00 2006 +0900 @@ -293,6 +293,9 @@ extern void efi_map_pal_code (void); extern void efi_map_pal_code (void); extern void efi_map_memmap(void); extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); +#ifdef XEN +extern void efi_print(void); +#endif extern void efi_gettimeofday (struct timespec *ts); extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ extern u64 efi_get_iobase (void);