X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fpci.c;fp=palacios%2Fsrc%2Fdevices%2Fpci.c;h=f1d5395483386fb308ff1c1ea1a93e2f13a73058;hb=dd3f7ea6cca033e643e66176c08896f0ea5de9e9;hp=de3e0eaeb7f2707030226dd934dc3a7429aaa127;hpb=b5c53bc93c0daf0d03d04afbce2e874f5f39c710;p=palacios.git diff --git a/palacios/src/devices/pci.c b/palacios/src/devices/pci.c index de3e0ea..f1d5395 100644 --- a/palacios/src/devices/pci.c +++ b/palacios/src/devices/pci.c @@ -381,8 +381,17 @@ static int data_port_write(ushort_t port, void * src, uint_t length, struct vm_d } } else if ((cur_reg >= 0x30) && (cur_reg < 0x34)) { pci_dev->ext_rom_update_flag = 1; - } else if ((cur_reg == 0x04) || (cur_reg == 0x05)) { - // COMMAND update + } else if (cur_reg == 0x04) { + // COMMAND update + uint8_t command = *((uint8_t *)src + i); + + pci_dev->config_space[cur_reg] = command; + + if (pci_dev->cmd_update) { + pci_dev->cmd_update(pci_dev, (command & 0x01), (command & 0x02)); + } + + } else if (cur_reg == 0x0f) { // BIST update pci_dev->config_header.BIST = 0x00;