<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/Documentation/acpi, branch v3.8</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Documentation: remove __dev* attributes.</title>
<updated>2013-01-03T23:57:16+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2012-12-21T23:15:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=63a29f744fe1c19742039ce7526663a98f172f7e'/>
<id>63a29f744fe1c19742039ce7526663a98f172f7e</id>
<content type='text'>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from the kernel documentation.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitdata,
__devinitconst, and __devexit from the kernel documentation.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton &lt;wfp5p@virginia.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2012-12-14T18:03:23+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-12-14T18:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=18dd0bf22b6f0c1bd5e4e813a42245ed86ec57b6'/>
<id>18dd0bf22b6f0c1bd5e4e813a42245ed86ec57b6</id>
<content type='text'>
Pull x86 ACPI update from Peter Anvin:
 "This is a patchset which didn't make the last merge window.  It adds a
  debugging capability to feed ACPI tables via the initramfs.

  On a grander scope, it formalizes using the initramfs protocol for
  feeding arbitrary blobs which need to be accessed early to the kernel:
  they are fed first in the initramfs blob (lots of bootloaders can
  concatenate this at boot time, others can use a single file) in an
  uncompressed cpio archive using filenames starting with "kernel/".

  The ACPI maintainers requested that this patchset be fed via the x86
  tree rather than the ACPI tree as the footprint in the general x86
  code is much bigger than in the ACPI code proper."

* 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  X86 ACPI: Use #ifdef not #if for CONFIG_X86 check
  ACPI: Fix build when disabled
  ACPI: Document ACPI table overriding via initrd
  ACPI: Create acpi_table_taint() function to avoid code duplication
  ACPI: Implement physical address table override
  ACPI: Store valid ACPI tables passed via early initrd in reserved memblock areas
  x86, acpi: Introduce x86 arch specific arch_reserve_mem_area() for e820 handling
  lib: Add early cpio decoder
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull x86 ACPI update from Peter Anvin:
 "This is a patchset which didn't make the last merge window.  It adds a
  debugging capability to feed ACPI tables via the initramfs.

  On a grander scope, it formalizes using the initramfs protocol for
  feeding arbitrary blobs which need to be accessed early to the kernel:
  they are fed first in the initramfs blob (lots of bootloaders can
  concatenate this at boot time, others can use a single file) in an
  uncompressed cpio archive using filenames starting with "kernel/".

  The ACPI maintainers requested that this patchset be fed via the x86
  tree rather than the ACPI tree as the footprint in the general x86
  code is much bigger than in the ACPI code proper."

* 'x86-acpi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  X86 ACPI: Use #ifdef not #if for CONFIG_X86 check
  ACPI: Fix build when disabled
  ACPI: Document ACPI table overriding via initrd
  ACPI: Create acpi_table_taint() function to avoid code duplication
  ACPI: Implement physical address table override
  ACPI: Store valid ACPI tables passed via early initrd in reserved memblock areas
  x86, acpi: Introduce x86 arch specific arch_reserve_mem_area() for e820 handling
  lib: Add early cpio decoder
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI: add documentation about ACPI 5 enumeration</title>
<updated>2012-12-07T22:11:51+00:00</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2012-12-07T22:11:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=59c3987805a92f50f4c37392a36ab951327a6e29'/>
<id>59c3987805a92f50f4c37392a36ab951327a6e29</id>
<content type='text'>
Add a document that describes how to take advantage of ACPI enumeration for
buses like platform, I2C and SPI. In addition to that we document how to
translate ACPI GpioIo and GpioInt resources to be useful in Linux device
drivers.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a document that describes how to take advantage of ACPI enumeration for
buses like platform, I2C and SPI. In addition to that we document how to
translate ACPI GpioIo and GpioInt resources to be useful in Linux device
drivers.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI: Document ACPI table overriding via initrd</title>
<updated>2012-10-01T01:03:41+00:00</updated>
<author>
<name>Thomas Renninger</name>
<email>trenn@suse.de</email>
</author>
<published>2012-09-30T22:23:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8347bbecf3518aa1518f6157e661812a35775130'/>
<id>8347bbecf3518aa1518f6157e661812a35775130</id>
<content type='text'>
Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Link: http://lkml.kernel.org/r/1349043837-22659-7-git-send-email-trenn@suse.de
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Robert Moore &lt;robert.moore@intel.com&gt;
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Eric Piel &lt;eric.piel@tremplin-utc.net&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Link: http://lkml.kernel.org/r/1349043837-22659-7-git-send-email-trenn@suse.de
Cc: Len Brown &lt;lenb@kernel.org&gt;
Cc: Robert Moore &lt;robert.moore@intel.com&gt;
Cc: Yinghai Lu &lt;yinghai@kernel.org&gt;
Cc: Eric Piel &lt;eric.piel@tremplin-utc.net&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Update documentation for parameter *notrigger* in einj.txt</title>
<updated>2012-03-30T07:30:19+00:00</updated>
<author>
<name>Chen Gong</name>
<email>gong.chen@linux.intel.com</email>
</author>
<published>2012-03-15T08:53:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6ef19ab7fa1535d35006535dba6c407dad2d845c'/>
<id>6ef19ab7fa1535d35006535dba6c407dad2d845c</id>
<content type='text'>
Add description of parameter notrigger in the einj.txt.
One can utilize this new parameter to do some SRAR injection
test. Pay attention, the operation is highly depended on the
BIOS implementation. If no proper BIOS supports it, even if
enabling this parameter, expected result will not happen.

