Initial commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@@ -0,0 +1,175 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
@@ -0,0 +1,12 @@
|
||||
Different components of meta-openpower are under different licenses (a mix
|
||||
of MIT and Apache-2.0). Please see:
|
||||
|
||||
COPYING.Apache-2.0
|
||||
COPYING.MIT (MIT)
|
||||
|
||||
All metadata is MIT licensed unless otherwise stated. Source code
|
||||
included in tree for individual recipes is under the LICENSE stated in
|
||||
the associated recipe (.bb file) unless otherwise stated.
|
||||
|
||||
License information for any other files is either explicitly stated
|
||||
or defaults to Apache-2.0.
|
||||
@@ -0,0 +1,3 @@
|
||||
owners:
|
||||
- joel@jms.id.au
|
||||
- geissonator@yahoo.com
|
||||
@@ -0,0 +1,48 @@
|
||||
OpenEmbedded/Yocto/OpenBMC BSP layer for OpenPOWER reference platforms
|
||||
======================================================================
|
||||
|
||||
This layer provides support for the BMC firmware on OpenPOWER reference
|
||||
platforms, and/or a base upon which to create a BMC firmware implementation on
|
||||
any POWER system.
|
||||
|
||||
```
|
||||
This layer depends on:
|
||||
|
||||
URI: git://git.openembedded.org/openembedded-core
|
||||
layers: meta
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
URI: https://github.com/openbmc/meta-phosphor
|
||||
branch: master
|
||||
revision: HEAD
|
||||
|
||||
URI: https://github.com/openbmc/meta-aspeed
|
||||
branch: master
|
||||
revision: HEAD
|
||||
```
|
||||
|
||||
More information on OpenPOWER can be found
|
||||
[here](https://openpowerfoundation.org/).
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
meta-openpower patches are reviewed using the Gerrit instance at
|
||||
https://gerrit.openbmc.org.
|
||||
|
||||
Please submit patches to Gerrit. More information on using Gerrit can be found
|
||||
[here](https://github.com/openbmc/docs/blob/master/CONTRIBUTING.md#submitting-changes-via-gerrit-server).
|
||||
https://github.com/openbmc/meta-openpower is a hosting mirror only and GitHub
|
||||
pull requests are not monitored and will not be accepted.
|
||||
|
||||
Patch checklist. Please ensure patches adhere to the following guidelines:
|
||||
|
||||
- meta-openpower uses the [OE style
|
||||
guidelines](https://www.openembedded.org/wiki/Styleguide).
|
||||
- follow [the seven rules of a great git commit
|
||||
message](https://chris.beams.io/posts/git-commit/#seven-rules)
|
||||
|
||||
For questions or help please come join us on the [mailing
|
||||
list](https://lists.ozlabs.org/listinfo/openbmc) or in
|
||||
[IRC](irc://freenode.net/openbmc).
|
||||
@@ -0,0 +1,5 @@
|
||||
vpdlayout_datadir="${datadir}/openpower-fru-vpd/vpdlayout"
|
||||
inventory_datadir_name="/openpower-fru-inventory/inventory"
|
||||
inventory_datadir_native="${datadir}${inventory_datadir_name}"
|
||||
inventory_envdir="${envfiledir}/obmc"
|
||||
properties_datadir="${datadir}/openpower-fru-vpd/properties"
|
||||
@@ -0,0 +1 @@
|
||||
YAML_DEST="${D}${datadir}/openpower-occ-control"
|
||||
@@ -0,0 +1,7 @@
|
||||
PACKAGECONFIG:append = " mmc_layout"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
obmc-flash-bios-init.service \
|
||||
obmc-flash-bios-patch.service \
|
||||
openpower-bios-factory-reset.service \
|
||||
"
|
||||
@@ -0,0 +1,6 @@
|
||||
PACKAGECONFIG:append = " pldm"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
openpower-process-host-firmware.service \
|
||||
openpower-update-bios-attr-table.service \
|
||||
"
|
||||
@@ -0,0 +1,4 @@
|
||||
RDEPENDS:${PN} += "pflash"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "openpower-pnor-update@.service"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
PACKAGECONFIG:append = " ubifs_layout"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
obmc-flash-bios-ubiattach.service \
|
||||
obmc-flash-bios-ubimount@.service \
|
||||
obmc-flash-bios-ubiumount-ro@.service \
|
||||
obmc-flash-bios-ubiumount-rw@.service \
|
||||
obmc-flash-bios-ubipatch.service \
|
||||
obmc-flash-bios-ubiremount.service \
|
||||
obmc-flash-bios-cleanup.service \
|
||||
"
|
||||
@@ -0,0 +1,45 @@
|
||||
PACKAGECONFIG:append = " virtual_pnor"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
bash \
|
||||
"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
obmc-vpnor-updatesymlinks.service \
|
||||
obmc-vpnor-check-clearvolatile@.service \
|
||||
obmc-vpnor-enable-clearvolatile@.service \
|
||||
"
|
||||
|
||||
# To handle warm reboot scenarios, the checking and clearing of
|
||||
# the volatile section must occur in both the chassis and host
|
||||
# targets
|
||||
|
||||
# Host target installation - only clear if going through
|
||||
# full host start target
|
||||
ENABLE_CLEAR_VOLATILE_TMPL = "obmc-vpnor-enable-clearvolatile@.service"
|
||||
HOST_START_TGTFMT = "obmc-host-start@{0}.target"
|
||||
ENABLE_CLEAR_VOLATILE_INSTFMT = "obmc-vpnor-enable-clearvolatile@{0}.service"
|
||||
ENABLE_CLEAR_VOLATILE_START_FMT = "../${ENABLE_CLEAR_VOLATILE_TMPL}:${HOST_START_TGTFMT}.requires/${ENABLE_CLEAR_VOLATILE_INSTFMT}"
|
||||
|
||||
CHECK_CLEAR_VOLATILE_TMPL = "obmc-vpnor-check-clearvolatile@.service"
|
||||
HOST_STARTMIN_TGTFMT = "obmc-host-startmin@{0}.target"
|
||||
CHECK_CLEAR_VOLATILE_INSTFMT = "obmc-vpnor-check-clearvolatile@{0}.service"
|
||||
CHECK_CLEAR_VOLATILE_START_FMT = "../${CHECK_CLEAR_VOLATILE_TMPL}:${HOST_STARTMIN_TGTFMT}.requires/${CHECK_CLEAR_VOLATILE_INSTFMT}"
|
||||
|
||||
UPDATE_SYMLINKS_SVC = "obmc-vpnor-updatesymlinks.service"
|
||||
MBOXD_RELOAD_SVC = "mboxd-reload@{0}.service"
|
||||
UPDATE_SYMLINKS_FMT = "../${UPDATE_SYMLINKS_SVC}:${MBOXD_RELOAD_SVC}.wants/${UPDATE_SYMLINKS_SVC}"
|
||||
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'ENABLE_CLEAR_VOLATILE_START_FMT', 'OBMC_HOST_INSTANCES')}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'CHECK_CLEAR_VOLATILE_START_FMT', 'OBMC_HOST_INSTANCES')}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'UPDATE_SYMLINKS_FMT', 'OBMC_HOST_INSTANCES')}"
|
||||
|
||||
# Chassis target installation - always enable and clear in chassis
|
||||
# power on
|
||||
CHASSIS_PON_TGTFMT = "obmc-chassis-poweron@{0}.target"
|
||||
ENABLE_CLEAR_VOLATILE_PON_FMT = "../${ENABLE_CLEAR_VOLATILE_TMPL}:${CHASSIS_PON_TGTFMT}.requires/${ENABLE_CLEAR_VOLATILE_INSTFMT}"
|
||||
|
||||
CHECK_CLEAR_VOLATILE_PON_FMT = "../${CHECK_CLEAR_VOLATILE_TMPL}:${CHASSIS_PON_TGTFMT}.requires/${CHECK_CLEAR_VOLATILE_INSTFMT}"
|
||||
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'ENABLE_CLEAR_VOLATILE_PON_FMT', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'CHECK_CLEAR_VOLATILE_PON_FMT', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
@@ -0,0 +1,6 @@
|
||||
DISTRO_FEATURES += "openpower"
|
||||
DISTRO_FEATURES_FILTER_NATIVE += "openpower"
|
||||
DISTRO_FEATURES_FILTER_NATIVESDK += "openpower"
|
||||
DISTROOVERRIDES .= ":df-openpower"
|
||||
|
||||
OBMC_ORG_YAML_SUBDIRS += " org/open_power"
|
||||
@@ -0,0 +1,2 @@
|
||||
DISTRO_FEATURES += "openpower-hostfw-over-pldm"
|
||||
DISTROOVERRIDES .= ":df-openpower-hostfw-over-pldm"
|
||||
@@ -0,0 +1,5 @@
|
||||
require conf/distro/include/phosphor-mrw.inc
|
||||
|
||||
PREFERRED_PROVIDER_virtual/openpower-fru-inventory:df-mrw ?= "openpower-fru-inventory-mrw-native"
|
||||
PREFERRED_PROVIDER_virtual/openpower-fru-properties:df-mrw ?= "openpower-fru-properties-mrw-native"
|
||||
PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native:df-mrw ?= "openpower-occ-control-config-mrw-native"
|
||||
@@ -0,0 +1,4 @@
|
||||
require conf/distro/include/openpower-virtual-pnor.inc
|
||||
|
||||
DISTRO_FEATURES += "openpower-ubi-fs"
|
||||
DISTROOVERRIDES .= ":df-openpower-ubi-fs"
|
||||
@@ -0,0 +1,2 @@
|
||||
DISTRO_FEATURES += "openpower-virtual-pnor"
|
||||
DISTROOVERRIDES .= ":df-openpower-virtual-pnor"
|
||||
@@ -0,0 +1,3 @@
|
||||
require conf/distro/include/phosphor-base.inc
|
||||
require conf/distro/include/openpower-distrovars.inc
|
||||
require conf/distro/include/phosphor-isolation.inc
|
||||
@@ -0,0 +1,12 @@
|
||||
# We have a conf and classes directory, add to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
|
||||
# We have recipes-* directories, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
||||
${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "openpower-layer"
|
||||
BBFILE_PATTERN_openpower-layer := "^${LAYERDIR}/"
|
||||
LAYERVERSION_openpower-layer = "1"
|
||||
LAYERDEPENDS_openpower-layer = "core phosphor-layer aspeed-layer"
|
||||
LAYERSERIES_COMPAT_openpower-layer = "langdale mickledore"
|
||||
@@ -0,0 +1,36 @@
|
||||
MACHINE_FEATURES += "\
|
||||
obmc-phosphor-fan-mgmt \
|
||||
obmc-phosphor-chassis-mgmt \
|
||||
obmc-phosphor-flash-mgmt \
|
||||
obmc-host-ipmi \
|
||||
obmc-host-ctl \
|
||||
obmc-host-state-mgmt \
|
||||
obmc-chassis-state-mgmt \
|
||||
obmc-bmc-state-mgmt \
|
||||
"
|
||||
|
||||
# Add OpenPOWER OEM commands handler library
|
||||
VIRTUAL-RUNTIME_phosphor-ipmi-providers:append:df-openpower = " \
|
||||
openpower-ipmi-oem \
|
||||
"
|
||||
|
||||
PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-bt"
|
||||
PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-op-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-op-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-op-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-op-apps"
|
||||
PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= "obmc-op-control-host"
|
||||
PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-hostfw-config ?= "hostboot-inventory-config-native"
|
||||
PREFERRED_PROVIDER_virtual/openpower-fru-vpd-layout ?= "openpower-fru-vpd-layout-native"
|
||||
PREFERRED_PROVIDER_virtual/openpower-fru-inventory ?= "openpower-fru-inventory-example-native"
|
||||
PREFERRED_PROVIDER_virtual/openpower-fru-properties ?= "openpower-fru-properties-example-native"
|
||||
|
||||
# The openpower-occ-control application is data-driven and requires an input
|
||||
# yaml of OCC instance numbers to sensor IDs.
|
||||
# This virtual is a native recipe that provides that mapping by installing
|
||||
# configuration files in the format and native sysroot location expected by
|
||||
# the openpower-occ-control build process in the native sysroot.
|
||||
PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native ?= "openpower-occ-control-config-example-native"
|
||||
|
||||
#Default value for power supply output power efficiency.
|
||||
POWER_SUPPLY_DERATING_FACTOR = "90"
|
||||
@@ -0,0 +1,3 @@
|
||||
include conf/machine/include/ibm-power10-cpu.inc
|
||||
MACHINE_FEATURES += 'op-fsi'
|
||||
PREFERRED_PROVIDER_virtual/obmc-host-ctl = "p9-host-start"
|
||||
@@ -0,0 +1,2 @@
|
||||
include conf/machine/include/ibm-power8-cpu.inc
|
||||
MACHINE_FEATURES += 'i2c-occ'
|
||||
@@ -0,0 +1,3 @@
|
||||
include conf/machine/include/ibm-power9-cpu.inc
|
||||
MACHINE_FEATURES += 'op-fsi p9-cfam-override'
|
||||
PREFERRED_PROVIDER_virtual/obmc-host-ctl = "p9-host-start"
|
||||
@@ -0,0 +1,23 @@
|
||||
SUMMARY = "eCMD plugin with pdbg backend"
|
||||
DESCRIPTION = "The glue code necessary for pdbg to be used as an eCMD plugin"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
|
||||
|
||||
inherit meson
|
||||
inherit pkgconfig
|
||||
|
||||
SRC_URI = "git://git@github.com/open-power/ecmd-pdbg.git;branch=master;protocol=https"
|
||||
SRCREV = "349e04048409b4a619f4bc979aa5dd76e2bbc665"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "pdbg zlib libyaml ipl"
|
||||
|
||||
FILES:${PN} += "${prefix}/help"
|
||||
|
||||
EXTRA_OEMESON = " \
|
||||
-Dchip=p10 \
|
||||
"
|
||||
@@ -0,0 +1,36 @@
|
||||
SUMMARY = "eCMD"
|
||||
DESCRIPTION = "eCMD is a hardware access API for IBM Systems"
|
||||
LICENSE= "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/NOTICE;md5=fee220301a2af3faf8f211524b4248ea"
|
||||
|
||||
SRC_URI = "git://github.com/open-power/eCMD.git;branch=ecmd15;protocol=https"
|
||||
SRCREV = "72b925d4fabc8bff71d56f7a5ec7e3f0730f8f06"
|
||||
DEPENDS += "zlib"
|
||||
|
||||
SRC_URI += "file://croserver.service"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit python3native
|
||||
DEPENDS += "${PYTHON_PN}-distro-native"
|
||||
|
||||
do_configure() {
|
||||
LD="${CXX}" ${PYTHON} ${S}/config.py \
|
||||
--without-swig --output-root ${B} --target obj \
|
||||
--extensions "cmd cip" --build-verbose
|
||||
}
|
||||
|
||||
do_compile() {
|
||||
cd ${S}/dllNetwork/server
|
||||
oe_runmake
|
||||
}
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 out_obj/lib/server1p ${D}${bindir}/croserver
|
||||
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${WORKDIR}/croserver.service ${D}${systemd_system_unitdir}/
|
||||
}
|
||||
|
||||
FILES:${PN} += "${systemd_system_unitdir}/croserver.service"
|
||||
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Cronus Server
|
||||
Documentation=https://github.com/open-power/eCMD/
|
||||
After=network.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/croserver
|
||||
Restart=on-failure
|
||||
ProtectHome=yes
|
||||
ProtectSystem=full
|
||||
RestrictAddressFamilies=AF_INET AF_INET6
|
||||
@@ -0,0 +1,61 @@
|
||||
SUMMARY = "eCMD"
|
||||
DESCRIPTION = "eCMD is a hardware access API for POWER Systems"
|
||||
LICENSE= "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/NOTICE;md5=fee220301a2af3faf8f211524b4248ea"
|
||||
|
||||
SRC_URI = "git://github.com/open-power/eCMD.git;branch=ecmd15;protocol=https"
|
||||
SRCREV = "15e382180d49f7ea4117ccc341ca91e361721fd4"
|
||||
|
||||
inherit python3native
|
||||
DEPENDS = "zlib"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
export LD="${CXX}"
|
||||
export SLDFLAGS="${LDFLAGS}"
|
||||
|
||||
# use native config.py to build required ecmd extensions
|
||||
do_configure() {
|
||||
${S}/config.py --without-swig --without-python --without-python3 --without-perl \
|
||||
--without-pyecmd --install-path ${D}${prefix} --output-root ${B} --target ${TARGET_ARCH} \
|
||||
--extensions "cmd cip"
|
||||
}
|
||||
|
||||
do_compile() {
|
||||
oe_runmake all
|
||||
}
|
||||
|
||||
do_install() {
|
||||
oe_runmake install
|
||||
|
||||
# we don't need the target scripts or ecmd setup
|
||||
rm ${D}${bindir}/target.* ${D}${bindir}/ecmdsetup.pl
|
||||
|
||||
# ecmd installs to atypical places in the filesystem.
|
||||
# move all the installed files to more conventional directories.
|
||||
install -d ${D}${includedir} ${D}${datadir}/${BPN}/help ${D}${bindir} ${D}${libdir}
|
||||
mv ${D}${prefix}/help/** ${D}${datadir}/${BPN}/help
|
||||
mv ${D}${prefix}/${TARGET_ARCH}/bin/** ${D}${bindir}
|
||||
mv ${D}${prefix}/${TARGET_ARCH}/lib/** ${D}${libdir}
|
||||
|
||||
rm ${D}${bindir}/ecmdVersion
|
||||
|
||||
rmdir ${D}${prefix}/help \
|
||||
${D}${prefix}/${TARGET_ARCH}/lib \
|
||||
${D}${prefix}/${TARGET_ARCH}/bin \
|
||||
${D}${prefix}/${TARGET_ARCH}/perl \
|
||||
${D}${prefix}/${TARGET_ARCH}
|
||||
}
|
||||
|
||||
# ecmd makefile assumes that dependencies are built from left to right.
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
# ecmd doesn't have proper library versioning
|
||||
FILES:${PN}-dev:remove = "${libdir}/lib*.so"
|
||||
FILES:${PN} += "${libdir}/lib*.so"
|
||||
|
||||
RDEPENDS:${PN}-bin = "libecmd"
|
||||
|
||||
# This allows someone to easily use ecmd bins, even if you don’t want them.
|
||||
PACKAGE_BEFORE_PN = "libecmd-bin"
|
||||
FILES:${PN}-bin += "${bindir}"
|
||||
@@ -0,0 +1,24 @@
|
||||
EKB_BRANCH = "main-p10"
|
||||
EKB_URI = "git://git@github.com/open-power/pub-ekb;branch=${EKB_BRANCH};protocol=https"
|
||||
EKB_REV = "7fd7e4d6c66d6ee0aa863ea879c106e86099eb10"
|
||||
|
||||
REQ_ATTRS_XMLS = "hwpf/fapi2/xml/attribute_info/chip_attributes.xml \
|
||||
hwpf/fapi2/xml/attribute_info/common_attributes.xml \
|
||||
hwpf/fapi2/xml/attribute_info/scratch_attributes.xml \
|
||||
hwpf/fapi2/xml/attribute_info/system_attributes.xml \
|
||||
hwpf/fapi2/xml/attribute_info/unit_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_bars_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_chip_ec_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_clock_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_freq_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_hcode_image_build_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_ipl_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_ipl_customize_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_memory_bars_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_nest_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_pervasive_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_qme_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_runn_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_sbe_load_bootloader_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/p10_sbe_attributes.xml \
|
||||
chips/p10/procedures/xml/attribute_info/pm_plat_attributes.xml"
|
||||
@@ -0,0 +1,25 @@
|
||||
SUMMARY = "To get required hardware procedure attribute xml files"
|
||||
DESCRIPTION = "Copy all the required hardware procedures attributes xml file \
|
||||
with respective directory structures"
|
||||
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE_PROLOG;md5=d8e5f403c98fd80dcea90b9cc8cd083c"
|
||||
|
||||
require ekb.inc
|
||||
|
||||
SRC_URI = "${EKB_URI}"
|
||||
SRCREV = "${EKB_REV}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
|
||||
do_install() {
|
||||
|
||||
mkdir -p ${D}${datadir}/${BPN}
|
||||
|
||||
# Copying all required hwp's attributes xml file with respective directory structures
|
||||
(cd ${S} && cp --parents ${REQ_ATTRS_XMLS} ${D}${datadir}/${BPN})
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "Tools for manipulating FFS flash images."
|
||||
DESCRIPTION = "FFS is the FSP Flash File Structure which is also currently \
|
||||
used on OpenPOWER machines for the flash layout."
|
||||
|
||||
HOMEPAGE = "https://github.com/open-power/ffs"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
PACKAGE_BEFORE_PN += "${PN}-ecc ${PN}-deprecated"
|
||||
|
||||
FILES:${PN}-ecc = "${bindir}/ecc"
|
||||
FILES:${PN}-deprecated = "${bindir}"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -0,0 +1,8 @@
|
||||
require ffs.inc
|
||||
|
||||
PV = "v0.1.0+git${SRCPV}"
|
||||
|
||||
SRCREV = "3ec70fbc458e32eef0d0b1de79688b4dc48cbd57"
|
||||
SRC_URI = "git://github.com/open-power/ffs.git;branch=master;protocol=https"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
@@ -0,0 +1,18 @@
|
||||
SUMMARY = "FSI debug tool"
|
||||
DESCRIPTION = "fsidbg is a tool to access remote FSI engines and perform client driver operations"
|
||||
LICENSE = "GPLv3"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
|
||||
|
||||
SRC_URI = "git://github.com/eddiejames/fsidbg.git;branch=master;protocol=https"
|
||||
|
||||
SRCREV = "dfe278065c877724242dfae15a4c627fd2e3611c"
|
||||
PV = "git${SRCREV}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 fsidbg ${D}${bindir}
|
||||
}
|
||||
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
@@ -0,0 +1,19 @@
|
||||
HOMEPAGE = "https://github.com/open-power/guard"
|
||||
SUMMARY = "Guard the faulty components"
|
||||
DESCRIPTION = "Provide a way to guard the faulty component from the system"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
|
||||
inherit pkgconfig meson
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "git://git@github.com/open-power/guard;branch="main";protocol=https"
|
||||
SRCREV = "e000b571c82e854180ddcbda3b76754341c72618"
|
||||
|
||||
DEPENDS = "cli11"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}"
|
||||
PACKAGECONFIG[phal] = "-Ddevtree=enabled, -Ddevtree=disabled, pdata pdbg"
|
||||
@@ -0,0 +1,23 @@
|
||||
HOMEPAGE = "https://github.com/open-power/ipl/"
|
||||
|
||||
SUMMARY = "Initial Program Load steps"
|
||||
DESCRIPTION = "Provides infrastructure to run istep"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "git://git@github.com/open-power/ipl;branch="main";protocol=https"
|
||||
SRCREV = "da64b07adeb2a234c47343642c43f8aab96904a2"
|
||||
|
||||
DEPENDS = " \
|
||||
libekb pdbg autoconf-archive guard pdata \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN} = "phal-devtree"
|
||||
|
||||
EXTRA_OECONF = "CHIP=p10 --enable-libphal"
|
||||
@@ -0,0 +1,27 @@
|
||||
HOMEPAGE = "https://github.com/open-power/libekb_p10"
|
||||
|
||||
SUMMARY = "Hardware Procedure Framework"
|
||||
DESCRIPTION = "Provides infrastructure to run hardware procedures"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
require recipes-bsp/ekb/ekb.inc
|
||||
|
||||
inherit autotools
|
||||
inherit python3native
|
||||
inherit perlnative
|
||||
|
||||
SRCREV_FORMAT = "libekb_ekb"
|
||||
|
||||
SRCREV_libekb = "b62ed7865055145593cc05a3c654dddc5dcbc704"
|
||||
SRCREV_ekb = "${EKB_REV}"
|
||||
|
||||
SRC_URI = "git://git@github.com/open-power/libekb_p10;branch=main;name=libekb;protocol=https \
|
||||
${EKB_URI};name=ekb;destsuffix=git/ekb \
|
||||
"
|
||||
|
||||
DEPENDS = "pdbg libxml-simple-perl-native"
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Command line debug tools like pdbg and ecmd requires
|
||||
# PDBG_DTB environment variable.
|
||||
# attributes tool required PDBG_DTB, PDATA_INFODB and PDATA_ATTR_OVERRIDE
|
||||
|
||||
export PDBG_DTB=/var/lib/phosphor-software-manager/pnor/rw/DEVTREE
|
||||
export PDATA_INFODB=/usr/share/pdata/attributes_info.db
|
||||
export PDATA_ATTR_OVERRIDE=/tmp/devtree_attr_override
|
||||
@@ -0,0 +1,28 @@
|
||||
HOMEPAGE = "https://github.com/open-power/pdata/"
|
||||
|
||||
SUMMARY = "POWER Host data management"
|
||||
DESCRIPTION = "Devicetree based POWER host data management"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit autotools \
|
||||
perlnative
|
||||
|
||||
SRC_URI = "git://git@github.com/open-power/pdata;branch="main";protocol=https"
|
||||
SRCREV = "298b7970fb2268ea1e2de7bfc7db338243dc7fc3"
|
||||
|
||||
DEPENDS = "pdbg \
|
||||
libxml-simple-perl-native \
|
||||
libxml-libxml-perl-native \
|
||||
ekb-native \
|
||||
autoconf-archive \
|
||||
dtc-native"
|
||||
|
||||
PDATA_CONFARG = "CHIP=p10"
|
||||
EXTRA_OECONF = "--enable-gen_attrsinfo ${PDATA_CONFARG}"
|
||||
|
||||
EXTRA_OEMAKE = "EKB=${STAGING_DATADIR_NATIVE}/ekb/"
|
||||
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "Tools and libraries to manage the phal devicetree"
|
||||
DESCRIPTION = "phal(power hardware abstraction layer) devicetree data \
|
||||
modelling mainly includes the host hardware topology and attributes, \
|
||||
which includes the configuration data"
|
||||
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
PDATA_DTB_PATH="${datadir}/pdata"
|
||||
FILES:${PN} += "${PDATA_DTB_PATH}"
|
||||
|
||||
do_install() {
|
||||
|
||||
DTB_FILE_ENV=power-target.sh
|
||||
DTB_FILE_CONF_PATH=${D}${PDATA_DTB_PATH}
|
||||
|
||||
install -d ${DTB_FILE_CONF_PATH}
|
||||
install -m 744 ${THISDIR}/files/${DTB_FILE_ENV} ${DTB_FILE_CONF_PATH}/${DTB_FILE_ENV}
|
||||
install -d ${D}${sysconfdir}/profile.d
|
||||
ln -s ${PDATA_DTB_PATH}/${DTB_FILE_ENV} ${D}${sysconfdir}/profile.d/${DTB_FILE_ENV}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
SUMMARY = "PowerPC FSI Debugger"
|
||||
DESCRIPTION = "pdbg allows JTAG-like debugging of the host POWER processors"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
SRC_URI = "git://github.com/open-power/pdbg.git;branch=master;protocol=https"
|
||||
SRCREV = "3a21a79267bc5faa9e4bc56dc3124be610e9d475"
|
||||
|
||||
DEPENDS += "dtc-native"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit autotools
|
||||
|
||||
BBCLASSEXTEND = "native"
|
||||
@@ -0,0 +1,5 @@
|
||||
SUMMARY = "gard record tool for OpenPower"
|
||||
DESCRIPTION = "gard record tool for OpenPower machines"
|
||||
|
||||
require skiboot.inc
|
||||
EXTRA_OEMAKE:append = " PFLASH_VERSION=${PV} GARD_VERSION=${PV}"
|
||||
@@ -0,0 +1,8 @@
|
||||
SUMMARY = "pflash programmer for OpenPower"
|
||||
DESCRIPTION = "pflash firmware programming tool for OpenPower machines"
|
||||
|
||||
require skiboot.inc
|
||||
EXTRA_OEMAKE:append = " PFLASH_VERSION=${PV} LINKAGE=dynamic"
|
||||
|
||||
#TODO: openbmc/openbmc#1361 - Fix GNU_HASH warnings in pflash
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
@@ -0,0 +1,32 @@
|
||||
HOMEPAGE = "https://github.com/open-power"
|
||||
LICENSE = "Apache-2.0"
|
||||
|
||||
SRC_URI += "git://github.com/open-power/skiboot.git;branch=skiboot-6.5.x;protocol=https"
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/skiboot:"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENCE;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
SRCREV = "aff9301bb341b5387228e82036a7d72e519d8855"
|
||||
PV = "6.5.1+git${SRCPV}"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} SKIBOOT_VERSION=${PV} V=1"
|
||||
|
||||
SKIBOOT_SUBDIR ?= "external/${PN}"
|
||||
|
||||
do_compile() {
|
||||
oe_runmake -C ${SKIBOOT_SUBDIR} all
|
||||
}
|
||||
|
||||
# TODO: remove PREFIX=$prefix when updating to a version that has
|
||||
# http://patchwork.ozlabs.org/patch/923741/ is merged upstream
|
||||
do_install() {
|
||||
oe_runmake -C ${SKIBOOT_SUBDIR} install DESTDIR=${D} prefix=/usr PREFIX=$prefix
|
||||
}
|
||||
|
||||
# libflash.so is a SONAME and is strongly required in the production
|
||||
INSANE_SKIP:${PN}:append = "dev-so"
|
||||
FILES_SOLIBSDEV = ""
|
||||
FILES:${PN}:append = " ${libdir}/libflash.so"
|
||||
@@ -0,0 +1,21 @@
|
||||
SUMMARY = "Recipe for enabling hostboot-debug-tools"
|
||||
DESCRIPTION = "Support to enable running hostboot-debug-tools"
|
||||
LICENSE = "Apache-2.0"
|
||||
PR = "r1"
|
||||
|
||||
inherit allarch
|
||||
|
||||
RDEPENDS:${PN} = " \
|
||||
perl perl-module-pod-text perl-module-lib \
|
||||
perl-module-constant \
|
||||
perl-module-errno perl-module-fcntl \
|
||||
perl-module-file-basename perl-module-file-copy \
|
||||
perl-module-file-find perl-module-file-glob \
|
||||
perl-module-file-path perl-module-file-spec \
|
||||
perl-module-file-temp perl-module-getopt-long \
|
||||
perl-module-re perl-module-text-wrap \
|
||||
perl-module-posix perl-module-bigint \
|
||||
perl-module-integer \
|
||||
"
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
@@ -0,0 +1,35 @@
|
||||
SUMMARY = "Shared OpenPOWER configuration"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit allarch
|
||||
|
||||
SRC_URI = " \
|
||||
file://ipmi-fru-properties-mrw.yaml \
|
||||
file://ipmi-hostboot-fru-mrw.yaml \
|
||||
file://ipmi-hostboot-volatile-sensor-mrw.yaml \
|
||||
file://ipmi-occ-active-sensor-mrw.yaml \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
install -m 0644 -D ipmi-fru-properties-mrw.yaml \
|
||||
${D}${datadir}/${BPN}/ipmi-fru-properties-mrw.yaml
|
||||
install -m 0644 -D ipmi-hostboot-fru-mrw.yaml \
|
||||
${D}${datadir}/${BPN}/ipmi-hostboot-fru-mrw.yaml
|
||||
install -m 0644 -D ipmi-hostboot-volatile-sensor-mrw.yaml \
|
||||
${D}${datadir}/${BPN}/ipmi-hostboot-volatile-sensor-mrw.yaml
|
||||
install -m 0644 -D ipmi-occ-active-sensor-mrw.yaml \
|
||||
${D}${datadir}/${BPN}/ipmi-occ-active-sensor-mrw.yaml
|
||||
}
|
||||
|
||||
FILES:${PN}-dev = " \
|
||||
${datadir}/${BPN}/ipmi-fru-properties-mrw.yaml \
|
||||
${datadir}/${BPN}/ipmi-hostboot-fru-mrw.yaml \
|
||||
${datadir}/${BPN}/ipmi-hostboot-volatile-sensor-mrw.yaml \
|
||||
${datadir}/${BPN}/ipmi-occ-active-sensor-mrw.yaml \
|
||||
"
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
# A template for generating extra-properties.yaml for ipmi-fru-parser, from the
|
||||
# MRW with gen_fru_properties.pl
|
||||
DIMM:
|
||||
xyz.openbmc_project.Inventory.Decorator.Cacheable:
|
||||
Cached: 'false'
|
||||
xyz.openbmc_project.Inventory.Decorator.Replaceable:
|
||||
FieldReplaceable: 'false'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
NODE:
|
||||
xyz.openbmc_project.Inventory.Decorator.Cacheable:
|
||||
Cached: 'false'
|
||||
xyz.openbmc_project.Inventory.Decorator.Replaceable:
|
||||
FieldReplaceable: 'false'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
PROC:
|
||||
xyz.openbmc_project.Inventory.Decorator.Cacheable:
|
||||
Cached: 'false'
|
||||
xyz.openbmc_project.Inventory.Decorator.Replaceable:
|
||||
FieldReplaceable: 'false'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
SYS:
|
||||
xyz.openbmc_project.Inventory.Decorator.Cacheable:
|
||||
Cached: 'false'
|
||||
xyz.openbmc_project.Inventory.Decorator.Replaceable:
|
||||
FieldReplaceable: 'false'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
TPM:
|
||||
xyz.openbmc_project.Inventory.Decorator.Cacheable:
|
||||
Cached: 'false'
|
||||
xyz.openbmc_project.Inventory.Decorator.Replaceable:
|
||||
FieldReplaceable: 'true'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
Present: 'true'
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
DIMM:
|
||||
EntityID: 32
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Product
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Product
|
||||
Model:
|
||||
IPMIFruProperty: Model Number
|
||||
IPMIFruSection: Product
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Product
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Product
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruProperty: Version
|
||||
IPMIFruSection: Product
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Product
|
||||
xyz.openbmc_project.Inventory.Item.Dimm:
|
||||
MEMBUFF:
|
||||
EntityID: 8
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item.MemoryBuffer:
|
||||
NODE:
|
||||
AssociatedTypes:
|
||||
- SYS
|
||||
EntityID: 7
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item.Board:
|
||||
PROC:
|
||||
EntityID: 3
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruProperty: Custom Field 2
|
||||
IPMIFruSection: Board
|
||||
IPMIFruValueDelimiter: '58'
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item.Cpu:
|
||||
SYS:
|
||||
EntityID: 7
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
Model:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Chassis
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Chassis
|
||||
xyz.openbmc_project.Inventory.Item.System:
|
||||
TPM:
|
||||
EntityID: 176
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruProperty: Mfg Date
|
||||
IPMIFruSection: Board
|
||||
Manufacturer:
|
||||
IPMIFruProperty: Manufacturer
|
||||
IPMIFruSection: Board
|
||||
PartNumber:
|
||||
IPMIFruProperty: Part Number
|
||||
IPMIFruSection: Board
|
||||
SerialNumber:
|
||||
IPMIFruProperty: Serial Number
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruProperty: Name
|
||||
IPMIFruSection: Board
|
||||
xyz.openbmc_project.Inventory.Item.Tpm:
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
hb_volatile_sensor:
|
||||
interfaces:
|
||||
xyz.openbmc_project.Object.Enable:
|
||||
Enabled:
|
||||
Offsets:
|
||||
0:
|
||||
assert: false
|
||||
type: bool
|
||||
1:
|
||||
assert: true
|
||||
type: bool
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
path: /org/open_power/control/volatile
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
occ_active_sensor:
|
||||
interfaces:
|
||||
org.open_power.OCC.Status:
|
||||
OccActive:
|
||||
Offsets:
|
||||
0:
|
||||
assert: 'false'
|
||||
deassert: 'true'
|
||||
type: bool
|
||||
1:
|
||||
assert: 'true'
|
||||
deassert: 'false'
|
||||
type: bool
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
readingType: assertion
|
||||
sensorNamePattern: nameLeaf
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
@@ -0,0 +1,49 @@
|
||||
pkg_postinst:${PN}:append() {
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-crash@0.target.wants
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-timeout@0.target.wants
|
||||
|
||||
# The obmc-host-crash target is repurposed for the memory preserving reboot
|
||||
# feature when it is enabled. If not enabled, then install the standard
|
||||
# debug collector checkstop service for basic error reporting
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" != mpreboot ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/openpower-debug-collector-checkstop@0.service"
|
||||
TARGET="../openpower-debug-collector-checkstop@.service"
|
||||
ln -s $TARGET $LINK
|
||||
fi
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-timeout@0.target.wants/openpower-debug-collector-watchdog@0.service"
|
||||
TARGET="../openpower-debug-collector-watchdog@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" != 'phal' ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-timeout@0.target.wants/openpower-debug-collector-watchdog-timeout@0.service"
|
||||
TARGET="../openpower-debug-collector-watchdog-timeout@.service"
|
||||
ln -s $TARGET $LINK
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst:${PN}:append:p10bmc() {
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-stop@0.target.wants
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/clear_hostdumps_poweroff.service"
|
||||
TARGET="../clear_hostdumps_poweroff.service"
|
||||
ln -s $TARGET $LINK
|
||||
}
|
||||
|
||||
pkg_prerm:${PN}:append() {
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" != mpreboot ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/openpower-debug-collector-checkstop@0.service"
|
||||
rm $LINK
|
||||
fi
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-timeout@0.target.wants/openpower-debug-collector-watchdog@0.service"
|
||||
rm $LINK
|
||||
if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" != 'phal' ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-timeout@0.target.wants/openpower-debug-collector-watchdog-timeout@0.service"
|
||||
rm $LINK
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm:${PN}:append:p10bmc() {
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/clear_hostdumps_poweroff.service"
|
||||
rm $LINK
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
SUMMARY = "openpower-debug-collector: install phosphor-logging yaml"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-logging-yaml-provider
|
||||
require openpower-debug-collector.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
@@ -0,0 +1,5 @@
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-debug-collector"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
||||
SRC_URI += "git://github.com/openbmc/openpower-debug-collector;branch=master;protocol=https"
|
||||
SRCREV = "40fccd52408dce41aed05d1a65e867d09e2fcca7"
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=OpenPOWER debug data collector for host checkstop
|
||||
Before=obmc-host-quiesce@%i.target
|
||||
|
||||
[Service]
|
||||
# Adding 10 seconds to allow OCC to collect debug data
|
||||
# before processing checkstop. OCC has to wait 5 seconds
|
||||
# for our driver to stop using the SBEFIFO.
|
||||
ExecStart={base_bindir}/sleep 10
|
||||
ExecStart=/usr/bin/checkstop_app
|
||||
Type=oneshot
|
||||
Restart=no
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=OpenPOWER debug data collector for host %I watchdog timeout
|
||||
Before=obmc-host-quiesce@%i.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/openpower-proc-control collectSBEHBData
|
||||
Type=oneshot
|
||||
Restart=no
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=OpenPOWER debug data collector for host watchdog timeout
|
||||
Before=obmc-host-quiesce@%i.target
|
||||
After=op-stop-instructions@%i.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/watchdog_timeout
|
||||
Type=oneshot
|
||||
Restart=no
|
||||
@@ -0,0 +1,38 @@
|
||||
SUMMARY = "OpenPOWER Debug Collector"
|
||||
DESCRIPTION = "Application to log error during host checkstop and watchdog timeout"
|
||||
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
|
||||
inherit pkgconfig meson \
|
||||
obmc-phosphor-systemd \
|
||||
python3native \
|
||||
phosphor-dbus-yaml
|
||||
|
||||
require ${BPN}.inc
|
||||
require ${BPN}-systemd-links.inc
|
||||
|
||||
DEPENDS += " \
|
||||
phosphor-logging \
|
||||
${PYTHON_PN}-sdbus++-native \
|
||||
cli11 \
|
||||
ipl \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# This provides below applications that are called into in case
|
||||
# of host checkstop, host watchdog and host watchdog-timeout respectively.
|
||||
APPS = " \
|
||||
checkstop \
|
||||
watchdog \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', '', 'watchdog-timeout', d)} \
|
||||
"
|
||||
|
||||
DEBUG_TMPL = "openpower-debug-collector-{0}@.service"
|
||||
SYSTEMD_SERVICE:${PN} += "${@compose_list(d, 'DEBUG_TMPL', 'APPS')}"
|
||||
|
||||
# Do not depend on phosphor-logging for native build
|
||||
DEPENDS:remove:class-native = "phosphor-logging"
|
||||
|
||||
# Do not depend on phosphor-logging for native SDK build
|
||||
DEPENDS:remove:class-nativesdk = "phosphor-logging ipl"
|
||||
@@ -0,0 +1,20 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
install_openpower_plugins() {
|
||||
install ${S}/tools/dreport.d/openpower.d/plugins.d/* ${D}${dreport_plugin_dir}
|
||||
}
|
||||
|
||||
#Link the plugins so that dreport can run them based on dump type
|
||||
python link_openpower_plugins() {
|
||||
source = d.getVar('S', True)
|
||||
source_path = os.path.join(source, "tools", "dreport.d", "openpower.d", "plugins.d")
|
||||
op_plugins = os.listdir(source_path)
|
||||
for op_plugin in op_plugins:
|
||||
op_plugin_name = os.path.join(source_path, op_plugin)
|
||||
install_dreport_user_script(op_plugin_name, d)
|
||||
}
|
||||
|
||||
DEBUG_COLLECTOR_INSTALL_POSTFUNCS ?= ""
|
||||
DEBUG_COLLECTOR_INSTALL_POSTFUNCS:df-openpower ?= "install_openpower_plugins link_openpower_plugins"
|
||||
|
||||
do_install[postfuncs] += "${DEBUG_COLLECTOR_INSTALL_POSTFUNCS}"
|
||||
@@ -0,0 +1 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,5 @@
|
||||
elog:
|
||||
- xyz.openbmc_project.Common.Error.InternalFailure
|
||||
checkstop:
|
||||
- org.open_power.Host.Boot.Error.Checkstop
|
||||
- org.open_power.Host.Boot.Error.WatchdogTimedOut
|
||||
@@ -0,0 +1,76 @@
|
||||
SUMMARY = "OpenPower Software Management"
|
||||
DESCRIPTION = "OpenPower Software Manager provides a set of host software \
|
||||
management daemons. It is suitable for use on a wide variety of OpenPower \
|
||||
platforms."
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-pnor-code-mgmt"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
||||
|
||||
inherit meson pkgconfig systemd
|
||||
inherit obmc-phosphor-dbus-service
|
||||
|
||||
# Static configuration. This is the default if no other layout is specified.
|
||||
inherit ${@bb.utils.contains_any('DISTRO_FEATURES', \
|
||||
'openpower-ubi-fs phosphor-mmc', \
|
||||
'', \
|
||||
'openpower-software-manager-static', d)}
|
||||
|
||||
# UBI layout
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-ubi-fs', \
|
||||
'openpower-software-manager-ubi', \
|
||||
'', d)}
|
||||
# eMMC layout
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'phosphor-mmc', \
|
||||
'openpower-software-manager-mmc', \
|
||||
'', d)}
|
||||
|
||||
# Virtual PNOR
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-virtual-pnor', \
|
||||
'openpower-software-manager-virtual-pnor', \
|
||||
'', d)}
|
||||
|
||||
# PLDM Support
|
||||
inherit ${@bb.utils.contains('DISTRO_FEATURES', 'openpower-hostfw-over-pldm', \
|
||||
'openpower-software-manager-pldm', \
|
||||
'', d)}
|
||||
|
||||
PACKAGECONFIG[verify_pnor_signature] = "-Dverify-signature=enabled, -Dverify-signature=disabled"
|
||||
PACKAGECONFIG[ubifs_layout] = "-Ddevice-type=ubi,,,mtd-utils-ubifs"
|
||||
PACKAGECONFIG[mmc_layout] = "-Ddevice-type=mmc"
|
||||
PACKAGECONFIG[virtual_pnor] = "-Dvpnor=enabled, -Dvpnor=disabled,,bash"
|
||||
PACKAGECONFIG[pldm] = "-Dpldm=enabled, -Dpldm=disabled"
|
||||
|
||||
EXTRA_OEMESON += " \
|
||||
-Dtests=disabled \
|
||||
-Dmsl="v2.0.10 v2.2" \
|
||||
"
|
||||
|
||||
DEPENDS += " \
|
||||
cli11 \
|
||||
dbus \
|
||||
nlohmann-json \
|
||||
openssl \
|
||||
phosphor-dbus-interfaces \
|
||||
phosphor-logging \
|
||||
sdbusplus \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
virtual-obmc-image-manager \
|
||||
"
|
||||
|
||||
FILES:${PN} += "${datadir}/dbus-1/system.d/org.open_power.Software.Host.Updater.conf"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/openpower-pnor-code-mgmt;branch=master;protocol=https"
|
||||
|
||||
SRCREV = "90475e7458facb793b8c32a2148eacf1062a35c5"
|
||||
|
||||
DBUS_SERVICE:${PN} += "org.open_power.Software.Host.Updater.service"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
op-pnor-msl.service \
|
||||
"
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
[Unit]
|
||||
Wants=op-vpd-parser.service
|
||||
After=op-vpd-parser.service
|
||||
@@ -0,0 +1,4 @@
|
||||
FILESEXTRAPATHS:prepend:df-openpower := "${THISDIR}/${PN}:"
|
||||
|
||||
SYSTEMD_OVERRIDE:${PN}-updater:append:df-openpower = \
|
||||
" software-bmc-updater.conf:xyz.openbmc_project.Software.BMC.Updater.service.d/software-bmc-updater.conf"
|
||||
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "FSI Services"
|
||||
DESCRIPTION = "Install FSI related services"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
RDEPENDS:${PN} += "op-proc-control"
|
||||
|
||||
TGTFMT_CHASSIS = "obmc-chassis-poweron@{0}.target"
|
||||
TGTFMT_HOST = "obmc-host-startmin@{0}.target"
|
||||
|
||||
TMPL_SCAN = "fsi-scan@.service"
|
||||
INSTFMT_SCAN = "fsi-scan@{0}.service"
|
||||
FMT_SCAN_CHASSIS = "../${TMPL_SCAN}:${TGTFMT_CHASSIS}.wants/${INSTFMT_SCAN}"
|
||||
FMT_SCAN_HOST = "../${TMPL_SCAN}:${TGTFMT_HOST}.wants/${INSTFMT_SCAN}"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "${TMPL_SCAN} fsi-enable.service fsi-disable.service"
|
||||
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_SCAN_CHASSIS', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT_SCAN_HOST', 'OBMC_HOST_INSTANCES')}"
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Disable FSI
|
||||
Conflicts=fsi-enable.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/openpower-proc-control setSyncFSIClock
|
||||
ExecStart=/bin/sh -c "echo 1 > /sys/devices/platform/gpio-fsi/external_mode"
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Enable FSI
|
||||
Conflicts=fsi-disable.service
|
||||
Wants=fsi-scan@0.service
|
||||
Before=fsi-scan@0.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/bin/sh -c "echo 0 > /sys/devices/platform/gpio-fsi/external_mode"
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
@@ -0,0 +1,21 @@
|
||||
[Unit]
|
||||
Description=Scan FSI devices
|
||||
Wants=obmc-power-on@%i.target
|
||||
After=obmc-power-on@%i.target
|
||||
Wants=obmc-host-start-pre@%i.target
|
||||
Before=obmc-host-start-pre@%i.target
|
||||
After=op-cfam-reset.service
|
||||
Before=start_host@%i.service
|
||||
Conflicts=obmc-chassis-poweroff@%i.target
|
||||
Conflicts=obmc-host-stop@%i.target
|
||||
ConditionPathExists=!/run/openbmc/mpreboot@%i
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/openpower-proc-control scanFSI
|
||||
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=obmc-chassis-poweron@%i.target
|
||||
WantedBy=obmc-host-startmin@%i.target
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=ASPEED LPC boot from PNOR
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/sbin/pnorboot --size 32
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "ASPEED LPC Host Interface Control tool"
|
||||
DESCRIPTION = "Configures the BMC to expose memory regions to the host"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
inherit autotools
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "pnorboot.service"
|
||||
|
||||
SRC_URI = "git://github.com/shenki/aspeed-lpc-control;branch=master;protocol=https"
|
||||
SRCREV = "af42b7ff01e71c0dd4c60214dd46ed487611f36d"
|
||||
@@ -0,0 +1,31 @@
|
||||
SUMMARY = "OpenPOWER Host checkstop monitor application"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
inherit allarch
|
||||
|
||||
DEPENDS += "phosphor-gpio-monitor"
|
||||
RDEPENDS:${PN} += "phosphor-gpio-monitor-monitor"
|
||||
|
||||
# For now, monitoring checkstop is the only usecase
|
||||
OBMC_HOST_MONITOR_INSTANCES = "checkstop"
|
||||
|
||||
# Copies config file having arguments for monitoring host checkstop
|
||||
# via GPIO assertion
|
||||
SYSTEMD_ENVIRONMENT_FILE:${PN} +="obmc/gpio/checkstop"
|
||||
|
||||
# This package is not supplying the unit file and also this is not a native
|
||||
# recipe since state-mgmt needs this package at runtime. Unsetting this below
|
||||
# variable will let the build go through
|
||||
SYSTEMD_SERVICE:${PN} ?=""
|
||||
|
||||
# Install the override to set up a Conflicts relation
|
||||
SYSTEMD_OVERRIDE:${PN} +="checkstop.conf:phosphor-gpio-monitor@checkstop.service.d/checkstop.conf"
|
||||
|
||||
STATES = "startmin"
|
||||
GPIO_MONITOR_TMPL = "phosphor-gpio-monitor@.service"
|
||||
GPIO_MONITOR_TGTFMT = "phosphor-gpio-monitor@{1}.service"
|
||||
CHECKSTOP_MONITOR_FMT = "../${GPIO_MONITOR_TMPL}:obmc-host-{0}@{2}.target.wants/${GPIO_MONITOR_TGTFMT}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list(d, 'CHECKSTOP_MONITOR_FMT', 'STATES', 'OBMC_HOST_MONITOR_INSTANCES', 'OBMC_HOST_INSTANCES')}"
|
||||
@@ -0,0 +1,3 @@
|
||||
[Unit]
|
||||
Conflicts=obmc-host-crash@0.target
|
||||
Conflicts=obmc-host-stop@0.target
|
||||
@@ -0,0 +1,4 @@
|
||||
DEVPATH=/dev/input/by-path/platform-gpio-keys-event
|
||||
KEY=74
|
||||
POLARITY=1
|
||||
TARGET=obmc-host-crash@0.target
|
||||
@@ -0,0 +1,21 @@
|
||||
[Unit]
|
||||
Description=Applies user CFAM register overrides from file
|
||||
Wants=obmc-host-start-pre@%i.target
|
||||
Before=obmc-host-start-pre@%i.target
|
||||
Wants=obmc-power-on@%i.target
|
||||
After=obmc-power-on@%i.target
|
||||
Wants=fsi-scan@%i.service
|
||||
After=fsi-scan@%i.service
|
||||
Conflicts=obmc-chassis-poweroff@%i.target
|
||||
Conflicts=obmc-host-stop@%i.target
|
||||
ConditionPathExists=!/run/openbmc/chassis@%i-on
|
||||
ConditionPathExists=/var/lib/obmc/cfam_overrides
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/openpower-proc-control CFAMOverride
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=obmc-chassis-poweron@%i.target
|
||||
WantedBy=obmc-host-startmin@%i.target
|
||||
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Start host%i SBE
|
||||
Wants=obmc-host-start-pre@%i.target
|
||||
After=obmc-host-start-pre@%i.target
|
||||
Wants=obmc-host-starting@%i.target
|
||||
Before=obmc-host-starting@%i.target
|
||||
Before=obmc-host-started@%i.target
|
||||
Wants=obmc-power-on@%i.target
|
||||
After=obmc-power-on@%i.target
|
||||
Conflicts=obmc-host-stop@%i.target
|
||||
ConditionPathExists=!/run/openbmc/host@%i-on
|
||||
ConditionPathExists=!/run/openbmc/mpreboot@%i
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/openpower-proc-control startHost
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=obmc-host-start@%i.target
|
||||
@@ -0,0 +1,190 @@
|
||||
SUMMARY = "OpenPOWER processor control services installation"
|
||||
PR = "r1"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit allarch
|
||||
|
||||
RDEPENDS:${PN} += "op-proc-control"
|
||||
RDEPENDS:${PN} += "phosphor-state-manager-obmc-targets"
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
pkg_postinst:${PN}() {
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-stop@0.target.wants
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.requires
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.wants
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-diagnostic-mode@0.target.requires
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/op-stop-instructions@0.service"
|
||||
TARGET="../op-stop-instructions@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants/op-clear-sys-dump-active@0.service"
|
||||
TARGET="../op-clear-sys-dump-active@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants/op-stop-instructions@0.service"
|
||||
TARGET="../op-stop-instructions@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-cfam-reset.service"
|
||||
TARGET="../op-cfam-reset.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/xyz.openbmc_project.Control.Host.NMI.service"
|
||||
TARGET="../xyz.openbmc_project.Control.Host.NMI.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires/op-cfam-reset.service"
|
||||
TARGET="../op-cfam-reset.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
# Only install cfam override if p9 system
|
||||
if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.requires
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
|
||||
TARGET="../cfam_override@.service"
|
||||
ln -s $TARGET $LINK
|
||||
fi
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-continue-mpreboot@0.service"
|
||||
TARGET="../op-continue-mpreboot@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
# Only install certain units if phal enabled
|
||||
if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" = phal ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/op-clear-sys-dump-active@0.service"
|
||||
TARGET="../op-clear-sys-dump-active@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/multi-user.target.wants
|
||||
LINK="$D$systemd_system_unitdir/multi-user.target.wants/op-clear-sys-dump-active@0.service"
|
||||
TARGET="../op-clear-sys-dump-active@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-start@0.target.requires
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.requires/phal-reinit-devtree.service"
|
||||
TARGET="../phal-reinit-devtree.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.requires/proc-pre-poweroff@0.service"
|
||||
TARGET="../proc-pre-poweroff@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-reset@0.target.requires/op-reset-host-check@0.service"
|
||||
TARGET="../op-reset-host-check@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/multi-user.target.wants/phal-import-devtree@0.service"
|
||||
TARGET="../phal-import-devtree@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/phal-export-devtree@0.service"
|
||||
TARGET="../phal-export-devtree@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-start@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.wants/phal-create-boottime-guard-indicator.service"
|
||||
TARGET="../phal-create-boottime-guard-indicator.service"
|
||||
ln -s $TARGET $LINK
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants/phal-create-boottime-guard-indicator.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/op-clock-data-logger@0.service"
|
||||
TARGET="../op-clock-data-logger@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.wants/set-spi-mux.service"
|
||||
TARGET="../set-spi-mux.service"
|
||||
ln -s $TARGET $LINK
|
||||
fi
|
||||
|
||||
# If the memory preserving reboot feature is enabled, set it up
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" = mpreboot ]; then
|
||||
# on mpreboot systems, obmc-host-crash@.target is used for mpreboot
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-crash@0.target.requires
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-force-warm-reboot@0.target"
|
||||
TARGET="../obmc-host-force-warm-reboot@.target"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/op-enter-mpreboot@0.service"
|
||||
TARGET="../op-enter-mpreboot@.service"
|
||||
ln -s $TARGET $LINK
|
||||
|
||||
# ensure diagnostic mode is shown for MPREBOOT
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-diagnostic-mode@0.target"
|
||||
TARGET="../obmc-host-diagnostic-mode@.target"
|
||||
ln -s $TARGET $LINK
|
||||
else
|
||||
# If not a mpreboot system, default to quiesce target in crash target to support
|
||||
# older system designs like witherspoon
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-crash@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/obmc-host-quiesce@0.target"
|
||||
TARGET="../obmc-host-quiesce@.target"
|
||||
ln -s $TARGET $LINK
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm:${PN}() {
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-stop@0.target.wants/op-stop-instructions@0.service"
|
||||
rm $LINK
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-cfam-reset.service"
|
||||
rm $LINK
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweron@0.target.requires/op-cfam-reset.service"
|
||||
rm $LINK
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/xyz.openbmc_project.Control.Host.NMI.service"
|
||||
rm $LINK
|
||||
# Only uninstall cfam override if p9 system
|
||||
if [ "${@bb.utils.contains("MACHINE_FEATURES", "p9-cfam-override", "True", "False", d)}" = True ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/cfam_override@0.service"
|
||||
rm $LINK
|
||||
fi
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.requires/op-continue-mpreboot@0.service"
|
||||
rm $LINK
|
||||
|
||||
# Remove phal specific units if enabled
|
||||
if [ "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}" = phal ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.requires/phal-reinit-devtree.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.requires/proc-pre-poweroff@0.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-chassis-poweroff@0.target.wants/set-spi-mux.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/multi-user.target.wants/phal-import-devtree@0.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/phal-export-devtree@0.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-start@0.target.wants/phal-create-boottime-guard-indicator.service"
|
||||
rm $LINK
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-quiesce@0.target.wants/phal-create-boottime-guard-indicator.service"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/op-clock-data-logger@0.service"
|
||||
rm $LINK
|
||||
fi
|
||||
|
||||
# Remove mpreboot specific units if enabled
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'mpreboot', d)}" = mpreboot ]; then
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/obmc-host-force-warm-reboot@0.target"
|
||||
rm $LINK
|
||||
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.requires/op-enter-mpreboot@0.service"
|
||||
rm $LINK
|
||||
else
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-crash@0.target.wants/obmc-host-quiesce@0.target"
|
||||
rm $LINK
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
SUMMARY = "OpenPower procedure control"
|
||||
DESCRIPTION = "Provides procedures that run against the host chipset"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit meson obmc-phosphor-utils pkgconfig
|
||||
inherit systemd
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/openpower-proc-control;branch=master;protocol=https"
|
||||
SRCREV = "3f97eaa4b6f6a4c7cf97a0c80566eb6783d7e8af"
|
||||
|
||||
DEPENDS += " \
|
||||
phosphor-logging \
|
||||
phosphor-dbus-interfaces \
|
||||
libgpiod \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN} += " op-proc-control-systemd-links"
|
||||
|
||||
EXTRA_OEMESON += "-Dtests=disabled"
|
||||
|
||||
# For libpdbg, provided by the pdbg package
|
||||
DEPENDS += "pdbg"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.filter('OBMC_MACHINE_FEATURES', 'phal op-fsi', d)}"
|
||||
PACKAGECONFIG[phal] = "-Dphal=enabled, -Dphal=disabled -Dp9=enabled, ipl pdata"
|
||||
PACKAGECONFIG[op-fsi] = "-Dopenfsi=enabled, -Dopenfsi=disabled"
|
||||
|
||||
# By default all openpower systems support op-fsi
|
||||
PACKAGECONFIG = " op-fsi"
|
||||
|
||||
TEMPLATE = "pcie-poweroff@.service"
|
||||
INSTANCE_FORMAT = "pcie-poweroff@{}.service"
|
||||
INSTANCES = "${@compose_list(d, 'INSTANCE_FORMAT', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE:${PN} = "${TEMPLATE} ${INSTANCES}"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += " \
|
||||
op-cfam-reset.service \
|
||||
op-continue-mpreboot@.service \
|
||||
op-enter-mpreboot@.service \
|
||||
op-stop-instructions@.service \
|
||||
xyz.openbmc_project.Control.Host.NMI.service \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'op-reset-host-check@.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'op-reset-host-clear.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'phal-export-devtree@.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'phal-import-devtree@.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'phal-reinit-devtree.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'proc-pre-poweroff@.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'set-spi-mux.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'phal-create-boottime-guard-indicator.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'op-clear-sys-dump-active@.service', '', d)} \
|
||||
${@bb.utils.contains('MACHINE_FEATURES', 'phal', 'op-clock-data-logger@.service', '', d)} \
|
||||
"
|
||||
@@ -0,0 +1,20 @@
|
||||
SUMMARY = "POWER9 CFAM override"
|
||||
DESCRIPTION = "Applies user CFAM register overrides from file"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/op-host-control:"
|
||||
RDEPENDS:${PN} += "op-proc-control"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
TMPL = "cfam_override@.service"
|
||||
INSTFMT = "cfam_override@{0}.service"
|
||||
TGTFMT = "obmc-chassis-poweron@{0}.target"
|
||||
FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "${TMPL}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
@@ -0,0 +1,25 @@
|
||||
SUMMARY = "POWER9 start host"
|
||||
DESCRIPTION = "Service to start POWER9 IPL through SBE"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit obmc-phosphor-systemd
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/op-host-control:"
|
||||
|
||||
PROVIDES += 'virtual/obmc-host-ctl'
|
||||
RPROVIDES:${PN} += 'virtual-obmc-host-ctl'
|
||||
|
||||
RDEPENDS:${PN} += "op-proc-control \
|
||||
op-proc-control-systemd-links"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
TMPL = "start_host@.service"
|
||||
INSTFMT = "start_host@{0}.service"
|
||||
TGTFMT = "obmc-host-startmin@{0}.target"
|
||||
FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} += "${TMPL}"
|
||||
SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
|
||||
@@ -0,0 +1 @@
|
||||
RDEPENDS:${PN}:append:df-openpower = " cf-fsi-firmware"
|
||||
@@ -0,0 +1,4 @@
|
||||
EXTRA_OEMESON:append:df-openpower = " \
|
||||
-Dredfish-dbus-log=enabled \
|
||||
-Dhttp-body-limit=400 \
|
||||
"
|
||||
@@ -0,0 +1,20 @@
|
||||
SUMMARY = "Hostboot hostfw inventory map for phosphor-ipmi-fru"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-fru
|
||||
inherit native
|
||||
|
||||
SRC_URI += "file://config.yaml"
|
||||
|
||||
PROVIDES += "virtual/phosphor-ipmi-fru-hostfw-config"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${hostfw_datadir}
|
||||
|
||||
install -d ${DEST}
|
||||
install config.yaml ${DEST}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
PROC:
|
||||
EntityID: 3
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Mfg Date"
|
||||
Manufacturer:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Manufacturer"
|
||||
PartNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Serial Number"
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Name"
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruSection: Board
|
||||
# Custom Field 2 is EC.
|
||||
IPMIFruProperty: "Custom Field 2"
|
||||
# Delimiter value in ascii as YAML parser
|
||||
# was not allowing certain characters like ":" as value
|
||||
IPMIFruValueDelimiter: "58"
|
||||
xyz.openbmc_project.Inventory.Item.Cpu:
|
||||
|
||||
SYS:
|
||||
# same entity ID as it is Associated type of NODE
|
||||
EntityID: 7
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
Model:
|
||||
IPMIFruSection: Chassis
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Chassis
|
||||
IPMIFruProperty: "Serial Number"
|
||||
xyz.openbmc_project.Inventory.Item.System:
|
||||
|
||||
NODE:
|
||||
EntityID: 7
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Mfg Date"
|
||||
Manufacturer:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Manufacturer"
|
||||
PartNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Serial Number"
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Name"
|
||||
xyz.openbmc_project.Inventory.Item.Board:
|
||||
AssociatedTypes:
|
||||
- SYS
|
||||
|
||||
DIMM:
|
||||
EntityID: 32
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Mfg Date"
|
||||
Manufacturer:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Manufacturer"
|
||||
PartNumber:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Serial Number"
|
||||
Model:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Model Number"
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Name"
|
||||
xyz.openbmc_project.Inventory.Decorator.Revision:
|
||||
Version:
|
||||
IPMIFruSection: Product
|
||||
IPMIFruProperty: "Version"
|
||||
xyz.openbmc_project.Inventory.Item.Dimm:
|
||||
|
||||
MEMBUFF:
|
||||
EntityID: 8
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Mfg Date"
|
||||
Manufacturer:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Manufacturer"
|
||||
PartNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Serial Number"
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Name"
|
||||
xyz.openbmc_project.Inventory.Item.MemoryBuffer:
|
||||
|
||||
TPM:
|
||||
EntityID: 176
|
||||
Interfaces:
|
||||
xyz.openbmc_project.Inventory.Decorator.Asset:
|
||||
BuildDate:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Mfg Date"
|
||||
Manufacturer:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Manufacturer"
|
||||
PartNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Part Number"
|
||||
SerialNumber:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Serial Number"
|
||||
xyz.openbmc_project.Inventory.Item:
|
||||
PrettyName:
|
||||
IPMIFruSection: Board
|
||||
IPMIFruProperty: "Name"
|
||||
xyz.openbmc_project.Inventory.Item.Tpm:
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
SUMMARY = "Phosphor IPMI plugin for the Host I/O Mapping Protocol"
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-host-ipmi-flash"
|
||||
PR = "r1"
|
||||
PV = "0.1+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=ff331e820fda701d36a8f0efc98adc58"
|
||||
|
||||
inherit meson pkgconfig
|
||||
inherit obmc-phosphor-ipmiprovider-symlink
|
||||
|
||||
DEPENDS += "phosphor-ipmi-host"
|
||||
DEPENDS += "sdbusplus"
|
||||
DEPENDS += "phosphor-logging"
|
||||
DEPENDS += "phosphor-dbus-interfaces"
|
||||
|
||||
TARGET_CFLAGS += "-fpic"
|
||||
|
||||
HOSTIPMI_PROVIDER_LIBRARY += "libhiomap.so"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/openpower-host-ipmi-flash;branch=master;protocol=https"
|
||||
SRCREV = "a917d24ef6881426fa2a15a8fac89b5554a64c49"
|
||||
|
||||
EXTRA_OEMESON:append = " -Dtests=disabled"
|
||||
|
||||
FILES:${PN}:append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
|
||||
FILES:${PN}:append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
|
||||
FILES:${PN}-dev:append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
|
||||
@@ -0,0 +1,19 @@
|
||||
SUMMARY = "Copy error yaml files to known path for elog parsing"
|
||||
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
|
||||
inherit phosphor-dbus-yaml
|
||||
inherit native
|
||||
|
||||
require openpower-ipmi-oem.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_install:append() {
|
||||
SRC=${S}/org/open_power/OCC
|
||||
DEST=${D}${yaml_dir}/org/open_power/OCC
|
||||
install -d ${DEST}
|
||||
install ${SRC}/Metrics.errors.yaml ${DEST}
|
||||
install ${SRC}/Metrics.metadata.yaml ${DEST}
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "OEM sensor config for phosphor-host-ipmid"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-host
|
||||
inherit native
|
||||
|
||||
SRC_URI += "file://openpower-config.yaml"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_install() {
|
||||
DEST=${D}${sensor_yamldir}
|
||||
install -d ${DEST}
|
||||
install openpower-config.yaml ${DEST}/openpower-config.yaml
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
occ_active_sensor:
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
org.open_power.OCC.Status:
|
||||
OccActive:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: "bool"
|
||||
assert: "false"
|
||||
deassert: "true"
|
||||
0x01:
|
||||
type: "bool"
|
||||
assert: "true"
|
||||
deassert: "false"
|
||||
|
||||
hb_volatile_sensor:
|
||||
path: /org/open_power/control/volatile
|
||||
serviceInterface: org.freedesktop.DBus.Properties
|
||||
readingType: assertion
|
||||
mutability: Mutability::Write|Mutability::Read
|
||||
sensorNamePattern: nameLeaf
|
||||
interfaces:
|
||||
xyz.openbmc_project.Object.Enable:
|
||||
Enabled:
|
||||
Offsets:
|
||||
0x00:
|
||||
type: "bool"
|
||||
assert: false
|
||||
0x01:
|
||||
type: "bool"
|
||||
assert: true
|
||||
@@ -0,0 +1,7 @@
|
||||
SUMMARY = "Whitelisted OpenBMC IPMI OEM commands"
|
||||
DESCRIPTION = "Whitelisted OpenBMC IPMI OEM commands for OpenPOWER based systems"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-ipmi-host-whitelist
|
||||
inherit native
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#<NetFn>:<Command>
|
||||
0x3A:0x5A //<OpenPower IBM OEM>:<Host IO Mapping Protocol (HIOMAP)>
|
||||
0x3A:0xF0 //<OpenPower IBM OEM>:<Add Partial eSEL command>
|
||||
@@ -0,0 +1,10 @@
|
||||
SUMMARY = "openpower-ipmi-oem: install phosphor-logging yaml"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit phosphor-logging-yaml-provider
|
||||
require openpower-ipmi-oem.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
@@ -0,0 +1,5 @@
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-host-ipmi-oem"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
|
||||
SRC_URI += "git://github.com/openbmc/openpower-host-ipmi-oem;branch=master;protocol=https"
|
||||
SRCREV = "490126f9ad350b9503e52942ac450a2e831bf3f0"
|
||||
@@ -0,0 +1,36 @@
|
||||
SUMMARY = "Phosphor IPMI plugin for OpenPOWER OEM Commands"
|
||||
DESCRIPTION = "Phosphor IPMI plugin for OpenPOWER OEM Commands"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
inherit obmc-phosphor-ipmiprovider-symlink
|
||||
inherit python3native
|
||||
|
||||
require ${BPN}.inc
|
||||
|
||||
DEPENDS += "phosphor-ipmi-host"
|
||||
DEPENDS += "autoconf-archive-native"
|
||||
DEPENDS += "sdbusplus"
|
||||
DEPENDS += "${PYTHON_PN}-sdbus++-native"
|
||||
DEPENDS += "${PYTHON_PN}-mako-native"
|
||||
DEPENDS += "${PYTHON_PN}-pyyaml-native"
|
||||
DEPENDS += "phosphor-logging"
|
||||
DEPENDS += "phosphor-dbus-interfaces"
|
||||
DEPENDS += "virtual/phosphor-ipmi-inventory-sel"
|
||||
|
||||
TARGET_CFLAGS += "-fpic"
|
||||
|
||||
HOSTIPMI_PROVIDER_LIBRARY += "liboemhandler.so"
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
INVSENSOR_YAML_GEN=${STAGING_DIR_NATIVE}${datadir}/phosphor-ipmi-host/sensor/invsensor.yaml \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
FILES:${PN}:append = " ${libdir}/ipmid-providers/lib*${SOLIBS}"
|
||||
FILES:${PN}:append = " ${libdir}/host-ipmid/lib*${SOLIBS}"
|
||||
FILES:${PN}-dev:append = " ${libdir}/ipmid-providers/lib*${SOLIBSDEV} ${libdir}/ipmid-providers/*.la"
|
||||
@@ -0,0 +1 @@
|
||||
OBMC_IPMI_SENSORS_PROVIDERS:append:df-openpower = " openpower-ipmi-oem-sensor-inventory-mrw-native"
|
||||
@@ -0,0 +1,13 @@
|
||||
SUMMARY = "Hostboot PEL python parsers"
|
||||
DESCRIPTION = "Used by peltool to parse Hostboot UserData sections and SRC details"
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI:p10bmc = "git://git@github.com/open-power/hostboot;branch="master-p10";protocol=ssh"
|
||||
SRCREV:p10bmc = "d796168959bc338e8c8a990403c535ee5d8b31c4"
|
||||
|
||||
inherit setuptools3
|
||||
@@ -0,0 +1,49 @@
|
||||
SUMMARY = "Hardware Diagnostics for POWER Systems"
|
||||
|
||||
DESCRIPTION = \
|
||||
"In the event of a system fatal error reported by the internal system \
|
||||
hardware (processor chips, memory chips, I/O chips, system memory, etc.), \
|
||||
POWER Systems have the ability to diagnose the root cause of the failure \
|
||||
and perform any service action needed to avoid repeated system failures."
|
||||
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-hw-diags"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
|
||||
PR = "r1"
|
||||
PV = "0.1+git${SRCPV}"
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/openpower-hw-diags;branch=master;protocol=https"
|
||||
SRCREV = "7c80e52bdce3b96fd59c5a0e5d6de5119d5831a4"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig meson systemd
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "attn_handler.service"
|
||||
|
||||
DEPENDS = "boost libgpiod pdbg phosphor-logging sdbusplus openpower-libhei \
|
||||
nlohmann-json valijson fmt"
|
||||
|
||||
# This is required so that libhei is installed with the chip data files.
|
||||
RDEPENDS:${PN} += "openpower-libhei"
|
||||
|
||||
# Conditionally pull in PHAL APIs, if available.
|
||||
PACKAGECONFIG ??= "${@bb.utils.filter('MACHINE_FEATURES', 'phal', d)}"
|
||||
PACKAGECONFIG[phal] = "-Dphal=enabled, -Dphal=disabled, ipl pdata"
|
||||
|
||||
# Don't build CI tests
|
||||
EXTRA_OEMESON = "-Dtests=disabled"
|
||||
|
||||
pkg_postinst:${PN}() {
|
||||
mkdir -p $D$systemd_system_unitdir/obmc-host-startmin@0.target.wants
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/attn_handler.service"
|
||||
TARGET="../attn_handler.service"
|
||||
ln -s $TARGET $LINK
|
||||
}
|
||||
|
||||
pkg_prerm:${PN}() {
|
||||
LINK="$D$systemd_system_unitdir/obmc-host-startmin@0.target.wants/attn_handler.service"
|
||||
rm $LINK
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
PR = "r1"
|
||||
PV = "0.1+git${SRCPV}"
|
||||
|
||||
SRC_URI = "git://github.com/openbmc/openpower-libhei;branch=master;protocol=https"
|
||||
SRCREV = "029fe6f1a2cd0967dc139cf3043df05cc97a0569"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
SUMMARY = "Hardware Error Isolator for POWER Systems"
|
||||
|
||||
DESCRIPTION = \
|
||||
"The library provides a set of tools to isolate hardware attentions driven \
|
||||
by POWER Systems chip (processor chips, memory chips, etc.)."
|
||||
|
||||
HOMEPAGE = "https://github.com/openbmc/openpower-libhei"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
|
||||
include openpower-libhei-rev.inc
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig meson
|
||||
inherit perlnative
|
||||
|
||||
DEPENDS = "libxml2-native libxml-simple-perl-native libjson-perl-native"
|
||||
|
||||
# Don't build CI tests
|
||||
EXTRA_OEMESON = "-Dtests=disabled"
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
SUMMARY = "SBE log python parsers"
|
||||
DESCRIPTION = "Used by peltool to parse SBE UserData sections and SRC details"
|
||||
HOMEPAGE = "https://github.ibm.com/open-power/sbe"
|
||||
|
||||
PR = "r1"
|
||||
PV = "1.0+git${SRCPV}"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE_PROLOG;md5=d8e5f403c98fd80dcea90b9cc8cd083c"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
SRC_URI = "git://git@github.com/open-power/sbe;branch="master-p10";protocol=ssh;protocol=https"
|
||||
SRCREV = "f8ee8cfad2cf2a53e78789633ddffc192f5a197e"
|
||||
|
||||
inherit setuptools3
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Init BMC Hostname
|
||||
ConditionPathExists=!/var/lib/first-boot-set-hostname
|
||||
Wants=op-vpd-parser.service
|
||||
After=op-vpd-parser.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/first-boot-set-hostname.sh
|
||||
Type=oneshot
|
||||
RemainAfterExit=Yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
show_error() {
|
||||
if [ -n "${JOURNAL_STREAM-}" ]; then
|
||||
echo "$@" | systemd-cat -t first-boot-set-hostname -p emerg
|
||||
else
|
||||
echo "$@" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
sync_hostname() {
|
||||
MAPPER_IFACE='xyz.openbmc_project.ObjectMapper'
|
||||
MAPPER_PATH='/xyz/openbmc_project/object_mapper'
|
||||
INVENTORY_PATH='/xyz/openbmc_project/inventory'
|
||||
|
||||
BMC_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.Bmc'
|
||||
INV_ASSET_IFACE='xyz.openbmc_project.Inventory.Decorator.Asset'
|
||||
BMC_SN=''
|
||||
BMC_ITEM_PATH=$(busctl --no-pager --verbose call \
|
||||
${MAPPER_IFACE} \
|
||||
${MAPPER_PATH} \
|
||||
${MAPPER_IFACE} \
|
||||
GetSubTree sias \
|
||||
${INVENTORY_PATH} 0 1 ${BMC_ITEM_IFACE} \
|
||||
2>/dev/null | grep ${INVENTORY_PATH} || true)
|
||||
|
||||
# ' STRING "/xyz/openbmc_project/inventory/system/chassis/bmc";'
|
||||
BMC_ITEM_PATH=${BMC_ITEM_PATH#*\"}
|
||||
BMC_ITEM_PATH=${BMC_ITEM_PATH%\"*}
|
||||
|
||||
BMC_ITEM_SERVICE=$(mapper get-service \
|
||||
"${BMC_ITEM_PATH}" 2>/dev/null || true)
|
||||
|
||||
if [ -n "${BMC_ITEM_SERVICE}" ]; then
|
||||
BMC_SN=$(busctl get-property "${BMC_ITEM_SERVICE}" \
|
||||
"${BMC_ITEM_PATH}" \
|
||||
${INV_ASSET_IFACE} SerialNumber)
|
||||
# 's "002B0DH1000"'
|
||||
BMC_SN=${BMC_SN#*\"}
|
||||
BMC_SN=${BMC_SN%\"*}
|
||||
else
|
||||
show_error "No BMC item found in the Inventory. Is VPD EEPROM empty?"
|
||||
fi
|
||||
|
||||
if [ -z "${BMC_SN}" ] ; then
|
||||
show_error "BMC Serial Number empty! Setting Hostname as 'hostname + mac address' "
|
||||
|
||||
NETWORK_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.NetworkInterface'
|
||||
NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \
|
||||
${MAPPER_IFACE} \
|
||||
${MAPPER_PATH} \
|
||||
${MAPPER_IFACE} \
|
||||
GetSubTree sias \
|
||||
${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \
|
||||
2>/dev/null | grep ${INVENTORY_PATH} || true)
|
||||
|
||||
NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH#*\"}
|
||||
NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH%\"*}
|
||||
|
||||
NETWORK_ITEM_OBJ=$(mapper get-service "${NETWORK_ITEM_PATH}" 2>/dev/null || true)
|
||||
|
||||
if [ -z "${NETWORK_ITEM_OBJ}" ]; then
|
||||
show_error 'No Ethernet interface found in the Inventory. Unique hostname not set!'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MAC_ADDR=$(busctl get-property "${NETWORK_ITEM_OBJ}" \
|
||||
"${NETWORK_ITEM_PATH}" \
|
||||
"${NETWORK_ITEM_IFACE}" MACAddress)
|
||||
|
||||
# 's "54:52:01:02:03:04"'
|
||||
MAC_ADDR=${MAC_ADDR#*\"}
|
||||
MAC_ADDR=${MAC_ADDR%\"*}
|
||||
|
||||
hostnamectl set-hostname "$(hostname)-${MAC_ADDR}"
|
||||
else
|
||||
hostnamectl set-hostname "$(hostname)-${BMC_SN}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
sync_hostname
|
||||
|
||||
# Prevent start at next boot time
|
||||
touch "/var/lib/first-boot-set-hostname"
|
||||
@@ -0,0 +1,22 @@
|
||||
SUMMARY = "Init BMC Hostname"
|
||||
DESCRIPTION = "Setup BMC Unique hostname"
|
||||
PR = "r1"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
|
||||
|
||||
inherit allarch systemd
|
||||
|
||||
RDEPENDS:${PN} = "${VIRTUAL-RUNTIME_base-utils}"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "first-boot-set-hostname.service"
|
||||
|
||||
SRC_URI = "file://${BPN}.sh file://${BPN}.service"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
do_install() {
|
||||
sed "s/{MACHINE}/${MACHINE}/" -i ${BPN}.sh
|
||||
install -d ${D}${bindir} ${D}${systemd_system_unitdir}
|
||||
install ${BPN}.sh ${D}${bindir}/
|
||||
install -m 644 ${BPN}.service ${D}${systemd_system_unitdir}/
|
||||
}
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
#!/bin/sh -eu
|
||||
|
||||
show_error() {
|
||||
if [ -n "${JOURNAL_STREAM-}" ]; then
|
||||
echo "$@" | systemd-cat -t first-boot-set-mac -p emerg
|
||||
else
|
||||
echo "$@" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
sync_mac() {
|
||||
|
||||
MAPPER_IFACE='xyz.openbmc_project.ObjectMapper'
|
||||
MAPPER_PATH='/xyz/openbmc_project/object_mapper'
|
||||
INVENTORY_PATH='/xyz/openbmc_project/inventory'
|
||||
NETWORK_ITEM_IFACE='xyz.openbmc_project.Inventory.Item.NetworkInterface'
|
||||
|
||||
# Get the NETWORK ITEM count
|
||||
NETWORK_ITEM_PATH_COUNT=$(busctl --no-pager --verbose call \
|
||||
${MAPPER_IFACE} \
|
||||
${MAPPER_PATH} \
|
||||
${MAPPER_IFACE} \
|
||||
GetSubTree sias \
|
||||
${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \
|
||||
2>/dev/null | grep -c ${INVENTORY_PATH} || true)
|
||||
|
||||
if [ "$NETWORK_ITEM_PATH_COUNT" -gt 1 ]; then
|
||||
# If there are more than 2 NETOWRK ITEM and path must contain $1
|
||||
# for finding the right NETWORK ITEM
|
||||
NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \
|
||||
${MAPPER_IFACE} \
|
||||
${MAPPER_PATH} \
|
||||
${MAPPER_IFACE} \
|
||||
GetSubTree sias \
|
||||
${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \
|
||||
2>/dev/null | grep ${INVENTORY_PATH} | grep "$1" || true)
|
||||
else
|
||||
NETWORK_ITEM_PATH=$(busctl --no-pager --verbose call \
|
||||
${MAPPER_IFACE} \
|
||||
${MAPPER_PATH} \
|
||||
${MAPPER_IFACE} \
|
||||
GetSubTree sias \
|
||||
${INVENTORY_PATH} 0 1 ${NETWORK_ITEM_IFACE} \
|
||||
2>/dev/null | grep ${INVENTORY_PATH} || true)
|
||||
fi
|
||||
|
||||
# ' STRING "/xyz/openbmc_project/inventory/system/chassis/ethernet";'
|
||||
NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH#*\"}
|
||||
NETWORK_ITEM_PATH=${NETWORK_ITEM_PATH%\"*}
|
||||
|
||||
NETWORK_ITEM_SERVICE=$(mapper get-service \
|
||||
"${NETWORK_ITEM_PATH}" 2>/dev/null || true)
|
||||
|
||||
if [ -z "${NETWORK_ITEM_SERVICE}" ]; then
|
||||
show_error 'No Ethernet interface found in the Inventory. Is VPD EEPROM empty?'
|
||||
return
|
||||
fi
|
||||
|
||||
MAC_ADDR=$(busctl get-property "${NETWORK_ITEM_SERVICE}" \
|
||||
"${NETWORK_ITEM_PATH}" \
|
||||
"${NETWORK_ITEM_IFACE}" MACAddress)
|
||||
|
||||
# 's "54:52:01:02:03:04"'
|
||||
MAC_ADDR=${MAC_ADDR#*\"}
|
||||
MAC_ADDR=${MAC_ADDR%\"*}
|
||||
|
||||
if [ -n "${MAC_ADDR}" ]; then
|
||||
busctl set-property xyz.openbmc_project.Network \
|
||||
"/xyz/openbmc_project/network/$1" \
|
||||
xyz.openbmc_project.Network.MACAddress \
|
||||
MACAddress s "${MAC_ADDR}"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
show_error 'No Ethernet interface name is given'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sync_mac "$1"
|
||||
|
||||
# Prevent start at next boot time
|
||||
mkdir -p "/var/lib/first-boot-set-mac"
|
||||
touch "/var/lib/first-boot-set-mac/${1}"
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Init BMC MAC address for NIC %I
|
||||
ConditionPathExists=!/var/lib/first-boot-set-mac/%i
|
||||
Wants=mapper-wait@-xyz-openbmc_project-inventory.service
|
||||
After=mapper-wait@-xyz-openbmc_project-inventory.service
|
||||
Wants=mapper-wait@-xyz-openbmc_project-network-%i.service
|
||||
After=mapper-wait@-xyz-openbmc_project-network-%i.service
|
||||
Wants=op-vpd-parser.service
|
||||
After=op-vpd-parser.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/first-boot-set-mac.sh %i
|
||||
Type=oneshot
|
||||
RemainAfterExit=Yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user