├── .github ├── dependabot.yml └── workflows │ ├── build-pdf.yml │ └── pre-commit.yml ├── .gitignore ├── .gitmodules ├── .pre-commit-config.yaml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── GOVERNANCE.md ├── LICENSE ├── MAINTAINERS.md ├── Makefile ├── README.adoc ├── dependencies ├── Gemfile ├── README.md ├── apt_packages.txt └── package.json ├── iommu_ref_model ├── LICENSE ├── Makefile ├── README.md ├── libiommu │ ├── Makefile │ ├── include │ │ ├── iommu.h │ │ ├── iommu_atc.h │ │ ├── iommu_ats.h │ │ ├── iommu_command_queue.h │ │ ├── iommu_data_structures.h │ │ ├── iommu_fault.h │ │ ├── iommu_hpm.h │ │ ├── iommu_interrupt.h │ │ ├── iommu_ref_api.h │ │ ├── iommu_registers.h │ │ ├── iommu_req_rsp.h │ │ ├── iommu_translate.h │ │ └── iommu_utils.h │ └── src │ │ ├── iommu_atc.c │ │ ├── iommu_ats.c │ │ ├── iommu_command_queue.c │ │ ├── iommu_device_context.c │ │ ├── iommu_faults.c │ │ ├── iommu_hpm.c │ │ ├── iommu_interrupt.c │ │ ├── iommu_msi_trans.c │ │ ├── iommu_process_context.c │ │ ├── iommu_reg.c │ │ ├── iommu_second_stage_trans.c │ │ ├── iommu_translate.c │ │ ├── iommu_two_stage_trans.c │ │ └── iommu_utils.c ├── libtables │ ├── Makefile │ ├── include │ │ └── tables_api.h │ └── src │ │ ├── build_ddt.c │ │ ├── build_g_stage_pt.c │ │ ├── build_pdt.c │ │ ├── build_s_stage_pt.c │ │ ├── build_vs_stage_pt.c │ │ └── translate_gpa.c ├── runtests └── test │ ├── Makefile │ ├── tbapi.c │ ├── test_app.c │ ├── test_app.h │ └── test_utils.c └── src ├── bibliography.adoc ├── contributors.adoc ├── images ├── ddt-base.svg ├── ddt-ext.svg ├── guest-OS.svg ├── hypervisor.svg ├── interfaces.svg ├── msi-imsic.svg ├── non-virt-OS.svg ├── pdt.svg └── placement.svg ├── index.adoc ├── iommu.bib ├── iommu_data_structures.adoc ├── iommu_debug.adoc ├── iommu_extensions.adoc ├── iommu_hw_guidelines.adoc ├── iommu_in_memory_queues.adoc ├── iommu_intro.adoc ├── iommu_preface.adoc ├── iommu_registers.adoc ├── iommu_sw_guidelines.adoc └── riscv-iommu.adoc /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/build-pdf.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/.github/workflows/build-pdf.yml -------------------------------------------------------------------------------- /.github/workflows/pre-commit.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/.github/workflows/pre-commit.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build/* 2 | /images/* 3 | .vscode 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/.gitmodules -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /GOVERNANCE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/GOVERNANCE.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/LICENSE -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/MAINTAINERS.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/Makefile -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/README.adoc -------------------------------------------------------------------------------- /dependencies/Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/dependencies/Gemfile -------------------------------------------------------------------------------- /dependencies/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/dependencies/README.md -------------------------------------------------------------------------------- /dependencies/apt_packages.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/dependencies/apt_packages.txt -------------------------------------------------------------------------------- /dependencies/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/dependencies/package.json -------------------------------------------------------------------------------- /iommu_ref_model/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/LICENSE -------------------------------------------------------------------------------- /iommu_ref_model/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/Makefile -------------------------------------------------------------------------------- /iommu_ref_model/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/README.md -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/Makefile -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_atc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_atc.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_ats.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_ats.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_command_queue.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_command_queue.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_data_structures.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_data_structures.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_fault.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_fault.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_hpm.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_hpm.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_interrupt.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_interrupt.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_ref_api.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_ref_api.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_registers.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_registers.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_req_rsp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_req_rsp.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_translate.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_translate.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/include/iommu_utils.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/include/iommu_utils.h -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_atc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_atc.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_ats.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_ats.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_command_queue.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_command_queue.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_device_context.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_device_context.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_faults.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_faults.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_hpm.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_hpm.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_interrupt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_interrupt.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_msi_trans.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_msi_trans.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_process_context.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_process_context.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_reg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_reg.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_second_stage_trans.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_second_stage_trans.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_translate.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_translate.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_two_stage_trans.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_two_stage_trans.c -------------------------------------------------------------------------------- /iommu_ref_model/libiommu/src/iommu_utils.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libiommu/src/iommu_utils.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/Makefile -------------------------------------------------------------------------------- /iommu_ref_model/libtables/include/tables_api.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/include/tables_api.h -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/build_ddt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/build_ddt.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/build_g_stage_pt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/build_g_stage_pt.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/build_pdt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/build_pdt.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/build_s_stage_pt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/build_s_stage_pt.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/build_vs_stage_pt.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/build_vs_stage_pt.c -------------------------------------------------------------------------------- /iommu_ref_model/libtables/src/translate_gpa.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/libtables/src/translate_gpa.c -------------------------------------------------------------------------------- /iommu_ref_model/runtests: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/runtests -------------------------------------------------------------------------------- /iommu_ref_model/test/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/test/Makefile -------------------------------------------------------------------------------- /iommu_ref_model/test/tbapi.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/test/tbapi.c -------------------------------------------------------------------------------- /iommu_ref_model/test/test_app.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/test/test_app.c -------------------------------------------------------------------------------- /iommu_ref_model/test/test_app.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/test/test_app.h -------------------------------------------------------------------------------- /iommu_ref_model/test/test_utils.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/iommu_ref_model/test/test_utils.c -------------------------------------------------------------------------------- /src/bibliography.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/bibliography.adoc -------------------------------------------------------------------------------- /src/contributors.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/contributors.adoc -------------------------------------------------------------------------------- /src/images/ddt-base.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/ddt-base.svg -------------------------------------------------------------------------------- /src/images/ddt-ext.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/ddt-ext.svg -------------------------------------------------------------------------------- /src/images/guest-OS.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/guest-OS.svg -------------------------------------------------------------------------------- /src/images/hypervisor.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/hypervisor.svg -------------------------------------------------------------------------------- /src/images/interfaces.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/interfaces.svg -------------------------------------------------------------------------------- /src/images/msi-imsic.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/msi-imsic.svg -------------------------------------------------------------------------------- /src/images/non-virt-OS.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/non-virt-OS.svg -------------------------------------------------------------------------------- /src/images/pdt.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/pdt.svg -------------------------------------------------------------------------------- /src/images/placement.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/images/placement.svg -------------------------------------------------------------------------------- /src/index.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/index.adoc -------------------------------------------------------------------------------- /src/iommu.bib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu.bib -------------------------------------------------------------------------------- /src/iommu_data_structures.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_data_structures.adoc -------------------------------------------------------------------------------- /src/iommu_debug.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_debug.adoc -------------------------------------------------------------------------------- /src/iommu_extensions.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_extensions.adoc -------------------------------------------------------------------------------- /src/iommu_hw_guidelines.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_hw_guidelines.adoc -------------------------------------------------------------------------------- /src/iommu_in_memory_queues.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_in_memory_queues.adoc -------------------------------------------------------------------------------- /src/iommu_intro.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_intro.adoc -------------------------------------------------------------------------------- /src/iommu_preface.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_preface.adoc -------------------------------------------------------------------------------- /src/iommu_registers.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_registers.adoc -------------------------------------------------------------------------------- /src/iommu_sw_guidelines.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/iommu_sw_guidelines.adoc -------------------------------------------------------------------------------- /src/riscv-iommu.adoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/riscv-non-isa/riscv-iommu/HEAD/src/riscv-iommu.adoc --------------------------------------------------------------------------------