* [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI
@ 2013-12-04 21:22 al.stone at linaro.org
[not found] ` < 1386192127-28564-2-git-send-email-al.stone@linaro.org>
` (5 more replies)
0 siblings, 6 replies; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
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 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;
similarly for the FVP model for ARMv8. The patches for ACPI on ARM
hardware have been submitted elsewhere but they presume that reduced HW
mode is functioning correctly. In the meantime, there's no way I can think
of to test all possible scenarios so feedback would be greatly appreciated.
[0] List at https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/AcpiReducedHw#Section_5:_ACPI_Software_Programming_Model
[1] Please see the ACPI Specification v5.0 for details on Hardware Reduced
mode (sections 3.11.1, 4.1, 5.2.9, at a minimum).
Changes for v3:
-- Modified enabling ACPI_REDUCED_HARDWARE in ACPICA when using
kernel config item CONFIG_ACPI_REDUCED_HARDWARE; now consistent
with ACPICA code base where needed
-- Enable X86 for CONFIG_ACPI_REDUCED_HARDWARE
-- Minimize bus master reload patching
-- Remove unneeded patch for dmi_check_system() (was 4/6)
-- Correct the patch for removing unneeded map/unmap of FADT fields
Changes for v2:
-- Remove patch that was outside of reduced HW mode changes
-- Simplify CONFIG_ACPI_REDUCED_HARDWARE in Kconfig
-- Simplify use of CONFIG_ACPI_REDUCED_HARDWARE in #ifdefs
-- Ensure changelogs are present
-- Combine and simplify previous patches 8 & 10
Al Stone (5):
ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
ACPI: bus master reload not supported in reduced HW mode
ACPI: HW reduced mode does not allow use of the FADT sci_interrupt
field
ACPI: in HW reduced mode, using FADT PM information is not allowed.
ACPI: do not map/unmap memory regions for FADT entries in reduced HW
mode
drivers/acpi/Kconfig | 8 ++++++++
drivers/acpi/bus.c | 3 ++-
drivers/acpi/osl.c | 36 +++++++++++++++++-------------------
drivers/acpi/pci_link.c | 2 ++
drivers/acpi/processor_idle.c | 15 +++++++++++++--
include/acpi/platform/aclinux.h | 6 ++++++
6 files changed, 48 insertions(+), 22 deletions(-)
--
1.8.3.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
[not found] ` < 1386192127-28564-2-git-send-email-al.stone@linaro.org>
@ 2013-12-04 21:22 ` al.stone at linaro.org
2013-12-10 12:35 ` [Linaro-acpi] " Grant Likely
2013-12-10 12:37 ` Grant Likely
2013-12-04 21:22 ` [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode al.stone at linaro.org
` (3 subsequent siblings)
5 siblings, 2 replies; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
To enable the hardware reduced mode of ACPI on some platforms (such as
ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
to TRUE in the ACPICA source.
This can be done more resonably by introducing a kernel config item
to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
config instead of having to modify the kernel source directly to enable
the reduced hardware mode of ACPI.
Lv Zheng suggested that this configuration item does not belong in ACPICA,
the upstream source for much of the ACPI internals, but rather to the
Linux kernel itself. Hence, we introduce this flag so that we can make
ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
Support for X86 in hardware reduced mode is also provided to make it
simpler to debug this mode, and to provide for probable use in such
products. Hardware reduced mode, despite the name, exists primarily
to allow newer platforms to use a much simpler form of ACPI that does
not require supporting the legacy of previous versions of the specification,
and is likely to be used more often in the near future as a result.
Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/Kconfig | 8 ++++++++
include/acpi/platform/aclinux.h | 6 ++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 5d92485..66e6bb2 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -343,6 +343,14 @@ config ACPI_BGRT
data from the firmware boot splash. It will appear under
/sys/firmware/acpi/bgrt/ .
+config ACPI_REDUCED_HARDWARE
+ bool "Hardware-reduced ACPI support"
+ depends on X86 || ARM || ARM64
+ help
+ This config adds support for Hardware-reduced ACPI. When this option
+ is selected, will generate a specialized version of ACPICA that ONLY
+ supports the ACPI "reduced hardware".
+
source "drivers/acpi/apei/Kconfig"
config ACPI_EXTLOG
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
index 28f4f4d..a33f502 100644
--- a/include/acpi/platform/aclinux.h
+++ b/include/acpi/platform/aclinux.h
@@ -52,6 +52,12 @@
#ifdef __KERNEL__
+/* Compile for reduced hardware mode if requested for this kernel config */
+
+#ifdef CONFIG_ACPI_REDUCED_HARDWARE
+#define ACPI_REDUCED_HARDWARE 1
+#endif
+
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
[not found] ` < 1386192127-28564-2-git-send-email-al.stone@linaro.org>
2013-12-04 21:22 ` [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode al.stone at linaro.org
@ 2013-12-04 21:22 ` al.stone at linaro.org
2013-12-10 12:38 ` [Linaro-acpi] " Grant Likely
2013-12-04 21:22 ` [PATCH v3 3/5] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field al.stone at linaro.org
` (2 subsequent siblings)
5 siblings, 1 reply; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
Remove the saving and restoring of bus master reload registers in
suspend/resume when in reduced HW mode; according to the spec, no
such registers should exist
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/processor_idle.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 597cdab..8b48c08 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -202,7 +202,7 @@ static void lapic_timer_state_broadcast(struct acpi_processor *pr,
#endif
-#ifdef CONFIG_PM_SLEEP
+#if (IS_ENABLED(CONFIG_PM_SLEEP) && !IS_ENABLED(CONFIG_ACPI_REDUCED_HARDWARE))
static u32 saved_bm_rld;
static int acpi_processor_suspend(void)
@@ -236,7 +236,10 @@ void acpi_processor_syscore_exit(void)
{
unregister_syscore_ops(&acpi_processor_syscore_ops);
}
-#endif /* CONFIG_PM_SLEEP */
+#else
+void acpi_processor_syscore_init(void) { return; }
+void acpi_processor_syscore_exit(void) { return; }
+#endif
#if defined(CONFIG_X86)
static void tsc_check_state(int state)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 3/5] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
` (2 preceding siblings ...)
2013-12-04 21:22 ` [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode al.stone at linaro.org
@ 2013-12-04 21:22 ` al.stone at linaro.org
2013-12-04 21:22 ` [PATCH v3 4/5] ACPI: in HW reduced mode, using FADT PM information is not allowed al.stone at linaro.org
2013-12-04 21:22 ` [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode al.stone at linaro.org
5 siblings, 0 replies; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
In HW reduced mode, the use of the SCI interrupt is not allowed. In
all those places that use the FADT sci_interrupt field, remove that
usage when in HW reduced mode.
In the case of acpi_os_install_interrupt_handler() in osl.c, this allows
us to open up the routine to installing interrupt handlers other than
acpi_gbl_FADT.sci_interrupt regardless of whether we are in ACPI legacy
mode or reduced HW mode; acpi_os_remove_interrupt_handler() changes to
maintain symmetry.
The function acpi_reserve_resources() is not stubbed but removed to
quiet a compiler warning about an unused function when using ACPI
reduced hardware mode.
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/bus.c | 3 ++-
drivers/acpi/osl.c | 16 +++++-----------
drivers/acpi/pci_link.c | 2 ++
3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index bba9b72..de3a259 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -541,7 +541,8 @@ void __init acpi_early_init(void)
goto error0;
}
-#ifdef CONFIG_X86
+#ifndef CONFIG_ACPI_REDUCED_HARDWARE
+ /* NOTE: in HW reduced mode, FADT sci_interrupt has no meaning */
if (!acpi_ioapic) {
/* compatible (0) means level (3) */
if (!(acpi_sci_flags & ACPI_MADT_TRIGGER_MASK)) {
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 44c07eb..613e4a1 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -84,6 +84,7 @@ static int (*__acpi_os_prepare_extended_sleep)(u8 sleep_state, u32 val_a,
static acpi_osd_handler acpi_irq_handler;
static void *acpi_irq_context;
+static u32 acpi_irq_number;
static struct workqueue_struct *kacpid_wq;
static struct workqueue_struct *kacpi_notify_wq;
static struct workqueue_struct *kacpi_hotplug_wq;
@@ -159,6 +160,7 @@ static u32 acpi_osi_handler(acpi_string interface, u32 supported)
return supported;
}
+#ifndef CONFIG_ACPI_REDUCED_HARDWARE
static void __init acpi_request_region (struct acpi_generic_address *gas,
unsigned int length, char *desc)
{
@@ -209,6 +211,7 @@ static int __init acpi_reserve_resources(void)
return 0;
}
device_initcall(acpi_reserve_resources);
+#endif
void acpi_os_printf(const char *fmt, ...)
{
@@ -795,13 +798,6 @@ acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
acpi_irq_stats_init();
- /*
- * ACPI interrupts different from the SCI in our copy of the FADT are
- * not supported.
- */
- if (gsi != acpi_gbl_FADT.sci_interrupt)
- return AE_BAD_PARAMETER;
-
if (acpi_irq_handler)
return AE_ALREADY_ACQUIRED;
@@ -818,15 +814,13 @@ acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
acpi_irq_handler = NULL;
return AE_NOT_ACQUIRED;
}
+ acpi_irq_number = irq;
return AE_OK;
}
acpi_status acpi_os_remove_interrupt_handler(u32 irq, acpi_osd_handler handler)
{
- if (irq != acpi_gbl_FADT.sci_interrupt)
- return AE_BAD_PARAMETER;
-
free_irq(irq, acpi_irq);
acpi_irq_handler = NULL;
@@ -1806,7 +1800,7 @@ acpi_status __init acpi_os_initialize1(void)
acpi_status acpi_os_terminate(void)
{
if (acpi_irq_handler) {
- acpi_os_remove_interrupt_handler(acpi_gbl_FADT.sci_interrupt,
+ acpi_os_remove_interrupt_handler(acpi_irq_number,
acpi_irq_handler);
}
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 2652a61..d5c155e 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -505,6 +505,8 @@ int __init acpi_irq_penalty_init(void)
}
}
/* Add a penalty for the SCI */
+ if (acpi_gbl_reduced_hardware)
+ return 0;
acpi_irq_penalty[acpi_gbl_FADT.sci_interrupt] += PIRQ_PENALTY_PCI_USING;
return 0;
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 4/5] ACPI: in HW reduced mode, using FADT PM information is not allowed.
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
` (3 preceding siblings ...)
2013-12-04 21:22 ` [PATCH v3 3/5] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field al.stone at linaro.org
@ 2013-12-04 21:22 ` al.stone at linaro.org
2013-12-04 21:22 ` [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode al.stone at linaro.org
5 siblings, 0 replies; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
Per the ACPI 5.0 specification, section 5.2.9, none of the power
management fields in the FADT are to be used. Short-circuit using
any of those fields in acpi_processor_get_power_info_fadt().
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/processor_idle.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 8b48c08..a419fcb 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -271,6 +271,14 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
if (!pr->pblk)
return -ENODEV;
+ /*
+ * Using power management information from the FADT is not
+ * allowed when in HW reduced mode. See ACPI 5.0, section
+ * 5.2.9.
+ */
+ if (acpi_gbl_reduced_hardware)
+ return -ENODEV;
+
/* if info is obtained from pblk/fadt, type equals state */
pr->power.states[ACPI_STATE_C2].type = ACPI_STATE_C2;
pr->power.states[ACPI_STATE_C3].type = ACPI_STATE_C3;
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
` (4 preceding siblings ...)
2013-12-04 21:22 ` [PATCH v3 4/5] ACPI: in HW reduced mode, using FADT PM information is not allowed al.stone at linaro.org
@ 2013-12-04 21:22 ` al.stone at linaro.org
2013-12-10 12:40 ` [Linaro-acpi] " Grant Likely
5 siblings, 1 reply; 15+ messages in thread
From: al.stone at linaro.org @ 2013-12-04 21:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Al Stone <al.stone@linaro.org>
Several of the FADT fields are normally kept in specific memory
regions. Since these fields are to be ignored in hardware reduced
ACPI mode, do not map those addresses when in that mode, and of
course do not release the mappings that have not been made.
The function acpi_os_initialize() could become a stub in the header
file but is left here in case it can be of further use.
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/osl.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 613e4a1..3a0bb92 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -1776,10 +1776,12 @@ __setup("acpi_no_auto_ssdt", acpi_no_auto_ssdt_setup);
acpi_status __init acpi_os_initialize(void)
{
- acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
- acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
- acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe0_block);
- acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe1_block);
+ if (!acpi_gbl_reduced_hardware) {
+ acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
+ acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
+ acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe0_block);
+ acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe1_block);
+ }
return AE_OK;
}
@@ -1804,10 +1806,12 @@ acpi_status acpi_os_terminate(void)
acpi_irq_handler);
}
- acpi_os_unmap_generic_address(&acpi_gbl_FADT.xgpe1_block);
- acpi_os_unmap_generic_address(&acpi_gbl_FADT.xgpe0_block);
- acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
- acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
+ if (!acpi_gbl_reduced_hardware) {
+ acpi_os_unmap_generic_address(&acpi_gbl_FADT.xgpe1_block);
+ acpi_os_unmap_generic_address(&acpi_gbl_FADT.xgpe0_block);
+ acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
+ acpi_os_unmap_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
+ }
destroy_workqueue(kacpid_wq);
destroy_workqueue(kacpi_notify_wq);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-04 21:22 ` [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode al.stone at linaro.org
@ 2013-12-10 12:35 ` Grant Likely
2013-12-10 12:37 ` Grant Likely
1 sibling, 0 replies; 15+ messages in thread
From: Grant Likely @ 2013-12-10 12:35 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 4 Dec 2013 14:22:03 -0700, al.stone at linaro.org wrote:
> From: Al Stone <al.stone@linaro.org>
>
> To enable the hardware reduced mode of ACPI on some platforms (such as
> ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
> to TRUE in the ACPICA source.
>
> This can be done more resonably by introducing a kernel config item
> to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
> config instead of having to modify the kernel source directly to enable
> the reduced hardware mode of ACPI.
>
> Lv Zheng suggested that this configuration item does not belong in ACPICA,
> the upstream source for much of the ACPI internals, but rather to the
> Linux kernel itself. Hence, we introduce this flag so that we can make
> ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
> please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
>
> Support for X86 in hardware reduced mode is also provided to make it
> simpler to debug this mode, and to provide for probable use in such
> products. Hardware reduced mode, despite the name, exists primarily
> to allow newer platforms to use a much simpler form of ACPI that does
> not require supporting the legacy of previous versions of the specification,
> and is likely to be used more often in the near future as a result.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Signed-off-by: Al Stone <al.stone@linaro.org>
> ---
> drivers/acpi/Kconfig | 8 ++++++++
> include/acpi/platform/aclinux.h | 6 ++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index 5d92485..66e6bb2 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -343,6 +343,14 @@ config ACPI_BGRT
> data from the firmware boot splash. It will appear under
> /sys/firmware/acpi/bgrt/ .
>
> +config ACPI_REDUCED_HARDWARE
> + bool "Hardware-reduced ACPI support"
> + depends on X86 || ARM || ARM64
Why wouldn't this simply depend on ACPI?
> + help
> + This config adds support for Hardware-reduced ACPI. When this option
> + is selected, will generate a specialized version of ACPICA that ONLY
> + supports the ACPI "reduced hardware".
> +
> source "drivers/acpi/apei/Kconfig"
>
> config ACPI_EXTLOG
> diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
> index 28f4f4d..a33f502 100644
> --- a/include/acpi/platform/aclinux.h
> +++ b/include/acpi/platform/aclinux.h
> @@ -52,6 +52,12 @@
>
> #ifdef __KERNEL__
>
> +/* Compile for reduced hardware mode if requested for this kernel config */
> +
> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
> +#define ACPI_REDUCED_HARDWARE 1
> +#endif
> +
> #include <linux/string.h>
> #include <linux/kernel.h>
> #include <linux/ctype.h>
> --
> 1.8.3.1
>
>
> _______________________________________________
> Linaro-acpi mailing list
> Linaro-acpi at lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-acpi
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-04 21:22 ` [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode al.stone at linaro.org
2013-12-10 12:35 ` [Linaro-acpi] " Grant Likely
@ 2013-12-10 12:37 ` Grant Likely
2013-12-10 15:05 ` Hanjun Guo
1 sibling, 1 reply; 15+ messages in thread
From: Grant Likely @ 2013-12-10 12:37 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 4 Dec 2013 14:22:03 -0700, al.stone at linaro.org wrote:
> From: Al Stone <al.stone@linaro.org>
>
> To enable the hardware reduced mode of ACPI on some platforms (such as
> ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
> to TRUE in the ACPICA source.
>
> This can be done more resonably by introducing a kernel config item
> to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
> config instead of having to modify the kernel source directly to enable
> the reduced hardware mode of ACPI.
>
> Lv Zheng suggested that this configuration item does not belong in ACPICA,
> the upstream source for much of the ACPI internals, but rather to the
> Linux kernel itself. Hence, we introduce this flag so that we can make
> ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
> please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
>
> Support for X86 in hardware reduced mode is also provided to make it
> simpler to debug this mode, and to provide for probable use in such
> products. Hardware reduced mode, despite the name, exists primarily
> to allow newer platforms to use a much simpler form of ACPI that does
> not require supporting the legacy of previous versions of the specification,
> and is likely to be used more often in the near future as a result.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Signed-off-by: Al Stone <al.stone@linaro.org>
> ---
> drivers/acpi/Kconfig | 8 ++++++++
> include/acpi/platform/aclinux.h | 6 ++++++
> 2 files changed, 14 insertions(+)
>
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index 5d92485..66e6bb2 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -343,6 +343,14 @@ config ACPI_BGRT
> data from the firmware boot splash. It will appear under
> /sys/firmware/acpi/bgrt/ .
>
> +config ACPI_REDUCED_HARDWARE
> + bool "Hardware-reduced ACPI support"
> + depends on X86 || ARM || ARM64
> + help
> + This config adds support for Hardware-reduced ACPI. When this option
> + is selected, will generate a specialized version of ACPICA that ONLY
> + supports the ACPI "reduced hardware".
> +
> source "drivers/acpi/apei/Kconfig"
>
> config ACPI_EXTLOG
> diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
> index 28f4f4d..a33f502 100644
> --- a/include/acpi/platform/aclinux.h
> +++ b/include/acpi/platform/aclinux.h
> @@ -52,6 +52,12 @@
>
> #ifdef __KERNEL__
>
> +/* Compile for reduced hardware mode if requested for this kernel config */
> +
> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
> +#define ACPI_REDUCED_HARDWARE 1
> +#endif
Will this change the way ACPICA is compiled? Will it disable
non-hardware-reduced mode? If so, then this is a big problem. Enabling
the hardware reduced feature should *not* break normal ACPI usage.
g.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode
2013-12-04 21:22 ` [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode al.stone at linaro.org
@ 2013-12-10 12:38 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2013-12-10 12:38 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 4 Dec 2013 14:22:04 -0700, al.stone at linaro.org wrote:
> From: Al Stone <al.stone@linaro.org>
>
> Remove the saving and restoring of bus master reload registers in
> suspend/resume when in reduced HW mode; according to the spec, no
> such registers should exist
>
> Signed-off-by: Al Stone <al.stone@linaro.org>
> ---
> drivers/acpi/processor_idle.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
> index 597cdab..8b48c08 100644
> --- a/drivers/acpi/processor_idle.c
> +++ b/drivers/acpi/processor_idle.c
> @@ -202,7 +202,7 @@ static void lapic_timer_state_broadcast(struct acpi_processor *pr,
>
> #endif
>
> -#ifdef CONFIG_PM_SLEEP
> +#if (IS_ENABLED(CONFIG_PM_SLEEP) && !IS_ENABLED(CONFIG_ACPI_REDUCED_HARDWARE))
> static u32 saved_bm_rld;
>
> static int acpi_processor_suspend(void)
> @@ -236,7 +236,10 @@ void acpi_processor_syscore_exit(void)
> {
> unregister_syscore_ops(&acpi_processor_syscore_ops);
> }
> -#endif /* CONFIG_PM_SLEEP */
> +#else
> +void acpi_processor_syscore_init(void) { return; }
> +void acpi_processor_syscore_exit(void) { return; }
> +#endif
Ditto comment on this patch. This breaks normal ACPI on x86 if hardware
reduced is enabled. That is bad form. It is fine to compile it out if
normal ACPI is explicitly /disabled/, but it must be possible for normal
and hardware reduced to co-exist.
g.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode
2013-12-04 21:22 ` [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode al.stone at linaro.org
@ 2013-12-10 12:40 ` Grant Likely
0 siblings, 0 replies; 15+ messages in thread
From: Grant Likely @ 2013-12-10 12:40 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, 4 Dec 2013 14:22:07 -0700, al.stone at linaro.org wrote:
> From: Al Stone <al.stone@linaro.org>
>
> Several of the FADT fields are normally kept in specific memory
> regions. Since these fields are to be ignored in hardware reduced
> ACPI mode, do not map those addresses when in that mode, and of
> course do not release the mappings that have not been made.
>
> The function acpi_os_initialize() could become a stub in the header
> file but is left here in case it can be of further use.
>
> Signed-off-by: Al Stone <al.stone@linaro.org>
> ---
> drivers/acpi/osl.c | 20 ++++++++++++--------
> 1 file changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 613e4a1..3a0bb92 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -1776,10 +1776,12 @@ __setup("acpi_no_auto_ssdt", acpi_no_auto_ssdt_setup);
>
> acpi_status __init acpi_os_initialize(void)
> {
> - acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
> - acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
> - acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe0_block);
> - acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe1_block);
> + if (!acpi_gbl_reduced_hardware) {
> + acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1a_event_block);
> + acpi_os_map_generic_address(&acpi_gbl_FADT.xpm1b_event_block);
> + acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe0_block);
> + acpi_os_map_generic_address(&acpi_gbl_FADT.xgpe1_block);
> + }
So, I'm confused. This patch is making the hardware reduced decision at
runtime (which is good), but the other patches are using #ifdef blocks
to take the code right out. Why the discrepancy?
g.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-10 12:37 ` Grant Likely
@ 2013-12-10 15:05 ` Hanjun Guo
2013-12-10 22:49 ` Grant Likely
0 siblings, 1 reply; 15+ messages in thread
From: Hanjun Guo @ 2013-12-10 15:05 UTC (permalink / raw)
To: linux-arm-kernel
On 2013?12?10? 20:37, Grant Likely wrote:
> On Wed, 4 Dec 2013 14:22:03 -0700, al.stone at linaro.org wrote:
>> From: Al Stone <al.stone@linaro.org>
>>
>> To enable the hardware reduced mode of ACPI on some platforms (such as
>> ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
>> to TRUE in the ACPICA source.
>>
>> This can be done more resonably by introducing a kernel config item
>> to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
>> config instead of having to modify the kernel source directly to enable
>> the reduced hardware mode of ACPI.
>>
>> Lv Zheng suggested that this configuration item does not belong in ACPICA,
>> the upstream source for much of the ACPI internals, but rather to the
>> Linux kernel itself. Hence, we introduce this flag so that we can make
>> ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
>> please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
>>
>> Support for X86 in hardware reduced mode is also provided to make it
>> simpler to debug this mode, and to provide for probable use in such
>> products. Hardware reduced mode, despite the name, exists primarily
>> to allow newer platforms to use a much simpler form of ACPI that does
>> not require supporting the legacy of previous versions of the specification,
>> and is likely to be used more often in the near future as a result.
>>
>> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
>> Signed-off-by: Al Stone <al.stone@linaro.org>
>> ---
>> drivers/acpi/Kconfig | 8 ++++++++
>> include/acpi/platform/aclinux.h | 6 ++++++
>> 2 files changed, 14 insertions(+)
>>
>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>> index 5d92485..66e6bb2 100644
>> --- a/drivers/acpi/Kconfig
>> +++ b/drivers/acpi/Kconfig
>> @@ -343,6 +343,14 @@ config ACPI_BGRT
>> data from the firmware boot splash. It will appear under
>> /sys/firmware/acpi/bgrt/ .
>>
>> +config ACPI_REDUCED_HARDWARE
>> + bool "Hardware-reduced ACPI support"
>> + depends on X86 || ARM || ARM64
>> + help
>> + This config adds support for Hardware-reduced ACPI. When this option
>> + is selected, will generate a specialized version of ACPICA that ONLY
>> + supports the ACPI "reduced hardware".
>> +
>> source "drivers/acpi/apei/Kconfig"
>>
>> config ACPI_EXTLOG
>> diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
>> index 28f4f4d..a33f502 100644
>> --- a/include/acpi/platform/aclinux.h
>> +++ b/include/acpi/platform/aclinux.h
>> @@ -52,6 +52,12 @@
>>
>> #ifdef __KERNEL__
>>
>> +/* Compile for reduced hardware mode if requested for this kernel config */
>> +
>> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
>> +#define ACPI_REDUCED_HARDWARE 1
>> +#endif
> Will this change the way ACPICA is compiled? Will it disable
> non-hardware-reduced mode?
Both yes. ACPICA supports reduced hardware mode when
ACPI_REDUCED_HARWARE is TRUE at compile time. There is
no way to support both normal ACPI and hardware reduced
ACPI with single binary image for now.
> If so, then this is a big problem. Enabling
> the hardware reduced feature should *not* break normal ACPI usage.
It will break normal ACPI usage but it is ok I think. Since
lots of features are not supported in the hardware in hardware
reduced mode, and normal ACPI will not run probably such as
leading kernel panic when refer to some registers which are not
exist on reduced hardware, we should introduce this kernel
config and modify the ACPI drivers to avoid such failures.
Thanks
Hanjun
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-10 15:05 ` Hanjun Guo
@ 2013-12-10 22:49 ` Grant Likely
2013-12-11 2:06 ` Rob Herring
2013-12-12 20:31 ` Al Stone
0 siblings, 2 replies; 15+ messages in thread
From: Grant Likely @ 2013-12-10 22:49 UTC (permalink / raw)
To: linux-arm-kernel
Hi Hanjun,
Okay, so after talking with Al and Graeme on IRC, I think I understand
what is going on. The fact that ACPICA doesn't allow for both normal and
hardware reduced support in the same build is a very big problem.
However, it isn't a problem for ARM since we'll never support
non-hardware reduced mode. The x86 folks need to work that out when/if
they ever add support for hardware reduced mode.
So I would say the thing to do is only allow hardware reduced mode to be
enabled on ARM, and make it ultra clear in the config text that it
cannot be supported on x86 before ACPICA is fixed.
g.
On Tue, 10 Dec 2013 23:05:03 +0800, Hanjun Guo <hanjun.guo@linaro.org> wrote:
> On 2013???12???10??? 20:37, Grant Likely wrote:
> > On Wed, 4 Dec 2013 14:22:03 -0700, al.stone at linaro.org wrote:
> >> From: Al Stone <al.stone@linaro.org>
> >>
> >> To enable the hardware reduced mode of ACPI on some platforms (such as
> >> ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
> >> to TRUE in the ACPICA source.
> >>
> >> This can be done more resonably by introducing a kernel config item
> >> to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
> >> config instead of having to modify the kernel source directly to enable
> >> the reduced hardware mode of ACPI.
> >>
> >> Lv Zheng suggested that this configuration item does not belong in ACPICA,
> >> the upstream source for much of the ACPI internals, but rather to the
> >> Linux kernel itself. Hence, we introduce this flag so that we can make
> >> ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
> >> please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
> >>
> >> Support for X86 in hardware reduced mode is also provided to make it
> >> simpler to debug this mode, and to provide for probable use in such
> >> products. Hardware reduced mode, despite the name, exists primarily
> >> to allow newer platforms to use a much simpler form of ACPI that does
> >> not require supporting the legacy of previous versions of the specification,
> >> and is likely to be used more often in the near future as a result.
> >>
> >> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> >> Signed-off-by: Al Stone <al.stone@linaro.org>
> >> ---
> >> drivers/acpi/Kconfig | 8 ++++++++
> >> include/acpi/platform/aclinux.h | 6 ++++++
> >> 2 files changed, 14 insertions(+)
> >>
> >> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> >> index 5d92485..66e6bb2 100644
> >> --- a/drivers/acpi/Kconfig
> >> +++ b/drivers/acpi/Kconfig
> >> @@ -343,6 +343,14 @@ config ACPI_BGRT
> >> data from the firmware boot splash. It will appear under
> >> /sys/firmware/acpi/bgrt/ .
> >>
> >> +config ACPI_REDUCED_HARDWARE
> >> + bool "Hardware-reduced ACPI support"
> >> + depends on X86 || ARM || ARM64
> >> + help
> >> + This config adds support for Hardware-reduced ACPI. When this option
> >> + is selected, will generate a specialized version of ACPICA that ONLY
> >> + supports the ACPI "reduced hardware".
> >> +
> >> source "drivers/acpi/apei/Kconfig"
> >>
> >> config ACPI_EXTLOG
> >> diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
> >> index 28f4f4d..a33f502 100644
> >> --- a/include/acpi/platform/aclinux.h
> >> +++ b/include/acpi/platform/aclinux.h
> >> @@ -52,6 +52,12 @@
> >>
> >> #ifdef __KERNEL__
> >>
> >> +/* Compile for reduced hardware mode if requested for this kernel config */
> >> +
> >> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
> >> +#define ACPI_REDUCED_HARDWARE 1
> >> +#endif
> > Will this change the way ACPICA is compiled? Will it disable
> > non-hardware-reduced mode?
>
> Both yes. ACPICA supports reduced hardware mode when
> ACPI_REDUCED_HARWARE is TRUE at compile time. There is
> no way to support both normal ACPI and hardware reduced
> ACPI with single binary image for now.
>
> > If so, then this is a big problem. Enabling
> > the hardware reduced feature should *not* break normal ACPI usage.
>
> It will break normal ACPI usage but it is ok I think. Since
> lots of features are not supported in the hardware in hardware
> reduced mode, and normal ACPI will not run probably such as
> leading kernel panic when refer to some registers which are not
> exist on reduced hardware, we should introduce this kernel
> config and modify the ACPI drivers to avoid such failures.
>
> Thanks
> Hanjun
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-10 22:49 ` Grant Likely
@ 2013-12-11 2:06 ` Rob Herring
2013-12-11 8:33 ` Graeme Gregory
2013-12-12 20:31 ` Al Stone
1 sibling, 1 reply; 15+ messages in thread
From: Rob Herring @ 2013-12-11 2:06 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 10, 2013 at 4:49 PM, Grant Likely <grant.likely@secretlab.ca> wrote:
> Hi Hanjun,
>
> Okay, so after talking with Al and Graeme on IRC, I think I understand
> what is going on. The fact that ACPICA doesn't allow for both normal and
> hardware reduced support in the same build is a very big problem.
> However, it isn't a problem for ARM since we'll never support
> non-hardware reduced mode. The x86 folks need to work that out when/if
> they ever add support for hardware reduced mode.
I believe SMBIOS/DMI tables are only part of full ACPI, so there is a
need on ARM for more than hardware reduced mode.
Rob
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-11 2:06 ` Rob Herring
@ 2013-12-11 8:33 ` Graeme Gregory
0 siblings, 0 replies; 15+ messages in thread
From: Graeme Gregory @ 2013-12-11 8:33 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Dec 10, 2013 at 08:06:08PM -0600, Rob Herring wrote:
> On Tue, Dec 10, 2013 at 4:49 PM, Grant Likely <grant.likely@secretlab.ca> wrote:
> > Hi Hanjun,
> >
> > Okay, so after talking with Al and Graeme on IRC, I think I understand
> > what is going on. The fact that ACPICA doesn't allow for both normal and
> > hardware reduced support in the same build is a very big problem.
> > However, it isn't a problem for ARM since we'll never support
> > non-hardware reduced mode. The x86 folks need to work that out when/if
> > they ever add support for hardware reduced mode.
>
> I believe SMBIOS/DMI tables are only part of full ACPI, so there is a
> need on ARM for more than hardware reduced mode.
>
You seem to be crossing the streams here, SMBIOS/DMI are not part of ACPI.
The only mention I can even find of them in the spec is you can cross reference
memory to its SMBIOS handle. Which is optional. It even says OSPM will not
use this value.
Graeme
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Linaro-acpi] [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode
2013-12-10 22:49 ` Grant Likely
2013-12-11 2:06 ` Rob Herring
@ 2013-12-12 20:31 ` Al Stone
1 sibling, 0 replies; 15+ messages in thread
From: Al Stone @ 2013-12-12 20:31 UTC (permalink / raw)
To: linux-arm-kernel
On 12/10/2013 03:49 PM, Grant Likely wrote:
> Hi Hanjun,
>
> Okay, so after talking with Al and Graeme on IRC, I think I understand
> what is going on. The fact that ACPICA doesn't allow for both normal and
> hardware reduced support in the same build is a very big problem.
> However, it isn't a problem for ARM since we'll never support
> non-hardware reduced mode. The x86 folks need to work that out when/if
> they ever add support for hardware reduced mode.
>
> So I would say the thing to do is only allow hardware reduced mode to be
> enabled on ARM, and make it ultra clear in the config text that it
> cannot be supported on x86 before ACPICA is fixed.
>
> g.
Agreed. Will make it so in the next version.
> On Tue, 10 Dec 2013 23:05:03 +0800, Hanjun Guo <hanjun.guo@linaro.org> wrote:
>> On 2013???12???10??? 20:37, Grant Likely wrote:
>>> On Wed, 4 Dec 2013 14:22:03 -0700, al.stone at linaro.org wrote:
>>>> From: Al Stone <al.stone@linaro.org>
>>>>
>>>> To enable the hardware reduced mode of ACPI on some platforms (such as
>>>> ARM), we need to modify the kernel code and set ACPI_REDUCED_HARDWARE
>>>> to TRUE in the ACPICA source.
>>>>
>>>> This can be done more resonably by introducing a kernel config item
>>>> to enable/disable ACPI_REDUCED_HARDWARE. We can then change the kernel
>>>> config instead of having to modify the kernel source directly to enable
>>>> the reduced hardware mode of ACPI.
>>>>
>>>> Lv Zheng suggested that this configuration item does not belong in ACPICA,
>>>> the upstream source for much of the ACPI internals, but rather to the
>>>> Linux kernel itself. Hence, we introduce this flag so that we can make
>>>> ACPI_REDUCED_HARDWARE configurable. For the details of the discussion,
>>>> please refer to: http://www.spinics.net/lists/linux-acpi/msg46369.html
>>>>
>>>> Support for X86 in hardware reduced mode is also provided to make it
>>>> simpler to debug this mode, and to provide for probable use in such
>>>> products. Hardware reduced mode, despite the name, exists primarily
>>>> to allow newer platforms to use a much simpler form of ACPI that does
>>>> not require supporting the legacy of previous versions of the specification,
>>>> and is likely to be used more often in the near future as a result.
>>>>
>>>> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>> Signed-off-by: Al Stone <al.stone@linaro.org>
>>>> ---
>>>> drivers/acpi/Kconfig | 8 ++++++++
>>>> include/acpi/platform/aclinux.h | 6 ++++++
>>>> 2 files changed, 14 insertions(+)
>>>>
>>>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>>>> index 5d92485..66e6bb2 100644
>>>> --- a/drivers/acpi/Kconfig
>>>> +++ b/drivers/acpi/Kconfig
>>>> @@ -343,6 +343,14 @@ config ACPI_BGRT
>>>> data from the firmware boot splash. It will appear under
>>>> /sys/firmware/acpi/bgrt/ .
>>>>
>>>> +config ACPI_REDUCED_HARDWARE
>>>> + bool "Hardware-reduced ACPI support"
>>>> + depends on X86 || ARM || ARM64
>>>> + help
>>>> + This config adds support for Hardware-reduced ACPI. When this option
>>>> + is selected, will generate a specialized version of ACPICA that ONLY
>>>> + supports the ACPI "reduced hardware".
>>>> +
>>>> source "drivers/acpi/apei/Kconfig"
>>>>
>>>> config ACPI_EXTLOG
>>>> diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
>>>> index 28f4f4d..a33f502 100644
>>>> --- a/include/acpi/platform/aclinux.h
>>>> +++ b/include/acpi/platform/aclinux.h
>>>> @@ -52,6 +52,12 @@
>>>>
>>>> #ifdef __KERNEL__
>>>>
>>>> +/* Compile for reduced hardware mode if requested for this kernel config */
>>>> +
>>>> +#ifdef CONFIG_ACPI_REDUCED_HARDWARE
>>>> +#define ACPI_REDUCED_HARDWARE 1
>>>> +#endif
>>> Will this change the way ACPICA is compiled? Will it disable
>>> non-hardware-reduced mode?
>>
>> Both yes. ACPICA supports reduced hardware mode when
>> ACPI_REDUCED_HARWARE is TRUE at compile time. There is
>> no way to support both normal ACPI and hardware reduced
>> ACPI with single binary image for now.
>>
>>> If so, then this is a big problem. Enabling
>>> the hardware reduced feature should *not* break normal ACPI usage.
>>
>> It will break normal ACPI usage but it is ok I think. Since
>> lots of features are not supported in the hardware in hardware
>> reduced mode, and normal ACPI will not run probably such as
>> leading kernel panic when refer to some registers which are not
>> exist on reduced hardware, we should introduce this kernel
>> config and modify the ACPI drivers to avoid such failures.
>>
>> Thanks
>> Hanjun
>>
>
--
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Linaro Enterprise Group
al.stone at linaro.org
-----------------------------------
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2013-12-12 20:31 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-04 21:22 [PATCH v3 0/5] Hardware Reduced Mode Cleanup for ACPI al.stone at linaro.org
[not found] ` < 1386192127-28564-2-git-send-email-al.stone@linaro.org>
2013-12-04 21:22 ` [PATCH v3 1/5] ACPI: introduce CONFIG_ACPI_REDUCED_HARDWARE to enable this ACPI mode al.stone at linaro.org
2013-12-10 12:35 ` [Linaro-acpi] " Grant Likely
2013-12-10 12:37 ` Grant Likely
2013-12-10 15:05 ` Hanjun Guo
2013-12-10 22:49 ` Grant Likely
2013-12-11 2:06 ` Rob Herring
2013-12-11 8:33 ` Graeme Gregory
2013-12-12 20:31 ` Al Stone
2013-12-04 21:22 ` [PATCH v3 2/5] ACPI: bus master reload not supported in reduced HW mode al.stone at linaro.org
2013-12-10 12:38 ` [Linaro-acpi] " Grant Likely
2013-12-04 21:22 ` [PATCH v3 3/5] ACPI: HW reduced mode does not allow use of the FADT sci_interrupt field al.stone at linaro.org
2013-12-04 21:22 ` [PATCH v3 4/5] ACPI: in HW reduced mode, using FADT PM information is not allowed al.stone at linaro.org
2013-12-04 21:22 ` [PATCH v3 5/5] ACPI: do not map/unmap memory regions for FADT entries in reduced HW mode al.stone at linaro.org
2013-12-10 12:40 ` [Linaro-acpi] " Grant Likely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).