Allow building on ia64. This does not make it functional, because
ia64 doesn't have any non-serial console. It does allow xorg to build though and in particular xorg-drivers. The latter depends on xorg-server. Ok'd: rnoland@
This commit is contained in:
parent
b69cb334c3
commit
7220595e7c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=236350
@ -46,7 +46,7 @@ MAN4= exa.4 \
|
||||
fbdevhw.4
|
||||
MAN5= xorg.conf.5
|
||||
|
||||
NOT_FOR_ARCHS= ia64 alpha
|
||||
NOT_FOR_ARCHS= alpha
|
||||
|
||||
OPTIONS= HAL "Compile with HAL config support" on \
|
||||
AIGLX "Compile with Accelerated Indirect GLX support" on \
|
||||
@ -87,6 +87,13 @@ EXTRA_PATCHES= ${.CURDIR}/files/extra-arch-alpha
|
||||
PLIST_SUB+= ALPHA_NA=""
|
||||
.endif
|
||||
|
||||
.if ${ARCH} == ia64
|
||||
PLIST_SUB+= IA64_NA="@comment "
|
||||
EXTRA_PATCHES= ${.CURDIR}/files/extra-arch-ia64
|
||||
.else
|
||||
PLIST_SUB+= IA64_NA=""
|
||||
.endif
|
||||
|
||||
.if ${ARCH} == powerpc
|
||||
PLIST_SUB+= PPC_NA="@comment "
|
||||
MAN4+= nv.4x
|
||||
|
221
x11-servers/xorg-server/files/extra-arch-ia64
Normal file
221
x11-servers/xorg-server/files/extra-arch-ia64
Normal file
@ -0,0 +1,221 @@
|
||||
--- configure.dist 2009-06-18 17:05:59.000000000 -0700
|
||||
+++ configure 2009-06-18 17:08:47.000000000 -0700
|
||||
@@ -1097,6 +1097,8 @@
|
||||
SPARC64_VIDEO_TRUE
|
||||
PPC_VIDEO_FALSE
|
||||
PPC_VIDEO_TRUE
|
||||
+IA64_VIDEO_FALSE
|
||||
+IA64_VIDEO_TRUE
|
||||
I386_VIDEO_FALSE
|
||||
I386_VIDEO_TRUE
|
||||
ARM_VIDEO_FALSE
|
||||
@@ -19134,6 +19136,7 @@
|
||||
GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
|
||||
;;
|
||||
ia64*)
|
||||
+ IA64_VIDEO=yes
|
||||
GLX_ARCH_DEFINES="-D__GLX_ALIGN64"
|
||||
;;
|
||||
s390*)
|
||||
@@ -19166,6 +19169,14 @@
|
||||
I386_VIDEO_FALSE=
|
||||
fi
|
||||
|
||||
+ if test "x$IA64_VIDEO" = xyes; then
|
||||
+ IA64_VIDEO_TRUE=
|
||||
+ IA64_VIDEO_FALSE='#'
|
||||
+else
|
||||
+ IA64_VIDEO_TRUE='#'
|
||||
+ IA64_VIDEO_FALSE=
|
||||
+fi
|
||||
+
|
||||
if test "x$PPC_VIDEO" = xyes; then
|
||||
PPC_VIDEO_TRUE=
|
||||
PPC_VIDEO_FALSE='#'
|
||||
--- hw/xfree86/common/compiler.h.dist 2009-04-14 10:14:57.000000000 -0700
|
||||
+++ hw/xfree86/common/compiler.h 2009-06-18 16:22:46.000000000 -0700
|
||||
@@ -363,12 +363,10 @@
|
||||
# endif
|
||||
|
||||
|
||||
-# elif defined(linux) && defined(__ia64__)
|
||||
+# elif (defined(linux) || defined(__FreeBSD__)) && defined(__ia64__)
|
||||
|
||||
# include <inttypes.h>
|
||||
|
||||
-# include <sys/io.h>
|
||||
-
|
||||
struct __una_u64 { uint64_t x __attribute__((packed)); };
|
||||
struct __una_u32 { uint32_t x __attribute__((packed)); };
|
||||
struct __una_u16 { uint16_t x __attribute__((packed)); };
|
||||
--- hw/xfree86/os-support/bsd/Makefile.in.dist 2009-06-18 17:45:13.000000000 -0700
|
||||
+++ hw/xfree86/os-support/bsd/Makefile.in 2009-06-18 17:45:19.000000000 -0700
|
||||
@@ -63,6 +63,7 @@
|
||||
@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@am__objects_1 = sparc64_video.lo \
|
||||
@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_FALSE@@SPARC64_VIDEO_TRUE@ ioperm_noop.lo
|
||||
@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_FALSE@@PPC_VIDEO_TRUE@am__objects_1 = ppc_video.lo
|
||||
+@IA64_VIDEO_TRUE@am__objects_1 = ia64_video.lo
|
||||
@ALPHA_VIDEO_FALSE@@ARM_VIDEO_FALSE@@I386_VIDEO_TRUE@am__objects_1 = i386_video.lo
|
||||
@ALPHA_VIDEO_FALSE@@ARM_VIDEO_TRUE@am__objects_1 = arm_video.lo
|
||||
@ALPHA_VIDEO_TRUE@am__objects_1 = alpha_video.lo bsd_ev56.lo \
|
||||
@@ -393,6 +394,7 @@
|
||||
|
||||
@ARM_VIDEO_TRUE@ARCH_SOURCES = arm_video.c
|
||||
@I386_VIDEO_TRUE@ARCH_SOURCES = i386_video.c
|
||||
+@IA64_VIDEO_TRUE@ARCH_SOURCES = ia64_video.c
|
||||
@PPC_VIDEO_TRUE@ARCH_SOURCES = ppc_video.c
|
||||
|
||||
# Cheat here and piggyback other sparc64 bits on SPARC64_VIDEO.
|
||||
--- /dev/null 2009-06-18 18:27:23.000000000 -0700
|
||||
+++ hw/xfree86/os-support/bsd/ia64_video.c 2009-06-18 18:26:02.000000000 -0700
|
||||
@@ -0,0 +1,150 @@
|
||||
+#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"
|
||||
+
|
||||
+#include "bus/Pci.h"
|
||||
+
|
||||
+#ifndef MAP_FAILED
|
||||
+#define MAP_FAILED ((caddr_t)-1)
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
+/***************************************************************************/
|
||||
+/* Video Memory Mapping section */
|
||||
+/***************************************************************************/
|
||||
+
|
||||
+#define DEV_MEM "/dev/mem"
|
||||
+
|
||||
+static pointer ia64MapVidMem(int, unsigned long, unsigned long, int flags);
|
||||
+static void ia64UnmapVidMem(int, pointer, unsigned long);
|
||||
+
|
||||
+Bool xf86EnableIO(void);
|
||||
+void xf86DisableIO(void);
|
||||
+
|
||||
+void
|
||||
+xf86OSInitVidMem(VidMemInfoPtr pVidMem)
|
||||
+{
|
||||
+ pVidMem->linearSupported = TRUE;
|
||||
+ pVidMem->mapMem = ia64MapVidMem;
|
||||
+ pVidMem->unmapMem = ia64UnmapVidMem;
|
||||
+ pVidMem->initialised = TRUE;
|
||||
+ xf86EnableIO();
|
||||
+}
|
||||
+
|
||||
+
|
||||
+_X_EXPORT volatile unsigned char *ioBase = MAP_FAILED;
|
||||
+
|
||||
+static pointer
|
||||
+ia64MapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
|
||||
+{
|
||||
+ int fd = xf86Info.screenFd;
|
||||
+ pointer base;
|
||||
+#ifdef DEBUG
|
||||
+ xf86MsgVerb(X_INFO, 3, "mapVidMem %lx, %lx, fd = %d",
|
||||
+ Base, Size, fd);
|
||||
+#endif
|
||||
+
|
||||
+ base = mmap(0, Size,
|
||||
+ (flags & VIDMEM_READONLY) ?
|
||||
+ PROT_READ : (PROT_READ | PROT_WRITE),
|
||||
+ MAP_SHARED, fd, Base);
|
||||
+ if (base == MAP_FAILED)
|
||||
+ FatalError("%s: could not mmap screen [s=%lx,a=%lx] (%s)",
|
||||
+ "xf86MapVidMem", Size, Base, strerror(errno));
|
||||
+
|
||||
+ return base;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+ia64UnmapVidMem(int ScreenNum, pointer Base, unsigned long Size)
|
||||
+{
|
||||
+ munmap(Base, Size);
|
||||
+}
|
||||
+
|
||||
+_X_EXPORT int
|
||||
+xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
|
||||
+ int Len)
|
||||
+{
|
||||
+ int rv;
|
||||
+ static int kmem = -1;
|
||||
+
|
||||
+ if (kmem == -1) {
|
||||
+ kmem = open(DEV_MEM, 2);
|
||||
+ if (kmem == -1) {
|
||||
+ FatalError("xf86ReadBIOS: open %s", DEV_MEM);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+#ifdef DEBUG
|
||||
+ xf86MsgVerb(X_INFO, 3, "xf86ReadBIOS() %lx %lx, %x\n",
|
||||
+ Base, Offset, Len);
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
+ lseek(kmem, Base + Offset, 0);
|
||||
+ rv = read(kmem, Buf, Len);
|
||||
+
|
||||
+ return rv;
|
||||
+}
|
||||
+
|
||||
+Bool xf86EnableIO()
|
||||
+{
|
||||
+ int fd = xf86Info.screenFd;
|
||||
+
|
||||
+ xf86MsgVerb(X_WARNING, 3, "xf86EnableIO %d\n", fd);
|
||||
+ if (ioBase == MAP_FAILED)
|
||||
+ {
|
||||
+ ioBase=mmap(NULL, 0x10000, PROT_READ|PROT_WRITE, MAP_SHARED, fd,
|
||||
+ 0);
|
||||
+ xf86MsgVerb(X_INFO, 3, "xf86EnableIO: %p\n", ioBase);
|
||||
+ if (ioBase == MAP_FAILED) {
|
||||
+ xf86MsgVerb(X_WARNING, 3, "Can't map IO space!\n");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ }
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+void xf86DisableIO()
|
||||
+{
|
||||
+
|
||||
+ if (ioBase != MAP_FAILED)
|
||||
+ {
|
||||
+ munmap((void *)(uintptr_t)(void *)ioBase, 0x10000);
|
||||
+ ioBase = MAP_FAILED;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void outb(unsigned long port, unsigned char val)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+void outw(unsigned long port, unsigned short val)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+void outl(unsigned long port, unsigned int val)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+unsigned int inb(unsigned long port)
|
||||
+{
|
||||
+ return 0xff;
|
||||
+}
|
||||
+
|
||||
+unsigned int inw(unsigned long port)
|
||||
+{
|
||||
+ return 0xffff;
|
||||
+}
|
||||
+
|
||||
+unsigned int inl(unsigned long port)
|
||||
+{
|
||||
+ return 0xffffffff;
|
||||
+}
|
Loading…
Reference in New Issue
Block a user