Skip to content
  • Daniel Henrique Barboza's avatar
    b97e5a6b
    target/riscv: add 'max' CPU type · b97e5a6b
    Daniel Henrique Barboza authored
    
    
    The 'max' CPU type is used by tooling to determine what's the most
    capable CPU a current QEMU version implements. Other archs such as ARM
    implements this type. Let's add it to RISC-V.
    
    What we consider "most capable CPU" in this context are related to
    ratified, non-vendor extensions. This means that we want the 'max' CPU
    to enable all (possible) ratified extensions by default. The reasoning
    behind this design is (1) vendor extensions can conflict with each other
    and we won't play favorities deciding which one is default or not and
    (2) non-ratified extensions are always prone to changes, not being
    stable enough to be enabled by default.
    
    All this said, we're still not able to enable all ratified extensions
    due to conflicts between them. Zfinx and all its dependencies aren't
    enabled because of a conflict with RVF. zce, zcmp and zcmt are also
    disabled due to RVD conflicts. When running with 64 bits we're also
    disabling zcf.
    
    MISA bits RVG, RVJ and RVV are also being set manually since they're
    default disabled.
    
    This is the resulting 'riscv,isa' DT for this new CPU:
    
    rv64imafdcvh_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zfa_
    zfh_zfhmin_zca_zcb_zcd_zba_zbb_zbc_zbkb_zbkc_zbkx_zbs_zk_zkn_zknd_
    zkne_zknh_zkr_zks_zksed_zksh_zkt_zve32f_zve64f_zve64d_
    smstateen_sscofpmf_sstc_svadu_svinval_svnapot_svpbmt
    
    Signed-off-by: default avatarDaniel Henrique Barboza <dbarboza@ventanamicro.com>
    Reviewed-by: default avatarWeiwei Li <liweiwei@iscas.ac.cn>
    Reviewed-by: default avatarAlistair Francis <alistair.francis@wdc.com>
    Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
    Message-ID: <20230912132423.268494-11-dbarboza@ventanamicro.com>
    Signed-off-by: default avatarAlistair Francis <alistair.francis@wdc.com>
    b97e5a6b
    target/riscv: add 'max' CPU type
    Daniel Henrique Barboza authored
    
    
    The 'max' CPU type is used by tooling to determine what's the most
    capable CPU a current QEMU version implements. Other archs such as ARM
    implements this type. Let's add it to RISC-V.
    
    What we consider "most capable CPU" in this context are related to
    ratified, non-vendor extensions. This means that we want the 'max' CPU
    to enable all (possible) ratified extensions by default. The reasoning
    behind this design is (1) vendor extensions can conflict with each other
    and we won't play favorities deciding which one is default or not and
    (2) non-ratified extensions are always prone to changes, not being
    stable enough to be enabled by default.
    
    All this said, we're still not able to enable all ratified extensions
    due to conflicts between them. Zfinx and all its dependencies aren't
    enabled because of a conflict with RVF. zce, zcmp and zcmt are also
    disabled due to RVD conflicts. When running with 64 bits we're also
    disabling zcf.
    
    MISA bits RVG, RVJ and RVV are also being set manually since they're
    default disabled.
    
    This is the resulting 'riscv,isa' DT for this new CPU:
    
    rv64imafdcvh_zicbom_zicboz_zicsr_zifencei_zihintpause_zawrs_zfa_
    zfh_zfhmin_zca_zcb_zcd_zba_zbb_zbc_zbkb_zbkc_zbkx_zbs_zk_zkn_zknd_
    zkne_zknh_zkr_zks_zksed_zksh_zkt_zve32f_zve64f_zve64d_
    smstateen_sscofpmf_sstc_svadu_svinval_svnapot_svpbmt
    
    Signed-off-by: default avatarDaniel Henrique Barboza <dbarboza@ventanamicro.com>
    Reviewed-by: default avatarWeiwei Li <liweiwei@iscas.ac.cn>
    Reviewed-by: default avatarAlistair Francis <alistair.francis@wdc.com>
    Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
    Message-ID: <20230912132423.268494-11-dbarboza@ventanamicro.com>
    Signed-off-by: default avatarAlistair Francis <alistair.francis@wdc.com>
Loading