Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
82e1a38
hw/arm: add a virtual NXP s32g board
ho28 Feb 22, 2024
b2dcd2f
hw/arm/nxp-s32g: Fix some issues with the model
ho28 Feb 23, 2024
1163c31
hw/arm: Refactor struct arm_boot_info::get_dtb()
lbmeng Jan 12, 2024
e12b553
hw/arm: Pack the QEMU generated device tree
lbmeng Jan 12, 2024
cf464b4
hw/arm/nxp-s32g: Fix physmem start address
ho28 Mar 11, 2024
ed2d3a7
hw/arm/nxp-s32g: add timer node to device tree
ho28 Mar 20, 2024
2726024
hw/arm/nxp-s32g: Increase gicv3 redist size
ho28 Mar 21, 2024
ceda0aa
hw/char/fsl-linflex: new serial uart device
ho28 Mar 26, 2024
b10b270
hw/char: fsl-linflex: Fix build error
lbmeng Mar 26, 2024
b8da2ac
hw/char: fsl-linflex: Fix the status register update logic
lbmeng Mar 26, 2024
0dcac06
hw/char/fsl-linflex: clean up and add some logging
ho28 Mar 27, 2024
4822565
hw/arm/nxp-s32g: add mmio virtio transports
ho28 Apr 3, 2024
a5f2ca9
hw/char/fsl-linflex: save device state during savevm
ho28 Apr 5, 2024
5f9bfcd
Fix: Make nxp-s32g CPU count runtime configurable
Apr 12, 2024
3746405
hw/net/can/fsl_flexcan: initial commit
ho28 Apr 15, 2024
3e53511
hw/net/can/fsl_flexcan: add basic device init functions
ho28 Apr 15, 2024
e57d590
hw/arm/nxp-s32g: Bug Fix - incorrect type uart
ho28 Apr 16, 2024
5c2ba2b
hw/net/fsl_flexcan: Add SysBusDevice field to FslFlexCanState
ho28 Apr 16, 2024
aeb48eb
hw/net/can/fsl_flexcan: use RegisterInfo for registers
ho28 Apr 18, 2024
221a1f8
hw/char/fsl-linflex: Fix uart interrupt bug
ho28 Apr 19, 2024
3052ddf
hw/char/fsl-linflex: don't update irq on read
ho28 Apr 19, 2024
fcde3a3
hw/net/can/fsl_flexcan: Module Configuration Register
ho28 May 3, 2024
ca64576
fsl_flexcan: rename flexcanbus property
ho28 May 3, 2024
4d5cf1e
nxp-s32g: Add another clock for can controller
ho28 May 3, 2024
d927fc8
hw/net/fsl_flexcan: refactor to use multiple memory regions
ho28 May 3, 2024
dea8cfb
nxp-s32g: add flexcan device to s32g
ho28 May 3, 2024
25475b4
hw/net/fsl_flexcan: Fix register memory region
ho28 May 7, 2024
62c9369
hw/arm/nxp-s32g: Fix irq connect flexcan realize
ho28 May 10, 2024
d4513f9
hw/net/fsl_flexcan: make MB array 32 bits wide
ho28 May 10, 2024
c33c4e6
hw/net/can/fsl_flexcan: Implement CAN TX
ho28 May 10, 2024
fab6f09
hw/net/fsl_flexcan: Implement legacy RX
ho28 May 14, 2024
9666680
hw/net/fsl_flexcan: add registers to vmstate
ho28 May 20, 2024
a8ae4da
hw/arm/wr-arm: create simple arm machine
ho28 Jun 20, 2024
cfc66fd
hw/arm/wr-arm: Create CPUs and device tree
ho28 Jun 27, 2024
454c3af
hw/arm/wr-arm: Create system timer and clk
ho28 Jul 3, 2024
21627ec
hw/arm/wr-arm: add pl011 uart
ho28 Jul 9, 2024
5c4560f
hw/arm/wr-arm: Fix CPU DT node formatting
ho28 Jul 9, 2024
85637ba
hw/arm/wr-arm: realize GIC and create DT node
ho28 Jul 9, 2024
f79f6af
hw/arm/wr-arm: Clean up boot info and load kernel
ho28 Jul 9, 2024
7f99e0a
hw/arm/wr-arm.h: add copyright header
ho28 Jul 11, 2024
0bd364d
inital cicd file for windriver qemu builds
arcabezudo Jul 2, 2024
0c49a74
hw/arm/wr-arm: use MemMapEntry for memory map
ho28 Jul 22, 2024
a5d0463
hw/arm/wr-arm: fix memory map addresses
ho28 Jul 22, 2024
eb49c06
hw/arm/wr-arm: create high mem and low mem regions
ho28 Jul 23, 2024
7d6b105
hw/arm/wr-arm: increase max cpus
ho28 Aug 20, 2024
975cbd5
contrib/plugins: new plugin to track device access
ho28 Aug 17, 2024
d70cfc7
hw/arm/wr-arm: make cpu type configurable
ho28 Aug 22, 2024
b10c57f
add WR copyright and license notices
ho28 Aug 28, 2024
7096dd3
update readme
ho28 Sep 3, 2024
55b294e
add github workflow to build and test wr-integration
ho28 Sep 5, 2024
cdf9923
git workflow: unlock pull requests
ho28 Sep 5, 2024
fcdf593
hw/arm/wr-arm: add virtio transports to wr-arm machine
ho28 Sep 11, 2024
e763dde
hw/arm/xlnx-versal-virt: modify gem/phy DT nodes
ho28 Sep 17, 2024
ea88aff
[xlnx-versal-virt]: change DT compat string to match vxworks
ho28 Sep 25, 2024
5bbca35
[fsl linflex] add ResetType arg to reset_hold/exit
ho28 Oct 1, 2024
ba06c6b
fault injection: add QMP memread/memwrite commands
ho28 Oct 22, 2024
5c54e74
Create wr-pci-leds example
huitmj Oct 23, 2024
6899b25
Update wr-pci-leds.c
huitmj Oct 24, 2024
20ea1db
Update README.rst
huitmj Oct 24, 2024
73ff8ab
versal-virt: fix incorrect memory range for PSM
ho28 Nov 12, 2024
a4ca0b9
versal-virt: match the memory ranges to VCK190
ho28 Nov 12, 2024
be9a0bb
mmu-500: borrow Xilinx mmu-500 implementation
ho28 Oct 31, 2024
6770843
mmu-500: move MMU-500 source from hw/misc to hw/arm
ho28 Oct 31, 2024
7afd777
mmu-500: init iommu memory regions
ho28 Nov 1, 2024
95465ef
mmu-500: irq header include for qemu_set_irq
ho28 Nov 1, 2024
a43408f
mmu-500: split device state into header file
ho28 Nov 4, 2024
01a163e
mmu-500: rename PAGESIZE and R_MAX to avoid conflicts
ho28 Nov 7, 2024
2bf6572
mmu-500: build smmu500
ho28 Nov 7, 2024
0260faa
xlnx-versal: modify some SPI interrupt mappings
ho28 Nov 15, 2024
745ed42
xlnx-versal: integrate smmu500 into versal-virt
ho28 Nov 15, 2024
9b1fe24
adding Wind River footnotes for version and help arguments
huitmj Nov 19, 2024
670d4ba
help-texts: fix missing closing brace
ho28 Nov 22, 2024
144aee2
versal: copy LPD IOU SLCR from xilinx fork
ho28 Dec 5, 2024
6573811
versal: split lpd iou slcr state into header file
ho28 Dec 6, 2024
a424126
xlnx lpd iou slcr: build the device
ho28 Dec 6, 2024
72e6b86
versal: integrate LPD_IOU_SLCR into Versal SoC
ho28 Dec 6, 2024
458d2d6
xlnx versal: copy LPD SLCR from Xilinx QEMU
ho28 Dec 6, 2024
dc44e0a
versal lpd-slcr: split device state into header file
ho28 Dec 6, 2024
e0de1e7
versal LPD SLCR: meson changes to build with versal
ho28 Dec 6, 2024
5a83e7e
versal: integrate LPD SLCR registers into versal
ho28 Dec 6, 2024
ebdf362
versal lpd slcr: change device qom name
ho28 Dec 6, 2024
de855cf
xlnx versal SERBS: add SERBS interface
ho28 Dec 6, 2024
85c3a3b
versal: copy LPD INT CSR skeleton device from Xilinx
ho28 Dec 6, 2024
8fc3dfd
versal: add LPD INT config and status register block
ho28 Dec 6, 2024
138ec45
versal: integrate LPD INT CSR
ho28 Dec 6, 2024
813cf7e
versal: copy PMC interconnect CSR model from Xilinx
ho28 Dec 9, 2024
fd0a640
versal: add PMC INT CSR header and build device model
ho28 Dec 9, 2024
9a67e02
versal pmc int: remove unused registers
ho28 Dec 9, 2024
fcfa626
versal: integrate PMC interconnect CSR
ho28 Dec 9, 2024
ce8602c
versal: use OBJECT_DECLARE_SIMPLE_TYPE
ho28 Dec 10, 2024
6f21efb
versal: use OBJECT_DECLARE_TYPE in LPD IOU SLCR
ho28 Dec 10, 2024
f4be8b1
readme: update about section
ho28 Dec 24, 2024
525dab4
versal: connect gem0 to iommu
ho28 Dec 17, 2024
ca79521
smmu500: connect prop mr-%d to tbu[i].target_mr
ho28 Dec 18, 2024
e87504e
versal: iommu tbu device mapping
ho28 Dec 19, 2024
b67a289
cadence_gem: add stream-id property to device
ho28 Jan 9, 2025
32da334
versal: set gem0 and gem1 stream-id
ho28 Jan 9, 2025
9607946
upgrade 9.2.0: use ResettableClass
ho28 Jan 15, 2025
052afcc
upgrade 9.2.0: rebuild bios-tables-test SSDT.memhp
ho28 Jan 16, 2025
150264f
github actions: use ubuntu 22.04
ho28 Jan 16, 2025
5a68bab
xlnx-versal: change IRQ mapping to reflect the hardware
ho28 Jan 31, 2025
cc12817
gpex: add define for legacy io port window size
ho28 Feb 12, 2025
69c216f
versal: add pcie host bridge to xilinx versal
ho28 Feb 12, 2025
c9cf4f5
versal-virt: add pcie device tree nodes
ho28 Feb 12, 2025
f276c0c
versal: add address-cells property to gic node
ho28 Feb 12, 2025
a40a2e8
docs: build and boot VxWorks on xlnx-versal-virt
ho28 Feb 25, 2025
ce20e2e
docs: build and boot vxworks on nxp-s32g
ho28 Feb 25, 2025
43ed599
docs: move wr-pci-leds from docs/specs to docs/wind
ho28 Feb 25, 2025
15b1a63
docs: initial documentation for hvp on versal
ho28 Feb 25, 2025
1e4c7d5
docs: initial documentation for HVP on zcu102
ho28 Feb 25, 2025
7e36dbf
versal: add gicv3 interrupt translation service
ho28 Feb 26, 2025
3ae8b40
versal-virt: add gic its device tree node
ho28 Feb 26, 2025
a407b53
versal: add size-cells prop to gic fdt node
ho28 Mar 3, 2025
deee0e9
versal: enable LPI on GICv3
ho28 Mar 3, 2025
698e7c9
versal-virt: move GIC node to top of device tree
ho28 Mar 6, 2025
b6f88da
versal-virt: update compatible string for vxworks 25.03
ho28 May 20, 2025
3a25986
upgrade stable-10.0: constify Property array
ho28 May 27, 2025
0708000
upgrade stable-10.0: sysemu/ -> system/ header rename
ho28 May 27, 2025
f45a48c
upgrade stable-10.0: fix versal GPEX NUM IRQS
ho28 May 27, 2025
94c23cd
imx8mp-evk: move imx8mp_memmap to header file
ho28 Apr 8, 2025
e66f22a
imx8mp-evk: Imx8mpEvk Machine
ho28 Apr 8, 2025
aa10b0d
imx8mp-evk: create device tree
ho28 Apr 8, 2025
476a0de
imx8mp-evk: add cpu nodes to device tree
ho28 Apr 8, 2025
7310dcc
imx8mp-evk: fdt add gic nodes
ho28 Apr 8, 2025
cb7abb6
imx8mp-evk: add fixed clock nodes
ho28 Apr 8, 2025
fe3158c
imx8mp: add soc fdt node
ho28 Apr 8, 2025
f77a168
imx8mp-evk: add ccm node
ho28 Apr 8, 2025
67c316e
imx8mp-evk: fdt add gpt timer node
ho28 Apr 8, 2025
857e1f2
imx8mp-evk: fdt add gpio nodes
ho28 Apr 8, 2025
ba4e9c3
imx8mp-evk: add analog pll node
ho28 Apr 8, 2025
f1729f3
imx8mp-evk: fdt add snvs node
ho28 Apr 8, 2025
e66a275
imx8mp-evk: fdt add uart nodes
ho28 Apr 8, 2025
717307c
imx8mp-evk: fdt add enet nodes
ho28 Apr 9, 2025
69cc540
imx8mp: fdt add arm generic timer node
ho28 Apr 9, 2025
7066a95
imx8mp-evk: fdt add ccm clock specifiers
ho28 Apr 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 90 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# ci.yml, WR QEMU github CI configuration file.
#
# Copyright (c) 2024 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

