GNU Linux-libre 4.14.290-gnu1
[releases.git] / arch / x86 / include / asm / hypertransport.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_X86_HYPERTRANSPORT_H
3 #define _ASM_X86_HYPERTRANSPORT_H
4
5 /*
6  * Constants for x86 Hypertransport Interrupts.
7  */
8
9 #define HT_IRQ_LOW_BASE                 0xf8000000
10
11 #define HT_IRQ_LOW_VECTOR_SHIFT         16
12 #define HT_IRQ_LOW_VECTOR_MASK          0x00ff0000
13 #define HT_IRQ_LOW_VECTOR(v)                                            \
14         (((v) << HT_IRQ_LOW_VECTOR_SHIFT) & HT_IRQ_LOW_VECTOR_MASK)
15
16 #define HT_IRQ_LOW_DEST_ID_SHIFT        8
17 #define HT_IRQ_LOW_DEST_ID_MASK         0x0000ff00
18 #define HT_IRQ_LOW_DEST_ID(v)                                           \
19         (((v) << HT_IRQ_LOW_DEST_ID_SHIFT) & HT_IRQ_LOW_DEST_ID_MASK)
20
21 #define HT_IRQ_LOW_DM_PHYSICAL          0x0000000
22 #define HT_IRQ_LOW_DM_LOGICAL           0x0000040
23
24 #define HT_IRQ_LOW_RQEOI_EDGE           0x0000000
25 #define HT_IRQ_LOW_RQEOI_LEVEL          0x0000020
26
27
28 #define HT_IRQ_LOW_MT_FIXED             0x0000000
29 #define HT_IRQ_LOW_MT_ARBITRATED        0x0000004
30 #define HT_IRQ_LOW_MT_SMI               0x0000008
31 #define HT_IRQ_LOW_MT_NMI               0x000000c
32 #define HT_IRQ_LOW_MT_INIT              0x0000010
33 #define HT_IRQ_LOW_MT_STARTUP           0x0000014
34 #define HT_IRQ_LOW_MT_EXTINT            0x0000018
35 #define HT_IRQ_LOW_MT_LINT1             0x000008c
36 #define HT_IRQ_LOW_MT_LINT0             0x0000098
37
38 #define HT_IRQ_LOW_IRQ_MASKED           0x0000001
39
40
41 #define HT_IRQ_HIGH_DEST_ID_SHIFT       0
42 #define HT_IRQ_HIGH_DEST_ID_MASK        0x00ffffff
43 #define HT_IRQ_HIGH_DEST_ID(v)                                          \
44         ((((v) >> 8) << HT_IRQ_HIGH_DEST_ID_SHIFT) & HT_IRQ_HIGH_DEST_ID_MASK)
45
46 #endif /* _ASM_X86_HYPERTRANSPORT_H */