meta-quanta: Add meta-f0b machine

Initial introduction of Quanta F0B family equipped with Aspeed 2500 BMC SoC.

Tested: Build Quanta F0B board and load on the target hardware.
Ensure that BMC boots to console.

Change-Id: I572708c3e900e00ce82844471100c8434946eaf6
Signed-off-by: PKLee-Quanta <p.k.lee@quantatw.com>
diff --git a/meta-f0b/conf/bblayers.conf.sample b/meta-f0b/conf/bblayers.conf.sample
new file mode 100644
index 0000000..28b2582
--- /dev/null
+++ b/meta-f0b/conf/bblayers.conf.sample
@@ -0,0 +1,27 @@
+# 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-python \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-aspeed \
+  ##OEROOT##/meta-quanta \
+  ##OEROOT##/meta-quanta/meta-f0b \
+  "
+BBLAYERS_NON_REMOVABLE ?= " \
+  ##OEROOT##/meta \
+  ##OEROOT##/meta-openembedded/meta-oe \
+  ##OEROOT##/meta-openembedded/meta-networking \
+  ##OEROOT##/meta-openembedded/meta-python \
+  ##OEROOT##/meta-phosphor \
+  ##OEROOT##/meta-aspeed \
+  ##OEROOT##/meta-quanta \
+  ##OEROOT##/meta-quanta/meta-f0b \
+  "
diff --git a/meta-f0b/conf/conf-notes.txt b/meta-f0b/conf/conf-notes.txt
new file mode 100644
index 0000000..9b3c01a
--- /dev/null
+++ b/meta-f0b/conf/conf-notes.txt
@@ -0,0 +1,2 @@
+Common targets are:
+     obmc-phosphor-image
diff --git a/meta-f0b/conf/layer.conf b/meta-f0b/conf/layer.conf
new file mode 100644
index 0000000..66f5bb3
--- /dev/null
+++ b/meta-f0b/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 += "f0b-layer"
+BBFILE_PATTERN_f0b-layer = ""
+LAYERSERIES_COMPAT_f0b-layer = "thud"
diff --git a/meta-f0b/conf/local.conf.sample b/meta-f0b/conf/local.conf.sample
new file mode 100644
index 0000000..e892ef8
--- /dev/null
+++ b/meta-f0b/conf/local.conf.sample
@@ -0,0 +1,19 @@
+
+MACHINE ??= "f0b"
+DISTRO = "openbmc-phosphor"
+PACKAGE_CLASSES ?= "package_rpm"
+SANITY_TESTED_DISTROS_append ?= " *"
+EXTRA_IMAGE_FEATURES = "debug-tweaks"
+USER_CLASSES ?= "buildstats image-mklibs image-prelink"
+PATCHRESOLVE = "noop"
+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"
+CONF_VERSION = "1"
+INHERIT += "extrausers"
diff --git a/meta-f0b/conf/machine/f0b.conf b/meta-f0b/conf/machine/f0b.conf
new file mode 100644
index 0000000..7ffc266
--- /dev/null
+++ b/meta-f0b/conf/machine/f0b.conf
@@ -0,0 +1,23 @@
+KMACHINE = "aspeed"
+
+# The device tree of F0B is not ready yet, temporarily replace it with aspeed-ast2500-evb.dtb
+KERNEL_DEVICETREE = "${KMACHINE}-ast2500-evb.dtb"
+
+UBOOT_MACHINE = "ast_g5_phy_config"
+
+MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
+
+# Overwrite flash offsets
+FLASH_UBOOT_OFFSET = "0"
+FLASH_KERNEL_OFFSET = "512"
+FLASH_UBI_OFFSET = "${FLASH_KERNEL_OFFSET}"
+FLASH_ROFS_OFFSET = "4864"
+FLASH_RWFS_OFFSET = "49152"
+FLASH_SIZE = "65536"
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+
+PREFERRED_PROVIDER_virtual/obmc-host-ipmi-hw = "phosphor-ipmi-kcs"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-inventory = "f0b-ipmi-inventory-map-native"
+PREFERRED_PROVIDER_virtual/phosphor-ipmi-fru-read-inventory = "f0b-ipmi-fru-read-inventory-native"
diff --git a/meta-f0b/recipes-kernel/linux/linux-aspeed/f0b.cfg b/meta-f0b/recipes-kernel/linux/linux-aspeed/f0b.cfg
new file mode 100644
index 0000000..a875ae0
--- /dev/null
+++ b/meta-f0b/recipes-kernel/linux/linux-aspeed/f0b.cfg
@@ -0,0 +1,38 @@
+CONFIG_DEVMEM=y
+CONFIG_DEVKMEM=y
+CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_I2C_SLAVE=y
+CONFIG_I2C_SLAVE_MQUEUE=y
+CONFIG_SENSORS_TPS53622=y
+CONFIG_SENSORS_TPS53659=y
+CONFIG_SENSORS_TPS53679=y
+CONFIG_SENSORS_INA2XX=y
+CONFIG_EEPROM_AT24=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=y
+CONFIG_INET6_ESP=y
+CONFIG_INET6_IPCOMP=y
+CONFIG_IPV6_SIT=y
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_IPV6_SEG6_LWTUNNEL=y
+CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_MODULES=y
+CONFIG_ARM_MODULE_PLTS=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_ASPEED_VHUB=m
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_CONFIGFS_FS=m
diff --git a/meta-f0b/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-f0b/recipes-kernel/linux/linux-aspeed_%.bbappend
new file mode 100644
index 0000000..6d7b906
--- /dev/null
+++ b/meta-f0b/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI += " file://f0b.cfg"
diff --git a/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb b/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb
new file mode 100644
index 0000000..89d8610
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-fru-read-inventory-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "F0B inventory map for phosphor-ipmi-host"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+inherit phosphor-ipmi-host
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-read-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+        DEST=${D}${config_datadir}
+        install -d ${DEST}
+        install config.yaml ${DEST}
+}
diff --git a/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb b/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb
new file mode 100644
index 0000000..1831e59
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/ipmi/f0b-ipmi-inventory-map-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "F0B IPMI to DBus Inventory mapping."
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${QUANTABASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658"
+
+inherit native
+inherit phosphor-ipmi-fru
+
+SRC_URI += "file://config.yaml"
+
+PROVIDES += "virtual/phosphor-ipmi-fru-inventory"
+
+S = "${WORKDIR}"
+
+do_install() {
+        DEST=${D}${config_datadir}
+        install -d ${DEST}
+        install config.yaml ${DEST}
+}
diff --git a/meta-f0b/recipes-phosphor/ipmi/files/config.yaml b/meta-f0b/recipes-phosphor/ipmi/files/config.yaml
new file mode 100644
index 0000000..55d4890
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/ipmi/files/config.yaml
@@ -0,0 +1,75 @@
+0x01:
+  /system:
+    entityID: 23
+    entityInstance: 1
+    interfaces:
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Name
+          IPMIFruSection: Product
+  /system/motherboard:
+    entityID: 7
+    entityInstance: 1
+    interfaces:
+      xyz.openbmc_project.Inventory.Decorator.Asset:
+        BuildDate:
+          IPMIFruProperty: Mfg Date
+          IPMIFruSection: Board
+        SerialNumber:
+          IPMIFruProperty: Serial Number
+          IPMIFruSection: Board
+        PartNumber:
+          IPMIFruProperty: Part Number
+          IPMIFruSection: Board
+        Manufacturer:
+          IPMIFruProperty: Manufacturer
+          IPMIFruSection: Board
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Name
+          IPMIFruSection: Board
+      xyz.openbmc_project.Inventory.Decorator.Revision:
+        Version:
+          IPMIFruProperty: FRU File ID
+          IPMIFruSection: Board
+  /system/motherboard/Self:
+    entityID: 7
+    entityInstance: 1
+    interfaces:
+      xyz.openbmc_project.Inventory.Decorator.Asset:
+        BuildDate:
+          IPMIFruProperty: Mfg Date
+          IPMIFruSection: Board
+        SerialNumber:
+          IPMIFruProperty: Serial Number
+          IPMIFruSection: Board
+        PartNumber:
+          IPMIFruProperty: Part Number
+          IPMIFruSection: Board
+        Manufacturer:
+          IPMIFruProperty: Manufacturer
+          IPMIFruSection: Board
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Name
+          IPMIFruSection: Board
+      xyz.openbmc_project.Inventory.Decorator.Revision:
+        Version:
+          IPMIFruProperty: FRU File ID
+          IPMIFruSection: Board
+      xyz.openbmc_project.Inventory.Item.Board:
+  /system/motherboard/product:
+    entityID: 7
+    entityInstance: 2
+    interfaces:
+      xyz.openbmc_project.Inventory.Item:
+        PrettyName:
+          IPMIFruProperty: Name
+          IPMIFruSection: Product
+      xyz.openbmc_project.Inventory.Decorator.Asset:
+        Manufacturer:
+          IPMIFruProperty: Manufacturer
+          IPMIFruSection: Product
+        PartNumber:
+          IPMIFruProperty: Model Number
+          IPMIFruSection: Product
diff --git a/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/motherboard b/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/motherboard
new file mode 100644
index 0000000..94535b9
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/motherboard
@@ -0,0 +1,2 @@
+SYSFS_PATH=/sys/bus/i2c/devices/6-0054/eeprom
+FRUID=1
diff --git a/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
new file mode 100644
index 0000000..cc2c071
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
@@ -0,0 +1,20 @@
+inherit obmc-phosphor-systemd
+
+FILESEXTRAPATHS_prepend_f0b := "${THISDIR}/${PN}:"
+
+EEPROM_NAMES = "motherboard "
+
+EEPROMFMT = "system/{0}"
+EEPROM_ESCAPEDFMT = "system-{0}"
+EEPROMS = "${@compose_list(d, 'EEPROMFMT', 'EEPROM_NAMES')}"
+EEPROMS_ESCAPED = "${@compose_list(d, 'EEPROM_ESCAPEDFMT', 'EEPROM_NAMES')}"
+
+ENVFMT = "obmc/eeproms/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}_append_f0b := " ${@compose_list(d, 'ENVFMT', 'EEPROMS')}"
+
+TMPL = "obmc-read-eeprom@.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+INSTFMT = "obmc-read-eeprom@{0}.service"
+FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}"
+
+SYSTEMD_LINK_${PN}_append_f0b := " ${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@40.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@40.conf
new file mode 100644
index 0000000..c9ff626
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@40.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p0_dimm_vr0_lin"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@41.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@41.conf
new file mode 100644
index 0000000..68661c4
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/ina219@41.conf
@@ -0,0 +1,5 @@
+LABEL_curr1 = "p0_dimm_vr1_lin"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@67.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@67.conf
new file mode 100644
index 0000000..2b8aafa
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@67.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p0_vccio_vr_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_vccio_vr_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p0_vccio_vr_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_vccio_vr_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p0_vccio_vr_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@77.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@77.conf
new file mode 100644
index 0000000..2ce311c
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53622@77.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p1_vccio_vr_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_vccio_vr_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p1_vccio_vr_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_vccio_vr_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p1_vccio_vr_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@62.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@62.conf
new file mode 100644
index 0000000..d77581f
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@62.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p0_dimm_vr0_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_dimm_vr0_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p0_dimm_vr0_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_dimm_vr0_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p0_dimm_vr0_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@64.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@64.conf
new file mode 100644
index 0000000..2a6b47b
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@64.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p0_dimm_vr1_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_dimm_vr1_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p0_dimm_vr1_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_dimm_vr1_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p0_dimm_vr1_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@72.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@72.conf
new file mode 100644
index 0000000..7f443d4
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@72.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p1_dimm_vr0_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_dimm_vr0_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p1_dimm_vr0_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_dimm_vr0_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p1_dimm_vr0_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@74.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@74.conf
new file mode 100644
index 0000000..7d55f27
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53659@74.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p1_dimm_vr1_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_dimm_vr1_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p1_dimm_vr1_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_dimm_vr1_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p1_dimm_vr1_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@60.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@60.conf
new file mode 100644
index 0000000..13b0229
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@60.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p0_vccin_vr_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p0_vccin_vr_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p0_vccin_vr_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p0_vccin_vr_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p0_vccin_vr_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@70.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@70.conf
new file mode 100644
index 0000000..a1271c7
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@180/tps53679@70.conf
@@ -0,0 +1,29 @@
+LABEL_temp1 = "p1_vccin_vr_temp"
+WARNHI_temp1 = "10500"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "11500"
+CRITLO_temp1 = "0"
+
+LABEL_curr1 = "p1_vccin_vr_current"
+WARNLO_curr1 = "0"
+CRITLO_curr1 = "0"
+WARNHI_curr1 = "231000"
+CRITHI_curr1 = "288000"
+
+LABEL_in1 = "p1_vccin_vr_voltage"
+WARNLO_in1 = "0"
+CRITLO_in1 = "9500"
+WARNHI_in1 = "0"
+CRITHI_in1 = "17000"
+
+LABEL_power1 = "p1_vccin_vr_pin"
+WARNLO_power1 = "0"
+CRITLO_power1 = "0"
+WARNHI_power1 = "0"
+CRITHI_power1 = "0"
+
+LABEL_power2 = "p1_vccin_vr_pout"
+WARNLO_power2 = "0"
+CRITLO_power2 = "0"
+WARNHI_power2 = "0"
+CRITHI_power2 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@1c0/tmp421@4c.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@1c0/tmp421@4c.conf
new file mode 100644
index 0000000..eebfaed
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@1c0/tmp421@4c.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "inlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@80/tmp421@4c.conf b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@80/tmp421@4c.conf
new file mode 100644
index 0000000..a0cd50a
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/ahb/apb/i2c@1e78a000/i2c-bus@80/tmp421@4c.conf
@@ -0,0 +1,5 @@
+LABEL_temp1 = "outlet"
+WARNHI_temp1 = "60000"
+WARNLO_temp1 = "0"
+CRITHI_temp1 = "70000"
+CRITLO_temp1 = "0"
diff --git a/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
new file mode 100644
index 0000000..b9d7fb3
--- /dev/null
+++ b/meta-f0b/recipes-phosphor/sensors/phosphor-hwmon_%.bbappend
@@ -0,0 +1,22 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append_f0b = " --enable-negative-errno-on-fail"
+
+NAME = " \
+        i2c@1e78a000/i2c-bus@80/tmp421@4c \
+        i2c@1e78a000/i2c-bus@1c0/tmp421@4c \
+        i2c@1e78a000/i2c-bus@180/tps53679@60\
+        i2c@1e78a000/i2c-bus@180/tps53659@62\
+        i2c@1e78a000/i2c-bus@180/tps53659@64\
+        i2c@1e78a000/i2c-bus@180/tps53679@70\
+        i2c@1e78a000/i2c-bus@180/tps53659@72\
+        i2c@1e78a000/i2c-bus@180/tps53659@74\
+        i2c@1e78a000/i2c-bus@180/ina219@40\
+        i2c@1e78a000/i2c-bus@180/ina219@41\
+        "
+ITEMSFMT = "ahb/apb/{0}.conf"
+
+ITEMS = "${@compose_list(d, 'ITEMSFMT', 'NAME')}"
+
+ENVS = "obmc/hwmon/{0}"
+SYSTEMD_ENVIRONMENT_FILE_${PN} += "${@compose_list(d, 'ENVS', 'ITEMS')}"