Added basic SBI support
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#include "sbi.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
void sbi_call(rv32_cpu_t* cpu, uint32_t extension_id, uint32_t func_id)
|
||||
{
|
||||
switch(extension_id)
|
||||
{
|
||||
case SBI_EXTENSION_LEGACY_CONSOLE_PUTCHAR:
|
||||
{
|
||||
printf("%c", cpu->regs.a0);
|
||||
cpu->regs.a0 = 0;
|
||||
break;
|
||||
}
|
||||
case SBI_EXTENSION_LEGACY_SHUTDOWN:
|
||||
{
|
||||
printf("sbi_call: shutdown, goodbye !\n");
|
||||
cpu->sim_ticks_left = 1;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
fprintf(stderr, "sbi_call: unknown extension id 0x%x\n", extension_id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
#ifndef SBI_H
|
||||
#define SBI_H
|
||||
|
||||
#include "cpu/rv32cpu.h"
|
||||
|
||||
#define SBI_EXTENSION_LEGACY_CONSOLE_PUTCHAR 0x1
|
||||
#define SBI_EXTENSION_LEGACY_SHUTDOWN 0x8
|
||||
|
||||
void sbi_call(rv32_cpu_t* cpu, uint32_t extension_id, uint32_t func_id);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user