aboutsummaryrefslogtreecommitdiffstats
path: root/src/pru/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pru/internal.h')
-rw-r--r--src/pru/internal.h37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/pru/internal.h b/src/pru/internal.h
index b279f3d0..8556eed7 100644
--- a/src/pru/internal.h
+++ b/src/pru/internal.h
@@ -2,17 +2,38 @@
#define __PRU_INTERNAL_H
// Local definitions for PRU code
-#define IEP_IRQ 0
-#define GOT_ARM_IRQ 1
-#define WAKE_ARM_IRQ 2
+#include <stdint.h> // uint32_t
+
+#define IEP_EVENT 7
+#define KICK_ARM_EVENT 16
+#define KICK_PRU0_FROM_ARM_EVENT 17
+#define KICK_PRU0_EVENT 18
+#define KICK_PRU1_EVENT 19
-#define IEP_EVENT 7
-#define GOT_ARM_EVENT 17
-#define WAKE_ARM_EVENT 16
+#define WAKE_PRU0_IRQ 0
+#define WAKE_PRU1_IRQ 1
+#define WAKE_ARM_IRQ 2
#define R31_IRQ_OFFSET 30
-// console.c
-void console_init(void);
+#define R31_WRITE_IRQ_SELECT (1<<5)
+#define R31_WRITE_IRQ_OFFSET 16
+
+// Layout of shared memory
+struct shared_mem {
+ uint32_t signal;
+ uint32_t read_pos, read_count;
+ char read_data[512];
+ uint32_t send_push_pos, send_pop_pos;
+ struct {
+ uint32_t count;
+ char data[64];
+ } send_data[4];
+};
+
+#define SIGNAL_PRU0_WAITING 0xefefefef
+#define SIGNAL_PRU1_READY 0xabababab
+
+static struct shared_mem *SHARED_MEM = (void*)0x10000;
#endif // internal.h