All of lore.kernel.org
 help / color / mirror / Atom feed
* AMD/ATI patch for xen 4.2-unstable
@ 2012-04-02  1:03 Kristijan Lečnik
  2012-04-02  8:27 ` Pavel Mateja
  2012-04-03 21:07 ` Wei Huang
  0 siblings, 2 replies; 8+ messages in thread
From: Kristijan Lečnik @ 2012-04-02  1:03 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 2176 bytes --]

Hi,

i am trying to apply AMD/ATI patch on xen4-2 unstable
http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN3jloS.txt

and there was some changes in code and the patch is unusable, is there a
new patch. or can somebody help me to update the patch?

make[4]: Entering directory
`/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
  CC    i386-dm/pt-graphics.o
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
In function ‘igd_register_vga_regions’:
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:373:
error: too many arguments to function ‘pt_pci_host_read’
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:374:
error: too many arguments to function ‘pt_pci_host_read’
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
In function ‘igd_unregister_vga_regions’:
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:396:
error: too many arguments to function ‘pt_pci_host_read’
/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:397:
error: too many arguments to function ‘pt_pci_host_read’
make[4]: *** [pt-graphics.o] Error 1
make[4]: Leaving directory
`/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
make[3]: *** [subdir-i386-dm] Error 2
make[3]: Leaving directory
`/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote'
make[2]: *** [subdir-install-qemu-xen-traditional-dir] Error 2
make[2]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
make[1]: *** [subdirs-install] Error 2
make[1]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
make: *** [install-tools] Error 2

http://xen.1045712.n5.nabble.com/PATCH-1-3-qemu-xen-Change-prototype-for-pt-pci-host-read-write-td5016713.html

example:

old syle:
vendor_id = pt_pci_host_read(0, 2, 0, 0, 2);

new syle:
vid = pt_pci_host_read(pci_dev_1f, PCI_VENDOR_ID, 2);

Best Regards,
Kristijan Lečnik

[-- Attachment #1.2: Type: text/html, Size: 2796 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-04-02  1:03 AMD/ATI patch for xen 4.2-unstable Kristijan Lečnik
@ 2012-04-02  8:27 ` Pavel Mateja
  2012-04-03 21:07 ` Wei Huang
  1 sibling, 0 replies; 8+ messages in thread
From: Pavel Mateja @ 2012-04-02  8:27 UTC (permalink / raw)
  To: xen-devel

> Hi,
> 
> i am trying to apply AMD/ATI patch on xen4-2 unstable
> http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN3j
> loS.txt
> 
> and there was some changes in code and the patch is unusable, is there a
> new patch. or can somebody help me to update the patch?

Hi,
that patch is not enough today. It will crash on:
ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 1);    
You have to patch the kernel. There was some patch in Konrad's git.
Google 'xen "ioperm problem"'.
-- 
Pavel Mateja

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-04-02  1:03 AMD/ATI patch for xen 4.2-unstable Kristijan Lečnik
  2012-04-02  8:27 ` Pavel Mateja
