coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
acpi_asl.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #ifndef _SOC_ACPI_ASL_H_
4 #define _SOC_ACPI_ASL_H_
5 
6 #define GEN_PCIE_LEGACY_IRQ() \
7  Package () { 0x0000FFFF, 0x00, LNKA, 0x00 }, \
8  Package () { 0x0001FFFF, 0x01, LNKB, 0x00 }, \
9  Package () { 0x0002FFFF, 0x02, LNKC, 0x00 }, \
10  Package () { 0x0003FFFF, 0x03, LNKD, 0x00 }
11 
12 #define GEN_UNCORE_LEGACY_IRQ(dev) \
13  Package () { ##dev, 0x00, LNKA, 0x00 }, \
14  Package () { ##dev, 0x01, LNKB, 0x00 }, \
15  Package () { ##dev, 0x02, LNKC, 0x00 }, \
16  Package () { ##dev, 0x03, LNKD, 0x00 }
17 
18 #define GEN_PCIE_IOAPIC_IRQ(irq1, irq2, irq3, irq4) \
19  Package () { 0x0000FFFF, 0x00, 0x00, ##irq1 }, \
20  Package () { 0x0001FFFF, 0x01, 0x00, ##irq2 }, \
21  Package () { 0x0002FFFF, 0x02, 0x00, ##irq3 }, \
22  Package () { 0x0003FFFF, 0x03, 0x00, ##irq4 }
23 
24 #define GEN_UNCORE_IOAPIC_IRQ(dev,irq1,irq2,irq3,irq4) \
25  Package () { ##dev, 0x00, 0x00, ##irq1 }, \
26  Package () { ##dev, 0x01, 0x00, ##irq2 }, \
27  Package () { ##dev, 0x02, 0x00, ##irq3 }, \
28  Package () { ##dev, 0x03, 0x00, ##irq4 }
29 
30 
31 #define MAKE_LINK_DEV(id,uid) \
32  Device (LNK##id) \
33  { \
34  Name (_HID, EISAID ("PNP0C0F")) \
35  Name (_UID, ##uid) \
36  Method (_PRS, 0, NotSerialized) \
37  { \
38  Return (PRS##id) \
39  } \
40  Method (_CRS, 0, Serialized) \
41  { \
42  Name (RTLA, ResourceTemplate () \
43  { \
44  IRQ (Level, ActiveLow, Shared) {} \
45  }) \
46  CreateWordField (RTLA, 1, IRQ0) \
47  IRQ0 = 0 \
48  \
49  /* Set the bit from PIRQ Routing Register */ \
50  IRQ0 = 1 << (^^PIR##id & ^^IREM) \
51  Return (RTLA) \
52  } \
53  Method (_SRS, 1, Serialized) \
54  { \
55  CreateWordField (Arg0, 1, IRQ0) \
56  FindSetRightBit (IRQ0, Local0) \
57  Local0-- \
58  ^^PIR##id = Local0 \
59  } \
60  Method (_STA, 0, Serialized) \
61  { \
62  If (^^PIR##id & ^^IREN) { \
63  Return (0x9) \
64  } Else { \
65  Return (0xb) \
66  } \
67  } \
68  Method (_DIS, 0, Serialized) \
69  { \
70  ^^PIR##id |= ^^IREN \
71  } \
72  }
73 
74 #endif