History log of /openbmc/phosphor-bmc-code-mgmt/side-switch/side_switch.cpp (Results 1 – 10 of 10)
Revision Date Author Comments
# fc33ba86 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: I2b9626d95674508bb090745de6471fe2755c89fd
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# bddb0a46 26-Jun-2024 Pavithra Barithaya <pavithrabarithaya07@gmail.com>

clang-tidy: Enable readability-redundant-string-cstr check

This check finds unnecessary calls to std::string::c_str().

Change-Id: I4bf2b9848ad6b6fa748f8e3bdd8d670cdeee90ff
Signed-off-by: Pavithra B

clang-tidy: Enable readability-redundant-string-cstr check

This check finds unnecessary calls to std::string::c_str().

Change-Id: I4bf2b9848ad6b6fa748f8e3bdd8d670cdeee90ff
Signed-off-by: Pavithra Barithaya <pavithrabarithaya07@gmail.com>

show more ...


# d5e8e73b 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: I50e60f2b1a9db9039cb5450ae509064eaeaa9d2e
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 16ff30e7 22-Jul-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: ensure both host and chassis off

Ran into an issue where the BMC reboot occurs so early in the boot that
the chassis power never changed from Off to On, so the BMC reboot was
instant. T

side-switch: ensure both host and chassis off

Ran into an issue where the BMC reboot occurs so early in the boot that
the chassis power never changed from Off to On, so the BMC reboot was
instant. This caused an unwanted failure in a host-start service which
led to a BMC dump being generated on the subsequent BMC reboot.

Enhance the code to look for both the chassis and host to be off before
initiating the BMC reboot.

Tested:
- Verified on p10bmc hardware that the unwanted service failure no
longer occurs and side-switch waits for both host and chassis to be
off prior to rebooting the BMC

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ifb5e71aeaa4dbfff7ea21fa0bdce01642a3bec37

show more ...


# bf2bb2b1 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

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

show more ...


# a3cec434 24-Mar-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: request bmc reboot to switch to new image

The final piece is to issue a BMC reboot so the system can get over to
the image with the highest priority.

Tested:
- Set running firmware pri

side-switch: request bmc reboot to switch to new image

The final piece is to issue a BMC reboot so the system can get over to
the image with the highest priority.

Tested:
- Set running firmware priority to 1 and ran the application. Side
switch detection ran and BMC was rebooted. After the reboot, the
system automatically powered on and running image was priority 0.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Iaafea49f75ad7dd959d4c71a4de29e763f593a83

show more ...


# 788c6a65 24-Mar-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: set power restore policy to always-on

Utilize the one-time feature of the automatic power restore
functionality to ensure a one-time automatic boot of the system occurs
after the BMC re

side-switch: set power restore policy to always-on

Utilize the one-time feature of the automatic power restore
functionality to ensure a one-time automatic boot of the system occurs
after the BMC reboot.

This makes the whole process seamless to the user. They start a boot,
this function detects a bmc reboot is needed to pick up the priority 0
image, and this ensures the boot starts back up after the bmc reboot.

Tested:
- Verify policy set correctly
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/74575136
<6> Running firmware version priority is 1
<6> Running image is at priority 1, execute side switch
<6> chassis power is off
<6> RestorePolicy set to AlwaysOn

busctl get-property xyz.openbmc_project.Settings
/xyz/openbmc_project/control/host0/power_restore_policy/one_time
xyz.openbmc_project.Control.Power.RestorePolicy PowerRestorePolicy
s "xyz.openbmc_project.Control.Power.RestorePolicy.Policy.AlwaysOn"

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I126283386c577fd9ec899a1402ae36e6111f1780

show more ...


# cdac8f47 24-Mar-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: power off chassis in prep for update

When switching to a new level of firmware, ensure the host is off and
the chassis power is off before switching to the new firmware.

Tested:
- Veri

side-switch: power off chassis in prep for update

When switching to a new level of firmware, ensure the host is off and
the chassis power is off before switching to the new firmware.

Tested:
- Verify power off works
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/74575136
<6> Running firmware version priority is 1
<6> Running image is at priority 1, execute side switch
<see power off occur in journal>
<6> chassis power is off

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ifdb3e0c51fe66e55ebb1c3fca7097af49607bf35

show more ...


# 03b3082c 24-Mar-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: check priority of running image

If the running image does not have the highest priority, then return a
side switch is needed

Tested:
- Running image has priority 0:
<6> Checking for si

side-switch: check priority of running image

If the running image does not have the highest priority, then return a
side switch is needed

Tested:
- Running image has priority 0:
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/74575136
<6> Running firmware version priority is 0
<6> Side switch not needed

- Running image has priority 1:
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/74575136
<6> Running firmware version priority is 1
<6> Running image is at priority 1, execute side switch

- Running image has priority 1, alternate has priority 2
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/ef4fd5ae
<6> Running firmware version priority is 1
<6> /xyz/openbmc_project/software/ef4fd5ae is the running image, skip
<6> Side switch not needed

- Running image is priority 3, alternate has priority 2
<6> Checking for side switch reboot
<6> Running firmware version path is /xyz/openbmc_project/software/ef4fd5ae
<6> Running firmware version priority is 3
<6> /xyz/openbmc_project/software/bf984b17 has a higher priority, 2, then running priority

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Id05f7b7f624059f4e2d7181283577e0cbd10e88f

show more ...


# 70d72f8d 23-Mar-2022 Andrew Geissler <geissonator@yahoo.com>

side-switch: introduce new bmc update feature

This is the first commit in a series which will introduce a feature
within phosphor-bmc-code-mgmt that users can optionally install on their
systems to

side-switch: introduce new bmc update feature

This is the first commit in a series which will introduce a feature
within phosphor-bmc-code-mgmt that users can optionally install on their
systems to cause a side-switch boot.

A side-switch boot is a boot of a system in which the BMC detects that
the user has requested the alternate image on the flash chip be booted
from. The detection is done by looking at the available images, their
priorities, and the running image. If a higher priority image is
available on the non-running side, then it should be switched to. This
feature utilizes the one-time auto-power-on service to cause an
automatic boot of the system after the bmc side switch occurs.

At a high level, a service will be put into the obmc-host-start@.target
which runs before any other services in that target. It will launch the
executable being created in this series of commits. That application
will determine if a side switch is needed, and if so it will:
- Initiate and wait for a chassis power off of the system
- Set the one-time auto-power-on policy to AlwaysOn
- Issue a reboot to the BMC

But why did the user not just reboot the BMC themselves when they
installed the new image? There are use cases (at least on IBM systems)
where the user of the system wants to switch to the alternate image in
flash, but they want to defer that until someone reboots the BMC
manually OR the next time the user starts a boot of the system.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I58a914ec2c3f3cf15ac41a02725e9a800dffcf30

show more ...