meta-google: ipmi-config: Recover gbmc_version and fix task dependency
Update the dev_id.json directly after the install and before the
do_package to make sure it always get install/packaged properly.
Tested:
```
MACHINE=$PLATFORM GBMC_VERSION=0.0.0.5 bitbake phosphor-ipmi-config
...
{
"addn_dev_support": 2,
"aux": 327680,
"firmware_revision": {
"major": 0,
"minor": 0
},
"id": 32,
"manuf_id": 1234,
"prod_id": 5678,
"revision": 1
}
```
Change-Id: Ic43ba03fddb972d2dbbda64a31237574fbd39a34
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/meta-google/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend b/meta-google/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend
index 2f2d9e0..5c27e02 100644
--- a/meta-google/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend
+++ b/meta-google/recipes-phosphor/ipmi/phosphor-ipmi-config.bbappend
@@ -41,3 +41,36 @@
echo "[]" > ${D}${datadir}/ipmi-providers/entity-map.json
fi
}
+
+python do_gbmc_version () {
+ import json
+
+ if d.getVar('GBMC_VERSION') is None:
+ return
+
+ version = d.getVar('GBMC_VERSION').split('.')
+ major = min(int(version[0]), 0x7F) & 0x7F
+ minor = min(int(version[1]), 99)
+ minor = int(minor / 10) * 16 + minor % 10;
+ point = int(version[2])
+ subpoint = int(version[3])
+
+ dir = d.getVar('D') + d.getVar('datadir') + '/ipmi-providers'
+ path = os.path.join(dir, 'dev_id.json')
+
+ dev_id = {}
+
+ # Open existing dev_id and override the fields not needed for version.
+ with open(path, 'r') as f:
+ dev_id = json.load(f)
+ dev_id["firmware_revision"] = {
+ "major": major,
+ "minor": minor
+ }
+ dev_id["aux"] = subpoint << 16 | (0xFFFF & point)
+
+ with open(path, 'w') as f:
+ json.dump(dev_id, f, sort_keys=True, indent=4)
+}
+
+addtask gbmc_version after do_install before do_package