EB164 libc and xfree86

Ian Pratt (Ian.Pratt@cl.cam.ac.uk)
Thu, 04 Apr 1996 11:07:06 +0100


We tried to get xfree86 up on an Redhat-2.1 installed
EB164 and encountered a few problems. This may all be
common knowledge, but just in case its not, here's what we had to
do:

First off, the libc that comes with Redhat-2.1 appears to be
APECS chip set specific, in that `in/out' don't go for the right
place in the ALCOR's memory map. I ftp'd libc-linux-0.40.3, and
patched sysdeps/linux/alpha/io.c so that it understands the
EB164. This is simply done by inserting:

#elif defined(CONFIG_ALPHA_EB164)
# define CONFIG_IOSYS IOSYS_ALPHA_PCI
# define IO_SHIFT 5
# define IO_BASE ALCOR_IO
# define IO_TYPE_BYTE 0x00
# define IO_TYPE_WORD 0x08
# define IO_TYPE_LONG 0x18

The xfree86 needs a couple of patches over and above
axpdiffs-XFree86-3.1.2-0.2 to make it work on an
EB164. Specifically, lnx_video.c and bios_devmem.c in
programs/Xserver/hw/xfree86/os-support/linux need patching to use
ALCOR_DENSE_MEM instead of an APECS_DENSE_MEM. i.e. change

#include <asm/io.h>
#define BUS_BASE ALCOR_DENSE_MEM

We used these patches to build an S3 server, which seems to work
fine. Using the Xserver rather than virtual consoles seems to
make our EB164 considerably more stable. Changing virtual console
often led to the system freezing. Has anyone else experienced
this? We're running 1.3.82 with DISCONNECTS disabled in the
53c810 driver.

Ian