€•$FŒ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/x86/x86_64/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/x86/x86_64/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/x86/x86_64/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/x86/x86_64/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/x86/x86_64/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/x86/x86_64/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/x86/x86_64/uefi”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒB/var/lib/git/docbuild/linux/Documentation/arch/x86/x86_64/uefi.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ%General note on [U]EFI x86_64 support”h]”hŒ%General note on [U]EFI x86_64 support”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒHThe nomenclature EFI and UEFI are used interchangeably in this document.”h]”hŒHThe nomenclature EFI and UEFI are used interchangeably in this document.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒÁAlthough the tools below are _not_ needed for building the kernel, the needed bootloader support and associated tools for x86_64 platforms with EFI firmware and specifications are listed below.”h]”hŒÁAlthough the tools below are _not_ needed for building the kernel, the needed bootloader support and associated tools for x86_64 platforms with EFI firmware and specifications are listed below.”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒ)UEFI specification: http://www.uefi.org ”h]”hÞ)”}”(hŒ(UEFI specification: http://www.uefi.org”h]”(hŒUEFI specification: ”…””}”(hjh²hh³Nh´NubhŒ reference”“”)”}”(hŒhttp://www.uefi.org”h]”hŒhttp://www.uefi.org”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”juh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhýh²hh³hÇh´Nubj)”}”(hŒ“Booting Linux kernel on UEFI x86_64 platform can either be done using the or using a separate bootloader. ”h]”hÞ)”}”(hŒ’Booting Linux kernel on UEFI x86_64 platform can either be done using the or using a separate bootloader.”h]”hŒ’Booting Linux kernel on UEFI x86_64 platform can either be done using the or using a separate bootloader.”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhýh²hh³hÇh´Nubj)”}”(hŒ(x86_64 platform with EFI/UEFI firmware. ”h]”hÞ)”}”(hŒ'x86_64 platform with EFI/UEFI firmware.”h]”hŒ'x86_64 platform with EFI/UEFI firmware.”…””}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhýh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1hûhhÊh²hh³hÇh´K ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Mechanics”h]”hŒ Mechanics”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjfh²hh³hÇh´KubhÞ)”}”(hŒSRefer to to learn how to use the EFI stub.”h]”hŒSRefer to to learn how to use the EFI stub.”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjfh²hubhÞ)”}”(hŒƒBelow are general EFI setup guidelines on the x86_64 platform, regardless of whether you use the EFI stub or a separate bootloader.”h]”hŒƒBelow are general EFI setup guidelines on the x86_64 platform, regardless of whether you use the EFI stub or a separate bootloader.”…””}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khjfh²hubhŒ bullet_list”“”)”}”(hhh]”(j)”}”(hX Build the kernel with the following configuration:: CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y If EFI runtime services are expected, the following configuration should be selected:: CONFIG_EFI=y CONFIG_EFIVAR_FS=y or m # optional ”h]”(hÞ)”}”(hŒ3Build the kernel with the following configuration::”h]”hŒ2Build the kernel with the following configuration:”…””}”(hjœh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj˜ubhŒ literal_block”“”)”}”(hŒ,CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y”h]”hŒ,CONFIG_FB_EFI=y CONFIG_FRAMEBUFFER_CONSOLE=y”…””}”hj¬sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jªh³hÇh´Khj˜ubhÞ)”}”(hŒVIf EFI runtime services are expected, the following configuration should be selected::”h]”hŒUIf EFI runtime services are expected, the following configuration should be selected:”…””}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hj˜ubj«)”}”(hŒ7CONFIG_EFI=y CONFIG_EFIVAR_FS=y or m # optional”h]”hŒ7CONFIG_EFI=y CONFIG_EFIVAR_FS=y or m # optional”…””}”hjÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jªh³hÇh´K%hj˜ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj•h²hh³hÇh´Nubj)”}”(hXšCreate a VFAT partition on the disk with the EFI System flag You can do this with fdisk with the following commands: 1. g - initialize a GPT partition table 2. n - create a new partition 3. t - change the partition type to "EFI System" (number 1) 4. w - write and save the changes Afterwards, initialize the VFAT filesystem by running mkfs:: mkfs.fat /dev/ ”h]”hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hXŒCreate a VFAT partition on the disk with the EFI System flag You can do this with fdisk with the following commands: 1. g - initialize a GPT partition table 2. n - create a new partition 3. t - change the partition type to "EFI System" (number 1) 4. w - write and save the changes Afterwards, initialize the VFAT filesystem by running mkfs:: mkfs.fat /dev/ ”h]”(hŒterm”“”)”}”(hŒ”h]”hŒmkfs.fat /dev/”…””}”hjŽsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jªh³hÇh´K2hjýubeh}”(h]”h ]”h"]”h$]”h&]”uh1jûhjçubeh}”(h]”h ]”h"]”h$]”h&]”uh1jåh³hÇh´K2hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÜubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•h²hh³Nh´Nubj)”}”(hXßCopy the boot files to the VFAT partition: If you use the EFI stub method, the kernel acts also as an EFI executable. You can just copy the bzImage to the EFI/boot/bootx64.efi path on the partition so that it will automatically get booted, see the page for additional instructions regarding passage of kernel parameters and initramfs. If you use a custom bootloader, refer to the relevant documentation for help on this part. ”h]”já)”}”(hhh]”jæ)”}”(hXÕCopy the boot files to the VFAT partition: If you use the EFI stub method, the kernel acts also as an EFI executable. You can just copy the bzImage to the EFI/boot/bootx64.efi path on the partition so that it will automatically get booted, see the page for additional instructions regarding passage of kernel parameters and initramfs. If you use a custom bootloader, refer to the relevant documentation for help on this part. ”h]”(jì)”}”(hŒ*Copy the boot files to the VFAT partition:”h]”hŒ*Copy the boot files to the VFAT partition:”…””}”(hj¿h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëh³hÇh´K;hj»ubjü)”}”(hhh]”(hÞ)”}”(hŒJIf you use the EFI stub method, the kernel acts also as an EFI executable.”h]”hŒJIf you use the EFI stub method, the kernel acts also as an EFI executable.”…””}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K5hjÍubhÞ)”}”(hXYou can just copy the bzImage to the EFI/boot/bootx64.efi path on the partition so that it will automatically get booted, see the page for additional instructions regarding passage of kernel parameters and initramfs.”h]”hXYou can just copy the bzImage to the EFI/boot/bootx64.efi path on the partition so that it will automatically get booted, see the page for additional instructions regarding passage of kernel parameters and initramfs.”…””}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K7hjÍubhÞ)”}”(hŒZIf you use a custom bootloader, refer to the relevant documentation for help on this part.”h]”hŒZIf you use a custom bootloader, refer to the relevant documentation for help on this part.”…””}”(hjìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K;hjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1jûhj»ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jåh³hÇh´K;hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj•h²hh³Nh´Nubj)”}”(hXIf some or all EFI runtime services don't work, you can try following kernel command line parameters to turn off some or all EFI runtime services. noefi turn off all EFI runtime services reboot_type=k turn off EFI reboot runtime service ”h]”(hÞ)”}”(hŒ’If some or all EFI runtime services don't work, you can try following kernel command line parameters to turn off some or all EFI runtime services.”h]”hŒ”If some or all EFI runtime services don’t work, you can try following kernel command line parameters to turn off some or all EFI runtime services.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K=hjubj)”}”(hŒjnoefi turn off all EFI runtime services reboot_type=k turn off EFI reboot runtime service ”h]”já)”}”(hhh]”(jæ)”}”(hŒ'noefi turn off all EFI runtime services”h]”(jì)”}”(hŒnoefi”h]”hŒnoefi”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëh³hÇh´KAhj+ubjü)”}”(hhh]”hÞ)”}”(hŒ!turn off all EFI runtime services”h]”hŒ!turn off all EFI runtime services”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KBhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jûhj+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jåh³hÇh´KAhj(ubjæ)”}”(hŒ2reboot_type=k turn off EFI reboot runtime service ”h]”(jì)”}”(hŒ reboot_type=k”h]”hŒ reboot_type=k”…””}”(hj^h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëh³hÇh´KDhjZubjü)”}”(hhh]”hÞ)”}”(hŒ#turn off EFI reboot runtime service”h]”hŒ#turn off EFI reboot runtime service”…””}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jûhjZubeh}”(h]”h ]”h"]”h$]”h&]”uh1jåh³hÇh´KDhj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jàhj$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KAhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj•h²hh³hÇh´Nubj)”}”(hXIf the EFI memory map has additional entries not in the E820 map, you can include those entries in the kernels memory map of available physical RAM by using the following kernel command line parameter. add_efi_memmap include EFI memory map of available physical RAM”h]”(hÞ)”}”(hŒÉIf the EFI memory map has additional entries not in the E820 map, you can include those entries in the kernels memory map of available physical RAM by using the following kernel command line parameter.”h]”hŒÉIf the EFI memory map has additional entries not in the E820 map, you can include those entries in the kernels memory map of available physical RAM by using the following kernel command line parameter.”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KFhj›ubj)”}”(hŒGadd_efi_memmap include EFI memory map of available physical RAM”h]”já)”}”(hhh]”jæ)”}”(hŒ?add_efi_memmap include EFI memory map of available physical RAM”h]”(jì)”}”(hŒadd_efi_memmap”h]”hŒadd_efi_memmap”…””}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëh³hÇh´KJhj´ubjü)”}”(hhh]”hÞ)”}”(hŒ0include EFI memory map of available physical RAM”h]”hŒ0include EFI memory map of available physical RAM”…””}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KKhjÆubah}”(h]”h ]”h"]”h$]”h&]”uh1jûhj´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jåh³hÇh´KJhj±ubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KJhj›ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj•h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j“h³hÇh´Khjfh²hubeh}”(h]”Œ mechanics”ah ]”h"]”Œ mechanics”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Kubeh}”(h]”Œ$general-note-on-u-efi-x86-64-support”ah ]”h"]”Œ%general note on [u]efi x86_64 support”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j0Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j jjjÿuŒ nametypes”}”(j ‰j‰uh}”(jhÊjÿjfuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.