[PATCH v2] ARC: Add support for ARC architecture

Egbert Eich eich at freedesktop.org
Tue May 13 01:44:29 PDT 2014


On Thu, May 01, 2014 at 03:39:29PM +0300, Alexey Brodkin wrote:
> 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>

Looks pretty straight forward.

Reviewed-by: Egbert Eich <eich at freedesktop.org>


> 
> 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>
> Cc: Aaron Watry <awatry at gmail.com>
> Cc: Keith Packard <keithp at keithp.com>
> ---
> Compared to v1 only fixed pre-processor string (added "&") to fix compilation.
> Thanks for Aaron Watry.
> 
> This v2 was tested with actual building and execution on a target.
> 
>  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..40765fc 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