efi_loader: Make HII a config option
Heinrich ran into issues with HII and iPXE which lead to #SErrors on his Odroid-C2 system. We definitely do not want to regress just yet, so let's not expose the HII protocols by default. Instead, let's make it a config option that people can play with This way, we can stabilize the code in tree without breaking any users. Once someone figures out, why this breaks iPXE (probably a NULL dereference), we can enable it by default. Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de> --- v1 -> v2: - Remove HII selftest as well v2 -> v3: - Make config option
This commit is contained in:
		
							parent
							
								
									2f8ab1218f
								
							
						
					
					
						commit
						5fbb28958b
					
				|  | @ -34,3 +34,18 @@ config EFI_LOADER_BOUNCE_BUFFER | ||||||
| 	  Some hardware does not support DMA to full 64bit addresses. For this | 	  Some hardware does not support DMA to full 64bit addresses. For this | ||||||
| 	  hardware we can create a bounce buffer so that payloads don't have to | 	  hardware we can create a bounce buffer so that payloads don't have to | ||||||
| 	  worry about platform details. | 	  worry about platform details. | ||||||
|  | 
 | ||||||
|  | config EFI_LOADER_HII | ||||||
|  | 	bool "Expose HII protocols to EFI applications" | ||||||
|  | 	depends on EFI_LOADER | ||||||
|  | 	default n | ||||||
|  | 	help | ||||||
|  | 	  The Human Interface Infrastructure is a complicated framework that | ||||||
|  | 	  allows UEFI applications to draw fancy menus and hook strings using | ||||||
|  | 	  a translation framework. | ||||||
|  | 
 | ||||||
|  | 	  U-Boot implements enough of its features to be able to run the UEFI | ||||||
|  | 	  Shell, but not more than that. The code is experimental still, so | ||||||
|  | 	  beware that your system might break with HII enabled. | ||||||
|  | 
 | ||||||
|  | 	  If unsure, say n. | ||||||
|  |  | ||||||
|  | @ -1558,6 +1558,7 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path, | ||||||
| 	if (ret != EFI_SUCCESS) | 	if (ret != EFI_SUCCESS) | ||||||
| 		goto failure; | 		goto failure; | ||||||
| 
 | 
 | ||||||
|  | #if CONFIG_IS_ENABLED(EFI_LOADER_HII) | ||||||
| 	ret = efi_add_protocol(&obj->header, | 	ret = efi_add_protocol(&obj->header, | ||||||
| 			       &efi_guid_hii_string_protocol, | 			       &efi_guid_hii_string_protocol, | ||||||
| 			       (void *)&efi_hii_string); | 			       (void *)&efi_hii_string); | ||||||
|  | @ -1575,6 +1576,7 @@ efi_status_t efi_setup_loaded_image(struct efi_device_path *device_path, | ||||||
| 			       (void *)&efi_hii_config_routing); | 			       (void *)&efi_hii_config_routing); | ||||||
| 	if (ret != EFI_SUCCESS) | 	if (ret != EFI_SUCCESS) | ||||||
| 		goto failure; | 		goto failure; | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
| failure: | failure: | ||||||
|  |  | ||||||
|  | @ -25,7 +25,6 @@ efi_selftest_exception.o \ | ||||||
| efi_selftest_exitbootservices.o \ | efi_selftest_exitbootservices.o \ | ||||||
| efi_selftest_fdt.o \ | efi_selftest_fdt.o \ | ||||||
| efi_selftest_gop.o \ | efi_selftest_gop.o \ | ||||||
| efi_selftest_hii.o \ |  | ||||||
| efi_selftest_loaded_image.o \ | efi_selftest_loaded_image.o \ | ||||||
| efi_selftest_manageprotocols.o \ | efi_selftest_manageprotocols.o \ | ||||||
| efi_selftest_memory.o \ | efi_selftest_memory.o \ | ||||||
|  | @ -41,6 +40,7 @@ efi_selftest_variables.o \ | ||||||
| efi_selftest_watchdog.o | efi_selftest_watchdog.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o | obj-$(CONFIG_CPU_V7) += efi_selftest_unaligned.o | ||||||
|  | obj-$(CONFIG_EFI_LOADER_HII) += efi_selftest_hii.o | ||||||
| 
 | 
 | ||||||
| ifeq ($(CONFIG_BLK)$(CONFIG_PARTITIONS),yy) | ifeq ($(CONFIG_BLK)$(CONFIG_PARTITIONS),yy) | ||||||
| obj-y += efi_selftest_block_device.o | obj-y += efi_selftest_block_device.o | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue