If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org --- arch/arm64/kernel/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 09f34ca..eac789d 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -242,7 +242,8 @@ void __init setup_arch(char **cmdline_p) paging_init(); request_standard_resources();
- unflatten_device_tree(); + if (acpi_disabled) + unflatten_device_tree();
psci_init();
As we discussed on IRC, this solution does not delete DT and allows to use it in kexec/kvm kernels.
Acked-by: Tomasz Nowicki tomasz.nowicki@linaro.org
On 05.02.2014 15:03, Graeme Gregory wrote:
If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/arm64/kernel/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 09f34ca..eac789d 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -242,7 +242,8 @@ void __init setup_arch(char **cmdline_p) paging_init(); request_standard_resources();
- unflatten_device_tree();
if (acpi_disabled)
unflatten_device_tree();
psci_init();
Hi Graeme,
On 05/02/14 14:03, Graeme Gregory wrote:
If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
I assume there's alternate method of getting bootargs/kernel command line and other chosen node properties like initrd in UEFI/ACPI boot. Does EFI stub provide it ? If not then how do you plan to get them ?
Regards, Sudeep
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/arm64/kernel/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 09f34ca..eac789d 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -242,7 +242,8 @@ void __init setup_arch(char **cmdline_p) paging_init(); request_standard_resources();
- unflatten_device_tree();
- if (acpi_disabled)
unflatten_device_tree();
psci_init();
On Wed, Feb 05, 2014 at 02:41:44PM +0000, Sudeep Holla wrote:
Hi Graeme,
On 05/02/14 14:03, Graeme Gregory wrote:
If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
I assume there's alternate method of getting bootargs/kernel command line and other chosen node properties like initrd in UEFI/ACPI boot. Does EFI stub provide it ? If not then how do you plan to get them ?
These are all extracted much earlier in boot sequence than this in early_init_dt_scan_chosen()
Graeme
Regards, Sudeep
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/arm64/kernel/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 09f34ca..eac789d 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -242,7 +242,8 @@ void __init setup_arch(char **cmdline_p) paging_init(); request_standard_resources();
- unflatten_device_tree();
- if (acpi_disabled)
unflatten_device_tree();
psci_init();
On 05/02/14 15:06, Graeme Gregory wrote:
On Wed, Feb 05, 2014 at 02:41:44PM +0000, Sudeep Holla wrote:
Hi Graeme,
On 05/02/14 14:03, Graeme Gregory wrote:
If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
I assume there's alternate method of getting bootargs/kernel command line and other chosen node properties like initrd in UEFI/ACPI boot. Does EFI stub provide it ? If not then how do you plan to get them ?
These are all extracted much earlier in boot sequence than this in early_init_dt_scan_chosen()
Thanks for the info, I misunderstood "Get pointer to '/chosen' and '/aliases' nodes for use everywhere" comment in unflatten_device_tree. I assumed the chosen node gets scanned here. Sorry for the noise.
Regards, Sudeep
I have applied this patch to acpi-core.
This means that the next leg-kernel will boot in UP mode until we sort out prototyping booting the PSCI CPUs via ACPI.
I have left it that way to remind us we have 3 weeks now to make this happen.
Graeme
On Wed, Feb 05, 2014 at 02:03:57PM +0000, Graeme Gregory wrote:
If the early boot methods of acpi are happy that we have valid ACPI tables and acpi=off has not been passed. Then do not unflatted devicetree effectively disabling further hardware probing from DT.
Signed-off-by: Graeme Gregory graeme.gregory@linaro.org
arch/arm64/kernel/setup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c index 09f34ca..eac789d 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c @@ -242,7 +242,8 @@ void __init setup_arch(char **cmdline_p) paging_init(); request_standard_resources();
- unflatten_device_tree();
- if (acpi_disabled)
unflatten_device_tree();
psci_init(); -- 1.8.5.3