From 540b23dcccbe1796bb967f7fc35c0b2b05803f2a Mon Sep 17 00:00:00 2001 From: Ivan Mikhaylov Date: Tue, 30 Jun 2020 19:47:53 +0300 Subject: meta-nicole: phosphor-dbus-interfaces: Add boot initiator mailbox interface Add the xyz.openbmc_project.Control.Boot.Mailbox interface to allow for provision of the boot initiator (such as Petitboot or UEFI) with its specific parameters. This is based on IPMI 2.0 Table 28-14 'Boot Option Parameters' parameter 7 'Boot initiator mailbox'. (From meta-yadro rev: 8a37d4554c77f6b3b93fea17eae46b0124b42d28) Signed-off-by: Alexander Amelkin Signed-off-by: Ivan Mikhaylov Change-Id: I231b8658d47d331d0af665b8ccb86da5ea8b2845 Signed-off-by: Andrew Geissler --- .../Control/Boot/Mailbox.interface.yaml | 63 ++++++++++++++++++++++ .../dbus/phosphor-dbus-interfaces_%.bbappend | 15 ++++++ 2 files changed, 78 insertions(+) create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml create mode 100644 meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend (limited to 'meta-yadro/meta-nicole') diff --git a/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml b/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml new file mode 100644 index 000000000..839e8beca --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml @@ -0,0 +1,63 @@ +description: > + Implement to provide the boot initiator (such as Petitboot or UEFI) + with its specific parameters. This is based on IPMI 2.0 Table 28-14 + 'Boot Option Parameters' parameter 7 'Boot initiator mailbox'. + +properties: + - name: Supported + type: boolean + flags: + - const + default: false + description: > + Specifies whether or not the mailbox is supported by the + boot initiator on this machine. + + The property is constant and is only set by the implementation + on startup. + + - name: IANAEnterpriseNumber + type: uint32 + flags: + - const + default: 0 + description: > + The 24-bit IANA Private Enterprise Number for the company or organization + that has specified the boot initiator. This is a machine-specific + constant. The implementing application is responsible for setting + this to the proper machine-specific value (0x000000..0xFFFFFF) + according to https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers. + + The property is constant and is only set by the implementation + on startup. + + - name: Data + type: array[byte] + description: > + The array of data bytes for the boot initiator to treat + in its specific way. This interface doesn't impose any + limitiations on the format or make any assumptions regarding + it. The boot initiator is responsible for parsing this array. + + The size of the array is a constant depending on the requirements + set by the boot initiator used for a particular architecture or + a machine. The implementing application is responsible for setting + the size of this array to the proper value. + + For conformance to the IPMI 2.0 specification, the size of the array + plus 3 (the size of IPMI 2.0 representation of IANA Enterprise Number) + must be a multiple of 16 with the minimum allowed size being 77 + (5 x 16-byte blocks, minus 3) if mailbox is at all Supported. + + For IPMI 2.0 this array is supposed to be split into 16-byte + blocks by the implementing service (block 0 being made of IANA PEN + plus first 13 bytes of this array). Please pay special attention + that this array does NOT include the IANA PEN needed for IPMI 2.0. + Only the actual PEN-specific data is stored here. + + When partially written to, the remaining parts of this array + must not be automatically cleared. This is per IPMI 2.0 + specification. + + Other interfaces to the boot initiator (such as MCTP) may process + this array differently. diff --git a/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend new file mode 100644 index 000000000..656e1514b --- /dev/null +++ b/meta-yadro/meta-nicole/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend @@ -0,0 +1,15 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +# Directory with new layer of source tree with additional files +YAML_DIR = "xyz" + +SRC_URI += "file://${YAML_DIR}" + +S = "${WORKDIR}/git" + +# Merge source tree by original project with our layer of additional files +do_add_yamls(){ + cp -r "${WORKDIR}/${YAML_DIR}" "${S}" +} + +addtask do_add_yamls after do_unpack before do_configure -- cgit v1.2.3