<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/modules/vmm, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>arm64/vmm: Make remaining registers use hypctx_*_sys_reg</title>
<updated>2026-07-06T15:18:30+00:00</updated>
<author>
<name>Kajetan Puchalski</name>
<email>kajetan.puchalski@arm.com</email>
</author>
<published>2026-07-06T14:18:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=35164034e390f56f83efe5bf073d36812b19df23'/>
<id>35164034e390f56f83efe5bf073d36812b19df23</id>
<content type='text'>
Move vgic, timer and trapframe registers into sys_regs to handle them
in the same way as all the other registers.

Signed-off-by:	Kajetan Puchalski &lt;kajetan.puchalski@arm.com&gt;
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D56556
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move vgic, timer and trapframe registers into sys_regs to handle them
in the same way as all the other registers.

Signed-off-by:	Kajetan Puchalski &lt;kajetan.puchalski@arm.com&gt;
Reviewed by:	andrew
Sponsored by:	Arm Ltd
Differential Revision:	https://reviews.freebsd.org/D56556
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm/arm64: Compile vmm_nvhe.c without SSP</title>
<updated>2026-05-22T16:10:04+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2026-05-22T16:10:04+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=bed77cf7c213c3f93a0dc099e4b46c078495a328'/>
<id>bed77cf7c213c3f93a0dc099e4b46c078495a328</id>
<content type='text'>
This file implements a set of EL2 hypercall handlers and is used to
switch between guests and the host kernel when VHE is not in use.  There
is no SSP runtime available there.

Reported by:	Jenkins
Fixes:		8deebce931fa ("kernel: Enable -fstack-protector-strong by default")
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This file implements a set of EL2 hypercall handlers and is used to
switch between guests and the host kernel when VHE is not in use.  There
is no SSP runtime available there.

Reported by:	Jenkins
Fixes:		8deebce931fa ("kernel: Enable -fstack-protector-strong by default")
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm: Deduplicate VM and vCPU state management code</title>
<updated>2026-01-08T21:54:06+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2026-01-08T21:54:06+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ed85203fb7a0334041db6da07e45ddda4caef13d'/>
<id>ed85203fb7a0334041db6da07e45ddda4caef13d</id>
<content type='text'>
Now that the machine-independent fields of struct vm and struct vcpu are
available in a header, we can move lots of duplicated code into
sys/dev/vmm/vmm_vm.c.  This change does exactly that.

No functional change intended.

MFC after:	2 months
Sponsored by:	The FreeBSD Foundation
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D53585
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that the machine-independent fields of struct vm and struct vcpu are
available in a header, we can move lots of duplicated code into
sys/dev/vmm/vmm_vm.c.  This change does exactly that.

No functional change intended.

MFC after:	2 months
Sponsored by:	The FreeBSD Foundation
Sponsored by:	Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D53585
</pre>
</div>
</content>
</entry>
<entry>
<title>sys/modules/vmm: ${CFLAGS:N-flto} -&gt; ${CFLAGS:N-flto*}</title>
<updated>2025-05-03T08:55:05+00:00</updated>
<author>
<name>Xin LI</name>
<email>delphij@FreeBSD.org</email>
</author>
<published>2025-04-21T06:16:54+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d5931764df7f8c522dd04dd7f0ed413561607c06'/>
<id>d5931764df7f8c522dd04dd7f0ed413561607c06</id>
<content type='text'>
Fixes: 12a6257a96007222e5441d883709fca2a28febb5

Differential Revision: https://reviews.freebsd.org/D49940
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: 12a6257a96007222e5441d883709fca2a28febb5

Differential Revision: https://reviews.freebsd.org/D49940
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm: Consolidate code which manages guest memory regions</title>
<updated>2025-02-18T16:00:07+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2025-02-18T15:53:16+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c76c2a19ae3763d17aa6a60a5831ed24cbc16e83'/>
<id>c76c2a19ae3763d17aa6a60a5831ed24cbc16e83</id>
<content type='text'>
On all three platforms supported by vmm, we have mostly duplicated code
to manage guest physical memory regions.  Deduplicate much of this code
and move it into sys/dev/vmm/vmm_mem.c.

To avoid exporting struct vm outside of machdep vmm.c, add a new
struct vm_mem to contain the memory segment descriptors, and add a
vm_mem() accessor, akin to vm_vmspace().  This way vmm_mem.c can
implement its routines without needing to see the layout of struct vm.

The handling of the per-VM vmspace is also duplicated but will be moved
to vmm_mem.c in a follow-up patch.

On amd64, move the ppt_is_mmio() check out of vm_mem_allocated() to keep
the code MI, as PPT is only implemented on amd64.  There are only a
couple of callers, so this is not unreasonable.

No functional change intended.

Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D48270
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On all three platforms supported by vmm, we have mostly duplicated code
to manage guest physical memory regions.  Deduplicate much of this code
and move it into sys/dev/vmm/vmm_mem.c.

To avoid exporting struct vm outside of machdep vmm.c, add a new
struct vm_mem to contain the memory segment descriptors, and add a
vm_mem() accessor, akin to vm_vmspace().  This way vmm_mem.c can
implement its routines without needing to see the layout of struct vm.

