Lines Matching refs:to
7 The following instructions explain how to use this port of the TF-A with the
17 shouldn't be considered more than a prototype to play with and implement
18 elements like PSCI to support the Linux kernel.
28 This explains why it is possible to change the execution state (AArch64/AArch32)
36 a `default AArch64 stub`_ at address **0x0** that jumps to the kernel.
43 `Raspbian`_ distribution by renaming it to ``kernel8.img``, while TF-A and
45 default bootstrap code. When using a AArch64 kernel, it is only needed to make
48 Ideally, we want to load the kernel and have all cores available, which means
49 that we need to make the secondary cores work in the way the kernel expects, as
53 To get the most out of a AArch32 kernel, we want to boot it in Hypervisor mode
61 The file ``armstub8.bin`` contains BL1 and the FIP. It is needed to add padding
62 between them so that the addresses they are loaded to match the ones specified
66 file, but we can specify the address it is loaded to in ``config.txt``.
68 The file ``kernel8.img`` contains a kernel image that is loaded to the address
76 that it is loaded above 32MiB in order to avoid the need to relocate
77 prior to decompression, which will make the boot process slightly
83 This means that we need to avoid the first 128 MiB of RAM when placing the
84 TF-A images (and specially the first 32 MiB, as they are directly used to
91 **0x00000000** to **0x3F000000**, it just has different names to simulate a real
130 The area between **0x10000000** and **0x11000000** has to be manually protected
131 so that the kernel doesn't use it. The current port tries to modify the live DTB
132 to add a memreserve region that reserves the previously mentioned area.
134 If this is not possible, the user may manually add ``memmap=16M$256M`` to the
135 command line passed to the kernel in ``cmdline.txt``. See the `Setup SD card`_
136 instructions to see how to do it. This system is strongly discouraged.
140 the DRAM. The memory reserved to be used by the VideoCore is always placed at
143 Considering the 128 MiB allocated to the GPU and the 16 MiB allocated for
151 can jump to the kernel in the same mode and let it take over that privilege
153 TF-A) it could only jump to the kernel in AArch32 in Supervisor mode.
155 The `Linux kernel tree`_ has instructions on how to jump to the Linux kernel
167 the system off, it simply reboots it and asks the VideoCore firmware to keep it
170 The kernel used by `Raspbian`_ doesn't have support for PSCI, so it is needed to
171 use mailboxes to trap the secondary cores until they are ready to jump to the
179 address to jump to in this Mailbox (``bl31_warm_entrypoint``).
181 Once BL31 has finished and the primary core has jumped to the BL33 payload, it
182 has to call ``PSCI_CPU_ON`` to release the secondary CPUs from the wait loop.
185 address to the mailbox so that the secondary CPUs jump to it and are recognised
194 AArch32 toolchain is needed for the AArch32 bootstrap needed to load a 32-bit
199 build folder (e.g. ``build/rpi3/debug/armstub8.bin``). To know how to use this
205 By default this option is 0, which means that TF-A will jump to BL33 in EL2
206 in AArch64 mode. If set to 1, it will jump to BL33 in Hypervisor in AArch32
209 - ``PRELOADED_BL33_BASE``: Used to specify the address of a BL33 binary that has
213 ``config.txt``. It doesn't have to contain a kernel, it could have any
216 - ``RPI3_DIRECT_LINUX_BOOT``: Disabled by default. Set to 1 to enable the direct
221 This option can be combined with ``RPI3_BL33_IN_AARCH32`` in order to boot a
222 32-bit kernel. The only thing this option does is to set the arguments in
226 ``RPI3_DIRECT_LINUX_BOOT=1``. This option allows to specify the location of a
233 - ``RPI3_USE_UEFI_MAP``: Set to 1 to build ATF with the altername memory
235 to be able to run Windows on ARM64. This option, which is disabled by
271 to put the binaries into the FIP.
274 If OP-TEE is used it may be needed to add the following options to the
280 - ``TRUSTED_BOARD_BOOT``: This port supports TBB. Set this option to 1 to enable
281 it. In order to use TBB, you might want to set ``GENERATE_COT=1`` to let the
283 will be generated and output to ``rot_key.pem`` in the build directory. It is
284 able to set ROT_KEY to your own key in PEM format. Also in order to build,
285 you need to clone mbed TLS from `here <https://github.com/ARMmbed/mbedtls>`__.
295 - ``EL3_PAYLOAD_BASE``: The reason is that you can already load anything to any
300 crash console uses the internal 16550 driver functions directly in order to be
301 able to print error messages during early crashes before setting up the
309 to an incorrect DTB file.
331 to the Linux kernel tree maintained by the Raspberry Pi foundation. It modifes
332 the DTS to tell the kernel to use PSCI. Once this patch is applied, follow the
333 instructions in `AArch64 kernel build instructions`_ to get a working 64-bit
361 The following instructions show how to install and run a AArch64 kernel by
363 want to use the default 32-bit kernel.
366 filesystem are 32-bit binaries, but it's a quick way to get it working, and it
367 allows the user to run 64-bit binaries in addition to 32-bit binaries.
378 1.5 times the number of CPUs in your computer. This may take some time to
386 3. Copy the kernel image and the device tree to the SD card. Replace the path
387 by the corresponding path in your computers to the ``boot`` partition of the
392 cp arch/arm64/boot/Image /path/to/boot/kernel8.img
393 cp arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb /path/to/boot/
394 cp arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dtb /path/to/boot/
396 4. Install the kernel modules. Replace the path by the corresponding path to the
402 INSTALL_MOD_PATH=/path/to/filesystem modules_install
416 2. Rename ``kernel7.img`` to ``kernel8.img``. This tricks the VideoCore
428 is only needed to enable debugging through the Mini UART):
436 If you connect a serial cable to the Mini UART and your computer, and connect
437 to it (for example, with ``screen /dev/ttyUSB0 115200``) you should see some