[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [patch] SN2 specific SAL calls for dom0
Hi, We need these calls passed on to the PROM for SN2. Calling them on non SN2 PROMs will just result in an error so it should be harmless. Cheers, Jes # HG changeset patch # User jes@xxxxxxxxxxxxxxxx # Date 1172670717 -3600 # Node ID 207e879bfb4bc56e78bdc15619f231d7699c3832 # Parent 18dd07d55851bcc7c33771fc8cc12a2385b8fd34 emulate sn2 specific SAL calls for dom0 Signed-off-by: Jes Sorensen <jes@xxxxxxx> diff -r 18dd07d55851 -r 207e879bfb4b xen/arch/ia64/xen/fw_emul.c --- a/xen/arch/ia64/xen/fw_emul.c Tue Jan 16 04:02:16 2007 +0100 +++ b/xen/arch/ia64/xen/fw_emul.c Wed Feb 28 14:51:57 2007 +0100 @@ -22,6 +22,7 @@ #include <linux/efi.h> #include <asm/pal.h> #include <asm/sal.h> +#include <asm/sn/sn_sal.h> #include <asm/xenmca.h> #include <public/sched.h> @@ -130,6 +131,7 @@ sal_emulator (long index, unsigned long unsigned long in3, unsigned long in4, unsigned long in5, unsigned long in6, unsigned long in7) { + struct ia64_sal_retval ret_stuff; unsigned long r9 = 0; unsigned long r10 = 0; long r11 = 0; @@ -370,8 +372,64 @@ sal_emulator (long index, unsigned long case SAL_UPDATE_PAL: printk("*** CALLED SAL_UPDATE_PAL. IGNORED...\n"); break; + case SN_SAL_GET_MASTER_NASID: + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_MASTER_NASID ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_MASTER_NASID, + 0, 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + break; + } + case SN_SAL_GET_KLCONFIG_ADDR: + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_KLCONFIG_ADDR ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_KLCONFIG_ADDR, + in1, 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + break; + } + case SN_SAL_GET_SAPIC_INFO: + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_SAPIC_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SAPIC_INFO, in1, + 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + break; + } + case SN_SAL_GET_SN_INFO: + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_GET_SN_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_GET_SN_INFO, in1, + 0, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + break; + } + case SN_SAL_IOIF_GET_HUBDEV_INFO: + if (current->domain == dom0) { + printk("*** Emulating SN_SAL_IOIF_GET_HUBDEV_INFO ***\n"); + SAL_CALL_NOLOCK(ret_stuff, SN_SAL_IOIF_GET_HUBDEV_INFO, + in1, in2, 0, 0, 0, 0, 0); + status = ret_stuff.status; + r9 = ret_stuff.v0; + r10 = ret_stuff.v1; + r11 = ret_stuff.v2; + break; + } default: - printk("*** CALLED SAL_ WITH UNKNOWN INDEX. IGNORED...\n"); + printk("*** CALLED SAL_ WITH UNKNOWN INDEX (%lx). " + "IGNORED...\n", index); status = -1; break; } _______________________________________________ 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 |