[PATCH] initial aarch64 support

Mark Salter msalter at redhat.com
Fri Jun 7 08:41:56 PDT 2013


Basic suport for AArch64 (64bit ARM) architecture. This is enough to get things
to build. Hardware is not yet available for testing, so a more thorough port
will be needed once hardware does become available.

Signed-off-by: Mark Salter <msalter at redhat.com>
---
 configure.ac                 |  3 +++
 fb/fb.h                      |  2 +-
 hw/xfree86/common/compiler.h |  2 +-
 include/servermd.h           | 15 ++++++++++++++-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index b31559d..13d279f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -317,6 +317,9 @@ DEFAULT_INT10="x86emu"
 dnl Override defaults as needed for specific platforms:
 
 case $host_cpu in
+  aarch64*)
+	GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
+	;;
   alpha*)
 	ALPHA_VIDEO=yes
 	case $host_os in
diff --git a/fb/fb.h b/fb/fb.h
index b869d12..af509a7 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -114,7 +114,7 @@ typedef unsigned __int64 FbBits;
       defined(__sparc64__) || defined(_LP64) || \
       defined(__s390x__) || \
       defined(amd64) || defined (__amd64__) || \
-      defined (__powerpc64__)
+      defined (__powerpc64__) || defined (__aarch64__)
 typedef unsigned long FbBits;
 #else
 typedef unsigned long long FbBits;
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index c980bee..3a57186 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1351,7 +1351,7 @@ stl_u(unsigned long val, unsigned int *p)
 #else                           /* ix86 */
 
 #if !defined(__SUNPRO_C)
-#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__m32r__)
+#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__m32r__) && !defined(__aarch64__)
 #ifdef GCCUSESGAS
 
 /*
diff --git a/include/servermd.h b/include/servermd.h
index d6a9a3a..b65d410 100644
--- a/include/servermd.h
+++ b/include/servermd.h
@@ -245,10 +245,16 @@ SOFTWARE.
 /* ???? */
 #endif                          /* AMD64 */
 
+#if defined(__aarch64__)
+#define IMAGE_BYTE_ORDER       LSBFirst
+#define BITMAP_BIT_ORDER       LSBFirst
+#define GLYPHPADBYTES	       4
+#endif                          /* AArch64 */
+
 #if	defined(SVR4) && (defined(__i386__) || defined(__i386) ) ||	\
 	defined(__alpha__) || defined(__alpha) || \
 	defined(__i386__) || \
-	defined(__s390x__) || defined(__s390__)
+	defined(__s390x__) || defined(__s390__) || defined(__aarch64__)
 
 #ifndef IMAGE_BYTE_ORDER
 #define IMAGE_BYTE_ORDER	LSBFirst
@@ -286,6 +292,13 @@ SOFTWARE.
 #define GLYPHPADBYTES		4
 #endif                          /* linux/s390 */
 
+/* linux on AArch64 */
+#if defined(linux) && defined(__aarch64__)
+#define IMAGE_BYTE_ORDER	LSBFirst
+#define BITMAP_BIT_ORDER	LSBFirst
+#define GLYPHPADBYTES		4
+#endif
+
 /* size of buffer to use with GetImage, measured in bytes. There's obviously
  * a trade-off between the amount of heap used and the number of times the
  * ddx routine has to be called.
-- 
1.8.1.4



More information about the xorg-devel mailing list