LibreOffice/5.2.3.3$Linux_X86_64 LibreOffice_project/20m0$Build-3
0
2342
17861
7788
true
false
view2
3041
3464
2342
0
20202
7786
1
1
false
228
false
false
true
true
true
0
true
true
false
false
true
false
true
false
true
true
true
true
true
false
true
true
false
false
true
false
true
true
false
false
false
true
false
true
true
false
true
false
false
1430233
false
false
true
false
true
true
false
false
0
false
true
high-resolution
false
false
false
false
true
true
true
false
false
false
true
false
false
false
true
true
1362860
true
1
true
false
false
0
false
false
false

ACPI Specification for Xen Environment Table

Specification: LINARO-0003

Author: Parth Dixit<parth.dixit@linaro.org>, Julien Grall<julien.grall@citrix.com>

Revision History:

Version

Date

Comments

0.1

4 December 2014

Initial draft.

0.2

4 January 2015

First Revision

Title:

Define Xen Environment table for passing Xen specific information to DOM0.

License:

This work is licensed under the BSD License. To view a copy of this license, visit http://opensource.org/licenses/BSD-3-Clause.

Problem Statement:

DOM0(Linux) requires additional information about the Xen environment for proper communication with Xen. DOM0 shares some memory pages with Xen and it need the address and size of the memory allocated to it. DOM0 also needs to configure interrupt that will be used for notification of events.

The Xen Environment Table:

This specification lays out the structure and content of a new ACPI table – the Xen Environment Table (XENV). This table, while not currently part of the ACPI specification, may or may not become part of the specification at a later date.

The purpose of the XENV is to pass the starting memory address,memory size and event channel interrupt from Xen to DOM0.

The structure of the XENV is defined in Table 1.

Table 1. Xen Environment Table

Field

Byte Length

Byte Offset

Description

Signature

4

0

XENV to indicate that this is the Xen Environment Table.

Length

4

4

Length in bytes of the entire Table

Revision

1

8

1 – current revision level of the XENV

Checksum

1

9

Standard ACPI table checksum; i.e., the entire table must sum to zero

OEMID

6

10

OEM ID

OEM Table ID

8

16

OEM model ID

OEM Revision

4

24

OEM Revision of the XENV for the OEM Table ID

Creator ID

4

28

Vendor ID of the utility that created the table

Creator Revision

4

32

Revision of the utility that created the table

GNT Start

8

36

Starting address of the

Grant Table Region

GNT Size

8

44

Size of the Grant Table Region

Evtchn Intr

4

52

PPI used to notify an event channel

Evtchn Intr Flags

1

56

Flags for the Evtchn Intr

The Grant Table region is optional. If not provided, the field “GNT Size" must be 0. The field "GNT start" is unknown.

The Event Channel Interrupt is optional. If not provided, the field "Evtchn Intr" must be 0 (consistent with other tables such as the GTDT). The field "Evtchn intr flags" is unknown.

Flags Definition for the Evtchn intr are defined in Table 2.

Table 2. Evtchn Intr Flags

Bit Field

Bit Offset

Number of bits

Description

Evtchn Intr Mode

0

1

This bit indicates the mode of the Evtchn Intr

1: Interrupt is Edge triggered

0: Interrupt is Level triggered

Evtchn Intr Polarity

1

1

This bit indicates the polarity the Evtchn Intr

1: Interrupt is Active low

0: Interrupt is Active high

Reserved

2

2

Reserved, must be zero

Example:

Below, we define a simple table with arbitrary address and interrupt number:

/*

* Template for [XENV] ACPI Table

* Format: [ByteLength] FieldName : HexFieldValue

*/

[0004] Signature : “XENV” // Xen Environment Table

[0004] Table Length : 00000000

[0001] Revision : 01

[0001] Checksum : 00

[0006] Oem ID : "XenVMM"

[0008] Oem Table ID : "TEMPLATE"

[0004] Oem Revision : 00000000

[0004] Asl Compiler ID : "INTL"

[0004] Asl Compiler Revision : 20140214

[0008] GNT Start : 0000000010000000

[0008] GNT Size : 0000000000002000

[0004] Evtchn Intr : 25

[0001] Evtchn Intr Flags(decoded below) : 03

Evtchn Intr Mode : 1

Evtchn Intr Polarity : 1