summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortsi <tsi>2008-03-26 17:20:04 +0000
committertsi <tsi>2008-03-26 17:20:04 +0000
commit6e7c33f0dad0f70b5b785e2c4136fd5e31c2727a (patch)
treef54e8370df3a735a851a80e32ffaf6f83d0453f7
parente3d23c9e01fb067b7baff805b052c648eb4dbe5f (diff)
23. In favour of the majority case, assume x86 and x86_64 systems cannot
hard-fail master aborts. On an experimental basis, also assume the same of alpha systems. This adds support for such systems that don't include a PCI-to-ISA bridge. (Marc La France)
-rw-r--r--programs/Xserver/hw/xfree86/CHANGELOG6
-rw-r--r--programs/Xserver/hw/xfree86/os-support/bus/Pci.h24
2 files changed, 28 insertions, 2 deletions
diff --git a/programs/Xserver/hw/xfree86/CHANGELOG b/programs/Xserver/hw/xfree86/CHANGELOG
index 3b4915566..dd2720770 100644
--- a/programs/Xserver/hw/xfree86/CHANGELOG
+++ b/programs/Xserver/hw/xfree86/CHANGELOG
@@ -1,4 +1,8 @@
XFree86 4.7.99.15 (xx April 2008)
+ 23. In favour of the majority case, assume x86 and x86_64 systems cannot
+ hard-fail master aborts. On an experimental basis, also assume the same
+ of alpha systems. This adds support for such systems that don't include
+ a PCI-to-ISA bridge. (Marc La France)
XFree86 4.7.99.14 (23 March 2008)
22. Fix null pointer defereference in XKB when LEDs don't exist
@@ -20667,4 +20671,4 @@ XFree86 3.0a (28 April 1994)
XFree86 3.0 (26 April 1994)
-$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3935 2008/03/18 20:24:04 tsi Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3936 2008/03/23 12:03:00 dawes Exp $
diff --git a/programs/Xserver/hw/xfree86/os-support/bus/Pci.h b/programs/Xserver/hw/xfree86/os-support/bus/Pci.h
index de4101b2c..1719dd202 100644
--- a/programs/Xserver/hw/xfree86/os-support/bus/Pci.h
+++ b/programs/Xserver/hw/xfree86/os-support/bus/Pci.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.55tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.56tsi Exp $ */
/*
* Copyright 1998 by Concurrent Computer Corporation
*
@@ -244,9 +244,16 @@
#define PCI_CFGMECH1_MAXDEV 32
/*
+ * CAN_HARDFAIL_MASTER_ABORTS can be #define'd to a Bool function or some
+ * other boolean expression should the need arise.
+ */
+#undef CAN_HARDFAIL_MASTER_ABORTS
+
+/*
* Select architecture specific PCI init function
*/
#if defined(__alpha__)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Uncertain */
# if defined(linux)
# define ARCH_PCI_INIT axpPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
@@ -260,18 +267,21 @@
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__arm__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__hppa__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__ia64__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
@@ -283,6 +293,7 @@
# endif
# define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper
#elif defined(__i386__) || defined(i386)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Sane (so far) */
# define ARCH_PCI_INIT ix86PciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
@@ -290,18 +301,21 @@
# define ARCH_PCI_OS_INIT linuxPciInit
# endif
#elif defined(__mc68000__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__mips__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__powerpc__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
@@ -322,18 +336,21 @@
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__s390__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__sh__)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Unknown */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
# endif
#elif defined(__sparc__) || defined(sparc)
+# define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Broken */
# if defined(linux)
# define ARCH_PCI_INIT linuxPciInit
# define INCLUDE_XF86_MAP_PCI_MEM
@@ -355,6 +372,7 @@
# endif
# define ARCH_PCI_PCI_BRIDGE sparcPciPciBridge
#elif defined(__amd64__) || defined(__x86_64__)
+# define CAN_HARDFAIL_MASTER_ABORTS FALSE /* Likely */
# if defined(__FreeBSD__)
# define ARCH_PCI_INIT freebsdPciInit
# else
@@ -371,6 +389,10 @@
#error No PCI support available for this architecture/OS combination
#endif
+#ifndef CAN_HARDFAIL_MASTER_ABORTS
+#define CAN_HARDFAIL_MASTER_ABORTS TRUE /* Assume the worst */
+#endif
+
extern void ARCH_PCI_INIT(void);
#if defined(ARCH_PCI_OS_INIT)
extern void ARCH_PCI_OS_INIT(void);