Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1,9 @@
LABEL_temp1 = "cputemp"
CRITHI_temp1 = "95000"
CRITLO_temp1 = "0"
WARNHI_temp1 = "95000"
WARNLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
ASYNC_READ_TIMEOUT_temp1 = "500"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,4 @@
LABEL_temp1 = "inlet"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
ASYNC_READ_TIMEOUT_temp1 = "500"
@@ -0,0 +1,4 @@
LABEL_temp1 = "outlet_0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
ASYNC_READ_TIMEOUT_temp1 = "500"
@@ -0,0 +1,4 @@
LABEL_temp1 = "outlet_1"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
ASYNC_READ_TIMEOUT_temp1 = "500"
@@ -0,0 +1,43 @@
LABEL_in1 = "hotswap_vin"
CRITHI_in1 = "60000"
CRITLO_in1 = "40000"
WARNHI_in1 = "60000"
WARNLO_in1 = "40000"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "66"
LABEL_in2 = "hotswap_vout"
CRITHI_in2 = "60000"
CRITLO_in2 = "40000"
WARNHI_in2 = "60000"
WARNLO_in2 = "40000"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "66"
LABEL_curr1= "hotswap_iout"
CRITHI_curr1= "60000"
CRITLO_curr1= "0"
WARNHI_curr1= "60000"
WARNLO_curr1= "0"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "85"
# READ_Iout is direct value*0.92
GAIN_curr1 = "0.92"
LABEL_power1= "hotswap_pout"
CRITHI_power1= "1920000000"
CRITLO_power1= "0"
WARNHI_power1= "1920000000"
WARNLO_power1= "0"
MINVALUE_power1 = "0"
MAXVALUE_power1 = "2200"
# READ_Pout is direct value*0.92
GAIN_power1 = "0.92"
LABEL_temp1= "hotswap"
WARNLO_temp1= "0"
WARNHI_temp1= "125000"
CRITHI_temp1 = "125000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
@@ -0,0 +1,46 @@
LABEL_in1 = "vddcr_cpu_in"
CRITHI_in1 = "12600"
CRITLO_in1 = "11400"
WARNHI_in1 = "12600"
WARNLO_in1 = "11400"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "14"
# READ_VIN is direct value *10
GAIN_in1 = "10.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "vddcr_cpu_out"
CRITHI_in2 = "1450"
CRITLO_in2 = "350"
WARNHI_in2 = "1450"
WARNLO_in2 = "350"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "2"
PWRONMON_in2 = "ON"
LABEL_curr1 = "vddcr_cpu_in"
CRITHI_curr1 = "27000"
CRITLO_curr1 = "-4000"
WARNHI_curr1 = "27000"
WARNLO_curr1 = "-4000"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "28"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "vddcr_cpu_out"
CRITHI_curr2 = "255000"
CRITLO_curr2 = "-50000"
WARNHI_curr2 = "255000"
WARNLO_curr2 = "-50000"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "256"
PWRONMON_curr2 = "ON"
LABEL_temp1= "vddcr_cpu"
WARNLO_temp1= "0"
WARNHI_temp1= "100000"
CRITHI_temp1 = "100000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,46 @@
LABEL_in1 = "vddcr_soc_in"
CRITHI_in1 = "12600"
CRITLO_in1 = "11400"
WARNHI_in1 = "12600"
WARNLO_in1 = "11400"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "14"
# READ_VIN is direct value *10
GAIN_in1 = "10.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "vddcr_soc_out"
CRITHI_in2 = "1200"
CRITLO_in2 = "620"
WARNHI_in2 = "1200"
WARNLO_in2 = "620"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "2"
PWRONMON_in2 = "ON"
LABEL_curr1 = "vddcr_soc_in"
CRITHI_curr1 = "6700"
CRITLO_curr1 = "0"
WARNHI_curr1 = "6700"
WARNLO_curr1 = "0"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "9"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "vddcr_soc_out"
CRITHI_curr2 = "80000"
CRITLO_curr2 = "0"
WARNHI_curr2 = "80000"
WARNLO_curr2 = "0"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "88"
PWRONMON_curr2 = "ON"
LABEL_temp1= "vddcr_soc"
WARNLO_temp1= "0"
WARNHI_temp1= "100000"
CRITHI_temp1 = "100000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,46 @@
LABEL_in1 = "vddio_efgh_in"
CRITHI_in1 = "12600"
CRITLO_in1 = "11400"
WARNHI_in1 = "12600"
WARNLO_in1 = "11400"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "14"
# READ_VIN is direct value *10
GAIN_in1 = "10.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "vddio_efgh_out"
CRITHI_in2 = "1320"
CRITLO_in2 = "1100"
WARNHI_in2 = "1320"
WARNLO_in2 = "1100"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "2"
PWRONMON_in2 = "ON"
LABEL_curr1 = "vddio_efgh_in"
CRITHI_curr1 = "8400"
CRITLO_curr1 = "0"
WARNHI_curr1 = "8400"
WARNLO_curr1 = "0"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "9"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "vddio_efgh_out"
CRITHI_curr2 = "84000"
CRITLO_curr2 = "0"
WARNHI_curr2 = "84000"
WARNLO_curr2 = "0"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "88"
PWRONMON_curr2 = "ON"
LABEL_temp1= "vddio_efgh"
WARNLO_temp1= "0"
WARNHI_temp1= "100000"
CRITHI_temp1 = "100000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,46 @@
LABEL_in1 = "vddio_abcd_in"
CRITHI_in1 = "12600"
CRITLO_in1 = "11400"
WARNHI_in1 = "12600"
WARNLO_in1 = "11400"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "14"
# READ_VIN is direct value *10
GAIN_in1 = "10.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "vddio_abcd_out"
CRITHI_in2 = "1320"
CRITLO_in2 = "1100"
WARNHI_in2 = "1320"
WARNLO_in2 = "1100"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "2"
PWRONMON_in2 = "ON"
LABEL_curr1 = "vddio_abcd_in"
CRITHI_curr1 = "8400"
CRITLO_curr1 = "0"
WARNHI_curr1 = "8400"
WARNLO_curr1 = "0"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "9"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "vddio_abcd_out"
CRITHI_curr2 = "84000"
CRITLO_curr2 = "0"
WARNHI_curr2 = "84000"
WARNLO_curr2 = "0"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "88"
PWRONMON_curr2 = "ON"
LABEL_temp1= "vddio_abcd"
WARNLO_temp1= "0"
WARNHI_temp1= "100000"
CRITHI_temp1 = "100000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,119 @@
LABEL_in1 = "p1v8_stby"
CRITHI_in1 = "1890"
CRITLO_in1 = "1710"
WARNHI_in1 = "1890"
WARNLO_in1 = "1710"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "2"
PWRONMON_in1 = "ON"
LABEL_in2 = "vddcr_soc_stby"
CRITHI_in2 = "945"
CRITLO_in2 = "855"
WARNHI_in2 = "945"
WARNLO_in2 = "855"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "1"
PWRONMON_in2 = "ON"
LABEL_in3 = "p2v5_stby"
CRITHI_in3 = "2625"
CRITLO_in3 = "2375"
WARNHI_in3 = "2625"
WARNLO_in3 = "2375"
MINVALUE_in3 = "0"
MAXVALUE_in3 = "3"
PWRONMON_in3 = "ON"
LABEL_in4 = "p1v2_stby"
CRITHI_in4 = "1260"
CRITLO_in4 = "1140"
WARNHI_in4 = "1260"
WARNLO_in4 = "1140"
MINVALUE_in4 = "0"
MAXVALUE_in4 = "2"
PWRONMON_in4 = "ON"
LABEL_in5 = "p1v175_stby"
CRITHI_in5 = "1234"
CRITLO_in5 = "1116"
WARNHI_in5 = "1234"
WARNLO_in5 = "1116"
MINVALUE_in5 = "0"
MAXVALUE_in5 = "2"
PWRONMON_in5 = "ON"
LABEL_in6 = "p1v8"
CRITHI_in6 = "1890"
CRITLO_in6 = "1710"
WARNHI_in6 = "1890"
WARNLO_in6 = "1710"
MINVALUE_in6 = "0"
MAXVALUE_in6 = "2"
PWRONMON_in6 = "ON"
LABEL_in7 = "p3v3"
CRITHI_in7 = "3465"
CRITLO_in7 = "3135"
WARNHI_in7 = "3465"
WARNLO_in7 = "3135"
MINVALUE_in7 = "0"
MAXVALUE_in7 = "4"
PWRONMON_in7 = "ON"
LABEL_in8 = "pwrgd_pvpp"
CRITHI_in8 = "5760"
CRITLO_in8 = "1600"
WARNHI_in8 = "5760"
WARNLO_in8 = "1600"
MINVALUE_in8 = "0"
MAXVALUE_in8 = "6"
PWRONMON_in8 = "ON"
GAIN_in8 = "1.60"
LABEL_in9 = "pwrgd_pvddio"
CRITHI_in9 = "5760"
CRITLO_in9 = "1600"
WARNHI_in9 = "5760"
WARNLO_in9 = "1600"
MINVALUE_in9 = "0"
MAXVALUE_in9 = "6"
PWRONMON_in9 = "ON"
GAIN_in9 = "1.60"
LABEL_in10 = "pwrgd_cpuvr"
CRITHI_in10 = "5760"
CRITLO_in10 = "1600"
WARNHI_in10 = "5760"
WARNLO_in10 = "1600"
MINVALUE_in10 = "0"
MAXVALUE_in10 = "6"
PWRONMON_in10 = "ON"
GAIN_in10 = "1.60"
LABEL_in11 = "p3v3_stby"
CRITHI_in11 = "3465"
CRITLO_in11 = "3135"
WARNHI_in11 = "3465"
WARNLO_in11 = "3135"
MINVALUE_in11 = "0"
MAXVALUE_in11 = "4"
PWRONMON_in11 = "ON"
LABEL_in12 = "p5v_stby"
CRITHI_in12 = "5250"
CRITLO_in12 = "4750"
WARNHI_in12 = "5250"
WARNLO_in12 = "4750"
MINVALUE_in12 = "0"
MAXVALUE_in12 = "6"
PWRONMON_in12 = "ON"
LABEL_temp1 = "powerseq_temp"
CRITHI_temp1 = "99000"
CRITLO_temp1 = "0"
WARNHI_temp1 = "99000"
WARNLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
ASYNC_READ_TIMEOUT_temp1 = "500"
@@ -0,0 +1,50 @@
LABEL_in1 = "p12v_fan_in"
CRITHI_in1 = "60000"
CRITLO_in1 = "40000"
WARNHI_in1 = "60000"
WARNLO_in1 = "40000"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "65"
# READ_VIN is direct value*100
GAIN_in1 = "100.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "p12v_fan_out"
CRITHI_in2 = "12600"
CRITLO_in2 = "11400"
WARNHI_in2 = "12600"
WARNLO_in2 = "11400"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "14"
# READ_VOUT is direct value*5.02
GAIN_in2 = "5.02"
PWRONMON_in2 = "ON"
LABEL_curr1 = "p12v_fan_in"
CRITHI_curr1 = "30000"
CRITLO_curr1 = "-1000"
WARNHI_curr1 = "30000"
WARNLO_curr1 = "-1000"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "35"
# READ_Iin is direct value*0.5
GAIN_curr1 = "0.5"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "p12v_fan_out"
CRITHI_curr2 = "100000"
CRITLO_curr2 = "-1000"
WARNHI_curr2 = "100000"
WARNLO_curr2 = "-1000"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "150"
PWRONMON_curr2 = "ON"
LABEL_temp1= "p12v_fan"
WARNLO_temp1= "0"
WARNHI_temp1= "114000"
CRITHI_temp1 = "114000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,50 @@
LABEL_in1 = "p12v_mobo_in"
CRITHI_in1 = "60000"
CRITLO_in1 = "40000"
WARNHI_in1 = "60000"
WARNLO_in1 = "40000"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "65"
# READ_VIN is direct value*100
GAIN_in1 = "100.0"
PWRONMON_in1 = "ON"
LABEL_in2 = "p12v_mobo_out"
CRITHI_in2 = "12600"
CRITLO_in2 = "11400"
WARNHI_in2 = "12600"
WARNLO_in2 = "11400"
MINVALUE_in2 = "0"
MAXVALUE_in2 = "14"
# READ_VOUT is direct value*5.02
GAIN_in2 = "5.02"
PWRONMON_in2 = "ON"
LABEL_curr1 = "p12v_mobo_in"
CRITHI_curr1 = "30000"
CRITLO_curr1 = "0"
WARNHI_curr1 = "30000"
WARNLO_curr1 = "0"
MINVALUE_curr1 = "0"
MAXVALUE_curr1 = "35"
# READ_Iin is direct value*0.5
GAIN_curr1 = "0.5"
PWRONMON_curr1 = "ON"
LABEL_curr2 = "p12v_mobo_out"
CRITHI_curr2 = "100000"
CRITLO_curr2 = "0"
WARNHI_curr2 = "100000"
WARNLO_curr2 = "0"
MINVALUE_curr2 = "0"
MAXVALUE_curr2 = "150"
PWRONMON_curr2 = "ON"
LABEL_temp1= "p12v_mobo"
WARNLO_temp1= "0"
WARNHI_temp1= "114000"
CRITHI_temp1 = "114000"
CRITLO_temp1 = "0"
MINVALUE_temp1 = "-128"
MAXVALUE_temp1 = "127"
PWRONMON_temp1 = "ON"
@@ -0,0 +1,44 @@
LABEL_fan1= "fan0"
WARNHI_fan1= "19800"
WARNLO_fan1= "3330"
CRITHI_fan1= "19800"
CRITLO_fan1= "1500"
MINVALUE_fan1 = "0"
MAXVALUE_fan1 = "20775"
PWM_TARGET_fan1 = 1
LABEL_fan2= "fan1"
WARNHI_fan2= "19800"
WARNLO_fan2= "3330"
CRITHI_fan2= "19800"
CRITLO_fan2= "1500"
MINVALUE_fan2 = "0"
MAXVALUE_fan2 = "20775"
PWM_TARGET_fan2 = 2
LABEL_fan3= "fb_fan0"
WARNHI_fan3= "19800"
WARNLO_fan3= "3330"
CRITHI_fan3= "19800"
CRITLO_fan3= "1500"
MINVALUE_fan3 = "0"
MAXVALUE_fan3 = "20775"
PWM_TARGET_fan3 = 3
LABEL_fan4= "fb_fan1"
WARNHI_fan4= "19800"
WARNLO_fan4= "3330"
CRITHI_fan4= "19800"
CRITLO_fan4= "1500"
MINVALUE_fan4 = "0"
MAXVALUE_fan4 = "20775"
PWM_TARGET_fan4 = 4
LABEL_fan5= "fb_fan2"
WARNHI_fan5= "19800"
WARNLO_fan5= "3330"
CRITHI_fan5= "19800"
CRITLO_fan5= "1500"
MINVALUE_fan5 = "0"
MAXVALUE_fan5 = "20775"
PWM_TARGET_fan5 = 5
@@ -0,0 +1,15 @@
LABEL_in1 = "p3v_bat_adc"
CRITLO_in1 = "2690"
CRITHI_in1 = "3480"
WARNHI_in1 = "3480"
WARNLO_in1 = "2690"
MINVALUE_in1 = "0"
MAXVALUE_in1 = "4"
# The battery read is controlled by GPIO18
GPIOCHIP_in1=0
GPIO_in1=18
GAIN_in1 = "3.14"
# Sleep 24hrs per poll. Number is in microseconds.
INTERVAL=86400000000
@@ -0,0 +1,33 @@
FILESEXTRAPATHS:prepend:gbs := "${THISDIR}/${PN}:"
DEPENDS += "boost"
GBS_NAMES = " \
i2c@82000/sbtsi@4c \
i2c@85000/i2c-switch@71/i2c@0/max31725@54 \
i2c@85000/i2c-switch@71/i2c@1/max31725@55 \
i2c@85000/i2c-switch@71/i2c@2/max31725@5d \
i2c@88000/adm1272@10 \
i2c@89000/i2c-switch@71/i2c@0/vrm@60 \
i2c@89000/i2c-switch@71/i2c@1/vrm@61 \
i2c@89000/i2c-switch@71/i2c@2/vrm@63 \
i2c@89000/i2c-switch@71/i2c@3/vrm@45 \
i2c@8c000/max34451@4e \
i2c@8c000/vrm@5d \
i2c@8c000/vrm@5e \
"
GBS_ITEMSFMT = "ahb/apb/{0}.conf"
GBS_ITEMS += "${@compose_list(d, 'GBS_ITEMSFMT', 'GBS_NAMES')}"
GBS_ITEMS:append:gbs = " iio-hwmon-battery.conf"
ENVS = "obmc/hwmon/{0}"
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:gbs = " ${@compose_list(d, 'ENVS', 'GBS_ITEMS')}"
# Fan sensors
FITEMS = "pwm-fan-controller@103000.conf"
FENVS = "obmc/hwmon/ahb/apb/{0}"
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:gbs = " ${@compose_list(d, 'FENVS', 'FITEMS')}"
EXTRA_OEMESON:append:gbs = " -Dupdate-functional-on-fail=true -Dnegative-errno-on-fail=false"
@@ -0,0 +1,174 @@
{
"config": [
{
"NVMeDriveIndex": 0,
"NVMeDriveBusID": 47,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_0_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_0_locate",
"NVMeDrivePresentPin": 499,
"NVMeDrivePwrGoodPin": 467
},
{
"NVMeDriveIndex": 1,
"NVMeDriveBusID": 46,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_1_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_1_locate",
"NVMeDrivePresentPin": 498,
"NVMeDrivePwrGoodPin": 466
},
{
"NVMeDriveIndex": 2,
"NVMeDriveBusID": 45,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_2_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_2_locate",
"NVMeDrivePresentPin": 497,
"NVMeDrivePwrGoodPin": 465
},
{
"NVMeDriveIndex": 3,
"NVMeDriveBusID": 44,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_3_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_3_locate",
"NVMeDrivePresentPin": 496,
"NVMeDrivePwrGoodPin": 464
},
{
"NVMeDriveIndex": 4,
"NVMeDriveBusID": 39,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_4_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_4_locate",
"NVMeDrivePresentPin": 503,
"NVMeDrivePwrGoodPin": 471
},
{
"NVMeDriveIndex": 5,
"NVMeDriveBusID": 38,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_5_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_5_locate",
"NVMeDrivePresentPin": 502,
"NVMeDrivePwrGoodPin": 470
},
{
"NVMeDriveIndex": 6,
"NVMeDriveBusID": 37,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_6_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_6_locate",
"NVMeDrivePresentPin": 501,
"NVMeDrivePwrGoodPin": 469
},
{
"NVMeDriveIndex": 7,
"NVMeDriveBusID": 36,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_7_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_7_locate",
"NVMeDrivePresentPin": 500,
"NVMeDrivePwrGoodPin": 468
},
{
"NVMeDriveIndex": 8,
"NVMeDriveBusID": 31,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_8_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_8_locate",
"NVMeDrivePresentPin": 507,
"NVMeDrivePwrGoodPin": 475
},
{
"NVMeDriveIndex": 9,
"NVMeDriveBusID": 30,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_9_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_9_locate",
"NVMeDrivePresentPin": 506,
"NVMeDrivePwrGoodPin": 474
},
{
"NVMeDriveIndex": 10,
"NVMeDriveBusID": 29,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_10_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_10_locate",
"NVMeDrivePresentPin": 505,
"NVMeDrivePwrGoodPin": 473
},
{
"NVMeDriveIndex": 11,
"NVMeDriveBusID": 28,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_11_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_11_locate",
"NVMeDrivePresentPin": 504,
"NVMeDrivePwrGoodPin": 472
},
{
"NVMeDriveIndex": 12,
"NVMeDriveBusID": 27,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_12_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_12_locate",
"NVMeDrivePresentPin": 511,
"NVMeDrivePwrGoodPin": 479
},
{
"NVMeDriveIndex": 13,
"NVMeDriveBusID": 26,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_13_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_13_locate",
"NVMeDrivePresentPin": 510,
"NVMeDrivePwrGoodPin": 478
},
{
"NVMeDriveIndex": 14,
"NVMeDriveBusID": 25,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_14_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_14_locate",
"NVMeDrivePresentPin": 509,
"NVMeDrivePwrGoodPin": 477
},
{
"NVMeDriveIndex": 15,
"NVMeDriveBusID": 24,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_15_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_15_locate",
"NVMeDrivePresentPin": 508,
"NVMeDrivePwrGoodPin": 476
}
],
"threshold": [
{
"criticalHigh": 72,
"criticalLow": 0,
"warningHigh": 72,
"warningLow": 0,
"maxValue": 127,
"minValue": -128
}
]
}
@@ -0,0 +1,212 @@
#!/bin/bash
TARGET_FILE_NAME="/etc/nvme/nvme_config.json"
export_gpio() {
if [ ! -d "/sys/class/gpio/gpio$1" ]; then
echo "$1" >/sys/class/gpio/export
fi
}
# Get NVMeDrivePresentPins
# 1-0024
# Get NVMeDrivePwrGoodPins
# 1-0021
if [ -d "/sys/bus/i2c/drivers/pca953x/1-0024" ]; then
presentPinBase="$(cat /sys/bus/i2c/drivers/pca953x/1-0024/gpio/gpiochip*/base)"
for i in {0..15};
do
export_gpio $(( presentPinBase + i ))
done
else
echo "Can't find present gpio expander (addr: 0x24) !!"
fi
if [ -d "/sys/bus/i2c/drivers/pca953x/1-0021" ]; then
PwrGoodPinBase="$(cat /sys/bus/i2c/drivers/pca953x/1-0021/gpio/gpiochip*/base)"
for i in {0..15};
do
export_gpio $(( PwrGoodPinBase + i ))
done
else
echo "Can't find powergood gpio expander (addr: 0x21) !!"
fi
cat > $TARGET_FILE_NAME << EOF1
{
"config": [
{
"NVMeDriveIndex": 0,
"NVMeDriveBusID": 47,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_0_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_0_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 3)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 3))
},
{
"NVMeDriveIndex": 1,
"NVMeDriveBusID": 46,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_1_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_1_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 2)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 2))
},
{
"NVMeDriveIndex": 2,
"NVMeDriveBusID": 45,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_2_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_2_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 1)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 1))
},
{
"NVMeDriveIndex": 3,
"NVMeDriveBusID": 44,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_3_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_3_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 0)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 0))
},
{
"NVMeDriveIndex": 4,
"NVMeDriveBusID": 39,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_4_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_4_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 7)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 7))
},
{
"NVMeDriveIndex": 5,
"NVMeDriveBusID": 38,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_5_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_5_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 6)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 6))
},
{
"NVMeDriveIndex": 6,
"NVMeDriveBusID": 37,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_6_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_6_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 5)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 5))
},
{
"NVMeDriveIndex": 7,
"NVMeDriveBusID": 36,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_7_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_7_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 4)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 4))
},
{
"NVMeDriveIndex": 8,
"NVMeDriveBusID": 31,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_8_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_8_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 11)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 11))
},
{
"NVMeDriveIndex": 9,
"NVMeDriveBusID": 30,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_9_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_9_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 10)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 10))
},
{
"NVMeDriveIndex": 10,
"NVMeDriveBusID": 29,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_10_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_10_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 9)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 9))
},
{
"NVMeDriveIndex": 11,
"NVMeDriveBusID": 28,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_11_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_11_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 8)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 8))
},
{
"NVMeDriveIndex": 12,
"NVMeDriveBusID": 27,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_12_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_12_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 15)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 15))
},
{
"NVMeDriveIndex": 13,
"NVMeDriveBusID": 26,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_13_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_13_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 14)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 14))
},
{
"NVMeDriveIndex": 14,
"NVMeDriveBusID": 25,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_14_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_14_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 13)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 13))
},
{
"NVMeDriveIndex": 15,
"NVMeDriveBusID": 24,
"NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_fault",
"NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_locate",
"NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_15_locate",
"NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_15_locate",
"NVMeDrivePresentPin": $(( presentPinBase + 12)),
"NVMeDrivePwrGoodPin": $(( PwrGoodPinBase + 12))
}
],
"threshold": [
{
"criticalHigh": 72,
"criticalLow": 0,
"warningHigh": 72,
"warningLow": 0,
"maxValue": 127,
"minValue": -128
}
]
}
EOF1
@@ -0,0 +1,19 @@
[Unit]
Description=NVMe management
Wants=xyz.openbmc_project.LED.GroupManager.service xyz.openbmc_project.Inventory.Manager.service
After=xyz.openbmc_project.LED.GroupManager.service xyz.openbmc_project.Inventory.Manager.service
Wants=mapper-wait@-xyz-openbmc_project-control-nvme.service
After=mapper-wait@-xyz-openbmc_project-control-nvme.service
[Service]
ExecStartPre=/usr/bin/nvme_json_rewrite.sh
ExecStart=/usr/bin/nvme_main
Type=dbus
BusName=xyz.openbmc_project.nvme.manager
SyslogIdentifier=phosphor-nvme
Restart=always
RestartSec=3
StartLimitInterval=0
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,17 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
SRC_URI:append:gbs = " file://nvme_config.json"
SRC_URI:append:gbs = " file://nvme_json_rewrite.sh"
SRC_URI:append:gbs = " file://xyz.openbmc_project.nvme.manager.service.replace"
RDEPENDS:${PN} += "bash"
do_install:append:gbs() {
install -d ${D}/${sysconfdir}/nvme/
install -m 0644 ${WORKDIR}/nvme_config.json ${D}/${sysconfdir}/nvme/
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/nvme_json_rewrite.sh ${D}${bindir}/
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/xyz.openbmc_project.nvme.manager.service.replace ${D}${systemd_system_unitdir}/xyz.openbmc_project.nvme.manager.service
}
@@ -0,0 +1,129 @@
[
{
"Desc": {
"Name": "i2cool_0",
"SensorType": "temperature",
"MaxValue": 127.0,
"MinValue": -128.0
},
"Threshold": {
"CriticalHigh": 35,
"CriticalLow": 0,
"WarningHigh": 35,
"WarningLow": 0
},
"Params": {
"DbusParam": [
{
"ParamName": "inlet",
"Desc": {
"Name": "inlet",
"SensorType": "temperature"
}
},
{
"ParamName": "fan0",
"Desc": {
"Name": "fan0",
"SensorType": "fan_tach"
}
},
{
"ParamName": "fan1",
"Desc": {
"Name": "fan1",
"SensorType": "fan_tach"
}
}
]
},
"Expression": "round(inlet - 1 - (1.8 * 3700 / avg(fan0, fan1)))"
},
{
"Desc": {
"Name": "i2cool_1",
"SensorType": "temperature",
"MaxValue": 127.0,
"MinValue": -128.0
},
"Threshold": {
"CriticalHigh": 75,
"CriticalLow": 0,
"WarningHigh": 70,
"WarningLow": 0
},
"Params": {
"DbusParam": [
{
"ParamName": "outlet_0",
"Desc": {
"Name": "outlet_0",
"SensorType": "temperature"
}
},
{
"ParamName": "fan0",
"Desc": {
"Name": "fan0",
"SensorType": "fan_tach"
}
},
{
"ParamName": "fan1",
"Desc": {
"Name": "fan1",
"SensorType": "fan_tach"
}
}
]
},
"Expression": "round(outlet_0 - if(avg(fan0, fan1) >= 7400, 3 * 9558 / avg(fan0, fan1), 7 * 3700 / avg(fan0, fan1) - 2))"
},
{
"Desc": {
"Name": "i2cool_2",
"SensorType": "temperature",
"MaxValue": 127.0,
"MinValue": -128.0
},
"Threshold": {
"CriticalHigh": 70,
"CriticalLow": 0,
"WarningHigh": 70,
"WarningLow": 0
},
"Params": {
"DbusParam": [
{
"ParamName": "outlet_1",
"Desc": {
"Name": "outlet_1",
"SensorType": "temperature"
}
},
{
"ParamName": "fb_fan0",
"Desc": {
"Name": "fb_fan0",
"SensorType": "fan_tach"
}
},
{
"ParamName": "fb_fan1",
"Desc": {
"Name": "fb_fan1",
"SensorType": "fan_tach"
}
},
{
"ParamName": "fb_fan2",
"Desc": {
"Name": "fb_fan2",
"SensorType": "fan_tach"
}
}
]
},
"Expression": "round(outlet_1 - if(avg(fb_fan0, fb_fan1, fb_fan2) >= 7400, 1 * 9558 / avg(fb_fan0, fb_fan1, fb_fan2), 1))"
}
]
@@ -0,0 +1,16 @@
[Unit]
Description=Virtual sensors
After=mapper-wait@-xyz-openbmc_project-sensors-temperature-inlet.service
After=mapper-wait@-xyz-openbmc_project-sensors-temperature-outlet_0.service
After=mapper-wait@-xyz-openbmc_project-sensors-temperature-outlet_1.service
StartLimitBurst=10
[Service]
Restart=always
ExecStart=/usr/bin/virtual-sensor
Type=dbus
BusName=xyz.openbmc_project.VirtualSensor
SyslogIdentifier=phosphor-virtual-sensor
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,17 @@
FILESEXTRAPATHS:prepend:gbs := "${THISDIR}/${PN}:"
SRC_URI:append:gbs = " file://config-virtual-sensor.json \
file://phosphor-virtual-sensor.service.replace \
"
RDEPENDS:${PN}:append:gbs = "bash"
do_install:append:gbs() {
install -d ${D}${datadir}/${PN}
install -m 0644 -D ${WORKDIR}/config-virtual-sensor.json \
${D}${datadir}/${PN}/virtual_sensor_config.json
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/${PN}.service.replace \
${D}${systemd_system_unitdir}/${PN}.service
}