stm32mpus.rst 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. STM32 MPUs
  2. ==========
  3. STM32 MPUs are microprocessors designed by STMicroelectronics
  4. based on Arm Cortex-A. This page presents the common configuration of STM32
  5. MPUs, more details and dedicated configuration can be found in each STM32 MPU
  6. page (:ref:`STM32MP1` or :ref:`STM32MP2`)
  7. Design
  8. ------
  9. The STM32 MPU resets in the ROM code of the Cortex-A.
  10. The primary boot core (core 0) executes the boot sequence while
  11. secondary boot core (core 1) is kept in a holding pen loop.
  12. The ROM code boot sequence loads the TF-A binary image from boot device
  13. to embedded SRAM.
  14. The TF-A image must be properly formatted with a STM32 header structure
  15. for ROM code is able to load this image.
  16. Tool stm32image can be used to prepend this header to the generated TF-A binary.
  17. Boot
  18. ~~~~
  19. Only BL2 (with STM32 header) is loaded by ROM code. The other binaries are
  20. inside the FIP binary: BL31 (for Aarch64 platforms), BL32 (OP-TEE), U-Boot
  21. and their respective device tree blobs.
  22. Boot sequence
  23. ~~~~~~~~~~~~~
  24. ROM code -> BL2 (compiled with RESET_TO_BL2) -> OP-TEE -> BL33 (U-Boot)
  25. Build Instructions
  26. ------------------
  27. Boot media(s) supported by BL2 must be specified in the build command.
  28. Available storage medias are:
  29. - ``STM32MP_SDMMC``
  30. - ``STM32MP_EMMC``
  31. - ``STM32MP_RAW_NAND``
  32. - ``STM32MP_SPI_NAND``
  33. - ``STM32MP_SPI_NOR``
  34. Serial boot devices:
  35. - ``STM32MP_UART_PROGRAMMER``
  36. - ``STM32MP_USB_PROGRAMMER``
  37. Only one storage or serial device should be selected in the build command line,
  38. to save space and not overflow SYSRAM size, or else the platform won't build or boot.
  39. Other configuration flags:
  40. - | ``DTB_FILE_NAME``: to precise board device-tree blob to be used.
  41. | Default: stm32mp157c-ev1.dtb
  42. - | ``DWL_BUFFER_BASE``: the 'serial boot' load address of FIP,
  43. | default location (end of the first 128MB) is used when absent
  44. - | ``STM32MP_RECONFIGURE_CONSOLE``: to re-configure crash console (especially after BL2).
  45. | Default: 0 (disabled)
  46. - | ``STM32MP_UART_BAUDRATE``: to select UART baud rate.
  47. | Default: 115200
  48. Populate SD-card
  49. ----------------
  50. Boot with FIP
  51. ~~~~~~~~~~~~~
  52. The SD-card has to be formatted with GPT.
  53. It should contain at least those partitions:
  54. - fsbl: to copy the tf-a-stm32mp157c-ev1.stm32 binary (BL2)
  55. - fip (GUID 19d5df83-11b0-457b-be2c-7559c13142a5): which contains the FIP binary
  56. Usually, two copies of fsbl are used (fsbl1 and fsbl2) instead of one partition fsbl.
  57. --------------
  58. *Copyright (c) 2023-2024, STMicroelectronics - All Rights Reserved*