[PATCH v2 09/12] doc: Add help for the efi command
Simon Glass
sjg at chromium.org
Sun Mar 19 20:29:01 CET 2023
Hi Heinrich,
On Mon, 20 Mar 2023 at 05:38, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 3/10/23 21:48, Simon Glass wrote:
> > This command currently has no help. Add some.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > (no changes since v1)
> >
> > doc/usage/cmd/efi.rst | 197 ++++++++++++++++++++++++++++++++++++++++++
> > doc/usage/index.rst | 1 +
> > 2 files changed, 198 insertions(+)
> > create mode 100644 doc/usage/cmd/efi.rst
> >
> > diff --git a/doc/usage/cmd/efi.rst b/doc/usage/cmd/efi.rst
> > new file mode 100644
> > index 00000000000..c029c423879
> > --- /dev/null
> > +++ b/doc/usage/cmd/efi.rst
> > @@ -0,0 +1,197 @@
> > +.. SPDX-License-Identifier: GPL-2.0+
> > +.. Copyright 2020, Heinrich Schuchardt <xypron.glpk at gmx.de>
> > +
> > +efi command
> > +===========
> > +
> > +Synopsis
> > +--------
> > +
> > +::
> > +
> > + efi mem [all]
> > +
> > +Description
> > +-----------
> > +
> > +The *efi* command provides information about the EFI environment U-Boot is
> > +running in, when it is started from EFI.
> > +
> > +When running as an EFI app, this command queries EFI boot services for the
> > +information. When running as an EFI payload, EFI boot services have been
> > +stopped, so it uses the information collected by the boot stub before that
> > +happened.
> > +
> > +efi mem
> > +~~~~~~~
> > +
> > +This shows the EFI memory map, sorted in order of physical address.
> > +
> > +This is normally a very large table. To help reduce the amount of detritus,
> > +boot-time memory is normally merged with conventional memory. Use the 'all'
> > +argument to show everything.
> > +
> > +The fields are as follows:
> > +
> > +#
> > + Entry number (sequentially from 0)
> > +
> > +Type
> > + Memory type. EFI has a large number of memory types. The type is shown in
> > + the format <n>:<name> where in is the format number in hex and <name> is the
> > + name.
> > +
> > +Physical
> > + Physical address
> > +
> > +Virtual
> > + Virtual address
> > +
> > +Size
> > + Size of memory area in bytes
> > +
> > +Attributes
> > + Shows a code for memory attributes. The key for this is shown below the
> > + table.
> > +
> > +Example
> > +-------
> > +
> > +::
> > +
> > + => efi mem
> > + EFI table at 0, memory map 000000001ad38b60, size 1260, key a79, version 1, descr. size 0x30
> > + # Type Physical Virtual Size Attributes
> > + 0 7:conv 0000000000 0000000000 00000a0000 f
> > + <gap> 00000a0000 0000060000
> > + 1 7:conv 0000100000 0000000000 0000700000 f
> > + 2 a:acpi_nvs 0000800000 0000000000 0000008000 f
> > + 3 7:conv 0000808000 0000000000 0000008000 f
> > + 4 a:acpi_nvs 0000810000 0000000000 00000f0000 f
> > + 5 7:conv 0000900000 0000000000 001efef000 f
> > + 6 6:rt_data 001f8ef000 0000000000 0000100000 rf
> > + 7 5:rt_code 001f9ef000 0000000000 0000100000 rf
> > + 8 0:reserved 001faef000 0000000000 0000080000 f
> > + 9 9:acpi_reclaim 001fb6f000 0000000000 0000010000 f
> > + 10 a:acpi_nvs 001fb7f000 0000000000 0000080000 f
> > + 11 7:conv 001fbff000 0000000000 0000359000 f
> > + 12 6:rt_data 001ff58000 0000000000 0000020000 rf
> > + 13 a:acpi_nvs 001ff78000 0000000000 0000088000 f
> > + <gap> 0020000000 0090000000
> > + 14 0:reserved 00b0000000 0000000000 0010000000 1
> > +
> > + Attributes key:
> > + f: uncached, write-coalescing, write-through, write-back
> > + rf: uncached, write-coalescing, write-through, write-back, needs runtime mapping
> > + 1: uncached
> > + *Some areas are merged (use 'all' to see)
> > +
> > +
> > + => efi mem all
> > + EFI table at 0, memory map 000000001ad38bb0, size 1260, key a79, version 1, descr. size 0x30
> > + # Type Physical Virtual Size Attributes
> > + 0 3:bs_code 0000000000 0000000000 0000001000 f
> > + 1 7:conv 0000001000 0000000000 000009f000 f
> > + <gap> 00000a0000 0000060000
> > + 2 7:conv 0000100000 0000000000 0000700000 f
> > + 3 a:acpi_nvs 0000800000 0000000000 0000008000 f
> > + 4 7:conv 0000808000 0000000000 0000008000 f
> > + 5 a:acpi_nvs 0000810000 0000000000 00000f0000 f
> > + 6 4:bs_data 0000900000 0000000000 0000c00000 f
> > + 7 7:conv 0001500000 0000000000 000aa36000 f
> > + 8 2:loader_data 000bf36000 0000000000 0010000000 f
> > + 9 4:bs_data 001bf36000 0000000000 0000020000 f
> > + 10 7:conv 001bf56000 0000000000 00021e1000 f
> > + 11 1:loader_code 001e137000 0000000000 00000c4000 f
> > + 12 7:conv 001e1fb000 0000000000 000009b000 f
> > + 13 1:loader_code 001e296000 0000000000 00000e2000 f
> > + 14 7:conv 001e378000 0000000000 000005b000 f
> > + 15 4:bs_data 001e3d3000 0000000000 000001e000 f
> > + 16 7:conv 001e3f1000 0000000000 0000016000 f
> > + 17 4:bs_data 001e407000 0000000000 0000016000 f
> > + 18 2:loader_data 001e41d000 0000000000 0000002000 f
> > + 19 4:bs_data 001e41f000 0000000000 0000828000 f
> > + 20 3:bs_code 001ec47000 0000000000 0000045000 f
> > + 21 4:bs_data 001ec8c000 0000000000 0000001000 f
> > + 22 3:bs_code 001ec8d000 0000000000 000000e000 f
> > + 23 4:bs_data 001ec9b000 0000000000 0000001000 f
> > + 24 3:bs_code 001ec9c000 0000000000 000002c000 f
> > + 25 4:bs_data 001ecc8000 0000000000 0000001000 f
> > + 26 3:bs_code 001ecc9000 0000000000 000000c000 f
> > + 27 4:bs_data 001ecd5000 0000000000 0000006000 f
> > + 28 3:bs_code 001ecdb000 0000000000 0000014000 f
> > + 29 4:bs_data 001ecef000 0000000000 0000001000 f
> > + 30 3:bs_code 001ecf0000 0000000000 000005b000 f
> > + 31 4:bs_data 001ed4b000 0000000000 000000b000 f
> > + 32 3:bs_code 001ed56000 0000000000 0000024000 f
> > + 33 4:bs_data 001ed7a000 0000000000 0000006000 f
> > + 34 3:bs_code 001ed80000 0000000000 0000010000 f
> > + 35 4:bs_data 001ed90000 0000000000 0000002000 f
> > + 36 3:bs_code 001ed92000 0000000000 0000025000 f
> > + 37 4:bs_data 001edb7000 0000000000 0000003000 f
> > + 38 3:bs_code 001edba000 0000000000 0000011000 f
> > + 39 4:bs_data 001edcb000 0000000000 0000008000 f
> > + 40 3:bs_code 001edd3000 0000000000 000002d000 f
> > + 41 4:bs_data 001ee00000 0000000000 0000201000 f
> > + 42 3:bs_code 001f001000 0000000000 0000024000 f
> > + 43 4:bs_data 001f025000 0000000000 0000002000 f
> > + 44 3:bs_code 001f027000 0000000000 0000009000 f
> > + 45 4:bs_data 001f030000 0000000000 0000005000 f
> > + 46 3:bs_code 001f035000 0000000000 000002f000 f
> > + 47 4:bs_data 001f064000 0000000000 0000001000 f
> > + 48 3:bs_code 001f065000 0000000000 0000005000 f
> > + 49 4:bs_data 001f06a000 0000000000 0000005000 f
> > + 50 3:bs_code 001f06f000 0000000000 0000007000 f
> > + 51 4:bs_data 001f076000 0000000000 0000007000 f
> > + 52 3:bs_code 001f07d000 0000000000 000000d000 f
> > + 53 4:bs_data 001f08a000 0000000000 0000001000 f
> > + 54 3:bs_code 001f08b000 0000000000 0000006000 f
> > + 55 4:bs_data 001f091000 0000000000 0000004000 f
> > + 56 3:bs_code 001f095000 0000000000 000000d000 f
> > + 57 4:bs_data 001f0a2000 0000000000 0000003000 f
> > + 58 3:bs_code 001f0a5000 0000000000 0000026000 f
> > + 59 4:bs_data 001f0cb000 0000000000 0000005000 f
> > + 60 3:bs_code 001f0d0000 0000000000 0000019000 f
> > + 61 4:bs_data 001f0e9000 0000000000 0000004000 f
> > + 62 3:bs_code 001f0ed000 0000000000 0000024000 f
> > + 63 4:bs_data 001f111000 0000000000 0000008000 f
> > + 64 3:bs_code 001f119000 0000000000 000000b000 f
> > + 65 4:bs_data 001f124000 0000000000 0000001000 f
> > + 66 3:bs_code 001f125000 0000000000 0000002000 f
> > + 67 4:bs_data 001f127000 0000000000 0000002000 f
> > + 68 3:bs_code 001f129000 0000000000 0000009000 f
> > + 69 4:bs_data 001f132000 0000000000 0000003000 f
> > + 70 3:bs_code 001f135000 0000000000 0000005000 f
> > + 71 4:bs_data 001f13a000 0000000000 0000003000 f
> > + 72 3:bs_code 001f13d000 0000000000 0000005000 f
> > + 73 4:bs_data 001f142000 0000000000 0000003000 f
> > + 74 3:bs_code 001f145000 0000000000 0000011000 f
> > + 75 4:bs_data 001f156000 0000000000 000000b000 f
> > + 76 3:bs_code 001f161000 0000000000 0000009000 f
> > + 77 4:bs_data 001f16a000 0000000000 0000400000 f
> > + 78 3:bs_code 001f56a000 0000000000 0000006000 f
> > + 79 4:bs_data 001f570000 0000000000 0000001000 f
> > + 80 3:bs_code 001f571000 0000000000 0000001000 f
> > + 81 4:bs_data 001f572000 0000000000 0000002000 f
> > + 82 3:bs_code 001f574000 0000000000 0000017000 f
> > + 83 4:bs_data 001f58b000 0000000000 0000364000 f
> > + 84 6:rt_data 001f8ef000 0000000000 0000100000 rf
> > + 85 5:rt_code 001f9ef000 0000000000 0000100000 rf
> > + 86 0:reserved 001faef000 0000000000 0000080000 f
> > + 87 9:acpi_reclaim 001fb6f000 0000000000 0000010000 f
> > + 88 a:acpi_nvs 001fb7f000 0000000000 0000080000 f
> > + 89 4:bs_data 001fbff000 0000000000 0000201000 f
> > + 90 7:conv 001fe00000 0000000000 00000e8000 f
> > + 91 4:bs_data 001fee8000 0000000000 0000020000 f
> > + 92 3:bs_code 001ff08000 0000000000 0000026000 f
> > + 93 4:bs_data 001ff2e000 0000000000 0000009000 f
> > + 94 3:bs_code 001ff37000 0000000000 0000021000 f
> > + 95 6:rt_data 001ff58000 0000000000 0000020000 rf
> > + 96 a:acpi_nvs 001ff78000 0000000000 0000088000 f
> > + <gap> 0020000000 0090000000
> > + 97 0:reserved 00b0000000 0000000000 0010000000 1
>
> Why should we use a different output format then in efi_debug memmap=
> We should avoid duplicate code.
I'm adding docs for an existing command. Changing the code should be
the subject of a different patch.
Further, this functionality was added in 2015 in:
f1a0bafb5802 efi: Add a command to display the memory map
The 'efidebug memmap' was added over 3 years later, in:
00358bb804e9 cmd: efidebug: add memmap command
It looks like you reviewed it. Should we ask Takahiro-san to try to
link these up, as I have done in this series with the 'tables'
command?
The data comes from different places for the three cases (EFI_LOADER,
app, stub) but I believe it is the same data. For example,
efi_get_memory_map_alloc() is used to get the memmap with EFI_LOADER,
but the app and stub have a different way.
Regards,
Simon
More information about the U-Boot
mailing list