DOC: update documentation.

Add documentation covering:
  - developer information about architecture
  - project structure and building
  - project overview and service descriptions
  - the portability model for supporting hardware

Signed-off-by: Julian Hall <julian.hall@arm.com>
Co-Authored-By: Gyorgy Szing <gyorgy.szing@gmail.com>
Change-Id: I8bf9c01a66350719d82a7ca2bc1c78a8ab17978d
diff --git a/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml b/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml
new file mode 100644
index 0000000..65c6d83
--- /dev/null
+++ b/docs/developer/service-descriptions/uml/CryptoProviderClassDiagram.puml
@@ -0,0 +1,49 @@
+'-------------------------------------------------------------------------------
+' Copyright (c) 2020-2021, Arm Limited and Contributors. All rights reserved.
+'
+' SPDX-License-Identifier: BSD-3-Clause
+'
+'-------------------------------------------------------------------------------
+
+@startuml
+allow_mixing
+left to right direction
+
+
+package CryptoProvider
+{
+	class handler
+	class generate_key_handler
+	class import_key_handler
+	class sign_hash_handler
+	generate_key_handler --|> handler
+	import_key_handler --|> handler
+	sign_hash_handler --|> handler
+}
+package CryptoSerializer
+{
+	class crypto_serializer
+	class protobuf_crypto_serializer
+	class packed_c_crypto_serializer
+	protobuf_crypto_serializer --|> crypto_serializer
+	packed_c_crypto_serializer --|> crypto_serializer
+}
+package MbedCrypto
+{
+	class libmbedcrypto
+}
+package SecureStorage
+{
+	class its_client
+}
+package EntropySource
+{
+	class hw_entropy_source
+}
+
+CryptoProvider ..> CryptoSerializer
+CryptoProvider ..> MbedCrypto
+MbedCrypto ..> SecureStorage
+MbedCrypto ..> EntropySource
+
+@enduml
\ No newline at end of file