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
diff --git a/side-switch/meson.build b/side-switch/meson.build
new file mode 100644
index 0000000..9104a5f
--- /dev/null
+++ b/side-switch/meson.build
@@ -0,0 +1,13 @@
+source = [
+    'side_switch.cpp',
+    ]
+
+executable(
+    'phosphor-bmc-side-switch',
+    source,
+    dependencies: [
+        phosphor_logging_dep,
+    ],
+    install: true,
+    install_dir: get_option('bindir')
+)