> Date: Tue, 15 Sep 2020 01:37:33 -0500
> From: Jordan Hargrave <[email protected]>
>
> This patch adds a couple of entries for AMD IOMMU structure
> definitions in ACPI
ok kettenis@
> Index: acpireg.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpireg.h,v
> retrieving revision 1.45
> diff -u -p -r1.45 acpireg.h
> --- acpireg.h 28 Aug 2019 22:39:09 -0000 1.45
> +++ acpireg.h 15 Sep 2020 06:29:50 -0000
> @@ -623,6 +623,9 @@ struct acpi_ivmd {
> struct acpi_ivhd {
> uint8_t type;
> uint8_t flags;
> +#define IVHD_PPRSUP (1L << 7)
> +#define IVHD_PREFSUP (1L << 6)
> +#define IVHD_COHERENT (1L << 5)
> #define IVHD_IOTLB (1L << 4)
> #define IVHD_ISOC (1L << 3)
> #define IVHD_RESPASSPW (1L << 2)
> @@ -638,13 +641,28 @@ struct acpi_ivhd {
> #define IVHD_UNITID_MASK 0x1F
> #define IVHD_MSINUM_SHIFT 0
> #define IVHD_MSINUM_MASK 0x1F
> - uint32_t reserved;
> + uint32_t feature;
> +} __packed;
> +
> +struct acpi_ivhd_ext {
> + uint8_t type;
> + uint8_t flags;
> + uint16_t length;
> + uint16_t devid;
> + uint16_t cap;
> + uint64_t address;
> + uint16_t segment;
> + uint16_t info;
> + uint32_t attrib;
> + uint64_t efr;
> + uint8_t reserved[8];
> } __packed;
>
> union acpi_ivrs_entry {
> struct {
> uint8_t type;
> #define IVRS_IVHD 0x10
> +#define IVRS_IVHD_EXT 0x11
> #define IVRS_IVMD_ALL 0x20
> #define IVRS_IVMD_SPECIFIED 0x21
> #define IVRS_IVMD_RANGE 0x22
> @@ -652,6 +670,7 @@ union acpi_ivrs_entry {
> uint16_t length;
> } __packed;
> struct acpi_ivhd ivhd;
> + struct acpi_ivhd_ext ivhd_ext;
> struct acpi_ivmd ivmd;
> } __packed;
>
>
>