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>
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 0000000..e3da437
--- /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
+
diff --git a/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml b/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml
deleted file mode 100644
index 839e8be..0000000
--- a/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces/xyz/openbmc_project/Control/Boot/Mailbox.interface.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-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/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
index 656e151..8a5b4c3 100644
--- a/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
+++ b/meta-yadro/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
@@ -1,15 +1,5 @@
 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
+SRC_URI_append = "\
+    file://0001-Add-boot-initiator-mailbox-interface.patch \
+"