Yuji Shimada
2009-Mar-18 07:41 UTC
[Xen-devel] [PATCH 0/2] Disable xen platform PCI device when xen_platform_pci=0 is specified
This series of patches disables xen platform PCI device of HVM domain when "xen_platform_pci=0" is specified. - Alias the "platform_flags" byte of the ioport BAR to fixed byte port 0x10, and don''t remove existing "platform_flags" byte. - Change guest firmware to use new fixed byte port 0x10. - Add "xen_platform_pci" option into guest config file and APIs. xen_platform_pci=0: Disable xen platform device. xen_platform_pci=1: Enable xen platform device. (default) - Add "disable_pf" entry into xenstore. - Disable xen platform PCI device if "disable_pf" entry is 1. If there is not "disable_pf" entry, xen platform PCI device is enabled. Thanks, -- Yuji Shimada _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yuji Shimada
2009-Mar-18 07:44 UTC
[Xen-devel] [PATCH 1/2] Disable xen platform PCI device when xen_platform_pci=0 is specified
This patch is the xen side of the series. - Change guest firmware to use new fixed byte port 0x10. - Add "xen_platform_pci" option into guest config file and APIs. xen_platform_pci=0: Disable xen platform device. xen_platform_pci=1: Enable xen platform device. (default) - Add "disable_pf" entry into xenstore. Thanks, -- Yuji Shimada Signed-off-by: Yuji Shimada <shimada-yxb@necst.nec.co.jp> diff -r 92a6cc5eae2e tools/examples/xmexample.hvm --- a/tools/examples/xmexample.hvm Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/examples/xmexample.hvm Wed Mar 18 15:35:45 2009 +0900 @@ -225,6 +225,10 @@ #keymap=''ja'' #----------------------------------------------------------------------------- +# Enable/disable xen platform PCI device, default=1 (enabled) +#xen_platform_pci=1 + +#----------------------------------------------------------------------------- # Configure guest CPUID responses: # #cpuid=[ ''1:ecx=xxxxxxxxxxx00xxxxxxxxxxxxxxxxxxx, diff -r 92a6cc5eae2e tools/firmware/hvmloader/config.h --- a/tools/firmware/hvmloader/config.h Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/firmware/hvmloader/config.h Wed Mar 18 15:35:45 2009 +0900 @@ -56,9 +56,7 @@ uint8_t hpet_present:1; /* 0[2] - System has HPET? */ uint32_t pci_min, pci_len; /* 4, 8 - PCI I/O hole boundaries */ uint32_t bios32_entry; /* 12 - Entry point for 32-bit BIOS */ - uint16_t xen_pfiob; /* 16 - Xen platform device I/O ports */ }; #define BIOSINFO_OFF_bios32_entry 12 -#define BIOSINFO_OFF_xen_pfiob 16 #endif /* __HVMLOADER_CONFIG_H__ */ diff -r 92a6cc5eae2e tools/firmware/hvmloader/hvmloader.c --- a/tools/firmware/hvmloader/hvmloader.c Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/firmware/hvmloader/hvmloader.c Wed Mar 18 15:35:45 2009 +0900 @@ -539,25 +539,6 @@ cmos_outb(0x35, (uint8_t)( alt_mem >> 8)); } -static uint16_t xen_platform_io_base(void) -{ - uint32_t devfn, bar_data; - uint16_t vendor_id, device_id; - - for ( devfn = 0; devfn < 128; devfn++ ) - { - vendor_id = pci_readw(devfn, PCI_VENDOR_ID); - device_id = pci_readw(devfn, PCI_DEVICE_ID); - if ( (vendor_id == 0x5853) && (device_id == 0x0001) ) - { - bar_data = pci_readl(devfn, PCI_BASE_ADDRESS_0); - return bar_data & PCI_BASE_ADDRESS_IO_MASK; - } - } - - return 0; -} - /* * Set up an empty TSS area for virtual 8086 mode to use. * The only important thing is that it musn''t have any bits set @@ -744,7 +725,6 @@ bios_info->pci_min = pci_mem_start; bios_info->pci_len = pci_mem_end - pci_mem_start; bios_info->bios32_entry = bios32_addr; - bios_info->xen_pfiob = xen_platform_io_base(); printf("Invoking ROMBIOS ...\n"); return 0; diff -r 92a6cc5eae2e tools/firmware/rombios/rombios.c --- a/tools/firmware/rombios/rombios.c Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/firmware/rombios/rombios.c Wed Mar 18 15:35:45 2009 +0900 @@ -1418,24 +1418,14 @@ write_word(0x40, 0x13, base_mem >> 10); } -ASM_START -_rom_write_access_control: - push ds - mov ax,#(BIOS_INFO_PHYSICAL_ADDRESS >> 4) - mov ds,ax - mov ax,[BIOSINFO_OFF_xen_pfiob] - pop ds - ret -ASM_END - void enable_rom_write_access() { - outb(rom_write_access_control(), 0); + outb(0x10, 0); } void disable_rom_write_access() { - outb(rom_write_access_control(), PFFLAG_ROM_LOCK); + outb(0x10, PFFLAG_ROM_LOCK); } #endif /* HVMASSIST */ diff -r 92a6cc5eae2e tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/python/xen/xend/XendConfig.py Wed Mar 18 15:35:45 2009 +0900 @@ -170,6 +170,7 @@ ''xen_extended_power_mgmt'': int, ''pci_msitranslate'': int, ''pci_power_mgmt'': int, + ''xen_platform_pci'': int, } # Xen API console ''other_config'' keys. @@ -464,6 +465,8 @@ self[''platform''][''rtc_timeoffset''] = 0 if ''hpet'' not in self[''platform'']: self[''platform''][''hpet''] = 0 + if ''xen_platform_pci'' not in self[''platform'']: + self[''platform''][''xen_platform_pci''] = 1 if ''vpt_align'' not in self[''platform'']: self[''platform''][''vpt_align''] = 1 if ''loader'' not in self[''platform'']: diff -r 92a6cc5eae2e tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/python/xen/xend/image.py Wed Mar 18 15:35:45 2009 +0900 @@ -716,6 +716,7 @@ if ''hvm'' not in info[''xen_caps'']: raise HVMRequired() + xen_platform_pci = int(vmConfig[''platform''].get(''xen_platform_pci'',1)) rtc_timeoffset = vmConfig[''platform''].get(''rtc_timeoffset'') if not self.display : @@ -724,13 +725,23 @@ ("image/device-model", self.device_model), ("image/display", self.display)) self.vm.permissionsVm("image/dmargs", { ''dom'': self.vm.getDomid(), ''read'': True } ) + + if xen_platform_pci == 0: + disable_pf = 1 + log.info("No need to create platform device.[domid:%d]", self.vm.getDomid()) + else: + disable_pf = 0 + log.info("Need to create platform device.[domid:%d]", self.vm.getDomid()) + + xstransact.Store("/local/domain/0/device-model/%i"%self.vm.getDomid(), + (''disable_pf'', disable_pf)) self.vm.storeVm(("rtc/timeoffset", rtc_timeoffset)) self.vm.permissionsVm("rtc/timeoffset", { ''dom'': self.vm.getDomid(), ''read'': True } ) self.apic = int(vmConfig[''platform''].get(''apic'', 0)) self.acpi = int(vmConfig[''platform''].get(''acpi'', 0)) self.guest_os_type = vmConfig[''platform''].get(''guest_os_type'') - + # Return a list of cmd line args to the device models based on the # xm config file diff -r 92a6cc5eae2e tools/python/xen/xm/create.py --- a/tools/python/xen/xm/create.py Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/python/xen/xm/create.py Wed Mar 18 15:35:45 2009 +0900 @@ -611,6 +611,10 @@ fn=set_int, default=0, use="""Global PCI Power Management flag (0=disable;1=enable).""") +gopts.var(''xen_platform_pci'', val=''0|1'', + fn=set_int, default=1, + use="Is xen_platform_pci used?") + def err(msg): """Print an error to stderr and exit. """ @@ -921,7 +925,7 @@ ''acpi'', ''apic'', ''usb'', ''usbdevice'', ''keymap'', ''pci'', ''hpet'', ''guest_os_type'', ''hap'', ''opengl'', ''cpuid'', ''cpuid_check'', ''viridian'', ''xen_extended_power_mgmt'', ''pci_msitranslate'', - ''vpt_align'', ''pci_power_mgmt'' ] + ''vpt_align'', ''pci_power_mgmt'', ''xen_platform_pci'' ] for a in args: if a in vals.__dict__ and vals.__dict__[a] is not None: diff -r 92a6cc5eae2e tools/python/xen/xm/xenapi_create.py --- a/tools/python/xen/xm/xenapi_create.py Tue Mar 17 15:29:57 2009 +0000 +++ b/tools/python/xen/xm/xenapi_create.py Wed Mar 18 15:35:45 2009 +0900 @@ -1048,6 +1048,7 @@ ''hap'', ''pci_msitranslate'', ''pci_power_mgmt'', + ''xen_platform_pci'', ] platform_configs = [] _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yuji Shimada
2009-Mar-18 07:46 UTC
[Xen-devel] [PATCH 2/2] ioemu: Disable xen platform PCI device when xen_platform_pci=0 is specified
This patch is the ioemu side of the series. - Alias the "platform_flags" byte of the ioport BAR to fixed byte port 0x10, and don''t remove existing "platform_flags" byte. - Disable xen platform PCI device if "disable_pf" entry is 1. If there is not "disable_pf" entry, xen platform PCI device is enabled. Thanks, -- Yuji Shimada Signed-off-by: Yuji Shimada <shimada-yxb@necst.nec.co.jp> diff --git a/hw/pc.c b/hw/pc.c index 77f6812..dc5de7f 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -33,6 +33,7 @@ #include "boards.h" #include "console.h" #include "exec-all.h" +#include "qemu-xen.h" #include "xen_platform.h" #include "fw_cfg.h" @@ -780,6 +781,7 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size, { char buf[1024]; int ret, linux_boot, i; + int disable_pf; ram_addr_t ram_addr, vga_ram_addr, bios_offset, vga_bios_offset; ram_addr_t below_4g_mem_size, above_4g_mem_size = 0; int bios_size, isa_bios_size, vga_bios_size; @@ -1033,8 +1035,12 @@ vga_bios_error: pic_set_alt_irq_func(isa_pic, ioapic_set_irq, ioapic); } #endif /* !CONFIG_DM */ - if (pci_enabled) - pci_xen_platform_init(pci_bus); + if (pci_enabled) { + disable_pf = xenstore_parse_disable_pf_config(); + if (disable_pf != 1) + pci_xen_platform_init(pci_bus); + platform_fixed_ioport_init(); + } for(i = 0; i < MAX_SERIAL_PORTS; i++) { if (serial_hds[i]) { diff --git a/hw/xen_platform.c b/hw/xen_platform.c index 65a2da4..e77ee9f 100644 --- a/hw/xen_platform.c +++ b/hw/xen_platform.c @@ -40,12 +40,13 @@ extern FILE *logfile; static char log_buffer[4096]; static int log_buffer_off; +static uint8_t platform_flags; + #define PFFLAG_ROM_LOCK 1 /* Sets whether ROM memory area is RW or RO */ typedef struct PCIXenPlatformState { PCIDevice pci_dev; - uint8_t platform_flags; } PCIXenPlatformState; /* We throttle access to dom0 syslog, to avoid DOS attacks. This is @@ -130,105 +131,6 @@ static void throttle(unsigned count) available -= count; } -static uint32_t xen_platform_ioport_readb(void *opaque, uint32_t addr) -{ - PCIXenPlatformState *s = opaque; - - addr &= 0xff; - - return (addr == 0) ? s->platform_flags : ~0u; -} - -static void xen_platform_ioport_writeb(void *opaque, uint32_t addr, uint32_t val) -{ - PCIXenPlatformState *d = opaque; - - addr &= 0xff; - val &= 0xff; - - switch (addr) { - case 0: /* Platform flags */ { - hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ? - HVMMEM_ram_ro : HVMMEM_ram_rw; - if (xc_hvm_set_mem_type(xc_handle, domid, mem_type, 0xc0, 0x40)) - fprintf(logfile,"xen_platform: unable to change ro/rw " - "state of ROM memory area!\n"); - else - d->platform_flags = val & PFFLAG_ROM_LOCK; - break; - } - case 8: - { - if (val == ''\n'' || log_buffer_off == sizeof(log_buffer) - 1) { - /* Flush buffer */ - log_buffer[log_buffer_off] = 0; - throttle(log_buffer_off); - fprintf(logfile, "%s\n", log_buffer); - log_buffer_off = 0; - break; - } - log_buffer[log_buffer_off++] = val; - } - break; - default: - break; - } -} - -static void platform_ioport_map(PCIDevice *pci_dev, int region_num, uint32_t addr, uint32_t size, int type) -{ - PCIXenPlatformState *d = (PCIXenPlatformState *)pci_dev; - register_ioport_write(addr, size, 1, xen_platform_ioport_writeb, d); - register_ioport_read(addr, size, 1, xen_platform_ioport_readb, d); -} - -static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr) -{ - static int warnings = 0; - if (warnings < 5) { - fprintf(logfile, "Warning: attempted read from physical address " - "0x%"PRIx64" in xen platform mmio space\n", (uint64_t)addr); - warnings++; - } - return 0; -} - -static void platform_mmio_write(void *opaque, target_phys_addr_t addr, - uint32_t val) -{ - static int warnings = 0; - if (warnings < 5) { - fprintf(logfile, "Warning: attempted write of 0x%x to physical " - "address 0x%"PRIx64" in xen platform mmio space\n", - val, (uint64_t)addr); - warnings++; - } - return; -} - -static CPUReadMemoryFunc *platform_mmio_read_funcs[3] = { - platform_mmio_read, - platform_mmio_read, - platform_mmio_read, -}; - -static CPUWriteMemoryFunc *platform_mmio_write_funcs[3] = { - platform_mmio_write, - platform_mmio_write, - platform_mmio_write, -}; - -static void platform_mmio_map(PCIDevice *d, int region_num, - uint32_t addr, uint32_t size, int type) -{ - int mmio_io_addr; - - mmio_io_addr = cpu_register_io_memory(0, platform_mmio_read_funcs, - platform_mmio_write_funcs, NULL); - - cpu_register_physical_memory(addr, 0x1000000, mmio_io_addr); -} - #define UNPLUG_ALL_IDE_DISKS 1 #define UNPLUG_ALL_NICS 2 #define UNPLUG_AUX_IDE_DISKS 4 @@ -289,10 +191,23 @@ static void platform_fixed_ioport_write4(void *opaque, uint32_t addr, } } - static void platform_fixed_ioport_write1(void *opaque, uint32_t addr, uint32_t val) { switch (addr - 0x10) { + case 0: /* Platform flags */ { + hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ? + HVMMEM_ram_ro : HVMMEM_ram_rw; + if (xc_hvm_set_mem_type(xc_handle, domid, mem_type, 0xc0, 0x40)) + fprintf(logfile,"platform_fixed_ioport: unable to change ro/rw " + "state of ROM memory area!\n"); + else { + platform_flags = val & PFFLAG_ROM_LOCK; + fprintf(logfile,"platform_fixed_ioport: changed ro/rw " + "state of ROM memory area. now is %s state.\n", + (mem_type == HVMMEM_ram_ro ? "ro":"rw")); + } + break; + } case 2: /* Send bytes to syslog */ if (val == ''\n'' || log_buffer_off == sizeof(log_buffer) - 1) { @@ -328,6 +243,9 @@ static uint32_t platform_fixed_ioport_read2(void *opaque, uint32_t addr) static uint32_t platform_fixed_ioport_read1(void *opaque, uint32_t addr) { switch (addr - 0x10) { + case 0: + /* Platform flags */ + return platform_flags; case 2: /* Version number */ return 1; @@ -336,6 +254,131 @@ static uint32_t platform_fixed_ioport_read1(void *opaque, uint32_t addr) } } +void platform_fixed_ioport_save(QEMUFile *f, void *opaque) +{ + qemu_put_8s(f, &platform_flags); +} + +int platform_fixed_ioport_load(QEMUFile *f, void *opaque, int version_id) +{ + uint8_t flags; + + if (version_id > 1) + return -EINVAL; + + qemu_get_8s(f, &flags); + platform_fixed_ioport_write1(NULL, 0x10, flags); + + return 0; +} + +void platform_fixed_ioport_init(void) +{ + struct stat stbuf; + + register_savevm("platform_fixed_ioport", 0, 1, platform_fixed_ioport_save, + platform_fixed_ioport_load, NULL); + + register_ioport_write(0x10, 16, 4, platform_fixed_ioport_write4, NULL); + register_ioport_write(0x10, 16, 2, platform_fixed_ioport_write2, NULL); + register_ioport_write(0x10, 16, 1, platform_fixed_ioport_write1, NULL); + register_ioport_read(0x10, 16, 2, platform_fixed_ioport_read2, NULL); + register_ioport_read(0x10, 16, 1, platform_fixed_ioport_read1, NULL); + + if (stat("/etc/disable-guest-log-throttle", &stbuf) == 0) + throttling_disabled = 1; + + platform_fixed_ioport_write1(NULL, 0x10, 0); +} + +static uint32_t xen_platform_ioport_readb(void *opaque, uint32_t addr) +{ + addr &= 0xff; + + return (addr == 0) ? platform_fixed_ioport_read1(NULL, 0x10) : ~0u; +} + +static void xen_platform_ioport_writeb(void *opaque, uint32_t addr, uint32_t val) +{ + addr &= 0xff; + val &= 0xff; + + switch (addr) { + case 0: /* Platform flags */ + platform_fixed_ioport_write1(NULL, 0x10, val); + break; + case 8: + { + if (val == ''\n'' || log_buffer_off == sizeof(log_buffer) - 1) { + /* Flush buffer */ + log_buffer[log_buffer_off] = 0; + throttle(log_buffer_off); + fprintf(logfile, "%s\n", log_buffer); + log_buffer_off = 0; + break; + } + log_buffer[log_buffer_off++] = val; + } + break; + default: + break; + } +} + +static void platform_ioport_map(PCIDevice *pci_dev, int region_num, uint32_t addr, uint32_t size, int type) +{ + PCIXenPlatformState *d = (PCIXenPlatformState *)pci_dev; + register_ioport_write(addr, size, 1, xen_platform_ioport_writeb, d); + register_ioport_read(addr, size, 1, xen_platform_ioport_readb, d); +} + +static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr) +{ + static int warnings = 0; + if (warnings < 5) { + fprintf(logfile, "Warning: attempted read from physical address " + "0x%"PRIx64" in xen platform mmio space\n", (uint64_t)addr); + warnings++; + } + return 0; +} + +static void platform_mmio_write(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + static int warnings = 0; + if (warnings < 5) { + fprintf(logfile, "Warning: attempted write of 0x%x to physical " + "address 0x%"PRIx64" in xen platform mmio space\n", + val, (uint64_t)addr); + warnings++; + } + return; +} + +static CPUReadMemoryFunc *platform_mmio_read_funcs[3] = { + platform_mmio_read, + platform_mmio_read, + platform_mmio_read, +}; + +static CPUWriteMemoryFunc *platform_mmio_write_funcs[3] = { + platform_mmio_write, + platform_mmio_write, + platform_mmio_write, +}; + +static void platform_mmio_map(PCIDevice *d, int region_num, + uint32_t addr, uint32_t size, int type) +{ + int mmio_io_addr; + + mmio_io_addr = cpu_register_io_memory(0, platform_mmio_read_funcs, + platform_mmio_write_funcs, NULL); + + cpu_register_physical_memory(addr, 0x1000000, mmio_io_addr); +} + struct pci_config_header { uint16_t vendor_id; uint16_t device_id; @@ -368,7 +411,6 @@ static void xen_pci_save(QEMUFile *f, void *opaque) uint64_t t = 0; pci_device_save(&d->pci_dev, f); - qemu_put_8s(f, &d->platform_flags); qemu_put_be64s(f, &t); } @@ -377,7 +419,7 @@ static int xen_pci_load(QEMUFile *f, void *opaque, int version_id) PCIXenPlatformState *d = opaque; int ret; - if (version_id > 2) + if (version_id > 3) return -EINVAL; ret = pci_device_load(&d->pci_dev, f); @@ -385,9 +427,11 @@ static int xen_pci_load(QEMUFile *f, void *opaque, int version_id) return ret; if (version_id >= 2) { - uint8_t flags; - qemu_get_8s(f, &flags); - xen_platform_ioport_writeb(d, 0, flags); + if (version_id == 2) { + uint8_t flags; + qemu_get_8s(f, &flags); + xen_platform_ioport_writeb(d, 0, flags); + } qemu_get_be64(f); } @@ -398,7 +442,6 @@ void pci_xen_platform_init(PCIBus *bus) { PCIXenPlatformState *d; struct pci_config_header *pch; - struct stat stbuf; printf("Register xen platform.\n"); d = (PCIXenPlatformState *)pci_register_device( @@ -426,17 +469,8 @@ void pci_xen_platform_init(PCIBus *bus) pci_register_io_region(&d->pci_dev, 1, 0x1000000, PCI_ADDRESS_SPACE_MEM_PREFETCH, platform_mmio_map); - xen_platform_ioport_writeb(d, 0, 0); - - register_savevm("platform", 0, 2, xen_pci_save, xen_pci_load, d); + register_savevm("platform", 0, 3, xen_pci_save, xen_pci_load, d); printf("Done register platform.\n"); - register_ioport_write(0x10, 16, 4, platform_fixed_ioport_write4, NULL); - register_ioport_write(0x10, 16, 2, platform_fixed_ioport_write2, NULL); - register_ioport_write(0x10, 16, 1, platform_fixed_ioport_write1, NULL); - register_ioport_read(0x10, 16, 2, platform_fixed_ioport_read2, NULL); - register_ioport_read(0x10, 16, 1, platform_fixed_ioport_read1, NULL); - - if (stat("/etc/disable-guest-log-throttle", &stbuf) == 0) - throttling_disabled = 1; } + diff --git a/hw/xen_platform.h b/hw/xen_platform.h index 5bf16f8..33af766 100644 --- a/hw/xen_platform.h +++ b/hw/xen_platform.h @@ -4,5 +4,6 @@ #include "pci.h" void pci_xen_platform_init(PCIBus *bus); +void platform_fixed_ioport_init(void); #endif diff --git a/qemu-xen.h b/qemu-xen.h index 7ca9428..ec4cd94 100644 --- a/qemu-xen.h +++ b/qemu-xen.h @@ -48,6 +48,7 @@ void handle_buffered_pio(void); /* xenstore.c */ void xenstore_parse_domain_config(int domid); +int xenstore_parse_disable_pf_config(void); int xenstore_fd(void); void xenstore_process_event(void *opaque); void xenstore_record_dm(const char *subpath, const char *state); diff --git a/xenstore.c b/xenstore.c index 4ee6ceb..66b64ab 100644 --- a/xenstore.c +++ b/xenstore.c @@ -639,6 +639,27 @@ void xenstore_parse_domain_config(int hvm_domid) return; } +int xenstore_parse_disable_pf_config () +{ + char *params = NULL, *buf = NULL; + int disable_pf = 0; + unsigned int len; + + if (pasprintf(&buf, "/local/domain/0/device-model/%u/disable_pf",domid) == -1) + goto out; + + params = xs_read(xsh, XBT_NULL, buf, &len); + if (params == NULL) + goto out; + + disable_pf = atoi(params); + + out: + free(buf); + free(params); + return disable_pf; +} + int xenstore_fd(void) { if (xsh) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2009-Mar-23 17:18 UTC
Re: [Xen-devel] [PATCH 2/2] ioemu: Disable xen platform PCI device when xen_platform_pci=0 is specified
Yuji Shimada writes ("[Xen-devel] [PATCH 2/2] ioemu: Disable xen platform PCI device when xen_platform_pci=0 is specified"):> This patch is the ioemu side of the series. > > - Alias the "platform_flags" byte of the ioport BAR to fixed byte port > 0x10, and don''t remove existing "platform_flags" byte. > > - Disable xen platform PCI device if "disable_pf" entry is 1. If there > is not "disable_pf" entry, xen platform PCI device is enabled.Before I apply this, can you confirm that it doesn''t have any compatibility implications in either direction with the corresponding xen-unstable.hg change ? Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2009-Mar-23 17:26 UTC
Re: [Xen-devel] [PATCH 2/2] ioemu: Disable xen platform PCI device when xen_platform_pci=0 is specified
I wrote:> Yuji Shimada writes ("[Xen-devel] [PATCH 2/2] ioemu: Disable xen platform PCI device when xen_platform_pci=0 is specified"): > > - Disable xen platform PCI device if "disable_pf" entry is 1. If there > > is not "disable_pf" entry, xen platform PCI device is enabled. > > Before I apply this, can you confirm that it doesn''t have any > compatibility implications in either direction with the corresponding > xen-unstable.hg change ?Never mind, I can see that Keir has applied the other half already so I shall go ahead. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel