apalis_imx6: unify sd/mmc drive strength with linux kernel settings
[oweals/u-boot.git] / doc / README.uefi
index bb89b7ac2f70c77bda9064ff174c67bffb8c254c..66b6abece5ebc5b234150fb402c5b6392e8b9cff 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-    Copyright (c) 2018 Heinrich Schuchardt
+SPDX-License-Identifier: GPL-2.0+
 
-    SPDX-License-Identifier:     GPL-2.0+
+Copyright (c) 2018 Heinrich Schuchardt
 -->
 
 # UEFI on U-Boot
@@ -12,9 +12,18 @@ 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
+The UEFI standard supports only little-endian systems. The UEFI support can be
 activated for ARM and x86 by specifying
 
     CONFIG_CMD_BOOTEFI=y
@@ -53,7 +62,7 @@ arguments.
 
 ### Executing the boot manager
 
-The UEFI specfication foresees to define boot entries and boot sequence via UEFI
+The UEFI specification foresees to define boot entries and boot sequence via UEFI
 variables. Booting according to these variables is possible via
 
     bootefi bootmgr [fdt address]
@@ -90,14 +99,14 @@ Below you find the output of an example session.
 The environment variable fdtcontroladdr points to U-Boot's internal device tree
 (if available).
 
-### Executing the built-in selftest
+### Executing the built-in self-test
 
-An UEFI selftest suite can be embedded in U-Boot by building with
+An UEFI self-test suite can be embedded in U-Boot by building with
 
     CONFIG_CMD_BOOTEFI_SELFTEST=y
 
 For testing the UEFI implementation the bootefi command can be used to start the
-selftest.
+self-test.
 
     bootefi selftest [fdt address]
 
@@ -299,20 +308,22 @@ This driver is only available if U-Boot is configured with
     CONFIG_BLK=y
     CONFIG_PARTITIONS=y
 
-## TODOs as of U-Boot 2018.03
+## TODOs as of U-Boot 2019.04
 
 * unimplemented or incompletely implemented boot services
   * Exit - call unload function, unload applications only
-  * ReinstallProtocolInterface
+  * ProtocolRegisterNotify
   * UnloadImage
 
+* unimplemented or incompletely implemented runtime services
+  * SetVariable() ignores attribute EFI_VARIABLE_APPEND_WRITE
+  * 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
@@ -324,7 +335,8 @@ This driver is only available if U-Boot is configured with
   * persistence
   * runtime support
 
-* support bootefi booting ARMv7 in non-secure mode (CONFIG_ARMV7_NONSEC=y)
+* incompletely implemented protocols
+  * support version 0x00020000 of the EFI file protocol
 
 ## Links
 
@@ -332,3 +344,5 @@ This driver is only available if U-Boot is configured with
   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