On Fri, Feb 03, 2017 at 03:48:10PM +1100, Jonathan Gray wrote:
> Only compile tested.

Looks sane to me. I don't have any hardware to test it on right now
though.

ok.

> 
> Index: configure
> ===================================================================
> RCS file: /cvs/xenocara/xserver/configure,v
> retrieving revision 1.63
> diff -u -p -r1.63 configure
> --- configure 11 Oct 2016 22:15:52 -0000      1.63
> +++ configure 2 Feb 2017 06:52:46 -0000
> @@ -1075,6 +1075,8 @@ I386_VIDEO_FALSE
>  I386_VIDEO_TRUE
>  HPPA_VIDEO_FALSE
>  HPPA_VIDEO_TRUE
> +ARM64_VIDEO_FALSE
> +ARM64_VIDEO_TRUE
>  ARM_VIDEO_FALSE
>  ARM_VIDEO_TRUE
>  ALPHA_VIDEO_FALSE
> @@ -22439,6 +22441,10 @@ DEFAULT_INT10="x86emu"
>  
>  
>  case $host_cpu in
> +  aarch64*)
> +     ARM64_VIDEO=yes
> +     GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
> +     ;;
>    alpha*)
>       ALPHA_VIDEO=yes
>       case $host_os in
> @@ -22543,6 +22549,14 @@ else
>    ARM_VIDEO_FALSE=
>  fi
>  
> + if test "x$ARM64_VIDEO" = xyes; then
> +  ARM64_VIDEO_TRUE=
> +  ARM64_VIDEO_FALSE='#'
> +else
> +  ARM64_VIDEO_TRUE='#'
> +  ARM64_VIDEO_FALSE=
> +fi
> +
>   if test "x$HPPA_VIDEO" = xyes; then
>    HPPA_VIDEO_TRUE=
>    HPPA_VIDEO_FALSE='#'
> @@ -31734,6 +31748,10 @@ Usually this means the macro was only in
>  fi
>  if test -z "${ARM_VIDEO_TRUE}" && test -z "${ARM_VIDEO_FALSE}"; then
>    as_fn_error $? "conditional \"ARM_VIDEO\" was never defined.
> +Usually this means the macro was only invoked conditionally." "$LINENO" 5
> +fi
> +if test -z "${ARM64_VIDEO_TRUE}" && test -z "${ARM64_VIDEO_FALSE}"; then
> +  as_fn_error $? "conditional \"ARM64_VIDEO\" was never defined.
>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
>  fi
>  if test -z "${HPPA_VIDEO_TRUE}" && test -z "${HPPA_VIDEO_FALSE}"; then
> Index: configure.ac
> ===================================================================
> RCS file: /cvs/xenocara/xserver/configure.ac,v
> retrieving revision 1.57
> diff -u -p -r1.57 configure.ac
> --- configure.ac      13 Aug 2016 14:05:23 -0000      1.57
> +++ configure.ac      2 Feb 2017 06:52:17 -0000
> @@ -314,6 +314,10 @@ DEFAULT_INT10="x86emu"
>  dnl Override defaults as needed for specific platforms:
>  
>  case $host_cpu in
> +  aarch64*)
> +     ARM64_VIDEO=yes
> +     GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
> +     ;;
>    alpha*)
>       ALPHA_VIDEO=yes
>       case $host_os in
> @@ -391,6 +395,7 @@ AC_SUBST(GLX_ARCH_DEFINES)
>  dnl BSD *_video.c selection
>  AM_CONDITIONAL(ALPHA_VIDEO, [test "x$ALPHA_VIDEO" = xyes])
>  AM_CONDITIONAL(ARM_VIDEO, [test "x$ARM_VIDEO" = xyes])
> +AM_CONDITIONAL(ARM64_VIDEO, [test "x$ARM64_VIDEO" = xyes])
>  AM_CONDITIONAL(HPPA_VIDEO, [test "x$HPPA_VIDEO" = xyes])
>  AM_CONDITIONAL(I386_VIDEO, [test "x$I386_VIDEO" = xyes])
>  AM_CONDITIONAL(LUNA88K_VIDEO, [test "x$LUNA88K_VIDEO" = xyes])
> Index: hw/xfree86/os-support/bsd/Makefile.am
> ===================================================================
> RCS file: /cvs/xenocara/xserver/hw/xfree86/os-support/bsd/Makefile.am,v
> retrieving revision 1.19
> diff -u -p -r1.19 Makefile.am
> --- hw/xfree86/os-support/bsd/Makefile.am     16 Sep 2015 19:10:23 -0000      
> 1.19
> +++ hw/xfree86/os-support/bsd/Makefile.am     2 Feb 2017 06:52:17 -0000
> @@ -35,6 +35,11 @@ ARCH_SOURCES = arm_video.c \
>       $(srcdir)/../shared/ioperm_noop.c
>  endif
>  
> +if ARM64_VIDEO
> +ARCH_SOURCES = arm64_video.c \
> +     $(srcdir)/../shared/ioperm_noop.c
> +endif
> +
>  if HPPA_VIDEO
>  ARCH_SOURCES = hppa_video.c\
>       $(srcdir)/../shared/ioperm_noop.c
> Index: hw/xfree86/os-support/bsd/Makefile.in
> ===================================================================
> RCS file: /cvs/xenocara/xserver/hw/xfree86/os-support/bsd/Makefile.in,v
> retrieving revision 1.41
> diff -u -p -r1.41 Makefile.in
> --- hw/xfree86/os-support/bsd/Makefile.in     11 Oct 2016 22:15:56 -0000      
> 1.41
> +++ hw/xfree86/os-support/bsd/Makefile.in     2 Feb 2017 06:52:17 -0000
> @@ -76,26 +76,29 @@ libbsd_la_LIBADD =
>  am__libbsd_la_SOURCES_DIST = $(srcdir)/../shared/posix_tty.c \
>       $(srcdir)/../shared/sigio.c $(srcdir)/../shared/vidmem.c \
>       bsd_VTsw.c bsd_init.c bsd_bell.c alpha_video.c bsd_ev56.c \
> -     arm_video.c $(srcdir)/../shared/ioperm_noop.c hppa_video.c \
> -     i386_video.c luna88k_video.c ppc_video.c sgi_video.c \
> -     sparc64_video.c bsd_sbus.c $(srcdir)/../shared/agp_noop.c \
> -     bsd_agp.c $(srcdir)/../shared/pm_noop.c $(srcdir)/bsd_apm.c \
> +     arm64_video.c $(srcdir)/../shared/ioperm_noop.c arm_video.c \
> +     hppa_video.c i386_video.c luna88k_video.c ppc_video.c \
> +     sgi_video.c sparc64_video.c bsd_sbus.c \
> +     $(srcdir)/../shared/agp_noop.c bsd_agp.c \
> +     $(srcdir)/../shared/pm_noop.c $(srcdir)/bsd_apm.c \
>       $(srcdir)/bsd_kqueue_apm.c $(srcdir)/../shared/kmod_noop.c \
>       bsd_kmod.c
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@am__objects_1
>  = sparc64_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@
>   bsd_sbus.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@
>   ioperm_noop.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_TRUE@am__objects_1
>  = sgi_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_TRUE@
>        ioperm_noop.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_TRUE@am__objects_1
>  = ppc_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_TRUE@
>         ioperm_noop.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_TRUE@am__objects_1
>  = luna88k_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_TRUE@
>  ioperm_noop.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_TRUE@am__objects_1
>  = i386_video.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_TRUE@am__objects_1 = 
> hppa_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_TRUE@        ioperm_noop.lo
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_TRUE@am__objects_1 = arm_video.lo \
> -@ALPHA_VIDEO_FALSE@@ARM_VIDEO_TRUE@  ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@am__objects_1
>  = sparc64_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@
>        bsd_sbus.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@
>        ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_TRUE@am__objects_1
>  = sgi_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SGI_VIDEO_TRUE@
>     ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_TRUE@am__objects_1
>  = ppc_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_FALSE@@PPC_VIDEO_TRUE@
>      ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_TRUE@am__objects_1
>  = luna88k_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_FALSE@@LUNA88K_VIDEO_TRUE@
>       ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_FALSE@@I386_VIDEO_TRUE@am__objects_1
>  = i386_video.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_TRUE@am__objects_1
>  = hppa_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_FALSE@@HPPA_VIDEO_TRUE@     
> ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_TRUE@am__objects_1 = 
> arm_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_FALSE@@ARM_VIDEO_TRUE@       ioperm_noop.lo
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_TRUE@am__objects_1 = arm64_video.lo \
> +@ALPHA_VIDEO_FALSE@@ARM64_VIDEO_TRUE@        ioperm_noop.lo
>  @ALPHA_VIDEO_TRUE@am__objects_1 = alpha_video.lo bsd_ev56.lo
>  @AGP_FALSE@am__objects_2 = agp_noop.lo
>  @AGP_TRUE@am__objects_2 = bsd_agp.lo
> @@ -519,6 +522,9 @@ noinst_LTLIBRARIES = libbsd.la
>  @ALPHA_VIDEO_TRUE@   alpha_video.c \
>  @ALPHA_VIDEO_TRUE@   bsd_ev56.c
>  
> +@ARM64_VIDEO_TRUE@ARCH_SOURCES = arm64_video.c \
> +@ARM64_VIDEO_TRUE@   $(srcdir)/../shared/ioperm_noop.c
> +
>  @ARM_VIDEO_TRUE@ARCH_SOURCES = arm_video.c \
>  @ARM_VIDEO_TRUE@     $(srcdir)/../shared/ioperm_noop.c
>  
> @@ -622,6 +628,7 @@ distclean-compile:
>  
>  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/agp_noop.Plo@am__quote@
>  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alpha_video.Plo@am__quote@
> +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm64_video.Plo@am__quote@
>  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arm_video.Plo@am__quote@
>  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsd_VTsw.Plo@am__quote@
>  @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsd_agp.Plo@am__quote@
> --- /dev/null Fri Feb  3 15:44:58 2017
> +++ hw/xfree86/os-support/bsd/arm64_video.c   Thu Feb  2 17:50:50 2017
> @@ -0,0 +1,57 @@
> +/* $OpenBSD$ */
> +/*
> + * Copyright 1992 by Rich Murphey <[email protected]>
> + * Copyright 1993 by David Wexelblat <[email protected]>
> + *
> + * Permission to use, copy, modify, distribute, and sell this software and 
> its
> + * documentation for any purpose is hereby granted without fee, provided that
> + * the above copyright notice appear in all copies and that both that
> + * copyright notice and this permission notice appear in supporting
> + * documentation, and that the names of Rich Murphey and David Wexelblat
> + * not be used in advertising or publicity pertaining to distribution of
> + * the software without specific, written prior permission.  Rich Murphey and
> + * David Wexelblat make no representations about the suitability of this
> + * software for any purpose.  It is provided "as is" without express or
> + * implied warranty.
> + *
> + * RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO
> + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
> + * FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR
> + * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
> + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
> + * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
> + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + *
> + */
> +
> +#ifdef HAVE_XORG_CONFIG_H
> +#include <xorg-config.h>
> +#endif
> +
> +#include <X11/X.h>
> +#include "xf86.h"
> +#include "xf86Priv.h"
> +
> +#include "xf86_OSlib.h"
> +#include "xf86OSpriv.h"
> +
> +/***************************************************************************/
> +/* Video Memory Mapping section                                            */
> +/***************************************************************************/
> +
> +void
> +xf86OSInitVidMem(VidMemInfoPtr pVidMem)
> +{
> +     pVidMem->initialised = TRUE;
> +}
> +
> +#ifdef X_PRIVSEP
> +/*
> + * Do all initialisation that need root privileges
> + */
> +_X_EXPORT void
> +xf86PrivilegedInit(void)
> +{
> +     xf86OpenConsole();
> +}
> +#endif

-- 
Matthieu Herrb

Attachment: signature.asc
Description: PGP signature

Reply via email to