@ 2012-04-03 21:07 ` Wei Huang
  2012-04-08 13:37   ` Kristijan Lečnik
  2012-05-04  0:32   ` n4rC0t1C
  1 sibling, 2 replies; 8+ messages in thread
From: Wei Huang @ 2012-04-03 21:07 UTC (permalink / raw)
  To: Kristijan Lečnik; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 2471 bytes --]

I just re-spin the patch, but haven't tested it yet. You want to try it 
(attached)? Make sure you are using AMD GPU as the primary.

-Wei


On 04/01/2012 08:03 PM, Kristijan Lečnik wrote:
> Hi,
>
> i am trying to apply AMD/ATI patch on xen4-2 unstable
> http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN3jloS.txt
>
> and there was some changes in code and the patch is unusable, is there 
> a new patch. or can somebody help me to update the patch?
>
> make[4]: Entering directory 
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
>   CC    i386-dm/pt-graphics.o
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c: 
> In function ‘igd_register_vga_regions’:
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:373: 
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:374: 
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c: 
> In function ‘igd_unregister_vga_regions’:
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:396: 
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:397: 
> error: too many arguments to function ‘pt_pci_host_read’
> make[4]: *** [pt-graphics.o] Error 1
> make[4]: Leaving directory 
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
> make[3]: *** [subdir-i386-dm] Error 2
> make[3]: Leaving directory 
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote'
> make[2]: *** [subdir-install-qemu-xen-traditional-dir] Error 2
> make[2]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> make[1]: *** [subdirs-install] Error 2
> make[1]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> make: *** [install-tools] Error 2
>
> http://xen.1045712.n5.nabble.com/PATCH-1-3-qemu-xen-Change-prototype-for-pt-pci-host-read-write-td5016713.html
>
> example:
>
> old syle:
> vendor_id = pt_pci_host_read(0, 2, 0, 0, 2);
>
> new syle:
> vid = pt_pci_host_read(pci_dev_1f, PCI_VENDOR_ID, 2);
>
> Best Regards,
> Kristijan Lečnik


[-- Attachment #1.2: Type: text/html, Size: 3963 bytes --]

[-- Attachment #2: ati_vbios_patch_respin.txt --]
[-- Type: text/plain, Size: 16736 bytes --]

diff --git a/hw/pass-through.c b/hw/pass-through.c
index dbe8804..c011782 100644
--- a/hw/pass-through.c
+++ b/hw/pass-through.c
@@ -1420,9 +1420,17 @@ static void pt_ioport_map(PCIDevice *d, int i,
     if (e_phys != -1)
     {
         /* Create new mapping */
-        ret = xc_domain_ioport_mapping(xc_handle, domid, e_phys,
-                    assigned_device->bases[i].access.pio_base, e_size,
-                    DPCI_ADD_MAPPING);
+        if ( vga_skip_ioport_map(d) ) 
+        {
+            assigned_device->bases[i].e_physbase = -1;
+        }
+        else
+        {
+            ret = xc_domain_ioport_mapping(xc_handle, domid, e_phys,
+                   assigned_device->bases[i].access.pio_base, e_size,
+                   DPCI_ADD_MAPPING);
+        }
+
         if ( ret != 0 )
         {
             PT_LOG("Error: create new mapping failed!\n");
diff --git a/hw/pass-through.h b/hw/pass-through.h
index e641b56..9053b0c 100644
--- a/hw/pass-through.h
+++ b/hw/pass-through.h
@@ -419,6 +419,11 @@ int pt_pci_host_write(struct pci_dev *pci_dev, u32 addr, u32 val, int len);
 void intel_pch_init(PCIBus *bus);
 int register_vga_regions(struct pt_dev *real_device);
 int unregister_vga_regions(struct pt_dev *real_device);
+int vga_skip_ioport_map(PCIDevice *d);
+int igd_register_vga_regions(struct pt_dev *real_device);
+int igd_unregister_vga_regions(struct pt_dev *real_device);
+int ati_register_vga_regions(struct pt_dev *real_device);
+int ati_unregister_vga_regions(struct pt_dev *real_device);
 int setup_vga_pt(struct pt_dev *real_device);
 PCIBus *intel_pci_bridge_init(PCIBus *bus, int devfn, uint16_t vid,
            uint16_t did, const char *name, uint16_t revision);
diff --git a/hw/pci.h b/hw/pci.h
index edc58b6..ffdb480 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -54,6 +54,8 @@ extern target_phys_addr_t pci_mem_base;
 
 #define PCI_VENDOR_ID_CIRRUS             0x1013
 
+#define PCI_VENDOR_ID_ATI                0x1002
+
 #define PCI_VENDOR_ID_IBM                0x1014
 #define PCI_DEVICE_ID_IBM_OPENPIC2       0xffff
 
diff --git a/hw/pt-graphics.c b/hw/pt-graphics.c
index 9c41f3e..3d0aa88 100644
--- a/hw/pt-graphics.c
+++ b/hw/pt-graphics.c
@@ -8,11 +8,248 @@
 
 #include <unistd.h>
 #include <sys/ioctl.h>
+#include <sys/io.h>
 #include <assert.h>
 
 extern int gfx_passthru;
 extern int igd_passthru;
 
+/*********************************/
+/*   Code for ATI GFX Passthru   */
+/*********************************/
+/* ATI VBIOS Working Mechanism 
+ *
+ * Generally there are three memory resources (two MMIO and one PIO) 
+ * associated with modern ATI gfx. VBIOS uses special tricks to figure out 
+ * BARs, instead of using regular PCI config space read.
+ *
+ *  (1) VBIOS relies on I/O port 0x3C3 to retrieve PIO BAR 
+ *  (2) VBIOS maintains a shadow copy of PCI configure space. It retries the 
+ *      MMIO BARs from this shadow copy via sending I/O requests to first two 
+ *      registers of PIO (MMINDEX and MMDATA). The workflow is like this: 
+ *      MMINDEX (register 0) is written with an index value, specifying the 
+ *      register VBIOS wanting to access. Then the shadowed data can be 
+ *      read/written from MMDATA (register 1). For two MMIO BARs, the index 
+ *      values are 0x4010 + 4 * bar_index. For instance the index value for
+ *      BAR 2 is 0x4018 (0x4010 + 4*2).
+ *
+ */
+
+#define ATI_BAR_MMINDEX_BASE  0x4010  //data written to MMINDEX for MMIO BAR1
+
+struct ati_gfx_info {
+    int initialized;            /* initialized already? */
+
+    /* PIO */
+    uint32_t host_pio_base;     /* host base addr of PIO */
+    uint32_t guest_pio_base;    /* guest base addr of PIO */
+    uint32_t pio_bar_index;     /* PIO BAR index can vary  */
+    uint32_t pio_size;          /* PIO size */
+
+    /* MMIO */
+    uint32_t guest_mmio_base1;  /* guest base addr of MMIO 1 */
+    uint32_t mmio_bar1_index;   /* guest MMIO BAR1 index */
+    uint32_t guest_mmio_base2;  /* guest base addr of MMIO 2 */
+    uint32_t mmio_bar2_index;   /* guest MMIO BAR2 index */
+
+    /* PIO MMINDEX access recording */
+    uint32_t pre_mmindex_data;       /* previous data written to MMINDEX */
+};
+
+static struct ati_gfx_info gfx_info;
+
+/* Convert guest PIO port to host PIO port */
+static uint16_t gport_to_hport(uint16_t gport)
+{
+    return (gport - gfx_info.guest_pio_base) + gfx_info.host_pio_base;
+}
+
+/* Read host PIO port */
+static uint32_t ati_hw_in(uint16_t hport)
+{
+    unsigned val;
+
+    ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 1);    
+    asm volatile ("in %1,%0":"=a"(val):"Nd"(hport));
+    ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 0);
+
+    return val;
+}
+
+/* Write data to host PIO */
+static void ati_hw_out(uint16_t hport, uint32_t data)
+{
+    ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 1);    
+    asm volatile ("out %1, %0"::"Nd"(hport),"a"(data));
+    ioperm(gfx_info.host_pio_base, gfx_info.pio_size, 0);
+}
+
+static uint32_t ati_io_regs_read(void *opaque, uint32_t addr)
+{
+    uint32_t val, index;
+
+    val = ati_hw_in(gport_to_hport(addr));
+
+    /* tweak the value if VBIOS is reading MMIO BAR1 and BAR2 */
+    if ( addr == (gfx_info.guest_pio_base + 4) )
+    {
+        index = (gfx_info.pre_mmindex_data - ATI_BAR_MMINDEX_BASE) / 4; 
+    
+        if ( index == gfx_info.mmio_bar1_index )
+            val = gfx_info.guest_mmio_base1 | (val & 0x0000000f);
+        else if ( index == gfx_info.mmio_bar2_index )
+            val = gfx_info.guest_mmio_base2 | (val & 0x0000000f);
+    }
+
+    return val;
+}
+
+static void ati_io_regs_write(void *opaque, uint32_t addr, uint32_t val)
+{
+    ati_hw_out(gport_to_hport(addr), val);
+
+    /* book keeping */
+    if ( addr == gfx_info.guest_pio_base )
+        gfx_info.pre_mmindex_data = val;
+}
+
+#define PCI_NUM_BARS 6
+static void ati_gfx_init(struct pt_dev *assigned)
+{
+    PCIDevice *dev = (PCIDevice *)&assigned->dev;
+    int i, mmio_bar1_index, mmio_bar2_index, pio_index;
+    PCIIORegion *r;
+
+    pio_index = mmio_bar1_index = mmio_bar2_index = -1;
+
+    /* PCI configure space only contains 6 BARs. Don't use PCI_NUM_REGIONS. */
+    for ( i = 0; i < PCI_NUM_BARS; i++ ) 
+    {
+        r = &dev->io_regions[i];
+
+        if ( r->size && (r->addr > 0) && 
+             (r->type == PCI_ADDRESS_SPACE_MEM ||
+              r->type == PCI_ADDRESS_SPACE_MEM_PREFETCH) )
+        {
+            if ( mmio_bar1_index < 0 )
+                mmio_bar1_index = i;
+            else
+                mmio_bar2_index = i;
+        }
+        
+        if ( r->size && (r->addr > 0) && (r->type == PCI_ADDRESS_SPACE_IO) )
+        {
+            pio_index = i;
+            
+        }
+    }
+
+    if ( pio_index < 0 || mmio_bar1_index < 0 || mmio_bar2_index < 0 )
+    {
+        PT_LOG("Error: can't find correct gfx memory resource BARs\n");
+        return;
+    }
+    
+    register_ioport_read(dev->io_regions[pio_index].addr, 
+      dev->io_regions[pio_index].size, 4, ati_io_regs_read, assigned);
+
+    register_ioport_write(dev->io_regions[pio_index].addr, 
+      dev->io_regions[pio_index].size, 4, ati_io_regs_write, assigned);
+            
+    /* initialize PIO fields */
+    gfx_info.guest_pio_base = dev->io_regions[pio_index].addr;
+    gfx_info.pio_size = dev->io_regions[pio_index].size;
+    gfx_info.pio_bar_index = pio_index;
+    gfx_info.host_pio_base = assigned->bases[pio_index].access.pio_base;
+
+    /* initialize MMIO fields */
+    gfx_info.guest_mmio_base1 = dev->io_regions[mmio_bar1_index].addr;
+    gfx_info.mmio_bar1_index = mmio_bar1_index;
+    gfx_info.guest_mmio_base2 = dev->io_regions[mmio_bar2_index].addr;
+    gfx_info.mmio_bar2_index = mmio_bar2_index;
+    
+    gfx_info.initialized = 1;
+
+    PT_LOG("ATI GFX Guest Info:\n"
+           "       pio_index=0x%08x,       guest_pio_bar=0x%08x\n"
+           "       mmio_bar1_index=0x%08x, guest_mmio_bar1=0x%08x\n"
+           "       mmio_bar2_index=0x%08x, guest_mmio_bar2=0x%08x\n", 
+           gfx_info.pio_bar_index, gfx_info.guest_pio_base, 
+           gfx_info.mmio_bar1_index, gfx_info.guest_mmio_base1, 
+           gfx_info.mmio_bar2_index, gfx_info.guest_mmio_base2);
+}
+
+static uint32_t ati_legacy_io_read(void *opaque, uint32_t addr)
+{
+    struct pt_dev *assigned_device = opaque;
+    PCIDevice *dev = (PCIDevice *)&assigned_device->dev;
+    uint32_t val = 0xFF;
+
+    switch( addr )
+    {
+    case 0x3c3:
+        val = dev->io_regions[gfx_info.pio_bar_index].addr >> 8;
+        /* Intercept GFX IO registers. This supposes to happen in 
+         * ati_register_vga_regions(). But we cannot get guest phys IO BAR 
+         * over there. */
+        if ( !gfx_info.initialized )
+            ati_gfx_init(assigned_device);
+        break;
+    default:
+        PT_LOG("ERROR: port 0x%x I/O read not handled\n", addr);
+        break;
+    }
+
+    return val;
+}
+
+static void ati_legacy_io_write(void *opaque, uint32_t addr, uint32_t val)
+{
+    PT_LOG("ERROR: port 0x%x I/O write not handled\n", addr);
+}
+
+int ati_register_vga_regions(struct pt_dev *real_device)
+{
+    PCIDevice *dev = (PCIDevice *)&real_device->dev;
+    int ret = 0;
+
+    /* We need to intercept VBIOS accesses to port 0x3C3, which returns 
+     * device port I/O BAR. For the rest of legacy I/O ports, we allow direct
+     * accesses.
+     */
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
+            0x3C0, 0x3, DPCI_ADD_MAPPING);
+    
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C4,
+            0x3C4, 0x1C, DPCI_ADD_MAPPING);
+
+    register_ioport_read(0x3c3, 1, 1, ati_legacy_io_read, real_device);
+    register_ioport_write(0x3c3, 1, 1, ati_legacy_io_write, real_device);
+
+    /* initialized on the first port 0x3C3 access in ati_gfx_init */
+    gfx_info.initialized = 0;
+
+    return ret;
+}
+
+int ati_unregister_vga_regions(struct pt_dev *real_device)
+{
+    int ret = 0;
+
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
+            0x3C0, 0x3, DPCI_REMOVE_MAPPING);
+    
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C4,
+            0x3C4, 0x1C, DPCI_REMOVE_MAPPING);
+
+    gfx_info.initialized = 0;
+
+    return ret;
+}
+
+/*********************************/
+/*  Code for Intel IGD Passthru  */
+/*********************************/
 static int pch_map_irq(PCIDevice *pci_dev, int irq_num)
 {
     PT_LOG("pch_map_irq called\n");
@@ -123,6 +360,79 @@ read_default:
    return pci_default_read_config(pci_dev, config_addr, len);
 }
 
+int igd_register_vga_regions(struct pt_dev *real_device)
+{
+    u32 vendor_id, igd_opregion;
+    int ret = 0;
+    
+    /* legacy I/O ports 0x3C0 -- 0x3E0 */
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
+            0x3C0, 0x20, DPCI_ADD_MAPPING);
+
+    /* 1:1 map ASL Storage register value */
+    vendor_id = pt_pci_host_read(real_device->pci_dev, 0, 2);
+    igd_opregion = pt_pci_host_read(real_device->pci_dev, PCI_INTEL_OPREGION, 4);
+    if ( (vendor_id == PCI_VENDOR_ID_INTEL) && igd_opregion )
+    {
+        ret |= xc_domain_memory_mapping(xc_handle, domid,
+                igd_opregion >> XC_PAGE_SHIFT,
+                igd_opregion >> XC_PAGE_SHIFT,
+                2,
+                DPCI_ADD_MAPPING);
+        PT_LOG("register_vga: igd_opregion = %x\n", igd_opregion);
+    }
+
+    return ret;
+}
+
+int igd_unregister_vga_regions(struct pt_dev *real_device)
+{
+    u32 vendor_id, igd_opregion;
+    int ret = 0;
+    struct pci_dev *phys_dev = pt_pci_get_dev(0, 2, 0);
+
+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
+            0x3C0, 0x20, DPCI_REMOVE_MAPPING);
+
+    vendor_id = pt_pci_host_read(real_device->pci_dev, 0, 2);
+    igd_opregion = pt_pci_host_read(real_device->pci_dev, PCI_INTEL_OPREGION, 4);
+    if ( (vendor_id == PCI_VENDOR_ID_INTEL) && igd_opregion )
+    {
+        ret |= xc_domain_memory_mapping(xc_handle, domid,
+                igd_opregion >> XC_PAGE_SHIFT,
+                igd_opregion >> XC_PAGE_SHIFT,
+                2,
+                DPCI_REMOVE_MAPPING);
+    }
+
+    return ret;
+}
+/*********************************/
+/* Generic Code for GFX Passthru */
+/*********************************/
+/* This function decides whether I/O port map should be skipped */
+int vga_skip_ioport_map(PCIDevice *d)
+{
+    struct pt_dev *dev = (struct pt_dev *)d;
+    int skip = 0;
+
+    if ( !gfx_passthru || dev->pci_dev->device_class != 0x0300 )
+        return 0;
+
+    switch( dev->pci_dev->vendor_id ) 
+    {
+    case PCI_VENDOR_ID_ATI:
+    case PCI_VENDOR_ID_AMD:
+        skip = 1;
+        break;
+    default:
+        skip = 0;
+        break;
+    }
+        
+    return skip;
+}
+
 /*
  * register VGA resources for the domain with assigned gfx
  */
@@ -135,29 +445,30 @@ int register_vga_regions(struct pt_dev *real_device)
     if ( !gfx_passthru || real_device->pci_dev->device_class != 0x0300 )
         return ret;
 
+    /* legacy I/O ports 0x3B0 - 0x3BC */
     ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3B0,
             0x3B0, 0xC, DPCI_ADD_MAPPING);
-
-    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
-            0x3C0, 0x20, DPCI_ADD_MAPPING);
-
+    
+    /* legacy video MMIO range 0xA0000 - 0xBFFFF */
     ret |= xc_domain_memory_mapping(xc_handle, domid,
             0xa0000 >> XC_PAGE_SHIFT,
             0xa0000 >> XC_PAGE_SHIFT,
             0x20,
             DPCI_ADD_MAPPING);
 
-    /* 1:1 map ASL Storage register value */
-    vendor_id = pt_pci_host_read(real_device->pci_dev, 0, 2);
-    igd_opregion = pt_pci_host_read(real_device->pci_dev, PCI_INTEL_OPREGION, 4);
-    if ( (vendor_id == PCI_VENDOR_ID_INTEL ) && igd_opregion )
+    switch( real_device->pci_dev->vendor_id ) 
     {
-        ret |= xc_domain_memory_mapping(xc_handle, domid,
-                igd_opregion >> XC_PAGE_SHIFT,
-                igd_opregion >> XC_PAGE_SHIFT,
-                2,
-                DPCI_ADD_MAPPING);
-        PT_LOG("register_vga: igd_opregion = %x\n", igd_opregion);
+    case PCI_VENDOR_ID_INTEL:
+        ret = igd_register_vga_regions(real_device);
+        break;
+    case PCI_VENDOR_ID_ATI:
+    case PCI_VENDOR_ID_AMD:
+        ret = ati_register_vga_regions(real_device);
+        break;
+    default:
+        PT_LOG("gfx card wasn't supported by Xen passthru!\n");
+        ret = 1;
+        break;
     }
 
     if ( ret != 0 )
@@ -171,33 +482,36 @@ int register_vga_regions(struct pt_dev *real_device)
  */
 int unregister_vga_regions(struct pt_dev *real_device)
 {
-    u32 vendor_id, igd_opregion;
     int ret = 0;
 
     if ( !gfx_passthru || real_device->pci_dev->device_class != 0x0300 )
         return ret;
 
+    /* legacy I/O ports 0x3B0 - 0x3BC */
     ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3B0,
             0x3B0, 0xC, DPCI_REMOVE_MAPPING);
 
-    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,
-            0x3C0, 0x20, DPCI_REMOVE_MAPPING);
-
+    /* legacy video MMIO range 0xA0000 - 0xBFFFF */
     ret |= xc_domain_memory_mapping(xc_handle, domid,
             0xa0000 >> XC_PAGE_SHIFT,
             0xa0000 >> XC_PAGE_SHIFT,
             20,
             DPCI_REMOVE_MAPPING);
 
-    vendor_id = pt_pci_host_read(real_device->pci_dev, PCI_VENDOR_ID, 2);
-    igd_opregion = pt_pci_host_read(real_device->pci_dev, PCI_INTEL_OPREGION, 4);
-    if ( (vendor_id == PCI_VENDOR_ID_INTEL) && igd_opregion )
+    /* Other VGA regions are vendor specific */
+    switch( real_device->pci_dev->vendor_id ) 
     {
-        ret |= xc_domain_memory_mapping(xc_handle, domid,
-                igd_opregion >> XC_PAGE_SHIFT,
-                igd_opregion >> XC_PAGE_SHIFT,
-                2,
-                DPCI_REMOVE_MAPPING);
+    case PCI_VENDOR_ID_INTEL:
+        ret = igd_unregister_vga_regions(real_device);
+        break;
+    case PCI_VENDOR_ID_ATI:
+    case PCI_VENDOR_ID_AMD:
+        ret = ati_unregister_vga_regions(real_device);
+        break;
+    default:
+        PT_LOG("gfx card wasn't supported by Xen passthru!\n");
+        ret = 1;
+        break;
     }
 
     if ( ret != 0 )
@@ -267,12 +581,12 @@ int setup_vga_pt(struct pt_dev *real_device)
     if ( !gfx_passthru || real_device->pci_dev->device_class != 0x0300 )
         return rc;
 
-    /* Allocated 64K for the vga bios */
-    if ( !(bios = malloc(64 * 1024)) )
+    /* Allocated 128K for the vga bios */
+    if ( !(bios = malloc(128 * 1024)) )
         return -1;
 
     bios_size = get_vgabios(bios);
-    if ( bios_size == 0 || bios_size > 64 * 1024)
+    if ( bios_size == 0 || bios_size > 128 * 1024)
     {
         PT_LOG("vga bios size (0x%x) is invalid!\n", bios_size);
         rc = -1;

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-04-03 21:07 ` Wei Huang
@ 2012-04-08 13:37   ` Kristijan Lečnik
  2012-04-08 14:01     ` Pavel Matěja
       [not found]     ` <CACC+8CTGuZBhM7HJPiQSXwmkAe487iOz00AsnPZ6MB58nb8b1g@mail.gmail.com>
  2012-05-04  0:32   ` n4rC0t1C
  1 sibling, 2 replies; 8+ messages in thread
