io_framework_usage_overview.puml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. @startuml
  2. participant bl_common
  3. participant arm_io_storage
  4. participant io_storage
  5. == Platform Setup ==
  6. bl1_main -> xxx_bl1_setup : bl1_platform_setup()
  7. xxx_bl1_setup -> arm_io_storage : plat_arm_io_setup()
  8. arm_io_storage -> arm_io_storage : arm_io_setup()
  9. ref over arm_io_storage, io_storage : io device registration
  10. == Get Image ==
  11. bl1_main -> xxx_bl1_setup : bl1_plat_get_next_image_id()
  12. bl1_main <-- xxx_bl1_setup : BL2_IMAGE_ID
  13. bl1_main -> bl1_main : bl1_load_bl2()
  14. activate bl1_main
  15. bl1_main -> plat_bl1_common : bl1_plat_get_image_desc(BL2_IMAGE_ID)
  16. bl1_main <-- plat_bl1_common : BL2_IMAGE_DESC
  17. bl1_main -> plat_bl1_common : bl1_plat_handle_pre_image_load(BL2_IMAGE_ID)
  18. bl1_main -> bl_common : load_auth_image(BL2_IMAGE_ID, image_info)
  19. activate bl_common
  20. bl_common -> bl_common : load_auth_image_internal(BL2_IMAGE_ID, image_info, is_parent_image)
  21. activate bl_common
  22. bl_common -> bl_common : load_image(BL2_IMAGE_ID, image_info)
  23. activate bl_common
  24. bl_common -> arm_io_storage : plat_get_image_source(BL2_IMAGE_ID, &dev_handle, &image_spec)
  25. ref over arm_io_storage, io_storage : init and check device (BL2_IMAGE_ID)
  26. bl_common <-- arm_io_storage : dev_handle
  27. bl_common -> io_storage : io_open(dev_handle, image_spec, &image_handle)
  28. ref over io_storage : io_open() on fip device
  29. bl_common <-- io_storage : image_handle
  30. bl_common -> io_storage : io_size(image_handle, &image_size)
  31. ref over io_storage : io_size() on fip device
  32. bl_common -> io_storage : io_read(image_handle, image_base, image_size, &bytes_read)
  33. ref over io_storage : io_read() on fip device
  34. bl_common -> io_storage : io_close(image_handle)
  35. ref over io_storage : io_close() on fip device
  36. bl_common -> io_storage : io_dev_close(dev_handle)
  37. ref over io_storage : io_dev_close() on fip device
  38. deactivate bl_common
  39. deactivate bl_common
  40. deactivate bl_common
  41. == Prepare Next Image ==
  42. bl1_main -> plat_bl1_common : bl1_plat_handle_post_image_load(BL2_IMAGE_ID)
  43. deactivate bl1_main
  44. == Jump to next Image ==
  45. @enduml