]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Include/IndustryStandard/LsiScsi.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / Include / IndustryStandard / LsiScsi.h
1 /** @file
2
3 Macros and type definitions for LSI 53C895A SCSI devices.
4
5 Copyright (C) 2020, SUSE LLC.
6
7 SPDX-License-Identifier: BSD-2-Clause-Patent
8
9 **/
10
11 #ifndef _LSI_SCSI_H_
12 #define _LSI_SCSI_H_
13
14 //
15 // Device ID
16 //
17 #define LSI_LOGIC_PCI_VENDOR_ID 0x1000
18 #define LSI_53C895A_PCI_DEVICE_ID 0x0012
19
20 //
21 // LSI 53C895A Registers
22 //
23 #define LSI_REG_DSTAT 0x0C
24 #define LSI_REG_ISTAT0 0x14
25 #define LSI_REG_DSP 0x2C
26 #define LSI_REG_SIST0 0x42
27 #define LSI_REG_SIST1 0x43
28 #define LSI_REG_CSBC 0xDC
29
30 //
31 // The status bits for DMA Status (DSTAT)
32 //
33 #define LSI_DSTAT_IID BIT0
34 #define LSI_DSTAT_R BIT1
35 #define LSI_DSTAT_SIR BIT2
36 #define LSI_DSTAT_SSI BIT3
37 #define LSI_DSTAT_ABRT BIT4
38 #define LSI_DSTAT_BF BIT5
39 #define LSI_DSTAT_MDPE BIT6
40 #define LSI_DSTAT_DFE BIT7
41
42 //
43 // The status bits for Interrupt Status Zero (ISTAT0)
44 //
45 #define LSI_ISTAT0_DIP BIT0
46 #define LSI_ISTAT0_SIP BIT1
47 #define LSI_ISTAT0_INTF BIT2
48 #define LSI_ISTAT0_CON BIT3
49 #define LSI_ISTAT0_SEM BIT4
50 #define LSI_ISTAT0_SIGP BIT5
51 #define LSI_ISTAT0_SRST BIT6
52 #define LSI_ISTAT0_ABRT BIT7
53
54 //
55 // The status bits for SCSI Interrupt Status Zero (SIST0)
56 //
57 #define LSI_SIST0_PAR BIT0
58 #define LSI_SIST0_RST BIT1
59 #define LSI_SIST0_UDC BIT2
60 #define LSI_SIST0_SGE BIT3
61 #define LSI_SIST0_RSL BIT4
62 #define LSI_SIST0_SEL BIT5
63 #define LSI_SIST0_CMP BIT6
64 #define LSI_SIST0_MA BIT7
65
66 //
67 // The status bits for SCSI Interrupt Status One (SIST1)
68 //
69 #define LSI_SIST1_HTH BIT0
70 #define LSI_SIST1_GEN BIT1
71 #define LSI_SIST1_STO BIT2
72 #define LSI_SIST1_R3 BIT3
73 #define LSI_SIST1_SBMC BIT4
74 #define LSI_SIST1_R5 BIT5
75 #define LSI_SIST1_R6 BIT6
76 #define LSI_SIST1_R7 BIT7
77
78 //
79 // LSI 53C895A Script Instructions
80 //
81 #define LSI_INS_TYPE_BLK 0x00000000
82 #define LSI_INS_TYPE_IO BIT30
83 #define LSI_INS_TYPE_TC BIT31
84
85 #define LSI_INS_BLK_SCSIP_DAT_OUT 0x00000000
86 #define LSI_INS_BLK_SCSIP_DAT_IN BIT24
87 #define LSI_INS_BLK_SCSIP_CMD BIT25
88 #define LSI_INS_BLK_SCSIP_STAT (BIT24 | BIT25)
89 #define LSI_INS_BLK_SCSIP_MSG_OUT (BIT25 | BIT26)
90 #define LSI_INS_BLK_SCSIP_MSG_IN (BIT24 | BIT25 | BIT26)
91
92 #define LSI_INS_IO_OPC_SEL 0x00000000
93 #define LSI_INS_IO_OPC_WAIT_RESEL BIT28
94
95 #define LSI_INS_TC_CP BIT17
96 #define LSI_INS_TC_JMP BIT19
97 #define LSI_INS_TC_RA BIT23
98
99 #define LSI_INS_TC_OPC_JMP 0x00000000
100 #define LSI_INS_TC_OPC_INT (BIT27 | BIT28)
101
102 #define LSI_INS_TC_SCSIP_DAT_OUT 0x00000000
103 #define LSI_INS_TC_SCSIP_MSG_IN (BIT24 | BIT25 | BIT26)
104
105 #endif // _LSI_SCSI_H_