mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 00:11:51 +01:00 
			
		
		
		
	We can pass SMBIOS easily as EFI configuration table to an EFI payload. This patch adds enablement for that case. While at it, we also enable SMBIOS generation for ARM systems, since they support EFI_LOADER. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			33 lines
		
	
	
		
			745 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			745 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  EFI application tables support
 | |
|  *
 | |
|  *  Copyright (c) 2016 Alexander Graf
 | |
|  *
 | |
|  *  SPDX-License-Identifier:     GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <efi_loader.h>
 | |
| #include <inttypes.h>
 | |
| #include <smbios.h>
 | |
| 
 | |
| static const efi_guid_t smbios_guid = SMBIOS_TABLE_GUID;
 | |
| 
 | |
| void efi_smbios_register(void)
 | |
| {
 | |
| 	/* Map within the low 32 bits, to allow for 32bit SMBIOS tables */
 | |
| 	uint64_t dmi = 0xffffffff;
 | |
| 	/* Reserve 4kb for SMBIOS */
 | |
| 	uint64_t pages = 1;
 | |
| 	int memtype = EFI_RUNTIME_SERVICES_DATA;
 | |
| 
 | |
| 	if (efi_allocate_pages(1, memtype, pages, &dmi) != EFI_SUCCESS)
 | |
| 		return;
 | |
| 
 | |
| 	/* Generate SMBIOS tables */
 | |
| 	write_smbios_table(dmi);
 | |
| 
 | |
| 	/* And expose them to our EFI payload */
 | |
| 	efi_install_configuration_table(&smbios_guid, (void*)(uintptr_t)dmi);
 | |
| }
 |