Home
last modified time | relevance | path

Searched +full:pldm +full:- +full:stack (Results 1 – 25 of 33) sorted by relevance

12

/openbmc/docs/designs/mctp/
H A Dmctp.md1 # OpenBMC platform communication channel: MCTP & PLDM
8 BMC. This is primarily IPMI-based, but also includes a few hardware-specific
9 side-channels, like hiomap. On OpenPOWER hardware at least, we've definitely
21 Separating the "transport" and "messaging protocol" parts of the current stack
27 attempted, but not in a cross-implementation manner so far. This does not
40 ![](mctp-standards.svg)
43 physical layer bindings; this means that an MCTP "stack" may be using either a
45 stack needing to be aware of the hardware implementation. These higher levels
48 that communicates over MCTP - for example, the host device, the BMC, or any
49 other system peripheral - static or hot-pluggable.
[all …]
H A Dmctp-userspace.md1 # OpenBMC platform communication channel: MCTP & PLDM in userspace
20 provides a socket-based interface for other processes to send and receive
24 handling local MCTP-stack configuration, like local EID assignments.
28 1. the core MCTP stack
30 2. one or more binding implementations (eg, MCTP-over-serial), which interact
33 3. an interface to handler applications over a unix-domain socket.
38 - an "upper" messaging transmit/receive interface, for tx/rx of a full message
41 - a "lower" hardware binding for transmit/receive of individual packets,
45 The lower interface would be plugged in to one of a number of hardware-specific
47 tree, but others can be plugged-in too, perhaps where the physical layer
[all …]
/openbmc/pldm/
H A Dmeson.options1 # PLDM daemon options
26 'transport-implementation',
28 choices: ['mctp-demux', 'af-mctp'],
29 description: 'transport via af-mctp or mctp-demux',
32 # As per PLDM spec DSP0240 version 1.1.0, in Timing Specification for PLDM messages (Table 6),
35 # value to 5 seconds we ensure that PLDM does not wait for a response from a dbus call even after
37 # PLDM daemon will timeout after 5 seconds.
39 'dbus-timeout-value',
44 description: '''The amount of time pldm waits to get a response for a dbus
49 'heartbeat-timeout-seconds',
[all …]
/openbmc/libbej/include/libbej/
H A Dbej_decoder_core.h26 * @brief These stack entries are needed to implement the decoding
27 * non-recursively.
137 * @brief Stack for holding BejStackProperty types. Decoder core is not
138 * responsible for creating or deleting stack memory. User of the decoder
139 * core is responsible for creating and deleting stack memory.
146 * @brief Return true if the stack is empty.
151 * @brief View the object at the top of the stack. If the stack is
157 * @brief Removes the top most object from the stack. Client of the
164 * @brief Push an object into the stack. Returns 0 if the operation is
188 * @brief Decodes a PLDM block. Maximum encoded stream size the decoder
[all …]
H A Dbej_decoder_json.hpp20 * @brief Decode the encoded PLDM block.
22 * @param[in] dictionaries - dictionaries needed for decoding.
23 * @param[in] encodedPldmBlock - encoded PLDM block.
40 std::vector<BejStackProperty> stack; member in libbej::BejDecoderJson
H A Dbej_common.h152 // Value end-offset with respect to the begining of the encoded stream.
159 * @brief bejEncoding PLDM data type header.
179 * @brief Callbacks to a stack that can store pointers.
184 * @brief A context for the stack.
189 * @brief Return true if the stack is empty.
194 * @brief View the pointer at the top of the stack. If the stack is
200 * @brief Returns and removes the top most pointer from the stack. The
208 * @brief Push a pointer into the stack. Returns 0 if the operation is
215 * @brief Delete the stack.
223 * @param[in] bytes - valid pointer to a byte stream in little-endian
[all …]
/openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/PLDM/
H A DRequester.interface.yaml2 Implement to provide features needed to build a PLDM Request message. This
3 API would be used by PLDM requester apps on the BMC.
6 xyz.openbmc_project.PLDM.Requester on /xyz/openbmc_project/pldm.
8 PLDM stands for Platform Level Data Model. More information about PLDM (and
12 - name: GetInstanceId
14 Obtain a new PLDM instance id, for the input MCTP EID, to be used in a
15 PLDM request message. Instance ids help distinguish PLDM response
16 messages when a PLDM requester sends out multiple request messages,
17 without waiting for a response message. Refer the PLDM specification
19 https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md#Requester.
[all …]
/openbmc/openbmc/meta-ibm/recipes-phosphor/pldm/
H A Dpldm_%.bbappend1 # Force the mctp-demux to be used until machine is ready to use in-kernel MCTP
2 PACKAGECONFIG:append = " transport-mctp-demux oem-ibm system-specific-bios-json"
5 PACKAGECONFIG:remove:huygens = " oem-ibm"
8 -Dsoftoff-timeout-seconds=2700 \
11 #5 second timeout defined inside PLDM has seen issues during reset reload
12 #so increasing that to 10 seconds here.IBMs custom firmware stack can tolerate
13 #PLDM timeouts of up to 20 seconds, so using timeout value of 10 seconds is safe.
15 -Ddbus-timeout-value=10 \
18 SYSTEMD_SERVICE:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'oem-ibm', \
19 'pldm-create-phyp-nvram.service \
[all …]
/openbmc/libpldm/include/libpldm/
H A Dbase.h1 /* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
19 /** @brief PLDM Types
32 /** @brief PLDM Commands
47 /** @brief PLDM base codes
81 /** @brief PLDM transport protocol type
90 * The different message types supported by the PLDM specification.
93 PLDM_RESPONSE, //!< PLDM response
94 PLDM_REQUEST, //!< PLDM request
96 PLDM_ASYNC_REQUEST_NOTIFY, //!< Unacknowledged PLDM request messages
126 /** @brief Minimum length of response for a optional PLDM command
[all …]
/openbmc/docs/designs/
H A Dpldm-stack.md1 # PLDM stack on OpenBMC
5 Created: 2019-01-22
9 On OpenBMC, in-band IPMI is currently the primary industry-standard means of
16 This design aims to employ Platform Level Data Model (PLDM), a standard
17 application layer communication protocol defined by the DMTF. PLDM draws inputs
18 from IPMI, but it overcomes most of the latter's limitations. PLDM is also
21 channels, by defining hardware bindings. The solution of PLDM over MCTP also
24 PLDM's purpose is to enable all sorts of "inside the box communication": BMC -
25 Host, BMC - BMC, BMC - Network Controller and BMC - Other (for e.g. sensor)
30 PLDM is designed to be an effective interface and data model that provides
[all …]
H A Dboot-progress.md12 phosphor D-Bus properties, IPMI sensors, PLDM sensors, and Redfish properties to
18 [phosphor-state-manager][1] implements D-Bus properties which track the state of
28 phosphor-state-manager implements some other D-Bus properties that represent the
31 - [xyz.openbmc_project.State.Boot.Progress][3]
32 - [xyz.openbmc_project.State.OperatingSystem.Status][4]
34 These two D-Bus properties are very IPMI-centric. They were defined based on two
37 PLDM also has a boot progress sensor. Search for "Boot Progress" in this
38 [doc][5]. A subset of this maps fairly well to the IPMI sensors above. This PLDM
44 following mapping for phosphor-state-manager to the Redfish System
47 - `xyz.openbmc_project.State.Host.HostState.Running` : `Enabled`
[all …]
H A Dbmc-reset-with-host-up.md18 A good portion of this is explained in the phosphor-state-manager [README][1].
21 dealing with both IPMI and PLDM communication to the host as well as desired
28 - /run/openbmc/chassis@0-on
29 - /run/openbmc/host@0-on
31 It should be noted that although full support is not in place for multi-chassis
32 and multi-host systems, the framework is there to build on.
33 `op-reset-chassis-running@.service` is a templated service, checking pgood in
35 /run/openbmc/chassis@%i-on, to indicate power is on for that instance. Similar
36 implementation is done for the host via `phosphor-reset-host-check@.service` and
37 the file /run/openbmc/host@%i-on.
[all …]
H A Dpower-systems-memory-preserving-reboot.md15 don't have access to a non-volatile storage to store this content after a
18 explains the high-level flow of warm reboot and extraction of the resulting dump
23 - **Boot**: The process of initializing hardware components in a computer system
26 - **Hostboot**: The firmware runs on the host processors and performs all
28 [read more](https://github.com/open-power/docs/blob/master/hostboot/HostBoot_PG.md)
30 - **Self Boot Engine (SBE)**: A microcontroller built into the host processors
35 - **Master Processor**: The processor which gets initialized first to execute
38 - **POWER Hardware Abstraction Layer (PHAL)**: A software component on the BMC
41 - **Hypervisor**: A hypervisor (or virtual machine monitor, VMM) is a computer
45 - **System Dump**: A dump of main memory and hardware states for debugging the
[all …]
H A Ddump-manager.md20 - **System Dump**: A dump of the Host's main memory and processor registers.
22 - **Memory Preserving Reboot(MPR)**: A method of reboot with preserving the
24 - **PLDM**: An interface and data model to access low-level platform inventory,
26 [ReadMore](https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md)
27 - **Machine Check Exception**: A severe error inside a processor core that
29 - **BMCWeb**: An embedded webserver for OpenBMC.
84 …es - Users are examples, not a mandatory part of implementation](https://user-images.githubusercon…
88 - Create a dump: Initiate the creation of the dump, based on an error condition
90 - List the dumps: List all dumps present in the BMC.
91 - Get a dump: Offload the dump to an external entity.
[all …]
H A Dcode-update.md10 [phosphor-bmc-code-mgmt](https://github.com/openbmc/phosphor-bmc-code-mgmt)
12 1. Current code update flow is complex as it involves 3 different daemons -
23 - [phosphor-bmc-code-mgmt](https://github.com/openbmc/phosphor-bmc-code-mgmt)
24 - [Software DBus Interface](https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/yaml/xy…
25 - [Code Update Design](https://github.com/openbmc/docs/tree/master/architecture/code-update)
31 - Update settings shall be able to specify when to apply the image, for example
32 immediately or on device reset or on-demand.
66 CU ->> CU: Create Interface<br> xyz.openbmc_project.Software.Update<br> at /xyz/openbmc_project/Sof…
67 CU ->> CU: Create Interface<br> xyz.openbmc_project.Software.Version<br> at /xyz/openbmc_project/So…
68 CU ->> CU: Create Interface<br>xyz.openbmc_project.Software.Activation<br> at /xyz/openbmc_project/…
[all …]
/openbmc/pldm/libpldmresponder/
H A Dfru.cpp7 #include <systemd/sd-journal.h>
9 #include <phosphor-logging/lg2.hpp>
14 #include <stack>
18 namespace pldm namespace
53 std::stack<std::string> tmpObjPaths{}; in updateAssociationTree()
56 auto obj = pldm::utils::findParent(path); in updateAssociationTree()
60 obj = pldm::utils::findParent(obj); in updateAssociationTree()
63 std::stack<std::string> tmpObj = tmpObjPaths; in updateAssociationTree()
69 // Update pldm entity to association tree in updateAssociationTree()
152 objects = pldm::utils::DBusHandler::getInventoryObjects< in buildFRUTable()
[all …]
/openbmc/pldm/pldmtool/
H A DREADME.md3 pldmtool is a client tool that acts as a PLDM requester which runs on the BMC.
8 pldmtool supports the subcommands for PLDM types such as base, platform, bios,
9 fru, and oem-ibm.
11 - Source files are implemented in C++.
12 - Consumes pldm/libpldm encode and decode functions.
13 - Communicates with pldmd daemon running on BMC.
14 - Enables writing functional test cases for PLDM stack.
16 please refer the [DMTF PLDM specifications](https://www.dmtf.org/) with respect
17 to the pldm types.
21 Source files in pldmtool repository are named with respect to the PLDM type.
[all …]
/openbmc/openbmc/meta-phosphor/recipes-phosphor/pldm/
H A Dpldm_git.bb1 HOMEPAGE = "https://github.com/openbmc/pldm"
2 LICENSE = "Apache-2.0"
4 SRC_URI = "git://github.com/openbmc/pldm;branch=master;protocol=https"
7 SUMMARY = "PLDM Stack"
8 DESCRIPTION = "Implementation of the PLDM specifications"
12 DEPENDS += "phosphor-dbus-interfaces"
13 DEPENDS += "nlohmann-json"
16 DEPENDS += "phosphor-logging"
27 PACKAGECONFIG[transport-mctp-demux] = "-Dtransport-implementation=mctp-demux"
28 PACKAGECONFIG[transport-af-mctp] = "-Dtransport-implementation=af-mctp"
[all …]
/openbmc/libpldm/docs/checklists/
H A Dchanges.md5 - [Good Practices in Library Design, Implementation, and Maintenance - Ulrich
10 - [How Do I Make This Hard to Misuse? - Rusty Russell][rusty-api-scale-good]
12 [rusty-api-scale-good]: https://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html
14 - [What If I Don't Actually Like My Users? - Rusty Russell][rusty-api-scale-bad]
16 [rusty-api-scale-bad]: https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html
18 - [Red flags that indicate questionable quality - Lennart
19 Poettering][poettering-library-red-flags]
21 [poettering-library-red-flags]:
24 - [Not sure if this is a gcc bug or some weird corner of UB or what... - Andrew
25 Zonenberg][azonenberg-packed-struct]
[all …]
/openbmc/pldm/oem/ibm/libpldmresponder/
H A Doem_ibm_handler.cpp10 #include <libpldm/pldm.h>
12 #include <phosphor-logging/lg2.hpp>
17 using namespace pldm::pdr;
18 using namespace pldm::utils;
20 namespace pldm namespace
26 int pldm::responder::oem_ibm_platform::Handler::
28 pldm::pdr::EntityType entityType, EntityInstance entityInstance, in getOemStateSensorReadingsHandler()
54 sensorOpState = slotHandler->fetchSlotSensorState(key); in getOemStateSensorReadingsHandler()
70 int pldm::responder::oem_ibm_platform::Handler::
95 codeUpdate->setCodeUpdateProgress(true); in oemSetStateEffecterStatesHandler()
[all …]
/openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/MCTP/
H A DEndpoint.interface.yaml6 MCTP-capable management controllers and managed devices.
9 - name: NetworkId
13 network within a platform. The network IDs are used by the MCTP stack
17 - name: EID
29 - name: SupportedMessageTypes
35 types are MCTP Control(0x00), PLDM(0x01), NC-SI over MCTP(0x02),
44 - name: configured_by
51 - xyz.openbmc_project.Configuration.MCTPDevice
/openbmc/libbej/src/
H A Dbej_decoder_core.c16 * not do anything. If the callback function returns a non-zero value, this will
17 * cause the caller to return with the non-zero status.
35 * @param[in] bytes - valid pointer to a byte stream in little-endian format.
36 * @param[in] numOfBytes - number of bytes belongs to the value. Maximum value
49 uint64_t mask = (uint64_t)1 << (uint8_t)(bitsInVal - 1); in bejGetIntegerValue()
50 return (int64_t)((value ^ mask) - mask); in bejGetIntegerValue()
56 * @param[in] enSegment - a valid pointer to a start of a SFLV bejTuple.
57 * @param[out] offsets - this will hold the local offsets.
63 // [Number of bytes need to represent the sequence number] - uint8_t in bejGetLocalBejSFLVOffsets()
64 // [SequenceNumber] - multi byte in bejGetLocalBejSFLVOffsets()
[all …]
/openbmc/openbmc-test-automation/
H A DREADME.md5 - DMTF Redfish
6 - Out-of-band IPMI
7 - SSH to BMC and Host OS
8 - [Legacy REST](https://github.com/openbmc/openbmc-test-automation/releases/tag/v4.0-stable)
12 - Power on/off
13 - Reboot Host
14 - Reset BMC
15 - Code update BMC and host
16 - Power management
17 - Fan controller
[all …]
/openbmc/libmctp/tests/fuzz/
H A Di2c-fuzz.c13 #include "libmctp-i2c.h"
14 #include "libmctp-sizes.h"
15 #include "libmctp-alloc.h"
59 buf->pos = 0; in fuzz_buf_new()
60 buf->len = len; in fuzz_buf_new()
61 buf->data = data; in fuzz_buf_new()
67 if (buf->pos + len > buf->len) { in fuzz_buf_extract()
71 const void *ret = &buf->data[buf->pos]; in fuzz_buf_extract()
72 buf->pos += len; in fuzz_buf_extract()
95 const uint8_t *v = fuzz_buf_extract(ctx->ctrl, sizeof(uint8_t)); in fuzz_chance()
[all …]
/openbmc/openbmc-test-automation/lib/
H A Dutils.robot174 ... Set Variable echo ${os_password} | sudo -S reboot
197 ... Set Variable echo ${os_password} | sudo -S shutdown${time_string}
273 # prior call to this function or via a -v parm), this keyword will simply
281 # -v boot_prog_method:Old to force old behavior on such builds.
506 ... cpu -
525 …${resp}= Get Matches ${list} regexp=^.*[0-9a-z_].${endpoint}\[_0-9a-z]*$ case_insensitive=${Tr…
590 # 0 - indicates chip select is current side.
591 # 32 - indicates chip select is alternate side.
702 [Arguments] ${power_restore_policy}=always-off
706 # always-on : turn on when power is restored
[all …]

12