The handling of the per-VM vmspace is also duplicated but will be moved
to vmm_mem.c in a follow-up patch.

On amd64, move the ppt_is_mmio() check out of vm_mem_allocated() to keep
the code MI, as PPT is only implemented on amd64.  There are only a
couple of callers, so this is not unreasonable.

No functional change intended.

Reviewed by:	jhb
Differential Revision:	https://reviews.freebsd.org/D48270
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm: Add vmm_fence.c to SRCS for vmm.ko on riscv</title>
<updated>2025-02-14T15:26:49+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2025-02-14T15:26:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=fbacadf103dc81cea0f233f11adb73ef43ee4a75'/>
<id>fbacadf103dc81cea0f233f11adb73ef43ee4a75</id>
<content type='text'>
Fixes:	8f6b66a9d3f2 ("riscv vmm: implement SBI RFNC extension.")
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes:	8f6b66a9d3f2 ("riscv vmm: implement SBI RFNC extension.")
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm: Depend on vmm_hyp* files as needed</title>
<updated>2025-01-24T16:21:06+00:00</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2025-01-24T16:09:03+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c6170b00f44e97f054a3e318744729d05d5360f9'/>
<id>c6170b00f44e97f054a3e318744729d05d5360f9</id>
<content type='text'>
The arm64 vmm_nvhe* files depend on a vmm_hyp file to provide most of
the implementation. As these are built with custom rules the normal
generated dependency information is not used, even if generated.

Add a dependency between these two sets of files to ensure when the
implementation is updated the file will be rebuilt.

Sponsored by:	Arm Ltd
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The arm64 vmm_nvhe* files depend on a vmm_hyp file to provide most of
the implementation. As these are built with custom rules the normal
generated dependency information is not used, even if generated.

Add a dependency between these two sets of files to ensure when the
implementation is updated the file will be rebuilt.

Sponsored by:	Arm Ltd
</pre>
</div>
</content>
</entry>
<entry>
<title>riscv vmm: virtual timer support.</title>
<updated>2025-01-02T16:02:39+00:00</updated>
<author>
<name>Ruslan Bukin</name>
<email>br@FreeBSD.org</email>
</author>
<published>2025-01-02T15:42:34+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=9be0058ea0fc6fd098b9e2ab54f94c86fe7eb69a'/>
<id>9be0058ea0fc6fd098b9e2ab54f94c86fe7eb69a</id>
<content type='text'>
Add a virtual timer implementation based on SBI Time extension.
This is needed for Eswin EIC7700 SoC which does not include the newer SSTC
extension.

Timer interrupt pending bit (STIP) could not be cleared in the guest system,
so rework interrupts handling: add new "interrupts_pending" field. Use it
for timer interrupt only for now, but later we can extend to store all
pending interrupts (Timer, IPI and External).

With this I'm able to boot FreeBSD (SMP) guest on HiFive Premier P550,
which is the first real hardware with RISC-V 'H'-spec included.

Differential Revision: https://reviews.freebsd.org/D48133
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a virtual timer implementation based on SBI Time extension.
This is needed for Eswin EIC7700 SoC which does not include the newer SSTC
extension.

Timer interrupt pending bit (STIP) could not be cleared in the guest system,
so rework interrupts handling: add new "interrupts_pending" field. Use it
for timer interrupt only for now, but later we can extend to store all
pending interrupts (Timer, IPI and External).

With this I'm able to boot FreeBSD (SMP) guest on HiFive Premier P550,
which is the first real hardware with RISC-V 'H'-spec included.

Differential Revision: https://reviews.freebsd.org/D48133
</pre>
</div>
</content>
</entry>
<entry>
<title>riscv: Add support for building vmm as a kernel module</title>
<updated>2024-11-13T14:15:07+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2024-11-13T14:09:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0a897e67548156ed731dae68eafd21728894ef91'/>
<id>0a897e67548156ed731dae68eafd21728894ef91</id>
<content type='text'>
- Update sys/modules/vmm/Makefile.
- Add some required symbol definitions.
- Hook up vmm in sys/modules/Makefile.

Reviewed by:	br
Differential Revision:	https://reviews.freebsd.org/D47477
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Update sys/modules/vmm/Makefile.
- Add some required symbol definitions.
- Hook up vmm in sys/modules/Makefile.

Reviewed by:	br
Differential Revision:	https://reviews.freebsd.org/D47477
</pre>
</div>
</content>
</entry>
<entry>
<title>vmm: Rename the amdiommu driver to amdviiommu</title>
<updated>2024-11-04T14:45:57+00:00</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2024-11-04T14:44:19+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f95acbd89d594b5932197679d94d2ba23c1d0331'/>
<id>f95acbd89d594b5932197679d94d2ba23c1d0331</id>
<content type='text'>
To avoid a conflict with the new amdiommu driver imported recently.

Fixes:		0f5116d7efe3 ("AMD IOMMU driver")
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D47415
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To avoid a conflict with the new amdiommu driver imported recently.

Fixes:		0f5116d7efe3 ("AMD IOMMU driver")
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D47415
</pre>
</div>
</content>
</entry>
</feed>
