diff --git a/meta-hpe/conf/layer.conf b/meta-hpe/conf/layer.conf
new file mode 100644
index 0000000..3d2fce1
--- /dev/null
+++ b/meta-hpe/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}/meta-common/recipes-*/*/*.bb \
+            ${LAYERDIR}/meta-common/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "hpe-layer"
+BBFILE_PATTERN_hpe-layer := "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_hpe-layer = "zeus warrior dunfell"
+
+# Provide a variable that points the base of the hpe layer.
+HPEBASE = '${@os.path.normpath("${LAYERDIR}/")}'
diff --git a/meta-hpe/conf/machine/include/hpe.inc b/meta-hpe/conf/machine/include/hpe.inc
new file mode 100644
index 0000000..1e928be
--- /dev/null
+++ b/meta-hpe/conf/machine/include/hpe.inc
@@ -0,0 +1,19 @@
+OBMC_MACHINE_FEATURES += "\
+        obmc-phosphor-fan-mgmt \
+        obmc-phosphor-chassis-mgmt \
+        obmc-phosphor-flash-mgmt \
+        obmc-host-ipmi \
+        obmc-host-state-mgmt \
+        obmc-chassis-state-mgmt \
+        obmc-bmc-state-mgmt \
+        "
+
+PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
+PREFERRED_PROVIDER_virtual/obmc-chassis-mgmt = "packagegroup-hpe-apps"
+PREFERRED_PROVIDER_virtual/obmc-fan-mgmt = "packagegroup-hpe-apps"
+PREFERRED_PROVIDER_virtual/obmc-flash-mgmt = "packagegroup-hpe-apps"
+PREFERRED_PROVIDER_virtual/obmc-system-mgmt = "packagegroup-hpe-apps"
+PREFERRED_PROVIDER_virtual/obmc-host-ctl ?= ""
+#PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-hostfw-config ?= "hostboot-inventory-config-native"
+
+IMAGE_FEATURES_remove = "obmc-fan-control"
diff --git a/meta-hpe/meta-common/recipes-phosphor/image/obmc-phosphor-image.bbappend b/meta-hpe/meta-common/recipes-phosphor/image/obmc-phosphor-image.bbappend
new file mode 100644
index 0000000..7c21fb4
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-phosphor/image/obmc-phosphor-image.bbappend
@@ -0,0 +1,151 @@
+inherit image_version
+unset do_get_version[noexec]
+do_get_version[depends] = "os-release"
+
+# do_get_version() is copied from meta-phosphor/classes/image_version.bbclass and
+# modified to append the date and time to the version if a file named "developer"
+# exists in the openbmc/build directory
+def do_get_version(d):
+    import configparser
+    import io
+    path = d.getVar('STAGING_DIR_TARGET', True) + d.getVar('sysconfdir', True)
+    path = os.path.join(path, 'os-release')
+    parser = configparser.SafeConfigParser(strict=False)
+    parser.optionxform = str
+    version = ''
+    try:
+        with open(path, 'r') as fd:
+            buf = '[root]\n' + fd.read()
+            fd = io.StringIO(buf)
+            parser.readfp(fd)
+            version = parser['root']['VERSION_ID']
+            dev_path = d.getVar('PWD', True)
+            dev_path = os.path.join(dev_path, 'developer')
+            if os.path.isfile(dev_path):
+                version = version[:-1] + str(d.getVar('IMAGE_VERSION_SUFFIX', True)).strip()
+    except:
+        pass
+    return version
+
+HPE_GXP_BOOTBLOCK_IMAGE ?= "gxp-bootblock.bin"
+HPE_UBOOT_SIGNING_HEADER ?= "hpe-uboot-header.section"
+HPE_UBOOT_SIGNING_KEY ?= "hpe-uboot-signing-key.pem"
+
+FLASH_SIZE = "31552"
+FLASH_UBOOT_OFFSET = "0"
+FLASH_KERNEL_OFFSET = "512"
+FLASH_ROFS_OFFSET = "5376"
+FLASH_RWFS_OFFSET = "29184"
+FLASH_SECTION_OFFSET = "31552"
+FLASH_SECTION_END = "32768"
+
+UBOOT_IMG_SIZE = "393216"
+
+do_generate_static[depends] += " \
+   		  gxp-bootblock:do_deploy \
+        gxp-bootblock:do_populate_sysroot \
+        "
+
+
+make_image_links_append() {
+    ln -sf ${DEPLOY_DIR_IMAGE}/hpe-section image-section
+}
+
+do_mk_static_symlinks_append() {
+    ln -sf hpe-section image-section
+}
+
+do_generate_static_prepend() {
+    bb.build.exec_func("do_generate_hpe_image", d)
+}
+
+do_generate_static_append() {
+    _append_image(os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True),
+                               'hpe-section'),
+                  int(d.getVar('FLASH_SECTION_OFFSET', True)),
+                  int(d.getVar('FLASH_SECTION_END', True))) 
+}
+
+do_generate_hpe_image() {
+    # Extract uboot 256K
+    dd if=/dev/zero bs=1k count=256 > ${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX}
+    dd bs=1k conv=notrunc seek=0 count=256\
+            if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \
+            of=${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX}
+
+    # Sign uboot 256K
+    openssl sha256 -sign ${DEPLOY_DIR_IMAGE}/${HPE_UBOOT_SIGNING_KEY} -out ${DEPLOY_DIR_IMAGE}/gxp_tmp.sig \
+            ${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX}
+
+    # Expand (header+signature) to 4K
+    cat ${DEPLOY_DIR_IMAGE}/${HPE_UBOOT_SIGNING_HEADER} ${DEPLOY_DIR_IMAGE}/gxp_tmp.sig \
+         > ${DEPLOY_DIR_IMAGE}/gxp.sig
+
+    # Add Header and Signature to hpe-section (from 60K)
+    dd bs=1k conv=notrunc seek=60 \
+          if=${DEPLOY_DIR_IMAGE}/gxp.sig \
+          of=${DEPLOY_DIR_IMAGE}/hpe-section
+
+    # Add ubb to hpe-section
+    dd bs=1k conv=notrunc seek=64 \
+          if=${DEPLOY_DIR_IMAGE}/${HPE_GXP_BOOTBLOCK_IMAGE} \
+          of=${DEPLOY_DIR_IMAGE}/hpe-section
+
+    # Expand uboot to 384K
+    dd if=/dev/zero bs=1k count=384 > ${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX}
+    dd bs=1k conv=notrunc seek=0 count=384\
+            if=${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \
+            of=${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX}
+
+    # Remove unnecessary files
+    rm ${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX} \
+       ${DEPLOY_DIR_IMAGE}/gxp_tmp.sig \
+       ${DEPLOY_DIR_IMAGE}/gxp.sig
+
+    mv ${DEPLOY_DIR_IMAGE}/u-boot-tmp.${UBOOT_SUFFIX} ${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX}
+
+    # Check uboot image size equals to 384K
+    size="$(wc -c < "${DEPLOY_DIR_IMAGE}/u-boot.${UBOOT_SUFFIX}")"
+    if [ ${size} -ne ${UBOOT_IMG_SIZE} ]
+    then
+      echo "ERROR: STATIC - uBoot image size ${size} incorrect. Please try it again."
+      exit 1
+    fi
+}
+
+make_tar_of_images() {
+  type=$1
+  shift
+  extra_files="$@"
+
+  # Create the tar archive
+  tar -h -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}.$type.mtd.tar \
+    image-u-boot image-kernel image-rofs image-rwfs image-section $extra_files
+
+  cd ${IMGDEPLOYDIR}
+  ln -sf ${IMAGE_NAME}.$type.mtd.tar ${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.$type.mtd.tar
+}
+
+do_generate_static_tar[depends] += " obmc-phosphor-image:do_generate_static"
+
+do_generate_static_tar() {
+
+  ln -sf ${S}/MANIFEST MANIFEST
+  ln -sf ${S}/publickey publickey
+  make_image_links ${OVERLAY_BASETYPE} ${IMAGE_BASETYPE}
+
+  # Check uboot image size equals to 384K
+  size="$(wc -c < "image-u-boot")"
+  if [ ${size} != ${UBOOT_IMG_SIZE} ]
+  then
+    echo "ERROR: TAR - uBoot image size ${size} incorrect. Please try it again."
+    exit 1
+  fi
+
+  make_signatures image-u-boot image-kernel image-rofs image-rwfs image-section MANIFEST publickey
+  make_tar_of_images static MANIFEST publickey ${signature_files}
+
+  # Maintain non-standard legacy link.
+  cd ${IMGDEPLOYDIR}
+  ln -sf ${IMAGE_NAME}.static.mtd.tar ${IMGDEPLOYDIR}/${MACHINE}-${DATETIME}.tar
+}
diff --git a/meta-hpe/meta-common/recipes-phosphor/initrdscripts/files/gxp-obmc-init.sh b/meta-hpe/meta-common/recipes-phosphor/initrdscripts/files/gxp-obmc-init.sh
new file mode 100644
index 0000000..e2a9ebc
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-phosphor/initrdscripts/files/gxp-obmc-init.sh
@@ -0,0 +1,452 @@
+#!/bin/sh
+
+fslist="proc sys dev run"
+rodir=run/initramfs/ro
+rwdir=run/initramfs/rw
+upper=$rwdir/cow
+work=$rwdir/work
+
+cd /
+mkdir -p $fslist
+mount dev dev -tdevtmpfs
+mount sys sys -tsysfs
+mount proc proc -tproc
+if ! grep run proc/mounts
+then
+	mount tmpfs run -t tmpfs -o mode=755,nodev
+fi
+
+mkdir -p $rodir $rwdir
+
+cp -rp init shutdown update whitelist bin sbin usr lib etc var run/initramfs
+
+# To start a interactive shell with job control at this point, run
+# getty 38400 ttyS4
+
+findmtd() {
+	m=$(grep -xl "$1" /sys/class/mtd/*/name)
+	m=${m%/name}
+	m=${m##*/}
+	echo $m
+}
+
+blkid_fs_type() {
+	# Emulate util-linux's `blkid -s TYPE -o value $1`
+	# Example busybox blkid output:
+	#    # blkid /dev/mtdblock5
+	#    /dev/mtdblock5: TYPE="squashfs"
+	# Process output to extract TYPE value "squashfs".
+	blkid $1 | sed -e 's/^.*TYPE="//' -e 's/".*$//'
+}
+
+probe_fs_type() {
+	fst=$(blkid_fs_type $1)
+	echo ${fst:=jffs2}
+}
+
+# This fw_get_env_var is a possibly broken version of fw_printenv that
+# does not check the crc or flag byte.
+# The u-boot environment starts with a crc32, followed by a flag byte
+# when a redundannt environment is configured, followed by var=value\0 sets.
+# The flag byte for nand is a 1 byte counter; for nor it is a 1 or 0 byte.
+
+get_fw_env_var() {
+	# do we have 1 or 2 copies of the environment?
+	# count non-blank non-comment lines
+	# copies=$(grep -v ^# /etc/fw_env.config | grep -c [::alnum::])
+	# ... we could if we had the fw_env.config in the initramfs
+	copies=2
+
+	# * Change \n to \r and \0 to \n
+	# * Skip to the 5th byte to skip over crc
+	# * then skip to the first or 2nd byte to skip over flag if it exists
+	# * stop parsing at first empty line corresponding to the
+	#   double \0 at the end of the environment.
+	# * print the value of the variable name passed as argument
+
+	envdev=$(findmtd u-boot-env)
+	if test -n $envdev
+	then
+		cat /dev/$envdev |
+		tr '\n\000' '\r\n' |
+		tail -c +5 | tail -c +${copies-1} |
+		sed -ne '/^$/,$d' -e "s/^$1=//p"
+	fi
+}
+
+setup_resolv() {
+	runresolv=/run/systemd/resolve/resolv.conf
+	etcresolv=/etc/resolv.conf
+
+	if test ! -e $etcresolv -a ! -L $etcresolv
+	then
+		mkdir -p ${runresolv%/*}
+		ln -s $runresolv $etcresolv
+	fi
+	if test ! -f $runresolv
+	then
+		cat  /proc/net/pnp > $runresolv
+	fi
+
+	return 0
+}
+
+try_tftp() {
+	# split into  tftp:// host:port/ path/on/remote
+	# then spilt off / and then :port from the end of host:port/
+	# and : from the beginning of port
+
+	rest="${1#tftp://}"
+	path=${rest#*/}
+	host=${rest%$path}
+	host="${host%/}"
+	port="${host#${host%:*}}"
+	host="${host%$port}"
+	port="${port#:}"
+
+	setup_resolv
+
+	if test -z "$host" -o -z "$path"
+	then
+		debug_takeover "Invalid tftp download url '$url'."
+	elif echo "Downloading '$url' from $host ..."  &&
+		! tftp -g -r "$path" -l /run/image-rofs "$host" ${port+"$port"}
+	then
+		debug_takeover "Download of '$url' failed."
+	fi
+}
+
+try_wget() {
+	setup_resolv
+
+	echo "Downloading '$1' ..."
+	if ! wget -O /run/image-rofs "$1"
+	then
+		debug_takeover "Download of '$url' failed."
+	fi
+}
+
+debug_takeover() {
+	echo "$@"
+	read -t 5 -n 1 -s -r -p  "Press any key to log in and try to manually fix, force recovery in 5 seconds"
+	if test $? -gt 0
+	then
+		mkdir -p /var/lock
+		envdev=$(findmtd u-boot-env)
+		echo -e "/dev/${envdev}\t0x00000\t0x10000" > /etc/fw_env.config
+		echo -e "/dev/${envdev}\t0x10000\t0x10000" >> /etc/fw_env.config
+		fw_setenv force_recovery 1
+		fw_setenv last_booterrmsg "$@"
+		devmem 0xc0000000 32 0x01
+	fi
+	cat << HERE
+After fixing run exit to continue this script, or reboot -f to retry, or
+touch /takeover and exit to become PID 1 allowing editing of this script.
+HERE
+
+	while ! sulogin && ! test -f /takeover
+	do
+		echo getty failed, retrying
+	done
+
+	# Touch /takeover in the above getty to become pid 1
+	if test -e /takeover
+	then
+		cat << HERE
+
+Takeover of init requested.  Executing /bin/sh as PID 1.
+When finished exec new init or cleanup and run reboot -f.
+
+Warning: No job control!  Shell exit will panic the system!
+HERE
+		export PS1=init#\ 
+		exec /bin/sh
+	fi
+}
+
+# Check System Maintenace Switch 7 and load factory default
+check_dip() {
+  devmem 0x800000b8 16 0xFF
+  dip=$(devmem 0x800000b8 16)
+
+  value1=$((( $dip & 0xFF00 ) >> 8 ))
+  value2=$((( $dip & 0x0040 ) >> 6 ))
+
+  if [ $value1 -eq 0 ] && [ $value2 -eq 1 ]
+  then
+    echo "Detect System Maintenace Switch 7 on. Will load factory default"
+    return 0
+  fi
+  return 1
+}
+
+rofs=$(findmtd rofs)
+rwfs=$(findmtd rwfs)
+
+rodev=/dev/mtdblock${rofs#mtd}
+rwdev=/dev/mtdblock${rwfs#mtd}
+
+# Set to y for yes, anything else for no.
+force_rwfst_jffs2=y
+flash_images_before_init=n
+consider_download_files=y
+consider_download_tftp=y
+consider_download_http=y
+consider_download_ftp=y
+
+rofst=squashfs
+rwfst=$(probe_fs_type $rwdev)
+roopts=ro
+rwopts=rw
+
+image=/run/initramfs/image-
+trigger=${image}rwfs
+
+init=/sbin/init
+fsckbase=/sbin/fsck.
+fsck=$fsckbase$rwfst
+fsckopts=-a
+optfile=/run/initramfs/init-options
+optbase=/run/initramfs/init-options-base
+urlfile=/run/initramfs/init-download-url
+update=/run/initramfs/update
+
+if test -e /${optfile##*/}
+then
+	cp /${optfile##*/} $optfile
+fi
+
+if test -e /${optbase##*/}
+then
+	cp /${optbase##*/} $optbase
+else
+	touch $optbase
+fi
+
+if test ! -f $optfile
+then
+	cat /proc/cmdline $optbase > $optfile
+	get_fw_env_var openbmcinit >> $optfile
+	get_fw_env_var openbmconce >> $optfile
+fi
+
+echo rofs = $rofs $rofst   rwfs = $rwfs $rwfst
+
+if grep -w debug-init-sh $optfile
+then
+	debug_takeover "Debug initial shell requested by command line."
+fi
+
+if test "x$consider_download_files" = xy &&
+	grep -w openbmc-init-download-files $optfile
+then
+	if test -f ${urlfile##*/}
+	then
+		cp ${urlfile##*/} $urlfile
+	fi
+	if test ! -f $urlfile
+	then
+		get_fw_env_var openbmcinitdownloadurl > $urlfile
+	fi
+	url="$(cat $urlfile)"
+	rest="${url#*://}"
+	proto="${url%$rest}"
+
+	if test -z "$url"
+	then
+		echo "Download url empty.  Ignoring download request."
+	elif test -z "$proto"
+	then
+		echo "Download failed."
+	elif test "$proto" = tftp://
+	then
+		if test "x$consider_download_tftp" = xy
+		then
+			try_tftp "$url"
+		else
+			echo "Download failed."
+		fi
+	elif test "$proto" = http://
+	then
+		if test "x$consider_download_http" = xy
+		then
+			try_wget "$url"
+		else
+			echo "Download failed."
+		fi
+	elif test "$proto" = ftp://
+	then
+		if test "x$consider_download_ftp" = xy
+		then
+			try_wget "$url"
+		else
+			echo "Download failed."
+		fi
+	else
+		echo "Download failed."
+	fi
+fi
+
+# If there are images in root move them to /run/initramfs/ or /run/ now.
+imagebasename=${image##*/}
+if test -n "${imagebasename}" && ls /${imagebasename}* > /dev/null 2>&1
+then
+	if test "x$flash_images_before_init" = xy
+	then
+		echo "Flash images found, will update before starting init."
+		mv /${imagebasename}* ${image%$imagebasename}
+	else
+		echo "Flash images found, will use but deferring flash update."
+		mv /${imagebasename}* /run/
+	fi
+fi
+
+if grep -w clean-rwfs-filesystem $optfile
+then
+	echo "Cleaning of read-write overlay filesystem requested."
+	touch $trigger
+fi
+
+if grep -w factory-reset $optfile || check_dip
+then
+	echo "Factory reset requested."
+	touch $trigger
+	do_save=--no-save-files
+else
+	do_save=--save-files
+fi
+
+if test "x$force_rwfst_jffs2" = xy -a $rwfst != jffs2 -a ! -f $trigger
+then
+	echo "Converting read-write overlay filesystem to jffs2 forced."
+	touch $trigger
+fi
+
+if ls $image* > /dev/null 2>&1
+then
+	if ! test -x $update
+	then
+		debug_takeover "Flash update requested but $update missing!"
+	elif test -f $trigger -a ! -s $trigger
+	then
+		if [ $do_save = "--save-files" ]
+		then
+			echo "Saving selected files from read-write overlay filesystem."
+		else
+			echo "No files will be selected for save."
+		fi
+		$update --no-restore-files $do_save
+		echo "Clearing read-write overlay filesystem."
+		flash_eraseall /dev/$rwfs
+		echo "Restoring saved files to read-write overlay filesystem."
+		touch $trigger
+		$update --no-save-files --clean-saved-files
+	else
+		$update --clean-saved-files $do_save
+	fi
+
+	rwfst=$(probe_fs_type $rwdev)
+	fsck=$fsckbase$rwfst
+fi
+
+if grep -w overlay-filesystem-in-ram $optfile
+then
+	rwfst=none
+fi
+
+copyfiles=
+if grep -w copy-files-to-ram $optfile
+then
+	rwfst=none
+	copyfiles=y
+fi
+
+# It would be nice to do this after fsck but that mean rofs is mounted
+# which triggers the mtd is mounted check
+if test "$rwfst$copyfiles" = noney
+then
+	touch $trigger
+	$update --copy-files --clean-saved-files --no-restore-files
+fi
+
+if grep -w copy-base-filesystem-to-ram $optfile &&
+	test ! -e /run/image-rofs && ! cp $rodev /run/image-rofs
+then
+	# Remove any partial copy to avoid attempted usage later
+	if test -e  /run/image-rofs
+	then
+		ls -l /run/image-rofs
+		rm -f /run/image-rofs
+	fi
+	debug_takeover "Copying $rodev to /run/image-rofs failed."
+fi
+
+if test -s /run/image-rofs
+then
+	rodev=/run/image-rofs
+	roopts=$roopts,loop
+fi
+
+mount $rodev $rodir -t $rofst -o $roopts
+
+if test -x $rodir$fsck
+then
+	for fs in $fslist
+	do
+		mount --bind $fs $rodir/$fs
+	done
+	chroot $rodir $fsck $fsckopts $rwdev
+	rc=$?
+	for fs in $fslist
+	do
+		umount $rodir/$fs
+	done
+	if test $rc -gt 1
+	then
+		debug_takeover "fsck of read-write fs on $rwdev failed (rc=$rc)"
+	fi
+elif test "$rwfst" != jffs2 -a "$rwfst" != none
+then
+	echo "No '$fsck' in read only fs, skipping fsck."
+fi
+
+if test "$rwfst" = none
+then
+	echo "Running with read-write overlay in RAM for this boot."
+	echo "No state will be preserved unless flash update performed."
+elif ! mount $rwdev $rwdir -t $rwfst -o $rwopts
+then
+	msg="$(cat)" << HERE
+
+Mounting read-write $rwdev filesystem failed.  Please fix and run
+	mount $rwdev $rwdir -t $rwfst -o $rwopts
+to to continue, or do change nothing to run from RAM for this boot.
+HERE
+	debug_takeover "$msg"
+fi
+
+rm -rf $work
+mkdir -p $upper $work
+
+mount -t overlay -o lowerdir=$rodir,upperdir=$upper,workdir=$work cow /root
+
+while ! chroot /root /bin/sh -c "test -x '$init' -a -s '$init'"
+do
+	msg="$(cat)" << HERE
+
+Unable to confirm /sbin/init is an executable non-empty file
+in merged file system mounted at /root.
+
+Change Root test failed!  Invoking emergency shell.
+HERE
+	debug_takeover "$msg"
+done
+
+for f in $fslist
+do
+	mount --move $f root/$f
+done
+
+# switch_root /root $init
+exec chroot /root $init
+
diff --git a/meta-hpe/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend b/meta-hpe/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend
new file mode 100644
index 0000000..cdf163c
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_prepend :="${THISDIR}/files:"
+
+SRC_URI += "file://gxp-obmc-init.sh \
+           "
+
+do_install_append() {
+        install -m 0755 ${WORKDIR}/gxp-obmc-init.sh ${D}/init
+}
+
+FILES_${PN} += " /init /shutdown /update /whitelist /dev "
+FILES_${PN} += " /init-options /init-download-url "
diff --git a/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb
new file mode 100644
index 0000000..82a748b
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-hpe-apps.bb
@@ -0,0 +1,48 @@
+SUMMARY = "OpenBMC for HPE - Applications"
+PR = "r1"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = " \
+        ${PN}-chassis \
+        ${PN}-fans \
+        ${PN}-flash \
+        ${PN}-system \
+        "
+
+PROVIDES += "virtual/obmc-chassis-mgmt"
+PROVIDES += "virtual/obmc-fan-mgmt"
+PROVIDES += "virtual/obmc-flash-mgmt"
+PROVIDES += "virtual/obmc-system-mgmt"
+
+RPROVIDES_${PN}-chassis += "virtual-obmc-chassis-mgmt"
+RPROVIDES_${PN}-fans += "virtual-obmc-fan-mgmt"
+RPROVIDES_${PN}-flash += "virtual-obmc-flash-mgmt"
+RPROVIDES_${PN}-system += "virtual-obmc-system-mgmt"
+
+SUMMARY_${PN}-chassis = "HPE Chassis"
+RDEPENDS_${PN}-chassis = " \
+        obmc-phosphor-buttons-signals \
+        obmc-phosphor-buttons-handler \
+        obmc-op-control-power \
+        obmc-host-failure-reboots \
+        "
+
+SUMMARY_${PN}-fans = "HPE Fans"
+RDEPENDS_${PN}-fans = " \
+        phosphor-pid-control \
+        "
+
+SUMMARY_${PN}-flash = "HPE Flash"
+RDEPENDS_${PN}-flash = " \
+        obmc-control-bmc \
+        "
+
+SUMMARY_${PN}-system = "HPE System"
+RDEPENDS_${PN}-system = " \
+        bmcweb \
+        phosphor-webui \
+        phosphor-ipmi-ipmb \
+        dbus-sensors \
+        "
diff --git a/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
new file mode 100644
index 0000000..fc6a055
--- /dev/null
+++ b/meta-hpe/meta-common/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -0,0 +1,10 @@
+RDEPENDS_${PN}-logging += "phosphor-logging"
+RDEPENDS_${PN}-extras += " bmcweb \
+                           phosphor-webui \
+                           phosphor-image-signing \
+                           phosphor-pid-control \
+"
+
+RDEPENDS_${PN}-fan-control = " \
+         ${VIRTUAL-RUNTIME_obmc-fan-control} \
+         "
diff --git a/meta-hpe/meta-dl360poc/conf/bblayers.conf.sample b/meta-hpe/meta-dl360poc/conf/bblayers.conf.sample
new file mode 100644
index 0000000..3416353
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/conf/bblayers.conf.sample
@@ -0,0 +1,31 @@
+# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
+# changes incompatibly
+LCONF_VERSION = "8"
+
+BBPATH = "${TOPDIR}"
+BBFILES ?= ""
+
+BBLAYERS ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-perl \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-openembedded/meta-webserver \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-hpe/meta-gxp \
+  ##OEROOT##/meta-hpe \
+  ##OEROOT##/meta-hpe/meta-dl360poc \
+  "
+BBLAYERS_NON_REMOVABLE ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-perl \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-openembedded/meta-webserver \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-hpe/meta-gxp \
+  ##OEROOT##/meta-hpe \
+  ##OEROOT##/meta-hpe/meta-dl360poc \
+  "
diff --git a/meta-hpe/meta-dl360poc/conf/layer.conf b/meta-hpe/meta-dl360poc/conf/layer.conf
new file mode 100644
index 0000000..4627564
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/conf/layer.conf
@@ -0,0 +1,10 @@
+# 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 += "dl360poc-layer"
+BBFILE_PATTERN_dl360poc-layer := "^${LAYERDIR}/"
+LAYERSERIES_COMPAT_dl360poc-layer = "zeus warrior dunfell"
diff --git a/meta-hpe/meta-dl360poc/conf/local.conf.sample b/meta-hpe/meta-dl360poc/conf/local.conf.sample
new file mode 100644
index 0000000..1161dce
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/conf/local.conf.sample
@@ -0,0 +1,245 @@
+#
+# 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 ??= "dl360poc"
+
+#
+# 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 necessary 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/meta-hpe/meta-dl360poc/conf/machine/dl360poc.conf b/meta-hpe/meta-dl360poc/conf/machine/dl360poc.conf
new file mode 100644
index 0000000..1f27f8c
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/conf/machine/dl360poc.conf
@@ -0,0 +1,9 @@
+KERNEL_DEVICETREE = "gxp.dtb"
+
+require conf/machine/include/gxp.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/hpe.inc
+
+#PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "dl360poc-led-manager-config-native"
+
+VIRTUAL-RUNTIME_obmc-fan-control ?= "phosphor-pid-control"
diff --git a/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc/gxp.dts b/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc/gxp.dts
new file mode 100644
index 0000000..c11ccb0
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc/gxp.dts
@@ -0,0 +1,711 @@
+/dts-v1/;
+/ {
+  #address-cells = <1>;
+  #size-cells = <1>;
+  compatible = "HPE,GXP";
+  model = "GXP";
+
+  chosen {
+    bootargs = "earlyprintk console=ttyS0,115200 user_debug=31";
+  };
+
+  aliases {
+  };
+
+  memory@40000000 {
+    device_type = "memory";
+    reg = <0x40000000 0x20000000>;
+  };
+
+  ahb@80000000 {
+    compatible = "simple-bus";
+    #address-cells = <1>;
+    #size-cells = <1>;
+    ranges;
+
+    vic0: vic@ceff0000 {
+      compatible = "arm,pl192-vic";
+      interrupt-controller;
+      reg = <0xceff0000 0x1000>;
+      #interrupt-cells = <1>;
+    };
+
+    vic1: vic@80f00000 {
+      compatible = "arm,pl192-vic";
+      interrupt-controller;
+      reg = <0x80f00000 0x1000>;
+      #interrupt-cells = <1>;
+    };
+
+    timer0: timer@c0000080 {
+      compatible = "hpe,gxp-timer";
+      reg = <0xc0000080 0x1>, <0xc0000094 0x01>, <0xc0000088 0x08>;
+      interrupts = <0>;
+      interrupt-parent = <&vic0>;
+      clock-frequency = <400000000>;
+    };
+    
+    watchdog: watchdog@c0000090 {
+      compatible = "hpe,gxp-wdt";
+      reg = <0xc0000090 0x02>, <0xc0000096 0x01>;
+    };
+
+    uartc: serial@c00000f0 {
+      compatible = "ns16550a";
+      reg = <0xc00000f0 0x8>;
+      interrupts = <19>;
+      interrupt-parent = <&vic0>;
+      clock-frequency = <1846153>;
+      reg-shift = <0>;
+    };
+
+    uarta: serial@c00000e0 {
+      compatible = "ns16550a";
+      reg = <0xc00000e0 0x8>;
+      interrupts = <17>;
+      interrupt-parent = <&vic0>;
+      clock-frequency = <1846153>;
+      reg-shift = <0>;
+    };
+
+    uartb: serial@c00000e8 {
+      compatible = "ns16550a";
+      reg = <0xc00000e8 0x8>;
+      interrupts = <18>;
+      interrupt-parent = <&vic0>;
+      clock-frequency = <1846153>;
+      reg-shift = <0>;
+    };
+
+    vuart_a_cfg: vuarta_cfg@80fc0230 {
+      compatible = "hpe,gxp-vuarta_cfg", "simple-mfd", "syscon";
+      reg = <0x80fc0230 0x100>;
+      reg-io-width = <1>;
+    };
+ 
+    vuart_a: vuart_a@80fd0200 {
+      compatible = "hpe,gxp-vuart";
+      reg = <0x80fd0200 0x100>;
+      interrupts = <2>;
+      interrupt-parent = <&vic1>;
+      clock-frequency = <1846153>;
+      reg-shift = <0>;
+      status = "okay";
+      serial-line = <3>;
+      vuart_cfg = <&vuart_a_cfg>;
+    };
+ 
+    spifi0: spifi@c0000200 {
+      compatible = "hpe,gxp-spifi";
+      reg = <0xc0000200 0x80>, <0xc000c000 0x100>, <0xf8000000 0x8000000>;
+      interrupts = <20>;
+      interrupt-parent = <&vic0>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      flash@0 {
+        compatible = "jedec,spi-nor";
+        reg = <0>;
+        partitions {
+          compatible = "fixed-partitions";
+          #address-cells = <1>;
+          #size-cells = <1>;
+          
+          u-boot@0 {
+            label = "u-boot";
+            reg = <0x0 0x60000>;
+          };
+          u-boot-env@60000 {
+            label = "u-boot-env";
+            reg = <0x60000 0x20000>;
+          };
+          kernel@80000 {
+            label = "kernel";
+            reg = <0x80000 0x4c0000>;
+          };
+          rofs@540000 {
+            label = "rofs";
+            reg = <0x540000 0x1740000>;
+          };
+          rwfs@1c80000 {
+            label = "rwfs";
+            reg = <0x1c80000 0x250000>;
+          };
+          section@1edf000{
+            labele = "section";
+            reg = <0x1ed0000 0x130000>;
+          };
+        };
+      };
+
+      flash@1 {
+        compatible = "jedec,spi-nor";
+        reg = <1>;
+        partitions {
+          compatible = "fixed-partitions";
+          #address-cells = <1>;
+          #size-cells = <1>;
+          host-prime@0 {
+            label = "host-prime";
+            reg = <0x0 0x02000000>;
+          };
+          host-second@0 {
+            label = "host-second";
+            reg = <0x02000000 0x02000000>;
+          };
+        };
+      };
+    };
+
+    sram@d0000000 {
+      compatible = "mtd-ram";
+      reg = <0xd0000000 0x80000>;
+      bank-width = <1>;
+      erase-size =<1>;
+      partition@0 {
+        label = "host-reserved";
+        reg = <0x0 0x10000>;
+      };
+      partition@10000 {
+        label = "nvram";
+        reg = <0x10000 0x70000>;
+      };
+    };
+
+    srom@80fc0000 {
+      compatible = "hpe,gxp-srom", "simple-mfd", "syscon";
+      reg = <0x80fc0000 0x100>;
+    };
+
+    vrom@58000000 {
+      compatible = "mtd-ram";
+      bank-width = <4>;
+      reg = <0x58000000 0x4000000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+      partition@0 {
+        label = "vrom-prime";
+        reg = <0x0 0x2000000>;
+      };
+      partition@2000000 {
+        label = "vrom-second";
+        reg = <0x2000000 0x2000000>;
+      };
+    };
+
+    i2cg: i2cg@c00000f8 {
+      compatible = "syscon";
+      reg = <0xc00000f8 0x08>;
+    };
+    
+    i2c0: i2c@c0002000 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002000 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c1: i2c@c0002100 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002100 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c2: i2c@c0002200 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002200 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      at24c02@50 {
+        compatible = "at24,24c02";
+        pagesize = <8>;
+        reg = <0x50>;
+      };
+    };
+
+    i2c3: i2c@c0002300 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002300 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c4: i2c@c0002400 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002400 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c5: i2c@c0002500 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002500 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      emc1402@4c {
+        compatible = "emc1402";
+        reg = <0x4c>;
+      };
+      
+      emc1404@1c {
+        compatible = "emc1404";
+        reg = <0x1c>;
+      };
+    };
+
+    i2c6: i2c@c0002600 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002600 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c7: i2c@c0002700 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002700 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      psu1: psu@58 {
+        compatible = "hpe,gxp-psu";
+        reg = <0x58>;
+      };
+
+      psu2: psu@59 {
+        compatible = "hpe,gxp-psu";
+        reg = <0x59>;
+      };
+    };
+
+    i2c8: i2c@c0002800 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002800 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2c9: i2c@c0002900 {
+      compatible = "hpe,gxp-i2c";
+      reg = <0xc0002900 0x70>;
+      interrupts = <9>;
+      interrupt-parent = <&vic0>;
+      i2cg-handle = <&i2cg>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+    };
+
+    i2cmux@4 {
+      compatible = "i2c-mux-reg";
+      i2c-parent = <&i2c4>;
+      reg = <0xd1000374 1>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      i2c4@1 {
+        reg = <1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c4@3 {
+        reg = <3>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c4@4 {
+        reg = <4>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+    };
+
+    i2cmux@6 {
+      compatible = "i2c-mux-reg";
+      i2c-parent = <&i2c6>;
+      reg = <0xd1000376 1>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      i2c6@1 {
+        reg = <1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c6@2 {
+        reg = <2>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c6@3 {
+        reg = <3>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c6@4 {
+        reg = <4>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+
+      i2c6@5 {
+        reg = <5>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+      };
+    };
+
+    mdio0: mdio@c0004080 {
+      compatible = "hpe,gxp-umac-mdio";
+      reg = <0xc0004080 0x10>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+      ext_phy0: ethernt-phy@0 {
+        compatible = "marvell,88e1415","ethernet-phy-ieee802.3-c22";
+        phy-mode = "sgmii";
+        reg = <0>;
+      };
+    };
+
+    mdio1: mdio@c0005080 {
+      compatible = "hpe,gxp-umac-mdio";
+      reg = <0xc0005080 0x10>;
+      #address-cells = <1>;
+      #size-cells = <0>;
+      int_phy0: ethernt-phy@0 {
+        compatible = "ethernet-phy-ieee802.3-c22";
+        phy-mode = "gmii";
+        reg = <0>;
+      };
+      int_phy1: ethernt-phy@1 {
+        compatible = "ethernet-phy-ieee802.3-c22";
+        phy-mode = "gmii";
+        reg = <1>;
+      };
+    };
+
+    umac0: umac@c0004000 {
+      compatible = "hpe, gxp-umac";
+      reg = <0xc0004000 0x80>;
+      interrupts = <10>;
+      interrupt-parent = <&vic0>;
+      mac-address = [94 18 82 16 04 d8];
+      phy-handle = <&ext_phy0>;
+      int-phy-handle = <&int_phy0>;
+    };
+
+    umac1: umac@c0005000 {
+      compatible = "hpe, gxp-umac";
+      use-ncsi;
+      reg = <0xc0005000 0x80>;
+      interrupts = <11>;
+      interrupt-parent = <&vic0>;
+      mac-address = [94 18 82 16 04 d9];
+      phy-handle = <&int_phy1>;
+    };
+
+    kcs_conf: kcs_conf@80fc0430 {
+      compatible = "hpe,gxp-kcs-bmc-cfg", "simple-mfd", "syscon";
+      reg = <0x80fc0430 0x100>;
+    };
+  
+    kcs_reg: kcs_reg@080fd0400 {
+      compatible = "hpe,gxp-kcs-bmc";
+      reg = <0x80fd0400 0x8>;
+      interrupts = <6>;
+      interrupt-parent = <&vic1>;
+      kcs_chan = <1>;
+      status = "okay";
+      kcs-bmc-cfg = <&kcs_conf>;
+    };
+
+    thumbnail: thumbnail@c0000500 {
+      compatible = "hpe,gxp-thumbnail";
+      reg = <0xc0000500 0x20>;
+      bits-per-pixel = <32>;
+      width = <800>;
+      height = <600>;
+    };
+
+    xreg: xreg@d1000000 {
+      compatible = "hpe,gxp-xreg", "simple-mfd", "syscon";
+      reg = <0xd1000300 0xFF>;
+    };
+
+    fanctrl: fanctrl@c1000c00 {
+      compatible = "hpe,gxp-fan-ctrl";
+      reg = <0xc1000c00 0x200>;
+      xreg_handle = <&xreg>;
+      fn2_handle = <&fn2>;
+    };
+
+    fn2: fn2@80200000 {
+      compatible = "hpe,gxp-fn2", "simple-mfd", "syscon";
+      reg = <0x80200000 0x100000>;
+      interrupts = <0>;
+      interrupt-parent = <&vic1>;
+    };
+
+    csm: csm@80000000 {
+      compatible = "hpe,gxp-csm", "simple-mfd", "syscon";
+      reg = <0x80000000 0x100000>;
+    };
+
+    gpio: gpio {
+      compatible = "hpe,gxp-gpio";
+      #gpio-cells = <2>;
+      csm_handle = <&csm>;
+      fn2_handle = <&fn2>;
+      xreg_handle = <&xreg>;
+      vuhc0_handle = <&vuhc0>;
+      interrupts = <26>;
+      interrupt-parent = <&vic0>;
+    };
+
+    leds: leds {
+      compatible = "gpio-leds";
+
+      power {
+        gpios = <&gpio 306 0>;
+        default-state = "off";
+      };
+
+      heartbeat {
+        gpios = <&gpio 307 0>;
+        default-state = "off";
+      };
+
+      identify {
+        gpios = <&gpio 356 0>;
+        default-state = "off";
+      };
+
+      health_red {
+        gpios = <&gpio 357 0>;
+        default-state = "off";
+      };
+
+      health_amber {
+        gpios = <&gpio 358 0>;
+        default-state = "off";
+      };
+    };
+
+    presence: presence {
+      compatible = "gpio-keys-polled";
+      poll-interval = <100>;
+      autorepeat;
+
+      fan1 {
+        label = "fan1 presence";
+        linux,code = <200>;
+        gpios = <&gpio 308 0>;
+      };
+
+      fan2 {
+        label = "fan2 presence";
+        linux,code = <201>;
+        gpios = <&gpio 309 0>;
+      };
+
+      fan3 {
+        label = "fan3 presence";
+        linux,code = <202>;
+        gpios = <&gpio 310 0>;
+      };
+
+      fan4 {
+        label = "fan4 presence";
+        linux,code = <203>;
+        gpios = <&gpio 311 0>;
+      };
+
+      fan5 {
+        label = "fan5 presence";
+        linux,code = <204>;
+        gpios = <&gpio 312 0>;
+      };
+
+      fan6 {
+        label = "fan6 presence";
+        linux,code = <205>;
+        gpios = <&gpio 313 0>;
+      };
+
+      fan7 {
+        label = "fan7 presence";
+        linux,code = <206>;
+        gpios = <&gpio 314 0>;
+      };
+
+      fan8 {
+        label = "fan8 presence";
+        linux,code = <207>;
+        gpios = <&gpio 315 0>;
+      };
+
+      fan9 {
+        label = "fan9 presence";
+        linux,code = <208>;
+        gpios = <&gpio 316 0>;
+      };
+
+      fan10 {
+        label = "fan10 presence";
+        linux,code = <209>;
+        gpios = <&gpio 317 0>;
+      };
+
+      fan11 {
+        label = "fan11 presence";
+        linux,code = <210>;
+        gpios = <&gpio 318 0>;
+      };
+
+      fan12 {
+        label = "fan12 presence";
+        linux,code = <211>;
+        gpios = <&gpio 319 0>;
+      };
+
+      fan13 {
+        label = "fan13 presence";
+        linux,code = <212>;
+        gpios = <&gpio 320 0>;
+      };
+
+      fan14 {
+        label = "fan14 presence";
+        linux,code = <213>;
+        gpios = <&gpio 321 0>;
+      };
+
+      fan15 {
+        label = "fan15 presence";
+        linux,code = <214>;
+        gpios = <&gpio 322 0>;
+      };
+
+      fan16 {
+        label = "fan16 presence";
+        linux,code = <215>;
+        gpios = <&gpio 323 0>;
+      };
+    };
+
+    vuhc: vuhc {
+      compatible = "gpio-keys-polled";
+      poll-interval = <100>;
+
+      PortOwner@0 {
+        label = "Port Owner";
+        linux,code = <200>;
+        gpios = <&gpio 250 1>;
+      };
+
+      PortOwner@1 {
+        label = "Port Owner";
+        linux,code = <201>;
+        gpios = <&gpio 251 1>;
+      };
+    };
+
+    vuhc0: vuhc@80400080 {
+      compatible = "syscon";
+      reg = <0x80400000 0x80>;
+    };
+
+    udcg: udcg@80400800 {
+      compatible = "syscon";
+      reg = <0x80400800 0x200>;
+    };
+
+    udc0: udc@80401000 {
+      compatible = "hpe, gxp-udc";
+      reg = <0x80401000 0x1000>;
+      interrupts = <13>;
+      interrupt-parent = <&vic1>;
+      vdevnum = <0>;
+      fepnum = <7>;
+      udcg-handle = <&udcg>;
+    };
+
+    udc1: udc@80402000 {
+      compatible = "hpe, gxp-udc";
+      reg = <0x80402000 0x1000>;
+      interrupts = <13>;
+      interrupt-parent = <&vic1>;
+      vdevnum = <1>;
+      fepnum = <7>;
+      udcg-handle = <&udcg>;
+    };
+
+    coretemp: coretemp@c0000130 {
+      compatible = "hpe,gxp-coretemp";
+      reg = <0xc0000130 0x8>;
+    };
+
+    syspower: syspower {
+      compatible = "hpe,gxp-power";
+      psu_phandle = <&psu1>, <&psu2>;
+    };
+  };
+
+  clocks {
+    osc: osc {
+      compatible = "fixed-clock";
+      #clock-cells = <0>;
+      clock-output-names = "osc";
+      clock-frequency = <33333333>;
+    };
+
+    iopclk: iopclk {
+      compatible = "fixed-clock";
+      #clock-cells = <0>;
+      clocks = <&osc>;
+      clock-out-put-names = "iopclk";
+      clock-frequency = <400000000>;
+    };
+
+    memclk: memclk {
+      compatible = "fixed-clock";
+      #clock-cells = <0>;
+      clocks = <&osc>;
+      clock-out-put-names = "memclk";
+      clock-frequency = <800000000>;
+    };
+  };
+};
diff --git a/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc_%.bbappend b/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc_%.bbappend
new file mode 100644
index 0000000..57be249
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/recipes-kernel/linux/linux-obmc_%.bbappend
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/linux-obmc:"
+SRC_URI += "file://gxp.dts \
+            "
+
+do_patch_append() {
+  for DTB in "${KERNEL_DEVICETREE}"; do
+      DT=`basename ${DTB} .dtb`
+      if [ -r "${WORKDIR}/${DT}.dts" ]; then
+          cp ${WORKDIR}/${DT}.dts \
+              ${STAGING_KERNEL_DIR}/arch/${ARCH}/boot/dts
+      fi
+  done
+ 
+}
+
diff --git a/meta-hpe/meta-dl360poc/recipes-phosphor/image/obmc-phosphor-image.bbappend b/meta-hpe/meta-dl360poc/recipes-phosphor/image/obmc-phosphor-image.bbappend
new file mode 100644
index 0000000..ad67245
--- /dev/null
+++ b/meta-hpe/meta-dl360poc/recipes-phosphor/image/obmc-phosphor-image.bbappend
@@ -0,0 +1,23 @@
+
+
+do_generate_hpe_image() {
+    # Add gxp-bootblock to hpe-section
+    dd bs=1k conv=notrunc seek=64 \
+          if=${DEPLOY_DIR_IMAGE}/${HPE_GXP_BOOTBLOCK_IMAGE} \
+          of=${DEPLOY_DIR_IMAGE}/hpe-section
+}
+
+do_generate_static_tar() {
+
+  ln -sf ${S}/MANIFEST MANIFEST
+  ln -sf ${S}/publickey publickey
+  make_image_links ${OVERLAY_BASETYPE} ${IMAGE_BASETYPE}
+
+  make_signatures image-u-boot image-kernel image-rofs image-rwfs image-section MANIFEST publickey
+  make_tar_of_images static MANIFEST publickey ${signature_files}
+
+  # Maintain non-standard legacy link.
+  cd ${IMGDEPLOYDIR}
+  ln -sf ${IMAGE_NAME}.static.mtd.tar ${IMGDEPLOYDIR}/${MACHINE}-${DATETIME}.tar
+}
+
diff --git a/meta-hpe/meta-gxp/classes/gxp-bootblock-n-poc.bbclass b/meta-hpe/meta-gxp/classes/gxp-bootblock-n-poc.bbclass
new file mode 100644
index 0000000..2062030
--- /dev/null
+++ b/meta-hpe/meta-gxp/classes/gxp-bootblock-n-poc.bbclass
@@ -0,0 +1,20 @@
+LICENSE = "CLOSED"
+LIC_FILES_CHKSUM = ""
+
+
+BBRANCH = "master"
+SRC_URI = "git://github.com/HewlettPackard/gxp-bootblock.git;branch=${BBRANCH}"
+SRCREV = "1d4b424934ab3a2f22cf1b9a459a38e45971509f"
+S = "${WORKDIR}/git"
+
+inherit deploy
+
+do_deploy () {
+  install -d ${DEPLOYDIR}
+
+  install -m 644 gxp-bootblock-dl360poc.bin ${DEPLOYDIR}/gxp-bootblock.bin
+
+}
+
+addtask deploy before do_build after do_compile
+
diff --git a/meta-hpe/meta-gxp/conf/layer.conf b/meta-hpe/meta-gxp/conf/layer.conf
new file mode 100644
index 0000000..eafb7ba
--- /dev/null
+++ b/meta-hpe/meta-gxp/conf/layer.conf
@@ -0,0 +1,12 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+            ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "gxp-layer"
+BBFILE_PATTERN_gxp-layer = "^${LAYERDIR}/"
+LAYERVERSION_gxp-layer = "1"
+LAYERSERIES_COMPAT_gxp-layer = "zeus warrior dunfell"
+
+GXPBASE = '${@os.path.normpath("${LAYERDIR}/")}'
diff --git a/meta-hpe/meta-gxp/conf/machine/include/gxp.inc b/meta-hpe/meta-gxp/conf/machine/include/gxp.inc
new file mode 100644
index 0000000..8f515d9
--- /dev/null
+++ b/meta-hpe/meta-gxp/conf/machine/include/gxp.inc
@@ -0,0 +1,22 @@
+#@TYPE: Machine
+#@NAME: HPE GXP
+#@DESCRIPTION: Common machine configuration for the HPE GXP Chip
+
+require conf/machine/include/hpe_soc.inc
+
+UBOOT_ARCH ?= "arm"
+
+DISTRO_FEATURES ?= "ipv4 ipv6"
+
+SOC_FAMILY = "gxp-b1"
+include conf/machine/include/soc-family.inc
+MACHINEOVERRIDES .= ":gxp"
+
+DEFAULTTUNE ?= "armv6-novfp"
+require conf/machine/include/arm/arch-armv6.inc
+
+UBOOT_MACHINE = "gxp_defconfig"
+UBOOT_ENTRYPOINT = "0x40100000"
+UBOOT_LOADADDRESS = "0x40100000"
+
+
diff --git a/meta-hpe/meta-gxp/conf/machine/include/hpe_soc.inc b/meta-hpe/meta-gxp/conf/machine/include/hpe_soc.inc
new file mode 100644
index 0000000..016d9c6
--- /dev/null
+++ b/meta-hpe/meta-gxp/conf/machine/include/hpe_soc.inc
@@ -0,0 +1,6 @@
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-obmc"
+
+PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-gxp"
+PREFERRED_PROVIDER_u-boot ?= "u-boot-gxp"
+//PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-fw-utils-gxp"
+
diff --git a/meta-hpe/meta-gxp/recipes-bsp/image/gxp-bootblock.bb b/meta-hpe/meta-gxp/recipes-bsp/image/gxp-bootblock.bb
new file mode 100644
index 0000000..9699375
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-bsp/image/gxp-bootblock.bb
@@ -0,0 +1 @@
+inherit gxp-bootblock-n-poc
diff --git a/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-common-gxp_2019.07.inc b/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-common-gxp_2019.07.inc
new file mode 100644
index 0000000..13cd7b4
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-common-gxp_2019.07.inc
@@ -0,0 +1,16 @@
+HOMEPAGE = "https://www.github.com/HewlettPackard/gxp-uboot"
+DEPENDS += "flex-native bison-native bc-native"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+PE = "1"
+
+# We use the revision in order to avoid having to fetch it from the
+# repo during parse
+SRCREV = "e15b2ace2d7f38d470ba3b0415d47e05281c7660"
+UBRANCH = "v2019.07-gxp-openbmc"
+SRC_URI = "git://github.com/HewlettPackard/gxp-uboot.git;branch=${UBRANCH}"
+
+S = "${WORKDIR}/git"
+
+PV = "v2019.07+git${SRCPV}"
diff --git a/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-gxp_2019.07.bb b/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-gxp_2019.07.bb
new file mode 100644
index 0000000..58a65b3
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-bsp/u-boot/u-boot-gxp_2019.07.bb
@@ -0,0 +1,7 @@
+require recipes-bsp/u-boot/u-boot-common.inc
+require recipes-bsp/u-boot/u-boot.inc
+require u-boot-common-gxp_2019.07.inc
+
+S = "${WORKDIR}/git"
+
+PROVIDES += "u-boot"
diff --git a/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions.bb b/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions.bb
new file mode 100644
index 0000000..dc18565
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions.bb
@@ -0,0 +1,15 @@
+SUMMARY = "udev rules for MTD partitions"
+DESCRIPTION = "udev rules for MTD partitions"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+S = "${WORKDIR}"
+SRC_URI += "file://76-gxp-mtd-partitions.rules"
+
+RDEPENDS_${PN} += "udev"
+
+do_install() {
+    install -d ${D}/${base_libdir}/udev/rules.d
+    install -m 0644 ${WORKDIR}/76-gxp-mtd-partitions.rules ${D}/${base_libdir}/udev/rules.d
+}
diff --git a/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions/76-gxp-mtd-partitions.rules b/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions/76-gxp-mtd-partitions.rules
new file mode 100644
index 0000000..28e4586
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-core/udev/udev-gxp-mtd-partitions/76-gxp-mtd-partitions.rules
@@ -0,0 +1 @@
+ENV{DEVTYPE}=="mtd", SYMLINK+="mtd/%s{name}"
diff --git a/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc.inc b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc.inc
new file mode 100644
index 0000000..40de352
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc.inc
@@ -0,0 +1,23 @@
+DESCRIPTION = "Linux kernel for GXP"
+SECTION = "kernel"
+LICENSE = "GPLv2"
+
+PROVIDES += "virtual/kernel"
+
+KCONFIG_MODE="--alldefconfig"
+
+KSRC ?= "git://github.com/HewlettPackard/gxp-linux.git;branch=${KBRANCH}"
+SRC_URI = "${KSRC}"
+SRC_URI += " file://defconfig"
+
+FILESEXTRAPATHS_prepend_linux-obmc := "${THISDIR}/linux-obmc:"
+
+LINUX_VERSION_EXTENSION ?= "-${SRCREV}"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+# From 4.16+ the COPYING file changed
+LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
diff --git a/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/defconfig b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/defconfig
new file mode 100644
index 0000000..1507daf
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/defconfig
@@ -0,0 +1,264 @@
+CONFIG_KERNEL_XZ=y
+CONFIG_DEFAULT_HOSTNAME="gxp"
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+CONFIG_ARCH_MULTI_V6=y
+CONFIG_ARCH_HPE=y
+CONFIG_ARCH_HPE_GXP=y
+CONFIG_SECCOMP=y
+# CONFIG_ATAGS is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_SUSPEND is not set
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM=y
+CONFIG_CRYPTO_SHA256_ARM=y
+CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_AES_ARM=y
+CONFIG_CRYPTO_CHACHA20_NEON=y
+CONFIG_CRYPTO_POLY1305_ARM=y
+CONFIG_JUMP_LABEL=y
+# CONFIG_STRICT_KERNEL_RWX is not set
+# CONFIG_BLK_DEBUG_FS is not set
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_KSM=y
+CONFIG_CLEANCACHE=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_PACKET_DIAG=y
+CONFIG_UNIX=y
+CONFIG_UNIX_DIAG=y
+CONFIG_XFRM_USER=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_INET=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+# CONFIG_IPV6_SIT is not set
+CONFIG_BPFILTER=y
+CONFIG_VLAN_8021Q=y
+CONFIG_NETLINK_DIAG=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_MTD=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_PHYSMAP=y
+CONFIG_MTD_PHYSMAP_OF=y
+CONFIG_MTD_PLATRAM=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_SPI_GXP_SPIFI=y
+CONFIG_BLK_DEV_NULL_BLK=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_EEPROM_AT24=y
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CADENCE is not set
+# CONFIG_NET_VENDOR_CAVIUM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_GOOGLE is not set
+# CONFIG_NET_VENDOR_HISILICON is not set
+# CONFIG_NET_VENDOR_HUAWEI is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_MICROSEMI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NI is not set
+# CONFIG_NET_VENDOR_PENSANDO is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_SYNOPSYS is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+CONFIG_UMAC=y
+# CONFIG_USB_NET_DRIVERS is not set
+# CONFIG_WLAN is not set
+# CONFIG_INPUT_LEDS is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_GPIO_POLLED=y
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=6
+CONFIG_SERIAL_8250_RUNTIME_UARTS=6
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_GXP_VUART=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_TTY_PRINTK=y
+CONFIG_IPMI_HANDLER=y
+CONFIG_IPMI_DEVICE_INTERFACE=y
+CONFIG_IPMI_SI=y
+CONFIG_IPMI_SSIF=y
+CONFIG_HPE_KCS_IPMI_BMC=y
+CONFIG_HW_RANDOM_TIMERIOMEM=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_GXP=y
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SLAVE_EEPROM=y
+CONFIG_I2C_SLAVE_MQUEUE=y
+CONFIG_SPI=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GXP=y
+CONFIG_SENSORS_EMC1403=y
+CONFIG_SENSORS_GXP_FAN_CTRL=y
+CONFIG_SENSORS_GXP_CORETEMP=y
+CONFIG_SENSORS_GXP_PSU=y
+CONFIG_SENSORS_GXP_POWER=y
+CONFIG_WATCHDOG=y
+CONFIG_GXP_WATCHDOG=y
+CONFIG_MFD_SYSCON=y
+CONFIG_FB=y
+CONFIG_FB_THUMBNAIL=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GXP_UDC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LEDS_TRIGGER_TRANSIENT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+# CONFIG_VIRTIO_MENU is not set
+# CONFIG_VHOST_MENU is not set
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_HPE_GXP_XREG=y
+CONFIG_HPE_GXP_FN2=y
+CONFIG_HPE_GXP_CSM=y
+CONFIG_HPE_GXP_SROM=y
+CONFIG_PECI=y
+CONFIG_PECI_CHARDEV=y
+CONFIG_FANOTIFY=y
+CONFIG_AUTOFS_FS=y
+CONFIG_OVERLAY_FS=y
+CONFIG_OVERLAY_FS_REDIRECT_DIR=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_JFFS2_FS=y
+# CONFIG_JFFS2_FS_WRITEBUFFER is not set
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_FS_XATTR=y
+# CONFIG_JFFS2_FS_POSIX_ACL is not set
+# CONFIG_JFFS2_FS_SECURITY is not set
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
+CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
+# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_ARC4=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC16=y
+# CONFIG_XZ_DEC_X86 is not set
+# CONFIG_XZ_DEC_POWERPC is not set
+# CONFIG_XZ_DEC_IA64 is not set
+# CONFIG_XZ_DEC_SPARC is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_PANIC_ON_OOPS=y
+CONFIG_SCHED_TRACER=y
+CONFIG_STACK_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_TEST_KSTRTOX=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_8250=y
+CONFIG_DEBUG_UART_PHYS=0xC00000F0
+CONFIG_DEBUG_UART_VIRT=0xF00000F0
+CONFIG_DEBUG_UART_8250_SHIFT=0
+CONFIG_EARLY_PRINTK=y
+CONFIG_UNWINDER_FRAME_POINTER=y
diff --git a/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.cfg b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.cfg
new file mode 100644
index 0000000..f5c01be
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.cfg
@@ -0,0 +1,7 @@
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_INPUT_LEDS is not set
+# CONFIG_INPUT_MOUSDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_INPUT_MOUSE is not set
diff --git a/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.scc b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.scc
new file mode 100644
index 0000000..78961af
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc/phosphor-gpio-keys.scc
@@ -0,0 +1,2 @@
+define KFEATURE_DESCRIPTION "Enable gpio-keys"
+kconf non-hardware phosphor-gpio-keys.cfg
diff --git a/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc_5.7.bb b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc_5.7.bb
new file mode 100644
index 0000000..a4543d6
--- /dev/null
+++ b/meta-hpe/meta-gxp/recipes-kernel/linux/linux-obmc_5.7.bb
@@ -0,0 +1,8 @@
+KBRANCH ?= "dev-5.7-gxp-openbmc"
+LINUX_VERSION ?= "5.7.10"
+
+SRCREV="1ca49db2b4baf304d29396a603d0308770797a5c"
+require linux-obmc.inc
+
+SRC_URI += "file://phosphor-gpio-keys.scc"
+SRC_URI += "file://phosphor-gpio-keys.cfg"
