diff options
Diffstat (limited to 'meta-phosphor/recipes-phosphor/mboxd')
6 files changed, 123 insertions, 0 deletions
diff --git a/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-lpc-ctrl.rules b/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-lpc-ctrl.rules new file mode 100644 index 0000000000..9cf2fbad13 --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-lpc-ctrl.rules @@ -0,0 +1 @@ +SUBSYSTEM=="misc", KERNEL=="aspeed-lpc-ctrl", TAG+="systemd" diff --git a/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-mbox.rules b/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-mbox.rules new file mode 100644 index 0000000000..12e90d86c8 --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/files/99-aspeed-mbox.rules @@ -0,0 +1 @@ +SUBSYSTEM=="misc", KERNEL=="aspeed-mbox", TAG+="systemd" diff --git a/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch b/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch new file mode 100644 index 0000000000..122594e9f0 --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/files/aspeed-lpc-ctrl-h.patch @@ -0,0 +1,39 @@ +--- /dev/null 2017-01-17 09:45:47.987442339 +1030 ++++ include/linux/aspeed-lpc-ctrl.h 2017-01-17 11:12:17.711635876 +1030 +@@ -0,0 +1,36 @@ ++/* ++ * Copyright 2017 IBM Corp. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ */ ++ ++#ifndef _LINUX_ASPEED_LPC_CTRL_H ++#define _LINUX_ASPEED_LPC_CTRL_H ++ ++#include <linux/ioctl.h> ++ ++/* Window types */ ++#define ASPEED_LPC_CTRL_WINDOW_FLASH 1 ++#define ASPEED_LPC_CTRL_WINDOW_MEMORY 2 ++ ++struct aspeed_lpc_ctrl_mapping { ++ __u8 window_type; ++ __u8 window_id; ++ __u16 flags; ++ __u32 addr; ++ __u32 offset; ++ __u32 size; ++}; ++ ++#define __ASPEED_LPC_CTRL_IOCTL_MAGIC 0xb2 ++ ++#define ASPEED_LPC_CTRL_IOCTL_GET_SIZE _IOWR(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \ ++ 0x00, struct aspeed_lpc_ctrl_mapping) ++ ++#define ASPEED_LPC_CTRL_IOCTL_MAP _IOW(__ASPEED_LPC_CTRL_IOCTL_MAGIC, \ ++ 0x01, struct aspeed_lpc_ctrl_mapping) ++ ++#endif /* _LINUX_ASPEED_LPC_CTRL_H */ diff --git a/meta-phosphor/recipes-phosphor/mboxd/mboxd.bb b/meta-phosphor/recipes-phosphor/mboxd/mboxd.bb new file mode 100644 index 0000000000..03428b7a8a --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/mboxd.bb @@ -0,0 +1,51 @@ +SUMMARY = "Phosphor OpenBMC MBOX Daemon" +DESCRIPTION = "Phosphor OpenBMC MBOX Daemon" +PR = "r1" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" + +inherit autotools pkgconfig +inherit obmc-phosphor-systemd + +DEPENDS += "autoconf-archive-native" +DEPENDS += "systemd" +DEPENDS += "phosphor-logging" +RDEPENDS_${PN} += "libsystemd" + +S = "${WORKDIR}/git" + +SRC_URI += "git://github.com/openbmc/phosphor-mboxd.git" + +SRC_URI += "file://99-aspeed-mbox.rules" +SRC_URI += "file://99-aspeed-lpc-ctrl.rules" +SRC_URI += "file://aspeed-lpc-ctrl-h.patch" + +SRCREV="acdbdd141ece313f259ad6231e132f0a4bc3e062" + +PROVIDES += "mboxctl" + +MBOXD_FLASH_SIZE ??= "32M" +SYSTEMD_SUBSTITUTIONS += "FLASH_SIZE:${MBOXD_FLASH_SIZE}:${PN}.service" + +# Hacks because ${STAGING_KERNEL_DIR} points to the kernel source tree, not the +# installed, pre-processed headers. Requires the aspeed-lpc-ctrl-h patch above. +CFLAGS_append = " -I include" + +do_install_append() { + install -d ${D}/lib/udev/rules.d + install -m 0644 ${WORKDIR}/99-aspeed-mbox.rules ${D}/lib/udev/rules.d + install -m 0644 ${WORKDIR}/99-aspeed-lpc-ctrl.rules ${D}/lib/udev/rules.d +} + +TMPL = "mboxd-reload@.service" +TGTFMT = "obmc-chassis-poweron@{0}.target" +INSTFMT = "mboxd-reload@{0}.service" +FMT = "../${TMPL}:${TGTFMT}.wants/${INSTFMT}" + +SYSTEMD_SERVICE_${PN} += "mboxd.service" +SYSTEMD_SERVICE_${PN} += "mboxd-reload@.service" +SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}" + +# Enable virtual-pnor by DISTRO_FEATURE openpower-ubi-fs. +PACKAGECONFIG_append_df-openpower-ubi-fs = "virtual-pnor" +PACKAGECONFIG[virtual-pnor] = "--enable-virtual-pnor,--disable-virtual-pnor" diff --git a/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service b/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service new file mode 100644 index 0000000000..be02c7a2ce --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd-reload@.service @@ -0,0 +1,16 @@ +[Unit] +Description=Reload mboxd during power on +Wants=obmc-power-start-pre@%i.target +Before=obmc-power-start-pre@%i.target +Wants=mapper-wait@-org-openbmc-mboxd.service +After=mapper-wait@-org-openbmc-mboxd.service +Conflicts=obmc-chassis-poweroff@%i.target + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/bin/env mboxctl --reset +SyslogIdentifier=mboxctl + +[Install] +WantedBy=obmc-chassis-poweron@%i.target diff --git a/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd.service b/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd.service new file mode 100644 index 0000000000..35081d85ab --- /dev/null +++ b/meta-phosphor/recipes-phosphor/mboxd/mboxd/mboxd.service @@ -0,0 +1,15 @@ +[Unit] +Description=Phosphor MBOX Daemon +BindsTo=dev-aspeed\x2dlpc\x2dctrl.device +After=dev-aspeed\x2dlpc\x2dctrl.device +BindsTo=dev-aspeed\x2dmbox.device +After=dev-aspeed\x2dmbox.device + + +[Service] +Restart=always +ExecStart=/usr/bin/env mboxd --flash {FLASH_SIZE} --window-size 1M +SyslogIdentifier=mboxd + +[Install] +WantedBy={SYSTEMD_DEFAULT_TARGET} |