facebook: ventura: add GPIODeviceDetect for cable
Add GPIODeviceDetect EM config for cables on ventura platform.
Tested:
1. Query xyz.openbmc_project.gpiopresence service
```
root@bmc:~# busctl tree xyz.openbmc_project.gpiopresence
└─ /xyz
└─ /xyz/openbmc_project
└─ /xyz/openbmc_project/GPIODeviceDetected
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort1
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort10
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort11
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort12
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort13
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort14
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort15
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort16
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort17
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort18
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort19
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort2
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort20
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort21
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort22
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort23
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort24
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort25
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort26
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort27
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort3
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort4
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort5
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort6
├─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort7
└─ /xyz/openbmc_project/GPIODeviceDetected/LeakPort8
```
2. Introspect specific LeakPort path
```
root@bmc:~# busctl introspect xyz.openbmc_project.gpiopresence /xyz/openbmc_project/GPIODeviceDetected/LeakPort1
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Inventory.Source.DevicePresence interface - - -
.Name property s "LeakPort1" emits-change writable
```
3. Show cable inventory
```
root@bmc:~# busctl tree xyz.openbmc_project.EntityManager | grep -i cable
└─ /xyz/openbmc_project/inventory/system/cable
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort1
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort10
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort11
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort12
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort13
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort14
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort15
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort16
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort17
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort18
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort19
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort2
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort20
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort21
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort22
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort23
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort24
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort25
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort26
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort27
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort3
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort4
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort5
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort6
├─ /xyz/openbmc_project/inventory/system/cable/LeakPort7
└─ /xyz/openbmc_project/inventory/system/cable/LeakPort8
```
4. Redfish cable inventory -
```
{
"@odata.id": "/redfish/v1/Cables",
"@odata.type": "#CableCollection.CableCollection",
"Description": "Collection of Cable Entries",
"Members": [
{
"@odata.id": "/redfish/v1/Cables/LeakPort1"
},
{
"@odata.id": "/redfish/v1/Cables/LeakPort2"
},
{
"@odata.id": "/redfish/v1/Cables/LeakPort3"
},
...
...
{
"@odata.id": "/redfish/v1/Cables/LeakPort27"
}
],
"Members@odata.count": 26,
"Name": "Cable Collection"
}
```
5. Redfish query specific cable -
```
{
"@odata.id": "/redfish/v1/Cables/LeakPort1",
"@odata.type": "#Cable.v1_0_0.Cable",
"Id": "LeakPort1",
"Name": "Cable",
"Status": {
"State": "Enabled"
}
}
```
Change-Id: I473b9b47e65511a81cc0aa9fd64e84d16dec093e
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/configurations/meson.build b/configurations/meson.build
index 4e769c0..6a3ffd7 100644
--- a/configurations/meson.build
+++ b/configurations/meson.build
@@ -105,6 +105,7 @@
'meta/minerva_tahan_smb.json',
'meta/terminus_2x100g_nic_tsff.json',
'meta/twinlake.json',
+ 'meta/ventura_cable.json',
'meta/ventura_fanboard_adc_max.json',
'meta/ventura_fanboard_adc_tic.json',
'meta/ventura_ioboard.json',
diff --git a/configurations/meta/ventura_cable.json b/configurations/meta/ventura_cable.json
new file mode 100644
index 0000000..45fb7f3
--- /dev/null
+++ b/configurations/meta/ventura_cable.json
@@ -0,0 +1,10 @@
+{
+ "Exposes": [],
+ "Name": "$Name",
+ "Probe": "xyz.openbmc_project.Inventory.Source.DevicePresence({'Name': 'LeakPort*'})",
+ "Type": "Cable",
+ "xyz.openbmc_project.Inventory.Decorator.Cable": {
+ "Length": 0,
+ "Type": "Copper"
+ }
+}
diff --git a/configurations/meta/ventura_scm.json b/configurations/meta/ventura_scm.json
index ecadda1..da353ec 100644
--- a/configurations/meta/ventura_scm.json
+++ b/configurations/meta/ventura_scm.json
@@ -216,6 +216,276 @@
"Type": "EEPROM"
},
{
+ "Name": "LeakPort1",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY1_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort2",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY2_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort3",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY3_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort4",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY4_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort5",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY5_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort6",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY6_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort7",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY7_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort8",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY8_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort9",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY1_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort10",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY2_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort11",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY3_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort12",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY4_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort13",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY5_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort14",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY6_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort15",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY7_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort16",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY8_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort17",
+ "PresencePinNames": [
+ "PRSNT_NVS_TRAY9_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort18",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY9_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort19",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY10_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort20",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY11_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort21",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY12_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort22",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY13_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort23",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY14_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort24",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY15_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort25",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY16_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort26",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY17_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
+ "Name": "LeakPort27",
+ "PresencePinNames": [
+ "PRSNT_COMPUTE_TRAY18_N"
+ ],
+ "PresencePinValues": [
+ 0
+ ],
+ "Type": "GPIODeviceDetect"
+ },
+ {
"Level": "Warning",
"Name": "LeakPort1_Small",
"PinName": "SMALL_LEAK_COMPUTE_TRAY1_N",