SPDX: Convert a few files that were missed before
[oweals/u-boot.git] / lib / efi_loader / efi_smbios.c
index ac412e7362a95e8fb62eb86cf67d53a38df6bc12..482436e2adb7c6469625238767eeb68176c0d178 100644 (file)
@@ -1,9 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  *  EFI application tables support
  *
  *  Copyright (c) 2016 Alexander Graf
- *
- *  SPDX-License-Identifier:     GPL-2.0+
  */
 
 #include <common.h>
 
 static const efi_guid_t smbios_guid = SMBIOS_TABLE_GUID;
 
-void efi_smbios_register(void)
+/*
+ * Install the SMBIOS table as a configuration table.
+ *
+ * @return     status code
+ */
+efi_status_t 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;
+       u64 dmi = U32_MAX;
+       efi_status_t ret;
 
-       if (efi_allocate_pages(1, memtype, pages, &dmi) != EFI_SUCCESS)
-               return;
+       /* Reserve 4kiB page for SMBIOS */
+       ret = efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS,
+                                EFI_RUNTIME_SERVICES_DATA, 1, &dmi);
+       if (ret != EFI_SUCCESS)
+               return ret;
 
        /* Generate SMBIOS tables */
        write_smbios_table(dmi);
 
        /* And expose them to our EFI payload */
-       efi_install_configuration_table(&smbios_guid, (void*)(uintptr_t)dmi);
+       return efi_install_configuration_table(&smbios_guid,
+                                              (void *)(uintptr_t)dmi);
 }