From mboxrd@z Thu Jan 1 00:00:00 1970 From: AKASHI Takahiro Date: Wed, 17 Apr 2019 15:57:22 +0900 Subject: [U-Boot] [RFC v3 02/10] efi_loader: export root node handle In-Reply-To: <7e637d3b-f64b-0a8b-54be-e4ad9af64585@gmx.de> References: <20190416042428.5007-1-takahiro.akashi@linaro.org> <20190416042428.5007-3-takahiro.akashi@linaro.org> <7e637d3b-f64b-0a8b-54be-e4ad9af64585@gmx.de> Message-ID: <20190417065721.GP7158@linaro.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Apr 16, 2019 at 06:48:46AM +0200, Heinrich Schuchardt wrote: > On 4/16/19 6:24 AM, AKASHI Takahiro wrote: > >This is a preparatory patch. > >The root node handle will be used as a dummy parent handle when invoking > >an EFI image from bootefi/bootmgr command. > > This patch is not based on the efi-2019-07 branch. This is intentional. > Please, rebase your patch series. As efi-2019-07 can be updated frequently and get old quickly (day by day), in particular before or around rc1 and rc2, I don't want to rebase my patch, instead look forward to the consensus to my approach first. That is why I have sent out this series as a RFC. -Takahiro Akashi > Best regards > > Heinrich > > > > >Signed-off-by: AKASHI Takahiro > >--- > > include/efi_loader.h | 2 ++ > > lib/efi_loader/efi_root_node.c | 13 +++++++------ > > 2 files changed, 9 insertions(+), 6 deletions(-) > > > >diff --git a/include/efi_loader.h b/include/efi_loader.h > >index 00b81c6010ff..d524dc7e24c1 100644 > >--- a/include/efi_loader.h > >+++ b/include/efi_loader.h > >@@ -25,6 +25,8 @@ > > EFI_GUID(0xe61d73b9, 0xa384, 0x4acc, \ > > 0xae, 0xab, 0x82, 0xe8, 0x28, 0xf3, 0x62, 0x8b) > > > >+extern efi_handle_t efi_root; > >+ > > int __efi_entry_check(void); > > int __efi_exit_check(void); > > const char *__efi_nesting(void); > >diff --git a/lib/efi_loader/efi_root_node.c b/lib/efi_loader/efi_root_node.c > >index b056ba3ee880..f2521a64091c 100644 > >--- a/lib/efi_loader/efi_root_node.c > >+++ b/lib/efi_loader/efi_root_node.c > >@@ -10,6 +10,7 @@ > > #include > > > > const efi_guid_t efi_u_boot_guid = U_BOOT_GUID; > >+efi_handle_t efi_root; > > > > struct efi_root_dp { > > struct efi_device_path_vendor vendor; > >@@ -26,12 +27,11 @@ struct efi_root_dp { > > */ > > efi_status_t efi_root_node_register(void) > > { > >- efi_handle_t root; > > efi_status_t ret; > > struct efi_root_dp *dp; > > > > /* Create handle */ > >- ret = efi_create_handle(&root); > >+ ret = efi_create_handle(&efi_root); > > if (ret != EFI_SUCCESS) > > return ret; > > > >@@ -52,24 +52,25 @@ efi_status_t efi_root_node_register(void) > > dp->end.length = sizeof(struct efi_device_path); > > > > /* Install device path protocol */ > >- ret = efi_add_protocol(root, &efi_guid_device_path, dp); > >+ ret = efi_add_protocol(efi_root, &efi_guid_device_path, dp); > > if (ret != EFI_SUCCESS) > > goto failure; > > > > /* Install device path to text protocol */ > >- ret = efi_add_protocol(root, &efi_guid_device_path_to_text_protocol, > >+ ret = efi_add_protocol(efi_root, &efi_guid_device_path_to_text_protocol, > > (void *)&efi_device_path_to_text); > > if (ret != EFI_SUCCESS) > > goto failure; > > > > /* Install device path utilities protocol */ > >- ret = efi_add_protocol(root, &efi_guid_device_path_utilities_protocol, > >+ ret = efi_add_protocol(efi_root, > >+ &efi_guid_device_path_utilities_protocol, > > (void *)&efi_device_path_utilities); > > if (ret != EFI_SUCCESS) > > goto failure; > > > > /* Install Unicode collation protocol */ > >- ret = efi_add_protocol(root, &efi_guid_unicode_collation_protocol, > >+ ret = efi_add_protocol(efi_root, &efi_guid_unicode_collation_protocol, > > (void *)&efi_unicode_collation_protocol); > > if (ret != EFI_SUCCESS) > > goto failure; > > >