Index: qemu-snapshot-2007-02-09_05/hw/piix_pci.c =================================================================== --- qemu-snapshot-2007-02-09_05.orig/hw/piix_pci.c +++ qemu-snapshot-2007-02-09_05/hw/piix_pci.c @@ -155,7 +155,7 @@ static int i440fx_load(QEMUFile* f, void return 0; } -PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic) +PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic, int ram_size) { PCIBus *b; PCIDevice *d; @@ -186,6 +186,10 @@ PCIBus *i440fx_init(PCIDevice **pi440fx_ d->config[0x08] = 0x02; // revision pci_config_set_class(d->config, PCI_CLASS_BRIDGE_HOST); d->config[PCI_HEADER_TYPE] = PCI_HEADER_TYPE_NORMAL; // header_type + ram_size = ram_size / 8 / 1024 / 1024; + if (ram_size > 255) + ram_size = 255; + d->config[0x57] = ram_size; d->config[0x72] = 0x02; /* SMRAM */ Index: qemu-snapshot-2007-02-09_05/hw/pc.c =================================================================== --- qemu-snapshot-2007-02-09_05.orig/hw/pc.c +++ qemu-snapshot-2007-02-09_05/hw/pc.c @@ -623,7 +623,7 @@ static void pc_init1(int ram_size, int v } if (pci_enabled) { - pci_bus = i440fx_init(&i440fx_state, i8259); + pci_bus = i440fx_init(&i440fx_state, i8259, ram_size); piix3_devfn = piix3_init(pci_bus, -1); } else { pci_bus = NULL; Index: qemu-snapshot-2007-02-09_05/hw/pc.h =================================================================== --- qemu-snapshot-2007-02-09_05.orig/hw/pc.h +++ qemu-snapshot-2007-02-09_05/hw/pc.h @@ -841,7 +841,7 @@ PCIBus *pci_apb_init(target_ulong specia PCIBus *pci_vpb_init(void *pic, int irq, int realview); /* piix_pci.c */ -PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic); +PCIBus *i440fx_init(PCIDevice **pi440fx_state, qemu_irq *pic, int ram_size); void i440fx_set_smm(PCIDevice *d, int val); int piix3_init(PCIBus *bus, int devfn); void i440fx_init_memory_mappings(PCIDevice *d);