Bug 1118949

Summary: 32bit UEFI can't boot x86_64 kernel because of missing CONFIG_EFI_MIXED
Product: [Fedora] Fedora Reporter: Lars S. Jensen <lars.s.jensen>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: 8ru2u4gz, gansalmon, gdt, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab, mikhail.v.gavrilov, pjones, vorona.tolik
Target Milestone: ---Keywords: FutureFeature, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-16 12:38:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lars S. Jensen 2014-07-12 08:05:55 UTC
Description of problem:
Many of the first generation Baytrail/Atom tablet only have UEFI32.
To boot a x86_64 kernel/Fedora from UEFI32 require kernel config parameter CONFIG_EFI_MIXED that was included from version kernel 3.15.x.
I am currenly using an Arch dist to test 64bit kernel that have the CONFIG_EFI_MIXED parameter.

Version-Release number of selected component (if applicable):
kernel-core-3.16.0-0.rc4.git2.1.fc21.x86_64
kernel-core-3.16.0-0.rc4.git2.1.fc22.x86_64

How reproducible:
Check /boot/config for CONFIG_EFI_MIXED.

Steps to Reproduce:
1. Rawhide and Fedora21
grep EFI_MIXED /boot/config-3.16.0-0.rc4.git*

Actual results:
# CONFIG_EFI_MIXED is not set

Expected results:
CONFIG_EFI_MIXED=y

Additional info:
The support of Baytrail/Atom tablet is commimg in kernel 3.16-3.17 and should be tested before release of F21:-).
If also require a grub32 boot loader image in /boot/EFI/...
This is bug #746421 that can be reopened.

Comment 1 Josh Boyer 2014-07-12 14:02:16 UTC
The official policy is that Fedora doesn't support 32-bit UEFI.  I believe we need more than just that option enabled in the kernel to properly support this.  I've CC'd the grub maintainer to see what the plans around that are.

Comment 2 Lars S. Jensen 2014-07-12 14:56:53 UTC
The current grub2-efi-2.02-0.6.fc21.i686 should able to boot the kernel because it is a 32-bit UEFI bootloader and it start without any problems on my UEFI32 baytrail tablet. It only need to be install :-). 

The grub-efi.i686 and grub-modules-modules.i686 binary can be install in parallel with x86_64 version because it use differne naming scheme: ...x64,x86_64-efi and ...ia32/i386-efi.
There is some grub commen files that may needs to be moved/fixed.

Comment 3 Josh Boyer 2014-11-06 00:09:24 UTC
We aren't going to change this for F21.  We'll move the bug to rawhide and work out whether this is something we're going to support in F22.

Comment 4 Lars S. Jensen 2014-12-30 10:42:57 UTC
I am now using F21 x86_64 system and fedora's F22 kernel with Adam's Fedlet kernel patchs for Baytrail and CONFIG_EFI_MIXED. 
The current rpm grub2-efi.i686 don't includes the grub command-module: linux/initd that are needed instead of linuxefi/initdefi to boot 64-bit "efi" kernel from UEFI 32-bit. But the grub image with linux/initd can be created from grub2-efi-modules.i686 with grub2-mkimage.

Comment 5 Lars S. Jensen 2015-04-10 09:17:56 UTC
I will build/test the f22/rawhide kernel after the CONFIG_EFI_MIXED was added to it's git repo yesterday :-)

Comment 6 Mikhail 2015-06-03 12:57:14 UTC
Don't understand how boot Fedora 22 on Bay Trail tablet :(

Comment 7 Mikhail 2016-05-14 06:19:03 UTC
A year has passed now Fedora 24, but support UEFI 32 still have not been added.

Comment 8 Josh Boyer 2016-05-16 12:38:24 UTC
(In reply to Mikhail from comment #7)
> A year has passed now Fedora 24, but support UEFI 32 still have not been
> added.

commit f0d73f97ac8e929de523c4a232620e4b42571011
Author: Peter Jones <pjones>
Date:   Thu Apr 9 10:24:01 2015 -0400

    Enable CONFIG_EFI_MIXED.
    
    This enables the 32-bit EFI entry point on 64-bit kernels, so hardware
    like Baytrail devices with 32-bit firmware on a 64-bit cpu can boot the
    64-bit kernel.
    
    Signed-off-by: Peter Jones <pjones>


It was enabled a year ago in our kernels.  If it isn't working, it's because of grub or something else.