summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/pci/cia_isa.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/alpha/pci/cia_isa.c')
-rw-r--r--sys/arch/alpha/pci/cia_isa.c346
1 files changed, 0 insertions, 346 deletions
diff --git a/sys/arch/alpha/pci/cia_isa.c b/sys/arch/alpha/pci/cia_isa.c
deleted file mode 100644
index 6ccb0ae4a3e..00000000000
--- a/sys/arch/alpha/pci/cia_isa.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/* $NetBSD: cia_isa.c,v 1.1 1995/11/23 02:37:26 cgd Exp $ */
-
-/*
- * Copyright (c) 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <sys/param.h>
-#include <sys/malloc.h>
-#include <sys/syslog.h>
-#include <sys/device.h>
-#include <vm/vm.h>
-
-#include <dev/isa/isavar.h>
-
-#include <alpha/pci/ciareg.h>
-#include <alpha/pci/ciavar.h>
-
-/*
- * Allocation/deallocation functions.
- */
-int cia_pio_alloc __P((void *, isa_iooffset_t, isa_iosize_t));
-int cia_pio_dealloc __P((void *, isa_iooffset_t, isa_iosize_t));
-
-/*
- * Byte functions.
- */
-isa_byte_t cia_inb __P((void *, isa_iooffset_t));
-#define cia_insb 0 /* XXX */
-void cia_outb __P((void *, isa_iooffset_t, isa_byte_t));
-#define cia_outsb 0 /* XXX */
-
-/*
- * Word functions.
- */
-isa_word_t cia_inw __P((void *, isa_iooffset_t));
-#define cia_insw 0 /* XXX */
-void cia_outw __P((void *, isa_iooffset_t, isa_word_t));
-#define cia_outsw 0 /* XXX */
-
-/*
- * Longword functions.
- */
-isa_long_t cia_inl __P((void *, isa_iooffset_t));
-#define cia_insl 0 /* XXX */
-void cia_outl __P((void *, isa_iooffset_t, isa_long_t));
-#define cia_outsl 0 /* XXX */
-
-__const struct pci_pio_fns cia_pio_fns = {
- /* Allocation/deallocation functions. */
- cia_pio_alloc, cia_pio_dealloc,
-
- /* Byte functions. */
- cia_inb, cia_insb,
- cia_outb, cia_outsb,
-
- /* Word functions. */
- cia_inw, cia_insw,
- cia_outw, cia_outsw,
-
- /* Longword functions. */
- cia_inl, cia_insl,
- cia_outl, cia_outsl,
-};
-
-int
-cia_pio_alloc(ipfarg, start, size)
- void *ipfarg;
- isa_iooffset_t start;
- isa_iosize_t size;
-{
-
- /* XXX should do something */
-}
-
-int
-cia_pio_dealloc(ipfarg, start, size)
- void *ipfarg;
- isa_iooffset_t start;
- isa_iosize_t size;
-{
-
- /* XXX should do something */
-}
-
-isa_byte_t
-cia_inb(ipfa, ioaddr)
- void *ipfa;
- isa_iooffset_t ioaddr;
-{
- u_int32_t *port, val;
- isa_byte_t rval;
- int offset;
-
- wbflush();
- offset = ioaddr & 3;
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 0 << 3 | ioaddr << 5);
- val = *port;
- rval = ((val) >> (8 * offset)) & 0xff;
-/* rval = val & 0xff; */
-
- return rval;
-}
-
-void
-cia_outb(ipfa, ioaddr, val)
- void *ipfa;
- isa_iooffset_t ioaddr;
- isa_byte_t val;
-{
- u_int32_t *port, nval;
- int offset;
-
- offset = ioaddr & 3;
- nval = val /*<< (8 * offset)*/;
- nval = val << (8 * offset);
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 0 << 3 | ioaddr << 5);
-
- *port = nval;
- wbflush();
-}
-
-isa_word_t
-cia_inw(ipfa, ioaddr)
- void *ipfa;
- isa_iooffset_t ioaddr;
-{
- u_int32_t *port, val;
- isa_word_t rval;
- int offset;
-
- wbflush();
- offset = ioaddr & 3;
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 1 << 3 | ioaddr << 5);
- val = *port;
- rval = ((val) >> (8 * offset)) & 0xffff;
- rval = val & 0xffff;
-
-panic("inw(0x%x) => 0x%x @ %p => 0x%x\n", ioaddr, val, port, rval);
-
- return rval;
-}
-
-void
-cia_outw(ipfa, ioaddr, val)
- void *ipfa;
- isa_iooffset_t ioaddr;
- isa_word_t val;
-{
- u_int32_t *port, nval;
- int offset;
-
- offset = ioaddr & 3;
- nval = val /*<< (8 * offset)*/;
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 1 << 3 | ioaddr << 5);
-
- *port = nval;
- wbflush();
-}
-
-isa_long_t
-cia_inl(ipfa, ioaddr)
- void *ipfa;
- isa_iooffset_t ioaddr;
-{
- u_int32_t *port, val;
- isa_long_t rval;
- int offset;
-
- wbflush();
- offset = ioaddr & 3;
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 3 << 3 | ioaddr << 5);
- val = *port;
- rval = ((val) >> (8 * offset)) & 0xffffffff;
- rval = val & 0xffffffff;
-
- return rval;
-}
-
-void
-cia_outl(ipfa, ioaddr, val)
- void *ipfa;
- isa_iooffset_t ioaddr;
- isa_long_t val;
-{
- u_int32_t *port, nval;
- int offset;
-
- offset = ioaddr & 3;
- nval = val /*<< (8 * offset)*/;
- port = (int32_t *)phystok0seg(CIA_PCI_SIO0 | 3 << 3 | ioaddr << 5);
-
- *port = nval;
- wbflush();
-}
-
-/* XXX XXX XXX */
-
-#define pf(fn, args) fn args { panic(__STRING(fn)); }
-
-void pf(cia_dma_cascade, (void *idfa, isa_drq_t chan))
-void pf(cia_dma_copytobuf, ())
-void pf(cia_dma_copyfrombuf, ())
-void pf(cia_dma_start, (void *idfa, vm_offset_t addr,
- isa_msize_t size, isa_drq_t chan, int flags))
-void pf(cia_dma_abort, (void *idfa, isa_drq_t chan))
-void pf(cia_dma_done, (void *idfa, isa_drq_t chan))
-
-int cia_dma_map __P((void *, vm_offset_t, isa_msize_t,
- isa_moffset_t *, int));
-void cia_dma_unmap __P((void *, vm_offset_t, isa_msize_t, int,
- isa_moffset_t *));
-
-__const struct isa_dma_fns cia_dma_fns = {
- cia_dma_cascade,
- cia_dma_map,
- cia_dma_unmap,
- cia_dma_copytobuf,
- cia_dma_copyfrombuf,
- cia_dma_start,
- cia_dma_abort,
- cia_dma_done,
-};
-
-int
-cia_dma_map(idfa, va, isasize, mappingsp, flags)
- void *idfa;
- vm_offset_t va;
- isa_msize_t isasize;
- isa_moffset_t *mappingsp;
- int flags;
-{
- struct apecs_config *acp = idfa;
- long todo;
- int i;
-
- if (ISA_DMA_NEEDCONTIG(flags) && isasize > NBPG ||
- ISA_DMA_SIZEBOUND(flags) != ISA_DMA_SIZEBOUND_NONE ||
- ISA_DMA_ADDRBOUND(flags) != ISA_DMA_ADDRBOUND_NONE)
- panic("cia_dma_map: punt");
-
- i = 0;
- todo = isasize;
-
- while (todo > 0) {
- mappingsp[i] = vtophys(va) | 0x40000000;
-#if 0
- printf("a_pd_m mapping %d: %lx -> %lx -> %lx\n", i, va,
- vtophys(va), mappingsp[i]);
-#endif
- i++;
- todo -= PAGE_SIZE - (va - trunc_page(va));
- va += PAGE_SIZE - (va - trunc_page(va));
- }
- return (i);
-}
-
-void
-cia_dma_unmap(idfa, va, isasize, nmappings, mappingsp)
- void *idfa;
- vm_offset_t va;
- isa_msize_t isasize;
- int nmappings;
- isa_moffset_t *mappingsp;
-{
-
- printf("cia_dma_unmap: called\n");
-}
-
-vm_offset_t cia_mem_map __P((void *, isa_moffset_t, isa_msize_t, int));
-void cia_mem_unmap __P((void *, vm_offset_t, isa_msize_t));
-
-#if 0
-void cia_mem_copytoisa __P((void *, char *, vm_offset_t,
- isa_moffset_t, isa_msize_t));
-void cia_mem_copyfromisa __P((void *, char *, vm_offset_t,
- isa_moffset_t, isa_msize_t));
-void cia_mem_zero __P((void *, vm_offset_t, isa_moffset_t,
- isa_msize_t));
-#else
-void pf(cia_mem_copytoisa, ())
-void pf(cia_mem_copyfromisa, ())
-void pf(cia_mem_zero, ())
-#endif
-
-__const struct isa_mem_fns cia_mem_fns = {
- cia_mem_map,
- cia_mem_unmap,
- cia_mem_copytoisa,
- cia_mem_copyfromisa,
- cia_mem_zero,
-};
-
-vm_offset_t
-cia_mem_map(imfa, isapa, isasize, cacheable)
- void *imfa;
- isa_moffset_t isapa;
- isa_msize_t isasize;
- int cacheable;
-{
- vm_offset_t sbpa;
-
- /* XXX sanity checks on sizes, use of windows, etc. */
-
- /* XXX MAGIC NUMBERS */
- if (cacheable)
- sbpa = (isapa & 0xffffffff) | CIA_PCI_DENSE;
- else
- sbpa = ((isapa & 0x7ffffff) << 5) | CIA_PCI_SPARSE0;
-
- return phystok0seg(sbpa);
-}
-
-void
-cia_mem_unmap(imfa, va, isasize)
- void *imfa;
- vm_offset_t va;
- isa_msize_t isasize;
-{
-
- /* XXX sanity checks on va */
-
- /* Nothing to do; mapping was done in direct-mapped segment. */
-}