summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2022-04-15 16:50:25 +0000
committerPatrick Mooney <pmooney@oxide.computer>2022-04-21 20:19:23 +0000
commit7c8c0b8227679b4684566e408ccc96d6ef7175e9 (patch)
tree36dc19db0c8cfcdd4fccfd1247a616aa601fd62c
parentdf5cd018c34371890eeeb8c930245b9323e8aa25 (diff)
downloadillumos-gate-7c8c0b8227679b4684566e408ccc96d6ef7175e9.tar.gz
14587 bhyve and viona belong in uts/intel
Reviewed by: Keith Wesolowski <wesolows@oxide.computer> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
-rw-r--r--exception_lists/copyright54
-rw-r--r--exception_lists/cstyle8
-rw-r--r--exception_lists/hdrchk26
-rw-r--r--usr/src/cmd/bhyve/Makefile4
-rw-r--r--usr/src/cmd/bhyve/pci_passthru.c2
-rw-r--r--usr/src/cmd/bhyvectl/Makefile4
-rw-r--r--usr/src/cmd/rsrvrctl/Makefile4
-rw-r--r--usr/src/lib/libvmm/Makefile.com2
-rw-r--r--usr/src/lib/libvmmapi/Makefile.com2
-rw-r--r--usr/src/pkg/manifests/system-bhyve.p5m4
-rw-r--r--usr/src/pkg/manifests/system-header.p5m1
-rw-r--r--usr/src/test/bhyve-tests/tests/inst_emul/Makefile4
-rw-r--r--usr/src/test/bhyve-tests/tests/kdev/Makefile4
-rw-r--r--usr/src/test/bhyve-tests/tests/vmm/Makefile4
-rw-r--r--usr/src/tools/findunref/exception_list.open4
-rw-r--r--usr/src/uts/i86pc/Makefile.files49
-rw-r--r--usr/src/uts/i86pc/Makefile.i86pc2
-rw-r--r--usr/src/uts/i86pc/Makefile.rules29
-rw-r--r--usr/src/uts/i86pc/sys/Makefile7
-rw-r--r--usr/src/uts/i86pc/sys/machcpuvar.h10
-rw-r--r--usr/src/uts/i86pc/vmm/Makefile64
-rw-r--r--usr/src/uts/i86xpv/Makefile.files1
-rw-r--r--usr/src/uts/intel/Makefile.files25
-rw-r--r--usr/src/uts/intel/Makefile.intel10
-rw-r--r--usr/src/uts/intel/Makefile.rules4
-rw-r--r--usr/src/uts/intel/io/viona/THIRDPARTYLICENSE (renamed from usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE)0
-rw-r--r--usr/src/uts/intel/io/viona/THIRDPARTYLICENSE.descrip (renamed from usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE.descrip)0
-rw-r--r--usr/src/uts/intel/io/viona/viona.conf (renamed from usr/src/uts/i86pc/io/viona/viona.conf)0
-rw-r--r--usr/src/uts/intel/io/viona/viona.mapfile (renamed from usr/src/uts/i86pc/io/viona/viona.mapfile)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_hook.c (renamed from usr/src/uts/i86pc/io/viona/viona_hook.c)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_impl.h (renamed from usr/src/uts/i86pc/io/viona/viona_impl.h)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_main.c (renamed from usr/src/uts/i86pc/io/viona/viona_main.c)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_ring.c (renamed from usr/src/uts/i86pc/io/viona/viona_ring.c)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_rx.c (renamed from usr/src/uts/i86pc/io/viona/viona_rx.c)0
-rw-r--r--usr/src/uts/intel/io/viona/viona_tx.c (renamed from usr/src/uts/i86pc/io/viona/viona_tx.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/Makefile.rules48
-rw-r--r--usr/src/uts/intel/io/vmm/Makefile.vmm85
-rw-r--r--usr/src/uts/intel/io/vmm/README.license (renamed from usr/src/uts/i86pc/io/vmm/README.license)0
-rw-r--r--usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE (renamed from usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE)0
-rw-r--r--usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE.descrip (renamed from usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE.descrip)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/amdiommu.c (renamed from usr/src/uts/i86pc/io/vmm/amd/amdiommu.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/amdv.c (renamed from usr/src/uts/i86pc/io/vmm/amd/amdv.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/amdvi_hw.c (renamed from usr/src/uts/i86pc/io/vmm/amd/amdvi_hw.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/amdvi_priv.h (renamed from usr/src/uts/i86pc/io/vmm/amd/amdvi_priv.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/ivrs_drv.c (renamed from usr/src/uts/i86pc/io/vmm/amd/ivrs_drv.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/offsets.in (renamed from usr/src/uts/i86pc/io/vmm/amd/offsets.in)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm.c (renamed from usr/src/uts/i86pc/io/vmm/amd/svm.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm.h (renamed from usr/src/uts/i86pc/io/vmm/amd/svm.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm_msr.c (renamed from usr/src/uts/i86pc/io/vmm/amd/svm_msr.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm_msr.h (renamed from usr/src/uts/i86pc/io/vmm/amd/svm_msr.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm_softc.h (renamed from usr/src/uts/i86pc/io/vmm/amd/svm_softc.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/svm_support.s (renamed from usr/src/uts/i86pc/io/vmm/amd/svm_support.s)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/vmcb.c (renamed from usr/src/uts/i86pc/io/vmm/amd/vmcb.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/amd/vmcb.h (renamed from usr/src/uts/i86pc/io/vmm/amd/vmcb.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/offsets.in (renamed from usr/src/uts/i86pc/io/vmm/intel/offsets.in)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmcs.c (renamed from usr/src/uts/i86pc/io/vmm/intel/vmcs.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmcs.h (renamed from usr/src/uts/i86pc/io/vmm/intel/vmcs.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx.c (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx.h (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx_controls.h (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx_controls.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx_msr.c (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx_msr.h (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vmx_support.s (renamed from usr/src/uts/i86pc/io/vmm/intel/vmx_support.s)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vtd.c (renamed from usr/src/uts/i86pc/io/vmm/intel/vtd.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/intel/vtd_sol.c (renamed from usr/src/uts/i86pc/io/vmm/intel/vtd_sol.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/iommu.c (renamed from usr/src/uts/i86pc/io/vmm/io/iommu.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/iommu.h (renamed from usr/src/uts/i86pc/io/vmm/io/iommu.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/ppt.c (renamed from usr/src/uts/i86pc/io/vmm/io/ppt.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/ppt.conf (renamed from usr/src/uts/i86pc/io/vmm/io/ppt.conf)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/ppt.h (renamed from usr/src/uts/i86pc/io/vmm/io/ppt.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/ppt.mapfile (renamed from usr/src/uts/i86pc/io/vmm/io/ppt.mapfile)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vatpic.c (renamed from usr/src/uts/i86pc/io/vmm/io/vatpic.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vatpic.h (renamed from usr/src/uts/i86pc/io/vmm/io/vatpic.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vatpit.c (renamed from usr/src/uts/i86pc/io/vmm/io/vatpit.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vatpit.h (renamed from usr/src/uts/i86pc/io/vmm/io/vatpit.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vhpet.c (renamed from usr/src/uts/i86pc/io/vmm/io/vhpet.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vhpet.h (renamed from usr/src/uts/i86pc/io/vmm/io/vhpet.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vioapic.c (renamed from usr/src/uts/i86pc/io/vmm/io/vioapic.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vioapic.h (renamed from usr/src/uts/i86pc/io/vmm/io/vioapic.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vlapic.c (renamed from usr/src/uts/i86pc/io/vmm/io/vlapic.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vlapic.h (renamed from usr/src/uts/i86pc/io/vmm/io/vlapic.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vlapic_priv.h (renamed from usr/src/uts/i86pc/io/vmm/io/vlapic_priv.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vpmtmr.c (renamed from usr/src/uts/i86pc/io/vmm/io/vpmtmr.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vpmtmr.h (renamed from usr/src/uts/i86pc/io/vmm/io/vpmtmr.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vrtc.c (renamed from usr/src/uts/i86pc/io/vmm/io/vrtc.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/io/vrtc.h (renamed from usr/src/uts/i86pc/io/vmm/io/vrtc.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/seg_vmm.c (renamed from usr/src/uts/i86pc/io/vmm/seg_vmm.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/seg_vmm.h (renamed from usr/src/uts/i86pc/io/vmm/sys/seg_vmm.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_gpt.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_gpt.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_impl.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_impl.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_instruction_emul.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_instruction_emul.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_kernel.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_kernel.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_reservoir.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_reservoir.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/sys/vmm_vm.h (renamed from usr/src/uts/i86pc/io/vmm/sys/vmm_vm.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm.c (renamed from usr/src/uts/i86pc/io/vmm/vmm.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm.conf (renamed from usr/src/uts/i86pc/io/vmm/vmm.conf)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm.mapfile (renamed from usr/src/uts/i86pc/io/vmm/vmm.mapfile)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_gpt.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_gpt.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_host.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_host.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_host.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_host.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_instruction_emul.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_instruction_emul.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_ioport.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_ioport.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_ioport.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_ioport.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_ktr.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_ktr.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_lapic.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_lapic.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_lapic.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_lapic.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_reservoir.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_reservoir.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_sol_dev.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_sol_dev.c)2
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_sol_ept.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_sol_ept.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_sol_glue.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_sol_glue.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_sol_rvi.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_sol_rvi.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_stat.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_stat.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_stat.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_stat.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_support.s (renamed from usr/src/uts/i86pc/io/vmm/vmm_support.s)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_util.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_util.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_util.h (renamed from usr/src/uts/i86pc/io/vmm/vmm_util.h)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_vm.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_vm.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/vmm_zsd.c (renamed from usr/src/uts/i86pc/io/vmm/vmm_zsd.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/x86.c (renamed from usr/src/uts/i86pc/io/vmm/x86.c)0
-rw-r--r--usr/src/uts/intel/io/vmm/x86.h (renamed from usr/src/uts/i86pc/io/vmm/x86.h)0
-rw-r--r--usr/src/uts/intel/os/hma.c (renamed from usr/src/uts/i86pc/os/hma.c)0
-rw-r--r--usr/src/uts/intel/os/hma_fpu.c (renamed from usr/src/uts/i86pc/os/hma_fpu.c)0
-rw-r--r--usr/src/uts/intel/os/smt.c (renamed from usr/src/uts/i86pc/os/smt.c)0
-rw-r--r--usr/src/uts/intel/ppt/Makefile (renamed from usr/src/uts/i86pc/ppt/Makefile)49
-rw-r--r--usr/src/uts/intel/sys/Makefile11
-rw-r--r--usr/src/uts/intel/sys/Makefile.psm27
-rw-r--r--usr/src/uts/intel/sys/hma.h (renamed from usr/src/uts/i86pc/sys/hma.h)0
-rw-r--r--usr/src/uts/intel/sys/ppt_dev.h (renamed from usr/src/uts/i86pc/sys/ppt_dev.h)0
-rw-r--r--usr/src/uts/intel/sys/smt.h (renamed from usr/src/uts/i86pc/sys/smt.h)0
-rw-r--r--usr/src/uts/intel/sys/smt_machcpu.h44
-rw-r--r--usr/src/uts/intel/sys/viona_io.h (renamed from usr/src/uts/i86pc/sys/viona_io.h)0
-rw-r--r--usr/src/uts/intel/sys/vmm.h (renamed from usr/src/uts/i86pc/sys/vmm.h)0
-rw-r--r--usr/src/uts/intel/sys/vmm_dev.h (renamed from usr/src/uts/i86pc/sys/vmm_dev.h)0
-rw-r--r--usr/src/uts/intel/sys/vmm_drv.h (renamed from usr/src/uts/i86pc/sys/vmm_drv.h)0
-rw-r--r--usr/src/uts/intel/viona/Makefile (renamed from usr/src/uts/i86pc/viona/Makefile)31
135 files changed, 350 insertions, 275 deletions
diff --git a/exception_lists/copyright b/exception_lists/copyright
index 61c4f199bc..f353168c64 100644
--- a/exception_lists/copyright
+++ b/exception_lists/copyright
@@ -543,36 +543,36 @@ usr/src/contrib/bhyve/*
usr/src/lib/libvmmapi/THIRDPARTYLICENSE
usr/src/lib/libvmmapi/THIRDPARTYLICENSE.descrip
usr/src/lib/libvmmapi/common/vmmapi.[ch]
-usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE
-usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE.descrip
-usr/src/uts/i86pc/io/vmm/amd/*.[chs]
-usr/src/uts/i86pc/io/vmm/intel/*.[chs]
-usr/src/uts/i86pc/io/vmm/intel/offsets.in
-usr/src/uts/i86pc/io/vmm/io/*.[ch]
-usr/src/uts/i86pc/io/vmm/README.sync
-usr/src/uts/i86pc/io/vmm/vmm.c
-usr/src/uts/i86pc/io/vmm/vmm_host.[ch]
-usr/src/uts/i86pc/io/vmm/vmm_instruction_emul.c
-usr/src/uts/i86pc/io/vmm/vmm_ioport.[ch]
-usr/src/uts/i86pc/io/vmm/vmm_ipi.h
-usr/src/uts/i86pc/io/vmm/vmm_ktr.h
-usr/src/uts/i86pc/io/vmm/vmm_lapic.[ch]
-usr/src/uts/i86pc/io/vmm/vmm_mem.[ch]
-usr/src/uts/i86pc/io/vmm/vmm_sol_dev.c
-usr/src/uts/i86pc/io/vmm/vmm_sol_glue.c
-usr/src/uts/i86pc/io/vmm/vmm_sol_mem.c
-usr/src/uts/i86pc/io/vmm/vmm_stat.[ch]
-usr/src/uts/i86pc/io/vmm/vmm_util.[ch]
-usr/src/uts/i86pc/io/vmm/vmx_assym.s
-usr/src/uts/i86pc/io/vmm/x86.[ch]
-usr/src/uts/i86pc/sys/vmm.h
-usr/src/uts/i86pc/sys/vmm_dev.h
+usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE
+usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE.descrip
+usr/src/uts/intel/io/vmm/amd/*.[chs]
+usr/src/uts/intel/io/vmm/intel/*.[chs]
+usr/src/uts/intel/io/vmm/intel/offsets.in
+usr/src/uts/intel/io/vmm/io/*.[ch]
+usr/src/uts/intel/io/vmm/README.sync
+usr/src/uts/intel/io/vmm/vmm.c
+usr/src/uts/intel/io/vmm/vmm_host.[ch]
+usr/src/uts/intel/io/vmm/vmm_instruction_emul.c
+usr/src/uts/intel/io/vmm/vmm_ioport.[ch]
+usr/src/uts/intel/io/vmm/vmm_ipi.h
+usr/src/uts/intel/io/vmm/vmm_ktr.h
+usr/src/uts/intel/io/vmm/vmm_lapic.[ch]
+usr/src/uts/intel/io/vmm/vmm_mem.[ch]
+usr/src/uts/intel/io/vmm/vmm_sol_dev.c
+usr/src/uts/intel/io/vmm/vmm_sol_glue.c
+usr/src/uts/intel/io/vmm/vmm_sol_mem.c
+usr/src/uts/intel/io/vmm/vmm_stat.[ch]
+usr/src/uts/intel/io/vmm/vmm_util.[ch]
+usr/src/uts/intel/io/vmm/vmx_assym.s
+usr/src/uts/intel/io/vmm/x86.[ch]
+usr/src/uts/intel/io/vmm/README.license
+usr/src/uts/intel/sys/vmm.h
+usr/src/uts/intel/sys/vmm_dev.h
+usr/src/uts/intel/io/viona/THIRDPARTYLICENSE
+usr/src/uts/intel/io/viona/THIRDPARTYLICENSE.descrip
usr/src/cmd/bhyve/README.license
usr/src/cmd/bhyvectl/README.license
usr/src/lib/libvmmapi/README.license
-usr/src/uts/i86pc/io/vmm/README.license
-usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE
-usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE.descrip
#
# Various bits from the mdb test suite that represent literal input to
diff --git a/exception_lists/cstyle b/exception_lists/cstyle
index 30cec8e4c2..db80c13886 100644
--- a/exception_lists/cstyle
+++ b/exception_lists/cstyle
@@ -1389,8 +1389,8 @@ usr/src/compat/bhyve/*
usr/src/contrib/bhyve/*
usr/src/lib/libvmmapi/common/vmmapi.[ch]
usr/src/test/libc-tests/tests/qsort/*.c
-usr/src/uts/i86pc/io/vmm/amd/amdvi_*.[ch]
-usr/src/uts/i86pc/io/vmm/amd/ivrs_*.c
-usr/src/uts/i86pc/sys/vmm.h
-usr/src/uts/i86pc/sys/vmm_dev.h
+usr/src/uts/intel/io/vmm/amd/amdvi_*.[ch]
+usr/src/uts/intel/io/vmm/amd/ivrs_*.c
+usr/src/uts/intel/sys/vmm.h
+usr/src/uts/intel/sys/vmm_dev.h
usr/src/lib/lib9p/common/*
diff --git a/exception_lists/hdrchk b/exception_lists/hdrchk
index 0c9c154ff0..12c1c2aeef 100644
--- a/exception_lists/hdrchk
+++ b/exception_lists/hdrchk
@@ -420,17 +420,17 @@ usr/src/cmd/bhyve/xmsr.h
usr/src/compat/bhyve/*
usr/src/contrib/bhyve/*
usr/src/lib/libvmmapi/common/vmmapi.h
-usr/src/uts/i86pc/io/vmm/intel/*.h
-usr/src/uts/i86pc/io/vmm/io/*.h
-usr/src/uts/i86pc/io/vmm/vmm_host.h
-usr/src/uts/i86pc/io/vmm/vmm_ioport.h
-usr/src/uts/i86pc/io/vmm/vmm_ipi.h
-usr/src/uts/i86pc/io/vmm/vmm_ktr.h
-usr/src/uts/i86pc/io/vmm/vmm_lapic.h
-usr/src/uts/i86pc/io/vmm/vmm_mem.h
-usr/src/uts/i86pc/io/vmm/vmm_stat.h
-usr/src/uts/i86pc/io/vmm/vmm_util.h
-usr/src/uts/i86pc/io/vmm/x86.h
-usr/src/uts/i86pc/sys/vmm.h
-usr/src/uts/i86pc/sys/vmm_dev.h
+usr/src/uts/intel/io/vmm/intel/*.h
+usr/src/uts/intel/io/vmm/io/*.h
+usr/src/uts/intel/io/vmm/vmm_host.h
+usr/src/uts/intel/io/vmm/vmm_ioport.h
+usr/src/uts/intel/io/vmm/vmm_ipi.h
+usr/src/uts/intel/io/vmm/vmm_ktr.h
+usr/src/uts/intel/io/vmm/vmm_lapic.h
+usr/src/uts/intel/io/vmm/vmm_mem.h
+usr/src/uts/intel/io/vmm/vmm_stat.h
+usr/src/uts/intel/io/vmm/vmm_util.h
+usr/src/uts/intel/io/vmm/x86.h
+usr/src/uts/intel/sys/vmm.h
+usr/src/uts/intel/sys/vmm_dev.h
usr/src/lib/lib9p/common/*
diff --git a/usr/src/cmd/bhyve/Makefile b/usr/src/cmd/bhyve/Makefile
index 6394241ca9..bf002374e6 100644
--- a/usr/src/cmd/bhyve/Makefile
+++ b/usr/src/cmd/bhyve/Makefile
@@ -121,9 +121,9 @@ CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(SRC)/lib/lib9p/common \
-I$(SRC)/uts/common/io/e1000api \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
+ -I$(SRC)/uts/intel/io/vmm \
-I$(SRC)/uts/common \
- -I$(SRC)/uts/i86pc \
+ -I$(SRC)/uts/intel \
-DWITHOUT_CAPSICUM
pci_nvme.o := CERRWARN += -_gcc=-Wno-pointer-sign
diff --git a/usr/src/cmd/bhyve/pci_passthru.c b/usr/src/cmd/bhyve/pci_passthru.c
index aea278c0c8..0c512188b0 100644
--- a/usr/src/cmd/bhyve/pci_passthru.c
+++ b/usr/src/cmd/bhyve/pci_passthru.c
@@ -512,7 +512,7 @@ init_msix_table(struct vmctx *ctx, struct passthru_softc *sc)
/*
* Mapping pptfd provides access to the BAR containing the MSI-X
- * table. See ppt_devmap() in usr/src/uts/i86pc/io/vmm/io/ppt.c
+ * table. See ppt_devmap() in usr/src/uts/intel/io/vmm/io/ppt.c
*
* This maps the whole BAR and then mprotect(PROT_NONE) is used below
* to prevent access to pages that don't contain the MSI-X table.
diff --git a/usr/src/cmd/bhyvectl/Makefile b/usr/src/cmd/bhyvectl/Makefile
index 486f39da31..7e2f458536 100644
--- a/usr/src/cmd/bhyvectl/Makefile
+++ b/usr/src/cmd/bhyvectl/Makefile
@@ -31,8 +31,8 @@ CFLAGS += $(CCVERBOSE)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
- -I$(SRC)/uts/i86pc
+ -I$(SRC)/uts/intel/io/vmm \
+ -I$(SRC)/uts/intel
LDLIBS += -lvmmapi
# Force c99 for everything
diff --git a/usr/src/cmd/rsrvrctl/Makefile b/usr/src/cmd/rsrvrctl/Makefile
index f51df92730..edfde200e1 100644
--- a/usr/src/cmd/rsrvrctl/Makefile
+++ b/usr/src/cmd/rsrvrctl/Makefile
@@ -31,8 +31,8 @@ CFLAGS += $(CCVERBOSE)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
- -I$(SRC)/uts/i86pc
+ -I$(SRC)/uts/intel/io/vmm \
+ -I$(SRC)/uts/intel
all: $(PROG)
diff --git a/usr/src/lib/libvmm/Makefile.com b/usr/src/lib/libvmm/Makefile.com
index ab0e7bd2b8..ecae81d2eb 100644
--- a/usr/src/lib/libvmm/Makefile.com
+++ b/usr/src/lib/libvmm/Makefile.com
@@ -29,7 +29,7 @@ LIBS = $(DYNLIB)
# directly and pull in CPPFLAGS.master at the appropriate place.
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
- $(CPPFLAGS.master) -I$(SRC)/uts/i86pc
+ $(CPPFLAGS.master) -I$(SRC)/uts/intel
LDLIBS += -lc -lvmmapi
diff --git a/usr/src/lib/libvmmapi/Makefile.com b/usr/src/lib/libvmmapi/Makefile.com
index 7eedc5d815..4bad348f6a 100644
--- a/usr/src/lib/libvmmapi/Makefile.com
+++ b/usr/src/lib/libvmmapi/Makefile.com
@@ -30,7 +30,7 @@ SRCDIR = ../common
LIBS = $(DYNLIB)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
- $(CPPFLAGS.master) -I$(SRC)/uts/i86pc
+ $(CPPFLAGS.master) -I$(SRC)/uts/intel
SMOFF += all_func_returns
diff --git a/usr/src/pkg/manifests/system-bhyve.p5m b/usr/src/pkg/manifests/system-bhyve.p5m
index 5753e38b69..51f4877582 100644
--- a/usr/src/pkg/manifests/system-bhyve.p5m
+++ b/usr/src/pkg/manifests/system-bhyve.p5m
@@ -57,8 +57,8 @@ driver name=ppt
driver name=viona
driver name=vmm
license lic_CDDL license=lic_CDDL
-license usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE \
- license=usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE
+license usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE \
+ license=usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE
depend type=require fmri=developer/acpi
depend type=require fmri=system/bhyve/firmware
depend type=require fmri=system/library/bhyve
diff --git a/usr/src/pkg/manifests/system-header.p5m b/usr/src/pkg/manifests/system-header.p5m
index be549b695e..f0eb5cb9a6 100644
--- a/usr/src/pkg/manifests/system-header.p5m
+++ b/usr/src/pkg/manifests/system-header.p5m
@@ -1723,6 +1723,7 @@ $(i386_ONLY)file path=usr/platform/i86pc/include/sys/rm_platter.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/sbd_ioctl.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/smp_impldefs.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/smt.h
+$(i386_ONLY)file path=usr/platform/i86pc/include/sys/smt_machcpu.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/vm_machparam.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/x_call.h
$(i386_ONLY)file path=usr/platform/i86pc/include/sys/xc_levels.h
diff --git a/usr/src/test/bhyve-tests/tests/inst_emul/Makefile b/usr/src/test/bhyve-tests/tests/inst_emul/Makefile
index 2a9d30e67b..3916914939 100644
--- a/usr/src/test/bhyve-tests/tests/inst_emul/Makefile
+++ b/usr/src/test/bhyve-tests/tests/inst_emul/Makefile
@@ -36,8 +36,8 @@ CSTD= $(CSTD_GNU99)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
- -I$(SRC)/uts/i86pc \
+ -I$(SRC)/uts/intel/io/vmm \
+ -I$(SRC)/uts/intel \
-I../common
ASFLAGS += -P -D__STDC__ -D_ASM
diff --git a/usr/src/test/bhyve-tests/tests/kdev/Makefile b/usr/src/test/bhyve-tests/tests/kdev/Makefile
index 0ebc5d5459..5df2330c28 100644
--- a/usr/src/test/bhyve-tests/tests/kdev/Makefile
+++ b/usr/src/test/bhyve-tests/tests/kdev/Makefile
@@ -41,8 +41,8 @@ CSTD= $(CSTD_GNU99)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
- -I$(SRC)/uts/i86pc \
+ -I$(SRC)/uts/intel/io/vmm \
+ -I$(SRC)/uts/intel \
-I../common
ASFLAGS += -P -D__STDC__ -D_ASM
diff --git a/usr/src/test/bhyve-tests/tests/vmm/Makefile b/usr/src/test/bhyve-tests/tests/vmm/Makefile
index 97cf709ca3..1620706cb6 100644
--- a/usr/src/test/bhyve-tests/tests/vmm/Makefile
+++ b/usr/src/test/bhyve-tests/tests/vmm/Makefile
@@ -33,8 +33,8 @@ CSTD= $(CSTD_GNU99)
CPPFLAGS = -I$(COMPAT)/bhyve -I$(CONTRIB)/bhyve \
-I$(COMPAT)/bhyve/amd64 -I$(CONTRIB)/bhyve/amd64 \
$(CPPFLAGS.master) \
- -I$(SRC)/uts/i86pc/io/vmm \
- -I$(SRC)/uts/i86pc
+ -I$(SRC)/uts/intel/io/vmm \
+ -I$(SRC)/uts/intel
$(PROG) := LDLIBS += -lvmmapi
all: $(PROG)
diff --git a/usr/src/tools/findunref/exception_list.open b/usr/src/tools/findunref/exception_list.open
index e68626cf22..ebf81e1c4e 100644
--- a/usr/src/tools/findunref/exception_list.open
+++ b/usr/src/tools/findunref/exception_list.open
@@ -193,8 +193,8 @@
./usr/src/uts/common/fs/smbclnt/netsmb/THIRDPARTYLICENSE.boris_popov.descrip
./usr/src/uts/common/io/e1000api/THIRDPARTYLICENSE
./usr/src/uts/common/io/e1000api/THIRDPARTYLICENSE.descrip
-./usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE
-./usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE.descrip
+./usr/src/uts/intel/io/viona/THIRDPARTYLICENSE
+./usr/src/uts/intel/io/viona/THIRDPARTYLICENSE.descrip
# This is covered by license_in_headers in nfs4_prot.x
./usr/src/head/rpcsvc/THIRDPARTYLICENSE.nfs4_prot
diff --git a/usr/src/uts/i86pc/Makefile.files b/usr/src/uts/i86pc/Makefile.files
index e29d11b64b..064cda8548 100644
--- a/usr/src/uts/i86pc/Makefile.files
+++ b/usr/src/uts/i86pc/Makefile.files
@@ -67,9 +67,6 @@ CORE_OBJS += \
hardclk.o \
hat_i86.o \
hat_kdi.o \
- hma.o \
- hma_asm.o \
- hma_fpu.o \
hment.o \
hold_page.o \
hpet_acpi.o \
@@ -117,7 +114,6 @@ CORE_OBJS += \
pmem.o \
ppage.o \
pwrnow.o \
- smt.o \
speedstep.o \
ssp.o \
startup.o \
@@ -241,51 +237,6 @@ UPPC_OBJS += uppc.o psm_common.o
XSVC_OBJS += xsvc.o
AMD_IOMMU_OBJS += amd_iommu.o amd_iommu_impl.o amd_iommu_acpi.o \
amd_iommu_cmd.o amd_iommu_log.o amd_iommu_page_tables.o
-VMM_OBJS += vmm.o \
- vmm_sol_dev.o \
- vmm_host.o \
- vmm_instruction_emul.o \
- vmm_ioport.o \
- vmm_lapic.o \
- vmm_stat.o \
- vmm_util.o \
- x86.o \
- iommu.o \
- vatpic.o \
- vatpit.o \
- vhpet.o \
- vioapic.o \
- vlapic.o \
- vrtc.o \
- vpmtmr.o \
- vmcs.o \
- vmx_msr.o \
- vmx.o \
- vmx_support.o \
- vtd.o \
- vtd_sol.o \
- svm.o \
- svm_msr.o \
- vmcb.o \
- svm_support.o \
- amdv.o \
- vmm_gpt.o \
- seg_vmm.o \
- vmm_reservoir.o \
- vmm_sol_glue.o \
- vmm_sol_ept.o \
- vmm_sol_rvi.o \
- vmm_support.o \
- vmm_vm.o \
- vmm_zsd.o
-
-VIONA_OBJS += viona_main.o \
- viona_ring.o \
- viona_rx.o \
- viona_tx.o \
- viona_hook.o \
-
-PPT_OBJS += ppt.o
PCI_PRD_OBJS += pci_prd_i86pc.o pci_memlist.o
diff --git a/usr/src/uts/i86pc/Makefile.i86pc b/usr/src/uts/i86pc/Makefile.i86pc
index d23b092b0f..bed1885700 100644
--- a/usr/src/uts/i86pc/Makefile.i86pc
+++ b/usr/src/uts/i86pc/Makefile.i86pc
@@ -246,8 +246,6 @@ DRV_KMODS += dr
DRV_KMODS += ioat
DRV_KMODS += fipe
DRV_KMODS += vmm
-DRV_KMODS += viona
-DRV_KMODS += ppt
DRV_KMODS += cpudrv
diff --git a/usr/src/uts/i86pc/Makefile.rules b/usr/src/uts/i86pc/Makefile.rules
index 9610e075fa..9fe73c00f5 100644
--- a/usr/src/uts/i86pc/Makefile.rules
+++ b/usr/src/uts/i86pc/Makefile.rules
@@ -217,35 +217,6 @@ $(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/dboot/%.c
$(COMPILE.c) -o $@ $<
$(CTFCONVERT_O)
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/%.c
- $(COMPILE.c) -o $@ $<
- $(CTFCONVERT_O)
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/amd/%.c
- $(COMPILE.c) -o $@ $<
- $(CTFCONVERT_O)
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/intel/%.c
- $(COMPILE.c) -o $@ $<
- $(CTFCONVERT_O)
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/io/%.c
- $(COMPILE.c) -o $@ $<
- $(CTFCONVERT_O)
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/%.s
- $(COMPILE.s) -o $@ $<
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/intel/%.s
- $(COMPILE.s) -o $@ $<
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/vmm/amd/%.s
- $(COMPILE.s) -o $@ $<
-
-$(OBJS_DIR)/%.o: $(UTSBASE)/i86pc/io/viona/%.c
- $(COMPILE.c) -o $@ $<
- $(CTFCONVERT_O)
-
#
# dboot stuff is always 32 bit, linked to run with phys_addr == virt_addr
#
diff --git a/usr/src/uts/i86pc/sys/Makefile b/usr/src/uts/i86pc/sys/Makefile
index 8eff4c905c..22ce17eb41 100644
--- a/usr/src/uts/i86pc/sys/Makefile
+++ b/usr/src/uts/i86pc/sys/Makefile
@@ -31,6 +31,7 @@ UTSBASE = ../..
# include global definitions
#
include ../Makefile.i86pc
+include $(UTSBASE)/intel/sys/Makefile.psm
#
# Override defaults.
@@ -46,7 +47,6 @@ HDRS= \
ddi_subrdefs.h \
debug_info.h \
fastboot.h \
- hma.h \
mach_mmu.h \
machclock.h \
machcpuvar.h \
@@ -63,13 +63,14 @@ HDRS= \
rm_platter.h \
sbd_ioctl.h \
smp_impldefs.h \
- smt.h \
vm_machparam.h \
x_call.h \
xc_levels.h \
xsvc.h
-ROOTHDRS= $(HDRS:%=$(USR_PSM_ISYS_DIR)/%)
+ROOTHDRS = \
+ $(HDRS:%=$(USR_PSM_ISYS_DIR)/%) \
+ $(PSM_SHARED_HDRS:%=$(USR_PSM_ISYS_DIR)/%)
ROOTDIR= $(ROOT)/usr/share/src
ROOTDIRS= $(ROOTDIR)/uts $(ROOTDIR)/uts/$(PLATFORM)
diff --git a/usr/src/uts/i86pc/sys/machcpuvar.h b/usr/src/uts/i86pc/sys/machcpuvar.h
index 772f3112cb..1e3c08d3aa 100644
--- a/usr/src/uts/i86pc/sys/machcpuvar.h
+++ b/usr/src/uts/i86pc/sys/machcpuvar.h
@@ -43,6 +43,7 @@ extern "C" {
#include <sys/stddef.h>
#include <sys/debug.h>
#include <sys/cpuvar.h>
+#include <sys/smt_machcpu.h>
#ifndef _ASM
/*
@@ -140,15 +141,6 @@ struct kpti_frame {
uint64_t kf_upper_redzone;
};
-typedef struct cpu_smt {
- lock_t cs_lock;
- char cs_pad[56];
- struct cpu *cs_sib;
- volatile uint64_t cs_intr_depth;
- volatile uint64_t cs_state;
- volatile uint64_t cs_sibstate;
-} cpu_smt_t;
-
/*
* This first value, MACHCPU_SIZE is the size of all the members in the cpu_t
* AND struct machcpu, before we get to the mcpu_pad and the kpti area.
diff --git a/usr/src/uts/i86pc/vmm/Makefile b/usr/src/uts/i86pc/vmm/Makefile
index 90ef062183..2b67aa1243 100644
--- a/usr/src/uts/i86pc/vmm/Makefile
+++ b/usr/src/uts/i86pc/vmm/Makefile
@@ -12,68 +12,26 @@
#
# Copyright 2013 Pluribus Networks Inc.
# Copyright 2019 Joyent, Inc.
+# Copyright 2022 Oxide Computer Company
#
-#
-# Path to the base of the uts directory tree (usually /usr/src/uts).
-#
UTSBASE = ../..
-#
-# Define the module and object file sets.
-#
MODULE = vmm
OBJECTS = $(VMM_OBJS:%=$(OBJS_DIR)/%)
ROOTMODULE = $(USR_DRV_DIR)/$(MODULE)
-CONF_SRCDIR = $(UTSBASE)/i86pc/io/vmm
-MAPFILE = $(UTSBASE)/i86pc/io/vmm/vmm.mapfile
-#
-# Include common rules.
-#
-include $(UTSBASE)/i86pc/Makefile.i86pc
+include $(UTSBASE)/i86pc//Makefile.i86pc
+include $(UTSBASE)/intel/io/vmm/Makefile.vmm
-#
-# Define targets
-#
ALL_TARGET = $(BINARY)
INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
-#
-# Overrides and additions
-#
-
-
-# 3rd party code
-SMOFF += all_func_returns
-
-# needs work
-$(OBJS_DIR)/vmm_sol_dev.o := SMOFF += signed_integer_overflow_check
-
ALL_BUILDS = $(ALL_BUILDSONLY64)
DEF_BUILDS = $(DEF_BUILDSONLY64)
-PRE_INC_PATH = -I$(COMPAT)/bhyve -I$(COMPAT)/bhyve/amd64 \
- -I$(CONTRIB)/bhyve -I$(CONTRIB)/bhyve/amd64
-INC_PATH += -I$(UTSBASE)/i86pc/io/vmm -I$(UTSBASE)/i86pc/io/vmm/io
-AS_INC_PATH += -I$(UTSBASE)/i86pc/io/vmm -I$(OBJS_DIR)
-
-# enable collection of VMM statistics
-CFLAGS += -DVMM_KEEP_STATS
-LDFLAGS += -N misc/acpica -N misc/pcie -N fs/dev
-LDFLAGS += -M $(MAPFILE)
+.PARALLEL: $(OBJECTS)
-OFFSETS_VMX = $(CONF_SRCDIR)/intel/offsets.in
-OFFSETS_SVM = $(CONF_SRCDIR)/amd/offsets.in
-ASSYM_VMX = $(OBJS_DIR)/vmx_assym.h
-ASSYM_SVM = $(OBJS_DIR)/svm_assym.h
-ASSYM_H = $(ASSYM_VMX) $(ASSYM_SVM)
-
-CLEANFILES += $(ASSYM_H)
-
-#
-# Default build targets.
-#
.KEEP_STATE:
def: $(DEF_DEPS)
@@ -86,15 +44,5 @@ clobber: $(CLOBBER_DEPS)
install: $(INSTALL_DEPS)
-#
-# Include common targets.
-#
-include $(UTSBASE)/i86pc/Makefile.targ
-
-$(ASSYM_VMX): $(OFFSETS_VMX) $(GENASSYM)
- $(OFFSETS_CREATE) -I../../i86pc/io/vmm < $(OFFSETS_VMX) >$@
-$(ASSYM_SVM): $(OFFSETS_SVM) $(GENASSYM)
- $(OFFSETS_CREATE) -I../../i86pc/io/vmm < $(OFFSETS_SVM) >$@
-
-$(OBJS_DIR)/vmx_support.o: $(ASSYM_VMX)
-$(OBJS_DIR)/svm_support.o: $(ASSYM_SVM)
+include $(UTSBASE)/i86pc//Makefile.targ
+include $(UTSBASE)/intel/io/vmm/Makefile.rules
diff --git a/usr/src/uts/i86xpv/Makefile.files b/usr/src/uts/i86xpv/Makefile.files
index 4288314e71..5c9acfabed 100644
--- a/usr/src/uts/i86xpv/Makefile.files
+++ b/usr/src/uts/i86xpv/Makefile.files
@@ -95,7 +95,6 @@ CORE_OBJS += \
pci_orion.o \
pmem.o \
ppage.o \
- smt.o \
startup.o \
ssp.o \
xpv_timestamp.o \
diff --git a/usr/src/uts/intel/Makefile.files b/usr/src/uts/intel/Makefile.files
index 7f464e2ec8..fe380ad770 100644
--- a/usr/src/uts/intel/Makefile.files
+++ b/usr/src/uts/intel/Makefile.files
@@ -24,6 +24,7 @@
# Copyright 2019 Joyent, Inc.
# Copyright 2018 Nexenta Systems, Inc.
# Copyright 2019 Peter Tribble.
+# Copyright 2022 Oxide Computer Company
#
#
@@ -100,6 +101,15 @@ CORE_OBJS += \
prmachdep.o
#
+# shared hypervisor functionality
+#
+CORE_OBJS += \
+ hma.o \
+ hma_asm.o \
+ hma_fpu.o \
+ smt.o \
+
+#
# ZFS file system module
#
ZFS_OBJS += \
@@ -358,3 +368,18 @@ ZEN_UDF_OBJS = zen_udf.o
#
IMC_OBJS = imc.o imc_decode.o imc_dump.o
IMCSTUB_OBJS = imcstub.o
+
+#
+# viona (VirtIO-Net Accelerated)
+#
+VIONA_OBJS = \
+ viona_main.o \
+ viona_ring.o \
+ viona_rx.o \
+ viona_tx.o \
+ viona_hook.o
+
+#
+# bhyve PCI-passthru
+#
+PPT_OBJS = ppt.o
diff --git a/usr/src/uts/intel/Makefile.intel b/usr/src/uts/intel/Makefile.intel
index 290eae88ff..6a273e0a27 100644
--- a/usr/src/uts/intel/Makefile.intel
+++ b/usr/src/uts/intel/Makefile.intel
@@ -750,3 +750,13 @@ DRV_KMODS += usmn zen_udf
# Intel Integrated Memory Controller
#
DRV_KMODS += imc imcstub
+
+#
+# VirtIO-Net Accellerated driver (for bhyve)
+#
+DRV_KMODS += viona
+
+#
+# bhyve PCI-passthru
+#
+DRV_KMODS += ppt
diff --git a/usr/src/uts/intel/Makefile.rules b/usr/src/uts/intel/Makefile.rules
index 84ecfad278..1ba8885f73 100644
--- a/usr/src/uts/intel/Makefile.rules
+++ b/usr/src/uts/intel/Makefile.rules
@@ -275,6 +275,10 @@ $(OBJS_DIR)/%.o: $(UTSBASE)/intel/zfs/%.c
$(COMPILE.c) -o $@ $<
$(CTFCONVERT_O)
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/viona/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
#
# krtld compiled into unix
#
diff --git a/usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE b/usr/src/uts/intel/io/viona/THIRDPARTYLICENSE
index 66b39dc950..66b39dc950 100644
--- a/usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE
+++ b/usr/src/uts/intel/io/viona/THIRDPARTYLICENSE
diff --git a/usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE.descrip b/usr/src/uts/intel/io/viona/THIRDPARTYLICENSE.descrip
index 77026fc8a3..77026fc8a3 100644
--- a/usr/src/uts/i86pc/io/viona/THIRDPARTYLICENSE.descrip
+++ b/usr/src/uts/intel/io/viona/THIRDPARTYLICENSE.descrip
diff --git a/usr/src/uts/i86pc/io/viona/viona.conf b/usr/src/uts/intel/io/viona/viona.conf
index e66488531a..e66488531a 100644
--- a/usr/src/uts/i86pc/io/viona/viona.conf
+++ b/usr/src/uts/intel/io/viona/viona.conf
diff --git a/usr/src/uts/i86pc/io/viona/viona.mapfile b/usr/src/uts/intel/io/viona/viona.mapfile
index cece86348c..cece86348c 100644
--- a/usr/src/uts/i86pc/io/viona/viona.mapfile
+++ b/usr/src/uts/intel/io/viona/viona.mapfile
diff --git a/usr/src/uts/i86pc/io/viona/viona_hook.c b/usr/src/uts/intel/io/viona/viona_hook.c
index 4520be04b0..4520be04b0 100644
--- a/usr/src/uts/i86pc/io/viona/viona_hook.c
+++ b/usr/src/uts/intel/io/viona/viona_hook.c
diff --git a/usr/src/uts/i86pc/io/viona/viona_impl.h b/usr/src/uts/intel/io/viona/viona_impl.h
index 760474e78b..760474e78b 100644
--- a/usr/src/uts/i86pc/io/viona/viona_impl.h
+++ b/usr/src/uts/intel/io/viona/viona_impl.h
diff --git a/usr/src/uts/i86pc/io/viona/viona_main.c b/usr/src/uts/intel/io/viona/viona_main.c
index a34196ba1a..a34196ba1a 100644
--- a/usr/src/uts/i86pc/io/viona/viona_main.c
+++ b/usr/src/uts/intel/io/viona/viona_main.c
diff --git a/usr/src/uts/i86pc/io/viona/viona_ring.c b/usr/src/uts/intel/io/viona/viona_ring.c
index 2d847dda09..2d847dda09 100644
--- a/usr/src/uts/i86pc/io/viona/viona_ring.c
+++ b/usr/src/uts/intel/io/viona/viona_ring.c
diff --git a/usr/src/uts/i86pc/io/viona/viona_rx.c b/usr/src/uts/intel/io/viona/viona_rx.c
index 2fbf6be972..2fbf6be972 100644
--- a/usr/src/uts/i86pc/io/viona/viona_rx.c
+++ b/usr/src/uts/intel/io/viona/viona_rx.c
diff --git a/usr/src/uts/i86pc/io/viona/viona_tx.c b/usr/src/uts/intel/io/viona/viona_tx.c
index 424deee498..424deee498 100644
--- a/usr/src/uts/i86pc/io/viona/viona_tx.c
+++ b/usr/src/uts/intel/io/viona/viona_tx.c
diff --git a/usr/src/uts/intel/io/vmm/Makefile.rules b/usr/src/uts/intel/io/vmm/Makefile.rules
new file mode 100644
index 0000000000..1551659cc4
--- /dev/null
+++ b/usr/src/uts/intel/io/vmm/Makefile.rules
@@ -0,0 +1,48 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2019 Joyent, Inc.
+# Copyright 2022 Oxide Computer Company
+#
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/amd/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/intel/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/io/%.c
+ $(COMPILE.c) -o $@ $<
+ $(CTFCONVERT_O)
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/%.s
+ $(COMPILE.s) -o $@ $<
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/intel/%.s
+ $(COMPILE.s) -o $@ $<
+
+$(OBJS_DIR)/%.o: $(UTSBASE)/intel/io/vmm/amd/%.s
+ $(COMPILE.s) -o $@ $<
+
+$(ASSYM_VMX): $(OFFSETS_VMX) $(GENASSYM)
+ $(OFFSETS_CREATE) -I$(UTSBASE)/intel/io/vmm < $(OFFSETS_VMX) >$@
+$(ASSYM_SVM): $(OFFSETS_SVM) $(GENASSYM)
+ $(OFFSETS_CREATE) -I$(UTSBASE)/intel/io/vmm < $(OFFSETS_SVM) >$@
+
+$(OBJS_DIR)/vmx_support.o: $(ASSYM_VMX)
+$(OBJS_DIR)/svm_support.o: $(ASSYM_SVM)
diff --git a/usr/src/uts/intel/io/vmm/Makefile.vmm b/usr/src/uts/intel/io/vmm/Makefile.vmm
new file mode 100644
index 0000000000..920da5dee6
--- /dev/null
+++ b/usr/src/uts/intel/io/vmm/Makefile.vmm
@@ -0,0 +1,85 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2019 Joyent, Inc.
+# Copyright 2022 Oxide Computer Company
+#
+
+CONF_SRCDIR = $(UTSBASE)/intel/io/vmm
+MAPFILE = $(UTSBASE)/intel/io/vmm/vmm.mapfile
+
+PRE_INC_PATH = \
+ -I$(COMPAT)/bhyve \
+ -I$(COMPAT)/bhyve/amd64 \
+ -I$(CONTRIB)/bhyve \
+ -I$(CONTRIB)/bhyve/amd64
+
+INC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(UTSBASE)/intel/io/vmm/io
+AS_INC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(OBJS_DIR)
+
+# enable collection of VMM statistics
+CFLAGS += -DVMM_KEEP_STATS
+
+LDFLAGS += -N misc/acpica -N misc/pcie -N fs/dev
+LDFLAGS += -M $(MAPFILE)
+
+# 3rd party code
+SMOFF += all_func_returns
+
+# needs work
+$(OBJS_DIR)/vmm_sol_dev.o := SMOFF += signed_integer_overflow_check
+
+OFFSETS_VMX = $(CONF_SRCDIR)/intel/offsets.in
+OFFSETS_SVM = $(CONF_SRCDIR)/amd/offsets.in
+ASSYM_VMX = $(OBJS_DIR)/vmx_assym.h
+ASSYM_SVM = $(OBJS_DIR)/svm_assym.h
+
+CLEANFILES += $(ASSYM_VMX) $(ASSYM_SVM)
+
+VMM_OBJS = \
+ vmm.o \
+ vmm_sol_dev.o \
+ vmm_host.o \
+ vmm_instruction_emul.o \
+ vmm_ioport.o \
+ vmm_lapic.o \
+ vmm_stat.o \
+ vmm_util.o \
+ x86.o \
+ iommu.o \
+ vatpic.o \
+ vatpit.o \
+ vhpet.o \
+ vioapic.o \
+ vlapic.o \
+ vrtc.o \
+ vpmtmr.o \
+ vmcs.o \
+ vmx_msr.o \
+ vmx.o \
+ vmx_support.o \
+ vtd.o \
+ vtd_sol.o \
+ svm.o \
+ svm_msr.o \
+ vmcb.o \
+ svm_support.o \
+ amdv.o \
+ vmm_gpt.o \
+ seg_vmm.o \
+ vmm_reservoir.o \
+ vmm_sol_glue.o \
+ vmm_sol_ept.o \
+ vmm_sol_rvi.o \
+ vmm_support.o \
+ vmm_vm.o \
+ vmm_zsd.o
diff --git a/usr/src/uts/i86pc/io/vmm/README.license b/usr/src/uts/intel/io/vmm/README.license
index 55ad5d596d..55ad5d596d 100644
--- a/usr/src/uts/i86pc/io/vmm/README.license
+++ b/usr/src/uts/intel/io/vmm/README.license
diff --git a/usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE b/usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE
index 66b39dc950..66b39dc950 100644
--- a/usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE
+++ b/usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE
diff --git a/usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE.descrip b/usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE.descrip
index 77026fc8a3..77026fc8a3 100644
--- a/usr/src/uts/i86pc/io/vmm/THIRDPARTYLICENSE.descrip
+++ b/usr/src/uts/intel/io/vmm/THIRDPARTYLICENSE.descrip
diff --git a/usr/src/uts/i86pc/io/vmm/amd/amdiommu.c b/usr/src/uts/intel/io/vmm/amd/amdiommu.c
index 4dd13b0195..4dd13b0195 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/amdiommu.c
+++ b/usr/src/uts/intel/io/vmm/amd/amdiommu.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/amdv.c b/usr/src/uts/intel/io/vmm/amd/amdv.c
index b056ab86d2..b056ab86d2 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/amdv.c
+++ b/usr/src/uts/intel/io/vmm/amd/amdv.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/amdvi_hw.c b/usr/src/uts/intel/io/vmm/amd/amdvi_hw.c
index 33a2557492..33a2557492 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/amdvi_hw.c
+++ b/usr/src/uts/intel/io/vmm/amd/amdvi_hw.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/amdvi_priv.h b/usr/src/uts/intel/io/vmm/amd/amdvi_priv.h
index 5b66c6fa4b..5b66c6fa4b 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/amdvi_priv.h
+++ b/usr/src/uts/intel/io/vmm/amd/amdvi_priv.h
diff --git a/usr/src/uts/i86pc/io/vmm/amd/ivrs_drv.c b/usr/src/uts/intel/io/vmm/amd/ivrs_drv.c
index 6721867dbe..6721867dbe 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/ivrs_drv.c
+++ b/usr/src/uts/intel/io/vmm/amd/ivrs_drv.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/offsets.in b/usr/src/uts/intel/io/vmm/amd/offsets.in
index ad4ee7155a..ad4ee7155a 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/offsets.in
+++ b/usr/src/uts/intel/io/vmm/amd/offsets.in
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm.c b/usr/src/uts/intel/io/vmm/amd/svm.c
index 11c1e9c249..11c1e9c249 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm.c
+++ b/usr/src/uts/intel/io/vmm/amd/svm.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm.h b/usr/src/uts/intel/io/vmm/amd/svm.h
index 91e8419789..91e8419789 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm.h
+++ b/usr/src/uts/intel/io/vmm/amd/svm.h
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm_msr.c b/usr/src/uts/intel/io/vmm/amd/svm_msr.c
index 4fa7826fbf..4fa7826fbf 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm_msr.c
+++ b/usr/src/uts/intel/io/vmm/amd/svm_msr.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm_msr.h b/usr/src/uts/intel/io/vmm/amd/svm_msr.h
index 8f0d14e6b9..8f0d14e6b9 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm_msr.h
+++ b/usr/src/uts/intel/io/vmm/amd/svm_msr.h
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm_softc.h b/usr/src/uts/intel/io/vmm/amd/svm_softc.h
index adf9bb8ddd..adf9bb8ddd 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm_softc.h
+++ b/usr/src/uts/intel/io/vmm/amd/svm_softc.h
diff --git a/usr/src/uts/i86pc/io/vmm/amd/svm_support.s b/usr/src/uts/intel/io/vmm/amd/svm_support.s
index 278dd5c5cb..278dd5c5cb 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/svm_support.s
+++ b/usr/src/uts/intel/io/vmm/amd/svm_support.s
diff --git a/usr/src/uts/i86pc/io/vmm/amd/vmcb.c b/usr/src/uts/intel/io/vmm/amd/vmcb.c
index 5be5240129..5be5240129 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/vmcb.c
+++ b/usr/src/uts/intel/io/vmm/amd/vmcb.c
diff --git a/usr/src/uts/i86pc/io/vmm/amd/vmcb.h b/usr/src/uts/intel/io/vmm/amd/vmcb.h
index 15b076b5bb..15b076b5bb 100644
--- a/usr/src/uts/i86pc/io/vmm/amd/vmcb.h
+++ b/usr/src/uts/intel/io/vmm/amd/vmcb.h
diff --git a/usr/src/uts/i86pc/io/vmm/intel/offsets.in b/usr/src/uts/intel/io/vmm/intel/offsets.in
index f467e7b1ca..f467e7b1ca 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/offsets.in
+++ b/usr/src/uts/intel/io/vmm/intel/offsets.in
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmcs.c b/usr/src/uts/intel/io/vmm/intel/vmcs.c
index 7fabba79f7..7fabba79f7 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmcs.c
+++ b/usr/src/uts/intel/io/vmm/intel/vmcs.c
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmcs.h b/usr/src/uts/intel/io/vmm/intel/vmcs.h
index d61244baee..d61244baee 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmcs.h
+++ b/usr/src/uts/intel/io/vmm/intel/vmcs.h
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx.c b/usr/src/uts/intel/io/vmm/intel/vmx.c
index a44c90dcbe..a44c90dcbe 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx.c
+++ b/usr/src/uts/intel/io/vmm/intel/vmx.c
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx.h b/usr/src/uts/intel/io/vmm/intel/vmx.h
index 197ca1341d..197ca1341d 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx.h
+++ b/usr/src/uts/intel/io/vmm/intel/vmx.h
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_controls.h b/usr/src/uts/intel/io/vmm/intel/vmx_controls.h
index ae6ff9b5aa..ae6ff9b5aa 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_controls.h
+++ b/usr/src/uts/intel/io/vmm/intel/vmx_controls.h
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c b/usr/src/uts/intel/io/vmm/intel/vmx_msr.c
index f9c292f659..f9c292f659 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.c
+++ b/usr/src/uts/intel/io/vmm/intel/vmx_msr.c
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h b/usr/src/uts/intel/io/vmm/intel/vmx_msr.h
index 551f2d659a..551f2d659a 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_msr.h
+++ b/usr/src/uts/intel/io/vmm/intel/vmx_msr.h
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vmx_support.s b/usr/src/uts/intel/io/vmm/intel/vmx_support.s
index 60f761d652..60f761d652 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vmx_support.s
+++ b/usr/src/uts/intel/io/vmm/intel/vmx_support.s
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vtd.c b/usr/src/uts/intel/io/vmm/intel/vtd.c
index d32143aa07..d32143aa07 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vtd.c
+++ b/usr/src/uts/intel/io/vmm/intel/vtd.c
diff --git a/usr/src/uts/i86pc/io/vmm/intel/vtd_sol.c b/usr/src/uts/intel/io/vmm/intel/vtd_sol.c
index 26c6c5b024..26c6c5b024 100644
--- a/usr/src/uts/i86pc/io/vmm/intel/vtd_sol.c
+++ b/usr/src/uts/intel/io/vmm/intel/vtd_sol.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/iommu.c b/usr/src/uts/intel/io/vmm/io/iommu.c
index 3ebd394b99..3ebd394b99 100644
--- a/usr/src/uts/i86pc/io/vmm/io/iommu.c
+++ b/usr/src/uts/intel/io/vmm/io/iommu.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/iommu.h b/usr/src/uts/intel/io/vmm/io/iommu.h
index a5e9448b4e..a5e9448b4e 100644
--- a/usr/src/uts/i86pc/io/vmm/io/iommu.h
+++ b/usr/src/uts/intel/io/vmm/io/iommu.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/ppt.c b/usr/src/uts/intel/io/vmm/io/ppt.c
index e79842d8a8..e79842d8a8 100644
--- a/usr/src/uts/i86pc/io/vmm/io/ppt.c
+++ b/usr/src/uts/intel/io/vmm/io/ppt.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/ppt.conf b/usr/src/uts/intel/io/vmm/io/ppt.conf
index 0485580bb8..0485580bb8 100644
--- a/usr/src/uts/i86pc/io/vmm/io/ppt.conf
+++ b/usr/src/uts/intel/io/vmm/io/ppt.conf
diff --git a/usr/src/uts/i86pc/io/vmm/io/ppt.h b/usr/src/uts/intel/io/vmm/io/ppt.h
index f69a352fe0..f69a352fe0 100644
--- a/usr/src/uts/i86pc/io/vmm/io/ppt.h
+++ b/usr/src/uts/intel/io/vmm/io/ppt.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/ppt.mapfile b/usr/src/uts/intel/io/vmm/io/ppt.mapfile
index 42d92f0066..42d92f0066 100644
--- a/usr/src/uts/i86pc/io/vmm/io/ppt.mapfile
+++ b/usr/src/uts/intel/io/vmm/io/ppt.mapfile
diff --git a/usr/src/uts/i86pc/io/vmm/io/vatpic.c b/usr/src/uts/intel/io/vmm/io/vatpic.c
index aa3ae4186d..aa3ae4186d 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vatpic.c
+++ b/usr/src/uts/intel/io/vmm/io/vatpic.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vatpic.h b/usr/src/uts/intel/io/vmm/io/vatpic.h
index 4ed51a06ed..4ed51a06ed 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vatpic.h
+++ b/usr/src/uts/intel/io/vmm/io/vatpic.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vatpit.c b/usr/src/uts/intel/io/vmm/io/vatpit.c
index 9616444d25..9616444d25 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vatpit.c
+++ b/usr/src/uts/intel/io/vmm/io/vatpit.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vatpit.h b/usr/src/uts/intel/io/vmm/io/vatpit.h
index bee3a88293..bee3a88293 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vatpit.h
+++ b/usr/src/uts/intel/io/vmm/io/vatpit.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vhpet.c b/usr/src/uts/intel/io/vmm/io/vhpet.c
index d9515d0cc3..d9515d0cc3 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vhpet.c
+++ b/usr/src/uts/intel/io/vmm/io/vhpet.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vhpet.h b/usr/src/uts/intel/io/vmm/io/vhpet.h
index 0ea0a6b15a..0ea0a6b15a 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vhpet.h
+++ b/usr/src/uts/intel/io/vmm/io/vhpet.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vioapic.c b/usr/src/uts/intel/io/vmm/io/vioapic.c
index 90dedb9ac1..90dedb9ac1 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vioapic.c
+++ b/usr/src/uts/intel/io/vmm/io/vioapic.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vioapic.h b/usr/src/uts/intel/io/vmm/io/vioapic.h
index 3c74bd5170..3c74bd5170 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vioapic.h
+++ b/usr/src/uts/intel/io/vmm/io/vioapic.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vlapic.c b/usr/src/uts/intel/io/vmm/io/vlapic.c
index 1cd6c72aaf..1cd6c72aaf 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vlapic.c
+++ b/usr/src/uts/intel/io/vmm/io/vlapic.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vlapic.h b/usr/src/uts/intel/io/vmm/io/vlapic.h
index dd1970cb6a..dd1970cb6a 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vlapic.h
+++ b/usr/src/uts/intel/io/vmm/io/vlapic.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vlapic_priv.h b/usr/src/uts/intel/io/vmm/io/vlapic_priv.h
index 7b12b60f51..7b12b60f51 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vlapic_priv.h
+++ b/usr/src/uts/intel/io/vmm/io/vlapic_priv.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vpmtmr.c b/usr/src/uts/intel/io/vmm/io/vpmtmr.c
index 9a7d7d4253..9a7d7d4253 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vpmtmr.c
+++ b/usr/src/uts/intel/io/vmm/io/vpmtmr.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vpmtmr.h b/usr/src/uts/intel/io/vmm/io/vpmtmr.h
index 0451da0350..0451da0350 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vpmtmr.h
+++ b/usr/src/uts/intel/io/vmm/io/vpmtmr.h
diff --git a/usr/src/uts/i86pc/io/vmm/io/vrtc.c b/usr/src/uts/intel/io/vmm/io/vrtc.c
index 185cbc100a..185cbc100a 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vrtc.c
+++ b/usr/src/uts/intel/io/vmm/io/vrtc.c
diff --git a/usr/src/uts/i86pc/io/vmm/io/vrtc.h b/usr/src/uts/intel/io/vmm/io/vrtc.h
index d3140c1308..d3140c1308 100644
--- a/usr/src/uts/i86pc/io/vmm/io/vrtc.h
+++ b/usr/src/uts/intel/io/vmm/io/vrtc.h
diff --git a/usr/src/uts/i86pc/io/vmm/seg_vmm.c b/usr/src/uts/intel/io/vmm/seg_vmm.c
index 863b283418..863b283418 100644
--- a/usr/src/uts/i86pc/io/vmm/seg_vmm.c
+++ b/usr/src/uts/intel/io/vmm/seg_vmm.c
diff --git a/usr/src/uts/i86pc/io/vmm/sys/seg_vmm.h b/usr/src/uts/intel/io/vmm/sys/seg_vmm.h
index 5ba0dad5c3..5ba0dad5c3 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/seg_vmm.h
+++ b/usr/src/uts/intel/io/vmm/sys/seg_vmm.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_gpt.h b/usr/src/uts/intel/io/vmm/sys/vmm_gpt.h
index a425fb53ec..a425fb53ec 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_gpt.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_gpt.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_impl.h b/usr/src/uts/intel/io/vmm/sys/vmm_impl.h
index 2b6f41ec54..2b6f41ec54 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_impl.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_impl.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_instruction_emul.h b/usr/src/uts/intel/io/vmm/sys/vmm_instruction_emul.h
index 4680c86a56..4680c86a56 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_instruction_emul.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_instruction_emul.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_kernel.h b/usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
index c84b33dc2e..c84b33dc2e 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_kernel.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_reservoir.h b/usr/src/uts/intel/io/vmm/sys/vmm_reservoir.h
index b8215ce654..b8215ce654 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_reservoir.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_reservoir.h
diff --git a/usr/src/uts/i86pc/io/vmm/sys/vmm_vm.h b/usr/src/uts/intel/io/vmm/sys/vmm_vm.h
index 57d0ec8b00..57d0ec8b00 100644
--- a/usr/src/uts/i86pc/io/vmm/sys/vmm_vm.h
+++ b/usr/src/uts/intel/io/vmm/sys/vmm_vm.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm.c b/usr/src/uts/intel/io/vmm/vmm.c
index be181781de..be181781de 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm.c
+++ b/usr/src/uts/intel/io/vmm/vmm.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm.conf b/usr/src/uts/intel/io/vmm/vmm.conf
index 8833076014..8833076014 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm.conf
+++ b/usr/src/uts/intel/io/vmm/vmm.conf
diff --git a/usr/src/uts/i86pc/io/vmm/vmm.mapfile b/usr/src/uts/intel/io/vmm/vmm.mapfile
index fb1c9366de..fb1c9366de 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm.mapfile
+++ b/usr/src/uts/intel/io/vmm/vmm.mapfile
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_gpt.c b/usr/src/uts/intel/io/vmm/vmm_gpt.c
index 586b994d56..586b994d56 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_gpt.c
+++ b/usr/src/uts/intel/io/vmm/vmm_gpt.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_host.c b/usr/src/uts/intel/io/vmm/vmm_host.c
index 2c1897b18f..2c1897b18f 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_host.c
+++ b/usr/src/uts/intel/io/vmm/vmm_host.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_host.h b/usr/src/uts/intel/io/vmm/vmm_host.h
index c5688f108a..c5688f108a 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_host.h
+++ b/usr/src/uts/intel/io/vmm/vmm_host.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_instruction_emul.c b/usr/src/uts/intel/io/vmm/vmm_instruction_emul.c
index 06baec53bf..06baec53bf 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_instruction_emul.c
+++ b/usr/src/uts/intel/io/vmm/vmm_instruction_emul.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_ioport.c b/usr/src/uts/intel/io/vmm/vmm_ioport.c
index 3826dbe8b5..3826dbe8b5 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_ioport.c
+++ b/usr/src/uts/intel/io/vmm/vmm_ioport.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_ioport.h b/usr/src/uts/intel/io/vmm/vmm_ioport.h
index 254ba002f2..254ba002f2 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_ioport.h
+++ b/usr/src/uts/intel/io/vmm/vmm_ioport.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_ktr.h b/usr/src/uts/intel/io/vmm/vmm_ktr.h
index 2e706ffc57..2e706ffc57 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_ktr.h
+++ b/usr/src/uts/intel/io/vmm/vmm_ktr.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_lapic.c b/usr/src/uts/intel/io/vmm/vmm_lapic.c
index 8ef1c851d0..8ef1c851d0 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_lapic.c
+++ b/usr/src/uts/intel/io/vmm/vmm_lapic.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_lapic.h b/usr/src/uts/intel/io/vmm/vmm_lapic.h
index 037b15a342..037b15a342 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_lapic.h
+++ b/usr/src/uts/intel/io/vmm/vmm_lapic.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_reservoir.c b/usr/src/uts/intel/io/vmm/vmm_reservoir.c
index 1bb64a4851..1bb64a4851 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_reservoir.c
+++ b/usr/src/uts/intel/io/vmm/vmm_reservoir.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_sol_dev.c b/usr/src/uts/intel/io/vmm/vmm_sol_dev.c
index d66778c55a..eacad25e5d 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_sol_dev.c
+++ b/usr/src/uts/intel/io/vmm/vmm_sol_dev.c
@@ -86,7 +86,7 @@ static const char *vmmdev_hvm_name = "bhyve";
/* For sdev plugin (/dev) */
#define VMM_SDEV_ROOT "/dev/vmm"
-/* From uts/i86pc/io/vmm/intel/vmx.c */
+/* From uts/intel/io/vmm/intel/vmx.c */
extern int vmx_x86_supported(const char **);
/* Holds and hooks from drivers external to vmm */
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_sol_ept.c b/usr/src/uts/intel/io/vmm/vmm_sol_ept.c
index fde4a030ce..fde4a030ce 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_sol_ept.c
+++ b/usr/src/uts/intel/io/vmm/vmm_sol_ept.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_sol_glue.c b/usr/src/uts/intel/io/vmm/vmm_sol_glue.c
index 132d5dc87f..132d5dc87f 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_sol_glue.c
+++ b/usr/src/uts/intel/io/vmm/vmm_sol_glue.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_sol_rvi.c b/usr/src/uts/intel/io/vmm/vmm_sol_rvi.c
index 8b45782d25..8b45782d25 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_sol_rvi.c
+++ b/usr/src/uts/intel/io/vmm/vmm_sol_rvi.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_stat.c b/usr/src/uts/intel/io/vmm/vmm_stat.c
index da38bb7de5..da38bb7de5 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_stat.c
+++ b/usr/src/uts/intel/io/vmm/vmm_stat.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_stat.h b/usr/src/uts/intel/io/vmm/vmm_stat.h
index 2975a4a914..2975a4a914 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_stat.h
+++ b/usr/src/uts/intel/io/vmm/vmm_stat.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_support.s b/usr/src/uts/intel/io/vmm/vmm_support.s
index 4bc973468a..4bc973468a 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_support.s
+++ b/usr/src/uts/intel/io/vmm/vmm_support.s
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_util.c b/usr/src/uts/intel/io/vmm/vmm_util.c
index 05dfd08aaa..05dfd08aaa 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_util.c
+++ b/usr/src/uts/intel/io/vmm/vmm_util.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_util.h b/usr/src/uts/intel/io/vmm/vmm_util.h
index ff93ce5733..ff93ce5733 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_util.h
+++ b/usr/src/uts/intel/io/vmm/vmm_util.h
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_vm.c b/usr/src/uts/intel/io/vmm/vmm_vm.c
index c87c8a62d3..c87c8a62d3 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_vm.c
+++ b/usr/src/uts/intel/io/vmm/vmm_vm.c
diff --git a/usr/src/uts/i86pc/io/vmm/vmm_zsd.c b/usr/src/uts/intel/io/vmm/vmm_zsd.c
index d396c89e58..d396c89e58 100644
--- a/usr/src/uts/i86pc/io/vmm/vmm_zsd.c
+++ b/usr/src/uts/intel/io/vmm/vmm_zsd.c
diff --git a/usr/src/uts/i86pc/io/vmm/x86.c b/usr/src/uts/intel/io/vmm/x86.c
index 187c89afd0..187c89afd0 100644
--- a/usr/src/uts/i86pc/io/vmm/x86.c
+++ b/usr/src/uts/intel/io/vmm/x86.c
diff --git a/usr/src/uts/i86pc/io/vmm/x86.h b/usr/src/uts/intel/io/vmm/x86.h
index f3459e4f8a..f3459e4f8a 100644
--- a/usr/src/uts/i86pc/io/vmm/x86.h
+++ b/usr/src/uts/intel/io/vmm/x86.h
diff --git a/usr/src/uts/i86pc/os/hma.c b/usr/src/uts/intel/os/hma.c
index 215243ea98..215243ea98 100644
--- a/usr/src/uts/i86pc/os/hma.c
+++ b/usr/src/uts/intel/os/hma.c
diff --git a/usr/src/uts/i86pc/os/hma_fpu.c b/usr/src/uts/intel/os/hma_fpu.c
index 138af7a32a..138af7a32a 100644
--- a/usr/src/uts/i86pc/os/hma_fpu.c
+++ b/usr/src/uts/intel/os/hma_fpu.c
diff --git a/usr/src/uts/i86pc/os/smt.c b/usr/src/uts/intel/os/smt.c
index 7ba9d3025d..7ba9d3025d 100644
--- a/usr/src/uts/i86pc/os/smt.c
+++ b/usr/src/uts/intel/os/smt.c
diff --git a/usr/src/uts/i86pc/ppt/Makefile b/usr/src/uts/intel/ppt/Makefile
index a1490bc2aa..fe9e0026c1 100644
--- a/usr/src/uts/i86pc/ppt/Makefile
+++ b/usr/src/uts/intel/ppt/Makefile
@@ -12,54 +12,41 @@
#
# Copyright 2013 Pluribus Networks Inc.
# Copyright 2019 Joyent, Inc.
+# Copyright 2022 Oxide Computer Company
#
-#
-# Path to the base of the uts directory tree (usually /usr/src/uts).
-#
UTSBASE = ../..
-#
-# Define the module and object file sets.
-#
MODULE = ppt
OBJECTS = $(PPT_OBJS:%=$(OBJS_DIR)/%)
ROOTMODULE = $(USR_DRV_DIR)/$(MODULE)
-CONF_SRCDIR = $(UTSBASE)/i86pc/io/vmm/io
-MAPFILE = $(UTSBASE)/i86pc/io/vmm/io/ppt.mapfile
+CONF_SRCDIR = $(UTSBASE)/intel/io/vmm/io
+MAPFILE = $(UTSBASE)/intel/io/vmm/io/ppt.mapfile
-#
-# Include common rules.
-#
-include $(UTSBASE)/i86pc/Makefile.i86pc
+include $(UTSBASE)/intel/Makefile.intel
-#
-# Define targets
-#
ALL_TARGET = $(BINARY)
INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
-
-#
-# Overrides and additions
-#
ALL_BUILDS = $(ALL_BUILDSONLY64)
DEF_BUILDS = $(DEF_BUILDSONLY64)
-PRE_INC_PATH = -I$(COMPAT)/bhyve -I$(COMPAT)/bhyve/amd64 \
- -I$(CONTRIB)/bhyve -I$(CONTRIB)/bhyve/amd64
-INC_PATH += -I$(UTSBASE)/i86pc/io/vmm -I$(UTSBASE)/i86pc/io/vmm/io
-AS_INC_PATH += -I$(UTSBASE)/i86pc/io/vmm -I$(OBJS_DIR)
-LDFLAGS += -N drv/vmm -N misc/pcie
-LDFLAGS += -M $(MAPFILE)
+PRE_INC_PATH = \
+ -I$(COMPAT)/bhyve \
+ -I$(COMPAT)/bhyve/amd64 \
+ -I$(CONTRIB)/bhyve \
+ -I$(CONTRIB)/bhyve/amd64
+
+INC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(UTSBASE)/intel/io/vmm/io
+AS_INC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(OBJS_DIR)
+
+LDFLAGS += -N drv/vmm -N misc/pcie
+LDFLAGS += -M $(MAPFILE)
$(OBJS_DIR)/ppt.o := CERRWARN += -_gcc=-Wno-unused-variable
# needs work
SMOFF += all_func_returns
-#
-# Default build targets.
-#
.KEEP_STATE:
def: $(DEF_DEPS)
@@ -72,7 +59,5 @@ clobber: $(CLOBBER_DEPS)
install: $(INSTALL_DEPS)
-#
-# Include common targets.
-#
-include $(UTSBASE)/i86pc/Makefile.targ
+include $(UTSBASE)/intel/Makefile.targ
+include $(UTSBASE)/intel/io/vmm/Makefile.rules
diff --git a/usr/src/uts/intel/sys/Makefile b/usr/src/uts/intel/sys/Makefile
index 5cfbdec4fc..0a6af2de2d 100644
--- a/usr/src/uts/intel/sys/Makefile
+++ b/usr/src/uts/intel/sys/Makefile
@@ -91,6 +91,12 @@ HDRS = \
x86_archext.h \
xen_errno.h
+
+# Headers shared with the various machine architectures are installed via
+# different means, but are checked here, since it is a common point.
+include Makefile.psm
+CHECK_ONLY_HDRS = $(PSM_SHARED_HDRS)
+
ROOTDIR= $(ROOT)/usr/include/sys
SCSIDIR= $(ROOTDIR)/scsi
SCSIDIRS= $(SCSIDIR) $(SCSIDIR)/conf $(SCSIDIR)/generic \
@@ -100,8 +106,9 @@ ROOTDIRS= $(ROOTDIR) $(ROOTFSDIR)
ROOTHDRS= $(HDRS:%=$(ROOTDIR)/%)
-CHECKHDRS= \
- $(HDRS:%.h=%.check)
+CHECKHDRS = \
+ $(HDRS:%.h=%.check) \
+ $(CHECK_ONLY_HDRS:%.h=%.check) \
# install rules
$(ROOTDIR)/%: %
diff --git a/usr/src/uts/intel/sys/Makefile.psm b/usr/src/uts/intel/sys/Makefile.psm
new file mode 100644
index 0000000000..8fecc14f49
--- /dev/null
+++ b/usr/src/uts/intel/sys/Makefile.psm
@@ -0,0 +1,27 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2022 Oxide Computer Company
+#
+
+# HMA and SMT-exclusion headers are used by and exposed (via system-header) by
+# the various machine architectures.
+
+PSM_SHARED_HDRS = \
+ hma.h \
+ smt.h \
+ smt_machcpu.h
+
+PSM_SHARED_HDR_DIR = $(UTSBASE)/intel/sys
+
+$(USR_PSM_ISYS_DIR)/%: $(PSM_SHARED_HDR_DIR)/% $(USR_PSM_ISYS_DIR)
+ $(INS.file)
diff --git a/usr/src/uts/i86pc/sys/hma.h b/usr/src/uts/intel/sys/hma.h
index e15cd60d5e..e15cd60d5e 100644
--- a/usr/src/uts/i86pc/sys/hma.h
+++ b/usr/src/uts/intel/sys/hma.h
diff --git a/usr/src/uts/i86pc/sys/ppt_dev.h b/usr/src/uts/intel/sys/ppt_dev.h
index a7b65ad0dd..a7b65ad0dd 100644
--- a/usr/src/uts/i86pc/sys/ppt_dev.h
+++ b/usr/src/uts/intel/sys/ppt_dev.h
diff --git a/usr/src/uts/i86pc/sys/smt.h b/usr/src/uts/intel/sys/smt.h
index f539d13799..f539d13799 100644
--- a/usr/src/uts/i86pc/sys/smt.h
+++ b/usr/src/uts/intel/sys/smt.h
diff --git a/usr/src/uts/intel/sys/smt_machcpu.h b/usr/src/uts/intel/sys/smt_machcpu.h
new file mode 100644
index 0000000000..a8fcd8621b
--- /dev/null
+++ b/usr/src/uts/intel/sys/smt_machcpu.h
@@ -0,0 +1,44 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright 2019 Joyent, Inc.
+ * Copyright 2022 Oxide Computer Company
+ */
+
+#ifndef _SYS_SMT_MACHCPU_H
+#define _SYS_SMT_MACHCPU_H
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The SMT exclusion logic requires `struct cpu_smt` be present in
+ * `struct machcpu` as the field `mcpu_smt`. It is defined here, on its own, so
+ * it may be easily included by the relevant machine architecture(s).
+ */
+typedef struct cpu_smt {
+ lock_t cs_lock;
+ char cs_pad[56];
+ struct cpu *cs_sib;
+ volatile uint64_t cs_intr_depth;
+ volatile uint64_t cs_state;
+ volatile uint64_t cs_sibstate;
+} cpu_smt_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_SMT_MACHCPU_H */
diff --git a/usr/src/uts/i86pc/sys/viona_io.h b/usr/src/uts/intel/sys/viona_io.h
index 46cc72eb06..46cc72eb06 100644
--- a/usr/src/uts/i86pc/sys/viona_io.h
+++ b/usr/src/uts/intel/sys/viona_io.h
diff --git a/usr/src/uts/i86pc/sys/vmm.h b/usr/src/uts/intel/sys/vmm.h
index e58d63761e..e58d63761e 100644
--- a/usr/src/uts/i86pc/sys/vmm.h
+++ b/usr/src/uts/intel/sys/vmm.h
diff --git a/usr/src/uts/i86pc/sys/vmm_dev.h b/usr/src/uts/intel/sys/vmm_dev.h
index 027a7da214..027a7da214 100644
--- a/usr/src/uts/i86pc/sys/vmm_dev.h
+++ b/usr/src/uts/intel/sys/vmm_dev.h
diff --git a/usr/src/uts/i86pc/sys/vmm_drv.h b/usr/src/uts/intel/sys/vmm_drv.h
index 0b7f622e53..0b7f622e53 100644
--- a/usr/src/uts/i86pc/sys/vmm_drv.h
+++ b/usr/src/uts/intel/sys/vmm_drv.h
diff --git a/usr/src/uts/i86pc/viona/Makefile b/usr/src/uts/intel/viona/Makefile
index f77eba07ca..a09dbbe9e9 100644
--- a/usr/src/uts/i86pc/viona/Makefile
+++ b/usr/src/uts/intel/viona/Makefile
@@ -12,37 +12,22 @@
#
# Copyright 2013 Pluribus Networks Inc.
# Copyright 2019 Joyent, Inc.
+# Copyright 2022 Oxide Computer Company
#
-#
-# Path to the base of the uts directory tree (usually /usr/src/uts).
-#
UTSBASE = ../..
-#
-# Define the module and object file sets.
-#
MODULE = viona
OBJECTS = $(VIONA_OBJS:%=$(OBJS_DIR)/%)
ROOTMODULE = $(USR_DRV_DIR)/$(MODULE)
-CONF_SRCDIR = $(UTSBASE)/i86pc/io/viona
-MAPFILE = $(UTSBASE)/i86pc/io/viona/viona.mapfile
+CONF_SRCDIR = $(UTSBASE)/intel/io/viona
+MAPFILE = $(UTSBASE)/intel/io/viona/viona.mapfile
-#
-# Include common rules.
-#
-include $(UTSBASE)/i86pc/Makefile.i86pc
+include $(UTSBASE)/intel/Makefile.intel
-#
-# Define targets
-#
ALL_TARGET = $(BINARY) $(SRC_CONFILE)
INSTALL_TARGET = $(BINARY) $(ROOTMODULE) $(ROOT_CONFFILE)
-#
-# Overrides
-#
-
# needs work
SMOFF += all_func_returns
@@ -54,9 +39,6 @@ LDFLAGS += -Ndrv/dld -Nmisc/mac -Nmisc/dls -Ndrv/vmm -Nmisc/neti
LDFLAGS += -Nmisc/hook
LDFLAGS += -M $(MAPFILE)
-#
-# Default build targets.
-#
.KEEP_STATE:
def: $(DEF_DEPS)
@@ -69,7 +51,4 @@ clobber: $(CLOBBER_DEPS)
install: $(INSTALL_DEPS)
-#
-# Include common targets.
-#
-include $(UTSBASE)/i86pc/Makefile.targ
+include $(UTSBASE)/intel/Makefile.targ