I have talked with Irma today and promised to write
down my guidance on goals and some context. This is
only my guidance. It is not a law! If you think
differently (or I got something wrong) after reading
this email please speak up.
We have adopted a strong divide and conquer
philosophy. It doesn't mean that we won't do
follow-on work. We are just trying to not slow down
ratifications.
The most important thing for me in discovery are to
support bases, extensions, and profiles. There are
two parts for me: existence and parameters.
Both bases and extensions define instructions,
behavior and state. You are not really RISC-V unless
you have a base.
Extensions may also include other extensions.
Profiles consist of a base and extensions.
You can look at bases and extensions and profiles as
macros that expand
Compilers will eventually encourage developers to
use profiles instead of long strings of extensions.
Compilers with adorn ELF headers with the base and
profiles and/or extensions it requires.
How an OS gets the discovery information is up to
the software stack (direct, SBI calls, device tree,
etc.).
Discovery is intended to provide a way for system
level software to do its job including things like
execute its own appropriately, be able to decide
whether the system can execute a binary (by
comparing elf headers and discovery info), what
state needs to be saved and restored on context
switch, etc.
In my opinion, the most important things are to lay
down the infrastructure (asn), provide libraries to
digest it into an in memory data structure with
lookup routines, and provide the key/value pairs for
existence.
The second most important priority are the
parameters for bases, extensions, and profiles (not
clear to me if this applies to all 3 yet).
I suggest both tasks (task as in Task Group) be
worked on immediately but the parameters should not
stop the highest priority group discussed above.
If they both get ratified this year great. If the
parameters get done early next year that is, in my
opinion, better than waiting for both.
The Task Group's first responsibility is to define
the strategy for these tasks and publish it and
review it with a revised ratplan with chairs. This
must include line of sight to getting the work done
employing the governing committee, Dev Partners, and
myself if necessary. This should be done in the next
4 weeks.
Since everyone is impacted by this, other committees
and SIGs and TGs must get involved and interact with
this TG. This can include identifying reps from each
group to monitor the mailing list or join the TG
meetings. I will bring this up at chairs.
Mark