€•@Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ!/translations/zh_CN/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/zh_TW/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/it_IT/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/ja_JP/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/ko_KR/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/pt_BR/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/sp_SP/arch/arm/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ0The Unified Extensible Firmware Interface (UEFI)”h]”hŒ0The Unified Extensible Firmware Interface (UEFI)”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ;/var/lib/git/docbuild/linux/Documentation/arch/arm/uefi.rst”h´KubhŒ paragraph”“”)�”}”(hŒºUEFI, the Unified Extensible Firmware Interface, is a specification governing the behaviours of compatible firmware interfaces. It is maintained by the UEFI Forum - http://www.uefi.org/.”h]”(hŒ¥UEFI, the Unified Extensible Firmware Interface, is a specification governing the behaviours of compatible firmware interfaces. It is maintained by the UEFI Forum - ”…”�”}”(hhÍh²hh³Nh´NubhŒ reference”“”)�”}”(hŒhttp://www.uefi.org/”h]”hŒhttp://www.uefi.org/”…”�”}”(hh×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”hÙuh1hÕhhÍubhŒ.”…”�”}”(hhÍh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubhÌ)�”}”(hŒóUEFI is an evolution of its predecessor 'EFI', so the terms EFI and UEFI are used somewhat interchangeably in this document and associated source code. As a rule, anything new uses 'UEFI', whereas 'EFI' refers to legacy code or specifications.”h]”hŒÿUEFI is an evolution of its predecessor ‘EFI’, so the terms EFI and UEFI are used somewhat interchangeably in this document and associated source code. As a rule, anything new uses ‘UEFI’, whereas ‘EFI’ refers to legacy code or specifications.”…”�”}”(hhðh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K hh·h²hubh¶)�”}”(hhh]”(h»)�”}”(hŒUEFI support in Linux”h]”hŒUEFI support in Linux”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhþh²hh³hÊh´KubhÌ)�”}”(hŒŠBooting on a platform with firmware compliant with the UEFI specification makes it possible for the kernel to support additional features:”h]”hŒŠBooting on a platform with firmware compliant with the UEFI specification makes it possible for the kernel to support additional features:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhþh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒUEFI Runtime Services”h]”hÌ)�”}”(hj&h]”hŒUEFI Runtime Services”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjh²hh³hÊh´Nubj#)�”}”(hŒ‚Retrieving various configuration information through the standardised interface of UEFI configuration tables. (ACPI, SMBIOS, ...) ”h]”hÌ)�”}”(hŒ�Retrieving various configuration information through the standardised interface of UEFI configuration tables. (ACPI, SMBIOS, ...)”h]”hŒ�Retrieving various configuration information through the standardised interface of UEFI configuration tables. (ACPI, SMBIOS, ...)”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khj;ubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjh²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jh³hÊh´Khhþh²hubhÌ)�”}”(hŒ-For actually enabling [U]EFI support, enable:”h]”hŒ-For actually enabling [U]EFI support, enable:”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhþh²hubj)�”}”(hhh]”(j#)�”}”(hŒ CONFIG_EFI=y”h]”hÌ)�”}”(hjnh]”hŒ CONFIG_EFI=y”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjlubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjih²hh³hÊh´Nubj#)�”}”(hŒCONFIG_EFIVAR_FS=y or m ”h]”hÌ)�”}”(hŒCONFIG_EFIVAR_FS=y or m”h]”hŒCONFIG_EFIVAR_FS=y or m”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khjƒubah}”(h]”h ]”h"]”h$]”h&]”uh1j"hjih²hh³hÊh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jYjZuh1jh³hÊh´Khhþh²hubhÌ)�”}”(hŒ–The implementation depends on receiving information about the UEFI environment in a Flattened Device Tree (FDT) - so is only available with CONFIG_OF.”h]”hŒ–The implementation depends on receiving information about the UEFI environment in a Flattened Device Tree (FDT) - so is only available with CONFIG_OF.”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khhþh²hubeh}”(h]”Œuefi-support-in-linux”ah ]”h"]”Œuefi support in linux”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubh¶)�”}”(hhh]”(h»)�”}”(hŒ UEFI stub”h]”hŒ UEFI stub”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj·h²hh³hÊh´K ubhÌ)�”}”(hX The "stub" is a feature that extends the Image/zImage into a valid UEFI PE/COFF executable, including a loader application that makes it possible to load the kernel directly from the UEFI shell, boot menu, or one of the lightweight bootloaders like Gummiboot or rEFInd.”h]”hXThe “stubâ€� is a feature that extends the Image/zImage into a valid UEFI PE/COFF executable, including a loader application that makes it possible to load the kernel directly from the UEFI shell, boot menu, or one of the lightweight bootloaders like Gummiboot or rEFInd.”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K!hj·h²hubhÌ)�”}”(hŒkThe kernel image built with stub support remains a valid kernel image for booting in non-UEFI environments.”h]”hŒkThe kernel image built with stub support remains a valid kernel image for booting in non-UEFI environments.”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K&hj·h²hubeh}”(h]”Œ uefi-stub”ah ]”h"]”Œ uefi stub”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)�”}”(hhh]”(h»)�”}”(hŒUEFI kernel support on ARM”h]”hŒUEFI kernel support on ARM”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjìh²hh³hÊh´K*ubhÌ)�”}”(hŒwUEFI kernel support on the ARM architectures (arm and arm64) is only available when boot is performed through the stub.”h]”hŒwUEFI kernel support on the ARM architectures (arm and arm64) is only available when boot is performed through the stub.”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K+hjìh²hubhÌ)�”}”(hŒWhen booting in UEFI mode, the stub deletes any memory nodes from a provided DT. Instead, the kernel reads the UEFI memory map.”h]”hŒWhen booting in UEFI mode, the stub deletes any memory nodes from a provided DT. Instead, the kernel reads the UEFI memory map.”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K.hjìh²hubhÌ)�”}”(hŒaThe stub populates the FDT /chosen node with (and the kernel scans for) the following parameters:”h]”hŒaThe stub populates the FDT /chosen node with (and the kernel scans for) the following parameters:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K1hjìh²hubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j1hj.ubj2)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j1hj.ubj2)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K+uh1j1hj.ubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hÌ)�”}”(hŒName”h]”hŒName”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubj\)�”}”(hhh]”hÌ)�”}”(hŒType”h]”hŒType”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubj\)�”}”(hhh]”hÌ)�”}”(hŒ Description”h]”hŒ Description”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K5hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjXubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jQhj.ubhŒtbody”“”)�”}”(hhh]”(jW)�”}”(hhh]”(j\)�”}”(hhh]”hÌ)�”}”(hŒlinux,uefi-system-table”h]”hŒlinux,uefi-system-table”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj³ubj\)�”}”(hhh]”hÌ)�”}”(hŒ64-bit”h]”hŒ64-bit”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj³ubj\)�”}”(hhh]”hÌ)�”}”(hŒ*Physical address of the UEFI System Table.”h]”hŒ*Physical address of the UEFI System Table.”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K7hjäubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhj°ubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÌ)�”}”(hŒlinux,uefi-mmap-start”h]”hŒlinux,uefi-mmap-start”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjubj\)�”}”(hhh]”hÌ)�”}”(hŒ64-bit”h]”hŒ64-bit”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K9hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjubj\)�”}”(hhh]”hÌ)�”}”(hŒSPhysical address of the UEFI memory map, populated by the UEFI GetMemoryMap() call.”h]”hŒSPhysical address of the UEFI memory map, populated by the UEFI GetMemoryMap() call.”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K9hj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1j[hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jVhj°ubjW)�”}”(hhh]”(j\)�”}”(hhh]”hÌ)�”}”(hŒlinux,uefi-mmap-size”h]”hŒlinux,uefi-mmap-size”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´K