Index: xfree/xc/programs/Xserver/hw/xfree86/common/xf86Kbd.c
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/common/xf86Kbd.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 xf86Kbd.c
--- xfree/xc/programs/Xserver/hw/xfree86/common/xf86Kbd.c 2002/01/19 15:06:53 1.1.1.4
+++ xfree/xc/programs/Xserver/hw/xfree86/common/xf86Kbd.c 2002/01/28 16:32:25
@@ -41,14 +41,15 @@
#if defined(KDGKBTYPE) && \
!defined(Lynx) && \
!defined(__EMX__) && !defined(__mips__) && \
- !defined(__arm32__) && !defined(__GNU__) && !defined(__QNX__)
+ !defined(__arm32__) && !defined(__GNU__) && !defined(__QNX__) && \
+ !defined(CSRG_BASED)
#define HAS_GETKBTYPE
#endif
#if defined(GIO_KEYMAP) && \
!defined(Lynx) && \
!defined(__EMX__) && !defined(__mips__) && \
!defined(__arm32__) && !defined(__GNU__) && !defined(DGUX) && \
- !defined(__QNX__)
+ !defined(__QNX__) && !defined(CSRG_BASED)
#define HAS_GETKEYMAP
#define KD_GET_ENTRY(i,n) \
Index: xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 r128.h
--- xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h 2002/01/19 15:08:56 1.1.1.4
+++ xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h 2002/01/28 16:32:26
@@ -63,7 +63,7 @@
#define R128_DEBUG 0 /* Turn off debugging output */
#define R128_TIMEOUT 2000000 /* Fall out of wait loops after this count */
-#define R128_MMIOSIZE 0x80000
+#define R128_MMIOSIZE 0x4000
#define R128_VBIOS_SIZE 0x00010000
Index: xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 r128_driver.c
--- xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c 2002/01/19 15:09:00 1.1.1.4
+++ xfree/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c 2002/01/28 16:32:32
@@ -1614,7 +1614,7 @@
static Bool R128PreInitInt10(ScrnInfoPtr pScrn, xf86Int10InfoPtr *ppInt10)
{
R128InfoPtr info = R128PTR(pScrn);
-#if 1 && !defined(__alpha__)
+#if 1 && !defined(__alpha__) && !defined(__powerpc__)
/* int10 is broken on some Alphas */
if (xf86LoadSubModule(pScrn, "int10")) {
xf86LoaderReqSymLists(int10Symbols, NULL);
Index: xfree/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 xf86_OSlib.h
--- xfree/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h 2002/01/19 15:11:57 1.1.1.4
+++ xfree/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSlib.h 2002/01/28 16:32:33
@@ -544,6 +544,7 @@
# if defined(SYSCONS_SUPPORT) || defined(PCVT_SUPPORT) || defined(WSCONS_SUPPORT)
# define USE_VT_SYSREQ
+# include <dev/wscons/wsdisplay_usl_io.h>
# endif
#endif /* CSRG_BASED */
Index: xfree/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c,v
retrieving revision 1.8
diff -u -r1.8 bsd_video.c
--- xfree/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c 2002/01/19 23:19:35 1.8
+++ xfree/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c 2002/01/28 16:32:35
@@ -732,12 +732,13 @@
xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
int Len)
{
+#if 0
int rv;
int kmem;
- kmem = open("/dev/kmem", 2);
+ kmem = open("/dev/mem", 2);
if (kmem == -1) {
- FatalError("xf86ReadBIOS: open /dev/kmem\n");
+ FatalError("xf86ReadBIOS: open /dev/mem\n");
}
#ifdef DEBUG
@@ -755,6 +756,9 @@
close(kmem);
return rv;
+#else
+ return -1;
+#endif
}
Index: xfree/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
===================================================================
RCS file: /cvsroot/xsrc/xfree/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v
retrieving revision 1.5
diff -u -r1.5 Imakefile
--- xfree/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile 2002/01/19 23:19:35 1.5
+++ xfree/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile 2002/01/28 16:32:35
@@ -47,6 +47,13 @@
PCIDRVRSRC = freebsdPci.c
PCIDRVROBJ = freebsdPci.o
+#elif defined(NetBSDArchitecture) && defined(PpcArchitecture)
+
+XCOMM NetBSD/powerpc
+
+PCIDRVRSRC = macppcPci.c
+PCIDRVROBJ = macppcPci.o
+
#elif defined(PpcArchitecture)
XCOMM PowerPC PCI drivers
===================================================================
--- /dev/null Mon Jan 28 17:31:43 2002
+++ xfree/xc/programs/Xserver/hw/xfree86/os-support/bus/macppcPci.c Sun Jan 27 19:07:33 2002
@@ -0,0 +1,384 @@
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <machine/bswap.h>
+
+#include "xf86.h"
+#include "xf86Priv.h"
+#include "xf86OSpriv.h"
+
+#include "Pci.h"
+
+#undef PCHB_DEBUG
+#define UNINORTH
+
+#ifdef PCHB_DEBUG
+# define DPRINTF ErrorF
+#else
+# define DPRINTF while (0) ErrorF
+#endif
+
+CARD32 banditPciConfRead(PCITAG, int);
+void banditPciConfWrite(PCITAG, int, CARD32);
+CARD32 gracklePciConfRead(PCITAG, int);
+void gracklePciConfWrite(PCITAG, int, CARD32);
+CARD32 uninorthPciConfRead(PCITAG, int);
+void uninorthPciConfWrite(PCITAG, int, CARD32);
+
+void macppcPciSetBits(PCITAG, int, CARD32, CARD32);
+
+int open(const char *, int); /* XXX */
+
+static int kmem = -1;
+
+pciBusInfo_t macppcPci0 = {
+/* configMech */ PCI_CFG_MECH_OTHER,
+/* numDevices */ 32,
+/* secondary */ FALSE,
+/* primary_bus */ 0,
+/* ppc_io_base */ 0, /* XXX */
+/* ppc_io_size */ 0, /* XXX */
+/* funcs */ {
+ pciReadLongNULL,
+ pciWriteLongNULL,
+ macppcPciSetBits,
+ pciAddrNOOP,
+ pciAddrNOOP
+ },
+/* pciBusPriv */ NULL
+};
+
+void
+ppcPciInit()
+{
+ pciNumBuses = 1;
+ pciBusInfo[0] = &macppcPci0;
+ pciFindFirstFP = pciGenFindFirst;
+ pciFindNextFP = pciGenFindNext;
+
+ kmem = open("/dev/mem", 2);
+ if (kmem == -1)
+ FatalError("ppcPciInit: /dev/mem\n");
+
+#if 0
+ if (xf86Info.pcitype == NULL) {
+ ErrorF("Option \"PCI type\" is not set\n");
+ FatalError("Please set PCI type in your XF86Config");
+ } else if (strcasecmp(xf86Info.pcitype, "bandit") == 0) {
+ pciBusInfo[0]->funcs.pciReadLong = banditPciConfRead;
+ pciBusInfo[0]->funcs.pciWriteLong = banditPciConfWrite;
+ } else if (strcasecmp(xf86Info.pcitype, "grackle") == 0) {
+ pciBusInfo[0]->funcs.pciReadLong = gracklePciConfRead;
+ pciBusInfo[0]->funcs.pciWriteLong = gracklePciConfWrite;
+ } else if (strcasecmp(xf86Info.pcitype, "uninorth") == 0) {
+#endif
+ pciBusInfo[0]->funcs.pciReadLong = uninorthPciConfRead;
+ pciBusInfo[0]->funcs.pciWriteLong = uninorthPciConfWrite;
+#if 0
+ } else {
+ FatalError("Invalid PCI type \"%s\"\n", xf86Info.pcitype);
+ }
+
+ xf86Msg(X_CONFIG, "PCI-HOST bridge is %s\n", xf86Info.pcitype);
+#endif
+}
+
+#define BANDIT_BASE 0xf2000000
+#define BANDIT_ADDR (BANDIT_BASE + 0x800000)
+#define BANDIT_DATA (BANDIT_BASE + 0xc00000)
+
+#define GRACKLE_ADDR 0xfec00000
+#define GRACKLE_DATA 0xfee00000
+
+#define UNINORTH_BASE 0xf0000000
+#define UNINORTH_ADDR (UNINORTH_BASE + 0x800000)
+#define UNINORTH_DATA (UNINORTH_BASE + 0xc00000)
+
+CARD32
+banditPciConfRead(PCITAG tag, int reg)
+{
+ CARD32 val = 0xffffffff;
+ u_int bus, dev, func;
+ u_int x;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ if (bus > 0)
+ return val; /* XXX for now */
+ if (dev < 11)
+ return val;
+
+ DPRINTF("pciConfRead: PCI(%d:%d:%d)[0x%02x]", bus, dev, func, reg);
+
+ if (dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfRead: Illegal range\n");
+
+ x = bswap32((1 << dev) | (func << 8) | reg);
+ lseek(kmem, BANDIT_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, BANDIT_ADDR, 0);
+ read(kmem, &x, 4); /* XXX dummy read */
+
+ lseek(kmem, BANDIT_DATA, 0); /* data port */
+ read(kmem, &x, 4);
+ val = bswap32(x);
+
+ x = 0;
+ lseek(kmem, BANDIT_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, BANDIT_ADDR, 0);
+ read(kmem, &x, 4);
+
+ DPRINTF("--> 0x%lx\n", val);
+ return val;
+}
+
+void
+banditPciConfWrite(PCITAG tag, int reg, CARD32 val)
+{
+ u_int bus, dev, func;
+ u_int x;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ DPRINTF("pciConfWrite: PCI(%d:%d:%d)[0x%02x] = 0x%x\n",
+ bus, dev, func, reg, val);
+
+ if (bus > 0 || dev < 11 ||
+ dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfWrite: Illegal range\n");
+
+ /* XXX Don't disable mem_enable */
+ if (reg == 4)
+ val |= PCI_CMD_MEM_ENABLE;
+
+ x = bswap32((1 << dev) | (func << 8) | reg);
+ lseek(kmem, BANDIT_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, BANDIT_ADDR, 0);
+ read(kmem, &x, 4); /* dummy read */
+
+ x = bswap32(val);
+ lseek(kmem, BANDIT_DATA, 0); /* data port */
+ write(kmem, &x, 4);
+
+ x = 0;
+ lseek(kmem, BANDIT_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, BANDIT_ADDR, 0);
+ read(kmem, &x, 4);
+}
+
+CARD32
+uninorthPciConfRead(PCITAG tag, int reg)
+{
+ CARD32 val = 0xffffffff;
+ u_int bus, dev, func;
+ u_int x;
+ paddr_t daddr = (reg & 0x04) == 0 ? UNINORTH_DATA : UNINORTH_DATA + 4;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ if (bus > 0)
+ return val; /* XXX for now */
+ if (dev < 11)
+ return val;
+
+ DPRINTF("pciConfRead: PCI(%d:%d:%d)[0x%02x]", bus, dev, func, reg);
+
+ if (dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfRead: Illegal range\n");
+
+ x = bswap32((1 << dev) | (func << 8) | reg);
+ lseek(kmem, UNINORTH_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, UNINORTH_ADDR, 0);
+ read(kmem, &x, 4); /* XXX dummy read */
+
+ lseek(kmem, daddr, 0); /* data port */
+ read(kmem, &x, 4);
+ val = bswap32(x);
+
+ x = 0;
+ lseek(kmem, UNINORTH_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, UNINORTH_ADDR, 0);
+ read(kmem, &x, 4);
+
+ DPRINTF("--> 0x%lx\n", val);
+ return val;
+}
+
+void
+uninorthPciConfWrite(PCITAG tag, int reg, CARD32 val)
+{
+ u_int bus, dev, func;
+ u_int x;
+ paddr_t daddr = (reg & 0x04) == 0 ? UNINORTH_DATA : UNINORTH_DATA + 4;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ DPRINTF("pciConfWrite: PCI(%d:%d:%d)[0x%02x] = 0x%x\n",
+ bus, dev, func, reg, val);
+
+ if (bus > 0 || dev < 11 ||
+ dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfWrite: Illegal range\n");
+
+ /* XXX Don't disable mem_enable */
+ if (reg == 4)
+ val |= PCI_CMD_MEM_ENABLE;
+
+ x = bswap32((1 << dev) | (func << 8) | reg);
+ lseek(kmem, UNINORTH_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, UNINORTH_ADDR, 0);
+ read(kmem, &x, 4); /* dummy read */
+
+ x = bswap32(val);
+ lseek(kmem, daddr, 0); /* data port */
+ write(kmem, &x, 4);
+
+ x = 0;
+ lseek(kmem, UNINORTH_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, UNINORTH_ADDR, 0);
+ read(kmem, &x, 4);
+}
+
+CARD32
+gracklePciConfRead(PCITAG tag, int reg)
+{
+ CARD32 val = 0xffffffff;
+ u_int bus, dev, func;
+ u_int x;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ if (bus > 0)
+ return val; /* XXX for now */
+
+ DPRINTF("pciConfRead: PCI(%d:%d:%d)[0x%02x]", bus, dev, func, reg);
+
+ if (dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfRead: Illegal range\n");
+
+ x = bswap32(0x80000000 | (bus << 16) | (dev << 11) | (func << 8) | reg);
+ lseek(kmem, GRACKLE_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, GRACKLE_ADDR, 0);
+ read(kmem, &x, 4); /* XXX dummy read */
+
+ lseek(kmem, GRACKLE_DATA, 0);
+ read(kmem, &x, 4);
+ val = bswap32(x);
+
+ x = 0;
+ lseek(kmem, GRACKLE_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, GRACKLE_ADDR, 0);
+ read(kmem, &x, 4);
+
+ DPRINTF("--> 0x%lx\n", val);
+ return val;
+}
+
+void
+gracklePciConfWrite(PCITAG tag, int reg, CARD32 val)
+{
+ u_int bus, dev, func;
+ u_int x;
+
+ bus = PCI_BUS_FROM_TAG(tag);
+ dev = PCI_DEV_FROM_TAG(tag);
+ func = PCI_FUNC_FROM_TAG(tag);
+
+ DPRINTF("pciConfWrite: PCI(%d:%d:%d)[0x%02x] = 0x%x\n",
+ bus, dev, func, reg, val);
+
+ if (bus > 0 ||
+ dev > 31 || func > 7 || reg < 0 || reg > 255 || (reg & 3) != 0)
+ FatalError("pciConfWrite: Illegal range\n");
+
+ /* XXX Don't disable mem_enable */
+ if (reg == 4)
+ val |= PCI_CMD_MEM_ENABLE;
+
+ x = bswap32(0x80000000 | (bus << 16) | (dev << 11) | (func << 8) | reg);
+ lseek(kmem, GRACKLE_ADDR, 0); /* addr port */
+ write(kmem, &x, 4);
+ lseek(kmem, GRACKLE_ADDR, 0);
+ read(kmem, &x, 4); /* dummy read */
+
+ x = bswap32(val);
+ lseek(kmem, GRACKLE_DATA, 0);
+ write(kmem, &x, 4);
+
+ x = 0;
+ lseek(kmem, GRACKLE_ADDR, 0);
+ write(kmem, &x, 4);
+ lseek(kmem, GRACKLE_ADDR, 0);
+ read(kmem, &x, 4);
+}
+
+void
+macppcPciSetBits(PCITAG tag, int reg, CARD32 mask, CARD32 bits)
+{
+ CARD32 val;
+
+ DPRINTF("pciSetBits\n");
+
+ val = pciBusInfo[0]->funcs.pciReadLong(tag, reg);
+ val = (val & ~mask) | (bits & mask);
+ pciBusInfo[0]->funcs.pciWriteLong(tag, reg, val);
+}
+
+
+#include "compiler.h"
+
+u_int
+debug_inb(u_short port, int line, char *file)
+{
+ FatalError("inb() called from %s line %d\n", file, line);
+}
+
+u_int
+debug_inw(u_short port, int line, char *file)
+{
+ FatalError("inw() called from %s line %d\n", file, line);
+}
+
+u_int
+debug_inl(u_short port, int line, char *file)
+{
+ FatalError("inl() called from %s line %d\n", file, line);
+}
+
+void
+debug_outb(u_short port, u_char value, int line, char *file)
+{
+ FatalError("outb() called from %s line %d\n", file, line);
+}
+
+void
+debug_outw(u_short port, u_short value, int line, char *file)
+{
+ FatalError("outw() called from %s line %d\n", file, line);
+}
+
+void
+debug_outl(u_short port, u_int value, int line, char *file)
+{
+ FatalError("outl() called from %s line %d\n", file, line);
+}