Merge pull request #304 from mdmillerii/update-uboot
Update u-boot to pick up memory corruption fix
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-bsp/pflash/pflash.bb b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/pflash/pflash.bb
new file mode 100644
index 0000000..5c0cfa4
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/pflash/pflash.bb
@@ -0,0 +1,22 @@
+SUMMARY = "pflash programmer for OpenPower"
+DESCRIPTION = "pflash firmware programming tool for OpenPower machines"
+HOMEPAGE = "https://github.com/open-power"
+LICENSE = "Apache-2.0"
+
+SRC_URI += "git://github.com/open-power/skiboot.git"
+LIC_FILES_CHKSUM = "file://${S}/LICENCE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCREV = "skiboot-5.2.1"
+PV = "5.2.1"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} PFLASH_VERSION=${PV} V=1'
+
+do_compile () {
+ oe_runmake -C external/pflash all
+}
+
+do_install () {
+ oe_runmake -C external/pflash install DESTDIR=${D}
+}
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/images/obmc-phosphor-image.bbappend b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/images/obmc-phosphor-image.bbappend
new file mode 100644
index 0000000..7b8aa6f
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/images/obmc-phosphor-image.bbappend
@@ -0,0 +1,3 @@
+IMAGE_INSTALL += " \
+ inventory-upload \
+"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload.bb b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload.bb
new file mode 100644
index 0000000..c3a2361
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Inventory upload"
+DESCRIPTION = "Inventory upload."
+HOMEPAGE = "http://github.com/openbmc/openpower-inventory-upload"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+inherit allarch
+inherit obmc-phosphor-systemd
+inherit setuptools
+
+RDEPENDS_${PN} += " \
+ python-dbus \
+ python-pygobject \
+ pyphosphor \
+ dtc \
+ "
+
+SRC_URI += "git://github.com/openbmc/openpower-inventory-upload"
+
+SRCREV = "867e058dd246739ab9c93df64e82b7526f42d67f"
+
+S = "${WORKDIR}/git"
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload/inventory-upload.service b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload/inventory-upload.service
new file mode 100644
index 0000000..18d1f4b
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/inventory-upload/inventory-upload/inventory-upload.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=BMC Inventory Upload
+Requires=skeleton.service
+After=skeleton.service
+
+[Service]
+ExecStart=/usr/sbin/inventory_upload.py
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openbmc-machines/meta-openpower/conf/layer.conf b/meta-openbmc-machines/meta-openpower/conf/layer.conf
index a902796..6824543 100644
--- a/meta-openbmc-machines/meta-openpower/conf/layer.conf
+++ b/meta-openbmc-machines/meta-openpower/conf/layer.conf
@@ -1,5 +1,10 @@
# 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 += "openpower"
-BBFILE_PATTERN_openpower = ""
+BBFILE_PATTERN_openpower = "^${LAYERDIR}/"
+LAYERVERSION_openpower = "1"
diff --git a/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc b/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
index fe2b44a..6660a56 100644
--- a/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
+++ b/meta-openbmc-machines/meta-openpower/conf/machine/include/openpower.inc
@@ -4,6 +4,7 @@
obmc-phosphor-sensor-mgmt \
obmc-phosphor-flash-mgmt \
obmc-phosphor-event-mgmt \
+ openpower-pflash \
"
VIRTUAL-RUNTIME_obmc-phosphor-fan-ctl = " \
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/bblayers.conf.sample b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/bblayers.conf.sample
new file mode 100644
index 0000000..c675a18
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/bblayers.conf.sample
@@ -0,0 +1,27 @@
+# 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-openbmc-bsp/meta-aspeed \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed/meta-ast2400 \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-ibm \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-yocto \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-aspeed/meta-ast2400 \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-openpower/meta-ibm \
+ ##OEROOT##/meta-openpower/meta-ibm/meta-firestone \
+ "
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/conf-notes.txt b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/conf-notes.txt
new file mode 100644
index 0000000..9b3c01a
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/layer.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/layer.conf
new file mode 100644
index 0000000..43a06a9
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/layer.conf
@@ -0,0 +1,9 @@
+# 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 += "firestone"
+BBFILE_PATTERN_firestone = ""
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/local.conf.sample b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/local.conf.sample
new file mode 100644
index 0000000..f490a0c
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/local.conf.sample
@@ -0,0 +1,234 @@
+#
+# 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 ??= "firestone"
+
+#
+# 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.*"
+
+#
+# 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"
+
+
+# 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/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
new file mode 100644
index 0000000..42f2d29
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/conf/machine/firestone.conf
@@ -0,0 +1,12 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+require conf/machine/include/ast2400.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+
+UBOOT_MACHINE_firestone = "palmetto_config"
+UBOOT_ENTRYPOINT = "0x40008000"
+UBOOT_LOADADDRESS = "0x40008000"
+
+FLASH_SIZE = "32768"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.cfg b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.cfg
new file mode 100644
index 0000000..2594dec
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.cfg
@@ -0,0 +1,4 @@
+CONFIG_HWMON=y
+CONFIG_SENSORS_NCT7904=y
+CONFIG_EEPROM_AT24=y
+CONFIG_SENSORS_TMP421=y
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.dts b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.dts
new file mode 100644
index 0000000..3b5e0f1
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc/firestone.dts
@@ -0,0 +1 @@
+# use in-tree devtree
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc_%.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc_%.bbappend
new file mode 100644
index 0000000..b67f87c
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-kernel/linux/linux-obmc_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-obmc:"
+SRC_URI += "file://firestone.cfg"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton.bbappend
new file mode 100644
index 0000000..1edbf31
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+SRC_URI += "file://firestone.patch"
+SRC_URI += "file://poweron.patch"
+SRC_URI += "file://occ-path.patch"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/firestone.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/firestone.patch
new file mode 100644
index 0000000..2cb6ab4
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/firestone.patch
@@ -0,0 +1,11 @@
+--- a/skeleton.service 2015-10-28 07:47:55.337712001 -0500
++++ b/skeleton.service 2015-10-28 07:34:05.277712001 -0500
+@@ -2,7 +2,7 @@
+ Description=Temp placeholder for skeleton function
+
+ [Service]
+-ExecStart=/usr/sbin/system_manager.py Palmetto
++ExecStart=/usr/sbin/system_manager.py Firestone
+
+ [Install]
+ WantedBy=multi-user.target
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/occ-path.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/occ-path.patch
new file mode 120000
index 0000000..2fc0f2c
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/occ-path.patch
@@ -0,0 +1 @@
+../../../../meta-garrison/recipes-phosphor/skeleton/skeleton/occ-path.patch
\ No newline at end of file
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/poweron.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/poweron.patch
new file mode 120000
index 0000000..27acaeb
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes-phosphor/skeleton/skeleton/poweron.patch
@@ -0,0 +1 @@
+../../../../meta-garrison/recipes-phosphor/skeleton/skeleton/poweron.patch
\ No newline at end of file
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes.txt b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes.txt
new file mode 100644
index 0000000..3ec3f4a
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-firestone/recipes.txt
@@ -0,0 +1,2 @@
+recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
+recipes-phosphor - Phosphor OpenBMC applications and configuration
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/bblayers.conf.sample b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/bblayers.conf.sample
new file mode 100644
index 0000000..76777e4
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/bblayers.conf.sample
@@ -0,0 +1,27 @@
+# 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-openbmc-bsp/meta-aspeed \
+ ##OEROOT##/meta-openbmc-bsp/meta-aspeed/meta-ast2400 \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-ibm \
+ ##OEROOT##/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison \
+ "
+BBLAYERS_NON_REMOVABLE ?= " \
+ ##OEROOT##/meta \
+ ##OEROOT##/meta-yocto \
+ ##OEROOT##/meta-phosphor \
+ ##OEROOT##/meta-aspeed \
+ ##OEROOT##/meta-aspeed/meta-ast2400 \
+ ##OEROOT##/meta-openpower \
+ ##OEROOT##/meta-openpower/meta-ibm \
+ ##OEROOT##/meta-openpower/meta-ibm/meta-garrison \
+ "
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/conf-notes.txt b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/conf-notes.txt
new file mode 100644
index 0000000..9b3c01a
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+ obmc-phosphor-image
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/layer.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/layer.conf
new file mode 100644
index 0000000..ef803c0
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/layer.conf
@@ -0,0 +1,9 @@
+# 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 += "garrison"
+BBFILE_PATTERN_garrison = ""
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/local.conf.sample b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/local.conf.sample
new file mode 100644
index 0000000..bf2f7fd
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/local.conf.sample
@@ -0,0 +1,234 @@
+#
+# 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 ??= "garrison"
+
+#
+# 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.*"
+
+#
+# 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"
+
+
+# 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/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf
new file mode 100644
index 0000000..4fd03fd
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/conf/machine/garrison.conf
@@ -0,0 +1,12 @@
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
+
+require conf/machine/include/ast2400.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibm.inc
+
+UBOOT_MACHINE_garrison = "palmetto_config"
+UBOOT_ENTRYPOINT = "0x40008000"
+UBOOT_LOADADDRESS = "0x40008000"
+
+FLASH_SIZE = "32768"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.cfg b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.cfg
new file mode 100644
index 0000000..2594dec
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.cfg
@@ -0,0 +1,4 @@
+CONFIG_HWMON=y
+CONFIG_SENSORS_NCT7904=y
+CONFIG_EEPROM_AT24=y
+CONFIG_SENSORS_TMP421=y
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.dts b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.dts
new file mode 100644
index 0000000..3b5e0f1
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc/garrison.dts
@@ -0,0 +1 @@
+# use in-tree devtree
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc_%.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc_%.bbappend
new file mode 100644
index 0000000..676ec9f
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-kernel/linux/linux-obmc_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-obmc:"
+SRC_URI += "file://garrison.cfg"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton.bbappend b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton.bbappend
new file mode 100644
index 0000000..f7f16da
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_append := "${THISDIR}/${PN}:"
+SRC_URI += "file://garrison.patch"
+SRC_URI += "file://poweron.patch"
+SRC_URI += "file://occ-path.patch"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/garrison.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/garrison.patch
new file mode 100644
index 0000000..23aabc5
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/garrison.patch
@@ -0,0 +1,11 @@
+--- a/skeleton.service 2015-10-28 07:47:55.337712001 -0500
++++ b/skeleton.service 2015-10-28 07:34:05.277712001 -0500
+@@ -2,7 +2,7 @@
+ Description=Temp placeholder for skeleton function
+
+ [Service]
+-ExecStart=/usr/sbin/system_manager.py Palmetto
++ExecStart=/usr/sbin/system_manager.py Garrison
+
+ [Install]
+ WantedBy=multi-user.target
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/occ-path.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/occ-path.patch
new file mode 100644
index 0000000..04304e4
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/occ-path.patch
@@ -0,0 +1,20 @@
+--- a/git/bin/sensor_manager2.py
++++ b/git/bin/sensor_manager2.py
+@@ -63,13 +63,13 @@ if __name__ == '__main__':
+ root_sensor.add(obj_path,Sensors.BootProgressSensor(bus,obj_path))
+
+ obj_path = OBJ_PATH+"/host/cpu0/OccStatus"
+- sensor_obj = Sensors.OccStatusSensor(bus,obj_path)
+- sensor_obj.sysfs_attr = "/sys/class/i2c-adapter/i2c-3/3-0050/online"
++ sensor_obj = Sensors.OccStatusSensor(bus,obj_path,
++ "/sys/class/i2c-adapter/i2c-4/4-0050/online")
+ root_sensor.add(obj_path,sensor_obj)
+
+ obj_path = OBJ_PATH+"/host/cpu1/OccStatus"
+- sensor_obj = Sensors.OccStatusSensor(bus,obj_path)
+- sensor_obj.sysfs_attr = "/sys/class/i2c-adapter/i2c-3/3-0051/online"
++ sensor_obj = Sensors.OccStatusSensor(bus,obj_path,
++ "/sys/class/i2c-adapter/i2c-5/5-0050/online")
+ root_sensor.add(obj_path,sensor_obj)
+
+ obj_path = OBJ_PATH+"/host/BootCount"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/poweron.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/poweron.patch
new file mode 100644
index 0000000..c50ce3d
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/poweron.patch
@@ -0,0 +1,113 @@
+--- a/git/objects/power_control_obj.c
++++ b/git/objects/power_control_obj.c
+@@ -17,11 +17,15 @@ static const gchar* instance_name = "power0";
+ static const gchar* dbus_name = "org.openbmc.control.Power";
+
+ //This object will use these GPIOs
+-GPIO power_pin = (GPIO){ "POWER_PIN" };
+-GPIO pgood = (GPIO){ "PGOOD" };
+-GPIO usb_reset = (GPIO){ "USB_RESET" };
+-GPIO pcie_reset = (GPIO){ "PCIE_RESET" };
+-
++GPIO power_pin = (GPIO){ "BMC_POWER_UP" };
++GPIO pgood = (GPIO){ "SYS_PWROK_BUFF" };
++GPIO bmc_wd_clear_pulse_n = (GPIO){ "BMC_WD_CLEAR_PULSE_N" };
++GPIO cm1_oe_r_n = (GPIO){ "CM1_OE_R_N" };
++GPIO bmc_cp0_reset_n = (GPIO){ "BMC_CP0_RESET_N" };
++GPIO bmc_cfam_reset_n_r = (GPIO){ "BMC_CFAM_RESET_N_R" };
++GPIO pcie_reset = (GPIO){ "PEX8718_DEVICES_RESET_N" };
++GPIO cp0_devices_reset_n = (GPIO){ "CP0_DEVICES_RESET_N" };
++GPIO cp1_devices_reset_n = (GPIO){ "CP1_DEVICES_RESET_N" };
+
+ static GDBusObjectManagerServer *manager = NULL;
+
+@@ -67,27 +71,36 @@ poll_pgood(gpointer user_data)
+ {
+ control_power_emit_power_lost(control_power);
+ control_emit_goto_system_state(control,"HOST_POWERED_OFF");
+- rc = gpio_open(&pcie_reset);
+- rc = gpio_write(&pcie_reset,0);
+- gpio_close(&pcie_reset);
+-
+- rc = gpio_open(&usb_reset);
+- rc = gpio_write(&usb_reset,0);
+- gpio_close(&usb_reset);
+-
+ }
+ else
+ {
+ control_power_emit_power_good(control_power);
+ control_emit_goto_system_state(control,"HOST_POWERED_ON");
+- rc = gpio_open(&pcie_reset);
+- rc = gpio_write(&pcie_reset,1);
+- gpio_close(&pcie_reset);
+-
+- rc = gpio_open(&usb_reset);
+- rc = gpio_write(&usb_reset,1);
+- gpio_close(&usb_reset);
+ }
++
++ gpio_open(&cm1_oe_r_n);
++ gpio_write(&cm1_oe_r_n, !gpio);
++ gpio_close(&cm1_oe_r_n);
++
++ gpio_open(&bmc_cp0_reset_n);
++ gpio_write(&bmc_cp0_reset_n, gpio);
++ gpio_close(&bmc_cp0_reset_n);
++
++ gpio_open(&bmc_cfam_reset_n_r);
++ gpio_write(&bmc_cfam_reset_n_r, gpio);
++ gpio_close(&bmc_cfam_reset_n_r);
++
++ gpio_open(&pcie_reset);
++ gpio_write(&pcie_reset, gpio);
++ gpio_close(&pcie_reset);
++
++ gpio_open(&cp0_devices_reset_n);
++ gpio_write(&cp0_devices_reset_n, gpio);
++ gpio_close(&cp0_devices_reset_n);
++
++ gpio_open(&cp1_devices_reset_n);
++ gpio_write(&cp1_devices_reset_n, gpio);
++ gpio_close(&cp1_devices_reset_n);
+ }
+ } else {
+ printf("ERROR PowerControl: GPIO read error (gpio=%s,rc=%d)\n",pgood.name,rc);
+@@ -138,11 +151,13 @@ on_set_power_state(ControlPower *pwr,
+ } else {
+ control_emit_goto_system_state(control,"HOST_POWERING_OFF");
+ }
++
+ error = gpio_open(&power_pin);
+ if(error != GPIO_OK) { break; }
+- error = gpio_write(&power_pin,!state);
++ error = gpio_write(&power_pin, state);
+ if(error != GPIO_OK) { break; }
+ gpio_close(&power_pin);
++
+ control_power_set_state(pwr,state);
+ } while(0);
+ if(error != GPIO_OK)
+@@ -230,10 +245,21 @@ on_bus_acquired(GDBusConnection *connection,
+ if(rc != GPIO_OK) { break; }
+ rc = gpio_init(connection,&pgood);
+ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_wd_clear_pulse_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&cm1_oe_r_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_cp0_reset_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_cfam_reset_n_r);
++ if(rc != GPIO_OK) { break; }
+ rc = gpio_init(connection,&pcie_reset);
+ if(rc != GPIO_OK) { break; }
+- rc = gpio_init(connection,&usb_reset);
++ rc = gpio_init(connection,&cp0_devices_reset_n);
+ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&cp1_devices_reset_n );
++ if(rc != GPIO_OK) { break; }
++
+
+ uint8_t gpio;
+ rc = gpio_open(&pgood);
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes.txt b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes.txt
new file mode 100644
index 0000000..3ec3f4a
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes.txt
@@ -0,0 +1,2 @@
+recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
+recipes-phosphor - Phosphor OpenBMC applications and configuration
diff --git a/meta-phosphor/classes/obmc-phosphor-image.bbclass b/meta-phosphor/classes/obmc-phosphor-image.bbclass
index 164da33..ce54777 100644
--- a/meta-phosphor/classes/obmc-phosphor-image.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-image.bbclass
@@ -42,6 +42,7 @@
i2c-tools \
screen \
inarp \
+ obmc-console \
"
def build_overlay(d):
diff --git a/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch b/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
new file mode 100644
index 0000000..88d0ac0
--- /dev/null
+++ b/meta-phosphor/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch
@@ -0,0 +1,91 @@
+From b4e094381ec846f4387dc6a3c210c2205a8db58a Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Tue, 12 Apr 2016 11:11:40 +0800
+Subject: [PATCH] dropbear: Add -c <command> option to force a specific command
+
+This change adds a -c option to dropbear, to force the session to use a
+specific command, in a similar fashion to OpenSSH's ForceCommand
+configuration option.
+
+This is useful to provide a simple fixed service over ssh, without
+requiring an authorized key file for the per-key forced_command option.
+
+This setting takes precedence over the channel session's provided
+command, and the per-key forced_command setting.
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ runopts.h | 2 ++
+ svr-chansession.c | 12 ++++++++++--
+ svr-runopts.c | 5 +++++
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/runopts.h b/runopts.h
+index f7c869d..ffb573e 100644
+--- a/runopts.h
++++ b/runopts.h
+@@ -114,6 +114,8 @@ typedef struct svr_runopts {
+ buffer * banner;
+ char * pidfile;
+
++ char * command;
++
+ } svr_runopts;
+
+ extern svr_runopts svr_opts;
+diff --git a/svr-chansession.c b/svr-chansession.c
+index bfaf7f6..d6c9330 100644
+--- a/svr-chansession.c
++++ b/svr-chansession.c
+@@ -671,8 +671,16 @@ static int sessioncommand(struct Channel *channel, struct ChanSess *chansess,
+ }
+ }
+
+- /* take public key option 'command' into account */
+- svr_pubkey_set_forced_command(chansess);
++
++ /* take global command into account */
++ if (svr_opts.command) {
++ chansess->original_command = chansess->cmd ? : m_strdup("");
++ chansess->cmd = m_strdup(svr_opts.command);
++ } else {
++ /* take public key option 'command' into account */
++ svr_pubkey_set_forced_command(chansess);
++ }
++
+
+ #ifdef LOG_COMMANDS
+ if (chansess->cmd) {
+diff --git a/svr-runopts.c b/svr-runopts.c
+index 8f60059..f845300 100644
+--- a/svr-runopts.c
++++ b/svr-runopts.c
+@@ -79,6 +79,7 @@ static void printhelp(const char * progname) {
+ #ifdef ENABLE_SVR_REMOTETCPFWD
+ "-k Disable remote port forwarding\n"
+ "-a Allow connections to forwarded ports from any host\n"
++ "-c command Force executed command\n"
+ #endif
+ "-p [address:]port\n"
+ " Listen on specified tcp port (and optionally address),\n"
+@@ -125,6 +126,7 @@ void svr_getopts(int argc, char ** argv) {
+ /* see printhelp() for options */
+ svr_opts.bannerfile = NULL;
+ svr_opts.banner = NULL;
++ svr_opts.command = NULL;
+ svr_opts.forkbg = 1;
+ svr_opts.norootlogin = 0;
+ svr_opts.noauthpass = 0;
+@@ -177,6 +179,9 @@ void svr_getopts(int argc, char ** argv) {
+ case 'b':
+ next = &svr_opts.bannerfile;
+ break;
++ case 'c':
++ next = &svr_opts.command;
++ break;
+ case 'd':
+ case 'r':
+ next = &keyfile;
+--
+2.5.0
+
diff --git a/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend b/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
index 36c0dcd..52a38bd 100644
--- a/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
+++ b/meta-phosphor/common/recipes-core/dropbear/dropbear_%.bbappend
@@ -1,2 +1,3 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI += "file://dropbearkey.service"
+SRC_URI += "file://dropbearkey.service \
+ file://0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch"
diff --git a/meta-phosphor/common/recipes-core/os-release/os-release.bbappend b/meta-phosphor/common/recipes-core/os-release/os-release.bbappend
index b112c50..3dd203b 100644
--- a/meta-phosphor/common/recipes-core/os-release/os-release.bbappend
+++ b/meta-phosphor/common/recipes-core/os-release/os-release.bbappend
@@ -6,11 +6,11 @@
pass
python() {
- version_id = run_git(d, 'describe --abbrev=0')
+ version_id = run_git(d, 'describe --dirty')
if version_id:
d.setVar('VERSION_ID', version_id)
- build_id = run_git(d, 'describe --dirty')
+ build_id = run_git(d, 'describe --abbrev=0')
if build_id:
d.setVar('BUILD_ID', build_id)
}
diff --git a/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.4.bb b/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.4.bb
index 2e2c9ce..09d40e5 100644
--- a/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.4.bb
+++ b/meta-phosphor/common/recipes-kernel/linux/linux-obmc_4.4.bb
@@ -10,7 +10,7 @@
LINUX_VERSION ?= "4.4"
LINUX_VERSION_EXTENSION ?= "-${SRCREV}"
-SRCREV="openbmc-20160329-2"
+SRCREV="openbmc-20160521-1"
PV = "${LINUX_VERSION}+git${SRCPV}"
diff --git a/meta-phosphor/common/recipes-phosphor/dbus/obmc-mapper.bb b/meta-phosphor/common/recipes-phosphor/dbus/obmc-mapper.bb
index ab6dc98..615207a 100644
--- a/meta-phosphor/common/recipes-phosphor/dbus/obmc-mapper.bb
+++ b/meta-phosphor/common/recipes-phosphor/dbus/obmc-mapper.bb
@@ -18,6 +18,6 @@
"
SRC_URI += "git://github.com/openbmc/phosphor-objmgr"
-SRCREV = "956dd44fe5c8377ec90cef393f65033d59e082b0"
+SRCREV = "f7aa902e465bfe1cf19b9079f1555633a88e7190"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/dbus/obmc-rest.bb b/meta-phosphor/common/recipes-phosphor/dbus/obmc-rest.bb
index f66dd26..af69578 100644
--- a/meta-phosphor/common/recipes-phosphor/dbus/obmc-rest.bb
+++ b/meta-phosphor/common/recipes-phosphor/dbus/obmc-rest.bb
@@ -13,13 +13,14 @@
python-xml \
python-dbus \
python-pygobject \
- obmc-mapper \
- python-rocket \
- python-bottle \
- python-spwd \
+ obmc-mapper \
+ python-rocket \
+ python-bottle \
+ python-spwd \
+ pyphosphor \
"
SRC_URI += "git://github.com/openbmc/phosphor-rest-server"
-SRCREV = "fe90e0c579edbc19699e5aa7abbe4dd29b4dd112"
+SRCREV = "b41507f3b9c9a79ccd0ef6f48ac839b306a604b7"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb
index 06ee00e..ce5fc03 100644
--- a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb
+++ b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb
@@ -18,7 +18,7 @@
SRC_URI += "git://github.com/openbmc/ipmi-fru-parser"
-SRCREV = "a14239a201443222906864273449a39cfa84118e"
+SRCREV = "9702c89eba59fbf2c665a693317ba0a4f4843872"
FILES_${PN} += "${libdir}/host-ipmid/*.so"
FILES_${PN}-dbg += "${libdir}/host-ipmid/.debug"
diff --git a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb
index 1a6959a..f9d6462 100644
--- a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb
+++ b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb
@@ -19,7 +19,7 @@
SRC_URI += "git://github.com/openbmc/openpower-host-ipmi-oem"
-SRCREV = "345932324ce63d42fd88e762cb539c864167b008"
+SRCREV = "ca99efb722ff757707e27f91ba6af293d7e09753"
FILES_${PN} += "${libdir}/host-ipmid/*.so"
FILES_${PN}-dbg += "${libdir}/host-ipmid/.debug"
diff --git a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid.bb b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid.bb
index ba1eaaf..1825eb9 100644
--- a/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid.bb
+++ b/meta-phosphor/common/recipes-phosphor/host-ipmid/host-ipmid.bb
@@ -19,7 +19,7 @@
RDEPENDS_${PN} += "network"
SRC_URI += "git://github.com/openbmc/phosphor-host-ipmid"
-SRCREV = "b7e01a16951e868b076f3d68ecb0688a5209aa5b"
+SRCREV = "c6a5b9dc33a8faa8bb8b907e186325b928978510"
S = "${WORKDIR}/git"
INSTALL_NAME = "ipmid"
diff --git a/meta-phosphor/common/recipes-phosphor/network/network.bb b/meta-phosphor/common/recipes-phosphor/network/network.bb
index 1c48c05..7129898 100644
--- a/meta-phosphor/common/recipes-phosphor/network/network.bb
+++ b/meta-phosphor/common/recipes-phosphor/network/network.bb
@@ -10,7 +10,7 @@
SRC_URI += "git://github.com/openbmc/phosphor-networkd"
-SRCREV = "448e8d839d37532d2667b9a38bb3aadb6c804e2e"
+SRCREV = "fbf7d68e78684739ff860f20f6cbdd0932003912"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
index 6fe3bde..ce030fa 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console.bb
@@ -10,12 +10,30 @@
TARGET_CFLAGS += "-fpic -O2"
SRC_URI += "git://github.com/openbmc/obmc-console"
-SRC_URI += "file://${PN}.conf"
-SRCREV = "54e9569d14b127806e45e1c17ec4a1f5f7271d3f"
+SRC_URI += "file://${PN}.conf \
+ file://obmc-console-ssh.socket \
+ file://obmc-console-ssh@.service"
+
+SRCREV = "bc1e893375e4887ef7676c5738779c4a2f5b1935"
+
+FILES_${PN} += "${systemd_unitdir}/system/obmc-console-ssh@.service \
+ ${systemd_unitdir}/system/obmc-console-ssh.socket"
+
+SYSTEMD_SERVICE_${PN} = "${BPN}.service ${BPN}-ssh.socket"
do_install_append() {
install -m 0755 -d ${D}${sysconfdir}
install -m 0644 ${WORKDIR}/${PN}.conf ${D}${sysconfdir}/${PN}.conf
+
+ # add additional unit files for ssh-based console server
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/obmc-console-ssh@.service ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/obmc-console-ssh.socket ${D}${systemd_unitdir}/system
+ sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+ -e 's,@BINDIR@,${bindir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/obmc-console-ssh@.service \
+ ${D}${systemd_unitdir}/system/obmc-console-ssh.socket
}
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
new file mode 100644
index 0000000..3fbfd99
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
@@ -0,0 +1,11 @@
+[Unit]
+Description=OpenBMC console ssh server socket
+Conflicts=obmc-console-ssh.service
+Requires=obmc-console.service
+
+[Socket]
+ListenStream=2200
+Accept=yes
+
+[Install]
+WantedBy=sockets.target
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
new file mode 100644
index 0000000..74d5a7a
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=OBMC console SSH Per-Connection Server
+Wants=obmc-console.service
+
+[Service]
+Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear"
+EnvironmentFile=-/etc/default/dropbear
+ExecStart=-@SBINDIR@/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key -c @BINDIR@/obmc-console-client $DROPBEAR_EXTRA_ARGS
+ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
+StandardInput=socket
+KillMode=process
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service
index 8e0266b..2209629 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service
+++ b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service
@@ -2,7 +2,7 @@
Description=Phosphor OpenBMC event management daemon
[Service]
-ExecStart=/usr/sbin/obmc-phosphor-eventd
+ExecStart=/usr/sbin/obmc-phosphor-eventd -s 200000 -t 128
[Install]
WantedBy=multi-user.target
diff --git a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb
index 5ce5818..307fe90 100644
--- a/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb
+++ b/meta-phosphor/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb
@@ -13,7 +13,7 @@
SRC_URI += "git://github.com/openbmc/phosphor-event"
-SRCREV = "127c8cf513ba9ed6bcc460fbea29b36eb8d23bac"
+SRCREV = "d8fbb0a07dc0c68b3f5d074bddca96eccaca14b4"
RDEPENDS_${PN} += "libsystemd"
DEPENDS += "systemd"
diff --git a/meta-phosphor/common/recipes-phosphor/rest-dbus/rest-dbus.bb b/meta-phosphor/common/recipes-phosphor/rest-dbus/rest-dbus.bb
index fa551f5..7f990aa 100644
--- a/meta-phosphor/common/recipes-phosphor/rest-dbus/rest-dbus.bb
+++ b/meta-phosphor/common/recipes-phosphor/rest-dbus/rest-dbus.bb
@@ -13,7 +13,7 @@
python-json \
python-dbus \
python-xml \
- obmc-mapper \
+ pyphosphor \
"
SRC_URI += " \
@@ -21,6 +21,6 @@
file://rest-dbus.service \
"
-SRCREV = "b10a57e2f34e94b13697328cc22f876f738feb0e"
+SRCREV = "64077101d9f2b6e51c897db82ffc0a399a34d15b"
S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/skeleton/pyphosphor.bb b/meta-phosphor/common/recipes-phosphor/skeleton/pyphosphor.bb
new file mode 100644
index 0000000..22f059e
--- /dev/null
+++ b/meta-phosphor/common/recipes-phosphor/skeleton/pyphosphor.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Phosphor python library"
+DESCRIPTION = "Phosphor python library."
+HOMEPAGE = "http://github.com/openbmc/pyobmc"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+inherit allarch
+inherit setuptools
+
+SRC_URI += "git://github.com/openbmc/pyphosphor"
+
+SRCREV = "7c8263573fb5ed25001db9c78eb4a149c057358a"
+
+S = "${WORKDIR}/git"
diff --git a/meta-phosphor/common/recipes-phosphor/skeleton/skeleton.bb b/meta-phosphor/common/recipes-phosphor/skeleton/skeleton.bb
index 08e4d33..9d81279 100644
--- a/meta-phosphor/common/recipes-phosphor/skeleton/skeleton.bb
+++ b/meta-phosphor/common/recipes-phosphor/skeleton/skeleton.bb
@@ -16,12 +16,19 @@
RDEPENDS_${PN} += "python-subprocess python-compression libsystemd"
SRC_URI += "git://github.com/openbmc/skeleton"
-SRCREV = "27ca44ad1a96f90d42dcb50183700e5ca5358642"
+# RDEPEND on pflash if the openpower-pflash machine feature is set.
+PACKAGECONFIG ??= "${@bb.utils.contains('MACHINE_FEATURES', 'openpower-pflash', 'openpower-pflash', '', d)}"
+PACKAGECONFIG[openpower-pflash] = ",,,pflash"
+
+SRCREV = "2f9ee83356fba3f6f843bf2584f3e7e95763ec98"
S = "${WORKDIR}"
do_compile() {
oe_runmake -C git
+
+ # Remove deprecated files.
+ rm ${S}/git/bin/pflash
}
do_install() {
diff --git a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
index 60ed088..260cc90 100644
--- a/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
+++ b/meta-phosphor/conf/machine/include/obmc-bsp-common.inc
@@ -14,6 +14,7 @@
MACHINEOVERRIDES =. "openbmc:"
IMAGE_FSTYPES += "overlay"
+IMAGE_FSTYPES += "cpio.${INITRAMFS_CTYPE}.u-boot"
IMAGE_INSTALL += "u-boot-fw-utils"
IMAGE_CLASSES += "obmc-phosphor-image_types_uboot"