[PATCH] ARC: Add support for ARC architecture

Alexey Brodkin Alexey.Brodkin at synopsys.com
Tue Apr 29 21:52:42 PDT 2014


Xorg server could be built for and run on Synopsys DesignWare ARC cores.
These changes are required for successful building and execution of the server.

Both little-endian and big-endian flavors of ARC cores are supported.

Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>

Cc: Vineet Gupta <vgupta at synopsys.com>
Cc: Andreas Schwab <schwab at suse.de>
Cc: Mark Kettenis <kettenis at openbsd.org>
Cc: Adam Jackson <ajax at redhat.com>
Cc: Egbert Eich <eich at freedesktop.org>
---
 hw/xfree86/common/compiler.h            |  4 ++--
 hw/xfree86/os-support/linux/lnx_video.c |  3 ++-
 include/servermd.h                      | 13 +++++++++++++
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index fb95f58..0319de0 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1352,7 +1352,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__) && !defined(__aarch64__)
+#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && !defined(__m32r__) && !defined(__aarch64__) && !defined(__arc__)
 #ifdef GCCUSESGAS
 
 /*
@@ -1454,7 +1454,7 @@ inl(unsigned short port)
 
 #endif                          /* GCCUSESGAS */
 
-#else                           /* !defined(FAKEIT) && !defined(__mc68000__)  && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__m32r__) */
+#else                           /* !defined(FAKEIT) && !defined(__mc68000__)  && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__m32r__) && !defined(__arc__) */
 
 static __inline__ void
 outb(unsigned short port, unsigned char val)
diff --git a/hw/xfree86/os-support/linux/lnx_video.c b/hw/xfree86/os-support/linux/lnx_video.c
index 47f5abc..bd3f1d3 100644
--- a/hw/xfree86/os-support/linux/lnx_video.c
+++ b/hw/xfree86/os-support/linux/lnx_video.c
@@ -59,7 +59,8 @@ static Bool ExtendedEnabled = FALSE;
       !defined(__mips__) && \
       !defined(__nds32__) && \
       !defined(__arm__) && \
-      !defined(__aarch64__)
+      !defined(__aarch64__) \
+      !defined(__arc__)
 
 /*
  * Due to conflicts with "compiler.h", don't rely on <sys/io.h> to declare
diff --git a/include/servermd.h b/include/servermd.h
index 11f6c10..2d1ccb1 100644
--- a/include/servermd.h
+++ b/include/servermd.h
@@ -300,6 +300,19 @@ SOFTWARE.
 
 #endif                          /* __aarch64__ */
 
+#if defined(__arc__)
+
+#if defined(__BIG_ENDIAN__)
+#define IMAGE_BYTE_ORDER	MSBFirst
+#define BITMAP_BIT_ORDER	MSBFirst
+#else
+#define IMAGE_BYTE_ORDER	LSBFirst
+#define BITMAP_BIT_ORDER	LSBFirst
+#endif
+#define GLYPHPADBYTES		4
+
+#endif                          /* ARC */
+
 /* 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.9.0



More information about the xorg-devel mailing list