v2:
  Update the documentation suggested by Tony

Suggested-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Chen Gong &lt;gong.chen@linux.intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add description of parameter notrigger in the einj.txt.
One can utilize this new parameter to do some SRAR injection
test. Pay attention, the operation is highly depended on the
BIOS implementation. If no proper BIOS supports it, even if
enabling this parameter, expected result will not happen.

v2:
  Update the documentation suggested by Tony

Suggested-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Chen Gong &lt;gong.chen@linux.intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec</title>
<updated>2012-01-18T06:14:17+00:00</updated>
<author>
<name>Tony Luck</name>
<email>tony.luck@intel.com</email>
</author>
<published>2012-01-17T20:10:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c130bd6f82e5dda28b1a19741c4c2fe269713199'/>
<id>c130bd6f82e5dda28b1a19741c4c2fe269713199</id>
<content type='text'>
ACPI 5.0 provides extensions to the EINJ mechanism to specify the
target for the error injection - by APICID for cpu related errors,
by address for memory related errors, and by segment/bus/device/function
for PCIe related errors. Also extensions for vendor specific error
injections.

Tested-by: Chen Gong &lt;gong.chen@linux.intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ACPI 5.0 provides extensions to the EINJ mechanism to specify the
target for the error injection - by APICID for cpu related errors,
by address for memory related errors, and by segment/bus/device/function
for PCIe related errors. Also extensions for vendor specific error
injections.

Tested-by: Chen Gong &lt;gong.chen@linux.intel.com&gt;
Signed-off-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI, APEI, EINJ Param support is disabled by default</title>
<updated>2011-08-03T15:15:59+00:00</updated>
<author>
<name>Huang Ying</name>
<email>ying.huang@intel.com</email>
</author>
<published>2011-07-20T08:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c3e6088e1036f8084bc7444b38437da136b7588b'/>
<id>c3e6088e1036f8084bc7444b38437da136b7588b</id>
<content type='text'>
EINJ parameter support is only usable for some specific BIOS.
Originally, it is expected to have no harm for BIOS does not support
it.  But now, we found it will cause issue (memory overwriting) for
some BIOS.  So param support is disabled by default and only enabled
when newly added module parameter named "param_extension" is
explicitly specified.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Acked-by: Don Zickus &lt;dzickus@redhat.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
EINJ parameter support is only usable for some specific BIOS.
Originally, it is expected to have no harm for BIOS does not support
it.  But now, we found it will cause issue (memory overwriting) for
some BIOS.  So param support is disabled by default and only enabled
when newly added module parameter named "param_extension" is
explicitly specified.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Acked-by: Don Zickus &lt;dzickus@redhat.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI: Split out custom_method functionality into an own driver</title>
<updated>2011-05-29T05:50:40+00:00</updated>
<author>
<name>Thomas Renninger</name>
<email>trenn@suse.de</email>
</author>
<published>2011-05-26T10:26:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=526b4af47f44148c9d665e57723ed9f86634c6e3'/>
<id>526b4af47f44148c9d665e57723ed9f86634c6e3</id>
<content type='text'>
With /sys/kernel/debug/acpi/custom_method root can write
to arbitrary memory and increase his priveleges, even if
these are restricted.

