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)
|
||||
{
|
||||
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;
|
||||
} else {
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user