summaryrefslogtreecommitdiff
path: root/tools/src/aic.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/src/aic.h')
-rw-r--r--tools/src/aic.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/tools/src/aic.h b/tools/src/aic.h
new file mode 100644
index 0000000..1f401b1
--- /dev/null
+++ b/tools/src/aic.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: MIT */
+
+#ifndef AIC_H
+#define AIC_H
+
+#include "types.h"
+
+#define AIC_MAX_DIES 4
+
+struct aic_regs {
+ uint64_t reg_size;
+ uint64_t event;
+ uint64_t tgt_cpu;
+ uint64_t config;
+ uint64_t sw_set;
+ uint64_t sw_clr;
+ uint64_t mask_set;
+ uint64_t mask_clr;
+};
+
+struct aic {
+ uint64_t base;
+ uint32_t version;
+
+ uint32_t nr_irq;
+ uint32_t nr_die;
+ uint32_t max_irq;
+ uint32_t max_die;
+ uint32_t die_stride;
+
+ struct aic_regs regs;
+};
+
+extern struct aic *aic;
+
+void aic_init(void);
+void aic_set_sw(int irq, bool active);
+uint32_t aic_ack(void);
+
+#endif