-&gt; Make this an own debug .config option and warn about the
security issue in the config description.

-&gt; Still keep acpi/debugfs.c which now only creates an empty
   /sys/kernel/debug/acpi directory. There might be other
   users of it later.

Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Acked-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: rui.zhang@intel.com
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With /sys/kernel/debug/acpi/custom_method root can write
to arbitrary memory and increase his priveleges, even if
these are restricted.

-&gt; Make this an own debug .config option and warn about the
security issue in the config description.

-&gt; Still keep acpi/debugfs.c which now only creates an empty
   /sys/kernel/debug/acpi directory. There might be other
   users of it later.

Signed-off-by: Thomas Renninger &lt;trenn@suse.de&gt;
Acked-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Acked-by: rui.zhang@intel.com
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI, APEI, Add PCIe AER error information printing support</title>
<updated>2011-03-22T02:59:08+00:00</updated>
<author>
<name>Huang Ying</name>
<email>ying.huang@intel.com</email>
</author>
<published>2011-02-21T05:54:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c413d7682020a127f54744a1b30f597692aea1fd'/>
<id>c413d7682020a127f54744a1b30f597692aea1fd</id>
<content type='text'>
The AER error information printing support is implemented in
drivers/pci/pcie/aer/aer_print.c.  So some string constants, functions
and macros definitions can be re-used without being exported.

The original PCIe AER error information printing function is not
re-used directly because the overall format is quite different.  And
changing the original printing format may make some original users'
scripts broken.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
CC: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
CC: Zhang Yanmin &lt;yanmin.zhang@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The AER error information printing support is implemented in
drivers/pci/pcie/aer/aer_print.c.  So some string constants, functions
and macros definitions can be re-used without being exported.

The original PCIe AER error information printing function is not
re-used directly because the overall format is quite different.  And
changing the original printing format may make some original users'
scripts broken.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
CC: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt;
CC: Zhang Yanmin &lt;yanmin.zhang@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ACPI, APEI, Add APEI generic error status printing support</title>
<updated>2010-12-14T04:42:12+00:00</updated>
<author>
<name>Huang Ying</name>
<email>ying.huang@intel.com</email>
</author>
<published>2010-12-07T02:22:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f59c55d04b43bd72df8efa692dd07224fe94d1ac'/>
<id>f59c55d04b43bd72df8efa692dd07224fe94d1ac</id>
<content type='text'>
In APEI, Hardware error information reported by firmware to Linux
kernel is in the data structure of APEI generic error status (struct
acpi_hes_generic_status).  While now printk is used by Linux kernel to
report hardware error information to user space.

So, this patch adds printing support for the data structure, so that
the corresponding hardware error information can be reported to user
space via printk.

PCIe AER information printing is not implemented yet.  Will refactor the
original PCIe AER information printing code to avoid code duplicating.

The output format is as follow:

&lt;error record&gt; :=
APEI generic hardware error status
severity: &lt;integer&gt;, &lt;severity string&gt;
section: &lt;integer&gt;, severity: &lt;integer&gt;, &lt;severity string&gt;
flags: &lt;integer&gt;
&lt;section flags strings&gt;
fru_id: &lt;uuid string&gt;
fru_text: &lt;string&gt;
section_type: &lt;section type string&gt;
&lt;section data&gt;

&lt;severity string&gt;* := recoverable | fatal | corrected | info

&lt;section flags strings&gt;# :=
[primary][, containment warning][, reset][, threshold exceeded]\
[, resource not accessible][, latent error]

&lt;section type string&gt; := generic processor error | memory error | \
PCIe error | unknown, &lt;uuid string&gt;

&lt;section data&gt; :=
&lt;generic processor section data&gt; | &lt;memory section data&gt; | \
&lt;pcie section data&gt; | &lt;null&gt;

&lt;generic processor section data&gt; :=
[processor_type: &lt;integer&gt;, &lt;proc type string&gt;]
[processor_isa: &lt;integer&gt;, &lt;proc isa string&gt;]
[error_type: &lt;integer&gt;
&lt;proc error type strings&gt;]
[operation: &lt;integer&gt;, &lt;proc operation string&gt;]
[flags: &lt;integer&gt;
&lt;proc flags strings&gt;]
[level: &lt;integer&gt;]
[version_info: &lt;integer&gt;]
[processor_id: &lt;integer&gt;]
[target_address: &lt;integer&gt;]
[requestor_id: &lt;integer&gt;]
[responder_id: &lt;integer&gt;]
[IP: &lt;integer&gt;]

