According to spec IRQ1 isn't available for PIRQ assignment. Has gone unnoticed probably because modern OS use MSI or at least APIC and even with noapic don't use IRQ1 with PCI IRQs. Change-Id: Idc7db249007df629b27e8cae41cc80358d5306f6 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/7478 Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: build bot (Jenkins)
493 lines
8.2 KiB
Plaintext
493 lines
8.2 KiB
Plaintext
/*
|
|
* This file is part of the coreboot project.
|
|
*
|
|
* Copyright (C) 2007-2009 coresystems GmbH
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; version 2 of
|
|
* the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
|
* MA 02110-1301 USA
|
|
*/
|
|
|
|
Device (LNKA)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 1)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTA)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 10, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLA, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLA, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTA
|
|
ShiftLeft(1, And(PRTA, 0x0f), IRQ0)
|
|
|
|
Return (RTLA)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTA)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTA, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKB)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 2)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTB)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 11, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLB, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLB, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTB
|
|
ShiftLeft(1, And(PRTB, 0x0f), IRQ0)
|
|
|
|
Return (RTLB)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTB)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTB, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKC)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 3)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTC)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 10, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLC, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLC, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTC
|
|
ShiftLeft(1, And(PRTC, 0x0f), IRQ0)
|
|
|
|
Return (RTLC)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTC)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTC, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKD)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 4)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTD)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 11, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLD, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLD, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTD
|
|
ShiftLeft(1, And(PRTD, 0x0f), IRQ0)
|
|
|
|
Return (RTLD)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTD)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTD, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKE)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 5)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTE)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 10, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLE, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLE, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTE
|
|
ShiftLeft(1, And(PRTE, 0x0f), IRQ0)
|
|
|
|
Return (RTLE)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTE)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTE, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKF)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 6)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTF)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 11, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLF, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLF, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTF
|
|
ShiftLeft(1, And(PRTF, 0x0f), IRQ0)
|
|
|
|
Return (RTLF)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTF)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTF, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKG)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 7)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTG)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 10, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLG, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLG, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTG
|
|
ShiftLeft(1, And(PRTG, 0x0f), IRQ0)
|
|
|
|
Return (RTLG)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTG)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTG, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|
|
|
|
Device (LNKH)
|
|
{
|
|
Name (_HID, EISAID("PNP0C0F"))
|
|
Name (_UID, 8)
|
|
|
|
// Disable method
|
|
Method (_DIS, 0, Serialized)
|
|
{
|
|
Store (0x80, PRTH)
|
|
}
|
|
|
|
// Possible Resource Settings for this Link
|
|
Name (_PRS, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared)
|
|
{ 3, 4, 5, 6, 7, 11, 12, 14, 15 }
|
|
})
|
|
|
|
// Current Resource Settings for this link
|
|
Method (_CRS, 0, Serialized)
|
|
{
|
|
Name (RTLH, ResourceTemplate()
|
|
{
|
|
IRQ(Level, ActiveLow, Shared) {}
|
|
})
|
|
CreateWordField(RTLH, 1, IRQ0)
|
|
|
|
// Clear the WordField
|
|
Store (Zero, IRQ0)
|
|
|
|
// Set the bit from PRTH
|
|
ShiftLeft(1, And(PRTH, 0x0f), IRQ0)
|
|
|
|
Return (RTLH)
|
|
}
|
|
|
|
// Set Resource Setting for this IRQ link
|
|
Method (_SRS, 1, Serialized)
|
|
{
|
|
CreateWordField(Arg0, 1, IRQ0)
|
|
|
|
// Which bit is set?
|
|
FindSetRightBit(IRQ0, Local0)
|
|
|
|
Decrement(Local0)
|
|
Store(Local0, PRTH)
|
|
}
|
|
|
|
// Status
|
|
Method (_STA, 0, Serialized)
|
|
{
|
|
If(And(PRTH, 0x80)) {
|
|
Return (0x9)
|
|
} Else {
|
|
Return (0xb)
|
|
}
|
|
}
|
|
}
|