Pull request for efi-2022-10-rc6

Documentation:
 
 * doc: improve description of autostart
 
 UEFI:
 
 * prefix test functions with efi_st_ in the LoadImage unit test
 * avoid a warning message in efi_initrd_deregister()
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEbcT5xx8ppvoGt20zxIHbvCwFGsQFAmM2ofgACgkQxIHbvCwF
 GsQaTw//RqZXBeSxG8Iac231Vd9kSSyDHF+RqhGfgGDnf9n3P2Gi9D9Bs3SwKWx/
 aoBTy/O1TQzkG6CoNIIzcQiCR+aqIhDLrO5YfLIbmqWgG4zjpl1+w76NFZiThuJC
 RA+IUutwBKChXGpLARn3Wnz58e6upRmbwJC8NbHA+qvvKaMSsBIht5NXoBO1yTrV
 qeZEi/WvH6THuh7EjXHObrLcocrg2iQ1b9ydr+o/Y3tR4wZp/vZTeE76UrXv3IJk
 37GjcmLj+DW5078IG7p2ThoX0/D81JS/cnLCjoCooGBN4ZUBf3XJxP60hYZG2h6E
 hf2B8ExPMhM1pAhFNWbHhZii3FXzqUtyDFf7ICMn39B8mVN/20X6/Tto8UOst/Q7
 BBie39eVAkGCbJxQf0MGDjeql3TpfEHxKEZfnAjJAOql05hewvDPxz6VVgtnlIXw
 WWFZ2WOlc/RX8AZhwIChDXRXlIGyX3lV8xnbSZxR3XNDbxwTGMTbbXb26PIbZXXs
 2qU7iyKyMv2AS+jOY9tKN/DwEUaLmXXxm7Rrjibkzx2eEiQHG2make4uXBFMBv/3
 jykzStGdKK74jiievLm/JtbfwSVFvg/eG9Cf+QG+9tyK/tns+c4SVuNAHTTyUKKx
 w80f4gaC787M2MajI5FrCCvpoiw0UNOKXeoSpraefIVyb7WL3vs=
 =+0LE
 -----END PGP SIGNATURE-----

Merge tag 'efi-2022-10-rc6' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2022-10-rc6

Documentation:

* doc: improve description of autostart

UEFI:

* prefix test functions with efi_st_ in the LoadImage unit test
* avoid a warning message in efi_initrd_deregister()
This commit is contained in:
Tom Rini 2022-09-30 08:30:38 -04:00
commit d3ccdc0fce
3 changed files with 68 additions and 56 deletions

View File

@ -106,6 +106,27 @@ many cases the value in the default environment comes from a CONFIG option - see
This is most-likely not complete:
autostart
If set to "yes" (actually any string starting with 1, y, Y, t, or T) an
image loaded with one of the commands listed below will be automatically
started by internally invoking the bootm command.
* bootelf - Boot from an ELF image in memory
* bootp - boot image via network using BOOTP/TFTP protocol
* dhcp - boot image via network using DHCP/TFTP protocol
* diskboot - boot from ide device
* nboot - boot from NAND device
* nfs - boot image via network using NFS protocol
* rarpboot - boot image via network using RARP/TFTP protocol
* scsiboot - boot from SCSI device
* tftpboot - boot image via network using TFTP protocol
* usbboot - boot from USB device
If the environment variable autostart is not set to a value starting with
1, y, Y, t, or T, an image passed to the "bootm" command will be copied to
the load address (and eventually uncompressed), but NOT be started.
This can be used to load and uncompress arbitrary data.
baudrate
Used to set the baudrate of the UART - it defaults to CONFIG_BAUDRATE (which
defaults to 115200).
@ -174,19 +195,6 @@ autoload
configuration from the BOOTP server, but not try to
load any image.
autostart
if set to "yes", an image loaded using the "bootp", "dhcp",
"rarpboot", "tftpboot" or "diskboot" commands will
be automatically started (by internally calling
"bootm")
If unset, or set to "1"/"yes"/"true" (case insensitive, just the first
character is enough), a standalone image
passed to the "bootm" command will be copied to the load address
(and eventually uncompressed), but NOT be started.
This can be used to load and uncompress arbitrary
data.
fdt_high
if set this restricts the maximum address that the
flattened device tree will be copied into upon boot.

