mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 15:28:50 +00:00
bloblist: kconfig for mandatory incoming standard passage
In previous commit, incoming standard passage is used by default when initializing the bloblist, so explicitly BLOBLIST_PASSAGE is no more needed. Rename it as BLOBLIST_PASSAGE_MANDATORY to determine the behaviors when an incoming transfer list does not exist or is invalid. When it is selected, incoming standard passage is mandatory and U-Boot will report an error when a valid incoming transfer list is missing. Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
This commit is contained in:
parent
7bb12a9bb9
commit
d6e9f13a41
5 changed files with 21 additions and 11 deletions
|
@ -1066,11 +1066,15 @@ config BLOBLIST_ALLOC
|
||||||
specify a fixed address on systems where this is unknown or can
|
specify a fixed address on systems where this is unknown or can
|
||||||
change at runtime.
|
change at runtime.
|
||||||
|
|
||||||
config BLOBLIST_PASSAGE
|
config BLOBLIST_PASSAGE_MANDATORY
|
||||||
bool "Use bloblist in-place"
|
bool "Use bloblist in-place mandatorily"
|
||||||
help
|
help
|
||||||
Use a bloblist in the incoming standard passage. The size is detected
|
By default U-Boot will use a bloblist in the incoming standard passage.
|
||||||
automatically so CONFIG_BLOBLIST_SIZE can be 0.
|
This option controls whether U-Boot tries to load a static bloblist or
|
||||||
|
allocate one if a valid incoming bloblist does not exist.
|
||||||
|
Select this option to mark incoming standard passage as mandatory and
|
||||||
|
U-Boot will report an error when a valid incoming bloblist does not
|
||||||
|
exist.
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
@ -1086,7 +1090,7 @@ config BLOBLIST_ADDR
|
||||||
|
|
||||||
config BLOBLIST_SIZE
|
config BLOBLIST_SIZE
|
||||||
hex "Size of bloblist"
|
hex "Size of bloblist"
|
||||||
default 0x0 if BLOBLIST_PASSAGE
|
default 0x0 if BLOBLIST_PASSAGE_MANDATORY
|
||||||
default 0x400
|
default 0x400
|
||||||
help
|
help
|
||||||
Sets the size of the bloblist in bytes. This must include all
|
Sets the size of the bloblist in bytes. This must include all
|
||||||
|
|
|
@ -526,6 +526,13 @@ int bloblist_init(void)
|
||||||
*/
|
*/
|
||||||
bool from_addr = fixed && !xpl_is_first_phase();
|
bool from_addr = fixed && !xpl_is_first_phase();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If Firmware Handoff is mandatory but no transfer list is
|
||||||
|
* observed, report it as an error.
|
||||||
|
*/
|
||||||
|
if (IS_ENABLED(CONFIG_BLOBLIST_PASSAGE_MANDATORY))
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
ret = -ENOENT;
|
ret = -ENOENT;
|
||||||
|
|
||||||
if (xpl_prev_phase() == PHASE_TPL &&
|
if (xpl_prev_phase() == PHASE_TPL &&
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#include <configs/vexpress_fvp_defconfig>
|
#include <configs/vexpress_fvp_defconfig>
|
||||||
|
|
||||||
CONFIG_BLOBLIST=y
|
CONFIG_BLOBLIST=y
|
||||||
CONFIG_BLOBLIST_PASSAGE=y
|
CONFIG_BLOBLIST_PASSAGE_MANDATORY=y
|
||||||
CONFIG_BLOBLIST_SIZE_RELOC=0x10000
|
CONFIG_BLOBLIST_SIZE_RELOC=0x10000
|
||||||
|
|
|
@ -53,8 +53,8 @@ predefined bloblist at a specified address, dynamically allocating memory for a
|
||||||
bloblist, or utilizing a standard passage-provided bloblist with automatic size
|
bloblist, or utilizing a standard passage-provided bloblist with automatic size
|
||||||
detection.
|
detection.
|
||||||
|
|
||||||
By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method
|
By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method mandatorily
|
||||||
(CONFIG_BLOBLIST_PASSAGE) because TF-A provides a Transfer List in non-secure
|
(CONFIG_BLOBLIST_PASSAGE_MANDATORY) because TF-A provides a Transfer List in non-secure
|
||||||
memory that U-Boot can utilise. This Bloblist, which is referred to as a Transfer List in
|
memory that U-Boot can utilise. This Bloblist, which is referred to as a Transfer List in
|
||||||
TF-A, contains all necessary data for the handoff process, including DT and ACPI
|
TF-A, contains all necessary data for the handoff process, including DT and ACPI
|
||||||
tables.
|
tables.
|
||||||
|
|
|
@ -467,9 +467,8 @@ int bloblist_reloc(void *to, uint to_size);
|
||||||
* If CONFIG_BLOBLIST_ALLOC is selected, it allocates memory for a bloblist of
|
* If CONFIG_BLOBLIST_ALLOC is selected, it allocates memory for a bloblist of
|
||||||
* size CONFIG_BLOBLIST_SIZE.
|
* size CONFIG_BLOBLIST_SIZE.
|
||||||
*
|
*
|
||||||
* If CONFIG_BLOBLIST_PASSAGE is selected, it uses the bloblist in the incoming
|
* If CONFIG_BLOBLIST_PASSAGE_MANDATORY is selected, bloblist in the incoming
|
||||||
* standard passage. The size is detected automatically so CONFIG_BLOBLIST_SIZE
|
* standard passage is mandatorily required.
|
||||||
* can be 0.
|
|
||||||
*
|
*
|
||||||
* Sets GD_FLG_BLOBLIST_READY in global_data flags on success
|
* Sets GD_FLG_BLOBLIST_READY in global_data flags on success
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue