drivers/interrupt_controller: VT-D IRTE table should be 4kb aligned

As specified by the IRTA location.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
This commit is contained in:
Tomasz Bursztyka 2021-01-15 11:37:21 +01:00 committed by Anas Nashif
commit 25640f65c9
2 changed files with 4 additions and 7 deletions

View file

@ -103,7 +103,7 @@ union qi_wait_descriptor {
#define QI_WAIT_STATUS_COMPLETE 0x1UL #define QI_WAIT_STATUS_COMPLETE 0x1UL
struct vtd_ictl_data { struct vtd_ictl_data {
struct vtd_irte irte[IRTE_NUM]; struct vtd_irte irte[IRTE_NUM] __aligned(0x1000);
struct qi_descriptor qi[QI_NUM] __aligned(0x1000); struct qi_descriptor qi[QI_NUM] __aligned(0x1000);
int irqs[IRTE_NUM]; int irqs[IRTE_NUM];
int vectors[IRTE_NUM]; int vectors[IRTE_NUM];

View file

@ -119,14 +119,11 @@
#define VTD_GSTS_TES 31 #define VTD_GSTS_TES 31
/* Interrupt Remapping Table Address Register details */ /* Interrupt Remapping Table Address Register details */
#define VTD_IRTA_SIZE_MASK 0x00000000000000FF #define VTD_IRTA_SIZE_MASK 0x000000000000000FUL
#define VTD_IRTA_EIME BIT(11) #define VTD_IRTA_EIME BIT(11)
#define VTD_IRTA_ADDR_SHIFT 12
#define VTD_IRTA_REG_GEN_CONTENT(addr, size, mode) \ #define VTD_IRTA_REG_GEN_CONTENT(addr, size, mode) \
(0 | \ ((uint64_t)(addr) | (mode) | (size & VTD_IRTA_SIZE_MASK))
(addr << VTD_IRTA_ADDR_SHIFT) | \
(mode) | (size & VTD_IRTA_SIZE_MASK))
/* Fault event control register details */ /* Fault event control register details */
#define VTD_FECTL_REG_IP 30 #define VTD_FECTL_REG_IP 30