Re: items for monday's call
Donnie Berkholz <[email protected]>
| Newsgroups | gmane.comp.freedesktop.release-wranglers |
|---|---|
| Message-ID | <1090832021.20087.9.camel@localhost> |
On Mon, 2004-07-26 at 02:37, Kevin E Martin wrote: > The initial OS/Arch/Distro list is below. I've added the ones that I > know about but many others exist that are supported. Please respond to > this e-mail to fill in other OS/Arch/Distro's that should be supported > by this release or any missing/incorrect info. Gentoo Linux supports: ia32 ia64 amd64 ppc ppc64 sparc alpha arm hppa mips Gentoo isn't really versioned in a way that makes sense in this respect, so if you need a version, just say "all versions." All needed patches I'm aware of for this are already in freedesktop.org bugzilla or CVS, with the possible exception of the attached ARM patch. Accompanying Gentoo log info for that patch follows. -Add 9210_all_XFree86-4.3.0-arm32-compiler.h.patch (#52707) from netwinder.org. This fixes compiles for the ARM architecture. Patch from PhilB, according to netwinder's RPM spec file. -- 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) iD8DBQBBBMaVXVaO67S1rtsRAu7sAJoCCdweDtBbVhgGL+b8gQvPz/OWGwCgswfa XGkeS5XoyJmQKgubfd8hrW0= =KDvL -----END PGP SIGNATURE-----