The ITS VMAPP command gains some new fields with GICv4.1: - a default doorbell, which allows a single doorbell to be used for all the VLPIs routed to a given VPE - a pointer to the configuration table (instead of having it in a register that gets context switched) - a flag indicating whether this is the first map or the last unmap for this particular VPE - a flag indicating whether the pending table is known to be zeroed, or not Plumb in the new fields in the VMAPP builder, and add the map/unmap refcounting so that the ITS can do the right thing.
Showing the changes to include/linux (1 of 2 files). Show all
Unified · Split
| @@ -39,8 +39,20 @@ struct its_vpe { · 38 unmodified lines | |||
| 39 | irq_hw_number_t vpe_db_lpi; | 39 | irq_hw_number_t vpe_db_lpi; |
| 40 | /* VPE resident */ | 40 | /* VPE resident */ |
| 41 | bool resident; | 41 | bool resident; |
| 42 | /* VPE proxy mapping */ | 42 | union { |
| 43 | int vpe_proxy_event; | 43 | /* GICv4.0 implementations */ |
| 44 | struct { | ||
| 45 | /* VPE proxy mapping */ | ||
| 46 | int vpe_proxy_event; | ||
| 47 | /* Implementation Defined Area Invalid */ | ||
| 48 | bool idai; | ||
| 49 | }; | ||
| 50 | /* GICv4.1 implementations */ | ||
| 51 | struct { | ||
| 52 | atomic_t vmapp_count; | ||
| 53 | }; | ||
| 54 | }; | ||
| 55 | |||
| 44 | /* | 56 | /* |
| 45 | * This collection ID is used to indirect the target | 57 | * This collection ID is used to indirect the target |
| 46 | * redistributor for this VPE. The ID itself isn't involved in | 58 | * redistributor for this VPE. The ID itself isn't involved in |
| @@ -49,8 +61,6 @@ struct its_vpe { · 2 unmodified lines | |||
| 49 | u16 col_idx; | 61 | u16 col_idx; |
| 50 | /* Unique (system-wide) VPE identifier */ | 62 | /* Unique (system-wide) VPE identifier */ |
| 51 | u16 vpe_id; | 63 | u16 vpe_id; |
| 52 | /* Implementation Defined Area Invalid */ | ||
| 53 | bool idai; | ||
| 54 | /* Pending VLPIs on schedule out? */ | 64 | /* Pending VLPIs on schedule out? */ |
| 55 | bool pending_last; | 65 | bool pending_last; |
| 56 | }; | 66 | }; |