All of lore.kernel.org
 help / color / mirror / Atom feed
From: Artyom Tarasenko <atar4qemu@gmail.com>
To: qemu-devel@nongnu.org
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Richard Henderson <rth@twiddle.net>,
	Artyom Tarasenko <atar4qemu@gmail.com>
Subject: [Qemu-devel] [PATCH v1 00/30] target-sparc: add niagara OpenSPARC T1 sun4v emulation
Date: Fri,  4 Nov 2016 21:50:01 +0100	[thread overview]
Message-ID: <cover.1478291230.git.atar4qemu@gmail.com> (raw)

This patch series adds a Niagara OpenSPARC T1 sun4v machine.
The most important new feature: it can boot Solaris 10 / sparc64.
The machine uses a firmware released by Sun as a part of the OpenSPARC project.

The series are available under:
https://github.com/artyom-tarasenko/qemu/tree/sun4v-v1

The command line for booting Solaris 10 / sparc:

sparc64-softmmu/qemu-system-sparc64 -M niagara -L /path/to/S10image/ -nographic -m 256 -drive if=pflash,readonly=on,file=/path/to/S10image/disk.s10hw2

More info under
http://tyom.blogspot.de/2016/10/qemu-sun4vniagara-target-went-public.html

Changes to v0:
Rebased on top of current master
Use lowercase machine name (Mark)
Fixed build on i686
Fixed user-mode build (Richard)
Fixed per review comments from Richard
Added Reviewed-by to the unmodified patches reviewed in the previous round


Artyom Tarasenko (30):
  target-sparc: ignore MMU-faults if MMU is disabled in hypervisor mode
  target-sparc: store cpu super- and hypervisor flags in TB
  target-sparc: use explicit mmu register pointers
  target-sparc: add UA2005 TTE bit #defines
  target-sparc: add UltraSPARC T1 TLB #defines
  target-sparc: on UA2005 don't deliver Interrupt_level_n IRQs in
    hypervisor mode
  target-sparc: simplify replace_tlb_entry by using TTE_PGSIZE
  target-sparc: implement UA2005 scratchpad registers
  target-sparc: implement UltraSPARC-T1 Strand status ASR
  target-sparc: hypervisor mode takes over nucleus mode
  target-sparc: implement UA2005 hypervisor traps
  target-sparc: implement UA2005 GL register
  target-sparc: implement UA2005 rdhpstate and wrhpstate instructions
  target-sparc: fix immediate UA2005 traps
  target-sparc: use direct address translation in hyperprivileged mode
  target-sparc: allow priveleged ASIs in hyperprivileged mode
  target-sparc: ignore writes to UA2005 CPU mondo queue register
  target-sparc: replace the last tlb entry when no free entries left
  target-sparc: use SparcV9MMU type for sparc64 I/D-MMUs
  target-sparc: implement UA2005 TSB Pointers
  target-sparc: simplify ultrasparc_tsb_pointer
  target-sparc: allow 256M sized pages
  target-sparc: implement auto-demapping for UA2005 CPUs
  target-sparc: add more registers to dump_mmu
  target-sparc: implement UA2005 ASI_MMU (0x21)
  target-sparc: store the UA2005 entries in sun4u format
  target-sparc: add ST_BLKINIT_ ASIs for UA2005+ CPUs
  target-sparc: implement sun4v RTC
  target-sparc: move common cpu initialisation routines to sparc64.c
  target-sparc: fix up niagara machine

 MAINTAINERS                         |   7 +
 default-configs/sparc64-softmmu.mak |   2 +
 hw/sparc64/Makefile.objs            |   2 +
 hw/sparc64/niagara.c                | 177 +++++++++++++++++
 hw/sparc64/sparc64.c                | 378 +++++++++++++++++++++++++++++++++++
 hw/sparc64/sun4u.c                  | 379 +----------------------------------
 hw/timer/Makefile.objs              |   2 +
 hw/timer/sun4v-rtc.c                | 102 ++++++++++
 include/hw/sparc/sparc64.h          |   5 +
 include/hw/timer/sun4v-rtc.h        |   1 +
 linux-user/main.c                   |   2 +-
 target-sparc/asi.h                  |   1 +
 target-sparc/cpu.c                  |  13 +-
 target-sparc/cpu.h                  | 105 +++++++---
 target-sparc/helper.h               |   1 +
 target-sparc/int64_helper.c         |  43 +++-
 target-sparc/ldst_helper.c          | 385 ++++++++++++++++++++++++++++--------
 target-sparc/machine.c              |   4 +-
 target-sparc/mmu_helper.c           |  20 +-
 target-sparc/translate.c            |  64 ++++--
 target-sparc/win_helper.c           |  46 ++++-
 21 files changed, 1213 insertions(+), 526 deletions(-)
 create mode 100644 hw/sparc64/niagara.c
 create mode 100644 hw/sparc64/sparc64.c
 create mode 100644 hw/timer/sun4v-rtc.c
 create mode 100644 include/hw/sparc/sparc64.h
 create mode 100644 include/hw/timer/sun4v-rtc.h

