qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 06/35] target-alpha: Enable the alpha-softmmu target.
Date: Mon,  9 May 2011 14:34:20 -0700	[thread overview]
Message-ID: <1304976889-29675-7-git-send-email-rth@twiddle.net> (raw)
In-Reply-To: <1304976889-29675-1-git-send-email-rth@twiddle.net>

Compiles, but no machine defined yet, so this will crash on startup.

Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 Makefile.target                   |    3 +-
 configure                         |    1 +
 default-configs/alpha-softmmu.mak |    9 ++++
 target-alpha/machine.c            |   87 +++++++++++++++++++++++++++++++++++++
 4 files changed, 99 insertions(+), 1 deletions(-)
 create mode 100644 default-configs/alpha-softmmu.mak
 create mode 100644 target-alpha/machine.c

diff --git a/Makefile.target b/Makefile.target
index 3abecd2..2f842c1 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -364,7 +364,8 @@ obj-m68k-y += m68k-semi.o dummy_m68k.o
 
 obj-s390x-y = s390-virtio-bus.o s390-virtio.o
 
-obj-alpha-y = 
+obj-alpha-y += i8259.o mc146818rtc.o
+obj-alpha-y += vga.o cirrus_vga.o
 
 main.o: QEMU_CFLAGS+=$(GPROF_CFLAGS)
 
diff --git a/configure b/configure
index 6f75e2e..214aabc 100755
--- a/configure
+++ b/configure
@@ -1011,6 +1011,7 @@ if test -z "$target_list" ; then
         target_list="\
 i386-softmmu \
 x86_64-softmmu \
+alpha-softmmu \
 arm-softmmu \
 cris-softmmu \
 lm32-softmmu \
diff --git a/default-configs/alpha-softmmu.mak b/default-configs/alpha-softmmu.mak
new file mode 100644
index 0000000..abadcff
--- /dev/null
+++ b/default-configs/alpha-softmmu.mak
@@ -0,0 +1,9 @@
+# Default configuration for alpha-softmmu
+
+include pci.mak
+CONFIG_SERIAL=y
+CONFIG_I8254=y
+CONFIG_VGA_PCI=y
+CONFIG_IDE_CORE=y
+CONFIG_IDE_QDEV=y
+CONFIG_VMWARE_VGA=y
diff --git a/target-alpha/machine.c b/target-alpha/machine.c
new file mode 100644
index 0000000..a13b66a
--- /dev/null
+++ b/target-alpha/machine.c
@@ -0,0 +1,87 @@
+#include "hw/hw.h"
+#include "hw/boards.h"
+
+static int get_fpcr(QEMUFile *f, void *opaque, size_t size)
+{
+    CPUAlphaState *env = opaque;
+    cpu_alpha_store_fpcr(env, qemu_get_be64(f));
+    return 0;
+}
+
+static void put_fpcr(QEMUFile *f, void *opaque, size_t size)
+{
+    CPUAlphaState *env = opaque;
+    qemu_put_be64(f, cpu_alpha_load_fpcr(env));
+}
+
+static const VMStateInfo vmstate_fpcr = {
+    .name = "fpcr",
+    .get = get_fpcr,
+    .put = put_fpcr,
+};
+
+static VMStateField vmstate_cpu_fields[] = {
+    VMSTATE_UINTTL_ARRAY(ir, CPUState, 31),
+    VMSTATE_UINTTL_ARRAY(fir, CPUState, 31),
+    /* Save the architecture value of the fpcr, not the internally
+       expanded version.  Since this architecture value does not
+       exist in memory to be stored, this requires a but of hoop
+       jumping.  We want OFFSET=0 so that we effectively pass ENV
+       to the helper functions, and we need to fill in the name by
+       hand since there's no field of that name.  */
+    {
+        .name = "fpcr",
+        .version_id = 0,
+        .size = sizeof(uint64_t),
+        .info = &vmstate_fpcr,
+        .flags = VMS_SINGLE,
+        .offset = 0
+    },
+    VMSTATE_UINTTL(pc, CPUState),
+    VMSTATE_UINTTL(unique, CPUState),
+    VMSTATE_UINTTL(lock_addr, CPUState),
+    VMSTATE_UINTTL(lock_value, CPUState),
+    /* Note that lock_st_addr is not saved; it is a temporary
+       used during the execution of the st[lq]_c insns.  */
+
+    VMSTATE_UINT8(ps, CPUState),
+    VMSTATE_UINT8(intr_flag, CPUState),
+    VMSTATE_UINT8(fen, CPUState),
+    VMSTATE_UINT8(pal_mode, CPUState),
+
+    VMSTATE_UINT32(pcc_ofs, CPUState),
+
+    VMSTATE_UINTTL(trap_arg0, CPUState),
+    VMSTATE_UINTTL(trap_arg1, CPUState),
+    VMSTATE_UINTTL(trap_arg2, CPUState),
+
+    VMSTATE_UINTTL(exc_addr, CPUState),
+    VMSTATE_UINTTL(palbr, CPUState),
+    VMSTATE_UINTTL(ptbr, CPUState),
+    VMSTATE_UINTTL(vptptr, CPUState),
+    VMSTATE_UINTTL(sysval, CPUState),
+    VMSTATE_UINTTL(usp, CPUState),
+
+    VMSTATE_UINTTL_ARRAY(shadow, CPUState, 8),
+    VMSTATE_UINTTL_ARRAY(scratch, CPUState, 24),
+
+    VMSTATE_END_OF_LIST()
+};
+
+static const VMStateDescription vmstate_cpu = {
+    .name = "cpu",
+    .version_id = CPU_SAVE_VERSION,
+    .minimum_version_id = 1,
+    .minimum_version_id_old = 1,
+    .fields = vmstate_cpu_fields,
+};
+
+void cpu_save(QEMUFile *f, void *opaque)
+{
+    vmstate_save_state(f, &vmstate_cpu, opaque);
+}
+
+int cpu_load(QEMUFile *f, void *opaque, int version_id)
+{
+    return vmstate_load_state(f, &vmstate_cpu, opaque, version_id);
+}
-- 
1.7.4.4

  parent reply	other threads:[~2011-05-09 21:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-09 21:34 [Qemu-devel] [PATCH 00/35] Alpha system emulation, v4 Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 01/35] Export the unassigned_mem read/write functions Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 02/35] target-alpha: Disassemble EV6 PALcode instructions Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 03/35] pci: Export pci_to_cpu_addr Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 04/35] target-alpha: Single-step properly across branches Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 05/35] target-alpha: Remove partial support for palcode emulation Richard Henderson
