1# Code Update Diagrams
2
31. [High-Level Overview](#High-Level Overview)
4
5## High-Level Overview
6
7```
8┌──────────────┐            ┌─────────────┐       ┌────────────┐
9│User Interface│            │Image Manager│       │Item Updater│
10└──────┬───────┘            └──────┬──────┘       └──────┬─────┘
11       │          Upload           │                     │
12       │         Firmware          │                     │
13       │       Image to BMC        │                     │
14       ├──────────────────────────▶│                     │
15       │                           │                     │
16       │                           │  Extract            │
17       │                           │   image             │
18       │                           │ contents            │
19       │                           │     │               │
20       │                           ├─────┘               │
21       │                           ▼                     │
22       │                           │                     │
23       │                           │    Create           │
24       │                           │Software D-Bus       │
25       │                           │  object[1]          │
26       │                           │       │             │
27       │                           ├───────┘             │
28       │                           ▼                     │
29       │                           │                     │
30       │         Request to        ●                     │
31       │          Activate                               │
32       │          Software                               │
33       │        D-Bus Object                             │
34       ├────────────────────────────────────────────────▶│
35       │                                                 │   Verify
36       │                                                 │  digital
37       │                                                 │ signatures
38       │                                                 │      │
39       │                                                 ├──────┘
40       │                                                 ▼
41       │                                                 │
42       │                                                 │   Write
43       │                                                 │ image to
44       │                                                 │  flash[*]
45       │                                                 │     │
46       │                                                 ├─────┘
47       │                                                 ▼
48       │                                                 │
49       │                                     Success     │
50       │◀────────────────────────────────────────────────┤
51       │                                                 │
52       │                                                 ●
5354   BMC Reboot is
55 required to boot
56 from the updated
57       image
58
59```
60- [1] [Software D-Bus Object](https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/xyz/openbmc_project/Software)
61- [*] In a static layout configuration, the images are stored in RAM and the
62      content is written to flash during BMC reboot. Reference the update and
63      shutdown scripts provided by [initrdscripts](https://github.com/openbmc/openbmc/tree/master/meta-phosphor/recipes-phosphor/initrdscripts)
64