a3c12a48 | 21-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Reset host transmission state on restart
When the Repository class starts up, if it finds any existing PELs with a host transmission state of 'sent', set it back to 'new' so that it will get se
PEL: Reset host transmission state on restart
When the Repository class starts up, if it finds any existing PELs with a host transmission state of 'sent', set it back to 'new' so that it will get sent again, as the BMC restarted or the daemon crashed before the host could ack it.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ieeca2c1a92eabc0a22051be6b87cecbe0b1d519d
show more ...
|
df43a305 | 21-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Set tran states when PELs are added to repo
When a PEL is added to the repository, ensure that the host and HMC transmission states are set to 'new'.
Signed-off-by: Matt Spinler <spinler@us.ib
PEL: Set tran states when PELs are added to repo
When a PEL is added to the repository, ensure that the host and HMC transmission states are set to 'new'.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I9edb9d388a61742c28c1df1552b9678d10b9fcc4
show more ...
|
346f99a1 | 21-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Save tran states in the repo attributes
Save the host and HMC (Hardware Management Console) transmission states in the PEL attributes map so that external callers can get to them without having
PEL: Save tran states in the repo attributes
Save the host and HMC (Hardware Management Console) transmission states in the PEL attributes map so that external callers can get to them without having to unflatten a PEL from the filesystem.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If8b396d3c342af2c7a3c34f4f1bb0a7da075e47c
show more ...
|
ab1b97fe | 07-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Repository: Add write() function
Pull the code that writes a PEL object to a file into a separate function so that it can be called in multiple places.
Signed-off-by: Matt Spinler <spinler@us.
PEL: Repository: Add write() function
Pull the code that writes a PEL object to a file into a separate function so that it can be called in multiple places.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ic5701fdfb03cca915520222bbbd8bb92a9c47c49
show more ...
|
f38ce984 | 07-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add enums for transmission states
So far, the states are new, sent, and acked.
Also added PEL object access to getting and setting these on the User Header section object.
Signed-off-by: Matt
PEL: Add enums for transmission states
So far, the states are new, sent, and acked.
Also added PEL object access to getting and setting these on the User Header section object.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I0dfb2d1a39fe69b2a47bf7d461f08e92039a3e03
show more ...
|
eb111447 | 07-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Store transmission states in UserHeader
Use a reserved word in the UserHeader section to store some PEL states:
* Host Transmission State: - States involving the progression of a PEL being s
PEL: Store transmission states in UserHeader
Use a reserved word in the UserHeader section to store some PEL states:
* Host Transmission State: - States involving the progression of a PEL being sent to the operating system.
* HMC Transmission State: - States involving the progression of a PEL being sent to the hardware management console, if there is one attached.
- Usually, an HMC refers to a specific set of hardware and software sold by IBM that connects to OpenPower systems which has specific software to deal with receiving PELs.
It is possible that there is an implementation that won't need to send PELs to either of these entities, in which case these states will just be unused and left at zero.
This is the same location that other service processor implementations have stored transmission states.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I6a2bfee15336dbd564aeaded88effa55ede0d6c4
show more ...
|
c1489351 | 09-Dec-2019 |
Aatir <aatrapps@gmail.com> |
PEL: Remove userHeader::getValue
getValue function is now being used to get field values for all the different sections. Therefore, it makes sense to remove the older implementation of this function
PEL: Remove userHeader::getValue
getValue function is now being used to get field values for all the different sections. Therefore, it makes sense to remove the older implementation of this function from userHeader class.
Change-Id: I041b8c5e0548e9f7ee354f21d2e248ed946df5ec Signed-off-by: Aatir <aatrapps@gmail.com>
show more ...
|
7b291ec6 | 19-Nov-2019 |
Aatir <aatrapps@gmail.com> |
PEL: Print list of PELs
PelTool commands for printing a list of PELs.
PEL list sample:
{ "0x50000004": { "SRC": "BD8D1001", "PLID": "0x50000004", "CreatorID": "BMC", "Subsystem": "bmc_fir
PEL: Print list of PELs
PelTool commands for printing a list of PELs.
PEL list sample:
{ "0x50000004": { "SRC": "BD8D1001", "PLID": "0x50000004", "CreatorID": "BMC", "Subsystem": "bmc_firmware", "Commit Time": "10/24/2019 15:50:08", "Sev": "unrecoverable", "CompID": "0x1000" }
}
Change-Id: Ifd864a6561c09de098689195edcf107b3fe550e3 Signed-off-by: Aatir <aatrapps@gmail.com>
show more ...
|
c92b4eb4 | 18-Nov-2019 |
Aatir <aatrapps@gmail.com> |
PEL: private header in JSON
The PELTool application is able to convert sections to JSON. This commit takes care of converting the private header section to JSON.
private header section in JSON samp
PEL: private header in JSON
The PELTool application is able to convert sections to JSON. This commit takes care of converting the private header section to JSON.
private header section in JSON sample:
"Private Header":[ {"Section Version": "1"}, {"Sub-section type": "0"}, {"Log Committed by": "0x1000"}, {"Entry Creation": "10/24/2019 15:50:08"}, {"Entry Commit": "10/24/2019 15:50:08"}, {"Creator ID": "BMC"}, {"Creator Implementation": ""}, {"Platform Log ID": "0x50000004"}, {"Log Entry ID": "0x50000004"} ]
Signed-off-by: Aatir <aatrapps@gmail.com> Change-Id: I8b0d7dc7b70cd2a03f67f7c9a48755803634005d
show more ...
|
0ff00485 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Keep PEL attributes in Repository map
Instead of the Repository class only storing the path to a PEL file for a corresponding PEL ID, change it to a structure that includes the PEL's size and a
PEL: Keep PEL attributes in Repository map
Instead of the Repository class only storing the path to a PEL file for a corresponding PEL ID, change it to a structure that includes the PEL's size and action flags as well as the path. This way, a PEL won't have to be read from the filesystem to find these values every time someone needs them.
These new fields will be needed by the code that sends PELs to the host.
Change-Id: I7650b6cbad12cc120426854767403f5cba2ee572
show more ...
|
421f6531 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add subscriptions for new and deleted PELs
Add functionality to the Repository class to be able to call functions provided by others when PELs are added or removed from the repository.
This wi
PEL: Add subscriptions for new and deleted PELs
Add functionality to the Repository class to be able to call functions provided by others when PELs are added or removed from the repository.
This will be used in the future for things like knowing when a new PEL is added so it can be sent to the host.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I2effc9d5fa9a38890311a88bcfb07eed1292a453
show more ...
|
a7d9d961 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Keep track of if host is running
Use the DataInterface class to keep track of if the host is up and running by keeping track of the OperatingSystemState property on the xyz.openbmc_project.Stat
PEL: Keep track of if host is running
Use the DataInterface class to keep track of if the host is up and running by keeping track of the OperatingSystemState property on the xyz.openbmc_project.State.OperatingSystem.Status interface on the /xyz/openbmc_project/state/host0 object path.
Added a isHostUp() function as well as a subscribeToHostStateChange() function to allow a user to pass in a function to be run when the host changes state.
Property values of 'BootComplete' or 'Standby' mean that the host is running, anything else is considered not running.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I096b2bc4014dff9be85a4bbd74ef27193fd338fb
show more ...
|
19e89ce4 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Move some functionality into DataIfaceBase
Refactor DataInterface to hold the data members in the base class, and use the derived class for calculating them.
This will make it consistent with
PEL: Move some functionality into DataIfaceBase
Refactor DataInterface to hold the data members in the base class, and use the derived class for calculating them.
This will make it consistent with functionality that will be added in the future.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: If6f2ba1890df296cb612c8a64dd60db72c70c46d
show more ...
|
6a53862e | 11-Nov-2019 |
Aatir <aatrapps@gmail.com> |
PEL: Hex dump bug fix
Hex dump function had a bug where the last line was getting printed incorrectly.
Signed-off-by: Aatir <aatrapps@gmail.com> Change-Id: I6acab7b57baf376b66b461c31f91a07377a7354a |
b466f78b | 08-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Pad UserData section to 4 byte boundary
The spec says that all section sizes must be a multiple of 4 bytes, so pad the User Data section that contains the AdditionalData JSON out to that.
Sig
PEL: Pad UserData section to 4 byte boundary
The spec says that all section sizes must be a multiple of 4 bytes, so pad the User Data section that contains the AdditionalData JSON out to that.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I30b46a34604ee10d67755f51fd7d9c41b2f75c9f
show more ...
|
1299cbb4 | 08-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Validate the message registry during CI
CI will run any files called run-ci.sh it finds in a repo, so add a script of that name to run process_registry.py against the message registry to check
PEL: Validate the message registry during CI
CI will run any files called run-ci.sh it finds in a repo, so add a script of that name to run process_registry.py against the message registry to check it for errors.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I35da7c1454696b90ec88b3545992414160ae920b
show more ...
|
ad0e0476 | 07-Oct-2019 |
Aatir Manzur <aatrapps@gmail.com> |
PEL: user header in JSON
The PELTool application is able to convert sections to JSON. This commit takes care of converting the user header section to JSON.
user header section in JSON sample:
"Use
PEL: user header in JSON
The PELTool application is able to convert sections to JSON. This commit takes care of converting the user header section to JSON.
user header section in JSON sample:
"User Header":[ {"Section Version": "1"}, {"Sub-section type": "0"}, {"Log Committed by": "0x2000"}, {"Subsystem": "bmc_firmware"}, {"Event Scope": "entire_platform"}, {"Event Severity":"unrecoverable"}, {"Event Type": "na"} ]
Signed-off-by: Aatir Manzur <aatrapps@gmail.com> Change-Id: I0dca1d87019b9e62d711ee6d034f2e8bc0574c2e
show more ...
|
3fd08d68 | 22-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Add the 'Common' errors to the registry
Add the xyz.openbmc_project.Common.Error.* errors from xyz/openbmc_project/Common.errors.yaml file in the phosphor-dbus-interfaces repository.
It is pos
PEL: Add the 'Common' errors to the registry
Add the xyz.openbmc_project.Common.Error.* errors from xyz/openbmc_project/Common.errors.yaml file in the phosphor-dbus-interfaces repository.
It is possible that errors defined in these YAML files never have event logs created out of them, but instead are intended to just be returned on failed D-Bus operations, such as a method failure. Aside from searching the whole OpenBMC code base there is no way to know, so just define PELs for all of them to be safe.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I00ce1e9423c2b260f78d2d3d0aa8a495c3b13504
show more ...
|
7b5342c5 | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Use libpel.la for log daemon and peltool
As phosphor-log-manager and peltool share source files, create libpel.la to contain those common files that will then be included by both of them.
Sign
PEL: Use libpel.la for log daemon and peltool
As phosphor-log-manager and peltool share source files, create libpel.la to contain those common files that will then be included by both of them.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ie3882d1b0929bace10ae638a8762e2b804e594c7
show more ...
|
3fb208e3 | 30-Oct-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Registry: Make "Action Flags" optional
The Action Flags bits in the PEL need to be in agreement with other PEL fields, such as if the severity is informational then the 'report' flag cannot be
PEL: Registry: Make "Action Flags" optional
The Action Flags bits in the PEL need to be in agreement with other PEL fields, such as if the severity is informational then the 'report' flag cannot be on. In fact, for most logs all of these flags can be deduced from the other PEL fields.
So, to avoid the case of the action flags in the registry not matching the other PEL fields, make them optional and the BMC code will set them appropriately. And when they are specified, the BMC code will still run through the same code to ensure everything is in agreement.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I5bea83d01846d7a2d3307666e6d0758a99229e3f
show more ...
|
1ea78801 | 01-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Run a user defined function on every PEL
Add a for_each() function to the PEL repository that takes a user defined function that will be run on every PEL, unless that function says to stop earl
PEL: Run a user defined function on every PEL
Add a for_each() function to the PEL repository that takes a user defined function that will be run on every PEL, unless that function says to stop early.
The user defined function is a std::function<bool>(const PEL&);
For example, to save up to 100 IDs in the repo into a vector: std::vector<uint32_t> ids; ForEachFunc f = [&ids](const PEL& pel) { ids.push_back(pel.id()); return ids.size() == 100 ? true : false; };
repo.for_each(f);
This will be used to find which PELs still need to be sent up to the host after a reboot, among other things.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ic60525a8ab3dd593ba37e43a6cb0b3db8dda7cee
show more ...
|
0688545b | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Make PEL::flatten() const
This includes making the flatten() method const in the PEL section base class and in all of its derived classes.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Chan
PEL: Make PEL::flatten() const
This includes making the flatten() method const in the PEL section base class and in all of its derived classes.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I6be787962c6d7dfa01bdced2f9024564e6ac1b08
show more ...
|
d7b004bf | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Const flatten for BCDTime
It doesn't modify the object, so can be const.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: Ib3bbe2b8467578b0cddce0284aa6ae95f1ad826a |
724d0d8c | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: Const flattens for the SRC sub classes
Make the flatten functions const for the various classes that represent the SRC substructures.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id
PEL: Const flattens for the SRC sub classes
Make the flatten functions const for the various classes that represent the SRC substructures.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I08f4ae6de65e269c9f1b82315115969c8552c782
show more ...
|
654708fd | 06-Nov-2019 |
Matt Spinler <spinler@us.ibm.com> |
PEL: MTMS: Support const flattening
Future commits will eventually make every flatten function const, as they should be since flattening an object should not affect it.
Signed-off-by: Matt Spinler
PEL: MTMS: Support const flattening
Future commits will eventually make every flatten function const, as they should be since flattening an object should not affect it.
Signed-off-by: Matt Spinler <spinler@us.ibm.com> Change-Id: I285963805800b29163c5a3979a33590f64c03d00
show more ...
|