name: WR QEMU CI

on:
push:
branches:
- wr-integration
pull_request:
branches:
- wr-integration

jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Checkout QEMU source
uses: actions/checkout@v4
with:
repository: Wind-River/qemu
path: qemu
# Use a specific branch or tag if needed
ref: wr-integration

- name: Set up dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
acpica-tools \
autoconf \
automake \
bison \
bzip2 \
build-essential \
cmake \
curl \
flex \
git \
lftp \
libaio-dev \
libcapstone-dev \
libelf1 \
libfdt-dev \
libglib2.0-dev \
libncurses5-dev \
libpixman-1-dev \
libslirp-dev \
libx11-6 \
libxext6 \
libxpm4 \
libz-dev \
make \
ninja-build \
python3 \
python3-pip \
screen \
texinfo \
unzip \
vsftpd \
wget \
zlib1g-dev

- name: Build QEMU
working-directory: qemu
run: |
./configure --target-list="aarch64-softmmu,x86_64-softmmu" --enable-fdt --enable-plugins --enable-slirp --enable-capstone
make -j $(cat /proc/cpuinfo | grep "^processor" | wc -l)
make plugins
make check-build

- name: Run QEMU tests
working-directory: qemu
run: |
V=1 make check

30 changes: 0 additions & 30 deletions .github/workflows/lockdown.yml

