oxidecomputer / oxidecomputer/hubris

Serving as temporal memory for the host

Open
#1,619 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Triaged H2'26
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:

  1. Run the RTC in the SP. (We may eventually need this for SP purposes too, though I'm really trying to avoid it!)
  2. Accept a message over IPCC to set the RTC, since the host has NTP and stuff.
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.