1SUMMARY = "Phosphor OEM IPMI In-band Firmware Update over BLOB" 2DESCRIPTION = "This package handles a series of OEM IPMI commands that implement the firmware update handler over the BLOB protocol." 3HOMEPAGE = "http://github.com/openbmc/phosphor-ipmi-flash" 4LICENSE = "Apache-2.0" 5LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" 6DEPENDS += " \ 7 phosphor-ipmi-blobs \ 8 phosphor-logging \ 9 sdbusplus \ 10 systemd \ 11 ipmi-blob-tool \ 12" 13SRCREV = "a9423469ce218804587883989e0b2ebcdb47016b" 14PACKAGECONFIG ?= "cleanup-delete" 15PACKAGECONFIG[cleanup-delete] = "-Dcleanup-delete=enabled,-Dcleanup-delete=disabled" 16# If using static-layout, reboot-update is a good option to handle updating. 17# To be able to track the update status, update-status option can be used. 18# Note that both reboot-update and update-status cannot be enabled at the same time. 19PACKAGECONFIG[reboot-update] = "-Dreboot-update=true,-Dreboot-update=false" 20PACKAGECONFIG[update-status] = "-Dupdate-status=true,-Dupdate-status=false" 21# Default options for supporting various flash types: 22PACKAGECONFIG[static-bmc] = "-Dupdate-type=static-layout,-Dupdate-type=none" 23PACKAGECONFIG[ubitar-bmc] = "-Dupdate-type=tarball-ubi,-Dupdate-type=none" 24PACKAGECONFIG[host-bios] = "-Dhost-bios=true,-Dhost-bios=false" 25# Hardware options to enable transmitting the data from the host. 26# Only one type of p2a or lpc can be enabled. 27PACKAGECONFIG[aspeed-p2a] = "-Dp2a-type=aspeed-p2a,,,,,aspeed-lpc nuvoton-lpc nuvoton-p2a-vga nuvoton-p2a-mbox" 28PACKAGECONFIG[aspeed-lpc] = "-Dlpc-type=aspeed-lpc,,,,,aspeed-p2a nuvoton-lpc nuvoton-p2a-vga nuvoton-p2a-mbox" 29PACKAGECONFIG[nuvoton-lpc] = "-Dlpc-type=nuvoton-lpc,,,,,aspeed-p2a aspeed-lpc nuvoton-p2a-vga nuvoton-p2a-mbox" 30PACKAGECONFIG[nuvoton-p2a-vga] = "-Dp2a-type=nuvoton-p2a-vga,,,,,aspeed-p2a aspeed-lpc nuvoton-lpc nuvoton-p2a-mbox" 31PACKAGECONFIG[nuvoton-p2a-mbox] = "-Dp2a-type=nuvoton-p2a-mbox,,,,,aspeed-p2a aspeed-lpc nuvoton-lpc nuvoton-p2a-vga" 32PACKAGECONFIG[net-bridge] = "-Dnet-bridge=true,-Dnet-bridge=false" 33PV = "1.0+git${SRCPV}" 34PR = "r1" 35 36SRC_URI = "git://github.com/openbmc/phosphor-ipmi-flash;branch=master;protocol=https" 37 38S = "${WORKDIR}/git" 39SYSTEMD_PACKAGES = "${PN}" 40SYSTEMD_SERVICE:${PN} += " \ 41 phosphor-ipmi-flash-bmc-prepare.target \ 42 phosphor-ipmi-flash-bmc-verify.target \ 43 phosphor-ipmi-flash-bmc-update.target \ 44" 45SYSTEMD_SERVICE:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'host-bios', '${HOST_BIOS_TARGETS}', '', d)}" 46 47inherit meson pkgconfig systemd 48 49EXTRA_OEMESON = "-Dtests=disabled -Dhost-tool=disabled" 50EXTRA_OEMESON:append = " -Dmapped-address=${IPMI_FLASH_BMC_ADDRESS}" 51 52do_configure[depends] += "virtual/kernel:do_shared_workdir" 53 54FILES:${PN}:append = " ${libdir}/ipmid-providers" 55FILES:${PN}:append = " ${libdir}/blob-ipmid" 56FILES:${PN}:append = " ${libdir}/tmpfiles.d" 57 58BLOBIPMI_PROVIDER_LIBRARY += "libfirmwareblob.so" 59BLOBIPMI_PROVIDER_LIBRARY += "libversionblob.so" 60BLOBIPMI_PROVIDER_LIBRARY += "liblogblob.so" 61BLOBIPMI_PROVIDER_LIBRARY += "${@bb.utils.contains('PACKAGECONFIG', 'cleanup-delete', 'libfirmwarecleanupblob.so', '', d)}" 62 63# Set this variable in your recipe to set it instead of using MAPPED_ADDRESS directly. 64IPMI_FLASH_BMC_ADDRESS ?= "0" 65# If they enabled host-bios, add those three extra targets. 66HOST_BIOS_TARGETS = " \ 67 phosphor-ipmi-flash-bios-prepare.target \ 68 phosphor-ipmi-flash-bios-verify.target \ 69 phosphor-ipmi-flash-bios-update.target \ 70" 71