This file was deleted.

62 changes: 62 additions & 0 deletions .windriver/.windriver-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# .windriver-ci.yml, WR qemu gitlab CI configuration file.
#
# Copyright (c) 2024 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA


stages:
- build-test

# Default job values
default:
retry: 0
interruptible: true
image:
name: registry.hub.docker.com/library/debian:11.7
entrypoint: [""]

# Control when the pipeline is ran (on git push, for updates to merge request, etc)
workflow:
rules:
# Do not run for merge requests (will duplicate the push pipeline)
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
# catchall to always run the pipeline if the above conditions fail
- when: always

build-test-qemu-runtime:
stage: build-test
script:
- apt-get update
- apt-get upgrade -y && apt-get install -y autoconf automake bison bzip2 ca-certificates chrpath cmake curl
diffstat flex g++ gawk gcc help2man lftp libelf1 libglib2.0-dev libpixman-1-dev
libslirp-dev libx11-6 libxext6 libxpm4 libz-dev make ninja-build python3
python3-pip screen texinfo unzip vsftpd wget git
- pip3 install -U pip setuptools
# build QEMU
- ./configure
--extra-cflags='-mno-avx512f'
--extra-cxxflags='-mno-avx512f'
--enable-strip
--enable-slirp
--disable-gio
--disable-debug-info
--disable-qom-cast-debug
- make -j $(cat /proc/cpuinfo | grep "^processor" | wc -l)
# run unit test
- make check-unit
# run block level test
- make check-block

