fix(boot protocol): check if 'gp-register-num' set
The manifests field 'gp-register-num' configures the register in which
the partition expects to receive the address of the boot info blob.
The section 5.4.3 of the FF-A v1.1 EAC0 specification states the
presence of this field should be indicative to the partition manager
that it should produce boot information. This patch skips processing
the boot info blob if the referred is not present in the manifest.
Change-Id: I7ced1414217c358fbcc675dc4ab5d3550d110bb6
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/src/manifest.c b/src/manifest.c
index 558509f..14e2df1 100644
--- a/src/manifest.c
+++ b/src/manifest.c
@@ -844,10 +844,12 @@
vm->partition.load_addr = load_address;
}
- if (header.version == SP_PKG_HEADER_VERSION_2 &&
- vm->partition.boot_info &&
- !ffa_boot_info_node(&boot_info_node, pkg_start, &header)) {
- dlog_error("Failed to process boot information.\n");
+ if (vm->partition.gp_register_num != DEFAULT_BOOT_GP_REGISTER) {
+ if (header.version == SP_PKG_HEADER_VERSION_2 &&
+ vm->partition.boot_info &&
+ !ffa_boot_info_node(&boot_info_node, pkg_start, &header)) {
+ dlog_error("Failed to process boot information.\n");
+ }
}
out: