From: Fu Wei <fu.wei(a)linaro.org>
This patchset:
(1)Try to fix an issue about min and max timeout validity check:
when max_hw_heartbeat_ms is defined, this check should be skipped.
(2)Use max_hw_heartbeat_ms instead of max_timeout in SBSA watchdog.
(3)Set WDOG_HW_RUNNING, when SBSA watchdog is already running before
it's initialized.
Changelog:
v1: The first formal upstreaming version
RFC: https://lkml.org/lkml/2016/5/3/145
Pratyush Anand (3):
watchdog: skip min and max timeout validity check when
max_hw_heartbeat_ms is defined
sbsa_gwdt: Use max_hw_heartbeat_ms instead of max_timeout
sbsa_gwdt: Set WDOG_HW_RUNNING, when watchdog is already running.
drivers/watchdog/sbsa_gwdt.c | 6 ++++--
drivers/watchdog/watchdog_core.c | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
--
2.5.5
>From the functionality point of view this series may be split into the
following logic parts:
1. Export ECAM API and add parent device to pci_config_window
2. Add IO resources handling to PCI core code
3. Support for generic domain assignment based on ACPI
4. New MCFG driver
5. Implement ARM64 ACPI based PCI host controller driver under arch/arm64/
Patches has been built on top of 4.7-rc1 and can be found here:
git@github.com:semihalf-nowicki-tomasz/linux.git (pci-acpi-v8)
This has been tested on Cavium ThunderX server. Any help in reviewing and
testing is very appreciated.
v7 -> v8
- move code from drivers/acpi/pci_root_generic.c to arch/arm64/kernel/pci.c
- minor changes around domain assignment
- pci_mcfg.c improvements for parsing MCFG tables and lookup its entries
v6 -> v7
- drop quirks handling
- changes for ACPI companion and domain number assignment approach
- implement arch pcibios_{add|remove}_bus and call acpi_pci_{add|remove}_bus from there
- cleanups around nomenclature
- use resources oriented API for ECAM
- fix for based address calculation before mapping ECAM region
- remove useless lock for MCFG lookup
- move MCFG stuff to separated file pci_mcfg.c
- drop MCFG entries caching
- rebase against 4.6-rc7
v5 -> v6
- drop idea of x86 MMCONFIG code refactoring
- integrate JC's patches which introduce new ECAM API:
https://lkml.org/lkml/2016/4/11/907
git: https://github.com/jchandra-brcm/linux/ (arm64-acpi-pci-v3)
- integrate Sinan's fix for releasing IO resources, see patch [06/13]
- added ACPI support for ThunderX ECAM and PEM drivers
- rebase against 4.6-rc2
v4 -> v5
- drop MCFG refactoring group patches 1-6 from series v4 and integrate Jayachandran's patch
https://patchwork.ozlabs.org/patch/575525/
- rewrite PCI legacy IRQs allocation
- squash two patches 11 and 12 from series v4, fixed bisection issue
- changelog improvements
- rebase against 4.5-rc3
v3 -> v4
- drop Jiang's fix http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04318.html
- add Lorenzo's fix patch 19/24
- ACPI PCI bus domain number assigning cleanup
- change resource management, we now claim and reassign resources
- improvements for applying quirks
- drop Matthew's http://www.spinics.net/lists/linux-pci/msg45950.html dependency
- rebase against 4.5-rc1
v2 -> v3
- fix legacy IRQ assigning and IO ports registration
- remove reference to arch specific companion device for ia64
- move ACPI PCI host controller driver to pci_root.c
- drop generic domain assignment for x86 and ia64 as I am not
able to run all necessary test variants
- drop patch which cleaned legacy IRQ assignment since it belongs to
Mathew's series:
https://patchwork.ozlabs.org/patch/557504/
- extend MCFG quirk code
- rebase against 4.4
v1 -> v2
- move non-arch specific piece of code to dirver/acpi/ directory
- fix IO resource handling
- introduce PCI config accessors quirks matching
- moved ACPI_COMPANION_SET to generic code
v1 - https://lkml.org/lkml/2015/10/27/504
v2 - https://lkml.org/lkml/2015/12/16/246
v3 - http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04308.html
v4 - https://lkml.org/lkml/2016/2/4/646
v5 - https://lkml.org/lkml/2016/2/16/426
v6 - https://lkml.org/lkml/2016/4/15/594
Jayachandran C (2):
PCI: ecam: move ecam.h to linux/include/pci-ecam.h
PCI: ecam: Add parent device field to pci_config_window
Tomasz Nowicki (7):
pci: Add new function to unmap IO resources.
acpi, pci: Support IO resources when parsing PCI host bridge
resources.
pci, acpi: add acpi hook to assign domain number.
arm64, pci, acpi: ACPI support for legacy IRQs parsing and
consolidation with DT code.
acpi: Add generic MCFG table handling
arm64, pci, acpi: Provide ACPI-specific prerequisites for PCI bus
enumeration.
pci, acpi: ARM64 support for ACPI based generic PCI host controller
arch/arm64/Kconfig | 2 +
arch/arm64/kernel/pci.c | 143 ++++++++++++++++++++++++++++++++++--
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 1 +
drivers/acpi/pci_mcfg.c | 94 ++++++++++++++++++++++++
drivers/acpi/pci_root.c | 39 ++++++++++
drivers/pci/ecam.c | 6 +-
drivers/pci/ecam.h | 67 -----------------
drivers/pci/host/pci-host-common.c | 3 +-
drivers/pci/host/pci-host-generic.c | 3 +-
drivers/pci/host/pci-thunder-ecam.c | 3 +-
drivers/pci/host/pci-thunder-pem.c | 6 +-
drivers/pci/pci.c | 29 +++++++-
include/linux/pci-acpi.h | 2 +
include/linux/pci-ecam.h | 67 +++++++++++++++++
include/linux/pci.h | 9 ++-
16 files changed, 387 insertions(+), 90 deletions(-)
create mode 100644 drivers/acpi/pci_mcfg.c
delete mode 100644 drivers/pci/ecam.h
create mode 100644 include/linux/pci-ecam.h
--
1.9.1
From: Fu Wei <fu.wei(a)linaro.org>
This patchset:
(1)Preparation for adding GTDT support in arm_arch_timer
1. Move some enums and marcos to header file
2. Add a new enum for spi type.
3. Improve printk relevant code
(2)Introduce ACPI GTDT parser: drivers/acpi/gtdt.c
Parse all kinds of timer in GTDT table of ACPI:arch timer,
memory-mapped timer and SBSA Generic Watchdog timer.
This driver can help to simplify all the relevant timer drivers,
and separate all the ACPI GTDT knowledge from them.
(3)Simplify ACPI code for arm_arch_timer
(4)Add GTDT support for ARM memory-mapped timer
This patchset has been tested on the following platforms:
(1)ARM Foundation v8 model
Changelog:
v5: Sorting out all patches, simplify the API of GTDT driver:
GTDT driver just fills the data struct for arm_arch_timer driver.
v4: https://lists.linaro.org/pipermail/linaro-acpi/2016-March/006667.html
Delete the kvm relevant patches
Separate two patches for sorting out the code for arm_arch_timer.
Improve irq info export code to allow missing irq info in GTDT table.
v3: https://lkml.org/lkml/2016/2/1/658
Improve GTDT driver code:
(1)improve pr_* by defining pr_fmt(fmt)
(2)simplify gtdt_sbsa_gwdt_init
(3)improve gtdt_arch_timer_data_init, if table is NULL, it will try
to get GTDT table.
Move enum ppi_nr to arm_arch_timer.h, and add enum spi_nr.
Add arm_arch_timer get ppi from DT and GTDT support for kvm.
v2: https://lkml.org/lkml/2015/12/2/10
Rebase to latest kernel version(4.4-rc3).
Fix the bug about the config problem,
use CONFIG_ACPI_GTDT instead of CONFIG_ACPI in arm_arch_timer.c
v1: The first upstreaming version: https://lkml.org/lkml/2015/10/28/553
Fu Wei (6):
clocksource/drivers/arm_arch_timer: Move enums and defines to header
file
clocksource/drivers/arm_arch_timer: Add a new enum for spi type
clocksource/drivers/arm_arch_timer: Improve printk relevant code
acpi: Add GTDT table parse driver into ACPI driver
clocksource/drivers/arm_arch_timer: Simplify ACPI support code.
clocksource/drivers/arm_arch_timer: Add GTDT support for memory-mapped
timer
drivers/acpi/Kconfig | 9 +
drivers/acpi/Makefile | 1 +
drivers/acpi/acpi_gtdt.c | 309 +++++++++++++++++++++++++++++++++++
drivers/clocksource/Kconfig | 1 +
drivers/clocksource/arm_arch_timer.c | 233 ++++++++++++++++++--------
include/clocksource/arm_arch_timer.h | 33 ++++
include/linux/acpi.h | 6 +
7 files changed, 522 insertions(+), 70 deletions(-)
create mode 100644 drivers/acpi/acpi_gtdt.c
--
2.5.5
The ACPI 6.1 specification was recently released at the end of January
2016, but the arm64 kernel documentation for the use of ACPI was written
for the 5.1 version of the spec. There were significant additions to the
spec that had not yet been mentioned -- for example, the 6.0 mechanisms
added to make it easier to define processors and low power idle states,
as well as the 6.1 addition allowing regular interrupts (not just from
GPIO) be used to signal ACPI general purpose events.
This patch reflects going back through and examining the specs in detail
and updating content appropriately. Whilst there, a few odds and ends of
typos were caught as well. This brings the documentation up to date with
ACPI 6.1 for arm64.
Changes for v5:
-- Miscellaneous typos and corrections (Lorenzo Pieralisi)
-- Add linux-acpi@ ML to the distribution list (Alexey Klimov)
-- Corrections to CPPC information (Alexey Klimov)
-- ACK from Lorenzo Pieralisi
-- Updated bibliographic info (Al Stone)
Changes for v4:
-- Clarify that IORT can sometimes be optional (Jon Masters).
-- Remove "Use as needed" descriptions of ACPI objects; they provide
no substantive information and doing so simplifies maintenance of
this document over time. These have been replaced with a simpler
notice that states that unless otherwise noted, do what the ACPI
specification says is needed.
-- Corrected the _OSI object usage recommendation; it described kernel
behavior that does not exist (Al Stone).
Changes for v3:
-- Clarify use of _LPI/_RDI (Vikas Sajjan)
-- Whitespace cleanup as pointed out by checkpatch
Changes for v2:
-- Clean up white space (Harb Abdulhahmid)
-- Clarification on _CCA usage (Harb Abdulhamid)
-- IORT moved to required from recommended (Hanjun Guo)
-- Clarify IORT description (Hanjun Guo)
Al Stone (1):
ARM64: ACPI: Update documentation for latest specification version
Documentation/arm64/acpi_object_usage.txt | 343 ++++++++++++++++--------------
Documentation/arm64/arm-acpi.txt | 40 ++--
2 files changed, 213 insertions(+), 170 deletions(-)
--
2.5.5
>From the functionality point of view this series may be split into the
following logic parts:
1. New ECAM API and update for users of the pci-host-common API
2. Necessary fixes as the preparation for using driver on ARM64.
3. Use new MCFG interface and implement generic ACPI based PCI host controller driver.
4. Enable above driver on ARM64
Patches has been built on top of 4.6-rc7 and can be found here:
git@github.com:semihalf-nowicki-tomasz/linux.git (pci-acpi-v7)
This has been tested on Cavium ThunderX server. Any help in reviewing and
testing is very appreciated.
v6 -> v7
- drop quirks handling
- changes for ACPI companion and domain number assignment approach
- implement arch pcibios_{add|remove}_bus and call acpi_pci_{add|remove}_bus from there
- cleanups around nomenclature
- use resources oriented API for ECAM
- fix for based address calculation before mapping ECAM region
- remove useless lock for MCFG lookup
- move MCFG stuff to separated file pci_mcfg.c
- drop MCFG entries caching
- rebase against 4.6-rc7
v5 -> v6
- drop idea of x86 MMCONFIG code refactoring
- integrate JC's patches which introduce new ECAM API:
https://lkml.org/lkml/2016/4/11/907
git: https://github.com/jchandra-brcm/linux/ (arm64-acpi-pci-v3)
- integrate Sinan's fix for releasing IO resources, see patch [06/13]
- added ACPI support for ThunderX ECAM and PEM drivers
- rebase against 4.6-rc2
v4 -> v5
- drop MCFG refactoring group patches 1-6 from series v4 and integrate Jayachandran's patch
https://patchwork.ozlabs.org/patch/575525/
- rewrite PCI legacy IRQs allocation
- squash two patches 11 and 12 from series v4, fixed bisection issue
- changelog improvements
- rebase against 4.5-rc3
v3 -> v4
- drop Jiang's fix http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04318.html
- add Lorenzo's fix patch 19/24
- ACPI PCI bus domain number assigning cleanup
- change resource management, we now claim and reassign resources
- improvements for applying quirks
- drop Matthew's http://www.spinics.net/lists/linux-pci/msg45950.html dependency
- rebase against 4.5-rc1
v2 -> v3
- fix legacy IRQ assigning and IO ports registration
- remove reference to arch specific companion device for ia64
- move ACPI PCI host controller driver to pci_root.c
- drop generic domain assignment for x86 and ia64 as I am not
able to run all necessary test variants
- drop patch which cleaned legacy IRQ assignment since it belongs to
Mathew's series:
https://patchwork.ozlabs.org/patch/557504/
- extend MCFG quirk code
- rebase against 4.4
v1 -> v2
- move non-arch specific piece of code to dirver/acpi/ directory
- fix IO resource handling
- introduce PCI config accessors quirks matching
- moved ACPI_COMPANION_SET to generic code
v1 - https://lkml.org/lkml/2015/10/27/504
v2 - https://lkml.org/lkml/2015/12/16/246
v3 - http://lkml.iu.edu/hypermail/linux/kernel/1601.1/04308.html
v4 - https://lkml.org/lkml/2016/2/4/646
v5 - https://lkml.org/lkml/2016/2/16/426
v6 - https://lkml.org/lkml/2016/4/15/594
Jayachandran C (2):
PCI: Provide common functions for ECAM mapping
PCI: generic, thunder: update to use generic ECAM API
Tomasz Nowicki (9):
pci, of: Move the PCI I/O space management to PCI core code.
pci: Add new function to unmap IO resources.
acpi, pci: Support IO resources when parsing PCI host bridge
resources.
pci, acpi: Provide a way to assign bus domain number.
pci, acpi: Handle ACPI companion assignment.
pci, acpi: Support for ACPI based generic PCI host controller
arm64, pci, acpi: ACPI support for legacy IRQs parsing and
consolidation with DT code.
arm64, pci, acpi: Provide ACPI-specific prerequisites for PCI bus
enumeration.
arm64, pci, acpi: Start using ACPI based PCI host controller driver
for ARM64.
arch/arm64/Kconfig | 1 +
arch/arm64/kernel/pci.c | 34 +++-----
drivers/acpi/Kconfig | 8 ++
drivers/acpi/Makefile | 1 +
drivers/acpi/pci_mcfg.c | 97 ++++++++++++++++++++++
drivers/acpi/pci_root.c | 33 ++++++++
drivers/acpi/pci_root_generic.c | 149 +++++++++++++++++++++++++++++++++
drivers/of/address.c | 116 +-------------------------
drivers/pci/Kconfig | 3 +
drivers/pci/Makefile | 2 +
drivers/pci/ecam.c | 161 ++++++++++++++++++++++++++++++++++++
drivers/pci/ecam.h | 72 ++++++++++++++++
drivers/pci/host/Kconfig | 1 +
drivers/pci/host/pci-host-common.c | 114 +++++++++++--------------
drivers/pci/host/pci-host-common.h | 47 -----------
drivers/pci/host/pci-host-generic.c | 52 +++---------
drivers/pci/host/pci-thunder-ecam.c | 39 ++-------
drivers/pci/host/pci-thunder-pem.c | 92 ++++++++++-----------
drivers/pci/pci.c | 150 ++++++++++++++++++++++++++++++++-
drivers/pci/probe.c | 2 +
include/linux/of_address.h | 9 --
include/linux/pci-acpi.h | 14 ++++
include/linux/pci.h | 11 ++-
23 files changed, 823 insertions(+), 385 deletions(-)
create mode 100644 drivers/acpi/pci_mcfg.c
create mode 100644 drivers/acpi/pci_root_generic.c
create mode 100644 drivers/pci/ecam.c
create mode 100644 drivers/pci/ecam.h
delete mode 100644 drivers/pci/host/pci-host-common.h
--
1.9.1
FWTS 16.05.01 is released.
It is available from:
Tar: http://fwts.ubuntu.com/release/fwts-V16.05.01.tar.gz
PPA: https://launchpad.net/~firmware-testing-team/+archive/ubuntu/ppa-fwts-stable
Release notes: https://wiki.ubuntu.com/FirmwareTestSuite/ReleaseNotes/16.05.01
= New Features =
* acpi: add MSCT table sanity check
* acpi: add EINJ table sanity check
* ACPICA: Update to version 20160318 (LP: #1559312)
* Introduce olog scan, to check OPAL msglog.
* Introduce IPMI BMC Info
* devicetree: add infrastructure for device-tree tests
* devicetree/dt_sysinfo: Add device tree system information tests
* devicetree/dt_base: Add base device-tree validity checks
* debian/control: change depends on libjson0-dev to libjson-c-dev
* auto-packager: mkpackage.sh: add yakkety and remove vivid
* debian/control: add back libjson0-dev for precise
= Fixed Bugs =
* cpufreq: skip frequency performance test if cpufreq_settable is false
* cpufreq: skip frequency claimed maximum test with intel_pstate
* Add .gitignore
* Add cppcheck static analysis checking script
* uefi: uefirtauthvar: capitalize macro getvar_buf_size
* cpufreq: make stat failure message a little more human friendly
* acpi: einj, msct: only build in these tests on ACPI enabled systems
* hpet: warn if HPET Device address not found in DSDT/SSDT
* kernelscan: speed up parser using hash lookup, add more print funcs
* kernelscan: remove need to pre-process with a CPP phase
* kernelscan.sh: remove -E and -P phases to parsing
* uefidump: dump the optional data for load option on boot device
* uefidump: dump the optional data for load option on driver device
* uefidump: add checking the resonable path list length for load option
* pipeio: Add fwts_pipe_open_rw
* pipeio: Add fwts_pipe_readwrite
* pipeio: Add fwts_pipe_close2 to cleanup from fwts_open_pipe_rw.
* acpi: spcr: add missing debug port types (LP: #1578433)
* debian/control: add libfdt-dev and device-tree-compiler
* configure.ac: update email address, use fwts-devel instead
* fwts: manual: update date, add new contributor, add dtc to SEE ALSO
* fwts: manual: ommitted Paul Menzel from the contributions list
* lib: fwts_args: handle cases to set optarg_handler for long options.
* acpi: dbg2: fix incorrect address size check with GAS struct
* data: klog.json: Fix typo in docking label text
* acpi: gtdt: fix buffer overrun comparison
* acpi: gtdt: fix buffer overrun comparison (for SBSA)
* acpi: bert: fix format specifiers for boot error region
* lib: fwts_olog: minor fwts coding style reformatting
* lib: fwts_olog: fix fclose on already closed files.
* lib: fwts_olog: fix memory leak on buffer on error exit path
* lib: fwts_olog: ensure buffer is '\0' terminated per read, minor cleanups
* lib: fwts_olog: avoid TOCTOU race on stat and fopen
* Revert "acpi: tpm2: add check for zero control area address (LP: #1506442)"
* apic: apicedge: fix parsing of /proc/interrupts (LP: #1575783)
* lib: fwts_pipeio: set *list to NULL on fwts_pipe_read error
* cpu: msr: do not check SYSENTER_* MSRs (LP: #1582005)
* fwts: lib: clean up static analysis warnings
* uefidump: clean up the unnecessary period
* pipeio: fix fwts_pipe_read return value when child produces no output
* pipeio: Fix error handling in fwts_pipe_exec
* pipeio: Rename fwts_pipe_open to fwts_pipe_open_ro, add fd as
output argument
* pci/aspm: Fix grammar in ASPM advice (LP: #1581988)
* bios: mtrr: fix cache type corner case at start of mtrr range
* bios: mtrr: fix cache type corner case at end of mtrr range
* bios: mtrr: redefine the end point of memory ranges
= Detail Changelog =
To check /usr/share/doc/fwts/changelog.Debian.gz or
fwts_16.05.01-0ubuntu1.debian.tar.gz from
https://launchpad.net/ubuntu/+source/fwts
--
Cheers,
Alex Hung
The PCI Routing Table (_PRT) for Juno does not specify the Interrupt
trigger type and polarity. In the absence of this information, the
kernel uses PCI default interrupt type (level triggered, active low)
which is incompatible with GICv2 compliant interrupt controller such
as on Juno.
Absence of interrupt type leads to errors such as following in kernel
boot log -
[ 1.353696] genirq: Setting trigger mode 8 for irq 9 failed (gic_set_type+0x0/0x5c)
[ 1.478286] genirq: Setting trigger mode 8 for irq 17 failed (gic_set_type+0x0/0x5c)
[ 1.563723] genirq: Setting trigger mode 8 for irq 18 failed (gic_set_type+0x0/0x5c)
Fix this issue by providing the correct information (level triggered,
active high) to the kernel by using the PCI Link device.
Signed-off-by: Punit Agrawal <punit.agrawal(a)arm.com>
---
Hi,
This patch to the OpenPlatformPkg for Juno ACPI tables fixes an issue
I reported earlier[0].
All feedback welcome.
Thanks,
Punit
[0] https://lists.linaro.org/pipermail/linaro-uefi/2016-April/001776.html
Platforms/ARM/Juno/AcpiTables/AcpiSsdtRootPci.asl | 60 +++++++++++++++++------
1 file changed, 44 insertions(+), 16 deletions(-)
diff --git a/Platforms/ARM/Juno/AcpiTables/AcpiSsdtRootPci.asl b/Platforms/ARM/Juno/AcpiTables/AcpiSsdtRootPci.asl
index 800d2cb..55b76d6 100644
--- a/Platforms/ARM/Juno/AcpiTables/AcpiSsdtRootPci.asl
+++ b/Platforms/ARM/Juno/AcpiTables/AcpiSsdtRootPci.asl
@@ -15,20 +15,43 @@
#include "ArmPlatform.h"
/*
- See Reference [1] 6.2.12
- "There are two ways that _PRT can be used. ...
- In the second model, the PCI interrupts are hardwired to specific interrupt
- inputs on the interrupt controller and are not configurable. In this case,
- the Source field in _PRT does not reference a device, but instead contains
- the value zero, and the Source Index field contains the global system
- interrupt to which the PCI interrupt is hardwired."
+ See ACPI 6.1 Section 6.2.13
+
+ There are two ways that _PRT can be used. ...
+
+ In the first model, a PCI Link device is used to provide additional
+ configuration information such as whether the interrupt is Level or
+ Edge triggered, it is active High or Low, Shared or Exclusive, etc.
+
+ In the second model, the PCI interrupts are hardwired to specific
+ interrupt inputs on the interrupt controller and are not
+ configurable. In this case, the Source field in _PRT does not
+ reference a device, but instead contains the value zero, and the
+ Source Index field contains the global system interrupt to which the
+ PCI interrupt is hardwired.
+
+ We use the first model with link indirection to set the correct
+ interrupt type as PCI defaults (Level Triggered, Active Low) are not
+ compatible with GICv2.
*/
-#define PRT_ENTRY(Address, Pin, Interrupt) \
- Package (4) { \
+#define LNK_DEVICE(Unique_Id, Link_Name, irq) \
+ Device(Link_Name) { \
+ Name(_HID, EISAID("PNP0C0F")) \
+ Name(_UID, Unique_Id) \
+ Name(_PRS, ResourceTemplate() { \
+ Interrupt(ResourceProducer, Level, ActiveHigh, Exclusive) { irq } \
+ }) \
+ Method (_CRS, 0) { Return (_PRS) } \
+ Method (_SRS, 1) { } \
+ Method (_DIS) { } \
+ }
+
+#define PRT_ENTRY(Address, Pin, Link) \
+ Package (4) { \
Address, /* uses the same format as _ADR */ \
Pin, /* The PCI pin number of the device (0-INTA, 1-INTB, 2-INTC, 3-INTD). */ \
- Zero, /* allocated from the global interrupt pool. */ \
- Interrupt /* global system interrupt number */ \
+ Link, /* Interrupt allocated via Link device. */ \
+ Zero /* global system interrupt number (no used) */ \
}
/*
@@ -36,7 +59,7 @@
"High word–Device #, Low word–Function #. (for example, device 3, function 2 is
0x00030002). To refer to all the functions on a device #, use a function number of FFFF)."
*/
-#define ROOT_PRT_ENTRY(Pin, Interrupt) PRT_ENTRY(0x0000FFFF, Pin, Interrupt)
+#define ROOT_PRT_ENTRY(Pin, Link) PRT_ENTRY(0x0000FFFF, Pin, Link)
// Device 0 for Bridge.
@@ -45,6 +68,11 @@ DefinitionBlock("SsdtPci.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM
//
// PCI Root Complex
//
+ LNK_DEVICE(1, LNKA, 168)
+ LNK_DEVICE(2, LNKB, 169)
+ LNK_DEVICE(3, LNKC, 170)
+ LNK_DEVICE(4, LNKD, 171)
+
Device(PCI0)
{
Name(_HID, EISAID("PNP0A08")) // PCI Express Root Bridge
@@ -60,10 +88,10 @@ DefinitionBlock("SsdtPci.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM
// PCI Routing Table
Name(_PRT, Package() {
- ROOT_PRT_ENTRY(0, 168), // INTA
- ROOT_PRT_ENTRY(1, 169), // INTB
- ROOT_PRT_ENTRY(2, 170), // INTC
- ROOT_PRT_ENTRY(3, 171), // INTD
+ ROOT_PRT_ENTRY(0, LNKA), // INTA
+ ROOT_PRT_ENTRY(1, LNKB), // INTB
+ ROOT_PRT_ENTRY(2, LNKC), // INTC
+ ROOT_PRT_ENTRY(3, LNKD), // INTD
})
// Root complex resources
Method (_CRS, 0, Serialized) {
--
2.8.0.rc3