FW: [riscv/riscv-platform-specs] RVM platform requirements (#25)


Kumar Sankaran
 

Forwarding to tech mailing list.

 

Regards

Kumar

From: Torbjørn Viem Ness <notifications@...>
Sent: Monday, June 28, 2021 1:34 PM
To: riscv/riscv-platform-specs <riscv-platform-specs@...>
Cc: Subscribed <subscribed@...>
Subject: [riscv/riscv-platform-specs] RVM platform requirements (#25)

 

Great initiative!
I do however have questions about the requirements for the RVM platform, specifically the 32-bit version;

Is it realistic to require RV32G in order to comply with the RVM platform? It seems like a more natural choice would be RV32IMAF, as RV32D is pretty heavy on the floating-point for small microcontrollers (most Cortex-M devices don't even have double precision support in hardware, that's only available in the M55 and M7).

Also the C extension would make sense to include as embedded applications are quite sensitive to code size, but that's probably a different discussion worthy of its own issue...


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


Greg Favor
 

On Mon, Jun 28, 2021 at 2:03 PM Kumar Sankaran <ksankaran@...> wrote:

Is it realistic to require RV32G in order to comply with the RVM platform? It seems like a more natural choice would be RV32IMAF, as RV32D is pretty heavy on the floating-point for small microcontrollers (most Cortex-M devices don't even have double precision support in hardware, that's only available in the M55 and M7).


Keep in mind the distinction between RVM ISA profile specs and M platform specs.  I would expect that the M platform spec would require the RVM ISA profile spec.  But all the individual FP and C extensions are "Optional" in RVM20 and RVM22.  The M profile specs generally take the approach of setting a low "Required" bar and specify many extensions as supported but "Optional".

So the M 2022 platform spec can either simply accept that through its requirement for RVM22, or it can add on requirements for the F and C extensions (and possibly some other extensions).  Essentially the M platform spec can choose to require everything that constitutes RV32GC/RV64GC, or to stop a bit short (e.g. not requiring D), or stop way short.

I don't have a horse in this race, but I can imagine there being people on both sides of the argument as to whether the M platform spec should require more than what is required in the M profile spec, and if so how much more.

Greg