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