diff options
author | Alexander Filippov <a.filippov@yadro.com> | 2020-09-28 20:02:03 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-10-02 01:14:33 +0300 |
commit | 335b8263f84e9fbb720c901afe8fd0a5e0e64951 (patch) | |
tree | da5d1799eda51052c98391f367146b158e3121a5 /meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch | |
parent | 90934090e5029612c021119b0fa2b13a43c83298 (diff) | |
download | openbmc-335b8263f84e9fbb720c901afe8fd0a5e0e64951.tar.xz |
meta-yadro: dbus-intf: fix bootmbox interface
Since the `phosphor-dbus-interfaces` has switched to `meson` simply
adding a new YAML is not enough.
This commit appends a YAML file and few required changes in the meson
scripts to fix `xyz.openbmc_project.Control.Boot.Mailbox` interface
building.
(From meta-yadro rev: 1df817ffff7f18f435402872df1f51fa0d19f08f)
Change-Id: I211d15995f1cf6d92957b51891da1ed942ffa7b4
Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch')
-rw-r--r-- | meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch b/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch new file mode 100644 index 000000000..e3da4378a --- /dev/null +++ b/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/0001-Add-boot-initiator-mailbox-interface.patch @@ -0,0 +1,138 @@ +From 104027fff5db49d60d2ff7256580b8efb6429a27 Mon Sep 17 00:00:00 2001 +From: Alexander Amelkin <a.amelkin@yadro.com> +Date: Wed, 20 Mar 2019 19:33:00 +0300 +Subject: [PATCH] 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'. + +Partially resolves openbmc/openbmc#3391 + +Change-Id: If2a7dce6fae812fc3f1f325cd07c77f31900cf42 +Signed-off-by: Alexander Amelkin <a.amelkin@yadro.com> +--- + .../Control/Boot/Mailbox/meson.build | 14 +++++ + .../openbmc_project/Control/Boot/meson.build | 15 +++++ + .../Control/Boot/Mailbox.interface.yaml | 63 +++++++++++++++++++ + 3 files changed, 92 insertions(+) + create mode 100644 gen/xyz/openbmc_project/Control/Boot/Mailbox/meson.build + create mode 100644 xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml + +diff --git a/gen/xyz/openbmc_project/Control/Boot/Mailbox/meson.build b/gen/xyz/openbmc_project/Control/Boot/Mailbox/meson.build +new file mode 100644 +index 0000000..149e68a +--- /dev/null ++++ b/gen/xyz/openbmc_project/Control/Boot/Mailbox/meson.build +@@ -0,0 +1,14 @@ ++# Generated file; do not modify. ++generated_sources += custom_target( ++ 'xyz/openbmc_project/Control/Boot/Mailbox__cpp'.underscorify(), ++ input: [ meson.source_root() / 'xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml', ], ++ output: [ 'server.cpp', 'server.hpp', 'client.hpp', ], ++ command: [ ++ sdbuspp_gen_meson_prog, '--command', 'cpp', ++ '--output', meson.current_build_dir(), ++ '--tool', sdbusplusplus_prog, ++ '--directory', meson.source_root(), ++ 'xyz/openbmc_project/Control/Boot/Mailbox', ++ ], ++) ++ +diff --git a/gen/xyz/openbmc_project/Control/Boot/meson.build b/gen/xyz/openbmc_project/Control/Boot/meson.build +index ba8a19f..6901fc0 100644 +--- a/gen/xyz/openbmc_project/Control/Boot/meson.build ++++ b/gen/xyz/openbmc_project/Control/Boot/meson.build +@@ -1,4 +1,19 @@ + # Generated file; do not modify. ++subdir('Mailbox') ++generated_others += custom_target( ++ 'xyz/openbmc_project/Control/Boot/Mailbox__markdown'.underscorify(), ++ input: [ meson.source_root() / 'xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml', ], ++ output: [ 'Mailbox.md' ], ++ command: [ ++ sdbuspp_gen_meson_prog, '--command', 'markdown', ++ '--output', meson.current_build_dir(), ++ '--tool', sdbusplusplus_prog, ++ '--directory', meson.source_root(), ++ 'xyz/openbmc_project/Control/Boot/Mailbox', ++ ], ++ build_by_default: true, ++) ++ + subdir('Mode') + generated_others += custom_target( + 'xyz/openbmc_project/Control/Boot/Mode__markdown'.underscorify(), +diff --git a/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml b/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml +new file mode 100644 +index 0000000..839e8be +--- /dev/null ++++ b/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. +-- +2.26.2 + |