aboutsummaryrefslogtreecommitdiff
path: root/boot/devmode/devmode.h
diff options
context:
space:
mode:
authorThomas Albers Raviola <thomas@thomaslabs.org>2025-02-12 01:27:44 +0100
committerThomas Albers Raviola <thomas@thomaslabs.org>2025-02-12 01:27:44 +0100
commit779b9834e30de1ba0b4f0755388bebd0c45aa1dc (patch)
tree218edb656e329884e4b9cab7e84f4ba4b4af0c4a /boot/devmode/devmode.h
parent8ac78b9953908d2a4ffece855296fb7597440cce (diff)
Restructure rom image and use dependencies for makefiles
Diffstat (limited to 'boot/devmode/devmode.h')
-rw-r--r--boot/devmode/devmode.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/boot/devmode/devmode.h b/boot/devmode/devmode.h
new file mode 100644
index 0000000..f3322d0
--- /dev/null
+++ b/boot/devmode/devmode.h
@@ -0,0 +1,42 @@
+#ifndef DEVMODE_H
+#define DEVMODE_H
+
+#include <zeta.h>
+
+#ifdef __GNUC__
+#define PACKED __attribute__((packed))
+#else
+#define PACKED
+#endif
+
+enum header_type {
+ CMD_PING,
+ CMD_INFO,
+ CMD_BOOT,
+ CMD_READ,
+ CMD_WRITE,
+ CMD_IO_READ,
+ CMD_IO_WRITE,
+ CMD_ECHO
+};
+
+struct header {
+ u8 type;
+ u8 bank;
+ u16 address;
+ u16 length;
+ u16 checksum;
+} PACKED;
+
+// static_assert(sizeof(struct header) == 8, "struct header is not PACKED");
+
+enum error {
+ ERR_TIMEOUT = -1
+};
+
+#define MAX_PACKET_SIZE 256
+#define TIMEOUT_MS 500
+#define MAX_ATTEMPTS 3
+#define MAX_TRANS_ATTEMPTS 5
+
+#endif // DEVMODE_H