From: Kristijan Lečnik @ 2012-04-08 13:37 UTC (permalink / raw)
  To: wei.huang2; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 6422 bytes --]

Hi,

just try to compile with xen unstable 4.2 repo from 8.april 2012

make --directory=arch/x86
OBJ_DIR=/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 || exit
1;
make[3]: Entering directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
ld -r -nostdlib
-L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
elf_x86_64
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86/x86_64.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os_app.o
 /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/blkfront.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/events.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/fbfront.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gntmap.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gnttab.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/hypervisor.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/kernel.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lock.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/main.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mm.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/netfront.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/pcifront.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/sched.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/ctype.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/math.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/printf.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/stack_chk_fail.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/string.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/sys.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xmalloc.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xs.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/xenbus/xenbus.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/console.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xencons_ring.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xenbus.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lwip.a
-L/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 -lx86_64  -lc
-o /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
objcopy -w -G xenos_* -G _start
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
ld -nostdlib
-L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
elf_x86_64 -T arch/x86/minios-x86_64.lds
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o  -o
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os
ld: warning: section `.bss' type changed to PROGBITS
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
`ati_hw_out':
/root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:82: undefined
reference to `ioperm'
/root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:84: undefined
reference to `ioperm'
/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
`ati_hw_in':
/root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:72: undefined
reference to `ioperm'
/root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:74: undefined
reference to `ioperm'
make[2]: *** [/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os]
Error 1
make[2]: Leaving directory `/root/xen-unstable.hg/extras/mini-os'
make[1]: *** [ioemu-stubdom] Error 2
make[1]: Leaving directory `/root/xen-unstable.hg/stubdom'
make: *** [install-stubdom] Error 2

using linux kernel 3.3

nm /usr/lib/libc.a |grep -i ioperm
ioperm.o:
0000000000000000 T ioperm

Best Regards,
Kristijan Lecnik


On Tue, Apr 3, 2012 at 11:07 PM, Wei Huang <wei.huang2@amd.com> wrote:

>  I just re-spin the patch, but haven't tested it yet. You want to try it
> (attached)? Make sure you are using AMD GPU as the primary.
>
> -Wei
>
>
>
> On 04/01/2012 08:03 PM, Kristijan Lečnik wrote:
>
> Hi,
>
>  i am trying to apply AMD/ATI patch on xen4-2 unstable
>
> http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN3jloS.txt
>
>  and there was some changes in code and the patch is unusable, is there a
> new patch. or can somebody help me to update the patch?
>
>  make[4]: Entering directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
>   CC    i386-dm/pt-graphics.o
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
> In function ‘igd_register_vga_regions’:
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:373:
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:374:
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
> In function ‘igd_unregister_vga_regions’:
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:396:
> error: too many arguments to function ‘pt_pci_host_read’
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:397:
> error: too many arguments to function ‘pt_pci_host_read’
> make[4]: *** [pt-graphics.o] Error 1
> make[4]: Leaving directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
> make[3]: *** [subdir-i386-dm] Error 2
> make[3]: Leaving directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote'
> make[2]: *** [subdir-install-qemu-xen-traditional-dir] Error 2
> make[2]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> make[1]: *** [subdirs-install] Error 2
> make[1]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> make: *** [install-tools] Error 2
>
>
> http://xen.1045712.n5.nabble.com/PATCH-1-3-qemu-xen-Change-prototype-for-pt-pci-host-read-write-td5016713.html
>
>  example:
>
>  old syle:
> vendor_id = pt_pci_host_read(0, 2, 0, 0, 2);
>
>  new syle:
> vid = pt_pci_host_read(pci_dev_1f, PCI_VENDOR_ID, 2);
>
>  Best Regards,
> Kristijan Lečnik
>
>
>

[-- Attachment #1.2: Type: text/html, Size: 8320 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-04-08 13:37   ` Kristijan Lečnik
@ 2012-04-08 14:01     ` Pavel Matěja
       [not found]     ` <CACC+8CTGuZBhM7HJPiQSXwmkAe487iOz00AsnPZ6MB58nb8b1g@mail.gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Pavel Matěja @ 2012-04-08 14:01 UTC (permalink / raw)
  To: xen-devel

