From ac644df9a4d5d39b3214d230a14e5ef5c8cfcdf4 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sun, 29 Sep 2024 19:49:45 -0600 Subject: [PATCH] doc: Update init docs for the xPL changes Update the documentation here to cover the meaning of xPL Signed-off-by: Simon Glass --- doc/develop/init.rst | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/doc/develop/init.rst b/doc/develop/init.rst index 2955d9bdbc..ce985781bb 100644 --- a/doc/develop/init.rst +++ b/doc/develop/init.rst @@ -4,15 +4,16 @@ Board Initialisation Flow ------------------------- This is the intended start-up flow for boards. This should apply for both -SPL and U-Boot proper (i.e. they both follow the same rules). +xPL and U-Boot proper (i.e. they both follow the same rules). -Note: "SPL" stands for "Secondary Program Loader," which is explained in -more detail later in this file. +Note: "xPL" stands for "any Program Loader", including SPL (Secondary +Program Loader), TPL (Tertiary Program Loader) and VPL (Verifying Program +Loader). The boot sequence is TPL->VPL->SPL->U-Boot proper -At present, SPL mostly uses a separate code path, but the function names +At present, xPL mostly uses a separate code path, but the function names and roles of each function are the same. Some boards or architectures may not conform to this. At least most ARM boards which use -CONFIG_SPL_FRAMEWORK conform to this. +CONFIG_xPL_FRAMEWORK conform to this. Execution typically starts with an architecture-specific (and possibly CPU-specific) start.S file, such as: @@ -48,7 +49,7 @@ board_init_f() Non-xPL-specific notes: - - dram_init() is called to set up DRAM. If already done in SPL this + - dram_init() is called to set up DRAM. If already done in xPL this can do nothing xPL-specific notes: @@ -68,9 +69,9 @@ xPL-specific notes: - must return normally from this function (don't call board_init_r() directly) -Here the BSS is cleared. For SPL, if CONFIG_SPL_STACK_R is defined, then at +Here the BSS is cleared. For xPL, if CONFIG_xPL_STACK_R is defined, then at this point the stack and global_data are relocated to below -CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of +CONFIG_xPL_STACK_R_ADDR. For non-xPL, U-Boot is relocated to run at the top of memory. board_init_r() @@ -82,11 +83,11 @@ board_init_r() - BSS is available, all static/global variables can be used - execution eventually continues to main_loop() -Non-SPL-specific notes: +Non-xPL-specific notes: - U-Boot is relocated to the top of memory and is now running from there. -SPL-specific notes: +xPL-specific notes: - - stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined + - stack is optionally in SDRAM, if CONFIG_xPL_STACK_R is defined -- 2.39.5