All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Bernhard M. Wiedemann" <qemudevbmw@lsmod.de>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 1/1] hw: better i440 emulation
Date: Mon, 19 Apr 2010 17:47:19 +0200	[thread overview]
Message-ID: <20100419154719.GA8863@zq1.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 744 bytes --]

attached is a tested 0.12.3-version of an old patch
http://xenon.stanford.edu/~eswierk/misc/qemu-linuxbios/qemu-piix-ram-size.patch
that together with
http://www.mail-archive.com/linuxbios@linuxbios.org/msg02390.html
(which is already in coreboot trunk) allows coreboot BIOS to autodetect the amount of RAM within qemu/kvm from a register in i440 northbridge.

The message on the old patch states:
Unfortunately the current version of qemu does not set these
registers, but I have patched qemu so that it emulates the i440 more
faithfully in this regard.



new patch is also available at
http://www.zq1.de/~bernhard/linux/qemu-0.12.3-piix-ram-size.patch

Please discuss or apply this patch.

regards
Bernhard M. Wiedemann
--
software engineer

[-- Attachment #2: qemu-0.12.3-piix-ram-size.patch --]
[-- Type: text/x-diff, Size: 1614 bytes --]

diff -ru ./hw/pc.c ../qpatch/hw/pc.c
--- ./hw/pc.c	2010-02-26 03:34:00.000000000 +0100
+++ ../qpatch/hw/pc.c	2010-04-19 17:18:12.000000000 +0200
@@ -1130,7 +1130,7 @@
     }
 
     if (pci_enabled) {
-        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq);
+        pci_bus = i440fx_init(&i440fx_state, &piix3_devfn, isa_irq, ram_size);
     } else {
         pci_bus = NULL;
         isa_bus_new(NULL);
diff -ru ./hw/pc.h ../qpatch/hw/pc.h
--- ./hw/pc.h	2010-02-26 03:34:00.000000000 +0100
+++ ../qpatch/hw/pc.h	2010-04-19 17:10:50.000000000 +0200
@@ -129,7 +129,7 @@
 struct PCII440FXState;
 typedef struct PCII440FXState PCII440FXState;
 
-PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn, qemu_irq *pic);
+PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix_devfn, qemu_irq *pic, int ram_size);
 void i440fx_set_smm(PCII440FXState *d, int val);
 void i440fx_init_memory_mappings(PCII440FXState *d);
 
diff -ru ./hw/piix_pci.c ../qpatch/hw/piix_pci.c
--- ./hw/piix_pci.c	2010-02-26 03:34:00.000000000 +0100
+++ ../qpatch/hw/piix_pci.c	2010-04-19 17:27:59.000000000 +0200
@@ -209,7 +209,7 @@
 
 static PIIX3State *piix3_dev;
 
-PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix3_devfn, qemu_irq *pic)
+PCIBus *i440fx_init(PCII440FXState **pi440fx_state, int *piix3_devfn, qemu_irq *pic, int ram_size)
 {
     DeviceState *dev;
     PCIBus *b;
@@ -236,6 +236,11 @@
 
     piix3_dev = piix3;
 
+    ram_size = ram_size / 8 / 1024 / 1024;
+    if (ram_size > 255)
+        ram_size = 255;
+    (*pi440fx_state)->dev.config[0x57]=ram_size;
+
     return b;
 }
 

             reply	other threads:[~2010-04-19 15:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-19 15:47 Bernhard M. Wiedemann [this message]
2010-04-20 16:55 ` [Qemu-devel] [PATCH 1/1] hw: better i440 emulation Andreas Färber
2010-04-20 18:48   ` [Qemu-devel] [PATCH] " Bernhard M. Wiedemann
2010-05-04 13:47     ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100419154719.GA8863@zq1.de \
    --to=qemudevbmw@lsmod.de \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.