diff --git a/configuration/ibm/50001000.json b/configuration/ibm/50001000.json index 310c64f3d..9c7394458 100644 --- a/configuration/ibm/50001000.json +++ b/configuration/ibm/50001000.json @@ -1123,12 +1123,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 7-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } + } + }, "postFailAction": { "collection": { "setGpio": { "pin": "RUSSEL_FW_I2C_ENABLE_N", "value": 1 } + }, + "deletion": { + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } } }, "extraInterfaces": { @@ -1864,6 +1881,11 @@ "systemCmd": { "cmd": "echo 4-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 4-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1872,6 +1894,15 @@ "systemCmd": { "cmd": "echo 4-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 4-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "postFailAction": { @@ -1880,6 +1911,12 @@ "pin": "SLOT0_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1950,6 +1987,11 @@ "systemCmd": { "cmd": "echo 5-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1958,6 +2000,15 @@ "systemCmd": { "cmd": "echo 5-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1966,6 +2017,12 @@ "pin": "SLOT3_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2036,6 +2093,11 @@ "systemCmd": { "cmd": "echo 5-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2044,6 +2106,15 @@ "systemCmd": { "cmd": "echo 5-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "postFailAction": { @@ -2052,6 +2123,12 @@ "pin": "SLOT4_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2119,6 +2196,11 @@ "systemCmd": { "cmd": "echo 11-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 11-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2127,6 +2209,15 @@ "systemCmd": { "cmd": "echo 11-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 11-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -2135,6 +2226,12 @@ "pin": "SLOT10_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2275,12 +2372,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 4-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT2_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2318,12 +2432,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT6_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2354,12 +2485,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT7_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2397,12 +2545,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT9_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2440,12 +2605,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 11-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT11_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2552,12 +2734,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 4-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT1_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2595,12 +2794,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT8_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { diff --git a/configuration/ibm/50001000_v2.json b/configuration/ibm/50001000_v2.json index d31246b62..5b58a5044 100644 --- a/configuration/ibm/50001000_v2.json +++ b/configuration/ibm/50001000_v2.json @@ -1145,12 +1145,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 7-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } + } + }, "postFailAction": { "collection": { "setGpio": { "pin": "RUSSEL_FW_I2C_ENABLE_N", "value": 1 } + }, + "deletion": { + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } } }, "extraInterfaces": { @@ -1892,6 +1909,11 @@ "systemCmd": { "cmd": "echo 20-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1900,6 +1922,15 @@ "systemCmd": { "cmd": "echo 20-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "postFailAction": { @@ -1908,6 +1939,12 @@ "pin": "SLOT0_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1982,6 +2019,11 @@ "systemCmd": { "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1990,6 +2032,15 @@ "systemCmd": { "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1998,6 +2049,12 @@ "pin": "SLOT3_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2072,6 +2129,11 @@ "systemCmd": { "cmd": "echo 24-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 24-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2080,6 +2142,15 @@ "systemCmd": { "cmd": "echo 24-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 24-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "postFailAction": { @@ -2088,6 +2159,12 @@ "pin": "SLOT4_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2162,6 +2239,11 @@ "systemCmd": { "cmd": "echo 29-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 29-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2170,6 +2252,15 @@ "systemCmd": { "cmd": "echo 29-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 29-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -2178,6 +2269,12 @@ "pin": "SLOT10_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2322,12 +2419,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 22-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT2_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2369,12 +2483,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT6_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2409,12 +2540,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 26-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT7_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2456,12 +2604,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 27-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT9_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2503,12 +2668,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 30-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT11_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2620,12 +2802,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 21-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT1_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2667,12 +2866,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 28-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT8_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { diff --git a/configuration/ibm/50001001.json b/configuration/ibm/50001001.json index 91dacb77b..a677ebb13 100644 --- a/configuration/ibm/50001001.json +++ b/configuration/ibm/50001001.json @@ -969,12 +969,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 7-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "RUSSEL_FW_I2C_ENABLE_N", "value": 1 } + }, + "deletion": { + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } } }, "extraInterfaces": { @@ -1710,6 +1727,11 @@ "systemCmd": { "cmd": "echo 4-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 4-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1718,6 +1740,15 @@ "systemCmd": { "cmd": "echo 4-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 4-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1726,6 +1757,12 @@ "pin": "SLOT0_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1796,6 +1833,11 @@ "systemCmd": { "cmd": "echo 5-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1804,6 +1846,15 @@ "systemCmd": { "cmd": "echo 5-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1812,6 +1863,12 @@ "pin": "SLOT3_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1882,6 +1939,11 @@ "systemCmd": { "cmd": "echo 5-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1890,6 +1952,15 @@ "systemCmd": { "cmd": "echo 5-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 5-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1898,6 +1969,12 @@ "pin": "SLOT4_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT4_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1968,6 +2045,11 @@ "systemCmd": { "cmd": "echo 11-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 11-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1976,6 +2058,15 @@ "systemCmd": { "cmd": "echo 11-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 11-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "PostFailAction": { @@ -1984,6 +2075,12 @@ "pin": "SLOT10_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2124,12 +2221,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 4-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT2_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2167,12 +2281,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT6_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2203,12 +2334,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT7_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2246,12 +2394,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT9_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2289,12 +2454,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 11-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT11_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2401,12 +2583,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 4-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT1_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2444,12 +2643,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 6-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "SLOT8_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { diff --git a/configuration/ibm/50001001_v2.json b/configuration/ibm/50001001_v2.json index a61da612b..d84051eef 100644 --- a/configuration/ibm/50001001_v2.json +++ b/configuration/ibm/50001001_v2.json @@ -991,12 +991,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 7-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "RUSSEL_FW_I2C_ENABLE_N", "value": 1 } + }, + "deletion": { + "setGpio": { + "pin": "RUSSEL_FW_I2C_ENABLE_N", + "value": 1 + } } }, "extraInterfaces": { @@ -1736,6 +1753,11 @@ "systemCmd": { "cmd": "echo 20-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1744,14 +1766,29 @@ "systemCmd": { "cmd": "echo 20-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, - "PostFailAction": { + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT0_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT0_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1826,6 +1863,11 @@ "systemCmd": { "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1834,14 +1876,29 @@ "systemCmd": { "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, - "PostFailAction": { + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT3_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT3_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -1916,6 +1973,11 @@ "systemCmd": { "cmd": "echo 24-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 24-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -1924,12 +1986,27 @@ "systemCmd": { "cmd": "echo 24-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 24-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT4_EXPANDER_PRSNT_N", + "value": 0 + } } }, - "PostFailAction": { + "postFailAction": { "collection": { "setGpio": { - "pin": "SLOT4_PRSNT_EN_RSVD", + "pin": "SLOT4_EXPANDER_PRSNT_N", + "value": 0 + } + }, + "deletion": { + "setGpio": { + "pin": "SLOT4_EXPANDER_PRSNT_N", "value": 0 } } @@ -2006,6 +2083,11 @@ "systemCmd": { "cmd": "echo 29-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 29-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2014,14 +2096,29 @@ "systemCmd": { "cmd": "echo 29-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 29-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, - "PostFailAction": { + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT10_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT10_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2166,12 +2263,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 22-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT2_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT2_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2213,12 +2327,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT6_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT6_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2253,12 +2384,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 26-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT7_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT7_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2300,12 +2448,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 27-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT9_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT9_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2347,12 +2512,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 30-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT11_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT11_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2463,12 +2645,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 21-0051 /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT1_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT1_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { @@ -2510,12 +2709,29 @@ } } }, - "PostFailAction": { + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 28-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } + } + }, + "postFailAction": { "collection": { "setGpio": { "pin": "SLOT8_PRSNT_EN_RSVD", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "SLOT8_PRSNT_EN_RSVD", + "value": 0 + } } }, "extraInterfaces": { diff --git a/configuration/ibm/50003000.json b/configuration/ibm/50003000.json index edff30df9..d7778da1a 100644 --- a/configuration/ibm/50003000.json +++ b/configuration/ibm/50003000.json @@ -2999,6 +2999,11 @@ "systemCmd": { "cmd": "echo 16-0052 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 16-0052 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3007,6 +3012,15 @@ "systemCmd": { "cmd": "echo 16-0062 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 16-0062 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card1", + "value": 0 + } } }, "PostFailAction": { @@ -3015,6 +3029,12 @@ "pin": "presence-cable-card1", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card1", + "value": 0 + } } }, "extraInterfaces": { @@ -3087,6 +3107,11 @@ "systemCmd": { "cmd": "echo 17-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 17-0050 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3095,6 +3120,15 @@ "systemCmd": { "cmd": "echo 17-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 17-0060 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card2", + "value": 0 + } } }, "PostFailAction": { @@ -3103,6 +3137,12 @@ "pin": "presence-cable-card2", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card2", + "value": 0 + } } }, "extraInterfaces": { @@ -3177,6 +3217,11 @@ "systemCmd": { "cmd": "echo 18-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 18-0051 > /sys/bus/i2c/drivers/leds-pca955x24/unbind" + } } }, "postAction": { @@ -3185,6 +3230,15 @@ "systemCmd": { "cmd": "echo 18-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 18-0061 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card3", + "value": 0 + } } }, "PostFailAction": { @@ -3193,6 +3247,12 @@ "pin": "presence-cable-card3", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card3", + "value": 0 + } } }, "extraInterfaces": { @@ -3267,6 +3327,11 @@ "systemCmd": { "cmd": "echo 19-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 19-0050 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3275,6 +3340,15 @@ "systemCmd": { "cmd": "echo 19-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 19-0060 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card4", + "value": 0 + } } }, "PostFailAction": { @@ -3283,6 +3357,12 @@ "pin": "presence-cable-card4", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card4", + "value": 0 + } } }, "extraInterfaces": { @@ -3357,6 +3437,11 @@ "systemCmd": { "cmd": "echo 20-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0051 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3365,6 +3450,15 @@ "systemCmd": { "cmd": "echo 20-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0061 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card5", + "value": 0 + } } }, "PostFailAction": { @@ -3373,6 +3467,12 @@ "pin": "presence-cable-card5", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card5", + "value": 0 + } } }, "extraInterfaces": { @@ -3449,12 +3549,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 21-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card6", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "presence-cable-card6", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card6", + "value": 0 + } } }, "extraInterfaces": { @@ -3494,6 +3611,11 @@ "systemCmd": { "cmd": "echo 22-0053 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 22-0063 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3502,6 +3624,15 @@ "systemCmd": { "cmd": "echo 22-0063 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 22-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card7", + "value": 0 + } } }, "PostFailAction": { @@ -3510,6 +3641,12 @@ "pin": "presence-cable-card7", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card7", + "value": 0 + } } }, "extraInterfaces": { @@ -3584,6 +3721,11 @@ "systemCmd": { "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3592,6 +3734,15 @@ "systemCmd": { "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card8", + "value": 0 + } } }, "PostFailAction": { @@ -3600,6 +3751,12 @@ "pin": "presence-cable-card8", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card8", + "value": 0 + } } }, "extraInterfaces": { @@ -3676,12 +3833,25 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 24-0052 > /sys/bus/i2c/drivers/at24/unbind" + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "presence-cable-card9", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card9", + "value": 0 + } } }, "extraInterfaces": { @@ -3721,6 +3891,11 @@ "systemCmd": { "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 25-0063 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3729,6 +3904,15 @@ "systemCmd": { "cmd": "echo 25-0063 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card10", + "value": 0 + } } }, "PostFailAction": { @@ -3737,6 +3921,12 @@ "pin": "presence-cable-card10", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card10", + "value": 0 + } } }, "extraInterfaces": { @@ -3811,6 +4001,11 @@ "systemCmd": { "cmd": "echo 26-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 26-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3819,6 +4014,15 @@ "systemCmd": { "cmd": "echo 26-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 26-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card11", + "value": 0 + } } }, "PostFailAction": { @@ -3827,6 +4031,12 @@ "pin": "presence-cable-card11", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card11", + "value": 0 + } } }, "extraInterfaces": { diff --git a/configuration/ibm/50003000_v2.json b/configuration/ibm/50003000_v2.json index 5bce6788a..33ddeb881 100644 --- a/configuration/ibm/50003000_v2.json +++ b/configuration/ibm/50003000_v2.json @@ -2871,6 +2871,11 @@ "systemCmd": { "cmd": "echo 16-0052 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 16-0062 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2879,6 +2884,15 @@ "systemCmd": { "cmd": "echo 16-0062 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 16-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card1", + "value": 0 + } } }, "PostFailAction": { @@ -2887,6 +2901,12 @@ "pin": "presence-cable-card1", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card1", + "value": 0 + } } }, "extraInterfaces": { @@ -2959,6 +2979,11 @@ "systemCmd": { "cmd": "echo 17-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 17-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -2967,6 +2992,15 @@ "systemCmd": { "cmd": "echo 17-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 17-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card2", + "value": 0 + } } }, "PostFailAction": { @@ -2975,6 +3009,12 @@ "pin": "presence-cable-card2", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card2", + "value": 0 + } } }, "extraInterfaces": { @@ -3049,6 +3089,11 @@ "systemCmd": { "cmd": "echo 18-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 18-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3057,6 +3102,15 @@ "systemCmd": { "cmd": "echo 18-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 18-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card3", + "value": 0 + } } }, "PostFailAction": { @@ -3065,6 +3119,12 @@ "pin": "presence-cable-card3", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card3", + "value": 0 + } } }, "extraInterfaces": { @@ -3139,6 +3199,11 @@ "systemCmd": { "cmd": "echo 19-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 19-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3147,6 +3212,15 @@ "systemCmd": { "cmd": "echo 19-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 19-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card4", + "value": 0 + } } }, "PostFailAction": { @@ -3155,6 +3229,12 @@ "pin": "presence-cable-card4", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card4", + "value": 0 + } } }, "extraInterfaces": { @@ -3229,6 +3309,11 @@ "systemCmd": { "cmd": "echo 20-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3237,6 +3322,15 @@ "systemCmd": { "cmd": "echo 20-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 20-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card5", + "value": 0 + } } }, "PostFailAction": { @@ -3245,6 +3339,12 @@ "pin": "presence-cable-card5", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card5", + "value": 0 + } } }, "extraInterfaces": { @@ -3321,12 +3421,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 21-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card6", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "presence-cable-card6", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card6", + "value": 0 + } } }, "extraInterfaces": { @@ -3366,6 +3483,11 @@ "systemCmd": { "cmd": "echo 22-0053 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 22-0063 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3374,6 +3496,15 @@ "systemCmd": { "cmd": "echo 22-0063 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 22-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card7", + "value": 0 + } } }, "PostFailAction": { @@ -3382,6 +3513,12 @@ "pin": "presence-cable-card7", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card7", + "value": 0 + } } }, "extraInterfaces": { @@ -3456,6 +3593,11 @@ "systemCmd": { "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3464,6 +3606,15 @@ "systemCmd": { "cmd": "echo 23-0060 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 23-0050 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card8", + "value": 0 + } } }, "PostFailAction": { @@ -3472,6 +3623,12 @@ "pin": "presence-cable-card8", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card8", + "value": 0 + } } }, "extraInterfaces": { @@ -3548,12 +3705,29 @@ } } }, + "postAction": { + "deletion": { + "systemCmd": { + "cmd": "echo 24-0052 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card9", + "value": 0 + } + } + }, "PostFailAction": { "collection": { "setGpio": { "pin": "presence-cable-card9", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card9", + "value": 0 + } } }, "extraInterfaces": { @@ -3593,6 +3767,11 @@ "systemCmd": { "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 25-0063 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3601,6 +3780,15 @@ "systemCmd": { "cmd": "echo 25-0063 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 25-0053 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card10", + "value": 0 + } } }, "PostFailAction": { @@ -3609,6 +3797,12 @@ "pin": "presence-cable-card10", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card10", + "value": 0 + } } }, "extraInterfaces": { @@ -3683,6 +3877,11 @@ "systemCmd": { "cmd": "echo 26-0051 > /sys/bus/i2c/drivers/at24/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 26-0061 > /sys/bus/i2c/drivers/leds-pca955x/unbind" + } } }, "postAction": { @@ -3691,6 +3890,15 @@ "systemCmd": { "cmd": "echo 26-0061 > /sys/bus/i2c/drivers/leds-pca955x/bind" } + }, + "deletion": { + "systemCmd": { + "cmd": "echo 26-0051 > /sys/bus/i2c/drivers/at24/unbind" + }, + "setGpio": { + "pin": "presence-cable-card11", + "value": 0 + } } }, "PostFailAction": { @@ -3699,6 +3907,12 @@ "pin": "presence-cable-card11", "value": 0 } + }, + "deletion": { + "setGpio": { + "pin": "presence-cable-card11", + "value": 0 + } } }, "extraInterfaces": { diff --git a/include/constants.hpp b/include/constants.hpp index c93e72165..075067dc8 100644 --- a/include/constants.hpp +++ b/include/constants.hpp @@ -145,6 +145,9 @@ constexpr auto biosConfigMgrObjPath = constexpr auto biosConfigMgrService = "xyz.openbmc_project.BIOSConfigManager"; constexpr auto biosConfigMgrInterface = "xyz.openbmc_project.BIOSConfig.Manager"; +constexpr auto objectMapperService = "xyz.openbmc_project.ObjectMapper"; +constexpr auto objectMapperPath = "/xyz/openbmc_project/object_mapper"; +constexpr auto objectMapperInf = "xyz.openbmc_project.ObjectMapper"; constexpr auto systemVpdInvPath = "/xyz/openbmc_project/inventory/system/chassis/motherboard"; constexpr auto assetTagInf = "xyz.openbmc_project.Inventory.Decorator.AssetTag"; diff --git a/include/types.hpp b/include/types.hpp index 9ee274f06..314aebdfa 100644 --- a/include/types.hpp +++ b/include/types.hpp @@ -65,6 +65,7 @@ using DbusVariantType = std::variant< using MapperGetObject = std::vector>>; +using MapperGetSubTree = std::map>>; /* A type for holding the innermost map of property::value.*/ using IPZKwdValueMap = std::unordered_map; diff --git a/include/utility/dbus_utility.hpp b/include/utility/dbus_utility.hpp index 3c7f3269c..0587311dc 100644 --- a/include/utility/dbus_utility.hpp +++ b/include/utility/dbus_utility.hpp @@ -103,6 +103,56 @@ inline types::PropertyMap getPropertyMap(const std::string& i_service, return l_propertyValueMap; } +/** + * @brief API to get object subtree from D-bus. + * + * The API returns the map of object, services and interfaces in the + * subtree that implement a certain interface. If no interfaces are provided + * then all the objects, services and interfaces under the subtree will + * be returned. + * + * Note: Depth can be 0 and interfaces can be null. + * It will be caller's responsibility to check for empty vector returned + * and generate appropriate error. + * + * @param[in] i_objectPath - Path to search for an interface. + * @param[in] i_depth - Maximum depth of the tree to search. + * @param[in] i_interfaces - List of interfaces to search. + * + * @return - A map of object and its related services and interfaces, if + * success. If failed, empty map. + */ + +inline types::MapperGetSubTree + getObjectSubTree(const std::string& i_objectPath, const int& i_depth, + const std::vector& i_interfaces) +{ + types::MapperGetSubTree l_subTreeMap; + + if (i_objectPath.empty()) + { + logging::logMessage("Object path is empty."); + return l_subTreeMap; + } + + try + { + auto l_bus = sdbusplus::bus::new_default(); + auto l_method = l_bus.new_method_call( + constants::objectMapperService, constants::objectMapperPath, + constants::objectMapperInf, "GetSubTree"); + l_method.append(i_objectPath, i_depth, i_interfaces); + auto l_result = l_bus.call(l_method); + l_result.read(l_subTreeMap); + } + catch (const sdbusplus::exception::SdBusError& l_ex) + { + logging::logMessage(l_ex.what()); + } + + return l_subTreeMap; +} + /** * @brief An API to read property from Dbus. * diff --git a/include/worker.hpp b/include/worker.hpp index 90c805365..5e8607988 100644 --- a/include/worker.hpp +++ b/include/worker.hpp @@ -102,6 +102,15 @@ class Worker types::ObjectMap& objectInterfaceMap, const std::string& vpdFilePath); + /** + * @brief An API to delete FRU VPD over DBus. + * + * @param[in] i_dbusObjPath - Dbus object path of the FRU. + * + * @throw std::runtime_error if given input path is empty. + */ + void deleteFruVpd(const std::string& i_dbusObjPath); + /** * @brief API to get status of VPD collection process. * diff --git a/src/manager.cpp b/src/manager.cpp index da8f5c54a..e28c3a30d 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -480,8 +480,28 @@ void Manager::collectSingleFruVpd( void Manager::deleteSingleFruVpd( const sdbusplus::message::object_path& i_dbusObjPath) { - // Dummy code to supress unused variable warning. To be removed. - logging::logMessage(std::string(i_dbusObjPath)); + try + { + if (std::string(i_dbusObjPath).empty()) + { + throw std::runtime_error( + "Given DBus object path is empty. Aborting FRU VPD deletion."); + } + + if (m_worker.get() == nullptr) + { + throw std::runtime_error( + "Worker object not found, can't perform FRU VPD deletion for: " + + std::string(i_dbusObjPath)); + } + + m_worker->deleteFruVpd(std::string(i_dbusObjPath)); + } + catch (const std::exception& l_ex) + { + // TODO: Log PEL + logging::logMessage(l_ex.what()); + } } bool Manager::isValidUnexpandedLocationCode( diff --git a/src/worker.cpp b/src/worker.cpp index d0577b561..81397a193 100644 --- a/src/worker.cpp +++ b/src/worker.cpp @@ -1282,13 +1282,13 @@ bool Worker::processPostAction( // Check if post action tag is to be triggered in the flow of collection // based on some CCIN value? if (m_parsedJson["frus"][i_vpdFruPath] - .at(0)["postAction"]["collection"] + .at(0)["postAction"][i_flagToProcess] .contains("ccin")) { if (!i_parsedVpd.has_value()) { - throw std::runtime_error( - "Parsed VPD map parameter is mandatory for CCIN match"); + logging::logMessage("Empty VPD Map"); + return false; } // CCIN match is required to process post action for this FRU as it @@ -1563,4 +1563,108 @@ void Worker::performBackupAndRestore(types::VPDMapVariant& io_srcVpdMap) */ } } + +void Worker::deleteFruVpd(const std::string& i_dbusObjPath) +{ + if (i_dbusObjPath.empty()) + { + throw std::runtime_error("Given DBus object path is empty."); + } + + const std::string& l_fruPath = + jsonUtility::getFruPathFromJson(m_parsedJson, i_dbusObjPath); + + try + { + auto l_presentPropValue = dbusUtility::readDbusProperty( + constants::pimServiceName, i_dbusObjPath, + constants::inventoryItemInf, "Present"); + + if (auto l_value = std::get_if(&l_presentPropValue)) + { + if (!(*l_value)) + { + throw std::runtime_error("Given FRU is not present"); + } + else + { + if (jsonUtility::isActionRequired(m_parsedJson, l_fruPath, + "preAction", "deletion")) + { + if (!processPreAction(l_fruPath, "deletion")) + { + throw std::runtime_error("Pre action failed"); + } + } + + std::vector l_interfaceList{ + constants::operationalStatusInf}; + + types::MapperGetSubTree l_subTreeMap = + dbusUtility::getObjectSubTree(i_dbusObjPath, 0, + l_interfaceList); + + types::ObjectMap l_objectMap; + + // Updates VPD specific interfaces property value under PIM for + // sub FRUs. + for (const auto& [l_objectPath, l_serviceInterfaceMap] : + l_subTreeMap) + { + types::InterfaceMap l_interfaceMap; + vpdSpecificUtility::resetDataUnderPIM(l_objectPath, + l_interfaceMap); + l_objectMap.emplace(l_objectPath, + std::move(l_interfaceMap)); + } + + types::InterfaceMap l_interfaceMap; + vpdSpecificUtility::resetDataUnderPIM(i_dbusObjPath, + l_interfaceMap); + + l_objectMap.emplace(i_dbusObjPath, std::move(l_interfaceMap)); + + if (!dbusUtility::callPIM(std::move(l_objectMap))) + { + throw std::runtime_error( + "Can't process delete VPD for FRU [" + i_dbusObjPath + + "] as unable to read present property"); + } + + if (jsonUtility::isActionRequired(m_parsedJson, l_fruPath, + "postAction", "deletion")) + { + if (!processPostAction(l_fruPath, "deletion")) + { + throw std::runtime_error("Post action failed"); + } + } + } + } + else + { + logging::logMessage("DBus read failed"); + return; + } + + logging::logMessage("Successfully completed deletion of FRU VPD for " + + i_dbusObjPath); + } + catch (const std::exception& l_ex) + { + if (jsonUtility::isActionRequired(m_parsedJson, l_fruPath, + "postFailAction", "deletion")) + { + if (!jsonUtility::executePostFailAction(m_parsedJson, l_fruPath, + "deletion")) + { + logging::logMessage("Post fail action failed for: " + + i_dbusObjPath); + } + } + + logging::logMessage("Failed to delete VPD for FRU : " + i_dbusObjPath + + " error: " + std::string(l_ex.what())); + } +} } // namespace vpd