meta-ampere: mtjade: fru: use dynamic sensors

Change to use dynamic sensors for FRU support to take advantage of IPMI
fru read/write commands.

Tested:
1. Check FRU reading
$ ipmitool fru print
2. Write fru.bin into FRU EEPROM

Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com>
Signed-off-by: Thang Tran <thuutran@amperecomputing.com>
Change-Id: I0d0b52ae7b0fd301a14d0d2894268637d867a5b8
diff --git a/meta-ampere/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/meta-ampere/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
new file mode 100644
index 0000000..75177dc
--- /dev/null
+++ b/meta-ampere/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
@@ -0,0 +1,9 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+inherit obmc-phosphor-systemd
+
+HOSTIPMI_PROVIDER_LIBRARY:remove = "libstrgfnhandler.so"
+
+do_install:append () {
+	rm -rf ${D}${libdir}/ipmid-providers
+}
diff --git a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config.bb b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config.bb
index c9f2702..376ebc0 100644
--- a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config.bb
+++ b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config.bb
@@ -5,27 +5,18 @@
 inherit allarch
 
 SRC_URI = " \
-    file://ipmi-sensors-${MACHINE}.yaml \
-    file://mtjade-ipmi-fru.yaml \
-    file://mtjade-ipmi-fru-properties.yaml \
+    file://mtjade-ipmi-sensors.yaml \
     "
 
 S = "${WORKDIR}"
 
 do_install() {
-    install -m 0644 -D ipmi-sensors-${MACHINE}.yaml \
-        ${D}${datadir}/${BPN}/ipmi-sensors-${MACHINE}.yaml
-    cat mtjade-ipmi-fru.yaml > fru-read.yaml
-    install -m 0644 -D mtjade-ipmi-fru-properties.yaml \
-        ${D}${datadir}/${BPN}/ipmi-extra-properties.yaml
-    install -m 0644 -D fru-read.yaml \
-        ${D}${datadir}/${BPN}/ipmi-fru-read.yaml
+    install -m 0644 -D mtjade-ipmi-sensors.yaml \
+        ${D}${datadir}/${BPN}/ipmi-sensors.yaml
 }
 
 FILES:${PN}-dev = " \
-    ${datadir}/${BPN}/ipmi-sensors-${MACHINE}.yaml \
-    ${datadir}/${BPN}/ipmi-extra-properties.yaml \
-    ${datadir}/${BPN}/ipmi-fru-read.yaml \
-    "
+                   ${datadir}/${BPN}/ipmi-sensors.yaml \
+                  "
 
 ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru-properties.yaml b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru-properties.yaml
