root/include/asm-mips/floppy.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Architecture specific parts of the Floppy driver
   3  *
   4  * This file is subject to the terms and conditions of the GNU General Public
   5  * License.  See the file "COPYING" in the main directory of this archive
   6  * for more details.
   7  *
   8  * Copyright (C) 1995
   9  */
  10 #ifndef __ASM_MIPS_FLOPPY_H
  11 #define __ASM_MIPS_FLOPPY_H
  12 
  13 #include <asm/bootinfo.h>
  14 #include <asm/jazz.h>
  15 #include <asm/jazzdma.h>
  16 #include <asm/mipsconfig.h>
  17 #include <asm/vector.h>
  18 
  19 #define fd_inb(port)                    feature->fd_inb(port)
  20 #define fd_outb(value,port)             feature->fd_outb(value,port)
  21 
  22 #define fd_enable_dma()                 feature->fd_enable_dma()
  23 #define fd_disable_dma()                feature->fd_disable_dma()
  24 #define fd_request_dma()                feature->fd_request_dma()
  25 #define fd_free_dma()                   feature->fd_free_dma()
  26 #define fd_clear_dma_ff()               feature->fd_clear_dma_ff()
  27 #define fd_set_dma_mode(mode)           feature->fd_set_dma_mode(mode)
  28 #define fd_set_dma_addr(addr)           feature->fd_set_dma_addr(addr)
  29 #define fd_set_dma_count(count)         feature->fd_set_dma_count(count)
  30 #define fd_get_dma_residue()            feature->fd_get_dma_residue()
  31 #define fd_enable_irq()                 feature->fd_enable_irq()
  32 #define fd_disable_irq()                feature->fd_disable_irq()
  33 #define fd_cacheflush(addr, size)       feature->fd_cacheflush((void *)addr, size)
  34 #define fd_request_irq()        request_irq(FLOPPY_IRQ, floppy_interrupt, \
  35                                             SA_INTERRUPT|SA_SAMPLE_RANDOM, \
  36                                             "floppy")
  37 #define fd_free_irq()           free_irq(FLOPPY_IRQ);
  38 
  39 #define MAX_BUFFER_SECTORS 24
  40 #define virtual_dma_init()                                              \
  41         if (boot_info.machtype == MACH_ACER_PICA_61 ||                  \
  42             boot_info.machtype == MACH_MIPS_MAGNUM_4000 ||              \
  43             boot_info.machtype == MACH_OLIVETTI_M700)                   \
  44                 vdma_alloc(PHYSADDR(floppy_track_buffer),               \
  45                            512*2*MAX_BUFFER_SECTORS);
  46 
  47 /*
  48  * And on Mips's the CMOS info failes also ...
  49  *
  50  * FIXME: This information should come from the ARC configuration tree
  51  *        or whereever a parivular machine has stored this ...
  52  */
  53 #define FLOPPY0_TYPE 4          /* this is wrong for the Olli M700, but who cares... */
  54 #define FLOPPY1_TYPE 0
  55 
  56 #define FDC1                    ((boot_info.machtype == MACH_ACER_PICA_61 || \
  57                                 boot_info.machtype == MACH_MIPS_MAGNUM_4000 || \
  58                                 boot_info.machtype == MACH_OLIVETTI_M700) ? \
  59                                 0xe0003000 : 0x3f0)
  60 static int FDC2=-1;
  61 
  62 #define N_FDC 1                 /* do you *really* want a second controller? */
  63 #define N_DRIVE 8
  64 
  65 /*
  66  * The DMA channel used by the floppy controller cannot access data at
  67  * addresses >= 16MB
  68  *
  69  * Went back to the 1MB limit, as some people had problems with the floppy
  70  * driver otherwise. It doesn't matter much for performance anyway, as most
  71  * floppy accesses go through the track buffer.
  72  *
  73  * On MIPSes using vdma, this actually means that *all* transfers go thru
  74  * the * track buffer since 0x1000000 is always smaller than KSEG0/1.
  75  * Actually this needs to be a bit more complicated since the so much different
  76  * hardware available with MIPS CPUs ...
  77  */
  78 #define CROSS_64KB(a,s) ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64)
  79 
  80 #endif /* __ASM_MIPS_FLOPPY_H */

/* [previous][next][first][last][top][bottom][index][help] */