History log of /openbmc/libcper/ (Results 1 – 25 of 238)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
51c1813226-Nov-2025 Daniel Osawa <dosawa@nvidia.com>

Add NVIDIA Event CPER section support

Add parsing and generation for NVIDIA Event error sections, including:
- CPU and GPU device-specific event info
- Multiple context data formats (key-value pairs

Add NVIDIA Event CPER section support

Add parsing and generation for NVIDIA Event error sections, including:
- CPU and GPU device-specific event info
- Multiple context data formats (key-value pairs, opaque, GPU metadata,
legacy XID, recommended actions)
- JSON schema specifications
- Example files and tests

Change-Id: Ibf66e2e4263014c2157958acf2f6158361fc6866
Signed-off-by: Daniel Osawa <dosawa@nvidia.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

e1cba52d18-Sep-2025 Prachotan Bathi <prachotan.bathi@arm.com>

cper-section-arm-ras: Support Arm RAS System Architecture node CPER

The DEN0085 - Arm ACPI for the Armv8-A RAS Extension and
RAS System Architecture v2.0 specification, section 4, defines
additional

cper-section-arm-ras: Support Arm RAS System Architecture node CPER

The DEN0085 - Arm ACPI for the Armv8-A RAS Extension and
RAS System Architecture v2.0 specification, section 4, defines
additional standard CPER records for Arm RAS architecture.
https://developer.arm.com/documentation/den0085/latest/

Added section definitions and generator to generate an
example cper with one descriptor. Generate using:
./cper-generate --out cper.generated.dump --sections arm-ras-node

Signed-off-by: Prachotan Bathi <prachotan.bathi@arm.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>
Change-Id: Ic7fa68a6c584c537a3dc2c4b17795dd7ba3b3f8c

show more ...

d3bdda6d04-Feb-2026 Ed Tanous <ed@tanous.net>

Change formatting of comments

These comments format oddly on different versions of clang. Change them
to be more standard and not overflow the line.

Change-Id: I7dc9d68f4ac5520f9d48e60ef284e3c29b7

Change formatting of comments

These comments format oddly on different versions of clang. Change them
to be more standard and not overflow the line.

Change-Id: I7dc9d68f4ac5520f9d48e60ef284e3c29b7adc89
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

8475223321-Jan-2026 Ed Tanous <etanous@nvidia.com>

Use size of buffer for copy

When using the untrusted functions, use the length of the buffer, rather
than strlen to determine the correct size of the char array.

While we're there, change the gener

Use size of buffer for copy

When using the untrusted functions, use the length of the buffer, rather
than strlen to determine the correct size of the char array.

While we're there, change the generation function to explicitly load all
bytes of the signature with zeros.

Tested: Unit tests pass.

Change-Id: I588c7f03dec0f749dad76e776ae818b31351d45c
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

9f68932612-Jan-2026 Aushim Nagarkatti <anagarkatti@nvidia.com>

Enable fuzzing path for nvidia-cmet

Randomize the Signature property to point to any of the pre-existing
types. This will ensure Fuzzing catches errors related to this code
path.

Change-Id: Ic2ae0c

Enable fuzzing path for nvidia-cmet

Randomize the Signature property to point to any of the pre-existing
types. This will ensure Fuzzing catches errors related to this code
path.

Change-Id: Ic2ae0c7d57722fa7b573afac11fe3e67c91b220e
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

680875cb13-Jan-2026 Aushim Nagarkatti <anagarkatti@nvidia.com>

CMET size check off by 1

The size calculation was off by 1 in the old code. We need to account
for EFI_NVIDIA_REGISTER_DATA + EFI_NVIDIA_ERROR_DATA when i==0.

Change-Id: Ib5d29f90cd52a199dd2fa391ba

CMET size check off by 1

The size calculation was off by 1 in the old code. We need to account
for EFI_NVIDIA_REGISTER_DATA + EFI_NVIDIA_ERROR_DATA when i==0.

Change-Id: Ib5d29f90cd52a199dd2fa391bac5d4bb634083a6
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

6df70ff621-Jan-2026 Ed Tanous <ed@tanous.net>

Replace json validator

jsoncdaccord appears to have force pushed their repo and removed all
history Despite having recent commits, it appears they no longer have
support. Replace the external sche

Replace json validator

jsoncdaccord appears to have force pushed their repo and removed all
history Despite having recent commits, it appears they no longer have
support. Replace the external schema validator with a minimal schema
validator that only implements the features that libcper uses. This may
be temporary until we find another well supported validator, but for the
moment, this seems like the best of the options.

Some files are pulled from jsondac, so that license is maintained.

Fixes #7

Tested:
Tests pass. No library changes.

Change-Id: I29872ce420850accecf6fa4372b4ede14b73250b
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

64389bfd09-Jan-2026 Aushim Nagarkatti <anagarkatti@nvidia.com>

Remove "message" from required schema properties

In a case where there's no section match for a GUID, we currently dump
the be64 CPER under "data". There's no expectation for unknown CPERs to
posses

Remove "message" from required schema properties

In a case where there's no section match for a GUID, we currently dump
the be64 CPER under "data". There's no expectation for unknown CPERs to
possess a description string.

"Unknown": {
"data": "Q1BFUgD\/\/\/8="
}

Change-Id: Ieec1c9baa8394f0d7edd91487de3a69848258121
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

f125142c09-Jan-2026 Aushim Nagarkatti <anagarkatti@nvidia.com>

Fix memory leaks in to_ir conversions

Memory was not being freed properly on bail conditions in the section
to_ir functions. This frees description strings, frees json objects and
assigns descriptio

Fix memory leaks in to_ir conversions

Memory was not being freed properly on bail conditions in the section
to_ir functions. This frees description strings, frees json objects and
assigns description pointers to null.

Change-Id: I69c1efdeaeb4796033e7f42b22569c62ced77c42
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

043d5f4b17-Oct-2025 Erwin Tsaur <etsaur@nvidia.com>

ARM CPER: Decode ErrorType as bit values

ErrorInformation.ErrorType needs to be decoded as bit values
instead of as an integer.

Change-Id: Iee09eb6e62561620d0903fea1ae4d6ed35898445
Signed-off-by: E

ARM CPER: Decode ErrorType as bit values

ErrorInformation.ErrorType needs to be decoded as bit values
instead of as an integer.

Change-Id: Iee09eb6e62561620d0903fea1ae4d6ed35898445
Signed-off-by: Erwin Tsaur <etsaur@nvidia.com>

show more ...

5a8a94f407-Nov-2025 Ed Tanous <etanous@nvidia.com>

Fix Usage Section in README

Samples are now located under 'examples' directory.

Change-Id: I39536eed30822ef680ce785249934dea98967ac2
Signed-off-by: Daniel Osawa <dosawa@nvidia.com>
Signed-off-by: E

Fix Usage Section in README

Samples are now located under 'examples' directory.

Change-Id: I39536eed30822ef680ce785249934dea98967ac2
Signed-off-by: Daniel Osawa <dosawa@nvidia.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

f1c8912414-Nov-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Handle Unknown ARM error type's description string

If an arm processor error type is not populated, ensure its description
string reflects this. Also handle case where errorInfo type is invalid.

Be

Handle Unknown ARM error type's description string

If an arm processor error type is not populated, ensure its description
string reflects this. Also handle case where errorInfo type is invalid.

Before:
"message":"An ARM Processor Error occurred on CPU 0; Error Type(s): { at
Virtual Addr=0xE

After:
"message":"An ARM Processor Error occurred on CPU 0; Error Type(s):
{Unknown Error at Virtual Addr=0xE

Change-Id: I46e23fcaaa5e3e424a30cd28fc0fe1d5725db5c4
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

991ebf2214-Nov-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Initialize string mem buffers to 0

This will prevent garbage from populating the description string if not
handled or copied correctly.

Change-Id: Icfb57cdaa283c40fbf8fffdde7621e2a1ac19ba4
Signed-o

Initialize string mem buffers to 0

This will prevent garbage from populating the description string if not
handled or copied correctly.

Change-Id: Icfb57cdaa283c40fbf8fffdde7621e2a1ac19ba4
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

a5cc9a9203-Sep-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat with clang-21

Copy the latest format file from the docs repository and apply using
clang-format-21.

See I795e88ada8e676c242b5a18888ce9c08afdedc93 for c

clang-format: update latest spec and reformat with clang-21

Copy the latest format file from the docs repository and apply using
clang-format-21.

See I795e88ada8e676c242b5a18888ce9c08afdedc93 for clang-21 enablement.

Change-Id: I46846988a94b2362ab1cccf3817976c422d0d646
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

da75128c28-Jul-2025 Peter Benitez <pbenitez@nvidia.com>

cper-section-memory: Fix validation dependency for Extended field bits

Fixed incorrect dependency between validation bits 16, 17, and 18 for
the Extended field. Previously, cardSmbiosHandle (validat

cper-section-memory: Fix validation dependency for Extended field bits

Fixed incorrect dependency between validation bits 16, 17, and 18 for
the Extended field. Previously, cardSmbiosHandle (validation bit 16)
and moduleSmbiosHandle (validation bit 17) were incorrectly made
dependent on the Extended field validation (bit 18), but these are
independent components.

Validation bit 18 controls the Extended field containing row address
bits 16 and 17, while validation bits 16 and 17 control SMBIOS handle
fields. These SMBIOS handle fields are independent components that
should be validated separately from the Extended field's row address
bits.

Tested: Added memory-validation-bits unit test

Change-Id: I9461c71bf0b782bda74ed24c95b63c080f913b19
Signed-off-by: Peter Benitez <pbenitez@nvidia.com>

show more ...

fa6c53ae28-Jul-2025 John Chung <john.chung@arm.com>

Fix parsing single section CPER error

Single section CPER logs do not contain a Record Header. The check for
a valid header is now performed only if the content includes a Record
Header. Additionall

Fix parsing single section CPER error

Single section CPER logs do not contain a Record Header. The check for
a valid header is now performed only if the content includes a Record
Header. Additionally, this update fixes an issue with the size
calculation for single-section logs.

Tested :
$> ./cper-generate --out single-cper.file --single-section firmware
$> ./cper-convert to-json-section single-cper.file

Change-Id: Id7efec20df3e5b53c6f90330e0770c1f682a8d87
Signed-off-by: John Chung <john.chung@arm.com>

show more ...

a11dbaba25-Jul-2025 Ed Tanous <etanous@nvidia.com>

Build jsondac with lower warning levels

json-c uses some macros that result in warnings that get thrown in
jsondacor. We don't really care about warnings in the test library, so
set the warning lev

Build jsondac with lower warning levels

json-c uses some macros that result in warnings that get thrown in
jsondacor. We don't really care about warnings in the test library, so
set the warning level to 2.

Change-Id: I9bcb828d2545b51488f17a8545898c98d1164d09
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

398899a025-Jul-2025 Ed Tanous <etanous@nvidia.com>

Fix pedantic warnings

With the latest build system, somehow -Wpedantic got turned on. This is
reasonable given that we expect this code to compile against a number of
targets. Fix void issues.

vo

Fix pedantic warnings

With the latest build system, somehow -Wpedantic got turned on. This is
reasonable given that we expect this code to compile against a number of
targets. Fix void issues.

void function() changes to void function(void)

Change-Id: I89a2dcbcd88c7d163ffdfb67927f71b39cb7aa6f
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

c21e3a1e23-Jul-2025 Khang D Nguyen <khangng@os.amperecomputing.com>

Fix base64 decode_table size

Array size is 257 due to additional null terminator.

base64.c:75:9: error: initializer-string for array of
'unsigned char' truncates NUL terminator but destinatio

Fix base64 decode_table size

Array size is 257 due to additional null terminator.

base64.c:75:9: error: initializer-string for array of
'unsigned char' truncates NUL terminator but destination
lacks 'nonstring' attribute (257 chars into 256 available)
[-Werror=unterminated-string-initialization]

Fix this by initialize it with a proper byte array.

Change-Id: I6a6a6964601f5ae97b4b2c82f16470890da55e07
Signed-off-by: Khang D Nguyen <khangng@os.amperecomputing.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>

show more ...

b6b8ba2725-Jul-2025 Khang D Nguyen <khangng@os.amperecomputing.com>

Fix C function signature with no parameters

Use void in parameter types to satisfy the compiler.

Change-Id: I6a6a696449f043209b9f32290b914bbae54aefb7
Signed-off-by: Khang D Nguyen <khangng@os.amper

Fix C function signature with no parameters

Use void in parameter types to satisfy the compiler.

Change-Id: I6a6a696449f043209b9f32290b914bbae54aefb7
Signed-off-by: Khang D Nguyen <khangng@os.amperecomputing.com>

show more ...

9147b63309-Jul-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Fix compilation issues with strncat

Use remaining buf size as "num" argument instead of bytes to copy.

Change-Id: Ie9a721fdcdde605bcdfa850b47da472db7412362
Signed-off-by: Aushim Nagarkatti <anagark

Fix compilation issues with strncat

Use remaining buf size as "num" argument instead of bytes to copy.

Change-Id: Ie9a721fdcdde605bcdfa850b47da472db7412362
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

89833fe408-Jul-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Use long unsigned for CPU socket type

PRIu64 to make compatible with both 32 and 64b
Fix format descriptor for cpu socket.

Change-Id: I1485b89d1d3cf896fc58d067469fd8fcff5bd776
Signed-off-by: Aushim

Use long unsigned for CPU socket type

PRIu64 to make compatible with both 32 and 64b
Fix format descriptor for cpu socket.

Change-Id: I1485b89d1d3cf896fc58d067469fd8fcff5bd776
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

df2248dc08-Jul-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Use long unsigned for CPU socket type

Fix format descriptor for cpu socket.

Change-Id: I175a09e23393c51fdc466cc83b70ad08fe80822b
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

ad6c880f18-Jun-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Support to stringify CPER output

Initial commit to add a "message" property that provides a single line
description of some important properties. This makes it easier to parse
multiple CPERs in crow

Support to stringify CPER output

Initial commit to add a "message" property that provides a single line
description of some important properties. This makes it easier to parse
multiple CPERs in crowded logs.

For now, "message" is supported for nvidia, arm processor and memory
types. The other types contain generic messages.

Example output:

```
"sections":[
{
"message":"A Corrected CCPLEXSCF NVIDIA Error occurred on CPU 0",
"Nvidia":{
"signature":"CCPLEXSC",

"sections":[
{
"message":"An ARM Processor Error occurred on CPU 0; Error Type(s): {Cache Error at Virtual Addr=0x41D6AA12D528 Physical Addr=0x80003A198DDA10}",
"ArmProcessor":{
"errorInfoNum":1,

"sections":[
{
"message":"A Multi-bit ECC Memory Error occurred at address 0x0000000080000000 at node 0",
```

Change-Id: I395d0370ec60579b8f7fede825b45a3ced8ff18f
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...


cper-parse.c
examples/arm.cperhex
examples/arm.json
examples/ccixper.cperhex
examples/ccixper.json
examples/cxlcomponent-media.cperhex
examples/cxlcomponent-media.json
examples/cxlprotocol.cperhex
examples/cxlprotocol.json
examples/dmargeneric.cperhex
examples/dmargeneric.json
examples/dmariommu.cperhex
examples/dmariommu.json
examples/dmarvtd.cperhex
examples/dmarvtd.json
examples/firmware.cperhex
examples/firmware.json
examples/generic.cperhex
examples/generic.json
examples/ia32x64.cperhex
examples/ia32x64.json
examples/memory.cperhex
examples/memory.json
examples/memory2.cperhex
examples/memory2.json
examples/nvidia.cperhex
examples/nvidia.json
examples/nvidia_cmet_info.json
examples/pcibus.cperhex
examples/pcibus.json
examples/pcidev.cperhex
examples/pcidev.json
examples/pcie.json
examples/unknown.cperhex
examples/unknown.json
include/libcper/Cper.h
include/libcper/sections/cper-section-ampere.h
include/libcper/sections/cper-section-arm.h
include/libcper/sections/cper-section-ccix-per.h
include/libcper/sections/cper-section-cxl-component.h
include/libcper/sections/cper-section-cxl-protocol.h
include/libcper/sections/cper-section-dmar-generic.h
include/libcper/sections/cper-section-dmar-iommu.h
include/libcper/sections/cper-section-dmar-vtd.h
include/libcper/sections/cper-section-firmware.h
include/libcper/sections/cper-section-generic.h
include/libcper/sections/cper-section-ia32x64.h
include/libcper/sections/cper-section-ipf.h
include/libcper/sections/cper-section-memory.h
include/libcper/sections/cper-section-nvidia.h
include/libcper/sections/cper-section-pci-bus.h
include/libcper/sections/cper-section-pci-dev.h
include/libcper/sections/cper-section-pcie.h
include/libcper/sections/cper-section.h
sections/cper-section-ampere.c
sections/cper-section-arm.c
sections/cper-section-ccix-per.c
sections/cper-section-cxl-component.c
sections/cper-section-cxl-protocol.c
sections/cper-section-dmar-generic.c
sections/cper-section-dmar-iommu.c
sections/cper-section-dmar-vtd.c
sections/cper-section-firmware.c
sections/cper-section-generic.c
sections/cper-section-ia32x64.c
sections/cper-section-ipf.c
sections/cper-section-memory.c
sections/cper-section-nvidia.c
sections/cper-section-pci-bus.c
sections/cper-section-pci-dev.c
sections/cper-section-pcie.c
specification/json/cper-json-full-log.json
specification/json/cper-json-section-log.json
tests/ir-tests.c
tests/test-utils.c
c1e38a1a26-Jun-2025 Aushim Nagarkatti <anagarkatti@nvidia.com>

Fix ir-test example generation

The hex output file storing examples was being closed multiple times due
to an error.

To repro without this patch, set GEN_EXAMPLES=1 and rerun ir-tests

Error:
free(

Fix ir-test example generation

The hex output file storing examples was being closed multiple times due
to an error.

To repro without this patch, set GEN_EXAMPLES=1 and rerun ir-tests

Error:
free(): double free detected in tcache 2
Aborted (core dumped)

Change-Id: I977d693a185ee31ab6387fbdf2abbd115d106ea3
Signed-off-by: Aushim Nagarkatti <anagarkatti@nvidia.com>

show more ...

12345678910