History log of /openbmc/bios-bmc-smm-error-logger/src/buffer.cpp (Results 1 – 20 of 20)
Revision Date Author Comments
# 1a64356f 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

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

show more ...


# 5de90619 13-Feb-2024 Patrick Williams <patrick@stwcx.xyz>

prefer std::format over fmt

Use std::format or stdplus::print and eliminate the fmt dependency.

Change-Id: Ide14b682949914f09f749141196cdb210fe1239e
Signed-off-by: Patrick Williams <patrick@stwcx.x

prefer std::format over fmt

Use std::format or stdplus::print and eliminate the fmt dependency.

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

show more ...


# 589c175b 20-Oct-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-17 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# 82ab8320 16-Aug-2023 Brandon Kim <brandonkim@google.com>

buffer: Update to follow the design doc

queueSize and ueRegionSize should not change at runtime. Make it so that
it throws if these constants fail any time we try to use them as it
means that the bu

buffer: Update to follow the design doc

queueSize and ueRegionSize should not change at runtime. Make it so that
it throws if these constants fail any time we try to use them as it
means that the buffer was overwritten (possibly by a bad actor).

Update the default queueSize and ueRegionSize to match our test
variables.

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I2c906d26016ce6eb19e953ae432abd5482b6ccf8

show more ...


# b8125763 10-May-2023 Patrick Williams <patrick@stwcx.xyz>

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest

clang-format: copy latest and re-format

clang-format-16 has some backwards incompatible changes that require
additional settings for best compatibility and re-running the formatter.
Copy the latest .clang-format from the docs repository and reformat the
repository.

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

show more ...


# 3def3c8e 13-Sep-2022 Brandon Kim <brandonkim@google.com>

buffer: Update the definition of QueueSize

There were confusion whether the QueueSize field represented just the
queue for the normal log or if it represented the whole circular buffer.
Settled on i

buffer: Update the definition of QueueSize

There were confusion whether the QueueSize field represented just the
queue for the normal log or if it represented the whole circular buffer.
Settled on it being the whole circular buffer.

Tested: Unit tested and verified this works on a downstream machine

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I867e997b72500c7bcd03047d8eb3e4db146a8add

show more ...


# 613ba537 12-Sep-2022 Brandon Kim <brandonkim@google.com>

buffer: Fix a corner case with header wraparound

Update the unit test so that we cover this corner case + update the API
so that we no longer pass in the offset manually.

Tested: Unit test coverage

buffer: Fix a corner case with header wraparound

Update the unit test so that we cover this corner case + update the API
so that we no longer pass in the offset manually.

Tested: Unit test coverage + integration test with our downstream
platform that found this issue

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I6b0a7974f902e0248bfb4932237176df20fdaf61

show more ...


# 271d2313 02-Sep-2022 Brandon Kim <brandonkim@google.com>

buffer: Update queueSize and Read/Write Ptrs to 3B

This allows for bigger Queue size than 64KB.

Tested: Verified this with a new BIOS

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id:

buffer: Update queueSize and Read/Write Ptrs to 3B

This allows for bigger Queue size than 64KB.

Tested: Verified this with a new BIOS

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I558a24c3b2500754424bdad6459244279592238b

show more ...


# c49284b6 17-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "updateBmcFlags"

This function will be used to update the "bmcFlags" member of the buffer
header.

Also reinforced the updateReadPtr unit tests to check that the header
buffer was

buffer: Implement "updateBmcFlags"

This function will be used to update the "bmcFlags" member of the buffer
header.

Also reinforced the updateReadPtr unit tests to check that the header
buffer was actually updated by checking the result after.

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Iff7a1eea6824b84347e1a6aaed872ed6caa55788

show more ...


# 4662b1bd 16-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "readErrorLogs"

This is the API that will be called by the main to read all of the error
logs. Found a cornercase in wraparoundRead, so added a unit test to
guard it as well.

Test

buffer: Implement "readErrorLogs"

This is the API that will be called by the main to read all of the error
logs. Found a cornercase in wraparoundRead, so added a unit test to
guard it as well.

Tested:
Unit tested and tested on a real HW (with the following changes)

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I94cd3a2f53ee7da2c145b751c1c3b5989f4c5b23

show more ...


# f0e4adc9 17-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: bugfix (v3) fix the checksum