148 changes: 40 additions & 108 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,43 @@
QEMU README
===========

QEMU is a generic and open source machine & userspace emulator and
virtualizer.

QEMU is capable of emulating a complete machine in software without any
need for hardware virtualization support. By using dynamic translation,
it achieves very good performance. QEMU can also integrate with the Xen
and KVM hypervisors to provide emulated hardware while allowing the
hypervisor to manage the CPU. With hypervisor support, QEMU can achieve
near native performance for CPUs. When QEMU emulates CPUs directly it is
capable of running operating systems made for one machine (e.g. an ARMv7
board) on a different machine (e.g. an x86_64 PC board).

QEMU is also capable of providing userspace API virtualization for Linux
and BSD kernel interfaces. This allows binaries compiled against one
architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a
different architecture ABI (e.g. the Linux x86_64 ABI). This does not
involve any hardware emulation, simply CPU and syscall emulation.

QEMU aims to fit into a variety of use cases. It can be invoked directly
by users wishing to have full control over its behaviour and settings.
It also aims to facilitate integration into higher level management
layers, by providing a stable command line interface and monitor API.
It is commonly invoked indirectly via the libvirt library when using
open source applications such as oVirt, OpenStack and virt-manager.
Wind River QEMU has improved support for
`VxWorks <https://www.windriver.com/products/vxworks>`_ and
`Wind River Helix Virtualization Platform <https://www.windriver.com/products/helix>`_.
This is a fork of the community QEMU project, rebased on the
latest stable upstream branch. For more information
about Wind River QEMU, please `contact us`_.

