summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2002-11-02 23:56:29 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-11-02 23:56:29 -0800
commit0e1cb392e849ceef2414855c35262f16bebfd232 (patch)
tree2a0b66937d60ea7b189fc188ae3942825ac9f82a /include
parent9d0f75b88bf06dc8ee474e61dfea0c1a447b88d2 (diff)
[PATCH] Sun-3 VME support
Add Sun-3 VME support (by Sam Creasey): - Added VME version of the Sun-3 NCR5380 scsi driver. - Modified the Sun-3 dvma routines to support VME. - Added sun3_map_test() -- uses the ex_table to trap faults on VME mappings in order to determine if a card is present. This seems a little hackish to be, but: 1) All changes are entirely within Sun3-only code paths, 2) netbsd, sunos, and mach all use this mechanism for VME probes anyway.
Diffstat (limited to 'include')
-rw-r--r--include/asm-m68k/dvma.h5
-rw-r--r--include/asm-m68k/sun3ints.h6
-rw-r--r--include/asm-m68k/sun3mmu.h1
3 files changed, 11 insertions, 1 deletions
diff --git a/include/asm-m68k/dvma.h b/include/asm-m68k/dvma.h
index f7a6dcfabc4e..7a1653507f82 100644
--- a/include/asm-m68k/dvma.h
+++ b/include/asm-m68k/dvma.h
@@ -22,7 +22,8 @@ extern int dvma_map_iommu(unsigned long kaddr, unsigned long baddr,
#define dvma_malloc(x) dvma_malloc_align(x, 0)
#define dvma_map(x, y) dvma_map_align(x, y, 0)
-
+#define dvma_map_vme(x, y) (dvma_map(x, y) & 0xfffff)
+#define dvma_map_align_vme(x, y, z) (dvma_map_align (x, y, z) & 0xfffff)
extern unsigned long dvma_map_align(unsigned long kaddr, int len,
int align);
extern void *dvma_malloc_align(unsigned long len, unsigned long align);
@@ -52,6 +53,8 @@ extern void dvma_free(void *vaddr);
/* virt <-> phys conversions */
#define dvma_vtop(x) ((unsigned long)(x) & 0xffffff)
#define dvma_ptov(x) ((unsigned long)(x) | 0xf000000)
+#define dvma_vtovme(x) ((unsigned long)(x) & 0x00fffff)
+#define dvma_vmetov(x) ((unsigned long)(x) | 0xff00000)
#define dvma_vtob(x) dvma_vtop(x)
#define dvma_btov(x) dvma_ptov(x)
diff --git a/include/asm-m68k/sun3ints.h b/include/asm-m68k/sun3ints.h
index 1da84dfcd6d0..5ce63422c57a 100644
--- a/include/asm-m68k/sun3ints.h
+++ b/include/asm-m68k/sun3ints.h
@@ -39,5 +39,11 @@ extern int show_sun3_interrupts(struct seq_file *, void *);
extern void sun3_process_int(int, struct pt_regs *);
extern volatile unsigned char* sun3_intreg;
+/* master list of VME vectors -- don't fuck with this */
+#define SUN3_VEC_FLOPPY 0x40
+#define SUN3_VEC_VMESCSI0 0x40
+#define SUN3_VEC_VMESCSI1 0x41
+#define SUN3_VEC_CG 0xA8
+
#endif /* SUN3INTS_H */
diff --git a/include/asm-m68k/sun3mmu.h b/include/asm-m68k/sun3mmu.h
index bf9b0f26ba24..72e65f3ebe60 100644
--- a/include/asm-m68k/sun3mmu.h
+++ b/include/asm-m68k/sun3mmu.h
@@ -164,6 +164,7 @@ extern __inline__ void sun3_put_context(unsigned char c)
extern void *sun3_ioremap(unsigned long phys, unsigned long size,
unsigned long type);
+extern int sun3_map_test(unsigned long addr, char *val);
#endif /* !__ASSEMBLY__ */