Merge pull request #15 from amshinde/pass-addr-bridge

qemu: Add qemu parameter for PCI address for a bridge.
This commit is contained in:
Sebastien Boeuf 2018-04-03 12:21:35 -07:00 committed by GitHub
commit 9cf8ce6c6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 0 deletions

View File

@ -907,6 +907,9 @@ type BridgeDevice struct {
// SHPC is used to enable or disable the standard hot plug controller
SHPC bool
// PCI Slot
Addr string
}
// Valid returns true if the BridgeDevice structure is valid and complete.
@ -941,6 +944,13 @@ func (bridgeDev BridgeDevice) QemuParams(config *Config) []string {
}
deviceParam := fmt.Sprintf("%s,bus=%s,id=%s,chassis_nr=%d,shpc=%s", deviceName, bridgeDev.Bus, bridgeDev.ID, bridgeDev.Chassis, shpc)
if bridgeDev.Addr != "" {
addr, err := strconv.Atoi(bridgeDev.Addr)
if err == nil && addr >= 0 {
deviceParam += fmt.Sprintf(",addr=%x", addr)
}
}
qemuParams = append(qemuParams, "-device")
qemuParams = append(qemuParams, deviceParam)

View File

@ -365,6 +365,22 @@ func TestAppendDeviceSCSIController(t *testing.T) {
testAppend(scsiCon, deviceSCSIControllerBusAddrStr, t)
}
var deviceBridgeString = "-device pci-bridge,bus=/pci-bus/pcie.0,id=mybridge,chassis_nr=5,shpc=on,addr=ff"
func TestAppendBridgeDevice(t *testing.T) {
bridge := BridgeDevice{
Type: PCIBridge,
ID: "mybridge",
Bus: "/pci-bus/pcie.0",
Addr: "255",
Chassis: 5,
SHPC: true,
}
testAppend(bridge, deviceBridgeString, t)
}
func TestAppendEmptyDevice(t *testing.T) {
device := SerialDevice{}