summaryrefslogtreecommitdiff
path: root/meta-fii/meta-kudo/recipes-kudo
diff options
context:
space:
mode:
Diffstat (limited to 'meta-fii/meta-kudo/recipes-kudo')
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update.bb33
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/config-bios.json19
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/phosphor-ipmi-flash-bios-update.service6
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update.bb20
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update/config-bmc.json20
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update.bb39
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-bmccpld.json19
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-mbcpld.json20
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-bmccpld-update.service9
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-mbcpld-update.service9
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw.bb34
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.service10
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh28
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh120
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb41
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json19
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json20
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service9
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service9
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/network/usb-network.bb29
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/network/usb-network/00-bmc-usb0.network7
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.service10
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.sh27
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb30
24 files changed, 575 insertions, 12 deletions
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update.bb
new file mode 100644
index 000000000..b126bfc8c
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Phosphor OpenBMC Kudo BIOS Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo BIOS Firmware Upgrade Comman Daemon"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+inherit obmc-phosphor-systemd
+
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-bios.json"
+
+SRC_URI_append_kudo = " \
+ file://phosphor-ipmi-flash-bios-update.service \
+ file://config-bios.json \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append_kudo = " \
+ phosphor-ipmi-flash-bios-update.service \
+ "
+
+do_install () {
+ install -d ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-bios.json ${D}${datadir}/phosphor-ipmi-flash
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-bios-update.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/config-bios.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/config-bios.json
new file mode 100644
index 000000000..de2382346
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/config-bios.json
@@ -0,0 +1,19 @@
+[{
+ "blob": "/flash/bios",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/bios-image"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "phosphor-ipmi-flash-bios-update.service"
+ }
+ }
+}]
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/phosphor-ipmi-flash-bios-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/phosphor-ipmi-flash-bios-update.service
new file mode 100644
index 000000000..1702153d7
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bios-update/phosphor-ipmi-flash-bios-update.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Phosphor-ipmi-flash update BIOS firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh bios /run/initramfs/bios-image
+Type=oneshot \ No newline at end of file
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update.bb
new file mode 100644
index 000000000..184f3efc6
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Phosphor OpenBMC Kudo BMC Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo BMC Firmware Upgrade Comman Daemon"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-bmc.json"
+
+SRC_URI_append_kudo = " \
+ file://config-bmc.json \
+ "
+
+do_install () {
+ install -d ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-bmc.json ${D}${datadir}/phosphor-ipmi-flash
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update/config-bmc.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update/config-bmc.json
new file mode 100644
index 000000000..5aefeb342
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-bmc-update/config-bmc.json
@@ -0,0 +1,20 @@
+[{
+ "blob": "/flash/image",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/image-bmc"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "reboot.target",
+ "mode": "replace-irreversibly"
+ }
+ }
+}]
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update.bb
new file mode 100644
index 000000000..b2fd8209d
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Phosphor OpenBMC Kudo CPLD Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo CPLD Firmware Upgrade Comman Daemon"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+inherit obmc-phosphor-systemd
+
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-bmccpld.json"
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-mbcpld.json"
+
+SRC_URI_append_kudo = " \
+ file://phosphor-ipmi-flash-bmccpld-update.service \
+ file://phosphor-ipmi-flash-mbcpld-update.service \
+ file://config-bmccpld.json \
+ file://config-mbcpld.json \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append_kudo = " \
+ phosphor-ipmi-flash-bmccpld-update.service \
+ phosphor-ipmi-flash-mbcpld-update.service \
+ "
+
+do_install () {
+ install -d ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-bmccpld.json ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-mbcpld.json ${D}${datadir}/phosphor-ipmi-flash
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-bmccpld-update.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-mbcpld-update.service ${D}${systemd_system_unitdir}
+} \ No newline at end of file
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-bmccpld.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-bmccpld.json
new file mode 100644
index 000000000..687aa11c2
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-bmccpld.json
@@ -0,0 +1,19 @@
+[{
+ "blob": "/flash/bmccpld",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/bmc-cpld.svf"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "phosphor-ipmi-flash-bmccpld-update.service"
+ }
+ }
+}]
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-mbcpld.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-mbcpld.json
new file mode 100644
index 000000000..f5870bb33
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/config-mbcpld.json
@@ -0,0 +1,20 @@
+[{
+ "blob": "/flash/mbcpld",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/mb-cpld.svf"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "phosphor-ipmi-flash-mbcpld-update.service"
+ }
+ }
+}]
+
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-bmccpld-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-bmccpld-update.service
new file mode 100644
index 000000000..b4f91f81c
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-bmccpld-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update BMC CPLD firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh bmccpld /run/initramfs/bmc-cpld.svf
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-bmccpld-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-mbcpld-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-mbcpld-update.service
new file mode 100644
index 000000000..51b6c9c4b
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-cpld-update/phosphor-ipmi-flash-mbcpld-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update MB CPLD firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh mbcpld /run/initramfs/mb-cpld.svf
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-mbcpld-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw.bb
new file mode 100644
index 000000000..3f5a30ec6
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Phosphor OpenBMC Kudo Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo Firmware Upgrade Comman Daemon"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+inherit obmc-phosphor-systemd
+
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+
+SRC_URI_append_kudo = " \
+ file://kudo-fw.sh \
+ file://kudo-fw-ver.service \
+ file://kudo-fw-ver.sh \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append_kudo = " \
+ kudo-fw-ver.service \
+ "
+
+do_install () {
+ install -d ${D}/${sbindir}
+ install -m 0755 ${WORKDIR}/kudo-fw.sh ${D}/${sbindir}/kudo-fw.sh
+ install -m 0755 ${WORKDIR}/kudo-fw-ver.sh ${D}/${sbindir}/kudo-fw-ver.sh
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/kudo-fw-ver.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.service
new file mode 100644
index 000000000..24e21d236
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Firmware Version Daemon
+
+[Service]
+RemainAfterExit=yes
+Type=oneshot
+ExecStart=/usr/sbin/kudo-fw-ver.sh
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh
new file mode 100644
index 000000000..498fe7d0a
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh
@@ -0,0 +1,28 @@
+
+#!/bin/bash
+BMC_CPLD_VER_FILE="/run/cpld0.version"
+MB_CPLD_VER_FILE="/run/cpld1.version"
+ver=''
+
+function fw_rev() {
+ case $1 in
+ cpldb)
+ rsp=($(i2cget -y -f -a 13 0x76 0x00 i 5))
+ ver=$(printf '%d.%d.%d.%d' ${rsp[6]} ${rsp[5]} ${rsp[4]} ${rsp[3]})
+ ;;
+ cpldm)
+ I2C_BUS_DEV=$(readlink "/sys/bus/i2c/devices/4-0077/channel-2" | cut -c 8-)
+ rsp=($(i2cget -y -f -a $I2C_BUS_DEV 0x76 0x00 i 5))
+ ver=$(printf '%d.%d.%d.%d' ${rsp[6]} ${rsp[5]} ${rsp[4]} ${rsp[3]})
+ ;;
+ *)
+ ;;
+ esac
+}
+
+fw_rev cpldb
+echo "BMC CPLD version : ${ver}"
+echo "${ver}" > "${BMC_CPLD_VER_FILE}"
+fw_rev cpldm
+echo "MB CPLD version : ${ver}"
+echo "${ver}" > "${MB_CPLD_VER_FILE}" \ No newline at end of file
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh
new file mode 100644
index 000000000..e42795f0c
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+devpath="/sys/bus/i2c/devices/13-0077/driver"
+
+# set_gpio_ctrl
+# pin #, direction, high(1)/low(0)
+function set_gpio_ctrl() {
+ echo $1 > /sys/class/gpio/export
+ echo $2 > /sys/class//gpio/gpio$1/direction
+ echo $3 > /sys/class/gpio/gpio$1/value
+ echo $1 > /sys/class/gpio/unexport
+ sleep 1
+}
+
+function fwbios() {
+ KERNEL_FIU_ID="c0000000.spi"
+ KERNEL_SYSFS_FIU="/sys/bus/platform/drivers/NPCM-FIU"
+
+ # switch the SPI mux from Host to BMC
+ i2cset -y -f -a 13 0x76 0x10 0x01
+
+ # rescan the spi bus
+ if [ -d "${KERNEL_SYSFS_FIU}/${KERNEL_FIU_ID}" ]; then
+ echo "${KERNEL_FIU_ID}" > "${KERNEL_SYSFS_FIU}"/unbind
+ sleep 1
+ fi
+ echo "${KERNEL_FIU_ID}" > "${KERNEL_SYSFS_FIU}"/bind
+
+ # write to the mtd device
+ BIOS_MTD=$(cat /proc/mtd | grep "bios" | sed -n 's/^\(.*\):.*/\1/p')
+
+ if [ ! -f $1 ]; then
+ echo " Cannot find the" $1 "image file"
+ exit 1
+ fi
+
+ echo "Flashing BIOS @/dev/$BIOS_MTD"
+ flashcp -v $1 /dev/$BIOS_MTD
+ wait
+
+ # switch the SPI mux from BMC to Host
+ if [ -d "${KERNEL_SYSFS_FIU}/${KERNEL_FIU_ID}" ]; then
+ echo "${KERNEL_FIU_ID}" > "${KERNEL_SYSFS_FIU}"/unbind
+ fi
+ i2cset -y -f -a 13 0x76 0x10 0x00
+
+ if [[ $(find ${1} -type f -size +17156k 2>/dev/null) ]]; then
+ echo "Extracting the SCP from the image"
+ dd if=$1 bs=1024 skip=17156 count=256 of=/run/initramfs/myscp.img
+ fwscp /run/initramfs/myscp.img
+ fi
+ rm -f $1
+}
+
+
+function fwbmccpld() {
+ # BMC_JTAG_MUX_1 #218 0:BMC 1:MB
+ set_gpio_ctrl 218 out 0
+ loadsvf -d /dev/jtag0 -s $1 -m 0
+ wait
+ set_gpio_ctrl 218 out 1
+ rm -f $1
+}
+
+function fwmbcpld() {
+ # BMC_JTAG_MUX_1 #218 0:BMC 1:MB
+ # BMC_JTAG_SEL #164 0:BMC 1:CPU
+ set_gpio_ctrl 218 out 1
+ set_gpio_ctrl 164 out 1
+ loadsvf -d /dev/jtag0 -s $1 -m 0
+ wait
+ rm -f $1
+}
+
+function fwscp() {
+ # BMC_I2C_BACKUP_SEL #168 0:failover, 1:main
+ # BMC_CPU_EEPROM_I2C_SEL #85 0:BMC, 1:CPU
+ set_gpio_ctrl 168 out 1
+ set_gpio_ctrl 85 out 0
+ I2C_BUS_DEV=$(ls -l $devpath/"13-0077/" | grep channel-0 | awk '{ print $11}' | cut -c 8-)
+ ampere_eeprom_prog -b $I2C_BUS_DEV -s 0x50 -p -f $1
+ wait
+ set_gpio_ctrl 85 out 1
+ set_gpio_ctrl 168 out 1
+ rm -f $1
+}
+
+function fwscpback() {
+ # BMC_I2C_BACKUP_SEL #168 0:failover, 1:main
+ # BMC_CPU_EEPROM_I2C_SEL #85 0:BMC, 1:CPU
+ set_gpio_ctrl 168 out 0
+ set_gpio_ctrl 85 out 0
+ I2C_BUS_DEV=$(ls -l $devpath/"13-0077/" | grep channel-0 | awk '{ print $11}' | cut -c 8-)
+ ampere_eeprom_prog -b $I2C_BUS_DEV -s 0x50 -p -f $1
+ wait
+ set_gpio_ctrl 85 out 1
+ set_gpio_ctrl 168 out 1
+ rm -f $1
+}
+
+
+case $1 in
+ bios)
+ fwbios $2
+ ;;
+ bmccpld)
+ fwbmccpld $2
+ ;;
+ mbcpld)
+ fwmbcpld $2
+ ;;
+ scp)
+ fwscp $2
+ ;;
+ scpback)
+ fwscpback $2
+ ;;
+ *)
+ ;;
+esac
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb
new file mode 100644
index 000000000..8d2fb1324
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Phosphor OpenBMC Kudo SCP Firmware Upgrade Command"
+DESCRIPTION = "Phosphor OpenBMC Kudo SCP Firmware Upgrade Comman Daemon"
+FILESEXTRAPATHS_prepend := "${THISDIR}/kudo-scp-update:"
+
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit systemd
+inherit obmc-phosphor-systemd
+
+DEPENDS += "systemd"
+DEPENDS += "phosphor-ipmi-flash"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-scp.json"
+FILES_${PN} += "${datadir}/phosphor-ipmi-flash/config-scpback.json"
+
+SRC_URI_append_kudo = " \
+ file://phosphor-ipmi-flash-scp-update.service \
+ file://phosphor-ipmi-flash-scpback-update.service \
+ file://config-scp.json \
+ file://config-scpback.json \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append_kudo = " \
+ phosphor-ipmi-flash-scp-update.service \
+ phosphor-ipmi-flash-scpback-update.service \
+ "
+
+do_install () {
+ install -d ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-scp.json ${D}${datadir}/phosphor-ipmi-flash
+ install -m 0644 ${WORKDIR}/config-scpback.json ${D}${datadir}/phosphor-ipmi-flash
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-scp-update.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/phosphor-ipmi-flash-scpback-update.service ${D}${systemd_system_unitdir}
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json
new file mode 100644
index 000000000..563238c6a
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scp.json
@@ -0,0 +1,19 @@
+[{
+ "blob": "/flash/scp",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/scp-fw.slim"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "phosphor-ipmi-flash-scp-update.service"
+ }
+ }
+}]
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json
new file mode 100644
index 000000000..0e6c61425
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/config-scpback.json
@@ -0,0 +1,20 @@
+[{
+ "blob": "/flash/scpb",
+ "handler": {
+ "type": "file",
+ "path": "/run/initramfs/scp-fw.slim"
+ },
+ "actions": {
+ "preparation": {
+ "type": "skip"
+ },
+ "verification": {
+ "type": "skip"
+ },
+ "update": {
+ "type": "systemd",
+ "unit": "phosphor-ipmi-flash-scpback-update.service"
+ }
+ }
+}]
+
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service
new file mode 100644
index 000000000..8d5e2da30
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scp-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update main EEPROM SCP firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh scp /run/initramfs/scp-fw.slim
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-scp-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service
new file mode 100644
index 000000000..c247552bf
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-scp-update/phosphor-ipmi-flash-scpback-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Phosphor-ipmi-flash update failover EEPROM SCP firmware service
+
+[Service]
+ExecStart=/usr/sbin/kudo-fw.sh scpback /run/initramfs/scp-fw.slim
+Type=oneshot
+
+[Install]
+WantedBy=phosphor-ipmi-flash-scpback-update.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/network/usb-network.bb b/meta-fii/meta-kudo/recipes-kudo/network/usb-network.bb
new file mode 100644
index 000000000..249e454ae
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/network/usb-network.bb
@@ -0,0 +1,29 @@
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit allarch systemd
+
+DEPENDS += "systemd"
+RDEPENDS_${PN} += "libsystemd"
+RDEPENDS_${PN} += "bash"
+
+SRC_URI_append += " \
+ file://usb_network.sh \
+ file://usb_network.service \
+ file://00-bmc-usb0.network \
+ "
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN}_append = " usb_network.service"
+FILES_${PN} += "${sysconfdir_native}/systemd/network/00-bmc-usb0.network"
+
+do_install() {
+ install -d ${D}/${sbindir}
+ install -m 0755 ${WORKDIR}/usb_network.sh ${D}/${sbindir}
+
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/usb_network.service ${D}${systemd_unitdir}/system
+
+ install -d ${D}${sysconfdir_native}/systemd/network/
+ install -m 0644 ${WORKDIR}/00-bmc-usb0.network ${D}${sysconfdir_native}/systemd/network
+}
diff --git a/meta-fii/meta-kudo/recipes-kudo/network/usb-network/00-bmc-usb0.network b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/00-bmc-usb0.network
new file mode 100644
index 000000000..1b8d66e4d
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/00-bmc-usb0.network
@@ -0,0 +1,7 @@
+[Match]
+Name=usb0
+[Address]
+Address=169.254.95.118/16
+[Network]
+LinkLocalAddressing=ipv6
+IPv6AcceptRA=no
diff --git a/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.service b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.service
new file mode 100644
index 000000000..81a4e4244
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=enable usb network
+After=phosphor-ipmi-host.service
+
+[Service]
+Type=oneshot
+ExecStart=/bin/bash -c '/usr/sbin/usb_network.sh'
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.sh b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.sh
new file mode 100644
index 000000000..8d7804d06
--- /dev/null
+++ b/meta-fii/meta-kudo/recipes-kudo/network/usb-network/usb_network.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+cd /sys/kernel/config/usb_gadget
+
+if [ ! -f "g1" ]; then
+ mkdir g1
+ cd g1
+
+ echo 0x1d6b > idVendor # Linux foundation
+ echo 0x0104 > idProduct # Multifunction composite gadget
+ mkdir -p strings/0x409
+ echo "Linux" > strings/0x409/manufacturer
+ echo "Ethernet/ECM gadget" > strings/0x409/product
+
+ mkdir -p configs/c.1
+ echo 100 > configs/c.1/MaxPower
+ mkdir -p configs/c.1/strings/0x409
+ echo "ECM" > configs/c.1/strings/0x409/configuration
+
+ mkdir -p functions/ecm.usb0
+
+ ln -s functions/ecm.usb0 configs/c.1
+
+ echo f0835000.udc > UDC
+
+fi
+exit 0
diff --git a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
index be879455d..f64373e89 100644
--- a/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
+++ b/meta-fii/meta-kudo/recipes-kudo/packagegroups/packagegroup-kudo-apps.bb
@@ -5,26 +5,32 @@ inherit packagegroup
PROVIDES = "${PACKAGES}"
PACKAGES = " \
- ${PN}-kudo-system \
- ${PN}-kudo-common-utils \
- "
+ ${PN}-kudo-system \
+ ${PN}-kudo-fw \
+ "
PROVIDES += "virtual/obmc-system-mgmt"
RPROVIDES_${PN}-kudo-system += "virtual-obmc-system-mgmt"
+RPROVIDES_${PN}-kudo-fw += "virtual-obmc-system-mgmt"
SUMMARY_${PN}-kudo-system = "KUDO System"
RDEPENDS_${PN}-kudo-system = " \
- google-ipmi-sys \
- google-ipmi-i2c \
- "
-
-SUMMARY_${PN}-kudo-common-utils = "KUDO common utils"
-RDEPENDS_${PN}-kudo-common-utils = " \
ipmitool \
- phosphor-webui \
- phosphor-host-postd \
+ ethtool \
+ memtester \
loadsvf \
obmc-console \
- phosphor-sel-logger \
+ usb-network \
+ ncsid \
+ gbmc-mac-config \
+ "
+
+SUMMARY_${PN}-kudo-fw = "KUDO Firmware"
+RDEPENDS_${PN}-kudo-fw = " \
+ kudo-fw \
+ kudo-bios-update \
+ kudo-bmc-update \
+ kudo-cpld-update \
+ kudo-scp-update \
"