2011-05-09 21:34 ` Richard Henderson [this message]
2011-05-09 21:34 ` [Qemu-devel] [PATCH 07/35] target-alpha: Tidy exception constants Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 08/35] target-alpha: Rationalize internal processor registers Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 09/35] target-alpha: Cleanup MMU modes Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 10/35] target-alpha: Fixup translation of PALmode instructions Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 11/35] target-alpha: Add IPRs to be used by the emulation PALcode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 12/35] target-alpha: Tidy up arithmetic exceptions Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 13/35] target-alpha: Use do_restore_state for " Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 14/35] target-alpha: Merge HW_REI and HW_RET implementations Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 15/35] target-alpha: Implement do_interrupt for system mode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 16/35] target-alpha: Swap shadow registers moving to/from PALmode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 17/35] target-alpha: Add various symbolic constants Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 18/35] target-alpha: Use kernel mmu_idx for pal_mode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 19/35] target-alpha: All ISA checks to use TB->FLAGS Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 20/35] target-alpha: Disable interrupts properly Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 21/35] target-alpha: Implement more CALL_PAL values inline Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 22/35] target-alpha: Implement cpu_alpha_handle_mmu_fault for system mode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 23/35] target-alpha: Remap PIO space for 43-bit KSEG for EV6 Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 24/35] target-alpha: Trap for unassigned and unaligned addresses Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 25/35] target-alpha: Include the PCC_OFS in the RPCC return value Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 26/35] target-alpha: Use a fixed frequency for the RPCC in system mode Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 27/35] target-alpha: Implement TLB flush primitives Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 28/35] target-alpha: Add custom PALcode image for CLIPPER emulation Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 29/35] target-alpha: Add " Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 30/35] target-alpha: Implement WAIT IPR Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 31/35] target-alpha: Implement HALT IPR Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 32/35] target-alpha: Add high-resolution access to wall clock and an alarm Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 33/35] target-alpha: Properly select the VGA controler to use Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 34/35] target-alpha: Enable PCI IDE Richard Henderson
2011-05-09 21:34 ` [Qemu-devel] [PATCH 35/35] target-alpha: Add ps2 keyboard Richard Henderson
2011-05-10 21:33 ` [Qemu-devel] [PATCH 00/35] Alpha system emulation, v4 Paul Brook
2011-05-10 22:09   ` Richard Henderson
2011-05-10 22:44     ` Paul Brook

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=1304976889-29675-7-git-send-email-rth@twiddle.net \
    --to=rth@twiddle.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).