-- 
1.8.3.1

             reply	other threads:[~2016-11-04 20:51 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-04 20:50 Artyom Tarasenko [this message]
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 01/30] target-sparc: ignore MMU-faults if MMU is disabled in hypervisor mode Artyom Tarasenko
2016-11-04 21:19   ` Richard Henderson
2016-11-05 21:20     ` Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 02/30] target-sparc: store cpu super- and hypervisor flags in TB Artyom Tarasenko
2016-11-04 21:21   ` Richard Henderson
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 03/30] target-sparc: use explicit mmu register pointers Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 04/30] target-sparc: add UA2005 TTE bit #defines Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 05/30] target-sparc: add UltraSPARC T1 TLB #defines Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 06/30] target-sparc: on UA2005 don't deliver Interrupt_level_n IRQs in hypervisor mode Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 07/30] target-sparc: simplify replace_tlb_entry by using TTE_PGSIZE Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 08/30] target-sparc: implement UA2005 scratchpad registers Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 09/30] target-sparc: implement UltraSPARC-T1 Strand status ASR Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 10/30] target-sparc: hypervisor mode takes over nucleus mode Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 11/30] target-sparc: implement UA2005 hypervisor traps Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 12/30] target-sparc: implement UA2005 GL register Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 13/30] target-sparc: implement UA2005 rdhpstate and wrhpstate instructions Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 14/30] target-sparc: fix immediate UA2005 traps Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 15/30] target-sparc: use direct address translation in hyperprivileged mode Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 16/30] target-sparc: allow priveleged ASIs " Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 17/30] target-sparc: ignore writes to UA2005 CPU mondo queue register Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 18/30] target-sparc: replace the last tlb entry when no free entries left Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 19/30] target-sparc: use SparcV9MMU type for sparc64 I/D-MMUs Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 20/30] target-sparc: implement UA2005 TSB Pointers Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 21/30] target-sparc: simplify ultrasparc_tsb_pointer Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 22/30] target-sparc: allow 256M sized pages Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 23/30] target-sparc: implement auto-demapping for UA2005 CPUs Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 24/30] target-sparc: add more registers to dump_mmu Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 25/30] target-sparc: implement UA2005 ASI_MMU (0x21) Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 27/30] target-sparc: add ST_BLKINIT_ ASIs for UA2005+ CPUs Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 28/30] target-sparc: implement sun4v RTC Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 29/30] target-sparc: move common cpu initialisation routines to sparc64.c Artyom Tarasenko
2016-11-04 20:50 ` [Qemu-devel] [PATCH v1 30/30] target-sparc: fix up niagara machine Artyom Tarasenko
2016-12-15 17:04 ` [Qemu-devel] [PATCH v1 00/30] target-sparc: add niagara OpenSPARC T1 sun4v emulation Artyom Tarasenko
2016-12-30 17:35   ` Mark Cave-Ayland
2017-01-11 16:56     ` Richard Henderson
2017-01-11 17:13       ` Mark Cave-Ayland
2017-01-11 20:33         ` Artyom Tarasenko

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=cover.1478291230.git.atar4qemu@gmail.com \
    --to=atar4qemu@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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.