Merge pull request #304 from mdmillerii/update-uboot

Update u-boot to pick up memory corruption fix
diff --git a/classes/obmc-phosphor-image.bbclass b/classes/obmc-phosphor-image.bbclass
index 164da33..ce54777 100644
--- a/classes/obmc-phosphor-image.bbclass
+++ b/classes/obmc-phosphor-image.bbclass
@@ -42,6 +42,7 @@
         i2c-tools \
         screen \
         inarp \
+        obmc-console \
         "
 
 def build_overlay(d):
diff --git a/common/recipes-core/dropbear/dropbear/0001-dropbear-Add-c-command-option-to-force-a-specific-co.patch b/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/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/common/recipes-core/dropbear/dropbear_%.bbappend b/common/recipes-core/dropbear/dropbear_%.bbappend
index 36c0dcd..52a38bd 100644
--- a/common/recipes-core/dropbear/dropbear_%.bbappend
+++ b/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/common/recipes-core/os-release/os-release.bbappend b/common/recipes-core/os-release/os-release.bbappend
index b112c50..3dd203b 100644
--- a/common/recipes-core/os-release/os-release.bbappend
+++ b/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/common/recipes-kernel/linux/linux-obmc_4.4.bb b/common/recipes-kernel/linux/linux-obmc_4.4.bb
index 2e2c9ce..09d40e5 100644
--- a/common/recipes-kernel/linux/linux-obmc_4.4.bb
+++ b/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/common/recipes-phosphor/dbus/obmc-mapper.bb b/common/recipes-phosphor/dbus/obmc-mapper.bb
index ab6dc98..615207a 100644
--- a/common/recipes-phosphor/dbus/obmc-mapper.bb
+++ b/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/common/recipes-phosphor/dbus/obmc-rest.bb b/common/recipes-phosphor/dbus/obmc-rest.bb
index f66dd26..af69578 100644
--- a/common/recipes-phosphor/dbus/obmc-rest.bb
+++ b/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/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb b/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb
index 06ee00e..ce5fc03 100644
--- a/common/recipes-phosphor/host-ipmid/host-ipmid-fru.bb
+++ b/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/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb b/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb
index 1a6959a..f9d6462 100644
--- a/common/recipes-phosphor/host-ipmid/host-ipmid-oem.bb
+++ b/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/common/recipes-phosphor/host-ipmid/host-ipmid.bb b/common/recipes-phosphor/host-ipmid/host-ipmid.bb
index ba1eaaf..1825eb9 100644
--- a/common/recipes-phosphor/host-ipmid/host-ipmid.bb
+++ b/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/common/recipes-phosphor/network/network.bb b/common/recipes-phosphor/network/network.bb
index 1c48c05..7129898 100644
--- a/common/recipes-phosphor/network/network.bb
+++ b/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/common/recipes-phosphor/obmc-console/obmc-console.bb b/common/recipes-phosphor/obmc-console/obmc-console.bb
index 6fe3bde..ce030fa 100644
--- a/common/recipes-phosphor/obmc-console/obmc-console.bb
+++ b/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/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket b/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh.socket
new file mode 100644
index 0000000..3fbfd99
--- /dev/null
+++ b/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/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service b/common/recipes-phosphor/obmc-console/obmc-console/obmc-console-ssh@.service
new file mode 100644
index 0000000..74d5a7a
--- /dev/null
+++ b/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/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service b/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service
index 8e0266b..2209629 100644
--- a/common/recipes-phosphor/obmc-phosphor-event/files/obmc-phosphor-event.service
+++ b/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/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb b/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb
index 5ce5818..307fe90 100644
--- a/common/recipes-phosphor/obmc-phosphor-event/obmc-phosphor-event.bb
+++ b/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/common/recipes-phosphor/rest-dbus/rest-dbus.bb b/common/recipes-phosphor/rest-dbus/rest-dbus.bb
index fa551f5..7f990aa 100644
--- a/common/recipes-phosphor/rest-dbus/rest-dbus.bb
+++ b/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/common/recipes-phosphor/skeleton/pyphosphor.bb b/common/recipes-phosphor/skeleton/pyphosphor.bb
new file mode 100644
index 0000000..22f059e
--- /dev/null
+++ b/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/common/recipes-phosphor/skeleton/skeleton.bb b/common/recipes-phosphor/skeleton/skeleton.bb
index 08e4d33..9d81279 100644
--- a/common/recipes-phosphor/skeleton/skeleton.bb
+++ b/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/conf/machine/include/obmc-bsp-common.inc b/conf/machine/include/obmc-bsp-common.inc
index 60ed088..260cc90 100644
--- a/conf/machine/include/obmc-bsp-common.inc
+++ b/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"