On 18/05/2018 12:40, Ard Biesheuvel wrote:
On 18 May 2018 at 13:37, Grant Likely grant.likely@arm.com wrote:
On 18/05/2018 12:13, Andre Przywara wrote:
Hi,
On 18/05/18 12:04, Grant Likely wrote:
I'm adding some EBBR text around the CPU state at boot and I've lost track of what is being done for multicore bringup. What is the current state-of-the-art for multicore boot protocol when PSCI isn't available?
It is my understanding that for arm64 PSCI is the only accepted SMP bringup method. Now the first ARM64 hardware platform didn't have EL3, but wanted to have KVM running, so there was this decision to allow this *one* alternative method to enable this platform. If I understand Will and Catalin correctly, there is a strong push for *no* other methods being added to the kernel.
So for ARM64 the answer should be: PSCI or spin table. Full stop.
AFAIU, MP Boot (ACPI Parking Protocol?) and Spin table are two separate methods. Correct? So that would be three methods we've got in-kernel at the moment.
Indeed.
For ARM it's quite a different story, though. "New" platforms tend to implement PSCI, but there are quite some platforms out there with their own methods. Not sure we care about them?
If EL3 is present, I think PSCI is the only interface EBBR should allow. Proprietary methods are the antithesis of what EBBR is intended to do.
ARMv8-A permits implementation without EL2 or EL3 IIUC, so from a spec pov, it makes sense to mandate spin table or ACPI parking protocol for that use case.
One missing bit; I don't believe there are DT bindings for the ACPI parking protocol, and similarly no ACPI binding for spin tables. Therefore a platform without EL3 must choose to do only DT or only ACPI. I'm rapidly approaching pendanticry here because in practice this is unlikely to be a problem. The vast majority of EBBR platforms will be DT based, and the platforms that want to have an ACPI option will probably target full SBSA/SBBR compliance -- and therefore have EL3.
So, what I'll propose is allow for any of the three (PSCI, ACPI Parking Protocol, or spin table) with the caveats: * PSCI is required when EL3 exists * DT w/o EL3 requires spin-table * ACPI w/o EL3 requires ACPI Parking Protocol (and is stupid)
We'll see if anyone screams about PSCI being required. If so, I'll relax it to allow spin-table w/ proprietary EL3.
g. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.