oxidecomputer / oxidecomputer/hubris
Serving as temporal memory for the host
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
I recently remembered that the host processor totally loses its RTC state across an A0->A2 transition, which (among other things) means that some logs are generated with a date in 1986 until NTP happens.
Dating back to RFD 34 (section 4.1.3) we've discussed the possibility of using the SP as an RTC backup. The SP has a realtime clock that is just as accurate as the host's, and we've been including the (thus far unused) 32 kHz crystal on all boards. So, we could do the following:
- Run the RTC in the SP. (We may eventually need this for SP purposes too, though I'm really trying to avoid it!)
- Accept a message over IPCC to set the RTC, since the host has NTP and stuff.
- Accept a message over IPCC to provide the current contents of the RTC, which the host could use early in boot to establish the time long before the network comes up.
The host would probably want to periodically refresh the SP's time, because unlike a monotonic clock driven by a crystal, the time determined through NTP can move around.
This wouldn't fix the fact that the host doesn't know the correct time on power on, but most host reboots should not involve a full board power cycle -- so this would get us most of the way there.
We're not yet confident that we need to do this, so this issue is a placeholder.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading RFD 34, section 4.1.3, and review the issue's proposed SP RTC and IPCC interactions. Before implementation, establish whether this placeholder is needed and identify the relevant SP and host entry points. Done means a decided scope for RTC setting, retrieval, refresh, and early-boot use, or a documented decision not to pursue it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100