From: awilliam@xenbuild2.aw Date: Sat, 27 Jan 2007 21:07:19 +0000 (-0700) Subject: merge with xen-unstable.hg X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15380 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a6b3be1244e97774c0dd9ec7561e33247db4c27b;p=xen.git merge with xen-unstable.hg --- a6b3be1244e97774c0dd9ec7561e33247db4c27b diff --cc xen/arch/ia64/xen/domain.c index 17f2483761,f83dd9335b..5eab071de5 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@@ -1049,16 -1000,48 +1033,31 @@@ int construct_dom0(struct domain *d max_pages = dom0_size / PAGE_SIZE; d->max_pages = max_pages; d->tot_pages = 0; - dsi.image_addr = (unsigned long)image_start; - dsi.image_len = image_len; - rc = parseelfimage(&dsi); + + rc = elf_init(&elf, (void*)image_start, image_len); if ( rc != 0 ) return rc; + #ifdef VERBOSE + elf_set_verbose(&elf); + #endif + elf_parse_binary(&elf); + if (0 != (elf_xen_parse(&elf, &parms))) + return rc; + + printk(" Dom0 kernel: %s, %s, paddr 0x%" PRIx64 " -> 0x%" PRIx64 "\n", + elf_64bit(&elf) ? "64-bit" : "32-bit", + elf_msb(&elf) ? "msb" : "lsb", + elf.pstart, elf.pend); + if (!elf_64bit(&elf) || + elf_uval(&elf, elf.ehdr, e_machine) != EM_IA_64) { + printk("Incompatible kernel binary\n"); + return -1; + } - p_start = dsi.v_start; - pkern_start = dsi.v_kernstart; - pkern_end = dsi.v_kernend; - pkern_entry = dsi.v_kernentry; -#ifdef VALIDATE_VT - /* Temp workaround */ - if (running_on_sim) - dsi.xen_section_string = (char *)1; - - /* Check whether dom0 is vti domain */ - if ((!vmx_enabled) && !dsi.xen_section_string) { - printk("Lack of hardware support for unmodified vmx dom0\n"); - panic(""); - } - - if (vmx_enabled && !dsi.xen_section_string) { - printk("Dom0 is vmx domain!\n"); - vmx_dom0 = 1; - } -#endif - + p_start = parms.virt_base; + pkern_start = parms.virt_kstart; + pkern_end = parms.virt_kend; + pkern_entry = parms.virt_entry; //printk("p_start=%lx, pkern_start=%lx, pkern_end=%lx, pkern_entry=%lx\n",p_start,pkern_start,pkern_end,pkern_entry);