Loading Makefile.objs +1 −3 Original line number Diff line number Diff line Loading @@ -169,9 +169,7 @@ hw-obj-y = hw-obj-y += vl.o loader.o hw-obj-$(CONFIG_VIRTIO) += virtio.o virtio-console.o hw-obj-y += fw_cfg.o # FIXME: Core PCI code and its direct dependencies are required by the # QMP query-pci command. hw-obj-y += pci.o pci_bridge.o hw-obj-$(CONFIG_PCI) += pci.o pci_bridge.o hw-obj-$(CONFIG_PCI) += msix.o msi.o hw-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o hw-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o Loading Makefile.target +2 −0 Original line number Diff line number Diff line # -*- Mode: makefile -*- GENERATED_HEADERS = config-target.h CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y) CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y) include ../config-host.mak Loading Loading @@ -188,6 +189,7 @@ ifdef CONFIG_SOFTMMU obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o balloon.o # virtio has to be here due to weird dependency between PCI and virtio-net. # need to fix this properly obj-$(CONFIG_NO_PCI) += pci-stub.o obj-$(CONFIG_VIRTIO) += virtio-blk.o virtio-balloon.o virtio-net.o virtio-serial-bus.o obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o obj-y += vhost_net.o Loading hmp-commands.hx +25 −0 Original line number Diff line number Diff line Loading @@ -870,6 +870,31 @@ STEXI @item pci_del @findex pci_del Hot remove PCI device. ETEXI { .name = "pcie_aer_inject_error", .args_type = "advisory_non_fatal:-a,correctable:-c," "id:s,error_status:s," "header0:i?,header1:i?,header2:i?,header3:i?," "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?", .params = "[-a] [-c] id " "<error_status> [<tlp header> [<tlp header prefix>]]", .help = "inject pcie aer error\n\t\t\t" " -a for advisory non fatal error\n\t\t\t" " -c for correctable error\n\t\t\t" "<id> = qdev device id\n\t\t\t" "<error_status> = error string or 32bit\n\t\t\t" "<tlb header> = 32bit x 4\n\t\t\t" "<tlb header prefix> = 32bit x 4", .user_print = pcie_aer_inject_error_print, .mhandler.cmd_new = do_pcie_aer_inejct_error, }, STEXI @item pcie_aer_inject_error @findex pcie_aer_inject_error Inject PCIe AER error ETEXI { Loading hw/pc_piix.c +4 −8 Original line number Diff line number Diff line Loading @@ -217,14 +217,6 @@ static QEMUMachine pc_machine = { .desc = "Standard PC", .init = pc_init_pci, .max_cpus = 255, .compat_props = (GlobalProperty[]) { { .driver = "PCI", .property = "command_serr_enable", .value = "off", }, { /* end of list */ } }, .is_default = 1, }; Loading @@ -246,6 +238,10 @@ static QEMUMachine pc_machine_v0_13 = { .driver = "vmware-svga", .property = "rombar", .value = stringify(0), },{ .driver = "PCI", .property = "command_serr_enable", .value = "off", }, { /* end of list */ } }, Loading hw/pci-stub.c 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * PCI stubs for plathome that doesn't support pci bus. * * Copyright (c) 2010 Isaku Yamahata <yamahata at valinux co jp> * VA Linux Systems Japan K.K. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see <http://www.gnu.org/licenses/>. */ #include "sysemu.h" #include "monitor.h" #include "pci.h" static void pci_error_message(Monitor *mon) { monitor_printf(mon, "PCI devices not supported\n"); } void do_pci_info(Monitor *mon, QObject **ret_data) { pci_error_message(mon); } void do_pci_info_print(Monitor *mon, const QObject *data) { pci_error_message(mon); } int do_pcie_aer_inejct_error(Monitor *mon, const QDict *qdict, QObject **ret_data) { pci_error_message(mon); return -ENOSYS; } void pcie_aer_inject_error_print(Monitor *mon, const QObject *data) { pci_error_message(mon); } Loading
Makefile.objs +1 −3 Original line number Diff line number Diff line Loading @@ -169,9 +169,7 @@ hw-obj-y = hw-obj-y += vl.o loader.o hw-obj-$(CONFIG_VIRTIO) += virtio.o virtio-console.o hw-obj-y += fw_cfg.o # FIXME: Core PCI code and its direct dependencies are required by the # QMP query-pci command. hw-obj-y += pci.o pci_bridge.o hw-obj-$(CONFIG_PCI) += pci.o pci_bridge.o hw-obj-$(CONFIG_PCI) += msix.o msi.o hw-obj-$(CONFIG_PCI) += pci_host.o pcie_host.o hw-obj-$(CONFIG_PCI) += ioh3420.o xio3130_upstream.o xio3130_downstream.o Loading
Makefile.target +2 −0 Original line number Diff line number Diff line # -*- Mode: makefile -*- GENERATED_HEADERS = config-target.h CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y) CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y) include ../config-host.mak Loading Loading @@ -188,6 +189,7 @@ ifdef CONFIG_SOFTMMU obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o balloon.o # virtio has to be here due to weird dependency between PCI and virtio-net. # need to fix this properly obj-$(CONFIG_NO_PCI) += pci-stub.o obj-$(CONFIG_VIRTIO) += virtio-blk.o virtio-balloon.o virtio-net.o virtio-serial-bus.o obj-$(CONFIG_VIRTIO_PCI) += virtio-pci.o obj-y += vhost_net.o Loading
hmp-commands.hx +25 −0 Original line number Diff line number Diff line Loading @@ -870,6 +870,31 @@ STEXI @item pci_del @findex pci_del Hot remove PCI device. ETEXI { .name = "pcie_aer_inject_error", .args_type = "advisory_non_fatal:-a,correctable:-c," "id:s,error_status:s," "header0:i?,header1:i?,header2:i?,header3:i?," "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?", .params = "[-a] [-c] id " "<error_status> [<tlp header> [<tlp header prefix>]]", .help = "inject pcie aer error\n\t\t\t" " -a for advisory non fatal error\n\t\t\t" " -c for correctable error\n\t\t\t" "<id> = qdev device id\n\t\t\t" "<error_status> = error string or 32bit\n\t\t\t" "<tlb header> = 32bit x 4\n\t\t\t" "<tlb header prefix> = 32bit x 4", .user_print = pcie_aer_inject_error_print, .mhandler.cmd_new = do_pcie_aer_inejct_error, }, STEXI @item pcie_aer_inject_error @findex pcie_aer_inject_error Inject PCIe AER error ETEXI { Loading
hw/pc_piix.c +4 −8 Original line number Diff line number Diff line Loading @@ -217,14 +217,6 @@ static QEMUMachine pc_machine = { .desc = "Standard PC", .init = pc_init_pci, .max_cpus = 255, .compat_props = (GlobalProperty[]) { { .driver = "PCI", .property = "command_serr_enable", .value = "off", }, { /* end of list */ } }, .is_default = 1, }; Loading @@ -246,6 +238,10 @@ static QEMUMachine pc_machine_v0_13 = { .driver = "vmware-svga", .property = "rombar", .value = stringify(0), },{ .driver = "PCI", .property = "command_serr_enable", .value = "off", }, { /* end of list */ } }, Loading
hw/pci-stub.c 0 → 100644 +50 −0 Original line number Diff line number Diff line /* * PCI stubs for plathome that doesn't support pci bus. * * Copyright (c) 2010 Isaku Yamahata <yamahata at valinux co jp> * VA Linux Systems Japan K.K. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see <http://www.gnu.org/licenses/>. */ #include "sysemu.h" #include "monitor.h" #include "pci.h" static void pci_error_message(Monitor *mon) { monitor_printf(mon, "PCI devices not supported\n"); } void do_pci_info(Monitor *mon, QObject **ret_data) { pci_error_message(mon); } void do_pci_info_print(Monitor *mon, const QObject *data) { pci_error_message(mon); } int do_pcie_aer_inejct_error(Monitor *mon, const QDict *qdict, QObject **ret_data) { pci_error_message(mon); return -ENOSYS; } void pcie_aer_inject_error_print(Monitor *mon, const QObject *data) { pci_error_message(mon); }