1b48cd784SPali RohárTF-A UART Booting Instructions for Marvell Platforms 2b48cd784SPali Rohár==================================================== 3b48cd784SPali Rohár 4b48cd784SPali RohárThis section describes how to temporary boot the Trusted Firmware-A (TF-A) project over UART 5b48cd784SPali Rohárwithout flashing it to non-volatile storage for Marvell's platforms. 6b48cd784SPali Rohár 7b48cd784SPali RohárSee :ref:`TF-A Build Instructions for Marvell Platforms` how to build ``mrvl_uart`` and 8b48cd784SPali Rohár``mrvl_flash`` targets used in this section. 9b48cd784SPali Rohár 10b48cd784SPali RohárArmada37x0 UART image downloading 11b48cd784SPali Rohár--------------------------------- 12b48cd784SPali Rohár 13b48cd784SPali RohárThere are two options how to download UART image into any Armada37x0 board. 14b48cd784SPali Rohár 15b48cd784SPali RohárMarvell Wtpdownloader 16b48cd784SPali Rohár~~~~~~~~~~~~~~~~~~~~~ 17b48cd784SPali Rohár 18b48cd784SPali RohárMarvell Wtpdownloader works only with UART images stored in separate files and supports only upload 19b48cd784SPali Rohárspeed with 115200 bauds. Target ``mrvl_uart`` produces GZIPed TAR archive ``uart-images.tgz.bin`` 20b48cd784SPali Rohárwith either three files ``TIM_ATF.bin``, ``wtmi_h.bin`` and ``boot-image_h.bin`` for non-secure 21b48cd784SPali Rohárboot or with four files ``TIM_ATF_TRUSTED.bin``, ``TIMN_ATF_TRUSTED.bin``, ``wtmi_h.bin`` and 22b48cd784SPali Rohár``boot-image_h.bin`` when secure boot is enabled. 23b48cd784SPali Rohár 24b48cd784SPali RohárCompilation: 25b48cd784SPali Rohár 26b48cd784SPali Rohár.. code:: shell 27b48cd784SPali Rohár 28b48cd784SPali Rohár > git clone https://github.com/MarvellEmbeddedProcessors/A3700-utils-marvell.git 29b48cd784SPali Rohár > make -C A3700-utils-marvell/wtptp/src/Wtpdownloader_Linux -f makefile.mk 30b48cd784SPali Rohár 31b48cd784SPali RohárIt produces executable binary ``A3700-utils-marvell/wtptp/src/Wtpdownloader_Linux/WtpDownload_linux`` 32b48cd784SPali Rohár 33b48cd784SPali RohárTo download images from ``uart-images.tgz.bin`` archive unpack it and for non-secure boot variant run: 34b48cd784SPali Rohár 35b48cd784SPali Rohár.. code:: shell 36b48cd784SPali Rohár 37b48cd784SPali Rohár > stty -F /dev/ttyUSB<port#> clocal 38b48cd784SPali Rohár > WtpDownload_linux -P UART -C <port#> -E -B TIM_ATF.bin -I wtmi_h.bin -I boot-image_h.bin 39b48cd784SPali Rohár 40b48cd784SPali RohárAfter that immediately start terminal on ``/dev/ttyUSB<port#>`` to see boot output. 41b48cd784SPali Rohár 42b48cd784SPali RohárCZ.NIC mox-imager 43b48cd784SPali Rohár~~~~~~~~~~~~~~~~~ 44b48cd784SPali Rohár 45b48cd784SPali RohárCZ.NIC mox-imager supports all Armada37x0 boards (not only Turris MOX as name suggests). It works 46b48cd784SPali Rohárwith either with separate files from ``uart-images.tgz.bin`` archive (like Marvell Wtpdownloader) 47b48cd784SPali Rohárproduced by ``mrvl_uart`` target or also with ``flash-image.bin`` file produced by ``mrvl_flash`` 48b48cd784SPali Rohártarget, which is the exactly same file as used for flashing. So when using CZ.NIC mox-imager there 49b48cd784SPali Roháris no need to build separate files for UART flashing like in case with Marvell Wtpdownloader. 50b48cd784SPali Rohár 51b48cd784SPali RohárCZ.NIC mox-imager moreover supports higher upload speeds up to the 6000000 bauds (which seems to 52b48cd784SPali Rohárbe limit of Armada37x0 SoC) which is much higher and faster than Marvell Wtpdownloader. 53b48cd784SPali Rohár 54b48cd784SPali RohárCompilation: 55b48cd784SPali Rohár 56b48cd784SPali Rohár.. code:: shell 57b48cd784SPali Rohár 58b48cd784SPali Rohár > git clone https://gitlab.nic.cz/turris/mox-imager.git 59b48cd784SPali Rohár > make -C mox-imager 60b48cd784SPali Rohár 61b48cd784SPali RohárIt produces executable binary ``mox-imager/mox-imager`` 62b48cd784SPali Rohár 63b48cd784SPali RohárTo download single file image built by ``mrvl_flash`` target at the highest speed, run: 64b48cd784SPali Rohár 65b48cd784SPali Rohár.. code:: shell 66b48cd784SPali Rohár 67b48cd784SPali Rohár > mox-imager -D /dev/ttyUSB<port#> -E -b 6000000 -t flash-image.bin 68b48cd784SPali Rohár 69b48cd784SPali RohárTo download images from ``uart-images.tgz.bin`` archive built by ``mrvl_uart`` target for 70b48cd784SPali Rohárnon-secure boot variant (like Wtpdownloader) but at the highest speed, first unpack 71b48cd784SPali Rohár``uart-images.tgz.bin`` archive and then run: 72b48cd784SPali Rohár 73b48cd784SPali Rohár.. code:: shell 74b48cd784SPali Rohár 75b48cd784SPali Rohár > mox-imager -D /dev/ttyUSB<port#> -E -b 6000000 -t TIM_ATF.bin wtmi_h.bin boot-image_h.bin 76b48cd784SPali Rohár 77b48cd784SPali RohárCZ.NIC mox-imager after successful download will start its own mini terminal (option ``-t``) to 78b48cd784SPali Rohárnot loose any boot output. It also prints boot output which is sent either by image files or by 79b48cd784SPali Rohárbootrom during transferring of image files. This mini terminal can be quit by CTRL-\\ + C keypress. 80b48cd784SPali Rohár 81b48cd784SPali Rohár 82*de89b282SPali RohárA7K/A8K/CN913x UART image downloading 83*de89b282SPali Rohár------------------------------------- 84b48cd784SPali Rohár 85*de89b282SPali RohárA7K/A8K/CN913x uses same image ``flash-image.bin`` for both flashing and booting over UART. 86b48cd784SPali RohárFor downloading image over UART it is possible to use mvebu64boot tool. 87b48cd784SPali Rohár 88b48cd784SPali RohárCompilation: 89b48cd784SPali Rohár 90b48cd784SPali Rohár.. code:: shell 91b48cd784SPali Rohár 92b48cd784SPali Rohár > git clone https://github.com/pali/mvebu64boot.git 93b48cd784SPali Rohár > make -C mvebu64boot 94b48cd784SPali Rohár 95b48cd784SPali RohárIt produces executable binary ``mvebu64boot/mvebu64boot`` 96b48cd784SPali Rohár 97b48cd784SPali RohárTo download ``flash-image.bin`` image run: 98b48cd784SPali Rohár 99b48cd784SPali Rohár.. code:: shell 100b48cd784SPali Rohár 101b48cd784SPali Rohár > mvebu64boot -t -b flash-image.bin /dev/ttyUSB0 102b48cd784SPali Rohár 103b48cd784SPali RohárAfter successful download it will start own mini terminal (option ``-t``) like CZ.NIC mox-imager. 104