debug: Checkpoint which somewhat works with OpenOCD v13, but still has some bugs.
[riscv-isa-sim.git] / riscv / decode.h
index c3487b103a25906575d2806f3646f2fe6da203bb..45d1c58fc82777a7ed298ca848c2a6dde7b5db66 100644 (file)
@@ -246,17 +246,21 @@ inline freg_t freg(freg_t f) { return f; }
     throw trap_illegal_instruction(0); \
   (which); })
 
+// Seems that 0x0 doesn't work.
 #define DEBUG_START             0x100
-#define DEBUG_ROM_START         0x800
-#define DEBUG_ROM_RESUME        (DEBUG_ROM_START + 4)
-#define DEBUG_ROM_EXCEPTION     (DEBUG_ROM_START + 8)
-#define DEBUG_ROM_END           (DEBUG_ROM_START + debug_rom_raw_len)
-#define DEBUG_RAM_START         0x400
-#define DEBUG_RAM_SIZE          64
-#define DEBUG_RAM_END           (DEBUG_RAM_START + DEBUG_RAM_SIZE)
-#define DEBUG_END               0xfff
-#define DEBUG_CLEARDEBINT       0x100
-#define DEBUG_SETHALTNOT        0x10c
-#define DEBUG_SIZE              (DEBUG_END - DEBUG_START + 1)
+
+#define DEBUG_DATA_START          0x380
+#define DEBUG_DATA_SIZE           0x20
+#define DEBUG_DATA_END            DEBUG_DATA_START + DEBUG_DATA_SIZE
+
+#define DEBUG_PROGBUF_SIZE        32
+#define DEBUG_PROGBUF_START       DEBUG_DATA_START - DEBUG_PROGBUF_SIZE
+#define DEBUG_PROGBUF_END         DEBUG_PROGBUF_START + DEBUG_PROGBUF_SIZE
+
+#define DEBUG_ABSTRACT_SIZE 2*4
+#define DEBUG_ABSTRACT_START (DEBUG_PROGBUF_START - DEBUG_ABSTRACT_SIZE)
+#define DEBUG_ABSTRACT_END   (DEBUG_ABSTRACT_START + DEBUG_ABSTRACT_SIZE)
+
+#define DEBUG_END                 (0x1000 - 1)
 
 #endif