meta-facebook: add ability to set remote-addr in ipmb config
Some platforms will need to assign different remote-addr for each
channel. Add a IPMB_REMOTE_ADDR for assigning remote-addr for each
corresponding channel instead of assign fixed remote-addr to all
channels.
If the size of IPMB_REMOTE_ADDR not consistent and less than the size
of IPMB_CHANNEL, the remote-addr will be filled with 64 for the
channels does not assigned.
Test results of tiogapass:
```
{
"channels": [
{
"type": "ipmb",
"slave-path": "/dev/ipmb-4",
"bmc-addr": 32,
"remote-addr": "44",
"devIndex": 0
},
{
"type": "ipmb",
"slave-path": "/dev/ipmb-9",
"bmc-addr": 32,
"remote-addr": "96",
"devIndex": 1
}
]
}
```
Signed-off-by: Potin Lai <potin.lai@quantatw.com>
Change-Id: I785201c2c643cf6aa7b83e61df9601ae581f34ad
diff --git a/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
index b97913b..2380c3a 100644
--- a/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
+++ b/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
@@ -2,3 +2,7 @@
/dev/ipmb-4 \
/dev/ipmb-9 \
"
+IPMB_REMOTE_ADDR:tiogapass = "\
+ 44 \
+ 96 \
+ "
diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
index c064394..e072332 100644
--- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
+++ b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend
@@ -1,18 +1,21 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
IPMB_CHANNELS ?= ""
+IPMB_REMOTE_ADDR ?= ""
python do_ipmb_channels() {
import json
channels = []
+ ipmb_channel = d.getVar('IPMB_CHANNELS').split()
+ ipmb_remote_addr = d.getVar('IPMB_REMOTE_ADDR').split()
- for channel in d.getVar('IPMB_CHANNELS').split():
+ for i in range(len(ipmb_channel)):
channels.append({
"type": "ipmb",
- "slave-path": channel,
+ "slave-path": ipmb_channel[i],
"bmc-addr": 32,
- "remote-addr": 64,
- "devIndex": len(channels)
+ "remote-addr": ipmb_remote_addr[i] if i < len(ipmb_remote_addr) else 64,
+ "devIndex": i
})
data = { "channels" : channels }