summaryrefslogtreecommitdiffstats
path: root/docs/03-architecture/03-gsp-and-gsp-rm.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/03-architecture/03-gsp-and-gsp-rm.md')
-rw-r--r--docs/03-architecture/03-gsp-and-gsp-rm.md23
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/03-architecture/03-gsp-and-gsp-rm.md b/docs/03-architecture/03-gsp-and-gsp-rm.md
index 8809bb7..fe51838 100644
--- a/docs/03-architecture/03-gsp-and-gsp-rm.md
+++ b/docs/03-architecture/03-gsp-and-gsp-rm.md
@@ -54,6 +54,29 @@ Our emulation implements stage completion rather than the stages themselves —
which is legitimate because the *only observable* to the driver is the state
machine it polls.
+```mermaid
+sequenceDiagram
+ autonumber
+ participant GD as Guest driver
+ participant R0 as BAR0 shadow
+ participant GE as GSP emulation thread
+ participant MQ as Message queues in guest sysmem
+ participant GRM as GSP-RM emulation
+
+ GD->>R0: WPR descriptors and boot kicks
+ GE-->>R0: stage status transitions
+ GD->>R0: poll for boot complete
+ R0-->>GD: firmware running
+ GD->>MQ: set up queues and ring the doorbell
+ GE->>MQ: read and dispatch elements
+ GRM-->>MQ: write replies
+ GE-->>GD: MSI-X completion
+```
+
+The cross-component detail (doorbells, queues, interrupts, latency classes) is
+in [`09-full-system-picture.md`](09-full-system-picture.md) and
+[`10-interaction-and-scheduling.md`](10-interaction-and-scheduling.md).
+
## 3. The transport: message queues and RPC
GSP-RM's transport is a shared-memory message queue pair: