Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | .. SPDX-License-Identifier: GPL-2.0+ .. Copyright 2020, Heinrich Schuchardt <xypron.glpk@gmx.de> .. index:: single: efi (command) efi command =========== Synopsis -------- :: efi image efi mem [all] efi memsync [-v] efi tables 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 image ~~~~~~~~~ This shows the loaded image path information for the currently running EFI application. The loaded image protocol provides access to the device path from which the image was loaded. The output shows the file path in EFI device path format, displayed as a human-readable Unicode string. 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. efi memsync ~~~~~~~~~~~ This synchronizes EFI reserved memory regions with the device tree's reserved-memory nodes. When running as an EFI application, U-Boot can access the EFI memory map to identify regions that EFI considers reserved (such as runtime services code/data, ACPI tables, etc.). This command compares these EFI reserved regions with the device tree's /reserved-memory nodes and adds any missing regions to prevent Linux from using memory that EFI has reserved. Use the optional '-v' flag for verbose output showing the detailed memory map analysis. Without this flag, only errors are displayed. This is useful for ensuring proper memory management when transitioning from EFI boot services to the operating system, particularly in complex firmware environments where EFI may have reserved memory regions not explicitly documented in the device tree. efi tables ~~~~~~~~~~ This shows a list of the EFI tables provided in the system table. These use GUIDs so it is not possible in general to show the name of a table. But some effort is made to provide a useful table, where the GUID is known by U-Boot. Example ------- :: => efi image Loaded-image path: u-boot-app.efi => 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 Attributes key: f: uncached, write-coalescing, write-through, write-back rf: uncached, write-coalescing, write-through, write-back, needs runtime mapping 1: uncached => efi tables 000000001f8edf98 ee4e5898-3914-4259-9d6e-dc7bd79403cf EFI_LZMA_COMPRESSED 000000001ff2ace0 05ad34ba-6f02-4214-952e-4da0398e2bb9 EFI_DXE_SERVICES 000000001f8ea018 7739f24c-93d7-11d4-9a3a-0090273fc14d EFI_HOB_LIST 000000001ff2bac0 4c19049f-4137-4dd3-9c10-8b97a83ffdfa EFI_MEMORY_TYPE 000000001ff2cb10 49152e77-1ada-4764-b7a2-7afefed95e8b (unknown) 000000001f9ac018 060cc026-4c0d-4dda-8f41-595fef00a502 EFI_MEM_STATUS_CODE_REC 000000001f9ab000 eb9d2d31-2d88-11d3-9a16-0090273fc14d SMBIOS table 000000001fb7e000 eb9d2d30-2d88-11d3-9a16-0090273fc14d EFI_GUID_EFI_ACPI1 000000001fb7e014 8868e871-e4f1-11d3-bc22-0080c73c8881 ACPI table 000000001e654018 dcfa911d-26eb-469f-a220-38b7dc461220 (unknown) => efi memsync Regions added: 2 => efi memsync -v Comparing EFI memory-map with reserved-memory EFI Memory Map Analysis: ID Type Start End In DT? ------------------------------------------------------------------------ 0 EFI_RUNTIME_SERVICES_CODE 0x001f9ef000 0x001faef000 no -> adding 1 EFI_ACPI_RECLAIM_MEMORY 0x001fb6f000 0x001fb7f000 no -> adding 2 EFI_ACPI_MEMORY_NVS 0x001fb7f000 0x001fbff000 yes Regions added: 2 Reserved memory regions: 0 tcg_event_log 0x100000 0x2000 1 efi-runtime-services-code@1f9ef000 0x1f9ef000 0x100000 2 efi-acpi-reclaim@1fb6f000 0x1fb6f000 0x10000 |