• Conor Dooley's avatar
    dt-bindings: riscv: add new riscv,isa strings for emulators · 299824e6
    Conor Dooley authored
    The QEMU virt and spike machines currently export a riscv,isa string of
    "rv64imafdcsuh",
    
    While the RISC-V foundation has been ratifying a bunch of extenstions
    etc, the kernel has remained relatively static with what hardware is
    supported - but the same is not true of QEMU. Using the virt machine
    and running dt-validate on the dumped dtb fails, partly due to the
    unexpected isa string.
    
    Rather than enumerate the many many possbilities, change the pattern
    to a regex, with the following assumptions:
    - ima are required
    - the single letter order is fixed & we don't care about things that
      can't even do "ima"
    - the standard multi letter extensions are all in a "_z<foo>" format
      where the first letter of <foo> is a valid single letter extension
    - _s & _h are used for supervisor and hyper visor extensions
    - convention says that after the first two chars, a standard multi
      letter extension name could be an english word (ifencei anyone?) so
      it's not worth restricting the charset
    - as the above is just convention, don't apply any charset restrictions
      to reduce future churn
    - vendor ISA extensions begind with _x and have no charset restrictions
    - we don't care about an e extension from an OS pov
    - that attempting to validate the contents of the multiletter extensions
      with dt-validate beyond the formatting is a futile, massively verbose
      or unwieldy exercise at best
    
    The following limitations also apply:
    - multi letter extension ordering is not enforced. dt-schema does not
      appear to allow for named match groups, so the resulting regex would
      be even more of a headache
    - ditto for the numbered extensions
    
    Finally, add me as a maintainer of the binding so that when it breaks
    in the future, I can be held responsible!
    Reported-by: default avatarRob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/linux-riscv/20220803170552.GA2250266-robh@kernel.org/Reviewed-by: default avatarAndrew Jones <ajones@ventanamicro.com>
    Acked-by: default avatarGuo Ren <guoren@kernel.org>
    Signed-off-by: default avatarConor Dooley <conor.dooley@microchip.com>
    Acked-by: default avatarHeiko Stuebner <heiko@sntech.de>
    Reviewed-by: default avatarRob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20220823183319.3314940-4-mail@conchuod.ieSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
    299824e6
cpus.yaml 5.51 KB