Support dynamically update BMC slave address

On multi-node platform, the BMC slave address is determined by node ID,
so the BMC slave address needs to be updated after node ID detection.
This patch makes slave-mqueue configurable at run time using 'new_device'
and 'delete-device' sysfs interfaces.
The sample to change BMC slave addr:
(Assume original slave addr is 0x20, but it should be 0x22)
echo "0x1010" > /sys/bus/i2c/devices/i2c-0/delete_device
echo "slave-mqueue 0x1011" > /sys/bus/i2c/devices/i2c-0/new_device

Dependency:
[DTS] remove ipmb0 node to support dynamically update BMC slave address

Tested:
1. The I2C slave message can be received correctly after CMC sends signal
of "updateBmcSlaveAddr" (BNP)
2. Check sys file of slave device exists by command like
"ls -l /sys/bus/i2c/devices/0-1011/slave-mqueue" (BNP)
3. IPMI command injected to bus0 via IPMB header can return correct value (WFP)

Change-Id: Ie55715cf940f19e10d265ae7efec4d4bf55744a2
Signed-off-by: Qiang XU <qiang.xu@linux.intel.com>
diff --git a/ipmbbridged.hpp b/ipmbbridged.hpp
index 4d24790..01b2f44 100644
--- a/ipmbbridged.hpp
+++ b/ipmbbridged.hpp
@@ -257,10 +257,14 @@
 
     int ipmbChannelInit(const char *ipmbI2cSlave, const char *ipmbI2cMaster);
 
+    int ipmbChannelUpdateSlaveAddress(const uint8_t newBmcSlaveAddr);
+
     bool seqNumGet(uint8_t &seq);
 
     ipmbChannelType getChannelType();
 
+    uint8_t getBusId();
+
     uint8_t getBmcSlaveAddress();
 
     uint8_t getRqSlaveAddress();
@@ -285,6 +289,7 @@
 
     uint8_t ipmbBmcSlaveAddress;
     uint8_t ipmbRqSlaveAddress;
+    uint8_t ipmbBusId;
 
     ipmbChannelType type;