|
|
1.1 root 1: /* ESP DMA control and status registers */
2:
3: struct {
4: Uint8 control;
5: Uint8 status;
6: } esp_dma;
7:
8: #define ESPCTRL_CLKMASK 0xc0 /* clock selection bits */
9: #define ESPCTRL_CLK10MHz 0x00
10: #define ESPCTRL_CLK12MHz 0x40
11: #define ESPCTRL_CLK16MHz 0xc0
12: #define ESPCTRL_CLK20MHz 0x80
13: #define ESPCTRL_ENABLE_INT 0x20 /* enable ESP interrupt */
14: #define ESPCTRL_MODE_DMA 0x10 /* select mode: 1 = dma, 0 = pio */
15: #define ESPCTRL_DMA_READ 0x08 /* select direction: 1 = scsi>mem, 0 = mem>scsi */
16: #define ESPCTRL_FLUSH 0x04 /* flush DMA buffer */
17: #define ESPCTRL_RESET 0x02 /* hard reset ESP */
18: #define ESPCTRL_CHIP_TYPE 0x01 /* select chip type: 1 = WD33C92, 0 = NCR53C90(A) */
19:
20: #define ESPSTAT_STATE_MASK 0xc0
21: #define ESPSTAT_STATE_D0S0 0x00 /* DMA ready for buffer 0, SCSI in buffer 0 */
22: #define ESPSTAT_STATE_D0S1 0x40 /* DMA request for buffer 0, SCSI in buffer 1 */
23: #define ESPSTAT_STATE_D1S1 0x80 /* DMA ready for buffer 1, SCSI in buffer 1 */
24: #define ESPSTAT_STATE_D1S0 0xc0 /* DMA request for buffer 1, SCSI in buffer 0 */
25: #define ESPSTAT_OUTFIFO_MSK 0x38 /* output fifo byte (inverted) */
26: #define ESPSTAT_INFIFO_MSK 0x07 /* input fifo byte (inverted) */
27:
28:
29: void ESP_DMA_CTRL_Read(void);
30: void ESP_DMA_CTRL_Write(void);
31: void ESP_DMA_FIFO_STAT_Read(void);
32: void ESP_DMA_FIFO_STAT_Write(void);
33:
34: void ESP_DMA_set_status(void);
35:
36:
37:
38: void ESP_TransCountL_Read(void);
39: void ESP_TransCountL_Write(void);
40: void ESP_TransCountH_Read(void);
41: void ESP_TransCountH_Write(void);
42: void ESP_FIFO_Read(void);
43: void ESP_FIFO_Write(void);
44: void ESP_Command_Read(void);
45: void ESP_Command_Write(void);
46: void ESP_Status_Read(void);
47: void ESP_SelectBusID_Write(void);
48: void ESP_IntStatus_Read(void);
49: void ESP_SelectTimeout_Write(void);
50: void ESP_SeqStep_Read(void);
51: void ESP_SyncPeriod_Write(void);
52: void ESP_FIFOflags_Read(void);
53: void ESP_SyncOffset_Write(void);
54: void ESP_Configuration_Read(void);
55: void ESP_Configuration_Write(void);
56: void ESP_ClockConv_Write(void);
57: void ESP_Test_Write(void);
58:
59: void ESP_Conf2_Read(void);
60:
61: void esp_reset_hard(void);
62: void esp_reset_soft(void);
63: void esp_bus_reset(void);
64: void esp_flush_fifo(void);
65:
66: void esp_message_accepted(void);
67: void esp_initiator_command_complete(void);
68: void esp_transfer_info(void);
69: void esp_transfer_pad(void);
70: void esp_select(bool atn);
71:
72: void esp_raise_irq(void);
73: void esp_lower_irq(void);
74:
75: bool esp_transfer_done(bool write);
76:
77:
78: extern Uint32 esp_counter;
79:
80: void ESP_InterruptHandler(void);
81: void ESP_IO_Handler(void);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.