Added SBI functions

master
vhaudiquet 11 months ago
parent b1a327cccf
commit 5727356559
  1. 37
      src/devices/sbi/sbi.c

@ -6,22 +6,41 @@ void sbi_call(rv32_cpu_t* cpu, uint32_t extension_id, uint32_t func_id)
{
switch(extension_id)
{
case SBI_EXTENSION_BASE:
{
switch(func_id)
{
case SBI_FUNCTION_GET_MVENDOR_ID:
cpu->regs.a0 = 0;
break;
case SBI_FUNCTION_GET_MARCH_ID:
cpu->regs.a0 = 0;
break;
case SBI_FUNCTION_GET_MIMPL_ID:
cpu->regs.a0 = 0;
break;
default:
fprintf(stderr, "sbi_call: unknown function id 0x%x for base extension\n", func_id);
break;
}
break;
}
case SBI_EXTENSION_LEGACY_CONSOLE_PUTCHAR:
{
printf("%c", cpu->regs.a0);
cpu->regs.a0 = 0;
break;
printf("%c", cpu->regs.a0);
cpu->regs.a0 = 0;
break;
}
case SBI_EXTENSION_LEGACY_SHUTDOWN:
{
case SBI_EXTENSION_LEGACY_SHUTDOWN:
{
printf("sbi_call: shutdown, goodbye !\n");
cpu->sim_ticks_left = 1;
break;
}
cpu->sim_ticks_left = 1;
break;
}
default:
{
fprintf(stderr, "sbi_call: unknown extension id 0x%x\n", extension_id);
break;
break;
}
}
}

Loading…
Cancel
Save