Add FWU documentation
Adds documentation to describe FWU support. Gives an overall
design description and explains the platform configuration
model.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: Ib7b362ec645c7afca198f4b5138a249c17bc5056
diff --git a/docs/services/uml/UpdateAgentClassDiagram.puml b/docs/services/uml/UpdateAgentClassDiagram.puml
new file mode 100644
index 0000000..0dad627
--- /dev/null
+++ b/docs/services/uml/UpdateAgentClassDiagram.puml
@@ -0,0 +1,100 @@
+'-------------------------------------------------------------------------------
+' Copyright (c) 2023, Arm Limited and Contributors. All rights reserved.
+'
+' SPDX-License-Identifier: BSD-3-Clause
+'
+'-------------------------------------------------------------------------------
+
+@startuml
+
+class fw_directory
+class fw_inspector
+class img_dir_serializer
+class stream_manager
+class update_agent
+class fw_store
+class installer
+
+class update_agent {
+ +begin_staging()
+ +end_staging()
+ +cancel_staging()
+ +accept()
+ +select_previous()
+ +open()
+ +commit()
+ +read_stream()
+ +write_stream()
+}
+
+class fw_directory {
+ +set_boot_info()
+ +add_image_info()
+ +find_image_info()
+ +get_image_info()
+ +num_images()
+}
+
+class fw_inspector {
+ +inspect
+}
+
+class img_dir_serializer {
+ +serialize()
+ +get_len()
+}
+
+class stream_manager {
+ +open_buffer_stream()
+ +open_install_stream()
+ +close_stream()
+ +cancel_streams()
+ +is_open_streams()
+ +read()
+ +write()
+}
+
+class fw_store {
+ +synchronize()
+ +begin_install()
+ +cancel_install()
+ +finalize_install()
+ +select_installer()
+ +write_image()
+ +commit_image()
+ +notify_accepted()
+ +is_accepted()
+ +is_trial()
+ +commit_to_update()
+ +revert_to_previous()
+ +export()
+}
+
+class installer {
+ +begin()
+ +finalize()
+ +abort()
+ +open()
+ +commit()
+ +write()
+ +enumerate()
+}
+
+class installer_index {
+ +register()
+ +find()
+ +get()
+ +get_location_ids()
+}
+
+update_agent -> fw_store
+update_agent -> fw_directory
+update_agent -> fw_inspector
+update_agent -> stream_manager
+update_agent -> img_dir_serializer
+img_dir_serializer ..> fw_directory
+fw_inspector -> installer_index
+fw_inspector ..> installer
+stream_manager ..> installer
+
+@enduml