On Sun 8. of April 2012 15:37:49 Kristijan Lečnik wrote:
> Hi,
> 
> just try to compile with xen unstable 4.2 repo from 8.april 2012
> 
> make --directory=arch/x86
> OBJ_DIR=/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 || exit
> 1;
> make[3]: Entering directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
> make[3]: Nothing to be done for `all'.
> make[3]: Leaving directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
> ld -r -nostdlib
> -L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
> elf_x86_64
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86/x86_64.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os_app.o
>  /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/blkfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/events.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/fbfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gntmap.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gnttab.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/hypervisor.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/kernel.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lock.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/main.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mm.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/netfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/pcifront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/sched.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/ctype.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/math.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/printf.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/stack_chk_fail.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/string.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/sys.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xmalloc.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xs.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/xenbus/xenbus.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/console.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xencons_ring.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xenbus.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lwip.a
> -L/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 -lx86_64  -lc
> -o /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
> objcopy -w -G xenos_* -G _start
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
> ld -nostdlib
> -L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
> elf_x86_64 -T arch/x86/minios-x86_64.lds
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o  -o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os
> ld: warning: section `.bss' type changed to PROGBITS
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
> `ati_hw_out':
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:82: undefined
> reference to `ioperm'
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:84: undefined
> reference to `ioperm'
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
> `ati_hw_in':
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:72: undefined
> reference to `ioperm'
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:74: undefined
> reference to `ioperm'
> make[2]: *** [/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os]
> Error 1
> make[2]: Leaving directory `/root/xen-unstable.hg/extras/mini-os'
> make[1]: *** [ioemu-stubdom] Error 2
> make[1]: Leaving directory `/root/xen-unstable.hg/stubdom'
> make: *** [install-stubdom] Error 2
> 
> using linux kernel 3.3
> 
> nm /usr/lib/libc.a |grep -i ioperm
> ioperm.o:
> 0000000000000000 T ioperm
> 
> Best Regards,
> Kristijan Lecnik
> 
> On Tue, Apr 3, 2012 at 11:07 PM, Wei Huang <wei.huang2@amd.com> wrote:
> >  I just re-spin the patch, but haven't tested it yet. You want to try it
> > 
> > (attached)? Make sure you are using AMD GPU as the primary.
> > 
> > -Wei
> > 
> > 
> > 
> > On 04/01/2012 08:03 PM, Kristijan Lečnik wrote:
> > 
> > Hi,
> > 
> >  i am trying to apply AMD/ATI patch on xen4-2 unstable
> > 
> > http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN
> > 3jloS.txt
> > 
> >  and there was some changes in code and the patch is unusable, is there a
> > 
> > new patch. or can somebody help me to update the patch?
> > 
> >  make[4]: Entering directory
> > 
> > `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remo
> > te/i386-dm'
> > 
> >   CC    i386-dm/pt-graphics.o
> > 
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c: In function ‘igd_register_vga_regions’:
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c:373: error: too many arguments to function ‘pt_pci_host_read’
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c:374: error: too many arguments to function ‘pt_pci_host_read’
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c: In function ‘igd_unregister_vga_regions’:
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c:396: error: too many arguments to function ‘pt_pci_host_read’
> > /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt
> > -graphics.c:397: error: too many arguments to function ‘pt_pci_host_read’
> > make[4]: *** [pt-graphics.o] Error 1
> > make[4]: Leaving directory
> > `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remo
> > te/i386-dm' make[3]: *** [subdir-i386-dm] Error 2
> > make[3]: Leaving directory
> > `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remo
> > te' make[2]: *** [subdir-install-qemu-xen-traditional-dir] Error 2
> > make[2]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> > make[1]: *** [subdirs-install] Error 2
> > make[1]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'
> > make: *** [install-tools] Error 2
> > 
> > 
> > http://xen.1045712.n5.nabble.com/PATCH-1-3-qemu-xen-Change-prototype-for-
> > pt-pci-host-read-write-td5016713.html
> > 
> >  example:
> > 
> >  old syle:
> > vendor_id = pt_pci_host_read(0, 2, 0, 0, 2);
> > 
> >  new syle:
> > vid = pt_pci_host_read(pci_dev_1f, PCI_VENDOR_ID, 2);
> > 
> >  Best Regards,
> > 
> > Kristijan Lečnik

Hi,
still the same story
http://lists.xen.org/archives/html/xen-devel/2011-05/msg01734.html

But all my recent attempts failed anyway. My last working setup is with old 
2.6.32.x kernel.
-- 
Pavel Mateja

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
       [not found]       ` <4400B41FB768044EA720935D0808176C090BD76C@sausexdag02.amd.com>
