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 />

19.6.7 BankField (Declare Bank/Data Field)<br />

Syntax<br />

BankField (RegionName, BankName, BankValue, AccessType, LockRule, UpdateRule)<br />

{FieldUnitList}<br />

Arguments<br />

RegionName is the name of the host Operation Region. BankName is the name of the bank selection<br />

register.<br />

Accessing the contents of a banked field data object will occur automatically through the proper<br />

bank setting, with synchronization occurring on the operation region that contains the BankName<br />

data variable, <strong>and</strong> on the Global Lock if specified by the LockRule.<br />

The AccessType, LockRule, UpdateRule, <strong>and</strong> FieldUnitList are the same format as the Field<br />

operator.<br />

Description<br />

This operator creates data field objects. The contents of the created objects are obtained by a<br />

reference to a bank selection register.<br />

This encoding is used to define named data field objects whose data values are fields within a larger<br />

object selected by a bank-selected register.<br />

Example<br />

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

• Creates a 4-bit bank-selected register in system I/O space.<br />

• Creates overlapping fields in the same system I/O space that are selected via the bank register.<br />

//<br />

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

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

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

// Create some fields in GIO including a 4-bit bank select register<br />

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

GLB1, 1,<br />

GLB2, 1,<br />

Offset (1), // Move to offset for byte 1<br />

BNK1, 4<br />

}<br />

// Create FET0 & FET1 in bank 0 at byte offset 0x30<br />

BankField (GIO0, BNK1, 0, ByteAcc, NoLock, Preserve) {<br />

Offset (0x30),<br />

FET0, 1,<br />

FET1, 1<br />

}<br />

812 April, 2015 Version 6.0

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

Saved successfully!

Ooh no, something went wrong!