On 01/19/2015 10:13 AM, Grant Likely wrote: > On Mon, 19 Jan 2015 13:51:45 +0000 > , Catalin Marinas <catalin.marinas@xxxxxxx> > wrote: >> On Mon, Jan 19, 2015 at 11:55:32AM +0000, Ard Biesheuvel wrote: >>> On 19 January 2015 at 11:42, Catalin Marinas <catalin.marinas@xxxxxxx> wrote: >>>> On Wed, Jan 14, 2015 at 03:04:52PM +0000, Hanjun Guo wrote: >>>>> From: Al Stone <al.stone@xxxxxxxxxx> >>>>> >>>>> Introduce one early parameters "off" and "force" for "acpi", acpi=off >>>>> will be the default behavior for ARM64, so introduce acpi=force to >>>>> enable ACPI on ARM64. >>>>> >>>>> Disable ACPI before early parameters parsed, and enable it to pass >>>>> "acpi=force" if people want use ACPI on ARM64. This ensures DT be >>>>> the prefer one if ACPI table and DT both are provided at this moment. >>>> [...] >>>>> --- a/arch/arm64/kernel/setup.c >>>>> +++ b/arch/arm64/kernel/setup.c >>>>> @@ -62,6 +62,7 @@ >>>>> #include <asm/memblock.h> >>>>> #include <asm/psci.h> >>>>> #include <asm/efi.h> >>>>> +#include <asm/acpi.h> >>>>> >>>>> unsigned int processor_id; >>>>> EXPORT_SYMBOL(processor_id); >>>>> @@ -388,6 +389,8 @@ void __init setup_arch(char **cmdline_p) >>>>> early_fixmap_init(); >>>>> early_ioremap_init(); >>>>> >>>>> + disable_acpi(); >>>>> + >>>>> parse_early_param(); >>>>> >>>>> /* >>>> >>>> Did we get to any conclusion here? DT being the preferred one is fine >>>> when both DT and ACPI are present but do we still want the kernel to >>>> ignore ACPI altogether if DT is not present? It's a bit harder to detect >>>> the presence of DT at this point since the EFI_STUB added one already. I >>>> guess we could move the "acpi=force" argument passing to EFI_STUB if no >>>> DT is present at boot. >>> >>> Since the EFI stub populates the /chosen node in DT, I would prefer >>> for it to add a property there to indicate whether it created the DT >>> from scratch rather than adding ACPI specific stuff in there (even if >>> it is just a string to concatenate) >> >> This works for me. So we could pass "acpi=force" in EFI stub if it >> created the DT from scratch *and* ACPI tables are present (can it detect >> the latter? And maybe it could print something if none are available). >> If that works, the actual kernel can assume that ACPI needs to be >> explicitly enabled via acpi=force, irrespective of how much information >> it has in DT. > > Ditto for me. I think this is a fine solution. And, yes, the stub can > easily detect the presence of ACPI by looking in the UEFI config table. I get the point behind doing this, but could we not have it pass in a different parameter than =force? Perhaps something new? I'd like to separate out the case that it was enabled automatically vs explicitly forced on by a user wanting to use ACPI on a system with both tables. Jon. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html