This patch set trys to convert GIC to ACPI which based on patches
from Amit, I rework them and try to get things simpler.
In MADT table, there are GIC cpu interface base address and
GIC distributor base address, use them to convert GIC to ACPI.
GIC should be converted after all the devices refer to GIC are
converted. But this patch set can be safely applied to linaro-acpi
git tree if we don't remove the DT node of GIC, the node of
GIC can be removed after all the devices converted to ACPI.
v2:
a) fix missed iounmap() when return in error path;
b) add stab for acpi_gic_init(void) when !CONFIG_ACPI
C) modify the GSI mapping from DT to ACPI
d) remove the hack code and modify the change log a bit
Amit Daniel Kachhap (2):
irqdomain: Add a new API irq_create_acpi_mapping()
ACPI: ARM: Update acpi_register_gsi to register with the core IRQ
subsystem
Hanjun Guo (2):
irqchip / GIC: do not set default host for GIC domain multi-times
when ACPI enabled
ARM / GIC: convert GIC to ACPI using the information in MADT
arch/arm64/kernel/irq.c | 4 ++
drivers/acpi/plat/arm/boot.c | 98 ++++++++++++++++++++++++++++++++++++------
drivers/irqchip/irq-gic.c | 5 ++-
include/linux/acpi.h | 8 ++++
kernel/irq/irqdomain.c | 27 ++++++++++++
5 files changed, 127 insertions(+), 15 deletions(-)
--
1.7.9.5
Fix compilation error:
drivers/acpi/apei/hest.c: In function ‘acpi_hest_init’:
drivers/acpi/apei/hest.c:268:7: error: ‘acpi_disable_cmcff’ undeclared (first use in this function)
drivers/acpi/apei/hest.c:268:7: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [drivers/acpi/apei/hest.o] Error 1
MCE is X86 platform specific and should be consider only if MCE is configured.
---
drivers/acpi/apei/hest.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
index f5e37f3..6d06cce 100644
--- a/drivers/acpi/apei/hest.c
+++ b/drivers/acpi/apei/hest.c
@@ -36,7 +36,9 @@
#include <linux/io.h>
#include <linux/platform_device.h>
#include <acpi/apei.h>
+#ifdef CONFIG_X86_MCE
#include <asm/mce.h>
+#endif
#include "apei-internal.h"
@@ -126,9 +128,9 @@ EXPORT_SYMBOL_GPL(apei_hest_parse);
* Check if firmware advertises firmware first mode. We need FF bit to be set
* along with a set of MC banks which work in FF mode.
*/
+#ifdef CONFIG_X86_MCE
static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data)
{
-#ifdef CONFIG_X86_MCE
int i;
struct acpi_hest_ia_corrected *cmc;
struct acpi_hest_ia_error_bank *mc_bank;
@@ -153,9 +155,10 @@ static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr, void *data)
mc_bank = (struct acpi_hest_ia_error_bank *)(cmc + 1);
for (i = 0; i < cmc->num_hardware_banks; i++, mc_bank++)
mce_disable_bank(mc_bank->bank_number);
-#endif
+
return 1;
}
+#endif
struct ghes_arr {
struct platform_device **ghes_devs;
@@ -263,8 +266,10 @@ void __init acpi_hest_init(void)
goto err;
}
+#ifdef CONFIG_X86_MCE
if (!acpi_disable_cmcff)
apei_hest_parse(hest_parse_cmc, NULL);
+#endif
if (!ghes_disable) {
rc = apei_hest_parse(hest_parse_ghes_count, &ghes_count);
--
1.7.9.5
From: Naresh Bhat <naresh.bhat(a)linaro.org>
While testing Brandon Anderson patches on foundation v8 model, the model use to hang
while booting, because UART is unable to find the clock source.
...
.....
ACPI: No dock devices found.
acpi_amba_add_device(): amba_device_add() failed (-2) for LINA000A:00
acpi_amba_add_device(): amba_device_add() failed (-2) for LINA000A:01
acpi_amba_add_device(): amba_device_add() failed (-2) for LINA000A:02
acpi_amba_add_device(): amba_device_add() failed (-2) for LINA000A:03
...
....
This patch issued to fix the same issue under foundation v8 platform dsdt asl file.
Naresh Bhat (1):
foundation-v8: Add clk changes
platforms/foundation-v8.acpi/dsdt.asl | 47 +++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
--
1.7.9.5
From: Al Stone <ahs3(a)redhat.com>
This series of patches starts with Hanjun's patch to create a kernel
config item for CONFIG_ACPI_REDUCED_HARDWARE [0]. Building on that, I
then reviewed all of the code that touched any of several fields in the
FADT that the OSPM is supposed to ignore when ACPI is in Hardware Reduced
mode [1]. Any time there was a use of one of the fields to be ignored,
I evaluated whether or not the code was implementing Hardware Reduced
mode correctly. Similarly, for each the flags in the FADT flags field
that are to be ignored in Hardware Reduced mode, the kernel code was again
scanned for proper usage. The remainder of the patches are to fix all of
the situations I could find where the kernel would not behave correctly
in this ACPI mode.
These are being submitted as an RFC to the linaro-acpi@ list so I can get
some other eyes looking at them before sending them to linux-acpi@ where
they really need to go. These seem to work just fine on the RTSM model
for ARMv7, both with and without ACPI enabled, and with and without
ACPI_REDUCED_HARDWARE enabled. However, there's no way I can think of
or test all possible scenarios so feedback would be greatly appreciated.
NB: these changes are only applicable to the LEG ACPI working tree. The
macros in patch 1/13 will have to change for the linux-acpi tree.
Changes for v3:
-- Consistent use of #if (!ACPI_REDUCED_HARDWARE)
-- Use of ACPI_HW_DEPENDENT_RETURN_{*} macros
-- Simplify wherever possible
Changes for v2:
-- Change patch series title
-- Add in the FACS global lock patch as further hardware reduced mode
cleanup that is needed
-- Remove whitespace change that should not have gotten in
[1] Please see the ACPI Specification v5.0 for details on Hardware Reduced
mode.
[0] List at https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/AcpiReducedHw#Section_5…
Al Stone (13):
ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
ACPI: bus master reload not supported in reduced HW mode
ACPI: clean up compiler warning about uninitialized field
ACPI: HW reduced mode does not allow use of the FADT sci_interrupt
field
ACPI: ARM: exclude calls on ARM platforms, not include them on x86
ACPI: ensure several FADT fields are only used in HW reduced mode
ACPI: do not reserve memory regions for some FADT entries in HW
reduced mode
ACPI: in HW reduced mode, getting power latencies from FADT is not
allowed
ACPI: add clarifying comment about processor throttling in HW reduced
mode
ACPI: ACPI_FADT_C2_MP_SUPPORTED must be ignored in HW reduced mode
ACPI: use of ACPI_FADT_32BIT_TIMER is not allowed in HW reduced mode
ACPI: correct #ifdef so compilation without ACPI_REDUCED_HARDWARE
works
ACPI: ARM/ARM64: ensure the ACPI FACS global_lock is never used in HW
reduced mode
arch/arm/include/asm/acpi.h | 3 ++-
arch/arm64/include/asm/acpi.h | 3 ++-
drivers/acpi/Kconfig | 8 ++++++++
drivers/acpi/acpica/utxface.c | 3 ++-
drivers/acpi/bus.c | 7 ++++---
drivers/acpi/osl.c | 28 ++++++++++++++++++++--------
drivers/acpi/pci_link.c | 14 ++++++++------
drivers/acpi/plat/arm/boot.c | 2 ++
drivers/acpi/processor_idle.c | 19 ++++++++++++-------
drivers/acpi/processor_throttling.c | 8 ++++++++
drivers/acpi/sleep.c | 2 +-
include/acpi/acconfig.h | 2 +-
include/acpi/acpixf.h | 6 ++++++
include/acpi/platform/aclinux.h | 6 ++++++
14 files changed, 82 insertions(+), 29 deletions(-)
--
1.8.3.1
From: Al Stone <ahs3(a)redhat.com>
This series of patches starts with Hanjun's patch to create a kernel
config item for CONFIG_ACPI_REDUCED_HARDWARE [0]. Building on that, I
then reviewed all of the code that touched any of several fields in the
FADT that the OSPM is supposed to ignore when ACPI is in Hardware Reduced
mode [1]. Any time there was a use of one of the fields to be ignored,
I evaluated whether or not the code was implementing Hardware Reduced
mode correctly. Similarly, for each the flags in the FADT flags field
that are to be ignored in Hardware Reduced mode, the kernel code was again
scanned for proper usage. The remainder of the patches are to fix all of
the situations I could find where the kernel would not behave correctly
in this ACPI mode.
These are being submitted as an RFC to the linaro-acpi@ list so I can get
some other eyes looking at them before sending them to linux-acpi@ where
they really need to go. These seem to work just fine on the RTSM model
for ARMv7, both with and without ACPI enabled, and with and without
ACPI_REDUCED_HARDWARE enabled. However, there's no way I can think of
or test all possible scenarios so feedback would be greatly appreciated.
Changes for v2:
-- Change patch series title
-- Add in the FACS global lock patch as further hardware reduced mode
cleanup that is needed
-- Remove whitespace change that should not have gotten in
[1] Please see the ACPI Specification v5.0 for details on Hardware Reduced
mode.
[0] List at https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/AcpiReducedHw#Section_5…
Al Stone (13):
ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
ACPI: bus master reload is unsupported in ACPI reduced HW mode
ACPI: clean up compiler warning about uninitialized field
ACPI: HW reduced mode does not allow use of the FADT sci_interrupt
field
ACPI: ARM: exclude calls on ARM platforms, not include them on x86
ACPI: ensure several FADT fields are only used in HW reduced mode
ACPI: do not reserve memory regions for some FADT entries in HW
reduced mode
ACPI: in HW reduced mode, getting power latencies from FADT is not
allowed
ACPI: add clarifying comment about processor throttling in HW reduced
mode
ACPI: ACPI_FADT_C2_MP_SUPPORTED must be ignored in HW reduced mode
ACPI: use of ACPI_FADT_32BIT_TIMER is not allowed in HW reduced mode
ACPI: correct #ifdefs so compiling without ACPI_REDUCED_HARDWARE works
properly
ACPI: ARM/ARM64: ensure the ACPI FACS global_lock is never used in HW
reduced mode
arch/arm/include/asm/acpi.h | 3 ++-
arch/arm64/include/asm/acpi.h | 3 ++-
drivers/acpi/Kconfig | 8 ++++++++
drivers/acpi/acpica/utxface.c | 3 ++-
drivers/acpi/bus.c | 9 +++++----
drivers/acpi/osl.c | 28 ++++++++++++++++++++--------
drivers/acpi/pci_link.c | 14 ++++++++------
drivers/acpi/plat/arm/boot.c | 2 ++
drivers/acpi/processor_idle.c | 29 ++++++++++++++++++++++++-----
drivers/acpi/processor_throttling.c | 8 ++++++++
drivers/acpi/sleep.c | 2 +-
include/acpi/acconfig.h | 2 +-
include/acpi/platform/aclinux.h | 6 ++++++
13 files changed, 89 insertions(+), 28 deletions(-)
--
1.8.3.1
On 29 October 2013 09:30, Lv Zheng <lv.zheng(a)intel.com> wrote:
> From: Bob Moore <robert.moore(a)intel.com>
>
> Surround definition of this with a #ifndef so that the kernel
> can define it elsewhere if desired.
>
> Signed-off-by: Bob Moore <robert.moore(a)intel.com>
> Signed-off-by: Lv Zheng <lv.zheng(a)intel.com>
>
Reviewed-by: Hanjun Guo <hanjun.guo(a)linaro.org>
> ---
> include/acpi/acconfig.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/acpi/acconfig.h b/include/acpi/acconfig.h
> index 1c16f82..d98c670 100644
> --- a/include/acpi/acconfig.h
> +++ b/include/acpi/acconfig.h
> @@ -100,7 +100,9 @@
> * ACPI PM timer
> * FACS table (Waking vectors and Global Lock)
> */
> +#ifndef ACPI_REDUCED_HARDWARE
> #define ACPI_REDUCED_HARDWARE FALSE
> +#endif
>
>
> /******************************************************************************
> *
> --
> 1.7.10
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo(a)vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
From: Brandon Anderson <brandon.anderson(a)amd.com>
This is a proposal for ACPI driver probing of the ARM AMBA devices currently listed under ‘iofpga’ in the RTSM dts file. The main addition is drivers/amba/acpi.c which fits the role of an AMBA bus ‘connector resource’ for ACPI using struct amba_device.
I have not yet figured out the implementation details regarding clocks (handled in the dts file with clock-names). However, I have included a proposed ASL format for clock information in the DSDT example below. With the last patch that hacks the clock info, this prototype will run on the Foundation and RTSM models.
These patches require Hanjun’s fixed-clock patches to be applied first on top of a Linaro ACPI kernel: https://git.linaro.org/gitweb?p=arm/acpi/leg-kernel.git;a=summary
Please comment on both the concept and the implementation.
Brandon Anderson (3):
Remove UART and KMI entries from DTS file
Prototype of AMBA bus 'connector resource' for ACPI
Hack clock names to get prototype running
arch/arm64/boot/dts/foundation-v8-acpi.dts | 10 +-
arch/arm64/boot/dts/rtsm_ve-aemv8a-acpi.dts | 4 +
arch/arm64/boot/dts/rtsm_ve-motherboard-acpi.dtsi | 4 +
drivers/acpi/acpi_platform.c | 2 +
drivers/amba/Makefile | 2 +-
drivers/amba/acpi.c | 172 +++++++++++++++++++++
drivers/clk/clk-fixed-rate.c | 15 +-
7 files changed, 203 insertions(+), 6 deletions(-)
create mode 100644 drivers/amba/acpi.c
--
1.7.9.5
---
Device (AMBA) {
Name (_HID, "AMBA0000") /* the parallel to "arm,primecell" in DTS */
Name (_UID, 0)
/* Define 'apb_pclk' as a default clock source since it is
common with devices below */
Method(_DSM, 4, NotSerialized) {
Store (Package (3)
{
"clock-name", "apb_pclk", "\\_SB_.CLK0",
}, Local0)
Return (Local0)
}
Device (KMI0) {
Name (_ADR,0x1c060000)
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c060000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {44}
})
Return (RBUF)
}
}
Device (KMI1) {
Name (_ADR,0x1c070000)
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c070000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {45}
})
Return (RBUF)
}
}
Device (SER0) {
Name (_ADR,0x1c090000) // UART0
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c090000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {37}
})
Return (RBUF)
}
}
Device (SER1) {
Name (_ADR,0x1c0a0000) // UART1
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c0a0000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {38}
})
Return (RBUF)
}
}
Device (SER2) {
Name (_ADR,0x1c0b0000) // UART2
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c0b0000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {39}
})
Return (RBUF)
}
}
Device (SER3) {
Name (_ADR,0x1c0c0000) // UART3
Method (_CRS, 0x0, Serialized) {
Name (RBUF, ResourceTemplate () {
Memory32Fixed (ReadWrite, 0x1c0c0000, 0x00010000)
Interrupt (ResourceConsumer, Edge, ActiveBoth,
Exclusive, , , ) {40}
})
Return (RBUF)
}
}
}
From: Al Stone <ahs3(a)redhat.com>
This function was not defined as a pointer to a function but as a function.
This resulted in a "test is always true" warning in drivers/acpi/sleep.c where
it tested for the existence of the function.
Signed-off-by: Al Stone <al.stone(a)linaro.org>
---
arch/arm/include/asm/acpi.h | 2 +-
arch/arm64/include/asm/acpi.h | 2 +-
drivers/acpi/plat/arm/sleep.c | 11 +++++++++--
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/arch/arm/include/asm/acpi.h b/arch/arm/include/asm/acpi.h
index ca7efaa..31f21fd 100644
--- a/arch/arm/include/asm/acpi.h
+++ b/arch/arm/include/asm/acpi.h
@@ -115,7 +115,7 @@ extern struct acpi_arm_root acpi_arm_rsdp_info;
void arm_acpi_reserve_memory(void);
/* Low-level suspend routine. */
-extern int acpi_suspend_lowlevel(void);
+extern int (*acpi_suspend_lowlevel)(void);
extern void prefill_possible_map(void);
diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index a19b73f..aee7190 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -93,7 +93,7 @@ extern struct acpi_arm_root acpi_arm_rsdp_info;
void arm_acpi_reserve_memory(void);
/* Low-level suspend routine. */
-extern int acpi_suspend_lowlevel(void);
+extern int (*acpi_suspend_lowlevel)(void);
extern void prefill_possible_map(void);
diff --git a/drivers/acpi/plat/arm/sleep.c b/drivers/acpi/plat/arm/sleep.c
index 9129c7e..ac5e343 100644
--- a/drivers/acpi/plat/arm/sleep.c
+++ b/drivers/acpi/plat/arm/sleep.c
@@ -1,15 +1,22 @@
/*
- * sleep.c - x86-specific ACPI sleep support.
+ * sleep.c - ARM-specific ACPI sleep support.
*
* Copyright (C) 2001-2003 Patrick Mochel
* Copyright (C) 2001-2003 Pavel Machek <pavel(a)ucw.cz>
*/
+#ifdef CONFIG_ACPI_SLEEP
int acpi_suspend_lowlevel(void)
{
- /* BOZO: dummy routine; see below for actual */
+ /*
+ * TODO: connect this function to PSCI when it becomes available,
+ * and if actually needed.
+ */
return 0;
}
+#else
+int acpi_suspend_lowlevel(void);
+#endif
#ifdef CONFIG_X86
/* BOZO: disable everything for now... */
--
1.8.3.1
Hi,
This is interesting answer to my question so I am shearing it with you.
Tomasz
-------- Original Message --------
Subject: Re: APEI question
Date: Thu, 24 Oct 2013 02:38:26 -0400
From: Chen, Gong <gong.chen(a)linux.intel.com>
To: Tomasz Nowicki <tn(a)semihalf.com>
On Wed, Oct 23, 2013 at 11:16:13AM +0200, Tomasz Nowicki wrote:
> Date: Wed, 23 Oct 2013 11:16:13 +0200
> From: Tomasz Nowicki <tn(a)semihalf.com>
> To: chen gong <Chen(a)gchen.bj.intel.com>
> CC: gong.chen(a)linux.intel.com
> Subject: Re: APEI question
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101
> Thunderbird/24.0
>
> Let me put this in the different way.
>
> ghes_do_proc() process errors which are reported via APEI. It
> handles with CPER_SEC_PLATFORM_MEM and CPER_SEC_PCIE error types. I
> wander why this function is not taking care of
> CPER_SEC_PROC_GENERIC.
>
Yes, the spec has covered all kinds of situations but the reality is
cruel. Even FFM is enabled, not all errors can be covered by
firmware. Based on the fact, only memory/IO CE and IO UC errors can
be handled well by firmware by now. For processer errors, as a fact,
I never saw so-called CE errors, only UC, even fatal error. As a
result, you will get a MCE. You can consider that firmware just
*bypass* this kind of error. In some way, that's why eMCA happens
as a successor. That's all. Otherwise I will cross the red line ;-).
From: Al Stone <ahs3(a)redhat.com>
This series of patches starts with Hanjun's patch to create a kernel
config item for CONFIG_ACPI_REDUCED_HARDWARE [0]. Building on that, I
then reviewed all of the code that touched any of several fields in the
FADT that the OSPM is supposed to ignore when ACPI is in Hardware Reduced
mode [1]. Any time there was a use of one of the fields to be ignored,
I evaluated whether or not the code was implementing Hardware Reduced
mode correctly. Similarly, for each the flags in the FADT flags field
that are to be ignored in Hardware Reduced mode, the kernel code was again
scanned for proper usage. The remainder of the patches are to fix all of
the situations I could find where the kernel would not behave correctly
in this ACPI mode.
These are being submitted as an RFC to the linaro-acpi@ list so I can get
some other eyes looking at them before sending them to linux-acpi@ where
they really need to go. These seem to work just fine on the RTSM model
for ARMv7, both with and without ACPI enabled, and with and without
ACPI_REDUCED_HARDWARE enabled. However, there's no way I can think of
or test all possible scenarios so feedback would be greatly appreciated.
[1] Please see the ACPI Specification v5.0 for details on Hardware Reduced
mode.
[0] List at https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/AcpiReducedHw#Section_5…
Al Stone (12):
ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
ACPI: bus master reload is unsupported in ACPI reduced HW mode
ACPI: clean up compiler warning about uninitialized field
ACPI: HW reduced mode does not allow use of the FADT sci_interrupt
field
ACPI: ARM: exclude calls on ARM platforms, not include them on x86
ACPI: ensure several FADT fields are only used in HW reduced mode
ACPI: do not reserve memory regions for some FADT entries in HW
reduced mode
ACPI: in HW reduced mode, getting power latencies from FADT is not
allowed
ACPI: add clarifying comment about processor throttling in HW reduced
mode
ACPI: ACPI_FADT_C2_MP_SUPPORTED must be ignored in HW reduced mode
ACPI: use of ACPI_FADT_32BIT_TIMER is not allowed in HW reduced mode
ACPI: correct #ifdefs so compiling without ACPI_REDUCED_HARDWARE works
properly
drivers/acpi/Kconfig | 8 ++++++++
drivers/acpi/acpica/utxface.c | 3 ++-
drivers/acpi/bus.c | 9 +++++----
drivers/acpi/osl.c | 28 ++++++++++++++++++++--------
drivers/acpi/pci_link.c | 14 ++++++++------
drivers/acpi/processor_idle.c | 29 ++++++++++++++++++++++++-----
drivers/acpi/processor_throttling.c | 8 ++++++++
drivers/acpi/sleep.c | 2 +-
include/acpi/acconfig.h | 2 +-
include/acpi/platform/aclinux.h | 6 ++++++
10 files changed, 83 insertions(+), 26 deletions(-)
--
1.8.3.1
From: Al Stone <ahs3(a)redhat.com>
This patch is dependent on the CONFIG_ACPI_REDUCED_HARDWARE patch
already being in place. It may even make sense to be part of that
series.
The FACS contains a global_lock that is never to be used in Hardware
Reduced mode. Instead of taking chances, this patch takes out the
macros used for the global_lock if we are in Hardware Reduced mode
so that they cannot be used.
Signed-off-by: Al Stone <al.stone(a)linaro.org>
---
arch/arm/include/asm/acpi.h | 3 ++-
arch/arm64/include/asm/acpi.h | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/acpi.h b/arch/arm/include/asm/acpi.h
index ca7efaa..cf67b09 100644
--- a/arch/arm/include/asm/acpi.h
+++ b/arch/arm/include/asm/acpi.h
@@ -82,6 +82,7 @@
/* Blob handling macros */
#define ACPI_BLOB_HEADER_SIZE 8
+#ifndef CONFIG_ACPI_REDUCED_HARDWARE
int __acpi_acquire_global_lock(unsigned int *lock);
int __acpi_release_global_lock(unsigned int *lock);
@@ -90,9 +91,9 @@ int __acpi_release_global_lock(unsigned int *lock);
#define ACPI_RELEASE_GLOBAL_LOCK(facs, Acq) \
((Acq) = __acpi_release_global_lock(&facs->global_lock))
+#endif
/* Basic configuration for ACPI */
-/* BOZO: hardware reduced acpi only? */
#ifdef CONFIG_ACPI
extern int acpi_disabled;
extern int acpi_noirq;
diff --git a/arch/arm64/include/asm/acpi.h b/arch/arm64/include/asm/acpi.h
index a19b73f..bb9411f 100644
--- a/arch/arm64/include/asm/acpi.h
+++ b/arch/arm64/include/asm/acpi.h
@@ -60,6 +60,7 @@
/* Blob handling macros */
#define ACPI_BLOB_HEADER_SIZE 8
+#ifndef CONFIG_ACPI_REDUCED_HARDWARE
int __acpi_acquire_global_lock(unsigned int *lock);
int __acpi_release_global_lock(unsigned int *lock);
@@ -68,9 +69,9 @@ int __acpi_release_global_lock(unsigned int *lock);
#define ACPI_RELEASE_GLOBAL_LOCK(facs, Acq) \
((Acq) = __acpi_release_global_lock(&facs->global_lock))
+#endif
/* Basic configuration for ACPI */
-/* BOZO: hardware reduced acpi only? */
#ifdef CONFIG_ACPI
extern int acpi_disabled;
extern int acpi_noirq;
--
1.8.3.1
From: Naresh Bhat <naresh.bhat(a)linaro.org>
The patches try to fix the DBG2 table compilation issue
and also tries to add a template support for DBG2 tables.
Naresh Bhat (2):
iASL: Fix Table Info handler for DBG2
iASL: Add template support for dbg2
source/common/dmtable.c | 2 +-
source/compiler/dtcompiler.h | 1 +
source/compiler/dttemplate.h | 10 ++++++++++
3 files changed, 12 insertions(+), 1 deletion(-)
--
1.7.9.5
From: Naresh Bhat <naresh.bhat(a)linaro.org>
The ASL code for SMB, FPGA, AMBA bus and the devices on the bus. The SMB and FPGA are represented as Module device. The container object that acts as a bus node in a namespace. It may contain child objects that are devices or buses. The module device is declared using the ACPI0004 hardware identifier (HID). The AMBA is represented as a separate device along with UART.
This patch is applied and tested on v8 model along with "Hanjun Guo" - Convert the fixed clock to ACPI and "Brandon Anderson" - ARM AMBA bus connector resource changes. The sample output logs on v8 model as below
root@genericarmv8:/sys# find . -name LINA*
./bus/acpi/devices/LINA0003:00
./bus/acpi/devices/LINA0005:00
./bus/acpi/devices/LINA0007:00
./bus/acpi/devices/LINA0008:00
./bus/acpi/devices/LINA0008:01
./bus/acpi/devices/LINA0008:02
./bus/acpi/devices/LINA0009:00
./bus/platform/devices/LINA0003:00
./bus/platform/devices/LINA0005:00
./bus/platform/devices/LINA0007:00
./bus/platform/devices/LINA0008:00
./bus/platform/devices/LINA0008:01
./bus/platform/devices/LINA0008:02
./bus/platform/drivers/smc91x/LINA0003:00
./bus/platform/drivers/fixed-clk/LINA0008:00
./bus/platform/drivers/fixed-clk/LINA0008:01
./bus/platform/drivers/fixed-clk/LINA0008:02
./bus/platform/drivers/arm-pmu/LINA0007:00
./bus/platform/drivers/virtio-mmio/LINA0005:00
./devices/platform/LINA0003:00
./devices/platform/LINA0005:00
./devices/platform/LINA0007:00
./devices/platform/LINA0008:00
./devices/platform/LINA0008:01
./devices/platform/LINA0008:02
./devices/LNXSYSTM:00/device:00/LINA0007:00
./devices/LNXSYSTM:00/device:00/ACPI0004:01/LINA0003:00
./devices/LNXSYSTM:00/device:00/ACPI0004:01/LINA0008:00
./devices/LNXSYSTM:00/device:00/ACPI0004:01/LINA0008:01
./devices/LNXSYSTM:00/device:00/ACPI0004:01/LINA0008:02
./devices/LNXSYSTM:00/device:00/ACPI0004:01/ACPI0004:02/LINA0005:00
./devices/LNXSYSTM:00/device:00/ACPI0004:01/ACPI0004:02/LINA0009:00
root@genericarmv8:/sys#
root@genericarmv8:/sys# find . -name AMBA*
./bus/acpi/devices/AMBA0000:00
./bus/platform/devices/AMBA0000:00
./bus/platform/drivers/amba-acpi/AMBA0000:00
./devices/platform/AMBA0000:00
./devices/LNXSYSTM:00/device:00/AMBA0000:00
root@genericarmv8:/sys#
root@genericarmv8:/sys/bus/amba/devices# ls
device:01 device:02 device:03 device:04
root@genericarmv8:/sys/bus/amba/devices#
Naresh Bhat (1):
foundation: Add ASL for bus, devices enumeration
platforms/foundation-v8.acpi/dsdt.asl | 181 +++++++++++++++++++++++++++++++--
1 file changed, 175 insertions(+), 6 deletions(-)
--
1.7.9.5
This is the RFC version for converting the fixed clock to ACPI.
Since the ACPI namespace is ok at the very late stage of system
boot, so I did some major change in boot sequence for the enumeration
of fixed clock, amba bus and its child device. I think this part should
be review carefully.
For DT, it works well for armv8 foudation model after the change in
boot sequence, but the UART and amba bus are dependent on the fixed
clock, if I only convert the fixed clock to ACPI, UART will not
work. So this is the RFC version and the UART will be converted
together in next version.
Hanjun Guo (5):
Driver / clk: add platform driver for fixed clock
ACPI / ARM64: Whitelist the ACPI ID for fixed clock
ACPI / platform: add some comments for internel registry of _HID
names
ACPI / fixed-clock: Add ACPI driver for fixed clock
Clk / fixed clock: Delay the enumeration of fixed clock and make it
popssible for ACPI
arch/arm64/kernel/setup.c | 2 +-
drivers/acpi/acpi_platform.c | 7 ++--
drivers/clk/clk-fixed-rate.c | 78 +++++++++++++++++++++++++++++++++++++++++-
3 files changed, 82 insertions(+), 5 deletions(-)
--
1.7.9.5
linux/acpi.h already does the correct thing when CONFIG_ACPI is not set
so there is no need to wrap it in #ifdef CONFIG_ACPI and in fact this
stops ACPI_PTR() working in the non ACPI case.
Signed-off-by: Graeme Gregory <graeme.gregory(a)linaro.org>
---
drivers/net/ethernet/smsc/smc91x.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/smsc/smc91x.c b/drivers/net/ethernet/smsc/smc91x.c
index 940097f..7aa517d 100644
--- a/drivers/net/ethernet/smsc/smc91x.c
+++ b/drivers/net/ethernet/smsc/smc91x.c
@@ -82,6 +82,7 @@ static const char version[] =
#include <linux/mii.h>
#include <linux/workqueue.h>
#include <linux/of.h>
+#include <linux/acpi.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
@@ -89,10 +90,6 @@ static const char version[] =
#include <asm/io.h>
-#ifdef CONFIG_ACPI
-#include <linux/acpi.h>
-#endif
-
#include "smc91x.h"
#ifndef SMC_NOWAIT
--
1.8.3.1
Hi,
I am proposing one cherry pick from Mark Salters tree in the same way
that we already cherry picked from Leifs for ioremap_early support.
Also changed the order of setup.c initialisation to work under ioremap_early.
I have boot tested this on the RTSM model.
Thanks
Graeme
Hi,
I am able to see APEI events (memory errors) via perft tool and now
switch my context to others types of error. According to our plan, cache
ECC error type would be next.
I want to place tracepoints at the end of every available APEI error
processing path (actually it is already done for memory errors). This
way we RAS daemon could keep its eye on them. There would be of course
more type of error coming from others ARM SoC peripherals.
GHES driver is unrolling data structure to "Common Platform Error
Record" and try to obtain error section (defined in UEFI spec). Cache
ECC fall within "Processor Error Sections". Here appear problems since
most of "Common Platform Error Records" are x86/IA64 oriented.
So my proposals would be to:
1. Implement all available APEI errors as tracepoint that is: Processor
and PCI errors
2. Mean time, create proposals for UEFI spec. toward "Common Platform
Error Record" expansion for ARM architecture. This would require
changing available structures and add new sections for SoC peripherals
(USB, Ethernet etc.).
3. In turn, new sections for SoC peripherals in UEFI spec. would require
ACPI spec. change as well, I mean new error sources for HEST table.
4. Once above proposals would be accept, we could fill in tracepoints
for new error types.
I would appreciate any input on this.
Regards,
Tomasz