27.10.2015 Views

Advanced Configuration and Power Interface Specification

ACPI_6.0

ACPI_6.0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACPI Software Programming Model<br />

Table 5-39 Firmware Control Structure Feature Flags<br />

FACS – Flag<br />

Bit<br />

Length<br />

Bit<br />

Offset<br />

Description<br />

S4BIOS_F 1 0 Indicates whether the platform supports S4BIOS_REQ. If<br />

S4BIOS_REQ is not supported, OSPM must be able to save<br />

<strong>and</strong> restore the memory state in order to use the S4 state.<br />

64BIT_WAKE_SUPP<br />

ORTED_F<br />

1 1 Indicates that the platform firmware supports a 64 bit execution<br />

environment for the waking vector. When set <strong>and</strong> the OSPM<br />

additionally set 64BIT_WAKE_F, the platform firmware will<br />

create a 64 bit execution environment before transferring<br />

control to the X_Firmware_Waking_Vector.<br />

Reserved 30 2 The value is zero.<br />

Table 5-40 OSPM Enabled Firmware Control Structure Feature Flags<br />

FACS – Flag<br />

Bit<br />

Length<br />

Bit<br />

Offset<br />

Description<br />

64BIT_WAKE_F 1 0 OSPM sets this bit to indicate to platform firmware that the<br />

X_Firmware_Waking_Vector requires a 64 bit execution<br />

environment.<br />

This flag can only be set if platform firmware sets<br />

64BIT_WAKE_SUPPORTED_F in the FACS flags field.<br />

This bit field has no affect on Itanium TM Processor Family<br />

(IPF) -based platforms, which require a 64 bit execution<br />

environment.<br />

Reserved 31 1 The value is zero.<br />

5.2.10.1 Global Lock<br />

The purpose of the ACPI Global Lock is to provide mutual exclusion between the host OS <strong>and</strong> the<br />

ROM BIOS. The Global Lock is a 32-bit (DWORD) value in read/write memory located within the<br />

FACS <strong>and</strong> is accessed <strong>and</strong> updated by both the OS environment <strong>and</strong> the SMI environment in a<br />

defined manner to provide an exclusive lock. Note: this is not a pointer to the Global Lock, it is the<br />

actual memory location of the lock. The FACS <strong>and</strong> Global Lock may be located anywhere in<br />

physical memory.<br />

By convention, this lock is used to ensure that while one environment is accessing some hardware,<br />

the other environment is not. By this convention, when ownership of the lock fails because the other<br />

environment owns it, the requesting environment sets a “pending” state within the lock, exits its<br />

attempt to acquire the lock, <strong>and</strong> waits for the owning environment to signal that the lock has been<br />

released before attempting to acquire the lock again. When releasing the lock, if the pending bit in<br />

the lock is set after the lock is released, a signal is sent via an interrupt mechanism to the other<br />

environment to inform it that the lock has been released. During interrupt h<strong>and</strong>ling for the “lock<br />

released” event within the corresponding environment, if the lock ownership were still desired an<br />

attempt to acquire the lock would be made. If ownership is not acquired, then the environment must<br />

again set “pending” <strong>and</strong> wait for another “lock release” signal.<br />

The table below shows the encoding of the Global Lock DWORD in memory.<br />

Version 6.0 133

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!