Change-Id: I5a3e3506415f424bf0fdd48fc449520a76622af5 Signed-off-by: Felix Singer <felixsinger@posteo.net> Reviewed-on: https://review.coreboot.org/c/coreboot/+/71525 Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Elyes Haouas <ehaouas@noos.fr> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
87 lines
2.4 KiB
Plaintext
87 lines
2.4 KiB
Plaintext
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
/* TODO: Update for Glinda */
|
|
|
|
Device(PCI0) {
|
|
Name(_HID, EISAID("PNP0A08")) /* PCI Express Root Bridge */
|
|
Name(_CID, EISAID("PNP0A03")) /* PCI Root Bridge */
|
|
External(TOM1, IntObj) /* Generated by root_complex.c */
|
|
|
|
Method(_BBN, 0, NotSerialized) {
|
|
Return(0) /* Bus number = 0 */
|
|
}
|
|
|
|
Method(_STA, 0, NotSerialized) {
|
|
Return(0x0B) /* Status is visible */
|
|
}
|
|
|
|
/* Operating System Capabilities Method */
|
|
Method(_OSC, 4) {
|
|
CreateDWordField(Arg3, 0, CDW1) /* Capabilities dword 1 */
|
|
|
|
/* Check for proper PCI/PCIe UUID */
|
|
If (Arg0 == ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766")) {
|
|
/* Let OS control everything */
|
|
Return (Arg3)
|
|
} Else {
|
|
CDW1 |= 4 /* Unrecognized UUID */
|
|
Return (Arg3)
|
|
}
|
|
}
|
|
Name(CRES, ResourceTemplate() {
|
|
WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
|
|
0x0000, /* address granularity */
|
|
0x0000, /* range minimum */
|
|
0x00ff, /* range maximum */
|
|
0x0000, /* translation */
|
|
0x0100, /* length */
|
|
,, PSB0) /* ResourceSourceIndex, ResourceSource, DescriptorName */
|
|
|
|
IO(Decode16, 0x0cf8, 0x0cf8, 1, 8)
|
|
|
|
WORDIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
|
0x0000, /* address granularity */
|
|
0x0000, /* range minimum */
|
|
0x0cf7, /* range maximum */
|
|
0x0000, /* translation */
|
|
0x0cf8 /* length */
|
|
)
|
|
|
|
WORDIO(ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
|
0x0000, /* address granularity */
|
|
0x0d00, /* range minimum */
|
|
0xffff, /* range maximum */
|
|
0x0000, /* translation */
|
|
0xf300 /* length */
|
|
)
|
|
|
|
Memory32Fixed(READONLY, 0x000a0000, 0x00020000, VGAM) /* VGA memory space */
|
|
Memory32Fixed(READONLY, 0x000c0000, 0x00020000, EMM1) /* Assume C0000-E0000 empty */
|
|
|
|
/* memory space for PCI BARs below 4GB */
|
|
Memory32Fixed(ReadOnly, 0x00000000, 0x00000000, MMIO)
|
|
})
|
|
|
|
Method(_CRS, 0) {
|
|
CreateDWordField(CRES, ^MMIO._BAS, MM1B)
|
|
CreateDWordField(CRES, ^MMIO._LEN, MM1L)
|
|
|
|
/* Declare memory between TOM1 and MMCONF as available for PCI MMIO. */
|
|
MM1B = TOM1
|
|
Local0 = CONFIG_ECAM_MMCONF_BASE_ADDRESS
|
|
Local0 -= TOM1
|
|
MM1L = Local0
|
|
|
|
CreateWordField(CRES, ^PSB0._MAX, BMAX)
|
|
CreateWordField(CRES, ^PSB0._LEN, BLEN)
|
|
BMAX = CONFIG_ECAM_MMCONF_BUS_NUMBER - 1
|
|
BLEN = CONFIG_ECAM_MMCONF_BUS_NUMBER
|
|
|
|
Return(CRES) /* note to change the Name buffer */
|
|
} /* end of Method(_SB.PCI0._CRS) */
|
|
|
|
/* 0:14.3 - LPC */
|
|
#include <soc/amd/common/acpi/lpc.asl>
|
|
|
|
} /* End PCI0 scope */
|