OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [scsi/] [blz2060.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* blz2060.h: Defines and structures for the Blizzard 2060 SCSI driver.
2
 *
3
 * Copyright (C) 1996 Jesper Skov (jskov@cygnus.co.uk)
4
 *
5
 * This file is based on cyber_esp.h (hence the occasional reference to
6
 * CyberStorm).
7
 */
8
 
9
#include "NCR53C9x.h"
10
 
11
#ifndef BLZ2060_H
12
#define BLZ2060_H
13
 
14
/* The controller registers can be found in the Z2 config area at these
15
 * offsets:
16
 */
17
#define BLZ2060_ESP_ADDR 0x1ff00
18
#define BLZ2060_DMA_ADDR 0x1ffe0
19
 
20
 
21
/* The Blizzard 2060 DMA interface
22
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23
 * Only two things can be programmed in the Blizzard DMA:
24
 *  1) The data direction is controlled by the status of bit 31 (1 = write)
25
 *  2) The source/dest address (word aligned, shifted one right) in bits 30-0
26
 *
27
 * Figure out interrupt status by reading the ESP status byte.
28
 */
29
struct blz2060_dma_registers {
30
        volatile unsigned char dma_led_ctrl;    /* DMA led control   [0x000] */
31
        unsigned char dmapad1[0x0f];
32
        volatile unsigned char dma_addr0;       /* DMA address (MSB) [0x010] */
33
        unsigned char dmapad2[0x03];
34
        volatile unsigned char dma_addr1;       /* DMA address       [0x014] */
35
        unsigned char dmapad3[0x03];
36
        volatile unsigned char dma_addr2;       /* DMA address       [0x018] */
37
        unsigned char dmapad4[0x03];
38
        volatile unsigned char dma_addr3;       /* DMA address (LSB) [0x01c] */
39
};
40
 
41
#define BLZ2060_DMA_WRITE 0x80000000
42
 
43
/* DMA control bits */
44
#define BLZ2060_DMA_LED    0x02         /* HD led control 1 = off */
45
 
46
extern int blz2060_esp_detect(struct SHT *);
47
extern int blz2060_esp_release(struct Scsi_Host *);
48
extern const char *esp_info(struct Scsi_Host *);
49
extern int esp_queue(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
50
extern int esp_command(Scsi_Cmnd *);
51
extern int esp_abort(Scsi_Cmnd *);
52
extern int esp_reset(Scsi_Cmnd *, unsigned int);
53
extern int esp_proc_info(char *buffer, char **start, off_t offset, int length,
54
                         int hostno, int inout);
55
 
56
#define SCSI_BLZ2060      { proc_name:          "esp-blz2060", \
57
                            proc_info:          esp_proc_info, \
58
                            name:               "Blizzard2060 SCSI", \
59
                            detect:             blz2060_esp_detect, \
60
                            release:            blz2060_esp_release, \
61
                            queuecommand:       esp_queue, \
62
                            abort:              esp_abort, \
63
                            reset:              esp_reset, \
64
                            can_queue:          7, \
65
                            this_id:            7, \
66
                            sg_tablesize:       SG_ALL, \
67
                            cmd_per_lun:        1, \
68
                            use_clustering:     ENABLE_CLUSTERING }
69
 
70
#endif /* BLZ2060_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.