Commit d74d6a99a05e07771acc5f6b91db04be4c1f007f

Authored by Edgar E. Iglesias
1 parent 6a8b1ae2

microblaze: Add GDB stub support.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Showing 1 changed file with 32 additions and 0 deletions
gdbstub.c
... ... @@ -1156,6 +1156,36 @@ static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n)
1156 1156  
1157 1157 return 4;
1158 1158 }
  1159 +#elif defined (TARGET_MICROBLAZE)
  1160 +
  1161 +#define NUM_CORE_REGS (32 + 5)
  1162 +
  1163 +static int cpu_gdb_read_register(CPUState *env, uint8_t *mem_buf, int n)
  1164 +{
  1165 + if (n < 32) {
  1166 + GET_REG32(env->regs[n]);
  1167 + } else {
  1168 + GET_REG32(env->sregs[n - 32]);
  1169 + }
  1170 + return 0;
  1171 +}
  1172 +
  1173 +static int cpu_gdb_write_register(CPUState *env, uint8_t *mem_buf, int n)
  1174 +{
  1175 + uint32_t tmp;
  1176 +
  1177 + if (n > NUM_CORE_REGS)
  1178 + return 0;
  1179 +
  1180 + tmp = ldl_p(mem_buf);
  1181 +
  1182 + if (n < 32) {
  1183 + env->regs[n] = tmp;
  1184 + } else {
  1185 + env->sregs[n - 32] = tmp;
  1186 + }
  1187 + return 4;
  1188 +}
1159 1189 #elif defined (TARGET_CRIS)
1160 1190  
1161 1191 #define NUM_CORE_REGS 49
... ... @@ -1528,6 +1558,8 @@ static void gdb_set_cpu_pc(GDBState *s, target_ulong pc)
1528 1558 s->c_cpu->pc = pc;
1529 1559 #elif defined (TARGET_MIPS)
1530 1560 s->c_cpu->active_tc.PC = pc;
  1561 +#elif defined (TARGET_MICROBLAZE)
  1562 + s->c_cpu->sregs[SR_PC] = pc;
1531 1563 #elif defined (TARGET_CRIS)
1532 1564 s->c_cpu->pc = pc;
1533 1565 #elif defined (TARGET_ALPHA)
... ...