diff options
author | Patrick Williams <patrick@stwcx.xyz> | 2023-08-05 17:21:19 +0300 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2023-08-07 00:14:31 +0300 |
commit | 5500d05b0e7e15b4698cf61815f230db1d4ed720 (patch) | |
tree | 1841bb19f0498e558cafb3cb7a302d43a74d7ab2 | |
parent | 796196a605a2179023b397a276f90c735a371e0d (diff) | |
download | openbmc-5500d05b0e7e15b4698cf61815f230db1d4ed720.tar.xz |
meta-facebook: generate ipmb config
Rather than having each system provide a (possibly empty) IPMB config,
generate the `ipmb_channels.json` in the Yocto recipe.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iab42f4aa7c3c91f610d99c3742aada82aa5b9138
9 files changed, 45 insertions, 108 deletions
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend new file mode 100644 index 0000000000..ae8a15d650 --- /dev/null +++ b/meta-facebook/meta-bletchley/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -0,0 +1 @@ +IPMB_CHANNELS:bletchley = "/dev/ipmb-13" diff --git a/meta-facebook/meta-greatlakes/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/meta-greatlakes/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend new file mode 100644 index 0000000000..93147e49b3 --- /dev/null +++ b/meta-facebook/meta-greatlakes/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -0,0 +1,7 @@ +IPMB_CHANNELS:greatlakes = "\ + /dev/ipmb-0 \ + /dev/ipmb-1 \ + /dev/ipmb-2 \ + /dev/ipmb-3 \ + /dev/ipmb-9 \ + " 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 new file mode 100644 index 0000000000..b97913bfaa --- /dev/null +++ b/meta-facebook/meta-tiogapass/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -0,0 +1,4 @@ +IPMB_CHANNELS:tiogapass = "\ + /dev/ipmb-4 \ + /dev/ipmb-9 \ + " diff --git a/meta-facebook/meta-yosemitev2/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/meta-yosemitev2/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend new file mode 100644 index 0000000000..efd3aa2131 --- /dev/null +++ b/meta-facebook/meta-yosemitev2/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -0,0 +1,7 @@ +IPMB_CHANNELS:yosemitev2 = "\ + /dev/ipmb-1 \ + /dev/ipmb-3 \ + /dev/ipmb-5 \ + /dev/ipmb-7 \ + /dev/ipmb-13 \ + " diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/bletchley/ipmb-channels.json b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/bletchley/ipmb-channels.json deleted file mode 100644 index 441e867aac..0000000000 --- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/bletchley/ipmb-channels.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "channels": [ - { - "type": "ipmb", - "slave-path": "/dev/ipmb-13", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 0 - } - ] -} diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/greatlakes/ipmb-channels.json b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/greatlakes/ipmb-channels.json deleted file mode 100644 index 4452203f42..0000000000 --- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/greatlakes/ipmb-channels.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "channels": [ - { - "type": "ipmb", - "slave-path": "/dev/ipmb-0", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 0 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-1", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 1 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-2", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 2 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-3", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 3 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-9", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 4 - } - ] -} diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/tiogapass/ipmb-channels.json b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/tiogapass/ipmb-channels.json deleted file mode 100644 index 690f9e733b..0000000000 --- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/tiogapass/ipmb-channels.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "channels": [ - { - "type": "me", - "slave-path": "/dev/ipmb-4", - "bmc-addr": 32, - "remote-addr": 44 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-9", - "bmc-addr": 32, - "remote-addr": 96 - } - ] -} diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/yosemitev2/ipmb-channels.json b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/yosemitev2/ipmb-channels.json deleted file mode 100755 index 43276132b2..0000000000 --- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb/yosemitev2/ipmb-channels.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "channels": [ - { - "type": "ipmb", - "slave-path": "/dev/ipmb-1", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 0 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-3", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 1 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-5", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 2 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-7", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 3 - }, - { - "type": "ipmb", - "slave-path": "/dev/ipmb-13", - "bmc-addr": 32, - "remote-addr": 64, - "devIndex": 4 - } - ] -} diff --git a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend index 44eefb099b..824718f9ac 100644 --- a/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend +++ b/meta-facebook/recipes-phosphor/ipmi/phosphor-ipmi-ipmb_%.bbappend @@ -1,8 +1,31 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/${MACHINE}:" -SRC_URI:append = " file://ipmb-channels.json" +IPMB_CHANNELS ?= "" + +python do_ipmb_channels() { + import json + channels = [] + + for channel in d.getVar('IPMB_CHANNELS').split(): + channels.append({ + "type": "ipmb", + "slave-path": channel, + "bmc-addr": 32, + "remote-addr": 64, + "devIndex": len(channels) + }) + + data = { "channels" : channels } + + path = os.path.join(d.getVar('D') + d.getVar('datadir'), + 'ipmbbridge', 'ipmb-channels.json') + + with open(path, 'w') as f: + json.dump(data, f, indent=4) +} +do_ipmb_channels[vardeps] += "IPMB_CHANNELS" +addtask ipmb_channels after do_install before do_package do_install:append() { - install -m 0644 -D ${WORKDIR}/ipmb-channels.json \ - ${D}${datadir}/ipmbbridge + install -d ${D}${datadir}/ipmbbridge } |