€•ùDŒ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Œ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: ”…””}”(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òubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h K hhîubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhhéhžhhŸh³h Nubhí)”}”(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.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhhéhžhhŸh³h Nubhí)”}”(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.”…””}”(hj3hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h Khj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1hìhhé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”…””}”(hjUhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hjRhž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.”…””}”(hjchžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhjRhž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.”…””}”(hjqhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KhjRhžhubhŒ bullet_list”“”)”}”(hhh]”(hí)”}”(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&]”uh1hìhjhžhhŸh³h Nubhí)”}”(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/”…””}”hjzsbah}”(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&]”uh1hìhjhžhhŸNh Nubhí)”}”(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&]”uh1hìhjhžhhŸNh Nubhí)”}”(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=hjþubjû)”}”(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”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j×hŸh³h KAhjubjè)”}”(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çhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑhŸh³h KAhjubjÒ)”}”(hŒ2reboot_type=k turn off EFI reboot runtime service ”h]”(jØ)”}”(hŒ reboot_type=k”h]”hŒ reboot_type=k”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j×hŸh³h KDhjFubjè)”}”(hhh]”hÊ)”}”(hŒ#turn off EFI reboot runtime service”h]”hŒ#turn off EFI reboot runtime service”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÉhŸh³h KDhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jçhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÑhŸh³h KDhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÌhjubah}”(h]”h ]”h"]”h$]”h&]”uh1júhŸh³h KAhjþubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìhjhžhhŸh³h Nubhí)”}”(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 KJhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÌhj™ubah}”(h]”h ]”h"]”h$]”h&]”uh1júhŸh³h KJhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hìhjhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jhŸh³h KhjRhž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”jŒ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öjójîjëuŒ nametypes”}”(jö‰jî‰uh}”(jóh¶jëjRuŒ 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.