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.

<strong>Advanced</strong> <strong>Configuration</strong> <strong>and</strong> <strong>Power</strong> <strong>Interface</strong> <strong>Specification</strong><br />

Arguments<br />

IndexName <strong>and</strong> DataName refer to field unit objects. AccessType, LockRule, UpdateRule, <strong>and</strong><br />

FieldList are the same format as the Field term.<br />

Description<br />

Creates a series of named data objects whose data values are fields within a larger object accessed by<br />

an index/data-style reference to IndexName <strong>and</strong> DataName.<br />

This encoding is used to define named data objects whose data values are fields within an index/data<br />

register pair. This provides a simple way to declare register variables that occur behind a typical<br />

index <strong>and</strong> data register pair.<br />

Accessing the contents of an indexed field data object will automatically occur through the<br />

DataName object by using an IndexName object aligned on an AccessType boundary, with<br />

synchronization occurring on the operation region that contains the index data variable, <strong>and</strong> on the<br />

Global Lock if specified by LockRule.<br />

The value written to the IndexName register is defined to be a byte offset that is aligned on an<br />

AccessType boundary. For example, if AccessType is DWordAcc, valid index values are 0, 4, 8, etc.<br />

This value is always a byte offset <strong>and</strong> is independent of the width or access type of the DataName<br />

register.<br />

Example<br />

The following is a block of ASL sample code using IndexField:<br />

Creates an index/data register in system I/O space made up of 8-bit registers.<br />

• Creates a FET0 field within the indexed range.<br />

Method (EX1) {<br />

// Define a 256-byte operational region in SystemIO space<br />

// <strong>and</strong> name it GIO0<br />

OperationRegion (GIO0, 1, 0x125, 0x100)<br />

// Create a field named Preserve structured as a sequence<br />

// of index <strong>and</strong> data bytes<br />

Field (GIO0, ByteAcc, NoLock, WriteAsZeros) {<br />

IDX0, 8,<br />

DAT0, 8,<br />

.<br />

.<br />

.<br />

}<br />

// Create an IndexField within IDX0 & DAT0 which has<br />

// FETs in the first two bits of indexed offset 0,<br />

// <strong>and</strong> another 2 FETs in the high bit on indexed<br />

// 2F <strong>and</strong> the low bit of indexed offset 30<br />

850 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!