On Fri, 6 Sep 2019 at 09:33, Xiang Zheng wrote:
>
> From: Dongjiu Geng
>
> Add APEI/GHES detailed design document
>
> Signed-off-by: Dongjiu Geng
> Signed-off-by: Xiang Zheng
> ---
> docs/specs/acpi_hest_ghes.txt | 88 +++
> 1 file changed, 88 insertions(+)
> create mode 100644 docs/specs/acpi_hest_ghes.txt
Hi; new documentation in docs/specs should be in rst format and
listed in the contents page for the manual at docs/specs/index.rst,
please. Conversion from plain text should hopefully be fairly
straightforward.
I've also provided some minor typo/grammar fixes below.
> diff --git a/docs/specs/acpi_hest_ghes.txt b/docs/specs/acpi_hest_ghes.txt
> new file mode 100644
> index 00..690d4b2bd0
> --- /dev/null
> +++ b/docs/specs/acpi_hest_ghes.txt
> @@ -0,0 +1,88 @@
> +APEI tables generating and CPER record
> +=
> +
> +Copyright (C) 2019 Huawei Corporation.
> +
> +Design Details:
> +---
> +
> + etc/acpi/tables etc/hardware_errors
> +
> ==
> ++ +--++---+
> +| | HEST ||address|
> +--+
> +| +--+|registers |
> | Error Status |
> +| | GHES1|| +-+
> | Data Block 1 |
> +| +--+ +->| |error_block_address1
> |--->| ++
> +| | .| | | +-+
> | | CPER |
> +| | error_status_address-+-+ +--->| |error_block_address2 |+
> | | CPER |
> +| | .| || +-+|
> | | |
> +| | read_ack_register+-+ || |.. ||
> | | CPER |
> +| | read_ack_preserve| | |+---+|
> | ++
> +| | read_ack_write | | | +->| |error_block_addressN |--+ |
> | Error Status |
> ++ +--+ | | | | +-+ | |
> | Data Block 2 |
> +| | GHES2| +-+-+->| |read_ack_register1 | |
> +-->| ++
> ++ +--+ | | | +-+ |
> | | CPER |
> +| | .| | | +--->| |read_ack_register2 | |
> | | CPER |
> +| | error_status_address-+---+ | || +-+ |
> | | |
> +| | .| | || | . | |
> | | CPER |
> +| | read_ack_register+-+-+| +-+ |
> +-++
> +| | read_ack_preserve| | +->| |read_ack_registerN | |
> | |.. |
> +| | read_ack_write | | | | +-+ |
> | ++
> ++ +--| | | |
> | Error Status |
> +| | ... | | | |
> | Data Block N |
> ++ +--+ | |
> +>| ++
> +| | GHESN| | |
> | | CPER |
> ++ +--+ | |
> | | CPER |
> +| | .| | |
> | | |
> +| | error_status_address-+-+ |
> | | CPER |
> +| | .| |
> +-++
> +| | read_ack_register+-+
> +| | read_ack_preserve|
> +| | read_ack_write |
> ++ +--+
> +
> +(1) QEMU generates the ACPI HEST table. This table goes in the current
> +"etc/acpi/tables" fw_cfg blob. Each error source has different
> +notification types.
> +
> +(2) A new fw_cfg blob called "etc/hardware_errors" is introduced. QEMU
> +also need to populate this blob. The "etc/hardwre_errors" fw_cfg blob
"needs". "hardware_errors".
> +contains an address registers table and an Error Status Data Block table.
> +
> +(3) The address registers table contains N Error Block Address entries
> +and N Read Ack Register entries, the size for each entry is 8-byte.
". The size".
> +The Error Status Data Block table contains N Error Status Data Block
> +entries, the size for each entry is 4096(0x1000) bytes. The total size
". The size"
> +for "etc/hardware_errors" fw_cfg blob is (N * 8 * 2 + N * 4096) bytes.
"f