Re: Failed build of xorg on Arm Netwinder

Donnie Berkholz <[email protected]>
Newsgroups gmane.comp.freedesktop.release-wranglers
Message-ID <1093231660.25626.0.camel@localhost>
On Sun, 2004-08-22 at 10:31, Mark Berry wrote:
> Following is the crash of cvs xc release of xorg on an arm netwinder. 
> Any idea's or thoughts about the problem would be greatly appreciated!!

Try the attached patch. I earlier posted it, but apparently it hasn't
made it in.
-- 
Donnie Berkholz
Gentoo Linux

_______________________________________________
release-wranglers mailing list
[email protected]
http://freedesktop.org/mailman/listinfo/release-wranglers
9210_all_XFree86-4.3.0-arm32-compiler.h.patch (text/x-patch, 3 KB)
--- clean/xc/programs/Xserver/hw/xfree86/common/compiler.h	2003-01-29 15:23:20.000000000 +0000
+++ xc/programs/Xserver/hw/xfree86/common/compiler.h	2003-06-11 11:37:04.000000000 +0000
@@ -87,7 +87,8 @@
 
 # if defined(NO_INLINE) || defined(DO_PROTOTYPES)
 
-#  if !defined(__sparc__) && !defined(__arm32__) \
+#  if !defined(__arm__)
+#   if !defined(__sparc__) && !defined(__arm32__) \
       && !(defined(__alpha__) && defined(linux))
 
 extern void outb(unsigned short, unsigned char);
@@ -97,7 +98,7 @@
 extern unsigned int inw(unsigned short);
 extern unsigned int inl(unsigned short);
 
-#  else /* __sparc__,  __arm32__, __alpha__*/
+#   else /* __sparc__,  __arm32__, __alpha__*/
 
 extern void outb(unsigned long, unsigned char);
 extern void outw(unsigned long, unsigned short);
@@ -106,7 +107,8 @@
 extern unsigned int inw(unsigned long);
 extern unsigned int inl(unsigned long);
 
-#  endif /* __sparc__,  __arm32__, __alpha__ */
+#   endif /* __sparc__,  __arm32__, __alpha__ */
+#  endif /* __arm__ */
 
 extern unsigned long ldq_u(unsigned long *);
 extern unsigned long ldl_u(unsigned int *);
@@ -848,7 +850,7 @@
 #    define mem_barrier()         /* XXX: nop for now */
 #    define write_mem_barrier()   /* XXX: nop for now */
 
-#   elif defined(__mips__) || defined(__arm32__)
+#   elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
 #ifdef __arm32__
 #define PORT_SIZE long
 #else
@@ -1244,6 +1246,55 @@
 #    define mem_barrier()	eieio()
 #    define write_mem_barrier()	eieio()
 
+#elif defined(__arm__) && defined(__linux__)
+
+#define ldq_u(p)	(*((unsigned long  *)(p)))
+#define ldl_u(p)	(*((unsigned int   *)(p)))
+#define ldw_u(p)	(*((unsigned short *)(p)))
+#define stq_u(v,p)	(*(unsigned long  *)(p)) = (v)
+#define stl_u(v,p)	(*(unsigned int   *)(p)) = (v)
+#define stw_u(v,p)	(*(unsigned short *)(p)) = (v)
+#define mem_barrier()   /* NOP */
+#define write_mem_barrier()   /* NOP */
+
+/* for Linux on ARM, we use the LIBC inx/outx routines */
+/* note that the appropriate setup via "ioperm" needs to be done */
+/*  *before* any inx/outx is done. */
+
+#include <sys/io.h>
+
+static __inline__ void
+xf_outb(unsigned short port, unsigned char val)
+{
+    outb(val, port);
+}
+
+static __inline__ void
+xf_outw(unsigned short port, unsigned short val)
+{
+    outw(val, port);
+}
+
+static __inline__ void
+xf_outl(unsigned short port, unsigned int val)
+{
+    outl(val, port);
+}
+
+#define outb xf_outb
+#define outw xf_outw
+#define outl xf_outl
+
+#define arm_flush_cache(addr)						\
+do {									\
+  register unsigned long _beg __asm ("a1") = (unsigned long) (addr);	\
+  register unsigned long _end __asm ("a2") = (unsigned long) (addr) + 4;\
+  register unsigned long _flg __asm ("a3") = 0;				\
+  __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
+    : "=r" (_beg)							\
+    : "0" (_beg), "r" (_end), "r" (_flg));				\
+} while (0)
+
 #   else /* ix86 */
 
 #    define ldq_u(p)	(*((unsigned long  *)(p)))
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBBKWQsXVaO67S1rtsRAuDQAJ96d//ow5F8dTRwtzJEAHWjDCTilwCffS3M
lDTuypUzmq2izE8HisQwImw=
=3qqH
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.