[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 01/15] hw/riscv: Expand the is 32-bit check to support mor
From: |
Bin Meng |
Subject: |
Re: [PATCH v3 01/15] hw/riscv: Expand the is 32-bit check to support more CPUs |
Date: |
Tue, 15 Dec 2020 17:26:22 +0800 |
On Tue, Dec 15, 2020 at 4:34 AM Alistair Francis
<alistair.francis@wdc.com> wrote:
>
> 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>
> ---
> hw/riscv/boot.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c
> index d62f3dc758..3c70ac75d7 100644
> --- a/hw/riscv/boot.c
> +++ b/hw/riscv/boot.c
> @@ -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)) {
This does not look like a scalable way. With more and more CPU added
in the future, this may end up with a huge list of strncmps..
> return true;
> } else {
> return false;
Regards,
Bin
- [PATCH v3 00/15] RISC-V: Start to remove xlen preprocess, Alistair Francis, 2020/12/14
- [PATCH v3 01/15] hw/riscv: Expand the is 32-bit check to support more CPUs, Alistair Francis, 2020/12/14
- Re: [PATCH v3 01/15] hw/riscv: Expand the is 32-bit check to support more CPUs,
Bin Meng <=
- [PATCH v3 02/15] target/riscv: Add a TYPE_RISCV_CPU_BASE CPU, Alistair Francis, 2020/12/14
- [PATCH v3 03/15] riscv: spike: Remove target macro conditionals, Alistair Francis, 2020/12/14
- [PATCH v3 04/15] riscv: virt: Remove target macro conditionals, Alistair Francis, 2020/12/14
- [PATCH v3 05/15] hw/riscv: boot: Remove compile time XLEN checks, Alistair Francis, 2020/12/14
- [PATCH v3 06/15] hw/riscv: virt: Remove compile time XLEN checks, Alistair Francis, 2020/12/14
- [PATCH v3 07/15] hw/riscv: spike: Remove compile time XLEN checks, Alistair Francis, 2020/12/14
- [PATCH v3 08/15] hw/riscv: sifive_u: Remove compile time XLEN checks, Alistair Francis, 2020/12/14