@ 2012-04-20  0:39         ` Kristijan Lečnik
  0 siblings, 0 replies; 8+ messages in thread
From: Kristijan Lečnik @ 2012-04-20  0:39 UTC (permalink / raw)
  To: Wei Huang, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 9996 bytes --]

Hi,

I was busy too, but finally i get around to test the patch, i have compile
it with just "make"
in xen-unstable.hg/tools/qemu-xen-traditional-dir-remote/
and then copy it over, but it wont start with gfx_passthru=1,

.......
IRQ type = INTx
pt_iomem_map: e_phys=e0000000 maddr=b0000000 type=8 len=268435456 index=0
first_map=1
pt_iomem_map: e_phys=f1020000 maddr=fa4e0000 type=0 len=131072 index=2
first_map=1
pt_iomem_map: e_phys=f1060000 maddr=fa4bc000 type=0 len=16384 index=0
first_map=1
pt_iomem_map: e_phys=f1064000 maddr=fadfe000 type=0 len=8192 index=0
first_map=1
pt_iomem_map: e_phys=f1066000 maddr=fa3f6000 type=0 len=4096 index=0
first_map=1
pt_iomem_map: e_phys=f1067000 maddr=fa3fc000 type=0 len=4096 index=0
first_map=1
pt_ioport_map: e_phys=c100 pio_base=7000 len=256 index=4 first_map=1
pt_ioport_map: e_phys=c100 pio_base=7000 len=256 index=4 first_map=0
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_gfx_init: ATI GFX Guest Info:
       pio_index=0x00000004,       guest_pio_bar=0x0000c100
       mmio_bar1_index=0x00000000, guest_mmio_bar1=0xe0000000
       mmio_bar2_index=0x00000002, guest_mmio_bar2=0xf1020000
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw
state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro
state.


Best Regards,
Kristijan Lecnik

On Fri, Apr 13, 2012 at 5:33 PM, Huang2, Wei <Wei.Huang2@amd.com> wrote:

>  Hi Kristijan,****
>
> ** **
>
> Sorry, was busy recently. Stub domain failure is OK. I think Ian (or
> someone else) reported it before. You can do the following steps:****
>
> ** **
>
> **1.      **Apply the patch****
>
> **2.      **Go to xen-unstable.hg/tools/qemu-xen-traditional-dir-remote/
> and compile it****
>
> **3.      **You will get an un-stripped qemu-dm under i386-dm/****
>
> **4.      **Copy it to your destination to replace existing
> /usr/lib/xen/bin/qemu-dm file****
>
> ** **
>
> ** **
>
> -Wei****
>
> ** **
>
> *From:* Kristijan Lečnik [mailto:janez3k@gmail.com]
> *Sent:* Friday, April 13, 2012 6:57 AM
> *To:* Huang2, Wei
> *Subject:* Fwd: [Xen-devel] AMD/ATI patch for xen 4.2-unstable****
>
> ** **
>
> Hi,
>
> i am sorry to bother you, but did you manage to see my errors, with the
> new patch?
>
> Best Regards,
> Kristijan Lecnik****
>
> ---------- Forwarded message ----------
> From: *Kristijan Lečnik* <janez3k@gmail.com>
> Date: Sun, Apr 8, 2012 at 3:37 PM
> Subject: Re: [Xen-devel] AMD/ATI patch for xen 4.2-unstable
> To: wei.huang2@amd.com
> Cc: xen-devel@lists.xen.org
>
>
> Hi,****
>
> ** **
>
> just try to compile with xen unstable 4.2 repo from 8.april 2012****
>
> ** **
>
> make --directory=arch/x86
> OBJ_DIR=/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 || exit
> 1;****
>
> make[3]: Entering directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
> ****
>
> make[3]: Nothing to be done for `all'.****
>
> make[3]: Leaving directory `/root/xen-unstable.hg/extras/mini-os/arch/x86'
> ****
>
> ld -r -nostdlib
> -L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
> elf_x86_64
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86/x86_64.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os_app.o
>  /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/blkfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/events.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/fbfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gntmap.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/gnttab.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/hypervisor.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/kernel.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lock.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/main.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mm.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/netfront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/pcifront.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/sched.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/ctype.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/math.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/printf.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/stack_chk_fail.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/string.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/sys.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xmalloc.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lib/xs.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/xenbus/xenbus.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/console.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xencons_ring.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/console/xenbus.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/lwip.a
> -L/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/arch/x86 -lx86_64  -lc
> -o /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o****
>
> objcopy -w -G xenos_* -G _start
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o****
>
> ld -nostdlib
> -L/root/xen-unstable.hg/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m
> elf_x86_64 -T arch/x86/minios-x86_64.lds
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o  -o
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os****
>
> ld: warning: section `.bss' type changed to PROGBITS****
>
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
> `ati_hw_out':****
>
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:82: undefined
> reference to `ioperm'****
>
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:84: undefined
> reference to `ioperm'****
>
> /root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os.o: In function
> `ati_hw_in':****
>
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:72: undefined
> reference to `ioperm'****
>
> /root/xen-unstable.hg/stubdom/ioemu/hw/pt-graphics.c:74: undefined
> reference to `ioperm'****
>
> make[2]: *** [/root/xen-unstable.hg/stubdom/mini-os-x86_64-ioemu/mini-os]
> Error 1****
>
> make[2]: Leaving directory `/root/xen-unstable.hg/extras/mini-os'****
>
> make[1]: *** [ioemu-stubdom] Error 2****
>
> make[1]: Leaving directory `/root/xen-unstable.hg/stubdom'****
>
> make: *** [install-stubdom] Error 2****
>
> ** **
>
> using linux kernel 3.3****
>
> ** **
>
> nm /usr/lib/libc.a |grep -i ioperm****
>
> ioperm.o:****
>
> 0000000000000000 T ioperm****
>
> ** **
>
> Best Regards,****
>
> Kristijan Lecnik****
>
> ** **
>
> ** **
>
> On Tue, Apr 3, 2012 at 11:07 PM, Wei Huang <wei.huang2@amd.com> wrote:****
>
> I just re-spin the patch, but haven't tested it yet. You want to try it
> (attached)? Make sure you are using AMD GPU as the primary.
>
> -Wei****
>
>
>
>
> On 04/01/2012 08:03 PM, Kristijan Lečnik wrote: ****
>
> Hi, ****
>
> ** **
>
> i am trying to apply AMD/ATI patch on xen4-2 unstable****
>
>
> http://old-list-archives.xen.org/archives/html/xen-devel/2010-12/txtNwRlN3jloS.txt
> ****
>
> ** **
>
> and there was some changes in code and the patch is unusable, is there a
> new patch. or can somebody help me to update the patch?****
>
> ** **
>
> make[4]: Entering directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
> ****
>
>   CC    i386-dm/pt-graphics.o****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
> In function ‘igd_register_vga_regions’:****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:373:
> error: too many arguments to function ‘pt_pci_host_read’****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:374:
> error: too many arguments to function ‘pt_pci_host_read’****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:
> In function ‘igd_unregister_vga_regions’:****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:396:
> error: too many arguments to function ‘pt_pci_host_read’****
>
> /root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir/hw/pt-graphics.c:397:
> error: too many arguments to function ‘pt_pci_host_read’****
>
> make[4]: *** [pt-graphics.o] Error 1****
>
> make[4]: Leaving directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote/i386-dm'
> ****
>
> make[3]: *** [subdir-i386-dm] Error 2****
>
> make[3]: Leaving directory
> `/root/xen-unstable.hg-IN_USE_PATCHED/tools/qemu-xen-traditional-dir-remote'
> ****
>
> make[2]: *** [subdir-install-qemu-xen-traditional-dir] Error 2****
>
> make[2]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'***
> *
>
> make[1]: *** [subdirs-install] Error 2****
>
> make[1]: Leaving directory `/root/xen-unstable.hg-IN_USE_PATCHED/tools'***
> *
>
> make: *** [install-tools] Error 2****
>
> ** **
>
>
> http://xen.1045712.n5.nabble.com/PATCH-1-3-qemu-xen-Change-prototype-for-pt-pci-host-read-write-td5016713.html
> ****
>
> ** **
>
> example:****
>
> ** **
>
> old syle:****
>
> vendor_id = pt_pci_host_read(0, 2, 0, 0, 2);****
>
> ** **
>
> new syle:****
>
> vid = pt_pci_host_read(pci_dev_1f, PCI_VENDOR_ID, 2);****
>
> ** **
>
> Best Regards,****
>
> Kristijan Lečnik****
>
> ** **
>
> ** **
>
> ** **
>