The BIOS is expected to use the XOR checksum which behaves ever so
slightly different compared to summing up the bytes (even though
bitwise XOR is the same as ad

buffer: bugfix (v3) fix the checksum

The BIOS is expected to use the XOR checksum which behaves ever so
slightly different compared to summing up the bytes (even though
bitwise XOR is the same as addition).

Fixed the unit test accordingly

Tested: Unit test + tested on a BIOS with real / valid checksummed
payload

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I326f814eb66892971ec32f0572618a34825d88b0

show more ...


# 35d4335e 16-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: bugfix (v2) consolidate the offset and readptr

- It didn't make sense to make the user keep count of the different
types of read pointers, instead do the relative calculation at the
lowe

buffer: bugfix (v2) consolidate the offset and readptr

- It didn't make sense to make the user keep count of the different
types of read pointers, instead do the relative calculation at the
lowest level (wraparoundRead)
- Added further tests to prove out that readPtr is being updated
properly in wraparoundRead)
- Fixed wraparoundRead, as it was relying on the dataInterface->read to
read until the "end". The "end" was fixed in the bugfix #1 to be the
end of the queue instead of the mmaped buffer.
- took out addtionalBoundaryCheck from wraparoundRead, as it was no
longer needed

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I101360223597d197362dc1dbe4a27601da09933f

show more ...


# 26660e9b 15-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: bugfixes and cleanups

- Added clarifying comments regarding the different offsets
- Fixed an instance in wraparoundRead where we updated the readPtr
with the relative offset
- Added additi

buffer: bugfixes and cleanups

- Added clarifying comments regarding the different offsets
- Fixed an instance in wraparoundRead where we updated the readPtr
with the relative offset
- Added additional checks in initialization to check for buffer size
- Use the queueSize for buffer initialization opposed to the memory
region size for the whole MMIO

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Ib175ed1c9c129c0f9d2b4f9737e2d394f160434d

show more ...


# 40ce08e1 15-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "readEntry"

readEntry reads the entryHeader to figure out how much of the buffer to
read for the entry.

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Cha

buffer: Implement "readEntry"

readEntry reads the entryHeader to figure out how much of the buffer to
read for the entry.

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I390e77c088439c74d100ef4b4cb35e746facd495

show more ...


# 7bac2d69 07-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "readEntryHeader"

Add struct QueueEntryHeader along with it.

Tested: Unit Tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Icbfe8d39db4242664794d8c65a84488aef

buffer: Implement "readEntryHeader"

Add struct QueueEntryHeader along with it.

Tested: Unit Tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Icbfe8d39db4242664794d8c65a84488aeffd23a6

show more ...


# 9836cfa6 15-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "wraparoundRead"

This is a helper function for reading the circular buffer

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I0f7c0e3c0195c82fe932

buffer: Implement "wraparoundRead"

This is a helper function for reading the circular buffer

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I0f7c0e3c0195c82fe932b36babbce0ab8c8405ed

show more ...


# cf0b9752 15-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "updateReadPtr"

This is a helper function for reading the circular buffer

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I1c34a40bd279ee601de33

buffer: Implement "updateReadPtr"

This is a helper function for reading the circular buffer

Tested: Unit tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I1c34a40bd279ee601de33669aabfec27a959ec44

show more ...


# 60cab57f 15-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Update cachedBufferHeader during "initialize"

We know what the bufferheader is after we call "initialize" (as we
clear the buffer before updating the known header). Update
cachedBufferHeader

buffer: Update cachedBufferHeader during "initialize"

We know what the bufferheader is after we call "initialize" (as we
clear the buffer before updating the known header). Update
cachedBufferHeader after successful initialization.

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Ia4c6f5258b5ccd0294bba267717b8e77c0bf5449

show more ...


# 17ee1a93 07-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "readBufferHeader" and enforce endianness

Add buffer header reader and a getter API for the cachedBufferHeader for
testing.

Also update CircularBufferHeader with boost endian libr

buffer: Implement "readBufferHeader" and enforce endianness

Add buffer header reader and a getter API for the cachedBufferHeader for
testing.

Also update CircularBufferHeader with boost endian library.

Tested: Unit Tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: I3afaa96f1fab2dd160058e8127dcba494efe3ce7

show more ...


# fcbc3db1 06-Jun-2022 Brandon Kim <brandonkim@google.com>

buffer: Implement "initialize" and add unit tests

Add buffer headers and the initialization process

Tested: Unit Tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Iaf3c26ce01f71

buffer: Implement "initialize" and add unit tests

Add buffer headers and the initialization process

Tested: Unit Tested

Signed-off-by: Brandon Kim <brandonkim@google.com>
Change-Id: Iaf3c26ce01f7109000266cdbc7efa77988eae73b

show more ...