[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v6 03/20] xen/riscv: introduce extenstion support check by compiler
On Thu, Mar 21, 2024 at 09:31:59AM +0100, Jan Beulich wrote: > On 20.03.2024 20:44, Conor Dooley wrote: > > On Wed, Mar 20, 2024 at 07:58:05PM +0100, Oleksii wrote: > >> On Mon, 2024-03-18 at 17:58 +0100, Jan Beulich wrote: > >>> On 15.03.2024 19:05, Oleksii Kurochko wrote: > >>>> Currently, RISC-V requires two extensions: _zbb and _zihintpause. > >>> > >>> Do we really require Zbb already? > >> After an introduction of Andrew C. patches [1] it is requited for > >> __builtin_ffs{l} > >> > >> [1] > >> https://lore.kernel.org/xen-devel/20240313172716.2325427-1-andrew.cooper3@xxxxxxxxxx/T/#t > >>> > >>>> This patch introduces a compiler check to check if these extensions > >>>> are supported. > >>>> Additionally, it introduces the riscv/booting.txt file, which > >>>> contains > >>>> information about the extensions that should be supported by the > >>>> platform. > >>>> > >>>> In the future, a feature will be introduced to check whether an > >>>> extension > >>>> is supported at runtime. > >>>> However, this feature requires functionality for parsing device > >>>> tree > >>>> source (DTS), which is not yet available. > >>> > >>> Can't you query the CPU for its features? > >> I couldn't find such reg ( or SBI call ) in the spec. > > > > There isn't. > > > >> SBI call sbi_probe_extension() exists, but it doesn't check for every > >> possible extension. As far as I understand it checks only for that one > >> which are present in SBI spec. > > > > Yeah, it only checks for SBI extensions, not ISA extensions. > > And there was never a consideration to add, at the architecture level, > some straightforward way for all layers of software to be able to > easily detect availability of extensions? I find the lack thereof > pretty surprising ... No, there sorta is. There's a "configuration structure" spec in the works, but the (public?) documentation for it is very nascent: https://github.com/riscv/configuration-structure/ It uses (what I seem to recall is an m-mode) CSR to give the address of an ASN.1 structure in memory which is intended to encode a whole raft of information. The CSR itself might be M-Mode, but that doesn't prevent accessing the data itself at any layer in the stack. The last time I read it I got the impression it was supposed to be usable for describing an entire system (including things like i2c or spi controllers). I don't think it ever explicitly says that in the spec, but there's a note (IIRC) that mentions being unsuitable for describing devices on dynamic buses like PCI, so that kinda implies anything else is fair game. Hope that helps? Attachment:
signature.asc
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |