x393  1.0
FPGAcodeforElphelNC393camera
ahci_localparams.vh
Go to the documentation of this file.
1 // RO: Device ID
2  localparam PCI_Header__ID__DID__ADDR = 'h60;
3  localparam PCI_Header__ID__DID__MASK = 'hffff0000;
4  localparam PCI_Header__ID__DID__DFLT = 'h10000;
5 // RO: Vendor ID
6  localparam PCI_Header__ID__VID__ADDR = 'h60;
7  localparam PCI_Header__ID__VID__MASK = 'hffff;
8  localparam PCI_Header__ID__VID__DFLT = 'hfffe;
9 // RW: HBA Interrupt Disable
10  localparam PCI_Header__CMD__ID__ADDR = 'h61;
11  localparam PCI_Header__CMD__ID__MASK = 'h400;
12  localparam PCI_Header__CMD__ID__DFLT = 'h0;
13 // RO: Fast Back-to-Back Enable
14  localparam PCI_Header__CMD__FBE__ADDR = 'h61;
15  localparam PCI_Header__CMD__FBE__MASK = 'h200;
16  localparam PCI_Header__CMD__FBE__DFLT = 'h0;
17 // RO: SERR Enable
18  localparam PCI_Header__CMD__SEE__ADDR = 'h61;
19  localparam PCI_Header__CMD__SEE__MASK = 'h100;
20  localparam PCI_Header__CMD__SEE__DFLT = 'h0;
21 // RO: Reserved
22  localparam PCI_Header__CMD__WCC__ADDR = 'h61;
23  localparam PCI_Header__CMD__WCC__MASK = 'h80;
24  localparam PCI_Header__CMD__WCC__DFLT = 'h0;
25 // RO: Parity Error Response Enable
26  localparam PCI_Header__CMD__PEE__ADDR = 'h61;
27  localparam PCI_Header__CMD__PEE__MASK = 'h40;
28  localparam PCI_Header__CMD__PEE__DFLT = 'h0;
29 // RO: Reserved
30  localparam PCI_Header__CMD__VGA__ADDR = 'h61;
31  localparam PCI_Header__CMD__VGA__MASK = 'h20;
32  localparam PCI_Header__CMD__VGA__DFLT = 'h0;
33 // RO: Reserved
34  localparam PCI_Header__CMD__MWIE__ADDR = 'h61;
35  localparam PCI_Header__CMD__MWIE__MASK = 'h10;
36  localparam PCI_Header__CMD__MWIE__DFLT = 'h0;
37 // RO: Reserved
38  localparam PCI_Header__CMD__SCE__ADDR = 'h61;
39  localparam PCI_Header__CMD__SCE__MASK = 'h8;
40  localparam PCI_Header__CMD__SCE__DFLT = 'h0;
41 // RW: Bus Master Enable (0 - stops any DMA)
42  localparam PCI_Header__CMD__BME__ADDR = 'h61;
43  localparam PCI_Header__CMD__BME__MASK = 'h4;
44  localparam PCI_Header__CMD__BME__DFLT = 'h0;
45 // RW: Memory Space enable (here - always?)
46  localparam PCI_Header__CMD__MSE__ADDR = 'h61;
47  localparam PCI_Header__CMD__MSE__MASK = 'h2;
48  localparam PCI_Header__CMD__MSE__DFLT = 'h0;
49 // RO: Enable IO space access (only for legacy IDE)
50  localparam PCI_Header__CMD__IOSE__ADDR = 'h61;
51  localparam PCI_Header__CMD__IOSE__MASK = 'h1;
52  localparam PCI_Header__CMD__IOSE__DFLT = 'h0;
53 // RWC: Detected Parity Error
54  localparam PCI_Header__STS__DPE__ADDR = 'h61;
55  localparam PCI_Header__STS__DPE__MASK = 'h80000000;
56  localparam PCI_Header__STS__DPE__DFLT = 'h0;
57 // RWC: Signaled System Error (HBA SERR)
58  localparam PCI_Header__STS__SSE__ADDR = 'h61;
59  localparam PCI_Header__STS__SSE__MASK = 'h40000000;
60  localparam PCI_Header__STS__SSE__DFLT = 'h0;
61 // RWC: Received Master Abort
62  localparam PCI_Header__STS__RMA__ADDR = 'h61;
63  localparam PCI_Header__STS__RMA__MASK = 'h20000000;
64  localparam PCI_Header__STS__RMA__DFLT = 'h0;
65 // RWC: Received Target Abort
66  localparam PCI_Header__STS__RTA__ADDR = 'h61;
67  localparam PCI_Header__STS__RTA__MASK = 'h10000000;
68  localparam PCI_Header__STS__RTA__DFLT = 'h0;
69 // RWC: Signaled Target Abort
70  localparam PCI_Header__STS__STA__ADDR = 'h61;
71  localparam PCI_Header__STS__STA__MASK = 'h8000000;
72  localparam PCI_Header__STS__STA__DFLT = 'h0;
73 // RO: PCI DEVSEL Timing
74  localparam PCI_Header__STS__DEVT__ADDR = 'h61;
75  localparam PCI_Header__STS__DEVT__MASK = 'h6000000;
76  localparam PCI_Header__STS__DEVT__DFLT = 'h0;
77 // RWC: Master Data Parity Error Detected
78  localparam PCI_Header__STS__DPD__ADDR = 'h61;
79  localparam PCI_Header__STS__DPD__MASK = 'h1000000;
80  localparam PCI_Header__STS__DPD__DFLT = 'h0;
81 // RO: Fast Back-To-Back Capable
82  localparam PCI_Header__STS__FBC__ADDR = 'h61;
83  localparam PCI_Header__STS__FBC__MASK = 'h800000;
84  localparam PCI_Header__STS__FBC__DFLT = 'h0;
85 // RO: 66 MHz Capable
86  localparam PCI_Header__STS__C66__ADDR = 'h61;
87  localparam PCI_Header__STS__C66__MASK = 'h200000;
88  localparam PCI_Header__STS__C66__DFLT = 'h0;
89 // RO: Capabilities List (PCI power management mandatory)
90  localparam PCI_Header__STS__CL__ADDR = 'h61;
91  localparam PCI_Header__STS__CL__MASK = 'h100000;
92  localparam PCI_Header__STS__CL__DFLT = 'h100000;
93 // RO: Interrupt Status (1 - asserted)
94  localparam PCI_Header__STS__IS__ADDR = 'h61;
95  localparam PCI_Header__STS__IS__MASK = 'h80000;
96  localparam PCI_Header__STS__IS__DFLT = 'h0;
97 // RO: HBA Revision ID
98  localparam PCI_Header__RID__RID__ADDR = 'h62;
99  localparam PCI_Header__RID__RID__MASK = 'hff;
100  localparam PCI_Header__RID__RID__DFLT = 'h2;
101 // RO: Base Class Code: 1 - Mass Storage Device
102  localparam PCI_Header__CC__BCC__ADDR = 'h62;
103  localparam PCI_Header__CC__BCC__MASK = 'hff000000;
104  localparam PCI_Header__CC__BCC__DFLT = 'h1000000;
105 // RO: Sub Class Code: 0x06 - SATA Device
106  localparam PCI_Header__CC__SCC__ADDR = 'h62;
107  localparam PCI_Header__CC__SCC__MASK = 'hff0000;
108  localparam PCI_Header__CC__SCC__DFLT = 'h60000;
109 // RO: Programming Interface: 1 - AHCI HBA major rev 1
110  localparam PCI_Header__CC__PI__ADDR = 'h62;
111  localparam PCI_Header__CC__PI__MASK = 'hff0000;
112  localparam PCI_Header__CC__PI__DFLT = 'h10000;
113 // RW: Cache Line Size
114  localparam PCI_Header__CLS__CLS__ADDR = 'h63;
115  localparam PCI_Header__CLS__CLS__MASK = 'hff;
116  localparam PCI_Header__CLS__CLS__DFLT = 'h0;
117 // RW: Master Latency Timer
118  localparam PCI_Header__MLT__MLT__ADDR = 'h63;
119  localparam PCI_Header__MLT__MLT__MASK = 'hff00;
120  localparam PCI_Header__MLT__MLT__DFLT = 'h0;
121 // RO: Multi-Function Device
122  localparam PCI_Header__HTYPE__MFDT__ADDR = 'h63;
123  localparam PCI_Header__HTYPE__MFDT__MASK = 'h8000;
124  localparam PCI_Header__HTYPE__MFDT__DFLT = 'h0;
125 // RO: Header Layout 0 - HBA uses a target device layout
126  localparam PCI_Header__HTYPE__HL__ADDR = 'h63;
127  localparam PCI_Header__HTYPE__HL__MASK = 'h7f00;
128  localparam PCI_Header__HTYPE__HL__DFLT = 'h0;
129 // RO: AHCI Base Address high bits, normally RW, but here RO to get to MAXIGP1 space
130  localparam PCI_Header__ABAR__BA__ADDR = 'h69;
131  localparam PCI_Header__ABAR__BA__MASK = 'hfffffff0;
132  localparam PCI_Header__ABAR__BA__DFLT = 'h80000000;
133 // RO: Prefetchable (this is not)
134  localparam PCI_Header__ABAR__PF__ADDR = 'h69;
135  localparam PCI_Header__ABAR__PF__MASK = 'h8;
136  localparam PCI_Header__ABAR__PF__DFLT = 'h0;
137 // RO: Type (0 - any 32-bit address, here it is hard-mapped
138  localparam PCI_Header__ABAR__TP__ADDR = 'h69;
139  localparam PCI_Header__ABAR__TP__MASK = 'h6;
140  localparam PCI_Header__ABAR__TP__DFLT = 'h0;
141 // RO: Resource Type Indicator: 0 - memory address
142  localparam PCI_Header__ABAR__RTE__ADDR = 'h69;
143  localparam PCI_Header__ABAR__RTE__MASK = 'h1;
144  localparam PCI_Header__ABAR__RTE__DFLT = 'h0;
145 // RO: SubSystem ID
146  localparam PCI_Header__SS__SSID__ADDR = 'h6b;
147  localparam PCI_Header__SS__SSID__MASK = 'hffff0000;
148  localparam PCI_Header__SS__SSID__DFLT = 'h10000;
149 // RO: SubSystem Vendor ID
150  localparam PCI_Header__SS__SSVID__ADDR = 'h6b;
151  localparam PCI_Header__SS__SSVID__MASK = 'hffff;
152  localparam PCI_Header__SS__SSVID__DFLT = 'hfffe;
153 // RO: ROM Base Address
154  localparam PCI_Header__EROM__RBA__ADDR = 'h6c;
155  localparam PCI_Header__EROM__RBA__MASK = 'hffffffff;
156  localparam PCI_Header__EROM__RBA__DFLT = 'h0;
157 // RO: Capabilities pointer
158  localparam PCI_Header__CAP__CAP__ADDR = 'h6d;
159  localparam PCI_Header__CAP__CAP__MASK = 'hff;
160  localparam PCI_Header__CAP__CAP__DFLT = 'h40;
161 // RO: Interrupt pin
162  localparam PCI_Header__INTR__IPIN__ADDR = 'h6f;
163  localparam PCI_Header__INTR__IPIN__MASK = 'hff00;
164  localparam PCI_Header__INTR__IPIN__DFLT = 'h100;
165 // RW: Interrupt Line
166  localparam PCI_Header__INTR__ILINE__ADDR = 'h6f;
167  localparam PCI_Header__INTR__ILINE__MASK = 'hff;
168  localparam PCI_Header__INTR__ILINE__DFLT = 'h0;
169 // RO: Minimal Grant
170  localparam PCI_Header__MGNT__MGNT__ADDR = 'h6f;
171  localparam PCI_Header__MGNT__MGNT__MASK = 'hff0000;
172  localparam PCI_Header__MGNT__MGNT__DFLT = 'h0;
173 // RO: Maximal Latency
174  localparam PCI_Header__MLAT__MLAT__ADDR = 'h6f;
175  localparam PCI_Header__MLAT__MLAT__MASK = 'hff000000;
176  localparam PCI_Header__MLAT__MLAT__DFLT = 'h0;
177 // RO: Next Capability pointer
178  localparam PMCAP__PID__NEXT__ADDR = 'h70;
179  localparam PMCAP__PID__NEXT__MASK = 'hff00;
180  localparam PMCAP__PID__NEXT__DFLT = 'h0;
181 // RO: This is PCI Power Management Capability
182  localparam PMCAP__PID__CID__ADDR = 'h70;
183  localparam PMCAP__PID__CID__MASK = 'hff;
184  localparam PMCAP__PID__CID__DFLT = 'h1;
185 // RO: PME_SUPPORT bits:'b01000
186  localparam PMCAP__PC__PSUP__ADDR = 'h70;
187  localparam PMCAP__PC__PSUP__MASK = 'hf8000000;
188  localparam PMCAP__PC__PSUP__DFLT = 'h40000000;
189 // RO: D2 Support - no
190  localparam PMCAP__PC__D2S__ADDR = 'h70;
191  localparam PMCAP__PC__D2S__MASK = 'h4000000;
192  localparam PMCAP__PC__D2S__DFLT = 'h0;
193 // RO: D1 Support - no
194  localparam PMCAP__PC__D1S__ADDR = 'h70;
195  localparam PMCAP__PC__D1S__MASK = 'h2000000;
196  localparam PMCAP__PC__D1S__DFLT = 'h0;
197 // RO: Maximal D3cold current
198  localparam PMCAP__PC__AUXC__ADDR = 'h70;
199  localparam PMCAP__PC__AUXC__MASK = 'h1c00000;
200  localparam PMCAP__PC__AUXC__DFLT = 'h0;
201 // RO: Device-specific initialization required
202  localparam PMCAP__PC__DSI__ADDR = 'h70;
203  localparam PMCAP__PC__DSI__MASK = 'h200000;
204  localparam PMCAP__PC__DSI__DFLT = 'h0;
205 // RO: PCI clock required to generate PME
206  localparam PMCAP__PC__PMEC__ADDR = 'h70;
207  localparam PMCAP__PC__PMEC__MASK = 'h80000;
208  localparam PMCAP__PC__PMEC__DFLT = 'h0;
209 // RO: Revision of Power Management Specification support version
210  localparam PMCAP__PC__VS__ADDR = 'h70;
211  localparam PMCAP__PC__VS__MASK = 'h70000;
212  localparam PMCAP__PC__VS__DFLT = 'h0;
213 // RWC: PME Status, set by hardware when HBA generates PME
214  localparam PMCAP__PMCS__PMES__ADDR = 'h71;
215  localparam PMCAP__PMCS__PMES__MASK = 'h8000;
216  localparam PMCAP__PMCS__PMES__DFLT = 'h0;
217 // RW: PME Enable
218  localparam PMCAP__PMCS__PMEE__ADDR = 'h71;
219  localparam PMCAP__PMCS__PMEE__MASK = 'h100;
220  localparam PMCAP__PMCS__PMEE__DFLT = 'h0;
221 // RW: Power State
222  localparam PMCAP__PMCS__PS__ADDR = 'h71;
223  localparam PMCAP__PMCS__PS__MASK = 'h3;
224  localparam PMCAP__PMCS__PS__DFLT = 'h0;
225 // RO: Supports 64-bit Addressing - no
226  localparam GHC__CAP__S64A__ADDR = 'h0;
227  localparam GHC__CAP__S64A__MASK = 'h80000000;
228  localparam GHC__CAP__S64A__DFLT = 'h0;
229 // RO: Supports Native Command Queuing - no
230  localparam GHC__CAP__SNCQ__ADDR = 'h0;
231  localparam GHC__CAP__SNCQ__MASK = 'h40000000;
232  localparam GHC__CAP__SNCQ__DFLT = 'h0;
233 // RO: Supports SNotification Register - no
234  localparam GHC__CAP__SSNTF__ADDR = 'h0;
235  localparam GHC__CAP__SSNTF__MASK = 'h20000000;
236  localparam GHC__CAP__SSNTF__DFLT = 'h0;
237 // RO: Supports Mechanical Presence Switch - no
238  localparam GHC__CAP__SMPS__ADDR = 'h0;
239  localparam GHC__CAP__SMPS__MASK = 'h10000000;
240  localparam GHC__CAP__SMPS__DFLT = 'h0;
241 // RO: Supports Staggered Spin-up - no
242  localparam GHC__CAP__SSS__ADDR = 'h0;
243  localparam GHC__CAP__SSS__MASK = 'h8000000;
244  localparam GHC__CAP__SSS__DFLT = 'h0;
245 // RO: Supports Aggressive Link Power Management - no
246  localparam GHC__CAP__SALP__ADDR = 'h0;
247  localparam GHC__CAP__SALP__MASK = 'h4000000;
248  localparam GHC__CAP__SALP__DFLT = 'h0;
249 // RO: Supports Activity LED - no
250  localparam GHC__CAP__SAL__ADDR = 'h0;
251  localparam GHC__CAP__SAL__MASK = 'h2000000;
252  localparam GHC__CAP__SAL__DFLT = 'h0;
253 // RO: Supports Command List Override - no (not capable of clearing BSY and DRQ bits, needs soft reset
254  localparam GHC__CAP__SCLO__ADDR = 'h0;
255  localparam GHC__CAP__SCLO__MASK = 'h1000000;
256  localparam GHC__CAP__SCLO__DFLT = 'h0;
257 // RO: Interface Maximal speed: 2 - Gen2, 3 - Gen3
258  localparam GHC__CAP__ISS__ADDR = 'h0;
259  localparam GHC__CAP__ISS__MASK = 'hf00000;
260  localparam GHC__CAP__ISS__DFLT = 'h200000;
261 // RO: AHCI only (0 - legacy too)
262  localparam GHC__CAP__SAM__ADDR = 'h0;
263  localparam GHC__CAP__SAM__MASK = 'h40000;
264  localparam GHC__CAP__SAM__DFLT = 'h40000;
265 // RO: Supports Port Multiplier - no
266  localparam GHC__CAP__SPM__ADDR = 'h0;
267  localparam GHC__CAP__SPM__MASK = 'h20000;
268  localparam GHC__CAP__SPM__DFLT = 'h0;
269 // RO: Supports FIS-based switching of the Port Multiplier - no
270  localparam GHC__CAP__FBSS__ADDR = 'h0;
271  localparam GHC__CAP__FBSS__MASK = 'h10000;
272  localparam GHC__CAP__FBSS__DFLT = 'h0;
273 // RO: PIO Multiple DRQ block - no
274  localparam GHC__CAP__PMD__ADDR = 'h0;
275  localparam GHC__CAP__PMD__MASK = 'h8000;
276  localparam GHC__CAP__PMD__DFLT = 'h0;
277 // RO: Slumber State Capable - no
278  localparam GHC__CAP__SSC__ADDR = 'h0;
279  localparam GHC__CAP__SSC__MASK = 'h4000;
280  localparam GHC__CAP__SSC__DFLT = 'h0;
281 // RO: Partial State Capable - no
282  localparam GHC__CAP__PSC__ADDR = 'h0;
283  localparam GHC__CAP__PSC__MASK = 'h2000;
284  localparam GHC__CAP__PSC__DFLT = 'h0;
285 // RO: Number of Command Slots, 0-based (0 means 1?)
286  localparam GHC__CAP__NSC__ADDR = 'h0;
287  localparam GHC__CAP__NSC__MASK = 'h1f00;
288  localparam GHC__CAP__NSC__DFLT = 'h0;
289 // RO: Command Completion Coalescing - no
290  localparam GHC__CAP__CCCS__ADDR = 'h0;
291  localparam GHC__CAP__CCCS__MASK = 'h80;
292  localparam GHC__CAP__CCCS__DFLT = 'h0;
293 // RO: Enclosure Management - no
294  localparam GHC__CAP__EMS__ADDR = 'h0;
295  localparam GHC__CAP__EMS__MASK = 'h40;
296  localparam GHC__CAP__EMS__DFLT = 'h0;
297 // RO: External SATA connector - yes
298  localparam GHC__CAP__SXS__ADDR = 'h0;
299  localparam GHC__CAP__SXS__MASK = 'h20;
300  localparam GHC__CAP__SXS__DFLT = 'h20;
301 // RO: Number of Ports, 0-based (0 means 1?)
302  localparam GHC__CAP__NP__ADDR = 'h0;
303  localparam GHC__CAP__NP__MASK = 'h1f;
304  localparam GHC__CAP__NP__DFLT = 'h0;
305 // RO: AHCI enable (0 - legacy)
306  localparam GHC__GHC__AE__ADDR = 'h1;
307  localparam GHC__GHC__AE__MASK = 'h80000000;
308  localparam GHC__GHC__AE__DFLT = 'h80000000;
309 // RO: MSI Revert to Single Message
310  localparam GHC__GHC__MRSM__ADDR = 'h1;
311  localparam GHC__GHC__MRSM__MASK = 'h4;
312  localparam GHC__GHC__MRSM__DFLT = 'h0;
313 // RW: Interrupt Enable (all ports)
314  localparam GHC__GHC__IE__ADDR = 'h1;
315  localparam GHC__GHC__IE__MASK = 'h2;
316  localparam GHC__GHC__IE__DFLT = 'h0;
317 // RW1: HBA reset (COMINIT, ...). Set by software, cleared by hardware, section 10.4.3
318  localparam GHC__GHC__HR__ADDR = 'h1;
319  localparam GHC__GHC__HR__MASK = 'h1;
320  localparam GHC__GHC__HR__DFLT = 'h0;
321 // RWC: Interrupt Pending Status (per port)
322  localparam GHC__IS__IPS__ADDR = 'h2;
323  localparam GHC__IS__IPS__MASK = 'hffffffff;
324  localparam GHC__IS__IPS__DFLT = 'h0;
325 // RO: Ports Implemented
326  localparam GHC__PI__PI__ADDR = 'h3;
327  localparam GHC__PI__PI__MASK = 'hffffffff;
328  localparam GHC__PI__PI__DFLT = 'h1;
329 // RO: AHCI Major Version 1.
330  localparam GHC__VS__MJR__ADDR = 'h4;
331  localparam GHC__VS__MJR__MASK = 'hffff0000;
332  localparam GHC__VS__MJR__DFLT = 'h10000;
333 // RO: AHCI Minor Version 3.1
334  localparam GHC__VS__MNR__ADDR = 'h4;
335  localparam GHC__VS__MNR__MASK = 'hffff;
336  localparam GHC__VS__MNR__DFLT = 'h301;
337 // RO: DevSleep Entrance from Slumber Only
338  localparam GHC__CAP2__DESO__ADDR = 'h9;
339  localparam GHC__CAP2__DESO__MASK = 'h20;
340  localparam GHC__CAP2__DESO__DFLT = 'h0;
341 // RO: Supports Aggressive Device Sleep Management
342  localparam GHC__CAP2__SADM__ADDR = 'h9;
343  localparam GHC__CAP2__SADM__MASK = 'h10;
344  localparam GHC__CAP2__SADM__DFLT = 'h0;
345 // RO: Supports Device Sleep
346  localparam GHC__CAP2__SDS__ADDR = 'h9;
347  localparam GHC__CAP2__SDS__MASK = 'h8;
348  localparam GHC__CAP2__SDS__DFLT = 'h0;
349 // RO: Automatic Partial to Slumber Transitions
350  localparam GHC__CAP2__APST__ADDR = 'h9;
351  localparam GHC__CAP2__APST__MASK = 'h4;
352  localparam GHC__CAP2__APST__DFLT = 'h0;
353 // RO: NVMHCI Present (section 10.15)
354  localparam GHC__CAP2__NVMP__ADDR = 'h9;
355  localparam GHC__CAP2__NVMP__MASK = 'h2;
356  localparam GHC__CAP2__NVMP__DFLT = 'h0;
357 // RO: BIOS/OS Handoff - not supported
358  localparam GHC__CAP2__BOH__ADDR = 'h9;
359  localparam GHC__CAP2__BOH__MASK = 'h1;
360  localparam GHC__CAP2__BOH__DFLT = 'h0;
361 // RW: Command List Base Address (1KB aligned)
362  localparam HBA_PORT__PxCLB__CLB__ADDR = 'h40;
363  localparam HBA_PORT__PxCLB__CLB__MASK = 'hfffffc00;
364  localparam HBA_PORT__PxCLB__CLB__DFLT = 'h80000800;
365 // RW: Command List Base Address (1KB aligned)
366  localparam HBA_PORT__PxFB__CLB__ADDR = 'h42;
367  localparam HBA_PORT__PxFB__CLB__MASK = 'hffffff00;
368  localparam HBA_PORT__PxFB__CLB__DFLT = 'h80000c00;
369 // RWC: Cold Port Detect Status
370  localparam HBA_PORT__PxIS__CPDS__ADDR = 'h44;
371  localparam HBA_PORT__PxIS__CPDS__MASK = 'h80000000;
372  localparam HBA_PORT__PxIS__CPDS__DFLT = 'h0;
373 // RWC: Task File Error Status
374  localparam HBA_PORT__PxIS__TFES__ADDR = 'h44;
375  localparam HBA_PORT__PxIS__TFES__MASK = 'h40000000;
376  localparam HBA_PORT__PxIS__TFES__DFLT = 'h0;
377 // RWC: Host Bus (PCI) Fatal error
378  localparam HBA_PORT__PxIS__HBFS__ADDR = 'h44;
379  localparam HBA_PORT__PxIS__HBFS__MASK = 'h20000000;
380  localparam HBA_PORT__PxIS__HBFS__DFLT = 'h0;
381 // RWC: ECC error R/W system memory
382  localparam HBA_PORT__PxIS__HBDS__ADDR = 'h44;
383  localparam HBA_PORT__PxIS__HBDS__MASK = 'h10000000;
384  localparam HBA_PORT__PxIS__HBDS__DFLT = 'h0;
385 // RWC: Interface Fatal Error Status (sect. 6.1.2)
386  localparam HBA_PORT__PxIS__IFS__ADDR = 'h44;
387  localparam HBA_PORT__PxIS__IFS__MASK = 'h8000000;
388  localparam HBA_PORT__PxIS__IFS__DFLT = 'h0;
389 // RWC: Interface Non-Fatal Error Status (sect. 6.1.2)
390  localparam HBA_PORT__PxIS__INFS__ADDR = 'h44;
391  localparam HBA_PORT__PxIS__INFS__MASK = 'h4000000;
392  localparam HBA_PORT__PxIS__INFS__DFLT = 'h0;
393 // RWC: Overflow Status
394  localparam HBA_PORT__PxIS__OFS__ADDR = 'h44;
395  localparam HBA_PORT__PxIS__OFS__MASK = 'h1000000;
396  localparam HBA_PORT__PxIS__OFS__DFLT = 'h0;
397 // RWC: Incorrect Port Multiplier Status
398  localparam HBA_PORT__PxIS__IPMS__ADDR = 'h44;
399  localparam HBA_PORT__PxIS__IPMS__MASK = 'h800000;
400  localparam HBA_PORT__PxIS__IPMS__DFLT = 'h0;
401 // RO: PhyRdy changed Status
402  localparam HBA_PORT__PxIS__PRCS__ADDR = 'h44;
403  localparam HBA_PORT__PxIS__PRCS__MASK = 'h400000;
404  localparam HBA_PORT__PxIS__PRCS__DFLT = 'h0;
405 // RWC: Device Mechanical Presence Status
406  localparam HBA_PORT__PxIS__DMPS__ADDR = 'h44;
407  localparam HBA_PORT__PxIS__DMPS__MASK = 'h80;
408  localparam HBA_PORT__PxIS__DMPS__DFLT = 'h0;
409 // RO: Port Connect Change Status
410  localparam HBA_PORT__PxIS__PCS__ADDR = 'h44;
411  localparam HBA_PORT__PxIS__PCS__MASK = 'h40;
412  localparam HBA_PORT__PxIS__PCS__DFLT = 'h0;
413 // RWC: Descriptor Processed
414  localparam HBA_PORT__PxIS__DPS__ADDR = 'h44;
415  localparam HBA_PORT__PxIS__DPS__MASK = 'h20;
416  localparam HBA_PORT__PxIS__DPS__DFLT = 'h0;
417 // RO: Unknown FIS
418  localparam HBA_PORT__PxIS__UFS__ADDR = 'h44;
419  localparam HBA_PORT__PxIS__UFS__MASK = 'h10;
420  localparam HBA_PORT__PxIS__UFS__DFLT = 'h0;
421 // RWC: Set Device Bits Interrupt - Set Device bits FIS with 'I' bit set
422  localparam HBA_PORT__PxIS__SDBS__ADDR = 'h44;
423  localparam HBA_PORT__PxIS__SDBS__MASK = 'h8;
424  localparam HBA_PORT__PxIS__SDBS__DFLT = 'h0;
425 // RWC: DMA Setup FIS Interrupt - DMA Setup FIS received with 'I' bit set
426  localparam HBA_PORT__PxIS__DSS__ADDR = 'h44;
427  localparam HBA_PORT__PxIS__DSS__MASK = 'h4;
428  localparam HBA_PORT__PxIS__DSS__DFLT = 'h0;
429 // RWC: PIO Setup FIS Interrupt - PIO Setup FIS received with 'I' bit set
430  localparam HBA_PORT__PxIS__PSS__ADDR = 'h44;
431  localparam HBA_PORT__PxIS__PSS__MASK = 'h2;
432  localparam HBA_PORT__PxIS__PSS__DFLT = 'h0;
433 // RWC: D2H Register FIS Interrupt - D2H Register FIS received with 'I' bit set
434  localparam HBA_PORT__PxIS__DHRS__ADDR = 'h44;
435  localparam HBA_PORT__PxIS__DHRS__MASK = 'h1;
436  localparam HBA_PORT__PxIS__DHRS__DFLT = 'h0;
437 // RW: Cold Port Detect Enable
438  localparam HBA_PORT__PxIE__CPDE__ADDR = 'h45;
439  localparam HBA_PORT__PxIE__CPDE__MASK = 'h80000000;
440  localparam HBA_PORT__PxIE__CPDE__DFLT = 'h0;
441 // RW: Task File Error Enable
442  localparam HBA_PORT__PxIE__TFEE__ADDR = 'h45;
443  localparam HBA_PORT__PxIE__TFEE__MASK = 'h40000000;
444  localparam HBA_PORT__PxIE__TFEE__DFLT = 'h0;
445 // RW: Host Bus (PCI) Fatal Error Enable
446  localparam HBA_PORT__PxIE__HBFE__ADDR = 'h45;
447  localparam HBA_PORT__PxIE__HBFE__MASK = 'h20000000;
448  localparam HBA_PORT__PxIE__HBFE__DFLT = 'h0;
449 // RW: ECC Error R/W System Memory Enable
450  localparam HBA_PORT__PxIE__HBDE__ADDR = 'h45;
451  localparam HBA_PORT__PxIE__HBDE__MASK = 'h10000000;
452  localparam HBA_PORT__PxIE__HBDE__DFLT = 'h0;
453 // RW: Interface Fatal Error Enable (sect. 6.1.2)
454  localparam HBA_PORT__PxIE__IFE__ADDR = 'h45;
455  localparam HBA_PORT__PxIE__IFE__MASK = 'h8000000;
456  localparam HBA_PORT__PxIE__IFE__DFLT = 'h0;
457 // RW: Interface Non-Fatal Error Enable (sect. 6.1.2)
458  localparam HBA_PORT__PxIE__INFE__ADDR = 'h45;
459  localparam HBA_PORT__PxIE__INFE__MASK = 'h4000000;
460  localparam HBA_PORT__PxIE__INFE__DFLT = 'h0;
461 // RW: Overflow Enable
462  localparam HBA_PORT__PxIE__OFE__ADDR = 'h45;
463  localparam HBA_PORT__PxIE__OFE__MASK = 'h1000000;
464  localparam HBA_PORT__PxIE__OFE__DFLT = 'h0;
465 // RW: Incorrect Port Multiplier Enable
466  localparam HBA_PORT__PxIE__IPME__ADDR = 'h45;
467  localparam HBA_PORT__PxIE__IPME__MASK = 'h800000;
468  localparam HBA_PORT__PxIE__IPME__DFLT = 'h0;
469 // RW: PhyRdy changed Enable
470  localparam HBA_PORT__PxIE__PRCE__ADDR = 'h45;
471  localparam HBA_PORT__PxIE__PRCE__MASK = 'h400000;
472  localparam HBA_PORT__PxIE__PRCE__DFLT = 'h0;
473 // RO: Device Mechanical Presence Interrupt Enable
474  localparam HBA_PORT__PxIE__DMPE__ADDR = 'h45;
475  localparam HBA_PORT__PxIE__DMPE__MASK = 'h80;
476  localparam HBA_PORT__PxIE__DMPE__DFLT = 'h0;
477 // RW: Port Connect Change Interrupt Enable
478  localparam HBA_PORT__PxIE__PCE__ADDR = 'h45;
479  localparam HBA_PORT__PxIE__PCE__MASK = 'h40;
480  localparam HBA_PORT__PxIE__PCE__DFLT = 'h0;
481 // RW: Descriptor Processed Interrupt Enable
482  localparam HBA_PORT__PxIE__DPE__ADDR = 'h45;
483  localparam HBA_PORT__PxIE__DPE__MASK = 'h20;
484  localparam HBA_PORT__PxIE__DPE__DFLT = 'h0;
485 // RW: Unknown FIS
486  localparam HBA_PORT__PxIE__UFE__ADDR = 'h45;
487  localparam HBA_PORT__PxIE__UFE__MASK = 'h10;
488  localparam HBA_PORT__PxIE__UFE__DFLT = 'h0;
489 // RW: Device Bits Interrupt Enable
490  localparam HBA_PORT__PxIE__SDBE__ADDR = 'h45;
491  localparam HBA_PORT__PxIE__SDBE__MASK = 'h8;
492  localparam HBA_PORT__PxIE__SDBE__DFLT = 'h0;
493 // RW: DMA Setup FIS Interrupt Enable
494  localparam HBA_PORT__PxIE__DSE__ADDR = 'h45;
495  localparam HBA_PORT__PxIE__DSE__MASK = 'h4;
496  localparam HBA_PORT__PxIE__DSE__DFLT = 'h0;
497 // RW: PIO Setup FIS Interrupt Enable
498  localparam HBA_PORT__PxIE__PSE__ADDR = 'h45;
499  localparam HBA_PORT__PxIE__PSE__MASK = 'h2;
500  localparam HBA_PORT__PxIE__PSE__DFLT = 'h0;
501 // RW: D2H Register FIS Interrupt Enable
502  localparam HBA_PORT__PxIE__DHRE__ADDR = 'h45;
503  localparam HBA_PORT__PxIE__DHRE__MASK = 'h1;
504  localparam HBA_PORT__PxIE__DHRE__DFLT = 'h0;
505 // RW: Interface Communication Control
506  localparam HBA_PORT__PxCMD__ICC__ADDR = 'h46;
507  localparam HBA_PORT__PxCMD__ICC__MASK = 'hf0000000;
508  localparam HBA_PORT__PxCMD__ICC__DFLT = 'h0;
509 // RO: Aggressive Slumber/Partial - not implemented
510  localparam HBA_PORT__PxCMD__ASP__ADDR = 'h46;
511  localparam HBA_PORT__PxCMD__ASP__MASK = 'h8000000;
512  localparam HBA_PORT__PxCMD__ASP__DFLT = 'h0;
513 // RO: Aggressive Link Power Management Enable - not implemented
514  localparam HBA_PORT__PxCMD__ALPE__ADDR = 'h46;
515  localparam HBA_PORT__PxCMD__ALPE__MASK = 'h4000000;
516  localparam HBA_PORT__PxCMD__ALPE__DFLT = 'h0;
517 // RW: Drive LED on ATAPI enable
518  localparam HBA_PORT__PxCMD__DLAE__ADDR = 'h46;
519  localparam HBA_PORT__PxCMD__DLAE__MASK = 'h2000000;
520  localparam HBA_PORT__PxCMD__DLAE__DFLT = 'h0;
521 // RW: Device is ATAPI (for activity LED)
522  localparam HBA_PORT__PxCMD__ATAPI__ADDR = 'h46;
523  localparam HBA_PORT__PxCMD__ATAPI__MASK = 'h1000000;
524  localparam HBA_PORT__PxCMD__ATAPI__DFLT = 'h0;
525 // RW: Automatic Partial to Slumber Transitions Enabled
526  localparam HBA_PORT__PxCMD__APSTE__ADDR = 'h46;
527  localparam HBA_PORT__PxCMD__APSTE__MASK = 'h800000;
528  localparam HBA_PORT__PxCMD__APSTE__DFLT = 'h0;
529 // RO: FIS-Based Switching Capable Port - not implemented
530  localparam HBA_PORT__PxCMD__FBSCP__ADDR = 'h46;
531  localparam HBA_PORT__PxCMD__FBSCP__MASK = 'h400000;
532  localparam HBA_PORT__PxCMD__FBSCP__DFLT = 'h0;
533 // RO: External SATA port
534  localparam HBA_PORT__PxCMD__ESP__ADDR = 'h46;
535  localparam HBA_PORT__PxCMD__ESP__MASK = 'h200000;
536  localparam HBA_PORT__PxCMD__ESP__DFLT = 'h200000;
537 // RO: Cold Presence Detection
538  localparam HBA_PORT__PxCMD__CPD__ADDR = 'h46;
539  localparam HBA_PORT__PxCMD__CPD__MASK = 'h100000;
540  localparam HBA_PORT__PxCMD__CPD__DFLT = 'h0;
541 // RO: Mechanical Presence Switch Attached to Port
542  localparam HBA_PORT__PxCMD__MPSP__ADDR = 'h46;
543  localparam HBA_PORT__PxCMD__MPSP__MASK = 'h80000;
544  localparam HBA_PORT__PxCMD__MPSP__DFLT = 'h0;
545 // RO: Hot Plug Capable Port
546  localparam HBA_PORT__PxCMD__HPCP__ADDR = 'h46;
547  localparam HBA_PORT__PxCMD__HPCP__MASK = 'h40000;
548  localparam HBA_PORT__PxCMD__HPCP__DFLT = 'h40000;
549 // RW: Port Multiplier Attached - not implemented (software should write this bit)
550  localparam HBA_PORT__PxCMD__PMA__ADDR = 'h46;
551  localparam HBA_PORT__PxCMD__PMA__MASK = 'h20000;
552  localparam HBA_PORT__PxCMD__PMA__DFLT = 'h0;
553 // RO: Cold Presence State
554  localparam HBA_PORT__PxCMD__CPS__ADDR = 'h46;
555  localparam HBA_PORT__PxCMD__CPS__MASK = 'h10000;
556  localparam HBA_PORT__PxCMD__CPS__DFLT = 'h0;
557 // RO: Command List Running (section 5.3.2)
558  localparam HBA_PORT__PxCMD__CR__ADDR = 'h46;
559  localparam HBA_PORT__PxCMD__CR__MASK = 'h8000;
560  localparam HBA_PORT__PxCMD__CR__DFLT = 'h0;
561 // RO: FIS Receive Running (section 10.3.2)
562  localparam HBA_PORT__PxCMD__FR__ADDR = 'h46;
563  localparam HBA_PORT__PxCMD__FR__MASK = 'h4000;
564  localparam HBA_PORT__PxCMD__FR__DFLT = 'h0;
565 // RO: Mechanical Presence Switch State
566  localparam HBA_PORT__PxCMD__MPSS__ADDR = 'h46;
567  localparam HBA_PORT__PxCMD__MPSS__MASK = 'h2000;
568  localparam HBA_PORT__PxCMD__MPSS__DFLT = 'h0;
569 // RO: Current Command Slot (when PxCMD.ST 1-> ) should be reset to 0, when 0->1 - highest priority is 0
570  localparam HBA_PORT__PxCMD__CCS__ADDR = 'h46;
571  localparam HBA_PORT__PxCMD__CCS__MASK = 'h1f00;
572  localparam HBA_PORT__PxCMD__CCS__DFLT = 'h0;
573 // RW: FIS Receive Enable (enable after FIS memory is set)
574  localparam HBA_PORT__PxCMD__FRE__ADDR = 'h46;
575  localparam HBA_PORT__PxCMD__FRE__MASK = 'h10;
576  localparam HBA_PORT__PxCMD__FRE__DFLT = 'h0;
577 // RW1: Command List Override
578  localparam HBA_PORT__PxCMD__CLO__ADDR = 'h46;
579  localparam HBA_PORT__PxCMD__CLO__MASK = 'h8;
580  localparam HBA_PORT__PxCMD__CLO__DFLT = 'h0;
581 // RO: Power On Device (RW with Cold Presence Detection)
582  localparam HBA_PORT__PxCMD__POD__ADDR = 'h46;
583  localparam HBA_PORT__PxCMD__POD__MASK = 'h4;
584  localparam HBA_PORT__PxCMD__POD__DFLT = 'h4;
585 // RO: Spin-Up Device (RW with Staggered Spin-Up Support)
586  localparam HBA_PORT__PxCMD__SUD__ADDR = 'h46;
587  localparam HBA_PORT__PxCMD__SUD__MASK = 'h2;
588  localparam HBA_PORT__PxCMD__SUD__DFLT = 'h2;
589 // RW: Start (HBA may process commands). See section 10.3.1
590  localparam HBA_PORT__PxCMD__ST__ADDR = 'h46;
591  localparam HBA_PORT__PxCMD__ST__MASK = 'h1;
592  localparam HBA_PORT__PxCMD__ST__DFLT = 'h0;
593 // RO: Latest Copy of Task File Error Register
594  localparam HBA_PORT__PxTFD__ERR__ADDR = 'h48;
595  localparam HBA_PORT__PxTFD__ERR__MASK = 'hff00;
596  localparam HBA_PORT__PxTFD__ERR__DFLT = 'h0;
597 // RO: Latest Copy of Task File Status Register: BSY
598  localparam HBA_PORT__PxTFD__STS__BSY__ADDR = 'h48;
599  localparam HBA_PORT__PxTFD__STS__BSY__MASK = 'h80;
600  localparam HBA_PORT__PxTFD__STS__BSY__DFLT = 'h0;
601 // RO: Latest Copy of Task File Status Register: command-specific bits 4..6
602  localparam HBA_PORT__PxTFD__STS__64__ADDR = 'h48;
603  localparam HBA_PORT__PxTFD__STS__64__MASK = 'h70;
604  localparam HBA_PORT__PxTFD__STS__64__DFLT = 'h0;
605 // RO: Latest Copy of Task File Status Register: DRQ
606  localparam HBA_PORT__PxTFD__STS__DRQ__ADDR = 'h48;
607  localparam HBA_PORT__PxTFD__STS__DRQ__MASK = 'h8;
608  localparam HBA_PORT__PxTFD__STS__DRQ__DFLT = 'h0;
609 // RO: Latest Copy of Task File Status Register: command-specific bits 1..2
610  localparam HBA_PORT__PxTFD__STS__12__ADDR = 'h48;
611  localparam HBA_PORT__PxTFD__STS__12__MASK = 'h6;
612  localparam HBA_PORT__PxTFD__STS__12__DFLT = 'h0;
613 // RO: Latest Copy of Task File Status Register: ERR
614  localparam HBA_PORT__PxTFD__STS__ERR__ADDR = 'h48;
615  localparam HBA_PORT__PxTFD__STS__ERR__MASK = 'h1;
616  localparam HBA_PORT__PxTFD__STS__ERR__DFLT = 'h0;
617 // RO: Data in the first D2H Register FIS
618  localparam HBA_PORT__PxSIG__SIG__ADDR = 'h49;
619  localparam HBA_PORT__PxSIG__SIG__MASK = 'hffffffff;
620  localparam HBA_PORT__PxSIG__SIG__DFLT = 'hffffffff;
621 // RO: Interface Power Management
622  localparam HBA_PORT__PxSSTS__IPM__ADDR = 'h4a;
623  localparam HBA_PORT__PxSSTS__IPM__MASK = 'hf00;
624  localparam HBA_PORT__PxSSTS__IPM__DFLT = 'h0;
625 // RO: Interface Speed
626  localparam HBA_PORT__PxSSTS__SPD__ADDR = 'h4a;
627  localparam HBA_PORT__PxSSTS__SPD__MASK = 'hf0;
628  localparam HBA_PORT__PxSSTS__SPD__DFLT = 'h0;
629 // RO: Device Detection (should be detected if COMINIT is received)
630  localparam HBA_PORT__PxSSTS__DET__ADDR = 'h4a;
631  localparam HBA_PORT__PxSSTS__DET__MASK = 'hf;
632  localparam HBA_PORT__PxSSTS__DET__DFLT = 'h0;
633 // RO: Port Multiplier Port - not used by AHCI
634  localparam HBA_PORT__PxSCTL__PMP__ADDR = 'h4b;
635  localparam HBA_PORT__PxSCTL__PMP__MASK = 'hf0000;
636  localparam HBA_PORT__PxSCTL__PMP__DFLT = 'h0;
637 // RO: Select Power Management - not used by AHCI
638  localparam HBA_PORT__PxSCTL__SPM__ADDR = 'h4b;
639  localparam HBA_PORT__PxSCTL__SPM__MASK = 'hf000;
640  localparam HBA_PORT__PxSCTL__SPM__DFLT = 'h0;
641 // RW: Interface Power Management Transitions Allowed
642  localparam HBA_PORT__PxSCTL__IPM__ADDR = 'h4b;
643  localparam HBA_PORT__PxSCTL__IPM__MASK = 'hf00;
644  localparam HBA_PORT__PxSCTL__IPM__DFLT = 'h0;
645 // RW: Interface Highest Speed
646  localparam HBA_PORT__PxSCTL__SPD__ADDR = 'h4b;
647  localparam HBA_PORT__PxSCTL__SPD__MASK = 'hf0;
648  localparam HBA_PORT__PxSCTL__SPD__DFLT = 'h0;
649 // RW: Device Detection Initialization
650  localparam HBA_PORT__PxSCTL__DET__ADDR = 'h4b;
651  localparam HBA_PORT__PxSCTL__DET__MASK = 'hf;
652  localparam HBA_PORT__PxSCTL__DET__DFLT = 'h0;
653 // RWC: Exchanged (set on COMINIT), reflected in PxIS.PCS
654  localparam HBA_PORT__PxSERR__DIAG__X__ADDR = 'h4c;
655  localparam HBA_PORT__PxSERR__DIAG__X__MASK = 'h4000000;
656  localparam HBA_PORT__PxSERR__DIAG__X__DFLT = 'h0;
657 // RWC: Unknown FIS
658  localparam HBA_PORT__PxSERR__DIAG__F__ADDR = 'h4c;
659  localparam HBA_PORT__PxSERR__DIAG__F__MASK = 'h2000000;
660  localparam HBA_PORT__PxSERR__DIAG__F__DFLT = 'h0;
661 // RWC: Transport state transition error
662  localparam HBA_PORT__PxSERR__DIAG__T__ADDR = 'h4c;
663  localparam HBA_PORT__PxSERR__DIAG__T__MASK = 'h1000000;
664  localparam HBA_PORT__PxSERR__DIAG__T__DFLT = 'h0;
665 // RWC: Link sequence error
666  localparam HBA_PORT__PxSERR__DIAG__S__ADDR = 'h4c;
667  localparam HBA_PORT__PxSERR__DIAG__S__MASK = 'h800000;
668  localparam HBA_PORT__PxSERR__DIAG__S__DFLT = 'h0;
669 // RWC: Handshake Error (i.e. Device got CRC error)
670  localparam HBA_PORT__PxSERR__DIAG__H__ADDR = 'h4c;
671  localparam HBA_PORT__PxSERR__DIAG__H__MASK = 'h400000;
672  localparam HBA_PORT__PxSERR__DIAG__H__DFLT = 'h0;
673 // RWC: CRC error in Link layer
674  localparam HBA_PORT__PxSERR__DIAG__C__ADDR = 'h4c;
675  localparam HBA_PORT__PxSERR__DIAG__C__MASK = 'h200000;
676  localparam HBA_PORT__PxSERR__DIAG__C__DFLT = 'h0;
677 // RWC: Disparity Error - not used by AHCI
678  localparam HBA_PORT__PxSERR__DIAG__D__ADDR = 'h4c;
679  localparam HBA_PORT__PxSERR__DIAG__D__MASK = 'h100000;
680  localparam HBA_PORT__PxSERR__DIAG__D__DFLT = 'h0;
681 // RWC: 10B to 8B decode error
682  localparam HBA_PORT__PxSERR__DIAG__B__ADDR = 'h4c;
683  localparam HBA_PORT__PxSERR__DIAG__B__MASK = 'h80000;
684  localparam HBA_PORT__PxSERR__DIAG__B__DFLT = 'h0;
685 // RWC: COMMWAKE signal was detected
686  localparam HBA_PORT__PxSERR__DIAG__W__ADDR = 'h4c;
687  localparam HBA_PORT__PxSERR__DIAG__W__MASK = 'h40000;
688  localparam HBA_PORT__PxSERR__DIAG__W__DFLT = 'h0;
689 // RWC: PHY Internal Error
690  localparam HBA_PORT__PxSERR__DIAG__I__ADDR = 'h4c;
691  localparam HBA_PORT__PxSERR__DIAG__I__MASK = 'h20000;
692  localparam HBA_PORT__PxSERR__DIAG__I__DFLT = 'h0;
693 // RWC: PhyRdy changed. Reflected in PxIS.PRCS bit.
694  localparam HBA_PORT__PxSERR__DIAG__N__ADDR = 'h4c;
695  localparam HBA_PORT__PxSERR__DIAG__N__MASK = 'h10000;
696  localparam HBA_PORT__PxSERR__DIAG__N__DFLT = 'h0;
697 // RWC: Internal Error
698  localparam HBA_PORT__PxSERR__ERR__E__ADDR = 'h4c;
699  localparam HBA_PORT__PxSERR__ERR__E__MASK = 'h800;
700  localparam HBA_PORT__PxSERR__ERR__E__DFLT = 'h0;
701 // RWC: Protocol Error - a violation of SATA protocol detected
702  localparam HBA_PORT__PxSERR__ERR__P__ADDR = 'h4c;
703  localparam HBA_PORT__PxSERR__ERR__P__MASK = 'h400;
704  localparam HBA_PORT__PxSERR__ERR__P__DFLT = 'h0;
705 // RWC: Persistent Communication or Data Integrity Error
706  localparam HBA_PORT__PxSERR__ERR__C__ADDR = 'h4c;
707  localparam HBA_PORT__PxSERR__ERR__C__MASK = 'h200;
708  localparam HBA_PORT__PxSERR__ERR__C__DFLT = 'h0;
709 // RWC: Transient Data Integrity Error (error not recovered by the interface)
710  localparam HBA_PORT__PxSERR__ERR__T__ADDR = 'h4c;
711  localparam HBA_PORT__PxSERR__ERR__T__MASK = 'h100;
712  localparam HBA_PORT__PxSERR__ERR__T__DFLT = 'h0;
713 // RWC: Communication between the device and host was lost but re-established
714  localparam HBA_PORT__PxSERR__ERR__M__ADDR = 'h4c;
715  localparam HBA_PORT__PxSERR__ERR__M__MASK = 'h2;
716  localparam HBA_PORT__PxSERR__ERR__M__DFLT = 'h0;
717 // RWC: Recovered Data integrity Error
718  localparam HBA_PORT__PxSERR__ERR__I__ADDR = 'h4c;
719  localparam HBA_PORT__PxSERR__ERR__I__MASK = 'h1;
720  localparam HBA_PORT__PxSERR__ERR__I__DFLT = 'h0;
721 // RW1: Device Status: bit per Port, for TAG in native queued command
722  localparam HBA_PORT__PxSACT__DS__ADDR = 'h4d;
723  localparam HBA_PORT__PxSACT__DS__MASK = 'hffffffff;
724  localparam HBA_PORT__PxSACT__DS__DFLT = 'h0;
725 // RW1: Command Issued: bit per Port, only set when PxCMD.ST==1, also cleared by PxCMD.ST: 1->0 by soft
726  localparam HBA_PORT__PxCI__CI__ADDR = 'h4e;
727  localparam HBA_PORT__PxCI__CI__MASK = 'hffffffff;
728  localparam HBA_PORT__PxCI__CI__DFLT = 'h0;
729 // RWC: PM Notify (bit per PM port)
730  localparam HBA_PORT__PxSNTF__PMN__ADDR = 'h4f;
731  localparam HBA_PORT__PxSNTF__PMN__MASK = 'hffff;
732  localparam HBA_PORT__PxSNTF__PMN__DFLT = 'h0;
733 // RO: Device with Error
734  localparam HBA_PORT__PxFBS__DWE__ADDR = 'h50;
735  localparam HBA_PORT__PxFBS__DWE__MASK = 'hf0000;
736  localparam HBA_PORT__PxFBS__DWE__DFLT = 'h0;
737 // RO: Active Device Optimization
738  localparam HBA_PORT__PxFBS__ADO__ADDR = 'h50;
739  localparam HBA_PORT__PxFBS__ADO__MASK = 'hf000;
740  localparam HBA_PORT__PxFBS__ADO__DFLT = 'h0;
741 // RW: Device To Issue
742  localparam HBA_PORT__PxFBS__DEV__ADDR = 'h50;
743  localparam HBA_PORT__PxFBS__DEV__MASK = 'hf00;
744  localparam HBA_PORT__PxFBS__DEV__DFLT = 'h0;
745 // RO: Single Device Error
746  localparam HBA_PORT__PxFBS__SDE__ADDR = 'h50;
747  localparam HBA_PORT__PxFBS__SDE__MASK = 'h4;
748  localparam HBA_PORT__PxFBS__SDE__DFLT = 'h0;
749 // RW1: Device Error Clear
750  localparam HBA_PORT__PxFBS__DEC__ADDR = 'h50;
751  localparam HBA_PORT__PxFBS__DEC__MASK = 'h2;
752  localparam HBA_PORT__PxFBS__DEC__DFLT = 'h0;
753 // RW: Enable
754  localparam HBA_PORT__PxFBS__EN__ADDR = 'h50;
755  localparam HBA_PORT__PxFBS__EN__MASK = 'h1;
756  localparam HBA_PORT__PxFBS__EN__DFLT = 'h0;
757 // RO: DITO Multiplier
758  localparam HBA_PORT__PxDEVSLP__DM__ADDR = 'h51;
759  localparam HBA_PORT__PxDEVSLP__DM__MASK = 'h1e000000;
760  localparam HBA_PORT__PxDEVSLP__DM__DFLT = 'h0;
761 // RW: Device Sleep Idle Timeout (section 8.5.1.1.1)
762  localparam HBA_PORT__PxDEVSLP__DITO__ADDR = 'h51;
763  localparam HBA_PORT__PxDEVSLP__DITO__MASK = 'h1ff8000;
764  localparam HBA_PORT__PxDEVSLP__DITO__DFLT = 'h0;
765 // RW: Minimum Device Sleep Assertion Time
766  localparam HBA_PORT__PxDEVSLP__MDAT__ADDR = 'h51;
767  localparam HBA_PORT__PxDEVSLP__MDAT__MASK = 'h7c00;
768  localparam HBA_PORT__PxDEVSLP__MDAT__DFLT = 'h0;
769 // RW: Device Sleep Exit Timeout
770  localparam HBA_PORT__PxDEVSLP__DETO__ADDR = 'h51;
771  localparam HBA_PORT__PxDEVSLP__DETO__MASK = 'h3fc;
772  localparam HBA_PORT__PxDEVSLP__DETO__DFLT = 'h0;
773 // RO: Device Sleep Present
774  localparam HBA_PORT__PxDEVSLP__DSP__ADDR = 'h51;
775  localparam HBA_PORT__PxDEVSLP__DSP__MASK = 'h2;
776  localparam HBA_PORT__PxDEVSLP__DSP__DFLT = 'h0;
777 // RO: Aggressive Device Sleep Enable
778  localparam HBA_PORT__PxDEVSLP__ADSE__ADDR = 'h51;
779  localparam HBA_PORT__PxDEVSLP__ADSE__MASK = 'h1;
780  localparam HBA_PORT__PxDEVSLP__ADSE__DFLT = 'h0;
781 // RW: SAXIHP write channel cache mode
782  localparam HBA_PORT__AFI_CACHE__WR_CM__ADDR = 'h5c;
783  localparam HBA_PORT__AFI_CACHE__WR_CM__MASK = 'hf0;
784  localparam HBA_PORT__AFI_CACHE__WR_CM__DFLT = 'h30;
785 // RW: SAXIHP read channel cache mode
786  localparam HBA_PORT__AFI_CACHE__RD_CM__ADDR = 'h5c;
787  localparam HBA_PORT__AFI_CACHE__RD_CM__MASK = 'hf;
788  localparam HBA_PORT__AFI_CACHE__RD_CM__DFLT = 'h3;
789 // RW: Address/not data for programming AHCI state machine
790  localparam HBA_PORT__PGM_AHCI_SM__AnD__ADDR = 'h5d;
791  localparam HBA_PORT__PGM_AHCI_SM__AnD__MASK = 'h1000000;
792  localparam HBA_PORT__PGM_AHCI_SM__AnD__DFLT = 'h0;
793 // RW: Program address/data for programming AHCI state machine
794  localparam HBA_PORT__PGM_AHCI_SM__PGM_AD__ADDR = 'h5d;
795  localparam HBA_PORT__PGM_AHCI_SM__PGM_AD__MASK = 'h3ffff;
796  localparam HBA_PORT__PGM_AHCI_SM__PGM_AD__DFLT = 'h0;
797 // RW: 3-bit tag to add to the recorded timestamp
798  localparam HBA_PORT__PunchTime__TAG__ADDR = 'h5e;
799  localparam HBA_PORT__PunchTime__TAG__MASK = 'h7;
800  localparam HBA_PORT__PunchTime__TAG__DFLT = 'h0;
801