hgeip

Hypervisor Guest External Interrupt Pending Register

The hgeip register is an HSXLEN-bit read-only register, formatted as that indicates pending guest external interrupts for this hart.

Guest external interrupts represent interrupts directed to individual virtual machines at VS-level. If a RISC-V platform supports placing a physical device under the direct control of a guest OS with minimal hypervisor intervention (known as pass-through or direct assignment between a virtual machine and the physical device), then, in such circumstance, interrupts from the device are intended for a specific virtual machine. Each bit of hgeip summarizes all pending interrupts directed to one virtual hart, as collected and reported by an interrupt controller. To distinguish specific pending interrupts from multiple devices, software must query the interrupt controller.

The number of bits implemented in hgeip and hgeie for guest external interrupts is UNSPECIFIED and may be zero. This number is known as GEILEN. The least-significant bits are implemented first, apart from bit 0. Hence, if GEILEN is nonzero, bits GEILEN:1 shall be writable in hgeie, and all other bit positions shall be read-only zeros in both hgeip and hgeie

Attributes

Requirement

H

Defining extensions

H

Hypervisor

CSR Address

0xe12

Length

* 32 when CSR[mstatus].SXL == 0 * 64 when CSR[mstatus].SXL == 1

Privilege Mode

S

Format

This CSR format changes dynamically.

hgeip Format when CSR[mstatus].SXL == 0
Figure 1. hgeip Format when CSR[mstatus].SXL == 0
hgeip Format when CSR[mstatus].SXL == 1
Figure 2. hgeip Format when CSR[mstatus].SXL == 1

Field Summary

Name Location Type Reset Value

hgeip.GEI_PENDING

* 31:1 when CSR[mstatus].SXL == 0 * 63:1 when CSR[mstatus].SXL == 1

RO-H

0

Fields

GEI_PENDING

Location
  • 31:1 when CSR[mstatus].SXL == 0

  • 63:1 when CSR[mstatus].SXL == 1

Description

Pending bits; see description of hgeip

Type

RO-H

Reset value

0