arm-trusted-firmware/tools/nxp/create_pbl
Chris Kay 3789c3c000 build: determine toolchain tools dynamically
Since the introduction of the toolchain detection framework into the
build system, we have done determination and identification of the
toolchain(s) used for the build at the initialization of the build
system.

This incurs a large cost to the build every time - for every toolchain
that has been requested by the current makefile, we try to identify each
tool in the list of known tool classes, even if that tool doesn't
actually see any use.

For the clean and check-like targets we worked around this by disabling
most of the toolchains if we detect these targets, but this is
inflexible and not very reliable, and it still means that when building
normal targets we are incurring that cost for all tools whether they are
used or not.

This change instead modifies the toolchain detection framework to only
initialize a tool for a given toolchain when it is first used. This does
mean that we can no longer warn about an incorrectly-configured
toolchain at the beginning of build system invocation, but it has the
advantage of substantially reducing build time and the complexity of
*using* the framework (at the cost of an increase in complexity in the
framework itself).

Change-Id: I7f3d06b2eb58c1b26a846791a13b0037f32c8013
Signed-off-by: Chris Kay <chris.kay@arm.com>
2024-09-10 09:47:06 +00:00
..
byte_swap.c nxp-tool: for creating pbl file from bl2 2021-03-24 09:49:32 +05:30
create_pbl.c fix(tree): correct some typos 2023-05-09 15:57:12 +01:00
create_pbl.mk fix(nxp-tools): fix tool location path for byte_swape 2022-02-15 08:59:58 +08:00
Makefile build: determine toolchain tools dynamically 2024-09-10 09:47:06 +00:00
pbl_ch2.mk build: unify verbosity handling 2024-06-14 15:54:48 +00:00
pbl_ch3.mk build: unify verbosity handling 2024-06-14 15:54:48 +00:00
README nxp-tool: for creating pbl file from bl2 2021-03-24 09:49:32 +05:30

Description:
------------
Tool 'create_pbl' is a standalone tool to create the PBL images.
	 where,
	     On the basis of Chassis,
	     RCW image is placed first followed by the,
	     PBI commands to copy the,
	     Input BL2 image stored on the,
	     Specified boot source (QSPI or SD or NOR) to the,
             Specified destination address.


Usage in standalone way:
-----------------------

./create_pbl [options] (mentioned below):

	-r  <RCW file-name>         - name of RCW binary file.
	-i  <BL2 Bin file-name>     - file to be added to rcw file.
	-c  <SoC Number>            - SoC numeric identifier, may be one of
                                  1012,1023,1026.1028,
                                  1043,1046,1088,2080,
                                  2088,2160
	-b  <boot source id>        - Boot source id string, may be one of
                                  "qspi", "nor", "nand", "sd", "emmc"
	-d  <Address>               - Destination address where BL2
	                              image is to be copied
	-o  <output filename>	    - Name of PBL image generated
	                              as an output of the tool.
	-e  <Address>               - [Optional] Entry Point Address
	                              of the BL2.bin
	-f  <Address>               - BL2 image offset
	                              on Boot Source for block copy.
	                              command for chassis >=3.)
				      (Must for Ch3, Ignored for Ch2)
	-h  Help.
	-s  Secure boot.

		-s 	secure boot
		-c	SoC Number (see description above)
		-b	Boot source.
		-r	RCW binary file.
		-i	Input file that is to be added to rcw file.
		-o	Name of output file
		-f	Source Offset (Block Copy)
		-d	Destination address to which file has to be copied
		-h	Help.

Example:
	./create_pbl -r <RCW file> -i <bl2.bin> -c <chassis_no> -b <boot_source = sd/qspi/nor> -d <Destination_Addr> -o <pbl_image_name>



Usage at compilation time:
--------------------------------

	make <compilation command......> pbl RCW=<Path_to_RCW_File>/<rcw_file_name.bin>

Example: QSPI Boot For LS1046ARDB-

	make PLAT=ls1046rdb all fip BOOT_MODE=qspi SPD=opteed BL32=tee.bin BL33=u-boot-ls1046.bin pbl RCW=/home/pankaj/flexbuild/packages/firmware/dash-rcw/ls1046ardb/RR_FFSSPPPN_1133_5506/rcw_1600_qspiboot.bin

Example: QSPI Boot For LX2160ARDB-

	make PLAT=lx2160ardb all fip BOOT_MODE=flexspi_nor SPD=opteed BL32=tee_lx2.bin BL33=u-boot_lx2160.bin pbl RCW=plat/nxp/soc-lx2160/lx2160ardb/rcw_1900_600_1600_19_5_2.bin