For more information about the upstream community QEMU project, please
visit `<https://github.com/qemu/qemu/>`_ or
`<https://www.qemu.org/>`_.

QEMU as a whole is released under the GNU General Public License,
version 2. For full licensing details, consult the LICENSE file.


Legal Notices
=============

All product names, logos, and brands are property of their respective
owners. All company, product and service names used in this software
are for identification purposes only. Wind River and VxWorks are
registered trademarks of Wind River Systems, Inc. UNIX is a registered
trademark of The Open Group.

Disclaimer of Warranty / No Support: Wind River does not provide
support and maintenance services for this software, under Wind River’s
standard Software Support and Maintenance Agreement or otherwise.
Unless required by applicable law, Wind River provides the software
(and each contributor provides its contribution) on an “AS IS” BASIS,
WITHOUT WARRANTIES OF ANY KIND, either express or implied, including,
without limitation, any warranties of TITLE, NONINFRINGEMENT,
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
responsible for determining the appropriateness of using or
redistributing the software and assume any risks associated with your
exercise of permissions under the license.


Documentation
=============

Expand Down Expand Up @@ -67,105 +75,29 @@ Additional information can also be found online via the QEMU website:
Submitting patches
==================

The QEMU source code is maintained under the GIT version control system.

.. code-block:: shell

git clone https://gitlab.com/qemu-project/qemu.git

When submitting patches, one common approach is to use 'git
format-patch' and/or 'git send-email' to format & send the mail to the
qemu-devel@nongnu.org mailing list. All patches submitted must contain
a 'Signed-off-by' line from the author. Patches should follow the
guidelines set out in the `style section
<https://www.qemu.org/docs/master/devel/style.html>`_ of
the Developers Guide.

Additional information on submitting patches can be found online via
the QEMU website:

* `<https://wiki.qemu.org/Contribute/SubmitAPatch>`_
* `<https://wiki.qemu.org/Contribute/TrivialPatches>`_

The QEMU website is also maintained under source control.

.. code-block:: shell

git clone https://gitlab.com/qemu-project/qemu-web.git

* `<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>`_

A 'git-publish' utility was created to make above process less
cumbersome, and is highly recommended for making regular contributions,
or even just for sending consecutive patch series revisions. It also
requires a working 'git send-email' setup, and by default doesn't
automate everything, so you may want to go through the above steps
manually for once.
Please submit a pull request.

For installation instructions, please go to:

* `<https://github.com/stefanha/git-publish>`_

The workflow with 'git-publish' is:

.. code-block:: shell

$ git checkout master -b my-feature
$ # work on new commits, add your 'Signed-off-by' lines to each
$ git publish

Your patch series will be sent and tagged as my-feature-v1 if you need to refer
back to it in the future.

Sending v2:

.. code-block:: shell

$ git checkout my-feature # same topic branch
$ # making changes to the commits (using 'git rebase', for example)
$ git publish

Your patch series will be sent with 'v2' tag in the subject and the git tip
will be tagged as my-feature-v2.

Bug reporting
=============

The QEMU project uses GitLab issues to track bugs. Bugs
found when running code built from QEMU git or upstream released sources
should be reported via:

* `<https://gitlab.com/qemu-project/qemu/-/issues>`_

If using QEMU via an operating system vendor pre-built binary package, it
is preferable to report bugs to the vendor's own bug tracker first. If
the bug is also known to affect latest upstream code, it can also be
reported via GitLab.

For additional information on bug reporting consult:

* `<https://wiki.qemu.org/Contribute/ReportABug>`_
Please file an issue.


ChangeLog
=========

For version history and release notes, please visit
`<https://wiki.qemu.org/ChangeLog/>`_ or look at the git history for
more detailed information.
For version history and release notes, please look at the git history.


.. _contact us:

Contact
=======

The QEMU community can be contacted in a number of ways, with the two
main methods being email and IRC:
The Wind River QEMU team can be reached through

* `<mailto:qemu-devel@nongnu.org>`_
* `<https://lists.nongnu.org/mailman/listinfo/qemu-devel>`_
* #qemu on irc.oftc.net
James.Hui@windriver.com

Information on additional methods of contacting the community can be
found online via the QEMU website:
Nelson.Ho@windriver.com

* `<https://wiki.qemu.org/Contribute/StartHere>`_
Loading