freebsd-dev/sys/amd64/vmm
Ka Ho Ng b5c74dfd64 vmm: Fix AMD-vi using wrong rid range
The ACPI parsing code around rid range was wrong on assuming there is
only one pair of start/end device id range. Besides, ivhd_dev_parse()
never work as supposed. The start/end rid info was always zero.

Restructure the code to build dynamic-sized tables for each IOMMU softc
holding device entries. The device entries are enumerated to find a
suitable IOMMU unit. Operations on devices not governed (e.g. the IOMMU
unit itself) are no-op from now on. There are also a minor fix on wrong
%b formatting string usage.

Tested on my EPYC 7282.

Sponsored by:	The FreeBSD Foundation
Reviewed by:	grehan
Differential Revision:	https://reviews.freebsd.org/D30827
2021-07-14 01:53:10 +08:00
..
amd vmm: Fix AMD-vi using wrong rid range 2021-07-14 01:53:10 +08:00
intel Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
io bhyve: support relocating fbuf and passthru data BARs 2021-03-19 11:04:36 +08:00
vmm_dev.c bhyve: support relocating fbuf and passthru data BARs 2021-03-19 11:04:36 +08:00
vmm_host.c Correct undesirable interaction between caching of %cr4 in bhyve and 2018-04-24 13:44:19 +00:00
vmm_host.h amd64: move GDT into PCPU area. 2019-11-12 15:51:47 +00:00
vmm_instruction_emul.c Add bhyve support for LA57 guest mode. 2020-08-23 20:37:21 +00:00
vmm_ioport.c Add SPDX tags to vmm(4). 2018-06-13 07:02:58 +00:00
vmm_ioport.h Add SPDX tags to vmm(4). 2018-06-13 07:02:58 +00:00
vmm_ktr.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_lapic.c vmx: use C99 bool, not boolean_t 2019-08-01 02:16:48 +00:00
vmm_lapic.h vmx: use C99 bool, not boolean_t 2019-08-01 02:16:48 +00:00
vmm_mem.c sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_mem.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_snapshot.c Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
vmm_stat.c vmm: Add Hygon Dhyana support. 2020-02-13 19:03:12 +00:00
vmm_stat.h amd64: clean up empty lines in .c and .h files 2020-09-01 21:16:54 +00:00
vmm_util.c Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm_util.h Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm.c bhyve: support relocating fbuf and passthru data BARs 2021-03-19 11:04:36 +08:00
x86.c vmm: Let guests enable SMEP/SMAP if the host supports it 2021-05-26 09:34:52 -04:00
x86.h Clear the upper 32-bits of registers in x86_emulate_cpuid(). 2020-10-01 16:45:11 +00:00