meta-ufispace: Add meta-ufispace layer and meta-ncplite machine

Iniitial submission of meta-layer and meta-machine layer.

Tested: Build and run on our machine successfully.

Change-Id: I4920d8ce6aff119ba5cbc4772d84a6377784f85d
Signed-off-by: Jordan Chang <jordan.chang@ufispace.com>
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager/blacklist.json b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager/blacklist.json
new file mode 100644
index 0000000..e573a17
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager/blacklist.json
@@ -0,0 +1,3 @@
+{
+    "buses": [0, 1, 2, 8, 10]
+}
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager_%.bbappend b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager_%.bbappend
new file mode 100644
index 0000000..62e1499
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/entity-manager_%.bbappend
@@ -0,0 +1,7 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI:append = " file://blacklist.json"
+
+do_install:append () {
+    install -m 0644 -D ${WORKDIR}/blacklist.json ${D}${datadir}/${PN}/blacklist.json
+}
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config.bb b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config.bb
new file mode 100644
index 0000000..d304eed
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config.bb
@@ -0,0 +1,33 @@
+SUMMARY = "YAML configuration for NCPLite"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit allarch
+
+SRC_URI = " \
+    file://ncplite-ipmi-fru.yaml \
+    file://ncplite-ipmi-fru-properties.yaml \
+    file://ncplite-ipmi-sensors.yaml \
+    file://ncplite-ipmi-inventory-sensors.yaml \
+    "
+
+S = "${WORKDIR}"
+
+do_install() {
+    install -m 0644 -D ncplite-ipmi-fru.yaml \
+        ${D}${datadir}/${BPN}/ipmi-fru-read.yaml
+    install -m 0644 -D ncplite-ipmi-fru-properties.yaml \
+        ${D}${datadir}/${BPN}/ipmi-extra-properties.yaml
+    install -m 0644 -D ncplite-ipmi-sensors.yaml \
+        ${D}${datadir}/${BPN}/ipmi-sensors.yaml
+    install -m 0644 -D ncplite-ipmi-inventory-sensors.yaml \
+        ${D}${datadir}/${BPN}/ipmi-inventory-sensors.yaml
+}
+
+FILES:${PN}-dev = " \
+    ${datadir}/${BPN}/ipmi-fru-read.yaml \
+    ${datadir}/${BPN}/ipmi-extra-properties.yaml \
+    ${datadir}/${BPN}/ipmi-sensors.yaml \
+    ${datadir}/${BPN}/ipmi-inventory-sensors.yaml \
+    "
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru-properties.yaml b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru-properties.yaml
new file mode 100644
index 0000000..082976b
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru-properties.yaml
@@ -0,0 +1,35 @@
+/system/chassis/motherboard:
+    xyz.openbmc_project.Inventory.Decorator.Cacheable:
+        Cached: "true"
+    xyz.openbmc_project.Inventory.Decorator.Replaceable:
+        FieldReplaceable: "true"
+    xyz.openbmc_project.Inventory.Item:
+        Present: "true"
+/system:
+    xyz.openbmc_project.Inventory.Decorator.Cacheable:
+        Cached: "true"
+    xyz.openbmc_project.Inventory.Decorator.Replaceable:
+        FieldReplaceable: "true"
+    xyz.openbmc_project.Inventory.Item:
+        Present: "true"
+/system/chassis:
+    xyz.openbmc_project.Inventory.Decorator.Cacheable:
+        Cached: "false"
+    xyz.openbmc_project.Inventory.Decorator.Replaceable:
+        FieldReplaceable: "false"
+    xyz.openbmc_project.Inventory.Item:
+        Present: "true"
+/system/chassis/psu0:
+    xyz.openbmc_project.Inventory.Decorator.Cacheable:
+        Cached: "false"
+    xyz.openbmc_project.Inventory.Decorator.Replaceable:
+        FieldReplaceable: "true"
+    xyz.openbmc_project.Inventory.Item:
+        Present: "true"
+/system/chassis/psu1:
+    xyz.openbmc_project.Inventory.Decorator.Cacheable:
+        Cached: "false"
+    xyz.openbmc_project.Inventory.Decorator.Replaceable:
+        FieldReplaceable: "true"
+    xyz.openbmc_project.Inventory.Item:
+        Present: "true"
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru.yaml b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru.yaml
new file mode 100644
index 0000000..01d4ff0
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-fru.yaml
@@ -0,0 +1,118 @@
+0:
+    /system/chassis:
+        entityID: 23
+        entityInstance: 1
+        interfaces:
+            xyz.openbmc_project.Inventory.Decorator.Asset:
+                Model:
+                    IPMIFruProperty: Type
+                    IPMIFruSection: Chassis
+    /system/chassis/motherboard:
+        entityID: 7
+        entityInstance: 1
+        interfaces:
+            xyz.openbmc_project.Inventory.Decorator.Asset:
+                BuildDate:
+                    IPMIFruProperty: Mfg Date
+                    IPMIFruSection: Board
+                Manufacturer:
+                    IPMIFruProperty: Manufacturer
+                    IPMIFruSection: Board
+                PartNumber:
+                    IPMIFruProperty: Part Number
+                    IPMIFruSection: Board
+                SerialNumber:
+                    IPMIFruProperty: Serial Number
+                    IPMIFruSection: Board
+            xyz.openbmc_project.Inventory.Item:
+                PrettyName:
+                    IPMIFruProperty: Name
+                    IPMIFruSection: Board
+    /system:
+        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
+                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
+1:
+    /system/chassis/psu0:
+        entityID: 0x13
+        entityInstance: 1
+        interfaces:
+            xyz.openbmc_project.Inventory.Decorator.Asset:
+                Manufacturer:
+                    IPMIFruProperty: Manufacturer
+                    IPMIFruSection: Product
+                PartNumber:
+                    IPMIFruProperty: Model Number
+                    IPMIFruSection: Product
+                SerialNumber:
+                    IPMIFruProperty: Serial Number
+                    IPMIFruSection: Product
+            xyz.openbmc_project.Inventory.Item:
+                PrettyName:
+                    IPMIFruProperty: Name
+                    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
+2:
+    /system/chassis/psu1:
+        entityID: 0x13
+        entityInstance: 2
+        interfaces:
+            xyz.openbmc_project.Inventory.Decorator.Asset:
+                Manufacturer:
+                    IPMIFruProperty: Manufacturer
+                    IPMIFruSection: Product
+                PartNumber:
+                    IPMIFruProperty: Model Number
+                    IPMIFruSection: Product
+                SerialNumber:
+                    IPMIFruProperty: Serial Number
+                    IPMIFruSection: Product
+            xyz.openbmc_project.Inventory.Item:
+                PrettyName:
+                    IPMIFruProperty: Name
+                    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
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-inventory-sensors.yaml b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-inventory-sensors.yaml
new file mode 100644
index 0000000..191a7d1
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-inventory-sensors.yaml
@@ -0,0 +1,245 @@
+/xyz/openbmc_project/sensors/temperature/TEMP_ENV_FRONT:
+    sensorID: 0xf
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/TEMP_ENV_REAR:
+    sensorID: 0x10
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/TEMP_MAC_ENV:
+    sensorID: 0x11
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/TEMP_MAC_DIE:
+    sensorID: 0x12
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/TEMP_CPU_ENV_2:
+    sensorID: 0x13
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/TEMP_ENV_BMC:
+    sensorID: 0x14
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P3V3_ADC0:
+    sensorID: 0x20
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P1V8_ADC1:
+    sensorID: 0x21
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P1V2_ADC2:
+    sensorID: 0x22
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P1V2_ADC3:
+    sensorID: 0x23
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P0V8_ADC4:
+    sensorID: 0x24
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P0V8_ADC5:
+    sensorID: 0x25
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P1V2_ADC6:
+    sensorID: 0x26
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P0V88_ADC8:
+    sensorID: 0x27
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/P2V5_ADC9:
+    sensorID: 0x28
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/FAN0_RPM:
+    sensorID: 0x30
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/FAN1_RPM:
+    sensorID: 0x31
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/FAN2_RPM:
+    sensorID: 0x32
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/FAN3_RPM:
+    sensorID: 0x33
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/inventory/system/chassis/motherboard/ALL_PWR_GOOD_H:
+    sensorID: 0x40
+    sensorType: 0x15
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/FAN_STATUS_INT_L:
+    sensorID: 0x41
+    sensorType: 0x15
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/THERMAL_ALERT_L:
+    sensorID: 0x42
+    sensorType: 0x15
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/CPU_CATERR_L:
+    sensorID: 0x43
+    sensorType: 0x7
+    eventReadingType: 0x6f
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/CPU_THERMTEIP_L:
+    sensorID: 0x44
+    sensorType: 0x7
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU0_INT_L:
+    sensorID: 0x45
+    sensorType: 0x9
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU1_INT_L:
+    sensorID: 0x46
+    sensorType: 0x9
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU0_POWER_OK:
+    sensorID: 0x47
+    sensorType: 0x9
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU1_POWER_OK:
+    sensorID: 0x48
+    sensorType: 0x9
+    eventReadingType: 0x03
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU0_PRSNT_L:
+    sensorID: 0x49
+    sensorType: 0x9
+    eventReadingType: 0x08
+    offset: 0x03
+/xyz/openbmc_project/inventory/system/chassis/motherboard/PSU1_PRSNT_L:
+    sensorID: 0x4a
+    sensorType: 0x9
+    eventReadingType: 0x8
+    offset: 0x03
+/xyz/openbmc_project/sensors/voltage/PSU0_VIN:
+    sensorID: 0x60
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/PSU0_VOUT:
+    sensorID: 0x61
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/current/PSU0_IIN:
+    sensorID: 0x62
+    sensorType: 3
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/current/PSU0_IOUT:
+    sensorID: 0x63
+    sensorType: 3
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/PSU0_FAN1:
+    sensorID: 0x64
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU0_TEMP1:
+    sensorID: 0x65
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU0_TEMP2:
+    sensorID: 0x66
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU0_TEMP3:
+    sensorID: 0x67
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/PSU1_VIN:
+    sensorID: 0x70
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/voltage/PSU1_VOUT:
+    sensorID: 0x71
+    sensorType: 2
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/current/PSU1_IIN:
+    sensorID: 0x72
+    sensorType: 3
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/current/PSU1_IOUT:
+    sensorID: 0x73
+    sensorType: 3
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/fan_tach/PSU1_FAN1:
+    sensorID: 0x74
+    sensorType: 4
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU1_TEMP1:
+    sensorID: 0x75
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU1_TEMP2:
+    sensorID: 0x76
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/sensors/temperature/PSU1_TEMP3:
+    sensorID: 0x77
+    sensorType: 1
+    eventReadingType: 1
+    offset: 0xff
+/xyz/openbmc_project/watchdog/host0:
+    sensorID: 0xff
+    sensorType: 0x23
+    eventReadingType: 0x6f
+    offset: 0xff
+/xyz/openbmc_project/state/host0:
+    sensorID: 0xff
+    sensorType: 0x09
+    eventReadingType: 0x6f
+    offset: 0xff
+/xyz/openbmc_project/state/chassis0:
+    sensorID: 0xff
+    sensorType: 0x14
+    eventReadingType: 0x6f
+    offset: 0xff
diff --git a/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-sensors.yaml b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-sensors.yaml
new file mode 100644
index 0000000..7f4a92c
--- /dev/null
+++ b/meta-ufispace/meta-ncplite/recipes-phosphor/configuration/ncplite-yaml-config/ncplite-ipmi-sensors.yaml
@@ -0,0 +1,399 @@
+0xf: &temperature
+    entityID: 0x07
+    entityInstance: 0
+    sensorType: 0x01
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_ENV_FRONT
+    sensorReadingType: 0x01
+    multiplierM: 1
+    offsetB: 0
+    bExp: 0
+    rExp: 0
+    unit: xyz.openbmc_project.Sensor.Value.Unit.DegreesC
+    mutability: Mutability::Read
+    serviceInterface: org.freedesktop.DBus.Properties
+    readingType: readingData
+    sensorNamePattern: nameLeaf
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    0xFF:
+                        type: double
+
+0x10:
+    <<: *temperature
+    entityInstance: 1
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_ENV_REAR
+
+0x11:
+    <<: *temperature
+    entityInstance: 2
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_MAC_ENV
+
+0x12:
+    <<: *temperature
+    entityInstance: 3
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_MAC_DIE
+
+0x13:
+    <<: *temperature
+    entityInstance: 4
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_CPU_ENV_2
+
+0x14:
+    <<: *temperature
+    entityInstance: 5
+    path: /xyz/openbmc_project/sensors/temperature/TEMP_ENV_BMC
+
+0x20: &voltage
+    entityID: 0x07
+    entityInstance: 5
+    sensorType: 0x02
+    path: /xyz/openbmc_project/sensors/voltage/P3V3_ADC0
+    sensorReadingType: 0x01
+    multiplierM: 235
+    offsetB: 0
+    bExp: 0
+    rExp: -4
+    unit: xyz.openbmc_project.Sensor.Value.Unit.Volts
+    mutability: Mutability::Read
+    serviceInterface: org.freedesktop.DBus.Properties
+    readingType: readingData
+    sensorNamePattern: nameLeaf
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    0xFF:
+                        type: double
+
+0x21:
+    <<: *voltage
+    entityInstance: 6
+    path: /xyz/openbmc_project/sensors/voltage/P1V8_ADC1
+    multiplierM: 71
+
+0x22:
+    <<: *voltage
+    entityInstance: 7
+    path: /xyz/openbmc_project/sensors/voltage/P1V2_ADC2
+    multiplierM: 71
+
+0x23:
+    <<: *voltage
+    entityInstance: 8
+    path: /xyz/openbmc_project/sensors/voltage/P1V2_ADC3
+    multiplierM: 71
+
+0x24:
+    <<: *voltage
+    entityInstance: 9
+    path: /xyz/openbmc_project/sensors/voltage/P0V8_ADC4
+    multiplierM: 71
+
+0x25:
+    <<: *voltage
+    entityInstance: 10
+    path: /xyz/openbmc_project/sensors/voltage/P0V8_ADC5
+    multiplierM: 71
+
+0x26:
+    <<: *voltage
+    entityInstance: 11
+    path: /xyz/openbmc_project/sensors/voltage/P1V2_ADC6
+    multiplierM: 71
+
+0x27:
+    <<: *voltage
+    entityInstance: 12
+    path: /xyz/openbmc_project/sensors/voltage/P0V88_ADC8
+    multiplierM: 71
+
+0x28:
+    <<: *voltage
+    entityInstance: 13
+    path: /xyz/openbmc_project/sensors/voltage/P2V5_ADC9
+    multiplierM: 173
+
+0x30: &fan_tach
+    entityID: 0x0A
+    entityInstance: 0
+    sensorType: 0x04
+    path: /xyz/openbmc_project/sensors/fan_tach/FAN0_RPM
+    sensorReadingType: 0x01
+    multiplierM: 100
+    offsetB: 0
+    bExp: 0
+    rExp: 0
+    unit: xyz.openbmc_project.Sensor.Value.Unit.RPMS
+    mutability: Mutability::Read
+    serviceInterface: org.freedesktop.DBus.Properties
+    readingType: readingData
+    sensorNamePattern: nameLeaf
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    255:
+                        type: double
+
+0x31:
+    <<: *fan_tach
+    entityInstance: 1
+    path: /xyz/openbmc_project/sensors/fan_tach/FAN1_RPM
+
+0x32:
+    <<: *fan_tach
+    entityInstance: 2
+    path: /xyz/openbmc_project/sensors/fan_tach/FAN2_RPM
+
+0x33:
+    <<: *fan_tach
+    entityInstance: 3
+    path: /xyz/openbmc_project/sensors/fan_tach/FAN3_RPM
+
+0x40: &discrete
+    entityID: 0x07
+    entityInstance: 16
+    sensorType: 0x15
+    path: /system/chassis/motherboard/ALL_PWR_GOOD_H
+    sensorReadingType: 0x03
+    mutability: Mutability::Read
+    serviceInterface: xyz.openbmc_project.Inventory.Manager
+    readingType: assertion
+    interfaces:
+        xyz.openbmc_project.Inventory.Item:
+            Present:
+                Offsets:
+                    0x01:
+                        assert: true
+                        type: bool
+                    0x00:
+                        assert: false
+                        type: bool
+
+0x41:
+    <<: *discrete
+    entityID: 0x07
+    entityInstance: 17
+    sensorType: 0x15
+    path: /system/chassis/motherboard/FAN_STATUS_INT_L
+
+0x42:
+    <<: *discrete
+    entityID: 0x07
+    entityInstance: 18
+    sensorType: 0x15
+    path: /system/chassis/motherboard/THERMAL_ALERT_L
+
+0x43:
+    <<: *discrete
+    entityID: 0x03
+    entityInstance: 0
+    sensorType: 0x7
+    path: /system/chassis/motherboard/CPU_CATERR_L
+
+0x44:
+    <<: *discrete
+    entityID: 0x03
+    entityInstance: 1
+    sensorType: 0x7
+    path: /system/chassis/motherboard/CPU_THERMTEIP_L
+
+0x45:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 3
+    sensorType: 0x9
+    path: /system/chassis/motherboard/PSU0_INT_L
+
+0x46:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 4
+    sensorType: 0x9
+    path: /system/chassis/motherboard/PSU1_INT_L
+
+0x47:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 5
+    sensorType: 0x09
+    path: /system/chassis/motherboard/PSU0_POWER_OK
+
+0x48:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 6
+    sensorType: 0x09
+    path: /system/chassis/motherboard/PSU1_POWER_OK
+
+0x49:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 7
+    sensorType: 0x09
+    sensorReadingType: 0x08
+    path: /system/chassis/motherboard/PSU0_PRSNT_L
+
+0x4a:
+    <<: *discrete
+    entityID: 0x13
+    entityInstance: 8
+    sensorType: 0x09
+    sensorReadingType: 0x08
+    path: /system/chassis/motherboard/PSU1_PRSNT_L
+
+0x4b:
+    <<: *discrete
+    entityID: 0x7
+    entityInstance: 19
+    sensorType: 0x15
+    path: /system/chassis/motherboard/FAN0_PRSNT_L
+
+0x4c:
+    <<: *discrete
+    entityID: 0x7
+    entityInstance: 20
+    sensorType: 0x15
+    path: /system/chassis/motherboard/FAN1_PRSNT_L
+
+0x4d:
+    <<: *discrete
+    entityID: 0x7
+    entityInstance: 21
+    sensorType: 0x15
+    path: /system/chassis/motherboard/FAN2_PRSNT_L
+
+0x4e:
+    <<: *discrete
+    entityID: 0x7
+    entityInstance: 22
+    sensorType: 0x15
+    path: /system/chassis/motherboard/FAN3_PRSNT_L
+
+#PSU0 temperature, voltage, fan sensors
+0x60:
+    <<: *voltage
+    entityID: 0x13
+    entityInstance: 10
+    path: /xyz/openbmc_project/sensors/voltage/PSU0_VIN
+    rExp: 0
+    multiplierM: 1
+
+0x61:
+    <<: *voltage
+    entityID: 0x13
+    entityInstance: 11
+    path: /xyz/openbmc_project/sensors/voltage/PSU0_VOUT
+    rExp: -2
+    multiplierM: 5
+
+0x62: &current
+    entityID: 0x13
+    entityInstance: 12
+    sensorType: 0x03
+    path: /xyz/openbmc_project/sensors/current/PSU0_IIN
+    sensorReadingType: 0x01
+    multiplierM: 16
+    offsetB: 0
+    bExp: 0
+    rExp: -3
+    unit: xyz.openbmc_project.Sensor.Value.Unit.Amperes
+    mutability: Mutability::Read
+    serviceInterface: org.freedesktop.DBus.Properties
+    readingType: readingData
+    sensorNamePattern: nameLeaf
+    interfaces:
+        xyz.openbmc_project.Sensor.Value:
+            Value:
+                Offsets:
+                    0xFF:
+                        type: double
+
+0x63:
+    <<: *current
+    entityID: 0x13
+    entityInstance: 13
+    path: /xyz/openbmc_project/sensors/current/PSU0_IOUT
+    multiplierM: 70
+    rExp: -2
+
+0x64:
+    <<: *fan_tach
+    entityID: 0x13
+    entityInstance: 14
+    path: /xyz/openbmc_project/sensors/fan_tach/PSU0_FAN1
+
+0x65:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 15
+    path: /xyz/openbmc_project/sensors/temperature/PSU0_TEMP1
+
+0x66:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 16
+    path: /xyz/openbmc_project/sensors/temperature/PSU0_TEMP2
+
+0x67:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 17
+    path: /xyz/openbmc_project/sensors/temperature/PSU0_TEMP3
+
+#PSU1 temperature, voltage, fan sensors
+0x70:
+    <<: *voltage
+    entityID: 0x13
+    entityInstance: 18
+    path: /xyz/openbmc_project/sensors/voltage/PSU1_VIN
+    rExp: 0
+    multiplierM: 1
+
+0x71:
+    <<: *voltage
+    entityID: 0x13
+    entityInstance: 19
+    path: /xyz/openbmc_project/sensors/voltage/PSU1_VOUT
+    rExp: -2
+    multiplierM: 5
+
+0x72:
+    <<: *current
+    entityID: 0x13
+    entityInstance: 20
+    path: /xyz/openbmc_project/sensors/current/PSU1_IIN
+
+0x73:
+    <<: *current
+    entityID: 0x13
+    entityInstance: 21
+    path: /xyz/openbmc_project/sensors/current/PSU1_IOUT
+    multiplierM: 70
+    rExp: -2
+
+0x74:
+    <<: *fan_tach
+    entityID: 0x13
+    entityInstance: 22
+    path: /xyz/openbmc_project/sensors/fan_tach/PSU1_FAN1
+
+0x75:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 23
+    path: /xyz/openbmc_project/sensors/temperature/PSU1_TEMP1
+
+0x76:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 24
+    path: /xyz/openbmc_project/sensors/temperature/PSU1_TEMP2
+
+0x77:
+    <<: *temperature
+    entityID: 0x13
+    entityInstance: 25
+    path: /xyz/openbmc_project/sensors/temperature/PSU1_TEMP3