deleted file mode 100644
index db8de9f..0000000
--- a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru-properties.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-/system/chassis/motherboard:
-    xyz.openbmc_project.Inventory.Decorator.Replaceable:
-        FieldReplaceable: 'true'
-    xyz.openbmc_project.Inventory.Decorator.Cacheable:
-        Cached: 'true'
-    xyz.openbmc_project.Inventory.Item:
-        Present: 'true'
-
-/system/chassis:
-    xyz.openbmc_project.Inventory.Decorator.Replaceable:
-        FieldReplaceable: 'true'
-    xyz.openbmc_project.Inventory.Decorator.Cacheable:
-        Cached: 'true'
-    xyz.openbmc_project.Inventory.Item:
-        Present: 'true'
-
-/system:
-    xyz.openbmc_project.Inventory.Decorator.Replaceable:
-        FieldReplaceable: 'true'
-    xyz.openbmc_project.Inventory.Decorator.Cacheable:
-        Cached: 'true'
-    xyz.openbmc_project.Inventory.Item:
-        Present: 'true'
diff --git a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru.yaml b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru.yaml
index 80bcce4..e69de29 100644
--- a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru.yaml
+++ b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-fru.yaml
@@ -1,85 +0,0 @@
-0x00:
-  /system/chassis/motherboard:
-    entityID: 7
-    entityInstance: 1
-    interfaces:
-      xyz.openbmc_project.Inventory.Decorator.Asset:
-        BuildDate:
-          IPMIFruProperty: Mfg Date
-          IPMIFruSection: Board
-        PartNumber:
-          IPMIFruProperty: Part Number
-          IPMIFruSection: Board
-        Manufacturer:
-          IPMIFruProperty: Manufacturer
-          IPMIFruSection: Board
-        SerialNumber:
-          IPMIFruProperty: Serial Number
-          IPMIFruSection: Board
-      xyz.openbmc_project.Inventory.Item:
-        PrettyName:
-          IPMIFruProperty: Name
-          IPMIFruSection: Board
-      xyz.openbmc_project.Inventory.Item.NetworkInterface:
-        MACAddress:
-          IPMIFruProperty: Custom Field 1
-          IPMIFruSection: Board
-      xyz.openbmc_project.Inventory.Decorator.VendorInformation:
-        CustomField1:
-          IPMIFruProperty: FRU File ID
-          IPMIFruSection: Board
-      xyz.openbmc_project.Common.UUID:
-        UUID:
-          IPMIFruProperty: UUID
-          IPMIFruSection: MultiRecord
-  /system/chassis:
-    entityID: 23
-    entityInstance: 1
-    interfaces:
-      xyz.openbmc_project.Inventory.Decorator.Asset:
-        SerialNumber:
-          IPMIFruProperty: Serial Number
-          IPMIFruSection: Chassis
-        PartNumber:
-          IPMIFruProperty: Part Number
-          IPMIFruSection: Chassis
-        Model:
-          IPMIFruProperty: Type
-          IPMIFruSection: Chassis
-      xyz.openbmc_project.Inventory.Decorator.VendorInformation:
-        CustomField2:
-          IPMIFruProperty: Custom Field 1
-          IPMIFruSection: Chassis
-  /system:
-    entityID: 7
-    entityInstance: 2
-    interfaces:
-      xyz.openbmc_project.Inventory.Item:
-        PrettyName:
-          IPMIFruProperty: Name
-          IPMIFruSection: Product
-      xyz.openbmc_project.Inventory.Decorator.Asset:
-        PartNumber:
-          IPMIFruProperty: Model Number
-          IPMIFruSection: Product
-        Manufacturer:
-          IPMIFruProperty: Manufacturer
-          IPMIFruSection: Product
-        SerialNumber:
-          IPMIFruProperty: Serial Number
-          IPMIFruSection: Product
-      xyz.openbmc_project.Inventory.Decorator.Revision:
-        Version:
-          IPMIFruProperty: Version
-          IPMIFruSection: Product
-      xyz.openbmc_project.Inventory.Decorator.AssetTag:
-        AssetTag:
-          IPMIFruProperty: Asset Tag
-          IPMIFruSection: Product
-      xyz.openbmc_project.Inventory.Decorator.VendorInformation:
-        CustomField1:
-          IPMIFruProperty: FRU File ID
-          IPMIFruSection: Product
-        CustomField2:
-          IPMIFruProperty: Custom Field 1
-          IPMIFruSection: Product
diff --git a/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/ipmi-sensors-mtjade.yaml b/meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-sensors.yaml
similarity index 100%
rename from meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/ipmi-sensors-mtjade.yaml
rename to meta-ampere/meta-jade/recipes-phosphor/configuration/mtjade-yaml-config/mtjade-ipmi-sensors.yaml
diff --git a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard b/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard
deleted file mode 100644
index f049834..0000000
--- a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru/obmc/eeproms/system/chassis/motherboard
+++ /dev/null
@@ -1,2 +0,0 @@
-SYSFS_PATH=/sys/bus/i2c/devices/3-0050/eeprom
-FRUID=0
diff --git a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend b/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
deleted file mode 100644
index 5150e23..0000000
--- a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-fru_%.bbappend
+++ /dev/null
@@ -1,26 +0,0 @@
-inherit obmc-phosphor-systemd
-
-DEPENDS:append:mtjade = " mtjade-yaml-config"
-
-EXTRA_OECONF:mtjade = " \
-    YAML_GEN=${STAGING_DIR_HOST}${datadir}/mtjade-yaml-config/ipmi-fru-read.yaml \
-    PROP_YAML=${STAGING_DIR_HOST}${datadir}/mtjade-yaml-config/ipmi-extra-properties.yaml \
-    "
-FILESEXTRAPATHS:prepend:mtjade := "${THISDIR}/${PN}:"
-
-EEPROM_NAMES = "motherboard"
-
-EEPROMFMT = "system/chassis/{0}"
-EEPROM_ESCAPEDFMT = "system-chassis-{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:mtjade := "${@compose_list(d, 'ENVFMT', 'EEPROMS')}"
-
-TMPL = "obmc-read-eeprom@.service"
-TGT = "multi-user.target"
-INSTFMT = "obmc-read-eeprom@{0}.service"
-FMT = "../${TMPL}:${TGT}.wants/${INSTFMT}"
-
-SYSTEMD_LINK:${PN}:append:mtjade := "${@compose_list(d, 'FMT', 'EEPROMS_ESCAPED')}"
diff --git a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend b/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
index fce5b74..04fff3d 100644
--- a/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
+++ b/meta-ampere/meta-jade/recipes-phosphor/ipmi/phosphor-ipmi-host_%.bbappend
@@ -1,6 +1,6 @@
-FILESEXTRAPATHS:append:mtjade := "${THISDIR}/${PN}:"
+FILESEXTRAPATHS:append := "${THISDIR}/${PN}:"
 
-DEPENDS:append:mtjade = " mtjade-yaml-config"
+DEPENDS:append = " ${MACHINE}-yaml-config"
 
 RRECOMMENDS:${PN} += "ipmitool"
 RDEPENDS:${PN} += "bash"
@@ -10,14 +10,16 @@
             file://ampere.xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service \
             "
 
-EXTRA_OECONF:mtjade = " \
-    SENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/mtjade-yaml-config/ipmi-sensors-${MACHINE}.yaml \
-    FRU_YAML_GEN=${STAGING_DIR_HOST}${datadir}/mtjade-yaml-config/ipmi-fru-read.yaml \
-    "
+EXTRA_OECONF = " \
+                SENSOR_YAML_GEN=${STAGING_DIR_HOST}${datadir}/${MACHINE}-yaml-config/ipmi-sensors.yaml \
+               "
 
 AMPERE_SOFTPOWEROFF_TMPL = "ampere.xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
 
-do_install:append:mtjade(){
+PACKAGECONFIG:append = " dynamic-sensors"
+HOSTIPMI_PROVIDER_LIBRARY += "libdynamiccmds.so"
+
+do_install:append(){
     install -d ${D}${includedir}/phosphor-ipmi-host
     install -m 0644 -D ${S}/selutility.hpp ${D}${includedir}/phosphor-ipmi-host
     install -m 0755 ${WORKDIR}/ampere-phosphor-softpoweroff ${D}/${bindir}/phosphor-softpoweroff