Merge branch '2019-03-29-master-imports'
authorTom Rini <trini@konsulko.com>
Fri, 29 Mar 2019 14:53:28 +0000 (10:53 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 29 Mar 2019 14:53:28 +0000 (10:53 -0400)
- Bugfixes:
  - mmc: correct the HS400 initialization process
  - configs: ti: Move FIT image load address to avoid overwrite
  - lib: time: update module enable MACRO
  - Add mbrugger as RPi board maintainer, correct agraf's email address.

MAINTAINERS
doc/README.uefi
include/efi_api.h
lib/efi_loader/efi_file.c
lib/efi_selftest/efi_selftest_devicepath_util.c

index 8a4c5d4..3166ec7 100644 (file)
@@ -454,7 +454,7 @@ EFI PAYLOAD
 M:     Heinrich Schuchardt <xypron.glpk@gmx.de>
 R:     Alexander Graf <agraf@csgraf.de>
 S:     Maintained
-T:     git git://github.com/agraf/u-boot.git
+T:     git git://git.denx.de/u-boot-efi.git
 F:     doc/README.uefi
 F:     doc/README.iscsi
 F:     Documentation/efi.rst
index 0982fad..66b6abe 100644 (file)
@@ -12,6 +12,15 @@ the interaction of drivers and applications with the firmware. The API comprises
 access to block storage, network, and console to name a few. The Linux kernel
 and boot loaders like GRUB or the FreeBSD loader can be executed.
 
+## Development target
+
+The implementation of UEFI in U-Boot strives to reach the minimum requirements
+described in "Server Base Boot Requirements System Software on ARM Platforms -
+Version 1.1" [4].
+
+A full blown UEFI implementation would contradict the U-Boot design principle
+"keep it small".
+
 ## Building for UEFI
 
 The UEFI standard supports only little-endian systems. The UEFI support can be
@@ -299,7 +308,7 @@ This driver is only available if U-Boot is configured with
     CONFIG_BLK=y
     CONFIG_PARTITIONS=y
 
-## TODOs as of U-Boot 2018.07
+## TODOs as of U-Boot 2019.04
 
 * unimplemented or incompletely implemented boot services
   * Exit - call unload function, unload applications only
@@ -308,16 +317,13 @@ This driver is only available if U-Boot is configured with
 
 * unimplemented or incompletely implemented runtime services
   * SetVariable() ignores attribute EFI_VARIABLE_APPEND_WRITE
-  * GetNextVariableName is not implemented
   * QueryVariableInfo is not implemented
 
 * unimplemented events
   * EVT_RUNTIME
   * EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE
-  * event groups
 
 * data model
-  * manage events in a linked list
   * manage configuration tables in a linked list
 
 * UEFI drivers
@@ -329,9 +335,14 @@ This driver is only available if U-Boot is configured with
   * persistence
   * runtime support
 
+* incompletely implemented protocols
+  * support version 0x00020000 of the EFI file protocol
+
 ## Links
 
 * [1](http://uefi.org/specifications)
   http://uefi.org/specifications - UEFI specifications
 * [2](./driver-model/README.txt) doc/driver-model/README.txt - Driver model
 * [3](./README.iscsi) doc/README.iscsi - iSCSI booting with U-Boot and iPXE
+* [4](https://developer.arm.com/docs/den0044/latest/server-base-boot-requirements-system-software-on-arm-platforms-version-11)
+  Server Base Boot Requirements System Software on ARM Platforms - Version 1.1
index ccf6086..8647bfa 100644 (file)
@@ -1322,7 +1322,9 @@ struct efi_pxe {
 #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
        EFI_GUID(0x964e5b22, 0x6459, 0x11d2, \
                 0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b)
-#define EFI_FILE_PROTOCOL_REVISION 0x00010000
+#define EFI_FILE_PROTOCOL_REVISION     0x00010000
+#define EFI_FILE_PROTOCOL_REVISION2    0x00020000
+#define EFI_FILE_PROTOCOL_LATEST_REVISION EFI_FILE_PROTOCOL_REVISION2
 
 struct efi_file_handle {
        u64 rev;
@@ -1346,6 +1348,10 @@ struct efi_file_handle {
                        const efi_guid_t *info_type, efi_uintn_t buffer_size,
                        void *buffer);
        efi_status_t (EFIAPI *flush)(struct efi_file_handle *file);
+       /*
+        * TODO: We currently only support EFI file protocol revision 0x00010000
+        *       while UEFI specs 2.4 - 2.7 prescribe revision 0x00020000.
+        */
 };
 
 #define EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_REVISION 0x00010000
index bc71521..0483403 100644 (file)
@@ -628,6 +628,10 @@ static efi_status_t EFIAPI efi_file_flush(struct efi_file_handle *file)
 }
 
 static const struct efi_file_handle efi_file_handle_protocol = {
+       /*
+        * TODO: We currently only support EFI file protocol revision 0x00010000
+        *       while UEFI specs 2.4 - 2.7 prescribe revision 0x00020000.
+        */
        .rev = EFI_FILE_PROTOCOL_REVISION,
        .open = efi_file_open,
        .close = efi_file_close,
index 5fef5cf..c846e05 100644 (file)
@@ -256,11 +256,6 @@ static int execute(void)
                efi_st_error("GetNextDevicePathInstance did not signal end\n");
                return EFI_ST_FAILURE;
        }
-       ret = boottime->free_pool(dp2);
-       if (ret != EFI_ST_SUCCESS) {
-               efi_st_error("FreePool failed\n");
-               return EFI_ST_FAILURE;
-       }
 
        /* Clean up */
        ret = boottime->free_pool(dp2);