From 93fb535853a24d4c3c42ec425ac92c9d3de13294 Mon Sep 17 00:00:00 2001 From: Brad Bishop Date: Wed, 9 Sep 2015 03:59:20 +0000 Subject: Introducing the Phosphor OpenBMC OE layer -Codifies the IBM vision for an OpenBMC build system. -Structured around a core DBUS API architecture. -Provides implementation flexibility within that architecture. -Provides sample qemuarm BSP layer. --- COPYING.MIT | 17 ++ COPYING.apache-2.0 | 175 +++++++++++++++ LICENSE | 12 + classes/obmc-phosphor-c-daemon.bbclass | 17 ++ classes/obmc-phosphor-chassis-mgmt.bbclass | 3 + classes/obmc-phosphor-event-mgmt.bbclass | 3 + classes/obmc-phosphor-fan-mgmt.bbclass | 3 + classes/obmc-phosphor-flash-mgmt.bbclass | 3 + classes/obmc-phosphor-image.bbclass | 38 ++++ classes/obmc-phosphor-license.bbclass | 4 + classes/obmc-phosphor-policy-mgmt.bbclass | 3 + classes/obmc-phosphor-py-daemon.bbclass | 17 ++ classes/obmc-phosphor-sensor-mgmt.bbclass | 3 + classes/obmc-phosphor-system-mgmt.bbclass | 3 + classes/obmc-phosphor-systemd.bbclass | 14 ++ classes/obmc-phosphor-utils.bbclass | 14 ++ .../images/obmc-phosphor-image-no-sysmgr.bb | 8 + .../recipes-phosphor/images/obmc-phosphor-image.bb | 3 + .../files/obmc-phosphor-chassisd.py | 29 +++ .../files/obmc-phosphor-chassisd.service | 8 + .../obmc-phosphor-chassisd.bb | 6 + .../files/obmc-phosphor-eventd.py | 29 +++ .../files/obmc-phosphor-eventd.service | 8 + .../obmc-phosphor-event/obmc-phosphor-eventd.bb | 6 + .../obmc-phosphor-fan/files/Makefile | 15 ++ .../obmc-phosphor-fan/files/obmc-phosphor-fand.c | 29 +++ .../files/obmc-phosphor-fand.service | 8 + .../obmc-phosphor-fan/obmc-phosphor-fand.bb | 6 + .../files/obmc-phosphor-flashd.py | 29 +++ .../files/obmc-phosphor-flashd.service | 8 + .../obmc-phosphor-flash/obmc-phosphor-flashd.bb | 6 + .../files/obmc-phosphor-policyd.py | 29 +++ .../files/obmc-phosphor-policyd.service | 8 + .../obmc-phosphor-policy/obmc-phosphor-policyd.bb | 6 + .../obmc-phosphor-qemu/files/Makefile | 15 ++ .../obmc-phosphor-qemu/files/obmc-phosphor-qemu.c | 13 ++ .../files/obmc-phosphor-qemu.service | 8 + .../obmc-phosphor-qemu/obmc-phosphor-qemu.bb | 5 + .../files/obmc-phosphor-sensord.py | 29 +++ .../files/obmc-phosphor-sensord.service | 8 + .../obmc-phosphor-sensor/obmc-phosphor-sensord.bb | 6 + .../obmc-phosphor-sys/files/obmc-phosphor-sysd.py | 29 +++ .../files/obmc-phosphor-sysd.service | 8 + .../obmc-phosphor-sys/obmc-phosphor-sysd.bb | 6 + .../packagegroup-obmc-phosphor-apps.bb | 68 ++++++ common/recipes.txt | 1 + conf/bblayers.conf.sample | 17 ++ conf/conf-notes.txt | 6 + conf/distro/openbmc-phosphor.conf | 27 +++ conf/layer.conf | 13 ++ conf/local.conf.sample | 244 +++++++++++++++++++++ conf/machine/include/qemuphosphor.inc | 5 + meta-sample-bsp/conf/layer.conf | 10 + meta-sample-bsp/conf/machine/qemuphosphor.conf | 30 +++ .../formfactor/formfactor/qemuphosphor/machconfig | 3 + .../recipes-bsp/formfactor/formfactor_0.0.bbappend | 2 + .../init-ifupdown/qemuphosphor/interfaces | 5 + .../init-ifupdown/init-ifupdown_1.0.bbappend | 1 + .../xserver-xf86-config/qemuphosphor/xorg.conf | 71 ++++++ .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 1 + .../linux/files/qemuphosphor-preempt-rt.scc | 7 + .../linux/files/qemuphosphor-standard.scc | 7 + .../linux/files/qemuphosphor-tiny.scc | 7 + .../linux/files/qemuphosphor-user-config.cfg | 0 .../linux/files/qemuphosphor-user-features.scc | 0 .../linux/files/qemuphosphor-user-patches.scc | 0 .../recipes-kernel/linux/files/qemuphosphor.cfg | 0 .../recipes-kernel/linux/files/qemuphosphor.scc | 4 + .../recipes-kernel/linux/linux-yocto_%.bbappend | 12 + 69 files changed, 1238 insertions(+) create mode 100644 COPYING.MIT create mode 100644 COPYING.apache-2.0 create mode 100644 LICENSE create mode 100644 classes/obmc-phosphor-c-daemon.bbclass create mode 100644 classes/obmc-phosphor-chassis-mgmt.bbclass create mode 100644 classes/obmc-phosphor-event-mgmt.bbclass create mode 100644 classes/obmc-phosphor-fan-mgmt.bbclass create mode 100644 classes/obmc-phosphor-flash-mgmt.bbclass create mode 100644 classes/obmc-phosphor-image.bbclass create mode 100644 classes/obmc-phosphor-license.bbclass create mode 100644 classes/obmc-phosphor-policy-mgmt.bbclass create mode 100644 classes/obmc-phosphor-py-daemon.bbclass create mode 100644 classes/obmc-phosphor-sensor-mgmt.bbclass create mode 100644 classes/obmc-phosphor-system-mgmt.bbclass create mode 100644 classes/obmc-phosphor-systemd.bbclass create mode 100644 classes/obmc-phosphor-utils.bbclass create mode 100644 common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb create mode 100644 common/recipes-phosphor/images/obmc-phosphor-image.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py create mode 100644 common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service create mode 100644 common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py create mode 100644 common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service create mode 100644 common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-fan/files/Makefile create mode 100644 common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c create mode 100644 common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service create mode 100644 common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py create mode 100644 common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service create mode 100644 common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py create mode 100644 common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service create mode 100644 common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile create mode 100644 common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c create mode 100644 common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service create mode 100644 common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py create mode 100644 common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service create mode 100644 common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb create mode 100644 common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py create mode 100644 common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service create mode 100644 common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb create mode 100644 common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb create mode 100644 common/recipes.txt create mode 100644 conf/bblayers.conf.sample create mode 100644 conf/conf-notes.txt create mode 100644 conf/distro/openbmc-phosphor.conf create mode 100644 conf/layer.conf create mode 100644 conf/local.conf.sample create mode 100644 conf/machine/include/qemuphosphor.inc create mode 100644 meta-sample-bsp/conf/layer.conf create mode 100644 meta-sample-bsp/conf/machine/qemuphosphor.conf create mode 100644 meta-sample-bsp/recipes-bsp/formfactor/formfactor/qemuphosphor/machconfig create mode 100644 meta-sample-bsp/recipes-bsp/formfactor/formfactor_0.0.bbappend create mode 100644 meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown/qemuphosphor/interfaces create mode 100644 meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend create mode 100644 meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuphosphor/xorg.conf create mode 100644 meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-preempt-rt.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-standard.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-tiny.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-config.cfg create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-features.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-patches.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.cfg create mode 100644 meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.scc create mode 100644 meta-sample-bsp/recipes-kernel/linux/linux-yocto_%.bbappend diff --git a/COPYING.MIT b/COPYING.MIT new file mode 100644 index 0000000000..fb950dc69f --- /dev/null +++ b/COPYING.MIT @@ -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. diff --git a/COPYING.apache-2.0 b/COPYING.apache-2.0 new file mode 100644 index 0000000000..67db858821 --- /dev/null +++ b/COPYING.apache-2.0 @@ -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. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..2bf823dc45 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Different components of Phosphor OpenBMC 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. diff --git a/classes/obmc-phosphor-c-daemon.bbclass b/classes/obmc-phosphor-c-daemon.bbclass new file mode 100644 index 0000000000..e21d17c055 --- /dev/null +++ b/classes/obmc-phosphor-c-daemon.bbclass @@ -0,0 +1,17 @@ +# Common code for dbus applications using c. + +inherit obmc-phosphor-systemd +inherit obmc-phosphor-license + +DEPENDS += "glib-2.0" +SRC_URI += " \ + file://Makefile \ + file://${PN}.c \ + " +S = "${WORKDIR}" + +do_install_append() { + # install the binary + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/${PN} ${D}${sbindir} +} diff --git a/classes/obmc-phosphor-chassis-mgmt.bbclass b/classes/obmc-phosphor-chassis-mgmt.bbclass new file mode 100644 index 0000000000..377da0a3c3 --- /dev/null +++ b/classes/obmc-phosphor-chassis-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC chassis management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-chassis-mgmt" diff --git a/classes/obmc-phosphor-event-mgmt.bbclass b/classes/obmc-phosphor-event-mgmt.bbclass new file mode 100644 index 0000000000..01f2edf988 --- /dev/null +++ b/classes/obmc-phosphor-event-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC event management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-event-mgmt" diff --git a/classes/obmc-phosphor-fan-mgmt.bbclass b/classes/obmc-phosphor-fan-mgmt.bbclass new file mode 100644 index 0000000000..973376d6b9 --- /dev/null +++ b/classes/obmc-phosphor-fan-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC fan management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-fan-mgmt" diff --git a/classes/obmc-phosphor-flash-mgmt.bbclass b/classes/obmc-phosphor-flash-mgmt.bbclass new file mode 100644 index 0000000000..d1669499ad --- /dev/null +++ b/classes/obmc-phosphor-flash-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC flash management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-flash-mgmt" diff --git a/classes/obmc-phosphor-image.bbclass b/classes/obmc-phosphor-image.bbclass new file mode 100644 index 0000000000..59be3454e5 --- /dev/null +++ b/classes/obmc-phosphor-image.bbclass @@ -0,0 +1,38 @@ +# Common code for generating Phosphor OpenBMC images. + +# Additional IMAGE_FEATURES available with Phosphor OpenBMC: +# +# - obmc-phosphor-fan-mgmt - Phosphor OpenBMC fan management +# - obmc-phosphor-chassis-mgmt - Phosphor OpenBMC chassis management +# - obmc-phosphor-sensor-mgmt - Phosphor OpenBMC sensor management +# - obmc-phosphor-flash-mgmt - Phosphor OpenBMC flash management +# - obmc-phosphor-event-mgmt - Phosphor OpenBMC event management +# - obmc-phosphor-policy-mgmt - Phosphor OpenBMC policy management +# - obmc-phosphor-system-mgmt - Phosphor OpenBMC system management + +inherit core-image +inherit obmc-phosphor-license + +FEATURE_PACKAGES_obmc-phosphor-fan-mgmt ?= "packagegroup-obmc-phosphor-apps-fan-mgmt" +FEATURE_PACKAGES_obmc-phosphor-chassis-mgmt ?= "packagegroup-obmc-phosphor-apps-chassis-mgmt" +FEATURE_PACKAGES_obmc-phosphor-sensor-mgmt ?= "packagegroup-obmc-phosphor-apps-sensor-mgmt" +FEATURE_PACKAGES_obmc-phosphor-flash-mgmt ?= "packagegroup-obmc-phosphor-apps-flash-mgmt" +FEATURE_PACKAGES_obmc-phosphor-event-mgmt ?= "packagegroup-obmc-phosphor-apps-event-mgmt" +FEATURE_PACKAGES_obmc-phosphor-policy-mgmt ?= "packagegroup-obmc-phosphor-apps-policy-mgmt" +FEATURE_PACKAGES_obmc-phosphor-system-mgmt ?= "packagegroup-obmc-phosphor-apps-system-mgmt" + +# Install entire Phosphor application stack by default +IMAGE_FEATURES += " \ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-sensor-mgmt \ + obmc-phosphor-flash-mgmt \ + obmc-phosphor-event-mgmt \ + obmc-phosphor-policy-mgmt \ + obmc-phosphor-system-mgmt \ + ssh-server-openssh \ + " + +IMAGE_INSTALL += " \ + bash \ + " diff --git a/classes/obmc-phosphor-license.bbclass b/classes/obmc-phosphor-license.bbclass new file mode 100644 index 0000000000..9694f7fa2e --- /dev/null +++ b/classes/obmc-phosphor-license.bbclass @@ -0,0 +1,4 @@ +# Common code for packages distributed without a license that want Apache-2.0. + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${PHOSPHORBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" diff --git a/classes/obmc-phosphor-policy-mgmt.bbclass b/classes/obmc-phosphor-policy-mgmt.bbclass new file mode 100644 index 0000000000..86e0cbefd7 --- /dev/null +++ b/classes/obmc-phosphor-policy-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC policy management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-policy-mgmt" diff --git a/classes/obmc-phosphor-py-daemon.bbclass b/classes/obmc-phosphor-py-daemon.bbclass new file mode 100644 index 0000000000..35c2714153 --- /dev/null +++ b/classes/obmc-phosphor-py-daemon.bbclass @@ -0,0 +1,17 @@ +# Common code for dbus applications using python. + +inherit allarch +inherit obmc-phosphor-systemd +inherit obmc-phosphor-license + +RDEPENDS_${PN} += "python-dbus python-pygobject" +SRC_URI += " \ + file://${PN}.py \ + " +S = "${WORKDIR}" + +do_install_append() { + # install the script + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/${PN}.py ${D}${sbindir}/${PN} +} diff --git a/classes/obmc-phosphor-sensor-mgmt.bbclass b/classes/obmc-phosphor-sensor-mgmt.bbclass new file mode 100644 index 0000000000..9939386c2e --- /dev/null +++ b/classes/obmc-phosphor-sensor-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC sensor management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-sensor-mgmt" diff --git a/classes/obmc-phosphor-system-mgmt.bbclass b/classes/obmc-phosphor-system-mgmt.bbclass new file mode 100644 index 0000000000..4939d2f69d --- /dev/null +++ b/classes/obmc-phosphor-system-mgmt.bbclass @@ -0,0 +1,3 @@ +# Common code for recipes that implement Phosphor OpenBMC system management. + +RPROVIDES_${PN} += "virtual/obmc-phosphor-system-mgmt" diff --git a/classes/obmc-phosphor-systemd.bbclass b/classes/obmc-phosphor-systemd.bbclass new file mode 100644 index 0000000000..7bd2d9d747 --- /dev/null +++ b/classes/obmc-phosphor-systemd.bbclass @@ -0,0 +1,14 @@ +# Common code for Phosphor OpenBMC systemd services. + +inherit systemd + +SYSTEMD_SERVICE_${PN} = "${PN}.service" +SRC_URI += " \ + file://${PN}.service \ + " + +do_install_append() { + # install systemd unit files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/${PN}.service ${D}${systemd_unitdir}/system +} diff --git a/classes/obmc-phosphor-utils.bbclass b/classes/obmc-phosphor-utils.bbclass new file mode 100644 index 0000000000..4f556294bc --- /dev/null +++ b/classes/obmc-phosphor-utils.bbclass @@ -0,0 +1,14 @@ +# Helper functions for checking feature variables. + +inherit utils + +def df_enabled(feature, value, d): + return base_contains("DISTRO_FEATURES", feature, value, "", d) + +def mf_enabled(feature, value, d): + return base_contains("MACHINE_FEATURES", feature, value, "", d) + +def cf_enabled(feature, value, d): + return value if df_enabled(feature, value, d) \ + and mf_enabled(feature, value, d) \ + else "" diff --git a/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb b/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb new file mode 100644 index 0000000000..519db4a456 --- /dev/null +++ b/common/recipes-phosphor/images/obmc-phosphor-image-no-sysmgr.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Sample image recipe using Phosphor, an OpenBMC \ +framework, illustrating the removal of a default image feature." + +require obmc-phosphor-image.bb + +IMAGE_FEATURES_remove = " \ + obmc-phosphor-system-mgmt \ + " diff --git a/common/recipes-phosphor/images/obmc-phosphor-image.bb b/common/recipes-phosphor/images/obmc-phosphor-image.bb new file mode 100644 index 0000000000..8e481a1bd6 --- /dev/null +++ b/common/recipes-phosphor/images/obmc-phosphor-image.bb @@ -0,0 +1,3 @@ +DESCRIPTION = "Image with Phosphor, an OpenBMC framework." + +inherit obmc-phosphor-image diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py new file mode 100644 index 0000000000..a68f2e511c --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-chassisd starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service new file mode 100644 index 0000000000..771151199a --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-chassis/files/obmc-phosphor-chassisd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC chassis management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-chassisd + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb new file mode 100644 index 0000000000..2ff0dcf3f1 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-chassis/obmc-phosphor-chassisd.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Chassis Management" +DESCRIPTION = "Phosphor OpenBMC chassis management reference implementation." +PR = "r1" + +inherit obmc-phosphor-chassis-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py new file mode 100644 index 0000000000..ed45068063 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-eventd starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service new file mode 100644 index 0000000000..8e0266bf42 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-eventd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC event management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-eventd + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb b/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb new file mode 100644 index 0000000000..92b0ded89b --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-eventd.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Event Management" +DESCRIPTION = "Phosphor OpenBMC event management reference implementation." +PR = "r1" + +inherit obmc-phosphor-event-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile b/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile new file mode 100644 index 0000000000..b8f103da85 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-fan/files/Makefile @@ -0,0 +1,15 @@ +EXE = obmc-phosphor-fand +OBJS = $(EXE).o +DEPPKGS = gio-unix-2.0 glib-2.0 +CC = $(CROSS_COMPILE)gcc +INCLUDES += $(shell pkg-config --cflags $(DEPPKGS)) +LIBS += $(shell pkg-config --libs $(DEPPKGS)) + +%.o : %.c + $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ +$(EXE): $(OBJS) + $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ +clean: + rm -f $(OBJS) $(EXE) *.o *.d +distclean: clean + rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~ diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c new file mode 100644 index 0000000000..558ba10bcb --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.c @@ -0,0 +1,29 @@ +/* Contributors Listed Below - COPYRIGHT 2015 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ + +#include +#include +#include + +int main(int argc, char *argv[]) +{ + printf("obmc-phosphor-fand starting...\n"); + + while(1) + sleep(5); + + exit(EXIT_SUCCESS); +} diff --git a/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service new file mode 100644 index 0000000000..0dc2b026a8 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-fan/files/obmc-phosphor-fand.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC fan management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-fand + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb b/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb new file mode 100644 index 0000000000..c83e825fbd --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-fan/obmc-phosphor-fand.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Fan Management." +DESCRIPTION = "Phosphor OpenBMC fan management reference implementation." +PR = "r1" + +inherit obmc-phosphor-fan-mgmt +inherit obmc-phosphor-c-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py new file mode 100644 index 0000000000..5e5dd8f36e --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-flashd starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service new file mode 100644 index 0000000000..2f518f3688 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-flash/files/obmc-phosphor-flashd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC flash management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-flashd + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb b/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb new file mode 100644 index 0000000000..822101963a --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-flash/obmc-phosphor-flashd.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Flash Management" +DESCRIPTION = "Phosphor OpenBMC flash management reference implementation." +PR = "r1" + +inherit obmc-phosphor-flash-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py new file mode 100644 index 0000000000..48f19d46cb --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-policyd starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service new file mode 100644 index 0000000000..9a1f6fe109 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-policy/files/obmc-phosphor-policyd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC policy management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-policyd + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb b/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb new file mode 100644 index 0000000000..6c8d6fce5c --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-policy/obmc-phosphor-policyd.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Policy Management" +DESCRIPTION = "Phosphor OpenBMC policy management reference implementation." +PR = "r1" + +inherit obmc-phosphor-policy-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile b/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile new file mode 100644 index 0000000000..6517af089d --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/Makefile @@ -0,0 +1,15 @@ +EXE = obmc-phosphor-qemu +OBJS = $(EXE).o +PACKAGES= gio-unix-2.0 glib-2.0 +INCLUDES += $(shell pkg-config --cflags $(PACKAGES)) +LIBS += $(shell pkg-config --libs $(PACKAGES)) +CC = $(CROSS_COMPILE)gcc + +%.o : %.c + $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ +$(EXE): $(OBJS) + $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ +clean: + rm -f $(OBJS) $(EXE) *.o *.d +distclean: clean + rm -f *.c~ *.h~ *.sh~ Makefile~ config.mk~ diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c new file mode 100644 index 0000000000..8076132eb2 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.c @@ -0,0 +1,13 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + printf("obmc-phosphor-qemu...\n"); + + while(1) + sleep(5); + + exit(EXIT_SUCCESS); +} diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service new file mode 100644 index 0000000000..0cf4e15f1c --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-qemu/files/obmc-phosphor-qemu.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC QEMU application example + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-qemu + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb b/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb new file mode 100644 index 0000000000..3e4541d131 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-qemu/obmc-phosphor-qemu.bb @@ -0,0 +1,5 @@ +SUMMARY = "Phosphor OpenBMC BSP Example Application" +DESCRIPTION = "Phosphor OpenBMC QEMU BSP example implementation." +PR = "r1" + +inherit obmc-phosphor-c-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py new file mode 100644 index 0000000000..c9771acb4e --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-sensord starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service new file mode 100644 index 0000000000..233ca47098 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sensor/files/obmc-phosphor-sensord.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC sensor management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-sensord + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb new file mode 100644 index 0000000000..382d055c62 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sensor/obmc-phosphor-sensord.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC Sensor Management" +DESCRIPTION = "Phosphor OpenBMC sensor management reference implementation." +PR = "r1" + +inherit obmc-phosphor-sensor-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py new file mode 100644 index 0000000000..c8080ac2c9 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python + +# Contributors Listed Below - COPYRIGHT 2015 +# [+] International Business Machines Corp. +# +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +import time +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +if __name__ == '__main__': + print "obmc-phosphor-watchdogd starting..." + + while 1: + time.sleep(5) diff --git a/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service new file mode 100644 index 0000000000..d3d954dfb4 --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sys/files/obmc-phosphor-sysd.service @@ -0,0 +1,8 @@ +[Unit] +Description=Phosphor OpenBMC system management daemon + +[Service] +ExecStart=/usr/sbin/obmc-phosphor-sysd + +[Install] +WantedBy=multi-user.target diff --git a/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb b/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb new file mode 100644 index 0000000000..99927db95e --- /dev/null +++ b/common/recipes-phosphor/obmc-phosphor-sys/obmc-phosphor-sysd.bb @@ -0,0 +1,6 @@ +SUMMARY = "Phosphor OpenBMC System Management" +DESCRIPTION = "Phosphor OpenBMC system management reference implementation." +PR = "r1" + +inherit obmc-phosphor-system-mgmt +inherit obmc-phosphor-py-daemon diff --git a/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb b/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb new file mode 100644 index 0000000000..634f5d8135 --- /dev/null +++ b/common/recipes-phosphor/packagegroups/packagegroup-obmc-phosphor-apps.bb @@ -0,0 +1,68 @@ +SUMMARY = "Phosphor OpenBMC - Applications" +PR = "r1" + +inherit packagegroup +inherit obmc-phosphor-utils +inherit obmc-phosphor-license + +VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl ?= "virtual/obmc-phosphor-fan-ctl" +VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl ?= "virtual/obmc-phosphor-sensor-ctl" +VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl ?= "virtual/obmc-phosphor-chassis-ctl" +VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl ?= "virtual/obmc-phosphor-flash-ctl" + +PROVIDES = "${PACKAGES}" +PACKAGES = " \ + ${@mf_enabled("obmc-phosphor-fan-mgmt", "packagegroup-obmc-phosphor-apps-fan-mgmt", d)} \ + ${@mf_enabled("obmc-phosphor-chassis-mgmt", "packagegroup-obmc-phosphor-apps-chassis-mgmt", d)} \ + ${@mf_enabled("obmc-phosphor-sensor-mgmt", "packagegroup-obmc-phosphor-apps-sensor-mgmt", d)} \ + ${@mf_enabled("obmc-phosphor-flash-mgmt", "packagegroup-obmc-phosphor-apps-flash-mgmt", d)} \ + ${@df_enabled("obmc-phosphor-event-mgmt", "packagegroup-obmc-phosphor-apps-event-mgmt", d)} \ + ${@df_enabled("obmc-phosphor-policy-mgmt", "packagegroup-obmc-phosphor-apps-policy-mgmt", d)} \ + ${@df_enabled("obmc-phosphor-system-mgmt", "packagegroup-obmc-phosphor-apps-system-mgmt", d)} \ + " + +SUMMARY_packagegroup-obmc-phosphor-apps-fan-mgmt = "Fan management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-fan-mgmt = \ + "${@cf_enabled("obmc-phosphor-fan-mgmt", " \ + virtual/obmc-phosphor-fan-mgmt \ + ${VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl} \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-chassis-mgmt = "Chassis management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-chassis-mgmt = "\ + ${@cf_enabled("obmc-phosphor-chassis-mgmt", " \ + virtual/obmc-phosphor-chassis-mgmt \ + ${VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl} \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-sensor-mgmt = "Sensor management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-sensor-mgmt = "\ + ${@cf_enabled("obmc-phosphor-sensor-mgmt", " \ + virtual/obmc-phosphor-sensor-mgmt \ + ${VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl} \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-flash-mgmt = "Flash management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-flash-mgmt = "\ + ${@cf_enabled("obmc-phosphor-flash-mgmt", " \ + virtual/obmc-phosphor-flash-mgmt \ + ${VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl} \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-event-mgmt = "Event management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-event-mgmt = " \ + ${@df_enabled("obmc-phosphor-event-mgmt", " \ + virtual/obmc-phosphor-event-mgmt \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-policy-mgmt = "Policy management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-policy-mgmt = " \ + ${@df_enabled("obmc-phosphor-policy-mgmt", " \ + virtual/obmc-phosphor-policy-mgmt \ + ", d)}" + +SUMMARY_packagegroup-obmc-phosphor-apps-system-mgmt = "System management support" +RDEPENDS_packagegroup-obmc-phosphor-apps-system-mgmt = " \ + ${@df_enabled("obmc-phosphor-system-mgmt", " \ + virtual/obmc-phosphor-system-mgmt \ + ", d)}" diff --git a/common/recipes.txt b/common/recipes.txt new file mode 100644 index 0000000000..c2c88b7b17 --- /dev/null +++ b/common/recipes.txt @@ -0,0 +1 @@ +recipes-phosphor - Phosphor OpenBMC applications and configuration diff --git a/conf/bblayers.conf.sample b/conf/bblayers.conf.sample new file mode 100644 index 0000000000..caab032ad1 --- /dev/null +++ b/conf/bblayers.conf.sample @@ -0,0 +1,17 @@ +# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf +# changes incompatibly +LCONF_VERSION = "6" + +BBPATH = "${TOPDIR}" +BBFILES ?= "" + +BBLAYERS ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-yocto \ + ##OEROOT##/meta-phosphor \ + ##OEROOT##/meta-phosphor/meta-sample-bsp \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##OEROOT##/meta \ + ##OEROOT##/meta-yocto \ + " diff --git a/conf/conf-notes.txt b/conf/conf-notes.txt new file mode 100644 index 0000000000..3570355725 --- /dev/null +++ b/conf/conf-notes.txt @@ -0,0 +1,6 @@ +Common targets are: + obmc-phosphor-image + +You can also run generated qemu images with a command like: + idir=tmp/deploy/images/qemuphosphor + runqemu qemuarm $idir/zImage-qemuphosphor.bin $idir/obmc-phosphor-image-qemuphosphor.ext4 diff --git a/conf/distro/openbmc-phosphor.conf b/conf/distro/openbmc-phosphor.conf new file mode 100644 index 0000000000..ee457c844b --- /dev/null +++ b/conf/distro/openbmc-phosphor.conf @@ -0,0 +1,27 @@ +require conf/distro/poky.conf + +DISTRO = "openbmc-phosphor" +DISTRO_NAME = "Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro)" +DISTRO_VERSION = "0.1.0" + +IMAGE_FSTYPES += "cpio.gz" + +VIRTUAL-RUNTIME_keymaps = "" + +# Phosphor OpenBMC uses systemd and udev +DISTRO_FEATURES_append = " systemd" +VIRTUAL-RUNTIME_init_manager = "systemd" +DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" +VIRTUAL-RUNTIME_initscripts = "" + +DISTRO_FEATURES = "\ + ipv6 \ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-sensor-mgmt \ + obmc-phosphor-flash-mgmt \ + obmc-phosphor-event-mgmt \ + obmc-phosphor-policy-mgmt \ + obmc-phosphor-system-mgmt \ + ${DISTRO_FEATURES_LIBC} \ + " diff --git a/conf/layer.conf b/conf/layer.conf new file mode 100644 index 0000000000..ffccec0138 --- /dev/null +++ b/conf/layer.conf @@ -0,0 +1,13 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/common/recipes-*/*/*.bb \ + ${LAYERDIR}/common/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "obmc-phosphor" +BBFILE_PATTERN_obmc-phosphor = "^${LAYERDIR}/" +LAYERVERSION_obmc-phosphor = "1" + +# Provide a variable that points the base of the phosphor layer. +PHOSPHORBASE = '${@os.path.normpath("${LAYERDIR}/")}' diff --git a/conf/local.conf.sample b/conf/local.conf.sample new file mode 100644 index 0000000000..e6b6d662bf --- /dev/null +++ b/conf/local.conf.sample @@ -0,0 +1,244 @@ +# +# This file is your local configuration file and is where all local user settings +# are placed. The comments in this file give some guide to the options a new user +# to the system might want to change but pretty much any configuration option can +# be set in this file. More adventurous users can look at local.conf.extended +# which contains other examples of configuration which can be placed in this file +# but new users likely won't need any of them initially. +# +# Lines starting with the '#' character are commented out and in some cases the +# default values are provided as comments to show people example syntax. Enabling +# the option is a question of removing the # character and making any change to the +# variable as required. + +# +# Machine Selection +# +# You need to select a specific machine to target the build with. There are a selection +# of emulated machines available which can boot and run in the QEMU emulator: +# +#MACHINE ?= "qemuarm" +#MACHINE ?= "qemuarm64" +#MACHINE ?= "qemumips" +#MACHINE ?= "qemuppc" +#MACHINE ?= "qemux86" +#MACHINE ?= "qemux86-64" +# +# There are also the following hardware board target machines included for +# demonstration purposes: +# +#MACHINE ?= "beaglebone" +#MACHINE ?= "genericx86" +#MACHINE ?= "genericx86-64" +#MACHINE ?= "mpc8315e-rdb" +#MACHINE ?= "edgerouter" +# +# This sets the default machine to be qemux86 if no other machine is selected: +MACHINE ??= "qemuphosphor" + +# +# Where to place downloads +# +# During a first build the system will download many different source code tarballs +# from various upstream projects. This can take a while, particularly if your network +# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you +# can preserve this directory to speed up this part of subsequent builds. This directory +# is safe to share between multiple builds on the same machine too. +# +# The default is a downloads directory under TOPDIR which is the build directory. +# +#DL_DIR ?= "${TOPDIR}/downloads" + +# +# Where to place shared-state files +# +# BitBake has the capability to accelerate builds based on previously built output. +# This is done using "shared state" files which can be thought of as cache objects +# and this option determines where those files are placed. +# +# You can wipe out TMPDIR leaving this directory intact and the build would regenerate +# from these files if no changes were made to the configuration. If changes were made +# to the configuration, only shared state files where the state was still valid would +# be used (done using checksums). +# +# The default is a sstate-cache directory under TOPDIR. +# +#SSTATE_DIR ?= "${TOPDIR}/sstate-cache" + +# +# Where to place the build output +# +# This option specifies where the bulk of the building work should be done and +# where BitBake should place its temporary files and output. Keep in mind that +# this includes the extraction and compilation of many applications and the toolchain +# which can use Gigabytes of hard disk space. +# +# The default is a tmp directory under TOPDIR. +# +#TMPDIR = "${TOPDIR}/tmp" + +# +# Default policy config +# +# The distribution setting controls which policy settings are used as defaults. +# The default value is fine for general Yocto project use, at least initially. +# Ultimately when creating custom policy, people will likely end up subclassing +# these defaults. +# +DISTRO ?= "openbmc-phosphor" +# As an example of a subclass there is a "bleeding" edge policy configuration +# where many versions are set to the absolute latest code from the upstream +# source control systems. This is just mentioned here as an example, its not +# useful to most new users. +# DISTRO ?= "poky-bleeding" + +# +# Package Management configuration +# +# This variable lists which packaging formats to enable. Multiple package backends +# can be enabled at once and the first item listed in the variable will be used +# to generate the root filesystems. +# Options are: +# - 'package_deb' for debian style deb files +# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) +# - 'package_rpm' for rpm style packages +# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" +# We default to rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK/ADT target architecture +# +# This variable specifies the architecture to build SDK/ADT items for and means +# you can build the SDK packages for architectures other than the machine you are +# running the build on (i.e. building i686 packages on an x86_64 host). +# Supported values are i686 and x86_64 +#SDKMACHINE ?= "i686" + +SANITY_TESTED_DISTROS_append ?= " RedHatEnterpriseWorkstation-6.6" +# +# Extra image configuration defaults +# +# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated +# images. Some of these options are added to certain image types automatically. The +# variable can contain the following options: +# "dbg-pkgs" - add -dbg packages for all installed packages +# (adds symbol information for debugging/profiling) +# "dev-pkgs" - add -dev packages for all installed packages +# (useful if you want to develop against libs in the image) +# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages +# (useful if you want to run the package test suites) +# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.) +# "tools-debug" - add debugging tools (gdb, strace) +# "eclipse-debug" - add Eclipse remote debugging support +# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind) +# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.) +# "debug-tweaks" - make an image suitable for development +# e.g. ssh root access has a blank password +# There are other application targets that can be used here too, see +# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details. +# We default to enabling the debugging tweaks. +EXTRA_IMAGE_FEATURES = "debug-tweaks" + +# +# Additional image features +# +# The following is a list of additional classes to use when building images which +# enable extra features. Some available options which can be included in this variable +# are: +# - 'buildstats' collect build statistics +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# Runtime testing of images +# +# The build system can test booting virtual machine images under qemu (an emulator) +# after any root filesystems are created and run tests against those images. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "1" +# +# Interactive shell configuration +# +# Under certain circumstances the system may need input from you and to do this it +# can launch an interactive shell. It needs to do this since the build is +# multithreaded and needs to be able to handle the case where more than one parallel +# process may require the user's attention. The default is iterate over the available +# terminal types to find one that works. +# +# Examples of the occasions this may happen are when resolving patches which cannot +# be applied, to use the devshell or the kernel menuconfig +# +# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none +# Note: currently, Konsole support only works for KDE 3.x due to the way +# newer Konsole versions behave +#OE_TERMINAL = "auto" +# By default disable interactive patch resolution (tasks will just fail instead): +PATCHRESOLVE = "noop" + +# +# Disk Space Monitoring during the build +# +# Monitor the disk space during the build. If there is less that 1GB of space or less +# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully +# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort +# of the build. The reason for this is that running completely out of space can corrupt +# files and damages the build in ways which may not be easily recoverable. +# It's necesary to monitor /tmp, if there is no space left the build will fail +# with very exotic errors. +BB_DISKMON_DIRS = "\ + STOPTASKS,${TMPDIR},1G,100K \ + STOPTASKS,${DL_DIR},1G,100K \ + STOPTASKS,${SSTATE_DIR},1G,100K \ + STOPTASKS,/tmp,100M,100K \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# used to accelerate build time. This variable can be used to configure the system +# to search other mirror locations for these objects before it builds the data itself. +# +# This can be a filesystem directory, or a remote url such as http or ftp. These +# would contain the sstate-cache results from previous builds (possibly from other +# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the +# cache locations to check for the shared objects. +# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH +# at the end as shown in the examples below. This will be substituted with the +# correct path within the directory structure. +#SSTATE_MIRRORS ?= "\ +#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \ +#file://.* file:///some/local/dir/sstate/PATH" + + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +PACKAGECONFIG_append_pn-qemu-native = " sdl" +PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +ASSUME_PROVIDED += "libsdl-native" + + +# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to +# track the version of this file when it was generated. This can safely be ignored if +# this doesn't mean anything to you. +CONF_VERSION = "1" + +# Set the root password to '0penBmc' +INHERIT += "extrausers" + +EXTRA_USERS_PARAMS = " \ + usermod -p '\$1\$UGMqyqdG\$FZiylVFmRRfl9Z0Ue8G7e/' root; \ + " diff --git a/conf/machine/include/qemuphosphor.inc b/conf/machine/include/qemuphosphor.inc new file mode 100644 index 0000000000..04db4ba9f5 --- /dev/null +++ b/conf/machine/include/qemuphosphor.inc @@ -0,0 +1,5 @@ +# The qemu helper scripts don't work with +# cpio images. + +# Prefer linux-yocto with qemu. +PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" diff --git a/meta-sample-bsp/conf/layer.conf b/meta-sample-bsp/conf/layer.conf new file mode 100644 index 0000000000..90a037c5c6 --- /dev/null +++ b/meta-sample-bsp/conf/layer.conf @@ -0,0 +1,10 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "qemuphosphor" +BBFILE_PATTERN_qemuphosphor = "^${LAYERDIR}/" +LAYERVERSION_qemuphosphor = "1" diff --git a/meta-sample-bsp/conf/machine/qemuphosphor.conf b/meta-sample-bsp/conf/machine/qemuphosphor.conf new file mode 100644 index 0000000000..076ac41c87 --- /dev/null +++ b/meta-sample-bsp/conf/machine/qemuphosphor.conf @@ -0,0 +1,30 @@ +#@TYPE: Machine +#@NAME: qemuphosphor +#@DESCRIPTION: Machine configuration for qemuphosphor systems + +require conf/machine/include/qemu.inc +require conf/machine/include/tune-arm926ejs.inc +require conf/machine/include/qemuphosphor.inc + +KERNEL_IMAGETYPE = "zImage" +SERIAL_CONSOLE = "115200 ttyAMA0" + +MACHINE_FEATURES += "\ + obmc-phosphor-fan-mgmt \ + obmc-phosphor-chassis-mgmt \ + obmc-phosphor-sensor-mgmt \ + obmc-phosphor-flash-mgmt \ + " + +VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl = " \ + obmc-phosphor-qemu \ + " +VIRTUAL-RUNTIME_obmc-phosphor-sensor-ctl = " \ + obmc-phosphor-qemu \ + " +VIRTUAL-RUNTIME_obmc-phosphor-chassis-ctl = " \ + obmc-phosphor-qemu \ + " +VIRTUAL-RUNTIME_obmc-phosphor-flash-ctl = " \ + obmc-phosphor-qemu \ + " diff --git a/meta-sample-bsp/recipes-bsp/formfactor/formfactor/qemuphosphor/machconfig b/meta-sample-bsp/recipes-bsp/formfactor/formfactor/qemuphosphor/machconfig new file mode 100644 index 0000000000..54a7eab923 --- /dev/null +++ b/meta-sample-bsp/recipes-bsp/formfactor/formfactor/qemuphosphor/machconfig @@ -0,0 +1,3 @@ +# Assume a USB mouse and keyboard are connected +HAVE_TOUCHSCREEN=n +HAVE_KEYBOARD=n diff --git a/meta-sample-bsp/recipes-bsp/formfactor/formfactor_0.0.bbappend b/meta-sample-bsp/recipes-bsp/formfactor/formfactor_0.0.bbappend new file mode 100644 index 0000000000..6d4804d127 --- /dev/null +++ b/meta-sample-bsp/recipes-bsp/formfactor/formfactor_0.0.bbappend @@ -0,0 +1,2 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + diff --git a/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown/qemuphosphor/interfaces b/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown/qemuphosphor/interfaces new file mode 100644 index 0000000000..d7409f7a64 --- /dev/null +++ b/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown/qemuphosphor/interfaces @@ -0,0 +1,5 @@ +# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) + +# The loopback interface +auto lo +iface lo inet loopback diff --git a/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend b/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend new file mode 100644 index 0000000000..72d991c7e5 --- /dev/null +++ b/meta-sample-bsp/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuphosphor/xorg.conf b/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuphosphor/xorg.conf new file mode 100644 index 0000000000..d191868ae4 --- /dev/null +++ b/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/qemuphosphor/xorg.conf @@ -0,0 +1,71 @@ + +Section "Files" +EndSection + +Section "InputDevice" + Identifier "Generic Keyboard" + Driver "evdev" + Option "CoreKeyboard" + Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd" + Option "XkbRules" "xorg" + Option "XkbModel" "evdev" + Option "XkbLayout" "us" +EndSection + +Section "InputDevice" + Identifier "Configured Mouse" + Driver "mouse" + + Option "CorePointer" + Option "Device" "/dev/input/mice" + Option "Protocol" "ImPS/2" + Option "ZAxisMapping" "4 5" + Option "Emulate3Buttons" "true" +EndSection + +Section "InputDevice" + Identifier "Qemu Tablet" + Driver "evdev" + Option "CorePointer" + Option "Device" "/dev/input/touchscreen0" + Option "USB" "on" +EndSection + +Section "Device" + Identifier "Graphics Controller" + Driver "fbdev" + +EndSection + +Section "Monitor" + Identifier "Generic Monitor" + Option "DPMS" + # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz + Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync + # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz + ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync + # 640x480 @ 72Hz (VESA) hsync: 37.9kHz + ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync + # 640x480 @ 75Hz (VESA) hsync: 37.5kHz + ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync + # 640x480 @ 85Hz (VESA) hsync: 43.3kHz + ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync +EndSection + +Section "Screen" + Identifier "Default Screen" + Device "Graphics Controller" + Monitor "Generic Monitor" + SubSection "Display" + Modes "640x480" + EndSubSection +EndSection + +Section "ServerLayout" + Identifier "Default Layout" + Screen "Default Screen" + InputDevice "Generic Keyboard" + # InputDevice "Configured Mouse" + InputDevice "QEMU Tablet" + Option "AllowEmptyInput" "no" +EndSection diff --git a/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend b/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend new file mode 100644 index 0000000000..72d991c7e5 --- /dev/null +++ b/meta-sample-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend @@ -0,0 +1 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-preempt-rt.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-preempt-rt.scc new file mode 100644 index 0000000000..b9260c783a --- /dev/null +++ b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-preempt-rt.scc @@ -0,0 +1,7 @@ +define KMACHINE qemuphosphor +define KTYPE preempt-rt +define KARCH arm + +include ktypes/preempt-rt/preempt-rt.scc + +include qemuphosphor.scc diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-standard.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-standard.scc new file mode 100644 index 0000000000..75cd200201 --- /dev/null +++ b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-standard.scc @@ -0,0 +1,7 @@ +define KMACHINE qemuphosphor +define KTYPE standard +define KARCH arm + +include bsp/arm-versatile-926ejs/arm-versatile-926ejs-standard + +include qemuphosphor.scc diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-tiny.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-tiny.scc new file mode 100644 index 0000000000..f479d8130c --- /dev/null +++ b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-tiny.scc @@ -0,0 +1,7 @@ +define KMACHINE qemuphosphor +define KTYPE tiny +define KARCH arm + +include ktypes/tiny/tiny.scc + +include qemuphosphor.scc diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-config.cfg b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-config.cfg new file mode 100644 index 0000000000..e69de29bb2 diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-features.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-features.scc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-patches.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor-user-patches.scc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.cfg b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.cfg new file mode 100644 index 0000000000..e69de29bb2 diff --git a/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.scc b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.scc new file mode 100644 index 0000000000..52144aaca3 --- /dev/null +++ b/meta-sample-bsp/recipes-kernel/linux/files/qemuphosphor.scc @@ -0,0 +1,4 @@ +kconf hardware qemuphosphor.cfg + +kconf hardware qemuphosphor-user-config.cfg +include qemuphosphor-user-patches.scc diff --git a/meta-sample-bsp/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-sample-bsp/recipes-kernel/linux/linux-yocto_%.bbappend new file mode 100644 index 0000000000..ce876ad7bd --- /dev/null +++ b/meta-sample-bsp/recipes-kernel/linux/linux-yocto_%.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +PR := "${PR}.1" + +COMPATIBLE_MACHINE_qemuphosphor = "qemuphosphor" + +KBRANCH_qemuphosphor = "standard/arm-versatile-926ejs" + +KERNEL_FEATURES_append_qemuphosphor += " cfg/smp.scc" + +SRC_URI += "file://qemuphosphor-standard.scc \ + " -- cgit v1.2.3