Milestone 6
Milestone 6 Status
Initial work on Milestone 6 has begun, focusing on early-stage design and implementation of context switch management. A lazy context switching design was considered for floating-point and vector state handling. In this approach, access to the floating-point or vector registers on first use triggers a trap, after which the relevant processor state is enabled so that the floating-point and vector context can then be saved and restored as needed. The M6 RFC design and corresponding changes have been shared with the OpenSBI community for review.
Unfortunately, the lazy context switching approach for floating-point and vector state handling was determined to have limitations and will not be accepted upstream. In response, we have updated the design to adopt an eager context switching model and implemented an initial version covering floating-point and vector register state save and restore, along with the associated CSR handling. This implementation enables context switching between S-mode domains using the OpenSBI domain framework. The changes have been submitted to the OpenSBI mailing list for initial review.
Miiestone 6 work will continue through community review and further development of the eager context switching implementation.
Milestone Description
This milestone implements OpenSBI context switch register management. Floating point and vector register saving on a lazy domain context switch in OpenSBI.
Deliverables:
- Software changes to OpenSBI needed to implement a lazy context switch and save and restore the floating point registers as required.
- Software changes to OpenSBI needed to implement a lazy context switch and save and restore the vector registers as required.