Index: ACPI_spec/source/05_ACPI_Software_Programming_Model.rst
===================================================================
--- ACPI_spec.orig/source/05_ACPI_Software_Programming_Model.rst
+++ ACPI_spec/source/05_ACPI_Software_Programming_Model.rst
@@ -4488,7 +4488,27 @@ The OS section can only be written by OS
 
 The OS section contains command, flags, APIC ID, and a wakeup address. After the OS detects the processor number from the MADT table, the OS may prepare the wakeup routine, fill the wakeup address field in the mailbox, indicate which processor need to be wakeup in the APID ID field, and send wakeup command. Once an application processor detects the wakeup command and its own APIC ID, the application processor will jump to the OS-provided wakeup address. The application processor will ignore the command if the APIC ID does not match its own.
 
-For each application processor, the mailbox can be used only once for the wakeup command. After the application process takes the action according to the command, this mailbox will no longer be checked by this application processor. Other processors can continue using the mailbox for the next command.
+For each application processor, the mailbox can be used only once for the wakeup command, unless
+the MailBoxVersion field value is greater than 0 and the ResetVector field contains a nonzero value.
+
+After the application process takes the action according to the command, this mailbox will no longer
+be checked by this application processor until the mailbox is reset for it as described below. Other
+processors can continue using the mailbox for the next command.
+
+In case the mailbox needs to be used once again, for example in order to start a new version of
+the OS without carrying out a full system reset, the ResetVector field value can be used for
+making the given application processor enter a state to check the mailbox. For this purpose,
+the OS needs to set up the mailbox reset environment, as per the ResetVector field description,
+for the application processor in question and make that application processor jump to the
+firmware-provided mailbox reset address retrieved from the ResetVector field. This needs to be
+done for each application processor individually and doing it for one application processor does
+not affect the other application processors, so they can continue to operate undisturbed.  However,
+if the ResetVector field value is 0, the mailbox cannot be reset and so it can be used only once.
+
+After an application processor has jumped to the reset address, the OS is required to verify that
+the mailbox responds to commands by sending the test command to it. When it responds by changing
+the command to noop, the OS is not required to maintain the mailbox reset environment for the given
+application processor any more.
 
 .. list-table:: **Multiprocessor Wakeup Structure**
    :name: multiprocessor-wakeup-structure-table
@@ -4507,11 +4527,11 @@ For each application processor, the mail
    * - Length
      - 1
      - 1
-     - 16
+     - 24
    * - MailBoxVersion
      - 2
      - 2
-     - Version of the mailbox. 0 for this version of the spec.
+     - Version of the mailbox. 1 for this version of the spec.
    * - *Reserved*
      - 4
      - 4
@@ -4520,6 +4540,17 @@ For each application processor, the mail
      - 8
      - 8
      - Physical address of the mailbox. It must be in ACPINvs. It must also be 4K bytes aligned. See :numref:`multiprocessor-wakeup-mailbox-structure` for the Mailbox definition. 
+   * - ResetVector
+     - 8
+     - 16
+     - | The mailbox reset vector address for application processor(s).
+       | For Intel processors, the mailbox reset environment is:
+       |   Interrupts must be disabled.
+       |   RFLAGES.IF set to 0.
+       |   Long mode enabled.
+       |   Paging mode is enabled and physical memory for reset vector is identity mapped (virtual address equals physical address).
+       |   Reset vector must be contained within one physical page.
+       |   Selectors are set to flat and otherwise not used.
 
 .. list-table:: **Multiprocessor Wakeup Mailbox Structure**
    :name: multiprocessor-wakeup-mailbox-structure
@@ -4536,7 +4567,8 @@ For each application processor, the mail
      - 0
      - | 0: Noop - no operation.
        | 1: Wakeup – jump to the wakeup vector.
-       | 2-0xFFFF: Reserved 
+       | 2: Test - respond by changing the command to Noop.
+       | 3-0xFFFF: Reserved.
    * - *Reserved*
      - 2
      - 2
