tools: otrx: allow own magic
[project/firmware-utils.git] / src / fw.h
index e37859c52d7d30e11d1c02a3b1f34c090254d90f..778143d2c42b54e3589ecb67ae226130d2e1984b 100644 (file)
--- a/src/fw.h
+++ b/src/fw.h
 #ifndef FW_INCLUDED
 #define FW_INCLUDED
 
+#include <stdint.h>
 #include <sys/types.h>
 
 #define MAGIC_HEADER   "OPEN"
 #define MAGIC_PART     "PART"
 #define MAGIC_END      "END."
+#define MAGIC_ENDS     "ENDS"
 
 #define MAGIC_LENGTH   4
+#define PART_NAME_LENGTH 16
 
 typedef struct header {
-       char magic[MAGIC_LENGTH];
-       char version[256];
+       uint8_t magic[MAGIC_LENGTH];
+       uint8_t version[256];
        u_int32_t crc;
        u_int32_t pad;
 } __attribute__ ((packed)) header_t;
 
 typedef struct part {
-       char magic[MAGIC_LENGTH];
-       char name[16];
-       char pad[12];
+       uint8_t magic[MAGIC_LENGTH];
+       uint8_t name[PART_NAME_LENGTH];
+       uint8_t pad[12];
        u_int32_t memaddr;
        u_int32_t index;
        u_int32_t baseaddr;
@@ -52,11 +55,18 @@ typedef struct part_crc {
 } __attribute__ ((packed)) part_crc_t;
 
 typedef struct signature {
-       char magic[MAGIC_LENGTH];
+       uint8_t magic[MAGIC_LENGTH];
        u_int32_t crc;
        u_int32_t pad;
 } __attribute__ ((packed)) signature_t;
 
+typedef struct signature_rsa {
+       uint8_t magic[MAGIC_LENGTH];
+//     u_int32_t crc;
+       unsigned char rsa_signature[256];
+       u_int32_t pad;
+} __attribute__ ((packed)) signature_rsa_t;
+
 #define VERSION "1.2"
 
 #define INFO(...) fprintf(stdout, __VA_ARGS__)