History log of /openbmc/google-ipmi-sys/handler.hpp (Results 1 – 25 of 26)
Revision Date Author Comments
# 559cb011 03-May-2024 Brandon Kim <brandonkim@google.com>

bm_instance: Create a new handler

This OEM handler will get properties from tmpfs to serve over IPMI.

Tested:
~# cat /run/bm-instance/asset-tag
12345
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x17 0

bm_instance: Create a new handler

This OEM handler will get properties from tmpfs to serve over IPMI.

Tested:
~# cat /run/bm-instance/asset-tag
12345
~# ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x17 0x00
79 2b 00 17 05 31 32 33 34 35
...
...
(Verified this works for all 7 sub commands)

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

show more ...


# d455bfd6 30-Jan-2024 Gaurav Gandhi <gauravgandhi@google.com>

Add new oem command to set accel power mode

Signed-off-by: Gaurav Gandhi <gauravgandhi@google.com>
Change-Id: Ie0b47477b7ae9e8ae206ac0645571a7a79dbda40


# a92d0e6b 29-Jun-2023 John Wedig <johnwedig@google.com>

Add IPMI OEM command LinuxBootDone

Add a new OEM command for LinuxBoot to notify the BMC when it is about
to kexec into the OS. This is intended to give the BMC a chance to
prepare for an untrusted

Add IPMI OEM command LinuxBootDone

Add a new OEM command for LinuxBoot to notify the BMC when it is about
to kexec into the OS. This is intended to give the BMC a chance to
prepare for an untrusted OS, e.g. disable any interfaces it doesn't want
the OS to have access to.

Tested:
Exercised the new OEM command using ipmitool
$ ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x11
79 2b 00 11

Change-Id: Ica76d77cdde48cebfbced32d8e7e860b559074e8
Signed-off-by: John Wedig <johnwedig@google.com>

show more ...


# 444b5ea4 19-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: I0a1783b101aa4e7d4b80fd5e1fc1b2beb86c5caa

show more ...


# 5e70dc8c 15-Sep-2022 Nikhil Namjoshi <nikhilnamjoshi@google.com>

Add ipmi OEM handler to get the BMC mode

The response can indicate one of the BMC mode
below
0 -> Non Bare Metal Mode
1 -> Bare Metal Mode
2 -> Bare Metal Cleaning Mode

The Bare Metal Cleaning Mode

Add ipmi OEM handler to get the BMC mode

The response can indicate one of the BMC mode
below
0 -> Non Bare Metal Mode
1 -> Bare Metal Mode
2 -> Bare Metal Cleaning Mode

The Bare Metal Cleaning Mode is not
yet supported

Tested:

Response in BM Mode

ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x10
79 2b 00 14 01

Response in Non-BM Mode

ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x10
79 2b 00 14 00

Signed-off-by: Nikhil Namjoshi <nikhilnamjoshi@google.com>
Change-Id: I34474fd04f9aed35bd71725805ed52a5df8ab8c9

show more ...


# 7e71a43d 07-Jul-2022 Willy Tu <wltu@google.com>

fix typo: Prase -> Parse

Change-Id: I504db56f3e584a51350d63f94ca5487b73e05a98
Signed-off-by: Willy Tu <wltu@google.com>


# 6c71b0f9 10-Oct-2021 Willy Tu <wltu@google.com>

pcie_bifurcation: Fetch bifurcation at a PCIe slot with hardcoded values

This will read a json config and return the bifurcation based on that.
It will read the configure file in a persistent file t

pcie_bifurcation: Fetch bifurcation at a PCIe slot with hardcoded values

This will read a json config and return the bifurcation based on that.
It will read the configure file in a persistent file to see if it is
valid machine config and return the bifurcation information
accordingly.

For example,
If it is valid config, it will return 8x8 for PE1,3,4,6.

Tested:
Unit tests passed.

Physical Tests.

PE0 -> no bifurcation
PE1 -> x8x8

```
$ ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x0f 0
79 2b 00 0b 00

$ ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x0f 1
79 2b 00 0b 02 08 08
```

Change-Id: I44aefbfb26372f8bc0069343c8a6d07d3cf6f42d
Signed-off-by: Willy Tu <wltu@google.com>

show more ...


# 4f0d1de6 20-Sep-2021 Steve Foreman <foremans@google.com>

Add IPMI interface for CustomAccel service

Change-Id: I28a8976e382b457233ac521e9ab71f75abe029d1
Signed-off-by: Steve Foreman <foremans@google.com>


# ff3cd8e9 15-Sep-2021 Willy Tu <wltu@google.com>

google-ipmi-sys: Refactor to use new version of OEM IPMI Handler

Using the new version of ipmi handler provide a higher level wrapper
over the same functionalities. It helps us parse the input and o