&lt;proc type string&gt;* := IA32/X64 | IA64

&lt;proc isa string&gt;* := IA32 | IA64 | X64

&lt;processor error type strings&gt;# :=
[cache error][, TLB error][, bus error][, micro-architectural error]

&lt;proc operation string&gt;* := unknown or generic | data read | data write | \
instruction execution

&lt;proc flags strings&gt;# :=
[restartable][, precise IP][, overflow][, corrected]

&lt;memory section data&gt; :=
[error_status: &lt;integer&gt;]
[physical_address: &lt;integer&gt;]
[physical_address_mask: &lt;integer&gt;]
[node: &lt;integer&gt;]
[card: &lt;integer&gt;]
[module: &lt;integer&gt;]
[bank: &lt;integer&gt;]
[device: &lt;integer&gt;]
[row: &lt;integer&gt;]
[column: &lt;integer&gt;]
[bit_position: &lt;integer&gt;]
[requestor_id: &lt;integer&gt;]
[responder_id: &lt;integer&gt;]
[target_id: &lt;integer&gt;]
[error_type: &lt;integer&gt;, &lt;mem error type string&gt;]

&lt;mem error type string&gt;* :=
unknown | no error | single-bit ECC | multi-bit ECC | \
single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
target abort | parity error | watchdog timeout | invalid address | \
mirror Broken | memory sparing | scrub corrected error | \
scrub uncorrected error

&lt;pcie section data&gt; :=
[port_type: &lt;integer&gt;, &lt;pcie port type string&gt;]
[version: &lt;integer&gt;.&lt;integer&gt;]
[command: &lt;integer&gt;, status: &lt;integer&gt;]
[device_id: &lt;integer&gt;:&lt;integer&gt;:&lt;integer&gt;.&lt;integer&gt;
slot: &lt;integer&gt;
secondary_bus: &lt;integer&gt;
vendor_id: &lt;integer&gt;, device_id: &lt;integer&gt;
class_code: &lt;integer&gt;]
[serial number: &lt;integer&gt;, &lt;integer&gt;]
[bridge: secondary_status: &lt;integer&gt;, control: &lt;integer&gt;]

&lt;pcie port type string&gt;* := PCIe end point | legacy PCI end point | \
unknown | unknown | root port | upstream switch port | \
downstream switch port | PCIe to PCI/PCI-X bridge | \
PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
root complex event collector

Where, [] designate corresponding content is optional

All &lt;field string&gt; description with * has the following format:

field: &lt;integer&gt;, &lt;field string&gt;

Where value of &lt;integer&gt; should be the position of "string" in &lt;field
string&gt; description. Otherwise, &lt;field string&gt; will be "unknown".

All &lt;field strings&gt; description with # has the following format:

field: &lt;integer&gt;
&lt;field strings&gt;

Where each string in &lt;fields strings&gt; corresponding to one set bit of
&lt;integer&gt;. The bit position is the position of "string" in &lt;field
strings&gt; description.

For more detailed explanation of every field, please refer to UEFI
specification version 2.3 or later, section Appendix N: Common
Platform Error Record.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In APEI, Hardware error information reported by firmware to Linux
kernel is in the data structure of APEI generic error status (struct
acpi_hes_generic_status).  While now printk is used by Linux kernel to
report hardware error information to user space.

So, this patch adds printing support for the data structure, so that
the corresponding hardware error information can be reported to user
space via printk.

PCIe AER information printing is not implemented yet.  Will refactor the
original PCIe AER information printing code to avoid code duplicating.

The output format is as follow:

&lt;error record&gt; :=
APEI generic hardware error status
severity: &lt;integer&gt;, &lt;severity string&gt;
section: &lt;integer&gt;, severity: &lt;integer&gt;, &lt;severity string&gt;
flags: &lt;integer&gt;
&lt;section flags strings&gt;
fru_id: &lt;uuid string&gt;
fru_text: &lt;string&gt;
section_type: &lt;section type string&gt;
&lt;section data&gt;

&lt;severity string&gt;* := recoverable | fatal | corrected | info

