[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches
Congratulations! That is why Kevin and I advocated many times before to suggest p2m translation (p!=m) :-) Can we also share the free beer? Eddie Magenheimer, Dan (HP Labs Fort Collins) wrote: > I was also able to get networking working with Isaku's patches > and Alex's. Hooray! For the last eight months, I have gulped > as I told people that Xen/ia64 doesn't support networking. > No longer! > > Domo arigato, Yamahata-san! Free beer (or sake) for you at > the next summit! > > Dan > >> -----Original Message----- >> From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx >> [mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf >> Of Williamson, Alex (Linux Kernel Dev) >> Sent: Monday, April 10, 2006 2:08 PM >> To: Isaku Yamahata >> Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >> Subject: Re: [Xen-ia64-devel] [PATCH][RFC][TAKE4] the P2M/VP patches >> >> On Mon, 2006-04-10 at 10:51 -0600, Alex Williamson wrote: >>> On Fri, 2006-04-07 at 13:16 +0900, Isaku Yamahata wrote: >>> >>>> 9512:f5d0a531cb58_dom0_vp_model_xen_part.patch >>> >>> >>> I'm having trouble with the legacy VGA memory descriptor section >>> of this patch. >> >> I managed to get my system booting with the patch below (2-way, >> w/ > 1GB RAM). Networking works, yeah! The main changes here are >> that I removed the fabricated MDT entries describing the legacy VGA >> space, added EFI_ACPI_RECLAIM_MEMORY to the memory types mapped, and >> sorted the >> resulting memory descriptor table. I also included the hack to avoid >> calling assign_domain_mmio_page() for large MMIO ranges. Minor nit, >> we're still subtracting IA64_GRANULE_SIZE from the MDT entry for >> conventional memory, but we're not adding in the granule at the end >> of memory like we used to. >> >> I also had to make a change to the -xen kernel which is not shown >> here. The sal_cache_flush_check() appears to be causing us >> some trouble >> again with the P2M/VP patches (MCA'd on my system), so I commented >> out the call to in in arich/ia64/kernel/sal.c:ia64_sal_init(). >> Thanks, >> >> Alex >> >> -- >> Alex Williamson HP Linux & Open Source >> Lab >> >> --- xen/xen/arch/ia64/xen/dom_fw.c 2006-04-10 >> 13:17:31.000000000 -0600 >> +++ xen/xen/arch/ia64/xen/dom_fw.c 2006-04-10 >> 13:15:21.000000000 -0600 >> @@ -10,6 +10,7 @@ >> #include <asm/pgalloc.h> >> >> #include <linux/efi.h> >> +#include <linux/sort.h> >> #include <asm/io.h> >> #include <asm/pal.h> >> #include <asm/sal.h> >> @@ -600,9 +601,14 @@ >> u64 end = start + (md->num_pages << EFI_PAGE_SHIFT); >> >> if (md->type == EFI_MEMORY_MAPPED_IO || >> - md->type == EFI_MEMORY_MAPPED_IO_PORT_SPACE) >> + md->type == EFI_MEMORY_MAPPED_IO_PORT_SPACE) { + >> + if (md->type == EFI_MEMORY_MAPPED_IO && >> + ((md->num_pages << EFI_PAGE_SHIFT) > 0x100000000UL)) + >> return 0; + >> paddr = assign_domain_mmio_page(d, start, end - start); - >> else + } else >> paddr = assign_domain_mach_page(d, start, end - start); >> #else paddr = md->phys_addr; >> @@ -610,6 +616,7 @@ >> >> BUG_ON(md->type != EFI_RUNTIME_SERVICES_CODE && >> md->type != EFI_RUNTIME_SERVICES_DATA && >> + md->type != EFI_ACPI_RECLAIM_MEMORY && >> md->type != EFI_MEMORY_MAPPED_IO && >> md->type != EFI_MEMORY_MAPPED_IO_PORT_SPACE); >> >> @@ -626,6 +633,18 @@ >> return 0; >> } >> >> +static int >> +efi_mdt_cmp(const void *a, const void *b) >> +{ >> + const efi_memory_desc_t *x = a, *y = b; >> + >> + if (x->phys_addr > y->phys_addr) >> + return 1; >> + if (x->phys_addr < y->phys_addr) >> + return -1; >> + return 0; >> +} >> + >> static struct ia64_boot_param * >> dom_fw_init (struct domain *d, const char *args, int arglen, >> char *fw_mem, int fw_mem_size) >> { >> @@ -834,6 +853,7 @@ >> /* simulate 1MB free memory at physical address zero */ >> >> MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB,0*MB,1*MB, 0);//XXX #else >> +#if 0 >> //XXX dom0 should use VGA? >> #define VGA_RAM_START 0xb8000 >> #define VGA_RAM_END 0xc0000 >> @@ -852,6 +872,7 @@ >> pcolour_map_end = pcolour_map + VGA_CMAPSZ * 8; >> MAKE_MD(EFI_LOADER_DATA, EFI_MEMORY_WB, 0 * MB, >> pvga_start, 1); >> MAKE_MD(EFI_LOADER_DATA, EFI_MEMORY_WB, >> pcolour_map_end, 1 * MB, 1); >> +#endif /* 0 */ >> #endif >> /* hypercall patches live here, masquerade as >> reserved PAL memory */ >> >> MAKE_MD(EFI_PAL_CODE,EFI_MEMORY_WB,HYPERCALL_START,HYPERCALL_END, >> 0); @@ -890,6 +911,8 @@ // for ACPI table. >> efi_memmap_walk_type(EFI_RUNTIME_SERVICES_DATA, >> dom_fw_dom0_passthrough, &arg); >> + efi_memmap_walk_type(EFI_ACPI_RECLAIM_MEMORY, >> + dom_fw_dom0_passthrough, &arg); >> efi_memmap_walk_type(EFI_MEMORY_MAPPED_IO, >> dom_fw_dom0_passthrough, &arg); >> efi_memmap_walk_type(EFI_MEMORY_MAPPED_IO_PORT_SPACE, >> @@ -902,8 +925,10 @@ #ifndef CONFIG_XEN_IA64_DOM0_VP >> MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB,0*MB,1*MB, 1); #else >> +#if 0 >> MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB, 0 * MB, >> VGA_RAM_START, 1); MAKE_MD(EFI_LOADER_DATA,EFI_MEMORY_WB, >> VGA_COLOURMAP_END, 1*MB, 1); >> +#endif /* 0 */ >> #endif >> /* hypercall patches live here, masquerade as >> reserved PAL memory */ >> >> MAKE_MD(EFI_PAL_CODE,EFI_MEMORY_WB,HYPERCALL_START,HYPERCALL_END, >> 1); @@ -915,6 +940,8 @@ MAKE_MD(EFI_RESERVED_TYPE,0,0,0,0); >> } >> >> + sort(efi_memmap, i, sizeof(efi_memory_desc_t), >> efi_mdt_cmp, NULL); >> + >> bp->efi_systab = dom_pa((unsigned long) fw_mem); >> bp->efi_memmap = dom_pa((unsigned long) efi_memmap); >> BUG_ON(i > NUM_MEM_DESCS); >> >> >> >> _______________________________________________ >> Xen-ia64-devel mailing list >> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx >> http://lists.xensource.com/xen-ia64-devel >> > > _______________________________________________ > Xen-ia64-devel mailing list > Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-ia64-devel _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |