|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] ATI fglrx OpenGL working in Xen!
 
hi,
 I gave the closed-source fglrx-driver another try, and with the latest 
xeno-unstable and some patching of the open-source wrapper provided with 
fglrx, I managed to get my ATI Radeon 9600SE accellerated OpenGL running 
at what appears to be full speed, in dom0.
 I have attached diffs to the two source files that need changing, below. 
Basically, I replaced all CONFIG_X86* ifdefs with CONFIG_XEN*, and I 
replaced the calls to remap_page_range() with calls to 
io_remap_page_range().
 This is not a very clean or nice patch, but it does the job. Does anyone 
 know where to send fglrx-patches, once I have a nicer version?
Jacob
 ------------------------ agpgart_be.c ------------------
140a141
> 
1053c1054
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1162c1163
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1167c1168
<       agp_bridge.gatt_table = ioremap_nocache(virt_to_phys(table),
---
>       agp_bridge.gatt_table = ioremap_nocache(virt_to_bus(table),
1173c1174
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1248c1249
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1405c1406
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
1446c1447
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3179c3180
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3199c3200
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3204c3205
<         page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
---
>         page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
3209c3210
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
3238c3239
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4407c4408
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4485c4486
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4506c4507
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4600c4601
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4621c4622
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4626c4627
<       page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real), 
---
>       page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real), 
4631c4632
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
4658c4659
< #if defined(CONFIG_X86) && (PAGE_ATTR_FIX != 0)
---
> #if defined(CONFIG_XEN) && (PAGE_ATTR_FIX != 0)
------------------------ firegl_public.c ------------------
34a35
> #include <asm/pgtable.h>
41,48c42,49
< #if !defined(CONFIG_X86_PC) 
< #if !defined(CONFIG_X86_64)
< #if !defined(CONFIG_X86_VOYAGER)
< #if !defined(CONFIG_X86_NUMAQ)
< #if !defined(CONFIG_X86_SUMMIT)
< #if !defined(CONFIG_X86_BIGSMP)
< #if !defined(CONFIG_X86_VISWS)
< #if !defined(CONFIG_X86_GENERICARCH)
---
> #if !defined(CONFIG_XEN) 
> #if !defined(CONFIG_XEN_64)
> #if !defined(CONFIG_XEN_VOYAGER)
> #if !defined(CONFIG_XEN_NUMAQ)
> #if !defined(CONFIG_XEN_SUMMIT)
> #if !defined(CONFIG_XEN_BIGSMP)
> #if !defined(CONFIG_XEN_VISWS)
> #if !defined(CONFIG_XEN_GENERICARCH)
2556a2558
> 
2558c2560
<     __KE_DEBUG3("start=0x%08lx, "
---
>     printk("start=0x%08lx, "
2564a2567,2569
>       printk("__ke_vm_map\n");
>       //return -EPERM;
> 
2589c2594
<             if (remap_page_range(FGL_VMA_API_PASS
---
>             if (io_remap_page_range(vma,
2595c2600
<                 __KE_DEBUG("remap_page_range failed\n");
---
>                 __KE_DEBUG("io_remap_page_range failed\n");
2656c2661
<                               if (remap_page_range(FGL_VMA_API_PASS
---
>                               if (io_remap_page_range(vma,
2662c2667
<                                       __KE_DEBUG("remap_page_range failed\n");
---
>                                       __KE_DEBUG("io_remap_page_range 
> failed\n");
2693c2698
<                               if (remap_page_range(FGL_VMA_API_PASS
---
>                               if (io_remap_page_range(vma,
2699c2704
<                                       __KE_DEBUG("remap_page_range failed\n");
---
>                                       __KE_DEBUG("io_remap_page_range 
> failed\n");
 |   
 
 | 
    | 
  
  
    |   | 
    |