Blame view
doc/README.TPL
1.7 KB
3aa29de0b TPL : introduce t... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Generic TPL framework ===================== Overview -------- TPL---Third Program Loader. Due to the SPL on some boards(powerpc mpc85xx) has a size limit and cannot be compatible with all the external device(e.g. DDR). So add a tertiary program loader (TPL) to enable a loader stub loaded by the code from the SPL. It loads the final uboot image into DDR, then jump to it to begin execution. Now, only the powerpc mpc85xx has this requirement and will implemente it. Keep consistent with SPL, with this framework almost all source files for a board can be reused. No code duplication or symlinking is necessary anymore. How it works ------------ |
4379ac614 kbuild: rename TO... |
21 |
There has been a directory $(srctree)/spl which contains only a Makefile. The |
3aa29de0b TPL : introduce t... |
22 23 24 25 26 27 28 29 30 31 32 |
Makefile is shared by SPL and TPL. The object files are built separately for SPL/TPL and placed in the directory spl/tpl. The final binaries which are generated are u-boot-{spl|tpl}, u-boot-{spl|tpl}.bin and u-boot-{spl|tpl}.map. During the TPL build a variable named CONFIG_TPL_BUILD is exported in the make environment and also appended to CPPFLAGS with -DCONFIG_TPL_BUILD. The SPL options are shared by SPL and TPL, the board config file should determine which SPL options to choose based on whether CONFIG_TPL_BUILD |
32f2ca2a7 cosmetic: Fix spe... |
33 |
is set. Source files can be compiled for TPL with options chosen in the |
3aa29de0b TPL : introduce t... |
34 |
board config file. |
54e1223aa dm: doc: add docu... |
35 36 37 |
TPL use a small device tree (u-boot-tpl.dtb), containing only the nodes with the pre-relocation properties: 'u-boot,dm-pre-reloc' and 'u-boot,dm-tpl' (see README.SPL for details). |
3aa29de0b TPL : introduce t... |
38 39 40 41 42 43 44 45 46 |
For example: spl/Makefile: LIBS-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/libcommon.o CONFIG_SPL_LIBCOMMON_SUPPORT is defined in board config file: #ifdef CONFIG_TPL_BUILD #define CONFIG_SPL_LIBCOMMON_SUPPORT #endif |