Hi; Currently, devices for a BMC are specified in the board init method for that machine, see: - https://github.com/qemu/qemu/blob/b785d25e91718a660546a6550f64b3c543af7754/hw/arm/aspeed.c#L414
This requires listing all i2c devices, and setting some properties. QMP can be used to set the properties for those devices at run-time already. We're looking at developing many BMC boards, but for most boards, the i2c devices that correspond to PCIe devices vary by configuration -- which PCI cards are plugged into which slots. We'd like to not hard-code those i2c devices and have variations of the same device board. For instance: board-bmc + two cards (slot 1, slot 2) board-bmc + one card (slot 3) The slot to i2c bus mapping is beyond the scope of this, because that isn't something that technically changes*. To solve this problem, we'd like to add an optional device json configuration parameter. Using QMP (which I believe supports adding devices of this type in the schema), the file would be parsed after the board_init method and additional devices then loaded. Are there any immediate problems with this kind of approach, or possibly it's already supported in some way? Thanks, Patrick *The i2c bus numbering can be altered, but typically a BMC's device-tree uses aliases to ensure consistency of i2c-bus numbering between configurations.