Is vstimecmph part of 64-bit timer state?
Yes. vstimecmph is the RV32-only high-half CSR for bits 63:32 of the 64-bit vstimecmp value.
vstimecmph is an RV32-only CSR that accesses bits 63:32 of the 64-bit vstimecmp value. VS-mode reaches this state through the stimecmph alias, subject to Sstc, menvcfg.STCE, henvcfg.STCE, and mcounteren.TM/hcounteren.TM gating.
vstimecmph exists only for RV32 and accesses the upper 32 bits of the VS timer compare value. VS-mode access to stimecmph is substituted to the high half of vstimecmp, and it is available only when the relevant Sstc and counter-access gates allow it.
Confirm that Sstc/H and relevant enable bits are implemented.
On RV32, handle it as the high-half CSR access path.
Do not confuse time offset with timer compare state.
Yes. vstimecmph is the RV32-only high-half CSR for bits 63:32 of the 64-bit vstimecmp value.
It participates in VS-level timer compare: when time+htimedelta reaches or exceeds vstimecmp, hip.VSTIP eventually becomes set and is delivered according to interrupt-enable and delegation rules while V=1.