blob: 18b298cc334b696d3d7f015e44843329eed5d8d4 [file] [log] [blame]
SUMMARY = "OpenPOWER OCC controller"
DESCRIPTION = "Application to control the OpenPOWER On-Chip-Controller"
HOMEPAGE = "https://github.com/openbmc/openpower-occ-control"
PR = "r1"
inherit autotools \
pkgconfig \
obmc-phosphor-dbus-service \
pythonnative \
phosphor-dbus-yaml
require ${PN}.inc
SRC_URI += "file://occ-active.sh"
do_install_append() {
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/occ-active.sh \
${D}${bindir}/occ-active.sh
}
DBUS_SERVICE_${PN} += "org.open_power.OCC.Control.service"
SYSTEMD_SERVICE_${PN} += "op-occ-enable@.service"
SYSTEMD_SERVICE_${PN} += "op-occ-disable@.service"
DEPENDS += "virtual/${PN}-config-native"
DEPENDS += " \
sdbusplus \
sdbusplus-native \
phosphor-logging \
openpower-dbus-interfaces \
phosphor-dbus-interfaces \
openpower-dbus-interfaces-native \
autoconf-archive-native \
obmc-targets \
systemd \
"
RDEPENDS_${PN} += " \
sdbusplus \
phosphor-logging \
openpower-dbus-interfaces \
phosphor-dbus-interfaces \
"
EXTRA_OECONF = " \
YAML_PATH=${STAGING_DATADIR_NATIVE}/${PN} \
PS_DERATING_FACTOR=${POWER_SUPPLY_DERATING_FACTOR} \
"
EXTRA_OECONF_append = "${@bb.utils.contains('OBMC_MACHINE_FEATURES', 'i2c-occ', ' --enable-i2c-occ', '', d)}"
OCC_ENABLE = "enable"
OCC_DISABLE = "disable"
HOST_START = "startmin"
HOST_STOP = "stop"
# Ensure host-stop and host-startmin targets require needed occ states
OCC_TMPL = "op-occ-{0}@.service"
HOST_TGTFMT = "obmc-host-{1}@{2}.target"
OCC_INSTFMT = "op-occ-{0}@{2}.service"
HOST_OCC_FMT = "../${OCC_TMPL}:${HOST_TGTFMT}.requires/${OCC_INSTFMT}"
SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_OCC_FMT', 'OCC_ENABLE', 'HOST_START', 'OBMC_HOST_INSTANCES')}"
SYSTEMD_LINK_${PN} += "${@compose_list_zip(d, 'HOST_OCC_FMT', 'OCC_DISABLE', 'HOST_STOP', 'OBMC_HOST_INSTANCES')}"
# Set the occ disable service to be executed on host error
HOST_ERROR_TARGETS = "crash timeout"
OCC_DISABLE_TMPL = "op-occ-disable@.service"
HOST_ERROR_TGTFMT = "obmc-host-{0}@{1}.target"
OCC_DISABLE_INSTFMT = "op-occ-disable@{1}.service"
HOST_ERROR_FMT = "../${OCC_DISABLE_TMPL}:${HOST_ERROR_TGTFMT}.wants/${OCC_DISABLE_INSTFMT}"
SYSTEMD_LINK_${PN} += "${@compose_list(d, 'HOST_ERROR_FMT', 'HOST_ERROR_TARGETS', 'OBMC_HOST_INSTANCES')}"
S = "${WORKDIR}/git"
# Remove packages not required for native build
DEPENDS_remove_class-native = " \
phosphor-logging \
obmc-targets \
systemd \
virtual/${PN}-config-native \
"
# Remove packages not required for native SDK build
DEPENDS_remove_class-nativesdk = " \
phosphor-logging \
obmc-targets \
systemd \
virtual/${PN}-config-native \
"
# Provide a means to enable/disable install_error_yaml feature
PACKAGECONFIG ??= "install_error_yaml"
PACKAGECONFIG[install_error_yaml] = "\
--enable-install_error_yaml,\
--disable-install_error_yaml,\
,\
"
# Enable install_error_yaml during native and native SDK build
PACKAGECONFIG_add_class-native = "install_error_yaml"
PACKAGECONFIG_add_class-nativesdk = "install_error_yaml"
# Disable install_error_yaml during target build
PACKAGECONFIG_remove_class-target = "install_error_yaml"
# Disable generating elog error header file during bitbake. Applications
# should be using the elog header generated by phosphor-logging recipe
EXTRA_OECONF += "--disable-gen_errors"
BBCLASSEXTEND += "native nativesdk"