View File

@ -230,6 +230,9 @@ efi_status_t efi_initrd_register(void)
*/
void efi_initrd_deregister(void)
{
if (!efi_initrd_handle)
return;
efi_delete_handle(efi_initrd_handle);
efi_initrd_handle = NULL;
}

View File

@ -142,38 +142,39 @@ static struct efi_file_system_info *file_system_info =
&priv_file_system_info.info;
/* Forward definitions of file and file system functions */
static efi_status_t EFIAPI open_volume
static efi_status_t EFIAPI efi_st_open_volume
(struct efi_simple_file_system_protocol *this,
struct efi_file_handle **root);
static efi_status_t EFIAPI open
static efi_status_t EFIAPI efi_st_open
(struct efi_file_handle *this,
struct efi_file_handle **new_handle,
u16 *file_name, u64 open_mode, u64 attributes);
static efi_status_t EFIAPI close(struct efi_file_handle *this);
static efi_status_t EFIAPI efi_st_close(struct efi_file_handle *this);
static efi_status_t EFIAPI delete(struct efi_file_handle *this);
static efi_status_t EFIAPI efi_st_delete(struct efi_file_handle *this);
static efi_status_t EFIAPI read
static efi_status_t EFIAPI efi_st_read
(struct efi_file_handle *this, efi_uintn_t *buffer_size, void *buffer);
static efi_status_t EFIAPI write
static efi_status_t EFIAPI efi_st_write
(struct efi_file_handle *this, efi_uintn_t *buffer_size, void *buffer);
static efi_status_t EFIAPI getpos(struct efi_file_handle *this, u64 *pos);
static efi_status_t EFIAPI efi_st_getpos(struct efi_file_handle *this,
u64 *pos);
static efi_status_t EFIAPI setpos(struct efi_file_handle *this, u64 pos);
static efi_status_t EFIAPI efi_st_setpos(struct efi_file_handle *this, u64 pos);
static efi_status_t EFIAPI getinfo
static efi_status_t EFIAPI efi_st_getinfo
(struct efi_file_handle *this, const efi_guid_t *info_type,
efi_uintn_t *buffer_size, void *buffer);
static efi_status_t EFIAPI setinfo
static efi_status_t EFIAPI efi_st_setinfo
(struct efi_file_handle *this, const efi_guid_t *info_type,
efi_uintn_t buffer_size, void *buffer);
static efi_status_t EFIAPI flush(struct efi_file_handle *this);
static efi_status_t EFIAPI efi_st_flush(struct efi_file_handle *this);
/* Internal information about status of file system */
static struct {
@ -190,40 +191,40 @@ static struct {
/* EFI_FILE_PROTOCOL for file */
static struct efi_file_handle file = {
.rev = 0x00010000,
.open = open,
.close = close,
.delete = delete,
.read = read,
.write = write,
.getpos = getpos,
.setpos = setpos,
.getinfo = getinfo,
.setinfo = setinfo,
.flush = flush,
.open = efi_st_open,
.close = efi_st_close,
.delete = efi_st_delete,
.read = efi_st_read,
.write = efi_st_write,
.getpos = efi_st_getpos,
.setpos = efi_st_setpos,
.getinfo = efi_st_getinfo,
.setinfo = efi_st_setinfo,
.flush = efi_st_flush,
};
/* EFI_FILE_PROTOCOL for root directory */
static struct efi_file_handle volume = {
.rev = 0x00010000,
.open = open,
.close = close,
.delete = delete,
.read = read,
.write = write,
.getpos = getpos,
.setpos = setpos,
.getinfo = getinfo,
.setinfo = setinfo,
.flush = flush,
.open = efi_st_open,
.close = efi_st_close,
.delete = efi_st_delete,
.read = efi_st_read,
.write = efi_st_write,
.getpos = efi_st_getpos,
.setpos = efi_st_setpos,
.getinfo = efi_st_getinfo,
.setinfo = efi_st_setinfo,
.flush = efi_st_flush,
};
/* EFI_SIMPLE_FILE_SYSTEM_PROTOCOL of the block device */
struct efi_simple_file_system_protocol file_system = {
.rev = 0x00010000,
.open_volume = open_volume,
.open_volume = efi_st_open_volume,
};
static efi_status_t EFIAPI open_volume
static efi_status_t EFIAPI efi_st_open_volume
(struct efi_simple_file_system_protocol *this,
struct efi_file_handle **root)
{
@ -236,7 +237,7 @@ static efi_status_t EFIAPI open_volume
return EFI_SUCCESS;
}
static efi_status_t EFIAPI open
static efi_status_t EFIAPI efi_st_open
(struct efi_file_handle *this,
struct efi_file_handle **new_handle,
u16 *file_name, u64 open_mode, u64 attributes)
@ -251,7 +252,7 @@ static efi_status_t EFIAPI open
return EFI_SUCCESS;
}
static efi_status_t EFIAPI close(struct efi_file_handle *this)
static efi_status_t EFIAPI efi_st_close(struct efi_file_handle *this)
{
if (this == &file)
priv.file_open_count--;
@ -263,7 +264,7 @@ static efi_status_t EFIAPI close(struct efi_file_handle *this)
return EFI_SUCCESS;
}
static efi_status_t EFIAPI delete(struct efi_file_handle *this)
static efi_status_t EFIAPI efi_st_delete(struct efi_file_handle *this)
{
if (this != &file)
return EFI_INVALID_PARAMETER;
@ -271,7 +272,7 @@ static efi_status_t EFIAPI delete(struct efi_file_handle *this)
return EFI_UNSUPPORTED;
}
static efi_status_t EFIAPI read
static efi_status_t EFIAPI efi_st_read
(struct efi_file_handle *this, efi_uintn_t *buffer_size, void *buffer)
{
if (this != &file)
@ -288,7 +289,7 @@ static efi_status_t EFIAPI read
return EFI_SUCCESS;
}
static efi_status_t EFIAPI write
static efi_status_t EFIAPI efi_st_write
(struct efi_file_handle *this, efi_uintn_t *buffer_size, void *buffer)
{
if (this != &file)
@ -297,7 +298,7 @@ static efi_status_t EFIAPI write
return EFI_UNSUPPORTED;
}
static efi_status_t EFIAPI getpos(struct efi_file_handle *this, u64 *pos)
static efi_status_t EFIAPI efi_st_getpos(struct efi_file_handle *this, u64 *pos)
{
if (this != &file)
return EFI_INVALID_PARAMETER;
@ -307,7 +308,7 @@ static efi_status_t EFIAPI getpos(struct efi_file_handle *this, u64 *pos)
return EFI_SUCCESS;
}
static efi_status_t EFIAPI setpos(struct efi_file_handle *this, u64 pos)
static efi_status_t EFIAPI efi_st_setpos(struct efi_file_handle *this, u64 pos)
{
if (this != &file)
return EFI_INVALID_PARAMETER;
@ -317,7 +318,7 @@ static efi_status_t EFIAPI setpos(struct efi_file_handle *this, u64 pos)
return EFI_SUCCESS;
}
static efi_status_t EFIAPI getinfo
static efi_status_t EFIAPI efi_st_getinfo
(struct efi_file_handle *this, const efi_guid_t *info_type,
efi_uintn_t *buffer_size, void *buffer)
{
@ -348,7 +349,7 @@ static efi_status_t EFIAPI getinfo
return EFI_SUCCESS;
}
static efi_status_t EFIAPI setinfo
static efi_status_t EFIAPI efi_st_setinfo
(struct efi_file_handle *this, const efi_guid_t *info_type,
efi_uintn_t buffer_size, void *buffer)
{
@ -358,7 +359,7 @@ static efi_status_t EFIAPI setinfo
return EFI_UNSUPPORTED;
}
static efi_status_t EFIAPI flush(struct efi_file_handle *this)
static efi_status_t EFIAPI efi_st_flush(struct efi_file_handle *this)
{
if (this != &file)
return EFI_INVALID_PARAMETER;