WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [PATCH] implement some PAL procedures

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH] implement some PAL procedures
From: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
Date: Wed, 31 Oct 2007 16:51:45 +0900
Delivery-date: Wed, 31 Oct 2007 00:52:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi,

This patch implements:
 - PAL_PREFETCH_VISIBILITY
 - PAL_MC_DRAIN
 - PAL_BRAND_INFO
 - PAL_GET_PSTATE
 - PAL_CACHE_SHARED_INFO

Abobe PAL procedures are necessary for Windows 2008.

Thanks,
Kouya

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>

diff -r a07288a84785 xen/arch/ia64/xen/fw_emul.c
--- a/xen/arch/ia64/xen/fw_emul.c       Tue Oct 30 15:34:44 2007 -0600
+++ b/xen/arch/ia64/xen/fw_emul.c       Wed Oct 31 15:56:47 2007 +0900
@@ -583,6 +583,19 @@ remote_pal_cache_flush(void *v)
                                      &progress, NULL);
        if (status != 0)
                args->status = status;
+}
+
+static void
+remote_pal_prefetch_visibility(void *v)
+{
+       s64 trans_type = (s64)v;
+       ia64_pal_prefetch_visibility(trans_type);
+}
+
+static void
+remote_pal_mc_drain(void *v)
+{
+       ia64_pal_mc_drain();
 }
 
 struct ia64_pal_retval
@@ -846,7 +859,36 @@ xen_pal_emulator(unsigned long index, u6
                status = PAL_STATUS_SUCCESS;
                r9 = current->vcpu_id;
                break;
+           case PAL_PREFETCH_VISIBILITY:
+               status = ia64_pal_prefetch_visibility(in1);
+               if (status == 0) {
+                       /* must be performed on all remote processors 
+                          in the coherence domain. */
+                       smp_call_function(remote_pal_prefetch_visibility,
+                                         (void *)in1, 1, 1);
+                       status = 1; /* no more necessary on remote processor */
+                       break;
+               }
+               break;
+           case PAL_MC_DRAIN:
+               status = ia64_pal_mc_drain();
+               /* FIXME: All vcpus likely call PAL_MC_DRAIN.
+                  That causes the congestion. */
+               smp_call_function(remote_pal_mc_drain, NULL, 1, 1);
+               break;
+           case PAL_BRAND_INFO:
+               if (in1 == 0) {
+                       char brand_info[128];
+                       status = ia64_pal_get_brand_info(brand_info);
+                       if (status == PAL_STATUS_SUCCESS)
+                               copy_to_user((void *)in2, brand_info, 128);
+               } else {
+                       status = PAL_STATUS_EINVAL;
+               }
+               break;
            case PAL_LOGICAL_TO_PHYSICAL:
+           case PAL_GET_PSTATE:
+           case PAL_CACHE_SHARED_INFO:
                /* Optional, no need to complain about being unimplemented */
                break;
            default:
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>