On Sun, Aug 25, 2024 at 09:10:01AM +0200, Krzysztof Kozlowski wrote: > On Fri, Aug 23, 2024 at 04:23:20PM -0700, Yunhong Jiang wrote: > > Add the binding to use mailbox wakeup mechanism to bringup APs. > > > > Signed-off-by: Yunhong Jiang <yunhong.jiang@xxxxxxxxxxxxxxx> > > --- > > .../devicetree/bindings/x86/wakeup.yaml | 64 +++++++++++++++++++ > > 1 file changed, 64 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/x86/wakeup.yaml > > > > diff --git a/Documentation/devicetree/bindings/x86/wakeup.yaml b/Documentation/devicetree/bindings/x86/wakeup.yaml > > new file mode 100644 > > index 000000000000..cb84e2756bca > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/x86/wakeup.yaml > > @@ -0,0 +1,64 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +# Copyright (C) 2024 Intel Corporation > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/x86/wakeup.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: x86 mailbox wakeup > > +maintainers: > > + - Yunhong Jiang <yunhong.jiang@xxxxxxxxxxxxxxx> > > + > > +description: | > > + The x86 mailbox wakeup mechanism defines a mechanism to let the bootstrap > > + processor (BSP) to wake up application processors (APs) through a wakeup > > + mailbox. > > + > > + The "wakeup-mailbox-addr" property specifies the wakeup mailbox address. The > > + wakeup mailbox is a 4K-aligned 4K-size memory block allocated in the reserved > > + memory. > > + > > + The wakeup mailbox structure is defined as follows. > > + > > + uint16_t command; > > + uint16_t reserved; > > + uint32_t apic_id; > > + uint64_t wakeup_vector; > > + uint8_t reservedForOs[2032]; > > + > > + The memory after reservedForOs field is reserved and OS should not touch it. > > + > > + To wakes up a AP, the BSP prepares the wakeup routine, fills the wakeup > > + routine's address into the wakeup_vector field, fill the apic_id field with > > + the target AP's APIC_ID, and write 1 to the command field. After receiving the > > + wakeup command, the target AP will jump to the wakeup routine. > > + > > + For each AP, the mailbox can be used only once for the wakeup command. After > > + the AP jumps to the wakeup routine, the mailbox will no longer be checked by > > + this AP. > > + > > + The wakeup mailbox structure and the wakeup process is the same as > > + the Multiprocessor Wakeup Mailbox Structure defined in ACPI spec version 6.5, > > + section 5.2.12.19 [1]. > > + > > + References: > > + > > + [1] https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html > > + > > +select: false > > This schema is still a no-op because of this false. > > What is the point of defining one property if it is not placed anywhere? > Every device node can have it? Seems wrong... > > You need to come with proper schema. Lack of an example is another thing > - this cannot be even validated by the tools. > > Best regards, > Krzysztof Thank you for the feedback. Will update the schema file on next round submission. Thanks --jyh >