[-- Attachment #1.2: Type: text/html, Size: 17437 bytes --]

[-- Attachment #2: qemu-dm-win7.log.1 --]
[-- Type: application/octet-stream, Size: 5022 bytes --]

domid: 3
Strip off blktap sub-type prefix to /xen/win7.qcow2 (drv 'qcow2')
Using file /xen/win7.qcow2 in read-write mode
Watching /local/domain/0/device-model/3/logdirty/cmd
Watching /local/domain/0/device-model/3/command
Watching /local/domain/3/cpu
char device redirected to /dev/pts/2
qemu_map_cache_init nr_buckets = 10000 size 4194304
shared page at pfn feffd
buffered io page at pfn feffb
Guest uuid = db2e1484-2115-4a2c-bb89-c8f99bfe500d
Register xen platform.
Done register platform.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
xs_read(/local/domain/0/device-model/3/xen_extended_power_mgmt): read error
Log-dirty: no command yet.
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
vcpu-set: watch node error.
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
xs_read(/local/domain/3/log-throttling): read error
qemu: ignoring not-understood drive `/local/domain/3/log-throttling'
medium change watch on `/local/domain/3/log-throttling' - unknown device, ignored
I/O request not ready: 0, ptr: 0, port: 0, data: 0, count: 0, size: 0
dm-command: hot insert pass-through pci dev 
register_real_device: Assigning real physical device 01:00.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x1:0x0.0x0
pt_register_regions: IO region registered (size=0x10000000 base_addr=0xb000000c)
pt_register_regions: IO region registered (size=0x00020000 base_addr=0xfa4e0004)
pt_register_regions: IO region registered (size=0x00000100 base_addr=0x00007001)
pt_register_regions: Expansion ROM registered (size=0x00020000 base_addr=0xfa4c0000)
pt_msi_setup: msi mapped with pirq 37
pci_intx: intx=1
register_real_device: Real physical device 01:00.0 registered successfuly!
IRQ type = MSI-INTx
dm-command: hot insert pass-through pci dev 
register_real_device: Assigning real physical device 01:00.1 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x1:0x0.0x1
pt_register_regions: IO region registered (size=0x00004000 base_addr=0xfa4bc004)
pt_msi_setup: msi mapped with pirq 36
pci_intx: intx=2
register_real_device: Real physical device 01:00.1 registered successfuly!
IRQ type = MSI-INTx
dm-command: hot insert pass-through pci dev 
register_real_device: Assigning real physical device 0a:00.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0xa:0x0.0x0
pt_register_regions: IO region registered (size=0x00002000 base_addr=0xfadfe004)
pt_msix_init: get MSI-X table bar base fadfe000
pt_msix_init: table_off = 1000, total_entries = 8
pt_msix_init: mapping physical MSI-X table to 7ff19c6de000
pt_msi_setup: msi mapped with pirq 35
pci_intx: intx=1
register_real_device: Real physical device 0a:00.0 registered successfuly!
IRQ type = MSI-INTx
dm-command: hot insert pass-through pci dev 
register_real_device: Assigning real physical device 00:1d.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x0:0x1d.0x0
pt_register_regions: IO region registered (size=0x00000400 base_addr=0xfa3f6000)
pci_intx: intx=1
register_real_device: Real physical device 00:1d.0 registered successfuly!
IRQ type = INTx
dm-command: hot insert pass-through pci dev 
register_real_device: Assigning real physical device 00:1a.0 ...
pt_iomul_init: Error: pt_iomul_init can't open file /dev/xen/pci_iomul: No such file or directory: 0x0:0x1a.0x0
pt_register_regions: IO region registered (size=0x00000400 base_addr=0xfa3fc000)
pci_intx: intx=1
register_real_device: Real physical device 00:1a.0 registered successfuly!
IRQ type = INTx
pt_iomem_map: e_phys=e0000000 maddr=b0000000 type=8 len=268435456 index=0 first_map=1
pt_iomem_map: e_phys=f1020000 maddr=fa4e0000 type=0 len=131072 index=2 first_map=1
pt_iomem_map: e_phys=f1060000 maddr=fa4bc000 type=0 len=16384 index=0 first_map=1
pt_iomem_map: e_phys=f1064000 maddr=fadfe000 type=0 len=8192 index=0 first_map=1
pt_iomem_map: e_phys=f1066000 maddr=fa3f6000 type=0 len=4096 index=0 first_map=1
pt_iomem_map: e_phys=f1067000 maddr=fa3fc000 type=0 len=4096 index=0 first_map=1
pt_ioport_map: e_phys=c100 pio_base=7000 len=256 index=4 first_map=1
pt_ioport_map: e_phys=c100 pio_base=7000 len=256 index=4 first_map=0
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_gfx_init: ATI GFX Guest Info:
       pio_index=0x00000004,       guest_pio_bar=0x0000c100
       mmio_bar1_index=0x00000000, guest_mmio_bar1=0xe0000000
       mmio_bar2_index=0x00000002, guest_mmio_bar2=0xf1020000
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
ati_legacy_io_write: ERROR: port 0x3c3 I/O write not handled
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is rw state.
platform_fixed_ioport: changed ro/rw state of ROM memory area. now is ro state.

[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-04-03 21:07 ` Wei Huang
  2012-04-08 13:37   ` Kristijan Lečnik
@ 2012-05-04  0:32   ` n4rC0t1C
  2012-05-04  7:56     ` Tobias Geiger
  1 sibling, 1 reply; 8+ messages in thread
From: n4rC0t1C @ 2012-05-04  0:32 UTC (permalink / raw)
  To: xen-devel


Huang2, Wei wrote
> 
> I just re-spin the patch, but haven't tested it yet. You want to try it 
> (attached)? Make sure you are using AMD GPU as the primary.
> 
> -Wei
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@.xen
> http://lists.xen.org/xen-devel
> 

Works perfectly here.
Intel i5-2500, Asrock z68 Extreme4 Gen3, AMD 6870 as primary.
Xen Unstable 25254, Ubuntu 12.04, ubuntu 3.3.3 kernel.
Gfx passthrough=0, just install ati drivers with vnc, then reboot and
monitors turn on with full 3D acceleration.

I've been using this patch (4.1 patch, 4.2 a couple of weeks) 6 months now,
not a single bsod.
Thanks everyone,
Ivo


--
View this message in context: http://xen.1045712.n5.nabble.com/AMD-ATI-patch-for-xen-4-2-unstable-tp5611297p5684634.html
Sent from the Xen - Dev mailing list archive at Nabble.com.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: AMD/ATI patch for xen 4.2-unstable
  2012-05-04  0:32   ` n4rC0t1C
@ 2012-05-04  7:56     ` Tobias Geiger
  0 siblings, 0 replies; 8+ messages in thread
From: Tobias Geiger @ 2012-05-04  7:56 UTC (permalink / raw)
  To: xen-devel; +Cc: n4rC0t1C, xen-devel

Am Freitag, 4. Mai 2012, 02:32:13 schrieb n4rC0t1C:
> Huang2, Wei wrote
> 
> > I just re-spin the patch, but haven't tested it yet. You want to try it
> > (attached)? Make sure you are using AMD GPU as the primary.
> > 
> > -Wei
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@.xen
> > http://lists.xen.org/xen-devel
> 
> Works perfectly here.
> Intel i5-2500, Asrock z68 Extreme4 Gen3, AMD 6870 as primary.
> Xen Unstable 25254, Ubuntu 12.04, ubuntu 3.3.3 kernel.
> Gfx passthrough=0, just install ati drivers with vnc, then reboot and
> monitors turn on with full 3D acceleration.
> 

if i understand this patch and the gfx_passthrough parameter right, you don't 
need this patch for this scenario: 
with gfx_passthrough=0 this patch does not what its intended to do, i.e. 
"declare" itself as the primary gpu within the DomU which would mean you could 
also see early boot messages and windows start screen on the monitor of the 
passed-through gpu (a feature i not really need).

Greetings
Tobias


> I've been using this patch (4.1 patch, 4.2 a couple of weeks) 6 months now,
> not a single bsod.
> Thanks everyone,
> Ivo
> 
> 
> --
> View this message in context:
> http://xen.1045712.n5.nabble.com/AMD-ATI-patch-for-xen-4-2-unstable-tp5611
> 297p5684634.html Sent from the Xen - Dev mailing list archive at
> Nabble.com.
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-05-04  7:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-02  1:03 AMD/ATI patch for xen 4.2-unstable Kristijan Lečnik
2012-04-02  8:27 ` Pavel Mateja
2012-04-03 21:07 ` Wei Huang
2012-04-08 13:37   ` Kristijan Lečnik
2012-04-08 14:01     ` Pavel Matěja
     [not found]     ` <CACC+8CTGuZBhM7HJPiQSXwmkAe487iOz00AsnPZ6MB58nb8b1g@mail.gmail.com>
     [not found]       ` <4400B41FB768044EA720935D0808176C090BD76C@sausexdag02.amd.com>
2012-04-20  0:39         ` Kristijan Lečnik
2012-05-04  0:32   ` n4rC0t1C
2012-05-04  7:56     ` Tobias Geiger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.