thermosphere: add hypervisor timer code

This commit is contained in:
TuxSH
2020-01-09 19:24:05 +00:00
parent 3d3a9925b9
commit 1eb60a2a52
10 changed files with 169 additions and 17 deletions

View File

@@ -23,13 +23,18 @@
#define GIC_IRQID_PMU 23
#define GIC_IRQID_MAINTENANCE 25
#define GIC_IRQID_HYP_TIMER 26
#define GIC_IRQID_VIRT_TIMER 27
#define GIC_IRQID_NS_PHYS_HYP_TIMER 26
#define GIC_IRQID_NS_VIRT_TIMER 27
//#define GIC_IRQID_LEGACY_NFIQ 28 not defined?
#define GIC_IRQID_SEC_PHYS_TIMER 29
#define GIC_IRQID_NS_PHYS_TIMER 30
//#define GIC_IRQID_LEGACY_NIRQ 31 not defined?
#define GIC_IRQID_NS_VIRT_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 28. Unimplemented
#define GIC_IRQID_SEC_PHYS_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 20. Unimplemented
#define GIC_IRQID_SEC_VIRT_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 19. Unimplemented
static inline void initGicV2Pointers(ArmGicV2 *gic)
{
gic->gicd = (volatile ArmGicV2Distributor *)0x08000000ull;

View File

@@ -21,14 +21,17 @@
// For both guest and host
#define MAX_NUM_REGISTERED_INTERRUPTS 512
#define GIC_IRQID_MAINTENANCE 25
#define GIC_IRQID_HYP_TIMER 26
#define GIC_IRQID_VIRT_TIMER 27
#define GIC_IRQID_LEGACY_NFIQ 28
#define GIC_IRQID_SEC_PHYS_TIMER 29
#define GIC_IRQID_NS_PHYS_TIMER 30
#define GIC_IRQID_LEGACY_NIRQ 31
#define GIC_IRQID_MAINTENANCE 25
#define GIC_IRQID_NS_PHYS_HYP_TIMER 26
#define GIC_IRQID_NS_VIRT_TIMER 27
#define GIC_IRQID_LEGACY_NFIQ 28
#define GIC_IRQID_SEC_PHYS_TIMER 29
#define GIC_IRQID_NS_PHYS_TIMER 30
#define GIC_IRQID_LEGACY_NIRQ 31
#define GIC_IRQID_NS_VIRT_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 28. Unimplemented
#define GIC_IRQID_SEC_PHYS_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 20. Unimplemented
#define GIC_IRQID_SEC_VIRT_HYP_TIMER GIC_IRQID_SPURIOUS // SBSA: 19. Unimplemented
static inline void initGicV2Pointers(ArmGicV2 *gic)
{