hw/riscv: Expand the is 32-bit check to support more CPUs
Currently the riscv_is_32_bit() function only supports the generic rv32 CPUs. Extend the function to support the SiFive and LowRISC CPUs as well. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> Message-id: 9a13764115ba78688ba61b56526c6de65fc3ef42.1608142916.git.alistair.francis@wdc.com
This commit is contained in:
parent
54a581c228
commit
617448a46b
|
@ -41,7 +41,17 @@
|
||||||
|
|
||||||
bool riscv_is_32_bit(MachineState *machine)
|
bool riscv_is_32_bit(MachineState *machine)
|
||||||
{
|
{
|
||||||
if (!strncmp(machine->cpu_type, "rv32", 4)) {
|
/*
|
||||||
|
* To determine if the CPU is 32-bit we need to check a few different CPUs.
|
||||||
|
*
|
||||||
|
* If the CPU starts with rv32
|
||||||
|
* If the CPU is a sifive 3 seriries CPU (E31, U34)
|
||||||
|
* If it's the Ibex CPU
|
||||||
|
*/
|
||||||
|
if (!strncmp(machine->cpu_type, "rv32", 4) ||
|
||||||
|
(!strncmp(machine->cpu_type, "sifive", 6) &&
|
||||||
|
machine->cpu_type[8] == '3') ||
|
||||||
|
!strncmp(machine->cpu_type, "lowrisc-ibex", 12)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue