diff options
| -rw-r--r-- | abs/core-testing/nvidia-beta/NVIDIA_kernel-169.12-2286310.diff | 637 | ||||
| -rw-r--r-- | abs/core-testing/nvidia-beta/PKGBUILD | 38 | ||||
| -rw-r--r-- | abs/core-testing/nvidia-beta/nvidia.install | 22 | ||||
| -rw-r--r-- | abs/core-testing/nvidia-utils-beta/PKGBUILD | 67 | ||||
| -rw-r--r-- | abs/core-testing/nvidia-utils-beta/nvidia.install | 40 | ||||
| -rw-r--r-- | abs/core-testing/nvidia-utils-beta/supported-cards.txt | 292 | 
6 files changed, 0 insertions, 1096 deletions
| diff --git a/abs/core-testing/nvidia-beta/NVIDIA_kernel-169.12-2286310.diff b/abs/core-testing/nvidia-beta/NVIDIA_kernel-169.12-2286310.diff deleted file mode 100644 index e511cfb..0000000 --- a/abs/core-testing/nvidia-beta/NVIDIA_kernel-169.12-2286310.diff +++ /dev/null @@ -1,637 +0,0 @@ -diff -ru usr/src/nv/Makefile.kbuild usr/src/nv.2286310/Makefile.kbuild ---- usr/src/nv/Makefile.kbuild	2008-03-16 14:13:10.000000000 -0700 -+++ usr/src/nv.2286310/Makefile.kbuild	2008-03-16 14:37:47.204131496 -0700 -@@ -177,6 +177,7 @@ - 	vmap \ - 	signal_struct \ - 	agp_backend_acquire \ -+	set_pages_uc \ - 	change_page_attr \ - 	pci_get_class \ - 	sysctl_max_map_count \ -diff -ru usr/src/nv/conftest.sh usr/src/nv.2286310/conftest.sh ---- usr/src/nv/conftest.sh	2008-03-16 14:13:10.000000000 -0700 -+++ usr/src/nv.2286310/conftest.sh	2008-03-16 14:37:47.204131496 -0700 -@@ -100,6 +100,32 @@ -             fi -         ;; -  -+        set_pages_uc) -+            # -+            # Determine if the set_pages_uc() function is present. -+            # -+            echo "#include <linux/autoconf.h> -+            #include <asm/cacheflush.h> -+            void conftest_set_pages_uc(void) { -+                set_pages_uc(); -+            }" > conftest$$.c -+ -+            $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1 -+            rm -f conftest$$.c -+ -+            if [ -f conftest$$.o ]; then -+                rm -f conftest$$.o -+                echo "#undef NV_SET_PAGES_UC_PRESENT" >> conftest.h -+                return -+            else -+                echo "#ifdef NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h -+                echo "#undef NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h -+                echo "#endif"                             >> conftest.h -+                echo "#define NV_SET_PAGES_UC_PRESENT"    >> conftest.h -+                return -+            fi -+        ;; -+ -         change_page_attr) -             # -             # Determine if the change_page_attr() function is -@@ -124,7 +150,9 @@ -                 rm -f conftest$$.o -                 return -             else -+                echo "#ifndef NV_SET_PAGES_UC_PRESENT"     >> conftest.h -                 echo "#define NV_CHANGE_PAGE_ATTR_PRESENT" >> conftest.h -+                echo "#endif"                              >> conftest.h -                 return -             fi -         ;; -@@ -524,6 +552,8 @@ -                 return -             fi -  -+            rm -f conftest$$.o -+ -             echo "#include <linux/autoconf.h> -             #include <linux/interrupt.h> -             irq_handler_t conftest_isr; -diff -ru usr/src/nv/nv-linux.h usr/src/nv.2286310/nv-linux.h ---- usr/src/nv/nv-linux.h	2008-03-16 14:13:10.000000000 -0700 -+++ usr/src/nv.2286310/nv-linux.h	2008-03-16 14:37:47.204131496 -0700 -@@ -871,9 +871,10 @@ -  - #define NV_PGD_OFFSET(address, kernel, mm)              \ -    ({                                                   \ -+        struct mm_struct *__mm = (mm);                  \ -         pgd_t *__pgd;                                   \ -         if (!kernel)                                    \ --            __pgd = pgd_offset(mm, address);            \ -+            __pgd = pgd_offset(__mm, address);          \ -         else                                            \ -             __pgd = pgd_offset_k(address);              \ -         __pgd;                                          \ -@@ -1208,21 +1209,24 @@ -             nv_check_pci_config_space(nv, cb);                      \ -     } -  -+extern int nv_update_memory_types; -+ - /* -- * a BUG() is triggered on early 2.6 x86_64 kernels. the underlying -- * problem actually exists on many architectures and kernels, but -- * these are the only kernels that check the condition and trigger -- * a BUG(). note that this is a problem of the core kernel, not an -- * nvidia bug (and can still be triggered by agpgart). let's avoid -- * change_page_attr on those kernels. -+ * Using change_page_attr() on early Linux/x86-64 2.6 kernels may -+ * result in a BUG() being triggered. The underlying problem -+ * actually exists on multiple architectures and kernels, but only -+ * the above check for the condition and trigger a BUG(). -+ * -+ * Note that this is a due to a bug in the Linux kernel, not an -+ * NVIDIA driver bug (it can also be triggered by AGPGART). -+ * -+ * We therefore need to determine at runtime if change_page_attr() -+ * can be used safely on these kernels. -  */ --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --extern int nv_use_cpa; -- --#if defined(NVCPU_X86_64) && !defined(KERNEL_2_4) && \ --         (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)) --#define NV_CHANGE_PAGE_ATTR_BUG_PRESENT 1 --#endif -+#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) && defined(NVCPU_X86_64) && \ -+  !defined(KERNEL_2_4) && \ -+  (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)) -+#define NV_CHANGE_PAGE_ATTR_BUG_PRESENT - #endif -  - #if defined(NVCPU_X86) || defined(NVCPU_X86_64) -@@ -1234,7 +1238,7 @@ -  * -  * We need to be careful to mask out _PAGE_NX when the host system -  * doesn't support this feature or when it's disabled: the kernel -- * may not do this in its implementation of the  change_page_attr() -+ * may not do this in its implementation of the change_page_attr() -  * interface. -  */ - #ifndef X86_FEATURE_NX -diff -ru usr/src/nv/nv-reg.h usr/src/nv.2286310/nv-reg.h ---- usr/src/nv/nv-reg.h	2008-03-16 14:13:10.000000000 -0700 -+++ usr/src/nv.2286310/nv-reg.h	2008-03-16 14:37:47.204131496 -0700 -@@ -391,34 +391,36 @@ - #define NV_REG_REMAP_LIMIT NV_REG_STRING(__NV_REMAP_LIMIT) -  - /* -- * Option: UseCPA -+ * Option: UpdateMemoryTypes -  * -  * Description: -  * -- * Many kernels have a broken implementation of change_page_attr that leads -- * to cache aliasing problems. x86_64 kernels between 2.6.0 and 2.6.10 will -- * force a kernel BUG_ON() when this condition is encountered. For this -- * reason, the NVIDIA driver is very careful about not using the CPA kernel -- * interface on these kernels. -- * -- * Some distributions have backported this fix to kernel versions that fall -- * within this version range. The NVIDIA driver attempts to automatically -- * detect these fixes and reenable usage of the change_page_attr interface. -- * -- * Due to the serious nature of the problems that can arise from this, the -- * NVIDIA driver implements a manual registry key to force usage of this API -- * to be enabled or disabled. This registry key can be used to force usage -- * of the API on a known fixed kernel if the NVIDIA driver fails to detect -- * the kernel as fixed. This registry key can also be used to disable usage -- * of the API on a bad kernel that is misdetected as a fixed kernel. -- * -- * The default value is '-1' (use NVIDIA driver default logic) -- * A value of '0' will forcibly disable change_page_attr calls. -- * A value of '1' will forcibly enable change_page_attr calls. -+ * Many kernels have broken implementations of the change_page_attr() -+ * kernel interface that may cause cache aliasing problems. Linux/x86-64 -+ * kernels between 2.6.0 and 2.6.10 may prompt kernel BUG()s due to -+ * improper accounting in the interface's large page management code, for -+ * example. For this reason, the NVIDIA Linux driver is very careful about -+ * not using the change_page_attr() kernel interface on these kernels. -+ * -+ * Due to the serious nature of the problems that can arise from bugs in -+ * the change_page_attr(), set_pages_{uc,wb}() and other kernel interfaces -+ * used to modify memory types, the NVIDIA driver implements a manual -+ * registry key override to allow forcibly enabling or disabling use of -+ * these APIs. -+ * -+ * Possible values: -+ * -+ * ~0 = use the NVIDIA driver's default logic (default) -+ *  0 = enable use of change_page_attr(), etc. -+ *  1 = disable use of change_page_attr(), etc. -+ * -+ * By default, the NVIDIA driver will attempt to auto-detect if it can -+ * safely use the change_page_attr() and other kernel interfaces to modify -+ * the memory types of kernel mappings. -  */ -  --#define __NV_USE_CPA UseCPA --#define NV_REG_USE_CPA NV_REG_STRING(__NV_USE_CPA) -+#define __NV_UPDATE_MEMORY_TYPES UpdateMemoryTypes -+#define NV_REG_UPDATE_MEMORY_TYPES NV_REG_STRING(__NV_UPDATE_MEMORY_TYPES) -  - /* -  * Option: RegistryDwords -@@ -490,7 +492,7 @@ - NV_DEFINE_REG_ENTRY(__NV_DEVICE_FILE_GID, 0); - NV_DEFINE_REG_ENTRY(__NV_DEVICE_FILE_MODE, 0666); - NV_DEFINE_REG_ENTRY(__NV_REMAP_LIMIT, 0); --NV_DEFINE_REG_ENTRY(__NV_USE_CPA, -1); -+NV_DEFINE_REG_ENTRY(__NV_UPDATE_MEMORY_TYPES, ~0); - NV_DEFINE_REG_ENTRY(__NV_USE_VBIOS, 1); - NV_DEFINE_REG_ENTRY(__NV_RM_EDGE_INTR_CHECK, 1); -  -@@ -535,7 +537,7 @@ -     NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_DEVICE_FILE_GID), -     NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_DEVICE_FILE_MODE), -     NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_REMAP_LIMIT), --    NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_USE_CPA), -+    NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_UPDATE_MEMORY_TYPES), -     NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_USE_VBIOS), -     NV_DEFINE_PARAMS_TABLE_ENTRY(__NV_RM_EDGE_INTR_CHECK), -     {NULL, NULL, NULL} -diff -ru usr/src/nv/nv-vm.c usr/src/nv.2286310/nv-vm.c ---- usr/src/nv/nv-vm.c	2008-03-16 14:13:09.000000000 -0700 -+++ usr/src/nv.2286310/nv-vm.c	2008-03-16 14:37:47.204131496 -0700 -@@ -43,42 +43,40 @@ - } - #endif -  --/* -- * AMD Athlon processors expose a subtle bug in the Linux -- * kernel, that may lead to AGP memory corruption. Recent -- * kernel versions had a workaround for this problem, but -- * 2.4.20 is the first kernel to address it properly. The -- * page_attr API provides the means to solve the problem.  -- */ -- - static inline void nv_set_page_attrib_uncached(nv_pte_t *page_ptr) - { --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --    if (nv_use_cpa) -+    if (nv_update_memory_types) -     { --        struct page *page = virt_to_page(__va(page_ptr->phys_addr)); -+#if defined(NV_SET_PAGES_UC_PRESENT) -+        struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr); -+        set_pages_uc(page, 1); -+#elif defined(NV_CHANGE_PAGE_ATTR_PRESENT) -+        struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr); -         pgprot_t prot = PAGE_KERNEL_NOCACHE; - #if defined(NVCPU_X86) || defined(NVCPU_X86_64) -         pgprot_val(prot) &= __nv_supported_pte_mask; - #endif -         change_page_attr(page, 1, prot); --    } - #endif -+    } - } -  - static inline void nv_set_page_attrib_cached(nv_pte_t *page_ptr) - { --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --    if (nv_use_cpa) -+    if (nv_update_memory_types) -     { --        struct page *page = virt_to_page(__va(page_ptr->phys_addr)); -+#if defined(NV_SET_PAGES_UC_PRESENT) -+        struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr); -+        set_pages_wb(page, 1); -+#elif defined(NV_CHANGE_PAGE_ATTR_PRESENT) -+        struct page *page = NV_GET_PAGE_STRUCT(page_ptr->phys_addr); -         pgprot_t prot = PAGE_KERNEL; - #if defined(NVCPU_X86) || defined(NVCPU_X86_64) -         pgprot_val(prot) &= __nv_supported_pte_mask; - #endif -         change_page_attr(page, 1, prot); -+#endif -     } --#endif /* NV_CHANGE_PAGE_ATTR_PRESENT */ - } -  - static inline void nv_lock_page(nv_pte_t *page_ptr) -@@ -360,7 +358,8 @@ - #if defined(NV_CPA_NEEDS_FLUSHING) -     nv_execute_on_all_cpus(cache_flush, NULL); - #endif --#if defined (NVCPU_X86) || defined (NVCPU_X86_64) -+#if (defined(NVCPU_X86) || defined(NVCPU_X86_64)) && \ -+  defined(NV_CHANGE_PAGE_ATTR_PRESENT) -     global_flush_tlb(); - #endif -     nv_ext_flush_caches(); // handle other platform flushes if present -@@ -662,7 +661,7 @@ -  -         address = (unsigned long)virt_addr + i * PAGE_SIZE;  -  --        pgd = NV_PGD_OFFSET(address, 1, &init_mm); -+        pgd = NV_PGD_OFFSET(address, 1, NULL); -         if (!NV_PGD_PRESENT(pgd)) -             goto failed; -  -diff -ru usr/src/nv/nv.c usr/src/nv.2286310/nv.c ---- usr/src/nv/nv.c	2008-03-16 14:13:09.000000000 -0700 -+++ usr/src/nv.2286310/nv.c	2008-03-16 14:37:47.208131723 -0700 -@@ -15,6 +15,7 @@ - #include "nv_compiler.h" - #include "os-agp.h" - #include "nv-vm.h" -+#include "nv-reg.h" -  - #ifdef MODULE_ALIAS_CHARDEV_MAJOR - MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER); -@@ -116,10 +117,7 @@ - unsigned int nv_remap_limit; - #endif -  --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --int nv_use_cpa = 1; --#endif -- -+int nv_update_memory_types = 1; - static int nv_mmconfig_failure_detected = 0; -  - static void *nv_pte_t_cache = NULL; -@@ -1030,30 +1028,26 @@ - #endif /* defined(NV_BUILD_NV_PAT_SUPPORT) */ - } -  -- - #if defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) -- --/* nv_verify_cpa_interface - determine if the change_page_attr bug is fixed -- * in this kernel. -+/* -+ * nv_verify_cpa_interface() - determine if the change_page_attr() large page -+ * management accounting bug known to exist in early Linux/x86-64 kernels -+ * is present in this kernel. -  * -- * there's really not a good way to determine if change_page_attr is fixed. -- * we can't really use cpa on 2.6 x86_64 kernels < 2.6.11, as if we run into -- * the accounting bug, the kernel will throw a BUG. this isn't 100% accurate, -- * as it doesn't throw a bug until we try to restore the caching attributes -- * of the page. so if we can track down a 4M allocation, we can mark it -- * uncached and see if the accounting was done correctly. -- *  -- * this is a little ugly, but the most accurate approach to determining if -- * this kernel is good. -+ * There's really no good way to determine if change_page_attr() is working -+ * correctly. We can't reliably use change_page_attr() on Linux/x86-64 2.6 -+ * kernels < 2.6.11: if we run into the accounting bug, the Linux kernel will -+ * trigger a BUG() if we attempt to restore the WB memory type of a page -+ * originally part of a large page. -  * -- * why do we even bother? some distributions have back-ported the cpa fix to -- * kernels < 2.6.11. we want to use change_page_attr to avoid random corruption -- * and hangs, but need to make sure it's safe to do so. -+ * So if we can successfully allocate such a page, change its memory type to -+ * UC and check if the accounting was done correctly, we can determine if -+ * the change_page_attr() interface can be used safely. -  * -- * return values: -- *    0 - test passed, interface works -- *    1 - test failed, status unclear -- *   -1 - test failed, interface broken -+ * Return values: -+ *    0 - test passed, the change_page_attr() interface works -+ *    1 - test failed, the status is unclear -+ *   -1 - test failed, the change_page_attr() interface is broken -  */ -  - static inline pte_t *check_large_page(unsigned long vaddr) -@@ -1061,7 +1055,7 @@ -     pgd_t *pgd = NULL; -     pmd_t *pmd = NULL; -  --    pgd = NV_PGD_OFFSET(vaddr, 1, &init_mm); -+    pgd = NV_PGD_OFFSET(vaddr, 1, NULL); -     if (!NV_PGD_PRESENT(pgd)) -         return NULL; -  -@@ -1171,20 +1165,29 @@ -  -     return 1; - } -- - #endif /* defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) */ -  -- --// verify that the kernel's mapping matches the requested type  --// this is to protect against accidental cache aliasing problems -+/* -+ * nv_verify_page_mappings() - verify that the kernel mapping of the specified -+ * page matches the specified type. This is to help detect bugs in the Linux -+ * kernel's change_page_attr() interface, early. -+ * -+ * This function relies on the ability to perform kernel virtul address to PFN -+ * translations and therefore on 'init_mm'. Unfortunately, the latter is no -+ * longer exported in recent Linux/x86 2.6 kernels. The export was removed at -+ * roughtly the same time as the set_pages_{uc,wb}() change_page_attr() -+ * replacement interfaces were introduced; hopefully, it will be sufficient to -+ * check for their presence. -+ */ - int nv_verify_page_mappings( -     nv_pte_t *page_ptr, -     unsigned int cachetype - ) - { -+#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) || \ -+    (defined(NV_SET_PAGES_UC_PRESENT) && !defined(NVCPU_X86)) -     unsigned long retval = -1; - #if defined(NVCPU_X86) || defined(NVCPU_X86_64) --    struct mm_struct *mm; -     pgd_t *pgd = NULL; -     pmd_t *pmd = NULL; -     pte_t *pte = NULL; -@@ -1192,15 +1195,12 @@ -     unsigned long address; -     static int count = 0; -  --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --    if (!nv_use_cpa) -+    if (!nv_update_memory_types) -         return 0; --#endif -  -     address = (unsigned long)__va(page_ptr->phys_addr); --    mm = &init_mm; // always a kernel page -  --    pgd = NV_PGD_OFFSET(address, 1, mm); -+    pgd = NV_PGD_OFFSET(address, 1, NULL); -     if (!NV_PGD_PRESENT(pgd)) -     { -         nv_printf(NV_DBG_ERRORS, "NVRM: pgd not present for addr 0x%lx\n", address); -@@ -1266,8 +1266,11 @@ -     } -  - failed: --#endif -+#endif /* defined(NVCPU_X86) || defined(NVCPU_X86_64) */ -     return retval; -+#else -+    return 0; -+#endif - } -  - #if defined(NV_BUILD_NV_PAT_SUPPORT) && defined(CONFIG_HOTPLUG_CPU) -@@ -1313,7 +1316,7 @@ - static int __init nvidia_init_module(void) - { -     int rc; --    U032 i, count; -+    U032 i, count, data; -     nv_state_t *nv = NV_STATE_PTR(&nv_ctl_device); -     nv_stack_t *sp = NULL; -  -@@ -1485,43 +1488,42 @@ -     /* create /proc/driver/nvidia */ -     nvos_proc_create(); -  --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) -+    /* -+     * Give users an opportunity to disable the driver's use of -+     * the change_page_attr() and set_pages_{uc,wb}() kernel -+     * interfaces. -+     */ -+    rc = rm_read_registry_dword(sp, nv, -+            "NVreg", NV_REG_UPDATE_MEMORY_TYPES, &data); -+    if ((rc == 0) && ((int)data != ~0)) -     { --        int data; -- --        // allow the user to override us with a registry key --        rc = rm_read_registry_dword(sp, nv, "NVreg", "UseCPA", &data); --        if ((rc == 0) && (data != -1)) --        { --            nv_use_cpa = data; --        } -+        nv_update_memory_types = data; -+    } - #if defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) --        else -+    /* -+     * Unless we explicitely detect that the change_page_attr() -+     * inteface is fixed, disable usage of the interface on -+     * this kernel. Notify the user of this problem using the -+     * driver's /proc warnings interface (read by the installer -+     * and the bug report script). -+     */ -+    else -+    { -+        rc = nv_verify_cpa_interface(); -+        if (rc < 0) -         { --            /* --             * Unless we explicitely detect that the change_page_attr() --             * inteface is fixed, disable usage of the interface on --             * this kernel. Notify the user of this problem using the --             * driver's /proc warnings interface (read by the installer --             * and the bug report script). --             */ --            rc = nv_verify_cpa_interface(); --            if (rc < 0) --            { --                nv_prints(NV_DBG_ERRORS, __cpgattr_warning); --                nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning); --                nv_use_cpa = 0; --            } --            else if (rc != 0) --            { --                nv_prints(NV_DBG_ERRORS, __cpgattr_warning_2); --                nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning_2); --                nv_use_cpa = 0; --            } -+            nv_prints(NV_DBG_ERRORS, __cpgattr_warning); -+            nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning); -+            nv_update_memory_types = 0; -+        } -+        else if (rc != 0) -+        { -+            nv_prints(NV_DBG_ERRORS, __cpgattr_warning_2); -+            nvos_proc_add_warning_file("change_page_attr", __cpgattr_warning_2); -+            nv_update_memory_types = 0; -         } --#endif -     } --#endif -+#endif /* defined(NV_CHANGE_PAGE_ATTR_BUG_PRESENT) */ -  - #if defined(NVCPU_X86_64) && defined(CONFIG_IA32_EMULATION) && !defined(HAVE_COMPAT_IOCTL) -     /* Register ioctl()'s for 32-bit clients */ -@@ -3482,8 +3484,21 @@ -     pte_t *pte = NULL; -     NvU64 retval; -  --    mm = (kern) ? &init_mm : current->mm; --    if (!kern) down_read(¤t->mm->mmap_sem); -+    if (!kern) -+    { -+        mm = current->mm; -+        down_read(&mm->mmap_sem); -+    } -+    else -+    { -+#if defined(NV_SET_PAGES_UC_PRESENT) && defined(NVCPU_X86) -+        /* nv_printf(NV_DBG_ERRORS, -+            "NVRM: can't translate KVA in nv_get_phys_address()!\n"); */ -+        return 0; -+#else -+        mm = NULL; -+#endif -+    } -  -     pgd = NV_PGD_OFFSET(address, kern, mm); -     if (!NV_PGD_PRESENT(pgd)) -@@ -3504,22 +3519,24 @@ -     retval &= ~_PAGE_NX; - #endif -  --    if (!kern) up_read(¤t->mm->mmap_sem); -+    if (!kern) -+        up_read(&mm->mmap_sem); -     return retval; -  - failed: --    if (!kern) up_read(¤t->mm->mmap_sem); -+    if (!kern) -+        up_read(&mm->mmap_sem); -     return 0; - } -  - NvU64 NV_API_CALL nv_get_kern_phys_address(NvU64 address) - { --    // make sure this address is a kernel pointer -+    /* make sure this address is a kernel virtual address */ - #if defined(DEBUG) && !defined(CONFIG_X86_4G) -     if (address < PAGE_OFFSET) -     { -         nv_printf(NV_DBG_WARNINGS, --            "NVRM: user address passed to get_kern_phys_address: 0x%lx\n", -+            "NVRM: user address passed to get_kern_phys_address: 0x%llx!\n", -             address); -         return 0; -     } -@@ -3534,12 +3551,12 @@ -  - NvU64 NV_API_CALL nv_get_kern_user_address(NvU64 address) - { --    // make sure this address is not a kernel pointer -+    /* make sure this address is not a kernel virtual address */ - #if defined(DEBUG) && !defined(CONFIG_X86_4G) -     if (address >= PAGE_OFFSET) -     { -         nv_printf(NV_DBG_WARNINGS, --            "NVRM: kernel address passed to get_user_phys_address: 0x%lx\n", -+            "NVRM: kernel address passed to get_user_phys_address: 0x%llx!\n", -             address); -         return 0; -     } -@@ -4316,16 +4333,12 @@ -     return -1; - } -  --int NV_API_CALL nv_no_incoherent_mappings --( --    void --) -+int NV_API_CALL nv_no_incoherent_mappings(void) - { -     if(nv_ext_no_incoherent_mappings() == 1) -         return 1; -- --#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) --    return 1; -+#if defined(NV_CHANGE_PAGE_ATTR_PRESENT) || defined(NV_SET_PAGES_UC_PRESENT) -+    return (nv_update_memory_types); - #else -     return 0; - #endif -diff -ru usr/src/nv/os-interface.c usr/src/nv.2286310/os-interface.c ---- usr/src/nv/os-interface.c	2008-03-16 14:13:09.000000000 -0700 -+++ usr/src/nv.2286310/os-interface.c	2008-03-16 14:37:47.208131723 -0700 -@@ -1198,6 +1198,18 @@ - { -     void *vaddr; -  -+    if (start == 0) -+    { -+        if (mode != NV_MEMORY_CACHED) -+        { -+            nv_printf(NV_DBG_ERRORS, -+                "NVRM: os_map_kernel_space: won't map address 0x%0llx UC!\n", start); -+            return NULL; -+        } -+        else -+            return (void *)PAGE_OFFSET; -+    } -+ -     if (!NV_MAY_SLEEP()) -     { -         nv_printf(NV_DBG_ERRORS, -@@ -1230,6 +1242,9 @@ -     NvU64 size_bytes - ) - { -+    if (addr == (void *)PAGE_OFFSET) -+        return; -+ -     NV_IOUNMAP(addr, size_bytes); - } -  diff --git a/abs/core-testing/nvidia-beta/PKGBUILD b/abs/core-testing/nvidia-beta/PKGBUILD deleted file mode 100644 index e822996..0000000 --- a/abs/core-testing/nvidia-beta/PKGBUILD +++ /dev/null @@ -1,38 +0,0 @@ -pkgname=nvidia-beta -pkgver=180.11 -_kernver='2.6.26-ARCH' -pkgrel=2 -pkgdesc="NVIDIA beta drivers for kernel26"  -arch=('i686' 'x86_64')  -[ "$CARCH" = "i686" ] && ARCH=x86 && NV=0  -[ "$CARCH" = "x86_64" ] && ARCH=x86_64 && NV=0  -provides=('nvidia') -url="http://www.nvidia.com/"  -depends=('kernel26' 'nvidia-utils-beta')  -conflicts=('nvidia' 'nvidia-96xx' 'nvidia-71xx' 'nvidia-legacy')  -license=('custom')  -install=nvidia.install  -source=(ftp://download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg${NV}.run)  -md5sums=('759a1aa16073616e3104f461dffbeded') -[ "$CARCH" = "x86_64" ] && md5sums=('3c7a1bb6c9e55a8df0ec4e396e9187b2') - -build() -{ -  # Extract -  echo ${_kernver} -  cd $startdir/src/ -  sh NVIDIA-Linux-$ARCH-${pkgver}-pkg${NV}.run --extract-only -  cd NVIDIA-Linux-$ARCH-${pkgver}-pkg${NV} -   -  # Any extra patches are applied in here... - -  cd usr/src/nv/ -  ln -s Makefile.kbuild Makefile -  make SYSSRC=/lib/modules/${_kernver}/build module  -   -  # install kernel module -  mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ -  install -m644 nvidia.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/video/ - -  sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install -}
\ No newline at end of file diff --git a/abs/core-testing/nvidia-beta/nvidia.install b/abs/core-testing/nvidia-beta/nvidia.install deleted file mode 100644 index dbbec39..0000000 --- a/abs/core-testing/nvidia-beta/nvidia.install +++ /dev/null @@ -1,22 +0,0 @@ -# arg 1:  the new package version -post_install() { -  KERNEL_VERSION='2.6.26-ARCH' -  depmod -v $KERNEL_VERSION  > /dev/null 2>&1		  -} - -# arg 1:  the new package version -# arg 2:  the old package version -post_upgrade() { -  post_install $1 -  rmmod nvidia || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.' -} - -# arg 1:  the old package version -post_remove() { -  KERNEL_VERSION='2.6.26-ARCH' -  depmod -v $KERNEL_VERSION	 > /dev/null 2>&1	  -} - -op=$1 -shift -$op $* diff --git a/abs/core-testing/nvidia-utils-beta/PKGBUILD b/abs/core-testing/nvidia-utils-beta/PKGBUILD deleted file mode 100644 index e0dd0df..0000000 --- a/abs/core-testing/nvidia-utils-beta/PKGBUILD +++ /dev/null @@ -1,67 +0,0 @@ -pkgname=nvidia-utils-beta -pkgver=180.11 -pkgrel=1 -pkgdesc="NVIDIA beta drivers utilities and libraries." -provides=('nvidia-utils' 'libgl') -arch=('i686' 'x86_64') -[ "$CARCH" = "i686"   ] && ARCH=x86 && NV=0 -[ "$CARCH" = "x86_64" ] && ARCH=x86_64 && NV=0 -url="http://www.nvidia.com/" -depends=('xorg-server') -conflicts=('libgl' 'libgl-dri' 'ati-fglrx-utils' 'nvidia-legacy-utils' \ -           'nvidia-71xx-utils' 'nvidia-96xx-utils') -license=('custom') -install=nvidia.install -source=(ftp://download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg${NV}.run \ -        supported-cards.txt)  - -          -[ "$CARCH" = "x86_64" ] && md5sums=('3c7a1bb6c9e55a8df0ec4e396e9187b2' -         '5b5835bdb1508a57591b812c109a2679') -          -                   -options=(docs !strip) - -build() -{ -  # override nvida install routine and do it the long way. -  cd $startdir/src/ -  sh NVIDIA-Linux-${ARCH}-${pkgver}-pkg${NV}.run --extract-only -  cd NVIDIA-Linux-${ARCH}-${pkgver}-pkg${NV}/usr/ -  mkdir -p $startdir/pkg/usr/{include/cuda,include/vdpau,lib,bin,share/applications,share/pixmaps,man/man1} -#  mkdir -p $startdir/pkg/usr/{lib,bin,share/applications,share/pixmaps,man/man1} -  mkdir -p $startdir/pkg/usr/lib/xorg/modules/{extensions,drivers} -  mkdir -p $startdir/pkg/usr/share/licenses/nvidia/ -  cp -rp  include/cuda/* $startdir/pkg/usr/include/cuda || return 1 -  cp -rp  include/vdpau/* $startdir/pkg/usr/include/vdpau || return 1 -  install lib/{libGLcore,libGL,libnvidia-cfg,libcuda,tls/libnvidia-tls}.so.${pkgver} \ -       $startdir/pkg/usr/lib/ || return 1 -  install -m644 share/man/man1/* $startdir/pkg/usr/man/man1/ || return 1 -  rm $startdir/pkg/usr/man/man1/nvidia-installer.1.gz || return 1 -  install X11R6/lib/libXv* $startdir/pkg/usr/lib/ || return 1 -  install -m644 share/applications/nvidia-settings.desktop $startdir/pkg/usr/share/applications/ || return 1 -  # fix nvidia .desktop file -  sed -e 's:__UTILS_PATH__:/usr/bin:' -e 's:__PIXMAP_PATH__:/usr/share/pixmaps:' -i $startdir/pkg/usr/share/applications/nvidia-settings.desktop -  install -m644 share/pixmaps/nvidia-settings.png $startdir/pkg/usr/share/pixmaps/ || return 1 -  install X11R6/lib/modules/libnvidia-wfb.so.$pkgver $startdir/pkg/usr/lib/xorg/modules || return 1 -  install X11R6/lib/modules/drivers/nvidia_drv.so $startdir/pkg/usr/lib/xorg/modules/drivers || return 1 -  install X11R6/lib/modules/extensions/libglx.so.$pkgver $startdir/pkg/usr/lib/xorg/modules/extensions || return 1 -  install -m755 bin/nvidia-{settings,xconfig,bug-report.sh} $startdir/pkg/usr/bin/ || return 1 -  cd $startdir/pkg/usr/lib/ -  ln -s libGL.so.$pkgver libGL.so || return 1 -  ln -s libGL.so.$pkgver libGL.so.1 || return 1 -  ln -s libGLcore.so.$pkgver libGLcore.so.1 || return 1 -  ln -s libnvidia-cfg.so.$pkgver libnvidia-cfg.so.1 || return 1 -  ln -s libnvidia-tls.so.$pkgver libnvidia-tls.so.1 || return 1 -  ln -s libcuda.so.$pkgver libcuda.so.1 || return 1 -  ln -s libXvMCNVIDIA.so.$pkgver libXvMCNVIDIA_dynamic.so.1 || return 1 -  cd $startdir/pkg/usr/lib/xorg/modules/extensions -  ln -s libglx.so.$pkgver libglx.so || return 1 - -  install -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg${NV}/LICENSE $startdir/pkg/usr/share/licenses/nvidia/ || return 1 -  ln -s nvidia $startdir/pkg/usr/share/licenses/nvidia-utils || return 1 -  install -D -m644 $startdir/src/NVIDIA-Linux-${ARCH}-${pkgver}-pkg${NV}/usr/share/doc/README.txt $startdir/pkg/usr/share/doc/nvidia/README || return 1 -  install -D -m644 $startdir/src/supported-cards.txt $startdir/pkg/usr/share/doc/nvidia/supported-cards.txt || return 1 -   -  find $startdir/pkg/usr -type d -exec chmod 755 {} \; -} diff --git a/abs/core-testing/nvidia-utils-beta/nvidia.install b/abs/core-testing/nvidia-utils-beta/nvidia.install deleted file mode 100644 index 7d46ed6..0000000 --- a/abs/core-testing/nvidia-utils-beta/nvidia.install +++ /dev/null @@ -1,40 +0,0 @@ -# arg 1:  the new package version -post_install() { - -  echo ------------------------------- -  echo By using this package you accept the NVIDIA license,  -  echo which has been installed in /usr/share/licenses/nvidia/LICENSE -  echo If you do not accept this license, you must remove the package immediately. -  echo Dont forget to update your /etc/X11/xorg.conf -  echo In order to use nvidia-settings, you need to install the 'gtk2' package. -  echo In order to use nvidia-xconfig, you need to install the 'pkgconfig' package. -  echo ------------------------------- -  echo nvidia 9746 drops support for Geforce 3 and 4 cards -  echo If you have such a card, install the nvidia-96xx, nvidia-96xx-utils, -  echo nvidia-96xx-ck, nvidia-96xx-beyond, nvidia-96xx-suspend2 packages -  echo For a list of supported cards, see /usr/share/doc/nvidia/supported-cards.txt -  echo ------------------------------- - -  #echo ":: Updating symlinks to use built-in libwfb" -  #ln -sf /usr/lib/xorg/modules/libnvidia-wfb.so.* \ -  #       /usr/lib/xorg/modules/libwfb.so  -} - -# arg 1:  the new package version -# arg 2:  the old package version -post_upgrade() { -  post_install $1 -  echo ":: Updating symlinks to use xorg-server libwfb" -  ln -sf /usr/lib/xorg/modules/libwfb.so.* \ -         /usr/lib/xorg/modules/libwfb.so -} - -post_remove() { -  echo ":: Updating symlinks to use xorg-server libwfb" -  ln -sf /usr/lib/xorg/modules/libwfb.so.* \ -         /usr/lib/xorg/modules/libwfb.so -} - -op=$1 -shift -$op $* diff --git a/abs/core-testing/nvidia-utils-beta/supported-cards.txt b/abs/core-testing/nvidia-utils-beta/supported-cards.txt deleted file mode 100644 index ce4c3d4..0000000 --- a/abs/core-testing/nvidia-utils-beta/supported-cards.txt +++ /dev/null @@ -1,292 +0,0 @@ -Archlinux currently manages three branches of the NVIDIA binary driver: - -nvidia (latest nvidia release) -nvidia-96xx (96xx legacy branch) -nvidia-71xx (71xx legacy branch) - -This excerpt from the NVIDIA 100.14.09 README lists the supported devices -for each of those: - -______________________________________________________________________________ - -Appendix A. Supported NVIDIA GPU Products -______________________________________________________________________________ - -For the most complete and accurate listing of supported GPUs, please see the -Supported Products List, available from the NVIDIA Linux x86 Graphics Driver -download page. Please go to http://www.nvidia.com/object/unix.html, follow the -Archive link under the Linux x86 heading, follow the link for the 100.14.09 -driver, and then go to the Supported Products List. - - -A1. NVIDIA GEFORCE GPUS - - -    NVIDIA GPU product                    Device PCI ID -    ----------------------------------    ---------------------------------- -    GeForce 6800 Ultra                    0x0040 -    GeForce 6800                          0x0041 -    GeForce 6800 LE                       0x0042 -    GeForce 6800 XE                       0x0043 -    GeForce 6800 XT                       0x0044 -    GeForce 6800 GT                       0x0045 -    GeForce 6800 GT                       0x0046 -    GeForce 6800 GS                       0x0047 -    GeForce 6800 XT                       0x0048 -    GeForce 7800 GTX                      0x0090 -    GeForce 7800 GTX                      0x0091 -    GeForce 7800 GTX                      0x0092 -    GeForce 7800 GS                       0x0093 -    GeForce 7800 SLI                      0x0095 -    GeForce Go 7800                       0x0098 -    GeForce Go 7800 GTX                   0x0099 -    GeForce 6800 GS                       0x00C0 -    GeForce 6800                          0x00C1 -    GeForce 6800 LE                       0x00C2 -    GeForce 6800 XT                       0x00C3 -    GeForce Go 6800                       0x00C8 -    GeForce Go 6800 Ultra                 0x00C9 -    GeForce 6800 Ultra/GeForce 6800       0x00F0 -    GeForce 6600 GT                       0x00F1 -    GeForce 6600                          0x00F2 -    GeForce 6200                          0x00F3 -    GeForce 6600 LE                       0x00F4 -    GeForce 7800 GS                       0x00F5 -    GeForce 6800 GS/XT                    0x00F6 -    GeForce 6800 Ultra                    0x00F9 -    GeForce PCX 5750                      0x00FA -    GeForce PCX 5900                      0x00FB -    GeForce PCX 5300                      0x00FC -    GeForce PCX 4300                      0x00FF -    GeForce 6600 GT                       0x0140 -    GeForce 6600                          0x0141 -    GeForce 6600 LE                       0x0142 -    GeForce 6600 VE                       0x0143 -    GeForce Go 6600                       0x0144 -    GeForce 6610 XL                       0x0145 -    GeForce Go 6600 TE/6200 TE            0x0146 -    GeForce 6700 XL                       0x0147 -    GeForce Go 6600                       0x0148 -    GeForce Go 6600 GT                    0x0149 -    GeForce 6200                          0x014F -    GeForce 6500                          0x0160 -    GeForce 6200 TurboCache(TM)           0x0161 -    GeForce 6200SE TurboCache(TM)         0x0162 -    GeForce 6200 LE                       0x0163 -    GeForce Go 6200                       0x0164 -    GeForce Go 6400                       0x0166 -    GeForce Go 6200                       0x0167 -    GeForce Go 6400                       0x0168 -    GeForce 6250                          0x0169 -    GeForce 7100 GS                       0x016A -    GeForce 8800 GTX                      0x0191 -    GeForce 8800 GTS                      0x0193 -    GeForce 8800 Ultra                    0x0194 -    GeForce 7350 LE                       0x01D0 -    GeForce 7300 LE                       0x01D1 -    GeForce 7300 SE/7200 GS               0x01D3 -    GeForce Go 7200                       0x01D6 -    GeForce Go 7300                       0x01D7 -    GeForce Go 7400                       0x01D8 -    GeForce 7500 LE                       0x01DD -    GeForce 7300 GS                       0x01DF -    GeForce 6800                          0x0211 -    GeForce 6800 LE                       0x0212 -    GeForce 6800 GT                       0x0215 -    GeForce 6800 XT                       0x0218 -    GeForce 6200                          0x0221 -    GeForce 6200 A-LE                     0x0222 -    GeForce 6150                          0x0240 -    GeForce 6150 LE                       0x0241 -    GeForce 6100                          0x0242 -    GeForce Go 6150                       0x0244 -    GeForce Go 6100                       0x0247 -    GeForce 7900 GTX                      0x0290 -    GeForce 7900 GT/GTO                   0x0291 -    GeForce 7900 GS                       0x0292 -    GeForce 7950 GX2                      0x0293 -    GeForce 7950 GX2                      0x0294 -    GeForce 7950 GT                       0x0295 -    GeForce Go 7950 GTX                   0x0297 -    GeForce Go 7900 GS                    0x0298 -    GeForce Go 7900 GTX                   0x0299 -    GeForce 7600 GT/Unknown GPU           0x02E0 -    GeForce 7600 GS                       0x02E1 -    GeForce FX 5800 Ultra                 0x0301 -    GeForce FX 5800                       0x0302 -    GeForce FX 5600 Ultra                 0x0311 -    GeForce FX 5600                       0x0312 -    GeForce FX 5600XT                     0x0314 -    GeForce FX Go5600                     0x031A -    GeForce FX Go5650                     0x031B -    GeForce FX 5200                       0x0320 -    GeForce FX 5200 Ultra                 0x0321 -    GeForce FX 5200                       0x0322 -    GeForce FX 5200LE                     0x0323 -    GeForce FX Go5200                     0x0324 -    GeForce FX Go5250                     0x0325 -    GeForce FX 5500                       0x0326 -    GeForce FX 5100                       0x0327 -    GeForce FX Go5200 32M/64M             0x0328 -    GeForce FX Go53xx                     0x032C -    GeForce FX Go5100                     0x032D -    GeForce FX 5900 Ultra                 0x0330 -    GeForce FX 5900                       0x0331 -    GeForce FX 5900XT                     0x0332 -    GeForce FX 5950 Ultra                 0x0333 -    GeForce FX 5900ZT                     0x0334 -    GeForce FX 5700 Ultra                 0x0341 -    GeForce FX 5700                       0x0342 -    GeForce FX 5700LE                     0x0343 -    GeForce FX 5700VE                     0x0344 -    GeForce FX Go5700                     0x0347 -    GeForce FX Go5700                     0x0348 -    GeForce 7650 GS                       0x0390 -    GeForce 7600 GT                       0x0391 -    GeForce 7600 GS                       0x0392 -    GeForce 7300 GT                       0x0393 -    GeForce 7600 LE                       0x0394 -    GeForce 7300 GT                       0x0395 -    GeForce Go 7600                       0x0398 -    GeForce 6150SE nForce 430             0x03D0 -    GeForce 6100 nForce 405               0x03D1 -    GeForce 6100 nForce 400               0x03D2 -    GeForce 6100 nForce 420               0x03D5 -    GeForce 8600 GTS                      0x0400 -    GeForce 8600 GT                       0x0402 -    GeForce 8600M GT                      0x0407 -    GeForce 8500 GT                       0x0421 -    GeForce 8400 GS                       0x0422 -    GeForce 8300 GS                       0x0423 -    GeForce 8600M GS                      0x0425 -    GeForce 8400M GT                      0x0426 -    GeForce 8400M GS                      0x0427 -    GeForce 8400M G                       0x0428 - - - -A2. NVIDIA QUADRO GPUS - - -    NVIDIA GPU product                                        Device PCI ID -    ------------------------------------------------------    --------------- -    Quadro FX 4000                                            0x004E -    Quadro FX 4500                                            0x009D -    Quadro FX Go1400                                          0x00CC -    Quadro FX 3450/4000 SDI                                   0x00CD -    Quadro FX 1400                                            0x00CE -    Quadro FX 4400/Quadro FX 3400                             0x00F8 -    Quadro FX 330                                             0x00FC -    Quadro NVS 280 PCI-E/Quadro FX 330                        0x00FD -    Quadro FX 1300                                            0x00FE -    Quadro NVS 440                                            0x014A -    Quadro FX 540M/Quadro FX 540M                             0x014C -    Quadro FX 550                                             0x014D -    Quadro FX 540                                             0x014E -    Quadro NVS 285                                            0x0165 -    Quadro FX 5600                                            0x019D -    Quadro FX 4600                                            0x019E -    Quadro NVS 110M                                           0x01D7 -    Quadro NVS 110M                                           0x01DA -    Quadro NVS 120M                                           0x01DB -    Quadro FX 350M                                            0x01DC -    Quadro FX 350                                             0x01DE -    Quadro NVS 210S / NVIDIA GeForce 6150LE                   0x0245 -    Quadro FX 2500M                                           0x029A -    Quadro FX 1500M                                           0x029B -    Quadro FX 5500                                            0x029C -    Quadro FX 3500                                            0x029D -    Quadro FX 1500                                            0x029E -    Quadro FX 4500 X2                                         0x029F -    Quadro FX 2000                                            0x0308 -    Quadro FX 1000                                            0x0309 -    Quadro FX Go700                                           0x031C -    Quadro NVS 55/280 PCI                                     0x032A -    Quadro FX 500/FX 600                                      0x032B -    Quadro FX 3000                                            0x0338 -    Quadro FX 700                                             0x033F -    Quadro FX Go1000                                          0x034C -    Quadro FX 1100                                            0x034E -    Quadro FX 560                                             0x039E -    Quadro NVS 320M                                           0x040B -    Quadro FX 570M                                            0x040C -    Quadro FX 1600M                                           0x040D -    Quadro NVS 140M                                           0x0429 -    Quadro NVS 130M                                           0x042A -    Quadro NVS 135M                                           0x042B -    Quadro FX 360M                                            0x042D - - -Below are the legacy GPUs that are no longer supported in the unified driver. -These GPUs will continue to be maintained through the special legacy NVIDIA -GPU driver releases. - -The 1.0-96xx driver supports the following set of GPUs: - - -    NVIDIA GPU product                    Device PCI ID -    ----------------------------------    ---------------------------------- -    GeForce2 MX/MX 400                    0x0110 -    GeForce2 MX 100/200                   0x0111 -    GeForce2 Go                           0x0112 -    Quadro2 MXR/EX/Go                     0x0113 -    GeForce4 MX 460                       0x0170 -    GeForce4 MX 440                       0x0171 -    GeForce4 MX 420                       0x0172 -    GeForce4 MX 440-SE                    0x0173 -    GeForce4 440 Go                       0x0174 -    GeForce4 420 Go                       0x0175 -    GeForce4 420 Go 32M                   0x0176 -    GeForce4 460 Go                       0x0177 -    Quadro4 550 XGL                       0x0178 -    GeForce4 440 Go 64M                   0x0179 -    Quadro NVS 400                        0x017A -    Quadro4 500 GoGL                      0x017C -    GeForce4 410 Go 16M                   0x017D -    GeForce4 MX 440 with AGP8X            0x0181 -    GeForce4 MX 440SE with AGP8X          0x0182 -    GeForce4 MX 420 with AGP8X            0x0183 -    GeForce4 MX 4000                      0x0185 -    Quadro4 580 XGL                       0x0188 -    Quadro NVS 280 SD                     0x018A -    Quadro4 380 XGL                       0x018B -    Quadro NVS 50 PCI                     0x018C -    GeForce2 Integrated GPU               0x01A0 -    GeForce4 MX Integrated GPU            0x01F0 -    GeForce3                              0x0200 -    GeForce3 Ti 200                       0x0201 -    GeForce3 Ti 500                       0x0202 -    Quadro DCC                            0x0203 -    GeForce4 Ti 4600                      0x0250 -    GeForce4 Ti 4400                      0x0251 -    GeForce4 Ti 4200                      0x0253 -    Quadro4 900 XGL                       0x0258 -    Quadro4 750 XGL                       0x0259 -    Quadro4 700 XGL                       0x025B -    GeForce4 Ti 4800                      0x0280 -    GeForce4 Ti 4200 with AGP8X           0x0281 -    GeForce4 Ti 4800 SE                   0x0282 -    GeForce4 4200 Go                      0x0286 -    Quadro4 980 XGL                       0x0288 -    Quadro4 780 XGL                       0x0289 -    Quadro4 700 GoGL                      0x028C - - -The 1.0-71xx driver supports the following set of GPUs: - - -    NVIDIA GPU product                    Device PCI ID -    ----------------------------------    ---------------------------------- -    RIVA TNT                              0x0020 -    RIVA TNT2/TNT2 Pro                    0x0028 -    RIVA TNT2 Ultra                       0x0029 -    Vanta/Vanta LT                        0x002C -    RIVA TNT2 Model 64/Model 64 Pro       0x002D -    Aladdin TNT2                          0x00A0 -    GeForce 256                           0x0100 -    GeForce DDR                           0x0101 -    Quadro                                0x0103 -    GeForce2 GTS/GeForce2 Pro             0x0150 -    GeForce2 Ti                           0x0151 -    GeForce2 Ultra                        0x0152 -    Quadro2 Pro                           0x0153 | 
