From: "Hervé Poussineau" <hpoussin@reactos.org>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Hervé Poussineau" <hpoussin@reactos.org>
Subject: [Qemu-devel] [PATCH v2 5/5] lsi: add 53C810 variant
Date: Sat, 14 Sep 2013 17:51:09 +0200 [thread overview]
Message-ID: <1379173870-10974-6-git-send-email-hpoussin@reactos.org> (raw)
In-Reply-To: <1379173870-10974-1-git-send-email-hpoussin@reactos.org>
Currently, treat it exactly as a 53C895A.
53C895A is a 53C810 with more capabilities, so this should work.
However, this lets us test different code paths on Linux, which
don't use lastest features if it detect a 810, or on some OSes
which only support 810 and not 895A (like very old Windows NT
versions).
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
---
hw/scsi/lsi53c895a.c | 21 +++++++++++++++++++++
include/hw/pci/pci_ids.h | 1 +
2 files changed, 22 insertions(+)
diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c
index 47e4680..1e75e5b 100644
--- a/hw/scsi/lsi53c895a.c
+++ b/hw/scsi/lsi53c895a.c
@@ -7,6 +7,12 @@
* This code is licensed under the LGPL.
*/
+/* Note:
+ * LSI53C810 emulation is incorrect, in the sense that it supports
+ * features added in later evolutions. This should not be a problem,
+ * as well-behaved operating systems will not try to use them.
+ */
+
#include <assert.h>
#include "hw/hw.h"
@@ -275,6 +281,7 @@ typedef struct {
uint32_t script_ram[2048];
} LSIState;
+#define TYPE_LSI53C810 "lsi53c810"
#define TYPE_LSI53C895A "lsi53c895a"
#define LSI53C895A(obj) \
@@ -2152,9 +2159,23 @@ static const TypeInfo lsi_info = {
.class_init = lsi_class_init,
};
+static void lsi53c810_class_init(ObjectClass *klass, void *data)
+{
+ PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
+
+ k->device_id = PCI_DEVICE_ID_LSI_53C810;
+}
+
+static TypeInfo lsi53c810_info = {
+ .name = TYPE_LSI53C810,
+ .parent = TYPE_LSI53C895A,
+ .class_init = lsi53c810_class_init,
+};
+
static void lsi53c895a_register_types(void)
{
type_register_static(&lsi_info);
+ type_register_static(&lsi53c810_info);
}
type_init(lsi53c895a_register_types)
diff --git a/include/hw/pci/pci_ids.h b/include/hw/pci/pci_ids.h
index 3ddaf6a..4c0002b 100644
--- a/include/hw/pci/pci_ids.h
+++ b/include/hw/pci/pci_ids.h
@@ -53,6 +53,7 @@
/* Vendors and devices. Sort key: vendor first, device next. */
#define PCI_VENDOR_ID_LSI_LOGIC 0x1000
+#define PCI_DEVICE_ID_LSI_53C810 0x0001
#define PCI_DEVICE_ID_LSI_53C895A 0x0012
#define PCI_DEVICE_ID_LSI_SAS1078 0x0060
--
1.7.10.4
next prev parent reply other threads:[~2013-09-14 15:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-14 15:51 [Qemu-devel] [PATCH v2 0/5] lsi: small cleanup and add 53C810 variant Hervé Poussineau
2013-09-14 15:51 ` [Qemu-devel] [PATCH v2 1/5] lsi: use constant name instead of its value Hervé Poussineau
2013-09-14 15:51 ` [Qemu-devel] [PATCH v2 2/5] lsi: check ssid versus sdid only if ssid is valid Hervé Poussineau
2013-09-14 15:51 ` [Qemu-devel] [PATCH v2 3/5] lsi: ignore write accesses to CTEST0 registers Hervé Poussineau
2013-09-14 15:51 ` [Qemu-devel] [PATCH v2 4/5] lsi: remove todo Hervé Poussineau
2013-09-14 15:51 ` Hervé Poussineau [this message]
2013-09-16 10:43 ` [Qemu-devel] [PATCH v2 0/5] lsi: small cleanup and add 53C810 variant Paolo Bonzini
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=1379173870-10974-6-git-send-email-hpoussin@reactos.org \
--to=hpoussin@reactos.org \
--cc=pbonzini@redhat.com \
--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.