From: Stafford Horne <shorne@gmail.com>
To: QEMU Development <qemu-devel@nongnu.org>
Cc: Openrisc <openrisc@lists.librecores.org>
Subject: [PATCH v2 00/11] OpenRISC Virtual Machine
Date: Mon, 4 Jul 2022 06:28:12 +0900 [thread overview]
Message-ID: <20220703212823.10067-1-shorne@gmail.com> (raw)
Hello,
This is the OpenRISC Virtual Machine plaform which we are now using for OpenRISC
CI such as the wireguard testing that Jason has been working on.
The first few patches help get OpenRISC QEMU ready for the virtual machine.
There is one bug fix for GDB debugging there too.
Next we have the Virt patch followed by a separate patch to add PCI support
which is split out because it's a bit easier to review that way I thought. The
next few patches are fixes to get the Multicore platform stable, such as adding
MTTCG support and fixing some interrupt and timer related bugs.
The platform is relatively stable now, but every few boots we get ~10 second soft
lockups. My hunch is that this is another interrupt race condition where IPI's
end up getting lost. However, overall the is much more stable than the SMP
support we had before. So I want to submit this for review and maybe upstream
it before tracking down these last issues which might take significant more
time.
This is being tested with my or1k-virt kernel branch here:
https://github.com/stffrdhrn/linux/commits/or1k-virt
This tree has support for: OpenRISC PCI and virt_defconfig and an irqchip bug
fix.
Changes since v1:
- Dropped semihosting support
- Added PCI support
- Added OpenRISC documentation
- Added OpenRISC support for MTTCG
- Support Configurating Goldfish RTC endianness
- Added a few bug fix patches
-Stafford
Jason A. Donenfeld (1):
hw/openrisc: virt: pass random seed to fdt
Stafford Horne (10):
hw/openrisc: Split re-usable boot time apis out to boot.c
target/openrisc: Fix memory reading in debugger
goldfish_rtc: Add endianness property
hw/openrisc: Add the OpenRISC virtual machine
hw/openrisc: Add PCI bus support to virt
hw/openrisc: Initialize timer time at startup
target/openrisc: Add interrupted CPU to log
target/openrisc: Enable MTTCG
target/openrisc: Interrupt handling fixes
docs/system: openrisc: Add OpenRISC documentation
configs/devices/or1k-softmmu/default.mak | 1 +
configs/targets/or1k-softmmu.mak | 1 +
docs/system/openrisc/cpu-features.rst | 15 +
docs/system/openrisc/emulation.rst | 17 +
docs/system/openrisc/or1k-sim.rst | 43 ++
docs/system/openrisc/virt.rst | 50 ++
docs/system/target-openrisc.rst | 72 +++
docs/system/targets.rst | 1 +
hw/openrisc/Kconfig | 12 +
hw/openrisc/boot.c | 117 +++++
hw/openrisc/cputimer.c | 18 +
hw/openrisc/meson.build | 2 +
hw/openrisc/openrisc_sim.c | 106 +----
hw/openrisc/virt.c | 578 +++++++++++++++++++++++
hw/rtc/goldfish_rtc.c | 46 +-
include/hw/openrisc/boot.h | 34 ++
include/hw/rtc/goldfish_rtc.h | 2 +
target/openrisc/cpu.c | 1 -
target/openrisc/cpu.h | 3 +
target/openrisc/interrupt.c | 4 +-
target/openrisc/mmu.c | 8 +-
target/openrisc/sys_helper.c | 18 +-
22 files changed, 1035 insertions(+), 114 deletions(-)
create mode 100644 docs/system/openrisc/cpu-features.rst
create mode 100644 docs/system/openrisc/emulation.rst
create mode 100644 docs/system/openrisc/or1k-sim.rst
create mode 100644 docs/system/openrisc/virt.rst
create mode 100644 docs/system/target-openrisc.rst
create mode 100644 hw/openrisc/boot.c
create mode 100644 hw/openrisc/virt.c
create mode 100644 include/hw/openrisc/boot.h
--
2.36.1
next reply other threads:[~2022-07-03 21:28 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-03 21:28 Stafford Horne [this message]
2022-07-03 21:28 ` [PATCH v2 01/11] hw/openrisc: Split re-usable boot time apis out to boot.c Stafford Horne
2022-07-03 21:28 ` [PATCH v2 02/11] target/openrisc: Fix memory reading in debugger Stafford Horne
2022-07-04 10:01 ` Richard Henderson
2022-07-03 21:28 ` [PATCH v2 03/11] goldfish_rtc: Add endianness property Stafford Horne
2022-07-04 2:50 ` Anup Patel
2022-07-04 9:59 ` Richard Henderson
2022-07-04 10:16 ` Laurent Vivier
2022-07-04 10:21 ` Richard Henderson
2022-07-04 10:23 ` Laurent Vivier
2022-07-04 20:40 ` Stafford Horne
2022-07-05 0:53 ` Jason A. Donenfeld
2022-07-04 20:32 ` Stafford Horne
2022-07-03 21:28 ` [PATCH v2 04/11] hw/openrisc: Add the OpenRISC virtual machine Stafford Horne
2022-07-03 21:28 ` [PATCH v2 05/11] hw/openrisc: Add PCI bus support to virt Stafford Horne
2022-07-03 21:28 ` [PATCH v2 06/11] hw/openrisc: Initialize timer time at startup Stafford Horne
2022-07-04 10:03 ` Richard Henderson
2022-07-04 20:32 ` [PATCH v2 06/11] hw/openrisc: Initialize timer time at startupi Stafford Horne
2022-07-03 21:28 ` [PATCH v2 07/11] target/openrisc: Add interrupted CPU to log Stafford Horne
2022-07-04 10:04 ` Richard Henderson
2022-07-04 20:26 ` Stafford Horne
2022-07-03 21:28 ` [PATCH v2 08/11] target/openrisc: Enable MTTCG Stafford Horne
2022-07-04 10:07 ` Richard Henderson
2022-07-04 20:31 ` Stafford Horne
2022-07-03 21:28 ` [PATCH v2 09/11] target/openrisc: Interrupt handling fixes Stafford Horne
2022-07-04 10:20 ` Richard Henderson
2022-07-03 21:28 ` [PATCH v2 10/11] hw/openrisc: virt: pass random seed to fdt Stafford Horne
2022-07-04 10:22 ` Richard Henderson
2022-07-03 21:28 ` [PATCH v2 11/11] docs/system: openrisc: Add OpenRISC documentation Stafford Horne
2022-07-04 10:25 ` Richard Henderson
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=20220703212823.10067-1-shorne@gmail.com \
--to=shorne@gmail.com \
--cc=openrisc@lists.librecores.org \
--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