&lt;section flags strings&gt;# :=
[primary][, containment warning][, reset][, threshold exceeded]\
[, resource not accessible][, latent error]

&lt;section type string&gt; := generic processor error | memory error | \
PCIe error | unknown, &lt;uuid string&gt;

&lt;section data&gt; :=
&lt;generic processor section data&gt; | &lt;memory section data&gt; | \
&lt;pcie section data&gt; | &lt;null&gt;

&lt;generic processor section data&gt; :=
[processor_type: &lt;integer&gt;, &lt;proc type string&gt;]
[processor_isa: &lt;integer&gt;, &lt;proc isa string&gt;]
[error_type: &lt;integer&gt;
&lt;proc error type strings&gt;]
[operation: &lt;integer&gt;, &lt;proc operation string&gt;]
[flags: &lt;integer&gt;
&lt;proc flags strings&gt;]
[level: &lt;integer&gt;]
[version_info: &lt;integer&gt;]
[processor_id: &lt;integer&gt;]
[target_address: &lt;integer&gt;]
[requestor_id: &lt;integer&gt;]
[responder_id: &lt;integer&gt;]
[IP: &lt;integer&gt;]

&lt;proc type string&gt;* := IA32/X64 | IA64

&lt;proc isa string&gt;* := IA32 | IA64 | X64

&lt;processor error type strings&gt;# :=
[cache error][, TLB error][, bus error][, micro-architectural error]

&lt;proc operation string&gt;* := unknown or generic | data read | data write | \
instruction execution

&lt;proc flags strings&gt;# :=
[restartable][, precise IP][, overflow][, corrected]

&lt;memory section data&gt; :=
[error_status: &lt;integer&gt;]
[physical_address: &lt;integer&gt;]
[physical_address_mask: &lt;integer&gt;]
[node: &lt;integer&gt;]
[card: &lt;integer&gt;]
[module: &lt;integer&gt;]
[bank: &lt;integer&gt;]
[device: &lt;integer&gt;]
[row: &lt;integer&gt;]
[column: &lt;integer&gt;]
[bit_position: &lt;integer&gt;]
[requestor_id: &lt;integer&gt;]
[responder_id: &lt;integer&gt;]
[target_id: &lt;integer&gt;]
[error_type: &lt;integer&gt;, &lt;mem error type string&gt;]

&lt;mem error type string&gt;* :=
unknown | no error | single-bit ECC | multi-bit ECC | \
single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
target abort | parity error | watchdog timeout | invalid address | \
mirror Broken | memory sparing | scrub corrected error | \
scrub uncorrected error

&lt;pcie section data&gt; :=
[port_type: &lt;integer&gt;, &lt;pcie port type string&gt;]
[version: &lt;integer&gt;.&lt;integer&gt;]
[command: &lt;integer&gt;, status: &lt;integer&gt;]
[device_id: &lt;integer&gt;:&lt;integer&gt;:&lt;integer&gt;.&lt;integer&gt;
slot: &lt;integer&gt;
secondary_bus: &lt;integer&gt;
vendor_id: &lt;integer&gt;, device_id: &lt;integer&gt;
class_code: &lt;integer&gt;]
[serial number: &lt;integer&gt;, &lt;integer&gt;]
[bridge: secondary_status: &lt;integer&gt;, control: &lt;integer&gt;]

&lt;pcie port type string&gt;* := PCIe end point | legacy PCI end point | \
unknown | unknown | root port | upstream switch port | \
downstream switch port | PCIe to PCI/PCI-X bridge | \
PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
root complex event collector

Where, [] designate corresponding content is optional

All &lt;field string&gt; description with * has the following format:

field: &lt;integer&gt;, &lt;field string&gt;

Where value of &lt;integer&gt; should be the position of "string" in &lt;field
string&gt; description. Otherwise, &lt;field string&gt; will be "unknown".

All &lt;field strings&gt; description with # has the following format:

field: &lt;integer&gt;
&lt;field strings&gt;

Where each string in &lt;fields strings&gt; corresponding to one set bit of
&lt;integer&gt;. The bit position is the position of "string" in &lt;field
strings&gt; description.

For more detailed explanation of every field, please refer to UEFI
specification version 2.3 or later, section Appendix N: Common
Platform Error Record.

Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Signed-off-by: Len Brown &lt;len.brown@intel.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