google-ipmi-sys: Refactor to use new version of OEM IPMI Handler

Using the new version of ipmi handler provide a higher level wrapper
over the same functionalities. It helps us parse the input and output to
have more control of the input/output we see.

The input and output will be
`std::uint8_t, std::optional<std::vector<uint8_t>>`.

This represents `subcommand` and any input data.

Changes to note,
- all subcommand in the request/response struct are removed. It will be
managed by the wrapper directly.
- Unit tests checking for input with only the subcommand are
removed.
- Move all reply struct to header files to be accessible in unit test.

Tested:
All IPMI OEM command still works the same as before this change.

Change-Id: I4230ab84a497a867248fe82224e32cc69b314b64
Signed-off-by: Willy Tu <wltu@google.com>

show more ...


# a2056e9c 10-Oct-2021 Willy Tu <wltu@google.com>

Add Google Copyright 2021

Change-Id: I26020265613218d0c8df85b83772856bfc555e86
Signed-off-by: Willy Tu <wltu@google.com>


# b69209b4 13-Jul-2021 William A. Kennington III <wak@google.com>

eth: Support looking up alternate interace channels

This makes it possible to use the GetEthDevice command to look up
interfaces other than the default NCSI interface.

Change-Id: I3a5563743a28b39ad

eth: Support looking up alternate interace channels

This makes it possible to use the GetEthDevice command to look up
interfaces other than the default NCSI interface.

Change-Id: I3a5563743a28b39adc753d8957f68f0bc330cf3a
Signed-off-by: William A. Kennington III <wak@google.com>

show more ...


# 8cfa4c44 16-Jun-2021 linyuny <linyuny@google.com>

Add new google ipmi sys command: SysHostPowerOff

New google ipmi sys command to let the BMC knows host shutdown,
allow host to gracefully shutdown and disable the watchdog with given
time delay.

Si

Add new google ipmi sys command: SysHostPowerOff

New google ipmi sys command to let the BMC knows host shutdown,
allow host to gracefully shutdown and disable the watchdog with given
time delay.

Signed-off-by: Yunyun Lin <linyuny@google.com>
Change-Id: I02171c9cfed57ae5d10d66b515e4ab7ee8856466

show more ...


# 3b1b427c 02-Mar-2021 Willy Tu <wltu@google.com>

Add OEM command to request flash size

The BMC flash is `/dev/mtd0` and the size can found in
`/sys/class/mtd/mtd0/size`. This OEM command will request that
information with MTDINFO.

Tested:
Success

Add OEM command to request flash size

The BMC flash is `/dev/mtd0` and the size can found in
`/sys/class/mtd/mtd0/size`. This OEM command will request that
information with MTDINFO.

Tested:
Successfully requested the flash size information with ipmitool.

```
cat /sys/class/mtd/mtd0/size
67108864
```
67108864 / 1024 / 1024 = 64MB flash

```
ipmitool raw 0x2e 0x32 0x79 0x2b 0x00 0x09
79 2b 00 09 00 00 00 04
```
Output in little endian.
0x04000000 -> 67108864

Change-Id: Iec1b33503d1166a42ceef4b8491e5c19c3a077fe
Signed-off-by: Willy Tu <wltu@google.com>

show more ...


# ac4a16f7 02-Feb-2021 Shounak Mitra <shounak@google.com>

Add sys command for powercycle on host shutdown.

The new command will trigger a power cycle the next time the host shuts
down. This can exist in parallel with the existing mechanism to trigger
a pow

Add sys command for powercycle on host shutdown.

The new command will trigger a power cycle the next time the host shuts
down. This can exist in parallel with the existing mechanism to trigger
a power cycle after a specified time interval.

The implementation of host state detection and power cycling is platfrom
specific; the new command will just add a temporary file that marks the
system ready to powercycle on the next shutdown. Usually, a systemd unit
would be enabled by the presence of this file to handle the power
cycling process.

Signed-off-by: Shounak Mitra <shounak@google.com>
Change-Id: I0cc40307748fb996be3f6062d8cba1a4b5049683

show more ...


# 29f35bce 04-Nov-2020 William A. Kennington III <wak@google.com>

Add suppport for retrieving machine name

This adds support for reading /etc/os-release, parsing out
OPENBMC_TARGET_MACHINE and returning this to the caller.

Change-Id: If2a419b9a77597686f5137efce97

Add suppport for retrieving machine name

This adds support for reading /etc/os-release, parsing out
OPENBMC_TARGET_MACHINE and returning this to the caller.

Change-Id: If2a419b9a77597686f5137efce97b1150142f181
Signed-off-by: William A. Kennington III <wak@google.com>

show more ...


# a3f9c2d3 29-May-2020 Patrick Venture <venture@google.com>

move handler specific method to implementation

