docs/about/deprecated.rst | 10 +++++ target/riscv/cpu.c | 79 +++++++++++++++++++++++++-------------- 2 files changed, 61 insertions(+), 28 deletions(-)
v1: <https://lists.gnu.org/archive/html/qemu-riscv/2022-05/msg00227.html> Hello, This is a refined version of the patch to RISC-V CPU property names. See v1 for background. [Changes: RFC PATCH (v1) -> PATCH v2] - Reorganized all properties for clarity and extensibility (PATCH 1/3, not actually a point of this patchset but worth doing) - Reworded for correctness and clarity (it's the first time for me to use Grammarly) - Added a deprecation note to documentation (PATCH 3/3) [RFC: PATCH 3/3] 1. Which is a better section to add a deprecation note? - "System emulator command line arguments" or - A new section under "Device options" (THIS PATCH) 2. Is it okay to use the word "7.1" (an unreleased version number)? Tsukasa OI (3): target/riscv: Reorganize riscv_cpu_properties target/riscv: Make CPU property names lowercase target/riscv: Deprecate capitalized property names docs/about/deprecated.rst | 10 +++++ target/riscv/cpu.c | 79 +++++++++++++++++++++++++-------------- 2 files changed, 61 insertions(+), 28 deletions(-) base-commit: 0cac736e73723850a99e5142e35d14d8f8efb232 -- 2.34.1
v1: <https://lists.gnu.org/archive/html/qemu-riscv/2022-05/msg00227.html> v2: <https://lists.gnu.org/archive/html/qemu-riscv/2022-05/msg00411.html> v2.1: <https://lists.gnu.org/archive/html/qemu-riscv/2022-05/msg00417.html> Hello, This is v3 of the patch to RISC-V CPU property names. See v1 for background. [Changes: PATCH v2 -> PATCH v3] - Rebased to newer master - Fixed a typo - Clarified intent of PATCH 1/3 Tsukasa OI (3): target/riscv: Reorganize riscv_cpu_properties target/riscv: Make CPU property names lowercase target/riscv: Deprecate capitalized property names docs/about/deprecated.rst | 10 +++++ target/riscv/cpu.c | 79 +++++++++++++++++++++++++-------------- 2 files changed, 61 insertions(+), 28 deletions(-) base-commit: c9641eb422905cc0804a7e310269abf09543cce8 -- 2.34.1
Because many developers introduced new properties in various ways, the
entire riscv_cpu_properties block is getting too complex.
This commit reorganizes riscv_cpu_properties for clarity on future.
Signed-off-by: Tsukasa OI <research_trasio@irq.a4lg.com>
---
target/riscv/cpu.c | 64 +++++++++++++++++++++++++++-------------------
1 file changed, 37 insertions(+), 27 deletions(-)
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index a91253d4bd..3f21563f2d 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -840,7 +840,7 @@ static void riscv_cpu_init(Object *obj)
}
static Property riscv_cpu_properties[] = {
- /* Defaults for standard extensions */
+ /* Base ISA and single-letter standard extensions */
DEFINE_PROP_BOOL("i", RISCVCPU, cfg.ext_i, true),
DEFINE_PROP_BOOL("e", RISCVCPU, cfg.ext_e, false),
DEFINE_PROP_BOOL("g", RISCVCPU, cfg.ext_g, false),
@@ -853,29 +853,17 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true),
DEFINE_PROP_BOOL("v", RISCVCPU, cfg.ext_v, false),
DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, true),
- DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true),
- DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true),
+
+ /* Standard unprivileged extensions */
DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true),
+ DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true),
+
DEFINE_PROP_BOOL("Zfh", RISCVCPU, cfg.ext_zfh, false),
DEFINE_PROP_BOOL("Zfhmin", RISCVCPU, cfg.ext_zfhmin, false),
- DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false),
- DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false),
- DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true),
- DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true),
- DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true),
-
- DEFINE_PROP_STRING("priv_spec", RISCVCPU, cfg.priv_spec),
- DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec),
- DEFINE_PROP_UINT16("vlen", RISCVCPU, cfg.vlen, 128),
- DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64),
-
- DEFINE_PROP_UINT32("mvendorid", RISCVCPU, cfg.mvendorid, 0),
- DEFINE_PROP_UINT64("marchid", RISCVCPU, cfg.marchid, RISCV_CPU_MARCHID),
- DEFINE_PROP_UINT64("mimpid", RISCVCPU, cfg.mimpid, RISCV_CPU_MIMPID),
-
- DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false),
- DEFINE_PROP_BOOL("svnapot", RISCVCPU, cfg.ext_svnapot, false),
- DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false),
+ DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false),
+ DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false),
+ DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false),
+ DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false),
DEFINE_PROP_BOOL("zba", RISCVCPU, cfg.ext_zba, true),
DEFINE_PROP_BOOL("zbb", RISCVCPU, cfg.ext_zbb, true),
@@ -884,6 +872,7 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("zbkc", RISCVCPU, cfg.ext_zbkc, false),
DEFINE_PROP_BOOL("zbkx", RISCVCPU, cfg.ext_zbkx, false),
DEFINE_PROP_BOOL("zbs", RISCVCPU, cfg.ext_zbs, true),
+
DEFINE_PROP_BOOL("zk", RISCVCPU, cfg.ext_zk, false),
DEFINE_PROP_BOOL("zkn", RISCVCPU, cfg.ext_zkn, false),
DEFINE_PROP_BOOL("zknd", RISCVCPU, cfg.ext_zknd, false),
@@ -895,10 +884,31 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("zksh", RISCVCPU, cfg.ext_zksh, false),
DEFINE_PROP_BOOL("zkt", RISCVCPU, cfg.ext_zkt, false),
- DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false),
- DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false),
- DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false),
- DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false),
+ DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false),
+ DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false),
+
+ /* Standard supervisor-level extensions */
+ DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false),
+ DEFINE_PROP_BOOL("svnapot", RISCVCPU, cfg.ext_svnapot, false),
+ DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false),
+
+ /* Base features */
+ DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true),
+ DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true),
+ DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true),
+ DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true),
+
+ /* ISA specification / extension versions */
+ DEFINE_PROP_STRING("priv_spec", RISCVCPU, cfg.priv_spec),
+ DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec),
+
+ /* CPU parameters */
+ DEFINE_PROP_UINT32("mvendorid", RISCVCPU, cfg.mvendorid, 0),
+ DEFINE_PROP_UINT64("marchid", RISCVCPU, cfg.marchid, RISCV_CPU_MARCHID),
+ DEFINE_PROP_UINT64("mimpid", RISCVCPU, cfg.mimpid, RISCV_CPU_MIMPID),
+ DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC),
+ DEFINE_PROP_UINT16("vlen", RISCVCPU, cfg.vlen, 128),
+ DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64),
/* Vendor-specific custom extensions */
DEFINE_PROP_BOOL("xventanacondops", RISCVCPU, cfg.ext_XVentanaCondOps, false),
@@ -909,9 +919,9 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("x-epmp", RISCVCPU, cfg.epmp, false),
DEFINE_PROP_BOOL("x-aia", RISCVCPU, cfg.aia, false),
- DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC),
-
+ /* Other options */
DEFINE_PROP_BOOL("short-isa-string", RISCVCPU, cfg.short_isa_string, false),
+
DEFINE_PROP_END_OF_LIST(),
};
--
2.34.1
On Fri, Jun 3, 2022 at 9:36 PM Tsukasa OI <research_trasio@irq.a4lg.com> wrote: > > Because many developers introduced new properties in various ways, the > entire riscv_cpu_properties block is getting too complex. > > This commit reorganizes riscv_cpu_properties for clarity on future. > > Signed-off-by: Tsukasa OI <research_trasio@irq.a4lg.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/cpu.c | 64 +++++++++++++++++++++++++++------------------- > 1 file changed, 37 insertions(+), 27 deletions(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index a91253d4bd..3f21563f2d 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -840,7 +840,7 @@ static void riscv_cpu_init(Object *obj) > } > > static Property riscv_cpu_properties[] = { > - /* Defaults for standard extensions */ > + /* Base ISA and single-letter standard extensions */ > DEFINE_PROP_BOOL("i", RISCVCPU, cfg.ext_i, true), > DEFINE_PROP_BOOL("e", RISCVCPU, cfg.ext_e, false), > DEFINE_PROP_BOOL("g", RISCVCPU, cfg.ext_g, false), > @@ -853,29 +853,17 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("u", RISCVCPU, cfg.ext_u, true), > DEFINE_PROP_BOOL("v", RISCVCPU, cfg.ext_v, false), > DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, true), > - DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), > - DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), > + > + /* Standard unprivileged extensions */ > DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), > + DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), > + > DEFINE_PROP_BOOL("Zfh", RISCVCPU, cfg.ext_zfh, false), > DEFINE_PROP_BOOL("Zfhmin", RISCVCPU, cfg.ext_zfhmin, false), > - DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false), > - DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false), > - DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true), > - DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true), > - DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true), > - > - DEFINE_PROP_STRING("priv_spec", RISCVCPU, cfg.priv_spec), > - DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec), > - DEFINE_PROP_UINT16("vlen", RISCVCPU, cfg.vlen, 128), > - DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64), > - > - DEFINE_PROP_UINT32("mvendorid", RISCVCPU, cfg.mvendorid, 0), > - DEFINE_PROP_UINT64("marchid", RISCVCPU, cfg.marchid, RISCV_CPU_MARCHID), > - DEFINE_PROP_UINT64("mimpid", RISCVCPU, cfg.mimpid, RISCV_CPU_MIMPID), > - > - DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false), > - DEFINE_PROP_BOOL("svnapot", RISCVCPU, cfg.ext_svnapot, false), > - DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false), > + DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false), > + DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false), > + DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false), > + DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false), > > DEFINE_PROP_BOOL("zba", RISCVCPU, cfg.ext_zba, true), > DEFINE_PROP_BOOL("zbb", RISCVCPU, cfg.ext_zbb, true), > @@ -884,6 +872,7 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("zbkc", RISCVCPU, cfg.ext_zbkc, false), > DEFINE_PROP_BOOL("zbkx", RISCVCPU, cfg.ext_zbkx, false), > DEFINE_PROP_BOOL("zbs", RISCVCPU, cfg.ext_zbs, true), > + > DEFINE_PROP_BOOL("zk", RISCVCPU, cfg.ext_zk, false), > DEFINE_PROP_BOOL("zkn", RISCVCPU, cfg.ext_zkn, false), > DEFINE_PROP_BOOL("zknd", RISCVCPU, cfg.ext_zknd, false), > @@ -895,10 +884,31 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("zksh", RISCVCPU, cfg.ext_zksh, false), > DEFINE_PROP_BOOL("zkt", RISCVCPU, cfg.ext_zkt, false), > > - DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false), > - DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false), > - DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false), > - DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false), > + DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false), > + DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false), > + > + /* Standard supervisor-level extensions */ > + DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false), > + DEFINE_PROP_BOOL("svnapot", RISCVCPU, cfg.ext_svnapot, false), > + DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false), > + > + /* Base features */ > + DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), > + DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true), > + DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true), > + DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true), > + > + /* ISA specification / extension versions */ > + DEFINE_PROP_STRING("priv_spec", RISCVCPU, cfg.priv_spec), > + DEFINE_PROP_STRING("vext_spec", RISCVCPU, cfg.vext_spec), > + > + /* CPU parameters */ > + DEFINE_PROP_UINT32("mvendorid", RISCVCPU, cfg.mvendorid, 0), > + DEFINE_PROP_UINT64("marchid", RISCVCPU, cfg.marchid, RISCV_CPU_MARCHID), > + DEFINE_PROP_UINT64("mimpid", RISCVCPU, cfg.mimpid, RISCV_CPU_MIMPID), > + DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC), > + DEFINE_PROP_UINT16("vlen", RISCVCPU, cfg.vlen, 128), > + DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64), > > /* Vendor-specific custom extensions */ > DEFINE_PROP_BOOL("xventanacondops", RISCVCPU, cfg.ext_XVentanaCondOps, false), > @@ -909,9 +919,9 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("x-epmp", RISCVCPU, cfg.epmp, false), > DEFINE_PROP_BOOL("x-aia", RISCVCPU, cfg.aia, false), > > - DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC), > - > + /* Other options */ > DEFINE_PROP_BOOL("short-isa-string", RISCVCPU, cfg.short_isa_string, false), > + > DEFINE_PROP_END_OF_LIST(), > }; > > -- > 2.34.1 >
Many CPU properties for RISC-V are in lowercase except those with
"capitalized" (or CamelCase) names:
- Counters
- Zifencei
- Zicsr
- Zfh
- Zfhmin
- Zve32f
- Zve64f
This commit makes lowercase names primary but keeps capitalized names
as aliases (for backward compatibility, but with deprecated status).
Signed-off-by: Tsukasa OI <research_trasio@irq.a4lg.com>
---
target/riscv/cpu.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 3f21563f2d..83262586e4 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -840,6 +840,10 @@ static void riscv_cpu_init(Object *obj)
}
static Property riscv_cpu_properties[] = {
+ /*
+ * Names for ISA extensions and features should be in lowercase.
+ */
+
/* Base ISA and single-letter standard extensions */
DEFINE_PROP_BOOL("i", RISCVCPU, cfg.ext_i, true),
DEFINE_PROP_BOOL("e", RISCVCPU, cfg.ext_e, false),
@@ -855,11 +859,11 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, true),
/* Standard unprivileged extensions */
- DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true),
- DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true),
+ DEFINE_PROP_BOOL("zicsr", RISCVCPU, cfg.ext_icsr, true),
+ DEFINE_PROP_BOOL("zifencei", RISCVCPU, cfg.ext_ifencei, true),
- DEFINE_PROP_BOOL("Zfh", RISCVCPU, cfg.ext_zfh, false),
- DEFINE_PROP_BOOL("Zfhmin", RISCVCPU, cfg.ext_zfhmin, false),
+ DEFINE_PROP_BOOL("zfh", RISCVCPU, cfg.ext_zfh, false),
+ DEFINE_PROP_BOOL("zfhmin", RISCVCPU, cfg.ext_zfhmin, false),
DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false),
DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false),
DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false),
@@ -884,8 +888,8 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("zksh", RISCVCPU, cfg.ext_zksh, false),
DEFINE_PROP_BOOL("zkt", RISCVCPU, cfg.ext_zkt, false),
- DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false),
- DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false),
+ DEFINE_PROP_BOOL("zve32f", RISCVCPU, cfg.ext_zve32f, false),
+ DEFINE_PROP_BOOL("zve64f", RISCVCPU, cfg.ext_zve64f, false),
/* Standard supervisor-level extensions */
DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false),
@@ -893,7 +897,7 @@ static Property riscv_cpu_properties[] = {
DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false),
/* Base features */
- DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true),
+ DEFINE_PROP_BOOL("counters", RISCVCPU, cfg.ext_counters, true),
DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true),
DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true),
DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true),
@@ -922,6 +926,15 @@ static Property riscv_cpu_properties[] = {
/* Other options */
DEFINE_PROP_BOOL("short-isa-string", RISCVCPU, cfg.short_isa_string, false),
+ /* Capitalized aliases (deprecated and will be removed) */
+ DEFINE_PROP("Counters", RISCVCPU, cfg.ext_counters, qdev_prop_bool, bool),
+ DEFINE_PROP("Zifencei", RISCVCPU, cfg.ext_ifencei, qdev_prop_bool, bool),
+ DEFINE_PROP("Zicsr", RISCVCPU, cfg.ext_icsr, qdev_prop_bool, bool),
+ DEFINE_PROP("Zfh", RISCVCPU, cfg.ext_zfh, qdev_prop_bool, bool),
+ DEFINE_PROP("Zfhmin", RISCVCPU, cfg.ext_zfhmin, qdev_prop_bool, bool),
+ DEFINE_PROP("Zve32f", RISCVCPU, cfg.ext_zve32f, qdev_prop_bool, bool),
+ DEFINE_PROP("Zve64f", RISCVCPU, cfg.ext_zve64f, qdev_prop_bool, bool),
+
DEFINE_PROP_END_OF_LIST(),
};
--
2.34.1
On Fri, Jun 3, 2022 at 9:37 PM Tsukasa OI <research_trasio@irq.a4lg.com> wrote: > > Many CPU properties for RISC-V are in lowercase except those with > "capitalized" (or CamelCase) names: > > - Counters > - Zifencei > - Zicsr > - Zfh > - Zfhmin > - Zve32f > - Zve64f > > This commit makes lowercase names primary but keeps capitalized names > as aliases (for backward compatibility, but with deprecated status). > > Signed-off-by: Tsukasa OI <research_trasio@irq.a4lg.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/riscv/cpu.c | 27 ++++++++++++++++++++------- > 1 file changed, 20 insertions(+), 7 deletions(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index 3f21563f2d..83262586e4 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -840,6 +840,10 @@ static void riscv_cpu_init(Object *obj) > } > > static Property riscv_cpu_properties[] = { > + /* > + * Names for ISA extensions and features should be in lowercase. > + */ > + > /* Base ISA and single-letter standard extensions */ > DEFINE_PROP_BOOL("i", RISCVCPU, cfg.ext_i, true), > DEFINE_PROP_BOOL("e", RISCVCPU, cfg.ext_e, false), > @@ -855,11 +859,11 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("h", RISCVCPU, cfg.ext_h, true), > > /* Standard unprivileged extensions */ > - DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), > - DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), > + DEFINE_PROP_BOOL("zicsr", RISCVCPU, cfg.ext_icsr, true), > + DEFINE_PROP_BOOL("zifencei", RISCVCPU, cfg.ext_ifencei, true), > > - DEFINE_PROP_BOOL("Zfh", RISCVCPU, cfg.ext_zfh, false), > - DEFINE_PROP_BOOL("Zfhmin", RISCVCPU, cfg.ext_zfhmin, false), > + DEFINE_PROP_BOOL("zfh", RISCVCPU, cfg.ext_zfh, false), > + DEFINE_PROP_BOOL("zfhmin", RISCVCPU, cfg.ext_zfhmin, false), > DEFINE_PROP_BOOL("zfinx", RISCVCPU, cfg.ext_zfinx, false), > DEFINE_PROP_BOOL("zdinx", RISCVCPU, cfg.ext_zdinx, false), > DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false), > @@ -884,8 +888,8 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("zksh", RISCVCPU, cfg.ext_zksh, false), > DEFINE_PROP_BOOL("zkt", RISCVCPU, cfg.ext_zkt, false), > > - DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false), > - DEFINE_PROP_BOOL("Zve64f", RISCVCPU, cfg.ext_zve64f, false), > + DEFINE_PROP_BOOL("zve32f", RISCVCPU, cfg.ext_zve32f, false), > + DEFINE_PROP_BOOL("zve64f", RISCVCPU, cfg.ext_zve64f, false), > > /* Standard supervisor-level extensions */ > DEFINE_PROP_BOOL("svinval", RISCVCPU, cfg.ext_svinval, false), > @@ -893,7 +897,7 @@ static Property riscv_cpu_properties[] = { > DEFINE_PROP_BOOL("svpbmt", RISCVCPU, cfg.ext_svpbmt, false), > > /* Base features */ > - DEFINE_PROP_BOOL("Counters", RISCVCPU, cfg.ext_counters, true), > + DEFINE_PROP_BOOL("counters", RISCVCPU, cfg.ext_counters, true), > DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true), > DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true), > DEFINE_PROP_BOOL("debug", RISCVCPU, cfg.debug, true), > @@ -922,6 +926,15 @@ static Property riscv_cpu_properties[] = { > /* Other options */ > DEFINE_PROP_BOOL("short-isa-string", RISCVCPU, cfg.short_isa_string, false), > > + /* Capitalized aliases (deprecated and will be removed) */ > + DEFINE_PROP("Counters", RISCVCPU, cfg.ext_counters, qdev_prop_bool, bool), > + DEFINE_PROP("Zifencei", RISCVCPU, cfg.ext_ifencei, qdev_prop_bool, bool), > + DEFINE_PROP("Zicsr", RISCVCPU, cfg.ext_icsr, qdev_prop_bool, bool), > + DEFINE_PROP("Zfh", RISCVCPU, cfg.ext_zfh, qdev_prop_bool, bool), > + DEFINE_PROP("Zfhmin", RISCVCPU, cfg.ext_zfhmin, qdev_prop_bool, bool), > + DEFINE_PROP("Zve32f", RISCVCPU, cfg.ext_zve32f, qdev_prop_bool, bool), > + DEFINE_PROP("Zve64f", RISCVCPU, cfg.ext_zve64f, qdev_prop_bool, bool), > + > DEFINE_PROP_END_OF_LIST(), > }; > > -- > 2.34.1 >
This commit adds a deprecation note of capitalized property names of
RISC-V CPU to documentation.
Signed-off-by: Tsukasa OI <research_trasio@irq.a4lg.com>
---
docs/about/deprecated.rst | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index a92ae0f162..cfc9adcd4b 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -300,6 +300,16 @@ Options are:
Device options
--------------
+CPU options
+'''''''''''
+
+Capitalized property names on RISC-V ``-cpu`` (since 7.1)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Using capitalized RISC-V CPU property names like ``-cpu rv64,Counters=on`` is
+deprecated. Use lowercase names instead (e.g. ``-cpu rv64,counters=on``).
+
+
Emulated device options
'''''''''''''''''''''''
--
2.34.1
© 2016 - 2024 Red Hat, Inc.