Move readNameFromConfig from interface header to implementation header.

Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I97080a691fdcda

move handler specific method to implementation

Move readNameFromConfig from interface header to implementation header.

Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: I97080a691fdcdac25ab29d978054f6e47b18f1c3

show more ...


# c87de558 20-May-2020 Patrick Venture <venture@google.com>

split out handler implementation from interface

Split out the handler object definition from the interface and drop the
default parameters.

Signed-off-by: Patrick Venture <venture@google.com>
Chang

split out handler implementation from interface

Split out the handler object definition from the interface and drop the
default parameters.

Signed-off-by: Patrick Venture <venture@google.com>
Change-Id: Ie8c9dbf7881bbe6b5af3596a60430e3b3d573762

show more ...


# bd4041e4 18-May-2020 William A. Kennington III <wak@google.com>

handler: Add more entity IDs

Change-Id: I77b8a78deda33d9f15b6c69a1f6950f1dacc5170
Signed-off-by: William A. Kennington III <wak@google.com>


# cc53c847 30-Sep-2019 Peter Lundgren <peterlundgren@google.com>

Add more entity ids

The entity ids are defined in the IPMI spec Section 43.14 Table 43-,
Entity ID Codes.

Tested:
GetEntityName [1] works with these new ids when combined with a json
file that uses

Add more entity ids

The entity ids are defined in the IPMI spec Section 43.14 Table 43-,
Entity ID Codes.

Tested:
GetEntityName [1] works with these new ids when combined with a json
file that uses them. For example:

{
"system_board": [
{"instance": 1, "name": "foo"}
],
"power_system_board": [
{"instance": 1, "name": "bar"}
],
"system_internal_expansion_board": [
{"instance": 1, "name": "baz"}
],
"fan": [
{"instance": 1, "name": "qux"}
]
}

[1]: https://github.com/openbmc/google-ipmi-sys#getentityname---subcommand-0x06

Signed-off-by: Peter Lundgren <peterlundgren@google.com>
Change-Id: I8f546aa23d9da8a3ddf282b0c2de89f9c17edf8c

show more ...


# 49f23ad9 16-Mar-2019 Patrick Venture <venture@google.com>

add handler logic to handle i2c pcie commands

Add handler logic to manage the i2c pcie commands and their
corresponding data structure.

Tested: Only ran unit-tests (added new ones).
Change-Id: Ibd6

add handler logic to handle i2c pcie commands

Add handler logic to manage the i2c pcie commands and their
corresponding data structure.

Tested: Only ran unit-tests (added new ones).
Change-Id: Ibd65d6745202dbf6bd67cd2cb480914ca6ae4ed1
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


# ab650004 16-Mar-2019 Patrick Venture <venture@google.com>

entityName: move pieces into handler object

Move different items used by the handler into the handler and enable
unit-testing by parameterizing different aspects of the code.

Tested: Only ran unit-

entityName: move pieces into handler object

Move different items used by the handler into the handler and enable
unit-testing by parameterizing different aspects of the code.

Tested: Only ran unit-tests (added new ones).
Change-Id: Ia3b4b5792c0ac1ae5bc6513eadfc9ee35f7a369f
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


# 07f85150 15-Mar-2019 Patrick Venture <venture@google.com>

add handler logic to handle SysEntityName

Add handler logic to handler for SysEntityName such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new

add handler logic to handle SysEntityName

Add handler logic to handler for SysEntityName such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new ones).
Change-Id: I6d672a80f85843ff98c2c7e5daf4689932ff96f9
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


# aa374120 15-Mar-2019 Patrick Venture <venture@google.com>

add handler logic to handle SysPsuHardReset

Add handler logic to handler for SysPsuHardReset such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added

add handler logic to handle SysPsuHardReset

Add handler logic to handler for SysPsuHardReset such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new ones).
Change-Id: Id5dae85cbc54db7dee3cb5e62ed80c77ff3d5719
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


# bb90d4fd 15-Mar-2019 Patrick Venture <venture@google.com>

add handler logic to handle SysCpldVersion

Add handler logic to handler for SysCpldVersion such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added n

add handler logic to handle SysCpldVersion

Add handler logic to handler for SysCpldVersion such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new ones).
Change-Id: I09d95d8be8fbe75648b3332af898336b00074c2f
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


# d2037c6a 15-Mar-2019 Patrick Venture <venture@google.com>

add handler logic to handle SysCableCheck

Add handler logic to handler for SysCableCheck such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new

add handler logic to handle SysCableCheck

Add handler logic to handler for SysCableCheck such that it splits the
true IPMI processing from the business logic.

Tested: Only ran unit-tests (added new ones).
Change-Id: Ieec35cc8839dcd3cfb864b68ffbd1a45d1326fee
Signed-off-by: Patrick Venture <venture@google.com>

show more ...


12