Jump to content











Photo
- - - - -

Cannot boot x86 WinPE WIM/ISO UEFI under 64-bit CPU with UEFI support?


  • Please log in to reply
4 replies to this topic

#1 ktp

ktp

    Silver Member

  • Advanced user
  • 758 posts

Posted 15 January 2018 - 07:10 PM

Hello all,
 
I am confused about 32/64-bit UEFI booting. What I understand:
 
1) 32-bit CPU: Can execute 32-bit Windows EXE. Cannot execute 64-bit Windows EXE.
2) 64-bit CPU:  Can execute 64-bit Windows EXE. Can execute 32-bit Windows EXE (using WOW64).
 
3) 32-bit CPU CSM mode: Can boot x86 WinPE WIM/ISO CSM. Cannot boot x64 WinPE WIM/ISO CSM.
4) 64-bit CPU CSM mode:  Can boot x64 WinPE WIM/ISO CSM. Can boot x86 WinPE WIM/ISO CSM. 
(CSM mode = Legacy mode = MBR mode).
 
5) 32-bit CPU with UEFI support: Can boot x86 WinPE WIM/ISO UEFI. Cannot boot x64 WinPE WIM/ISO UEFI.
6) 64-bit CPU with UEFI support:  Can boot x64 WinPE WIM/ISO UEFI. Cannot boot x86 WinPE WIM/ISO UEFI. 
 
My question concern point 6) "Cannot boot x86 WinPE WIM/ISO UEFI with 64-bit CPU with UEFI support". Why?
I always run into this boot screen error:
Windows failed to start. File: \Windows\system32\boot\winload.efi. Status 0xc0000359.
The application or operating system couldn't be loaded because a required file is missing or contains errors.
 
What is missing? What is the error? The same x86 WinPE WIM/ISO boots correctly under 32-bit CPU with UEFI (tested with VMware or Virtual box).
 
Thank you in advance for your explanations.
 


#2 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 14300 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 January 2018 - 07:41 PM

Welcome to the wonderful ( new, cool and utterly stupid) world of EFI/UEFI.

 

By design, your Operating System must match the CPU (actually the firmware, but in practice it is the same thing) bitwidth if you boot it in UEFI mode.

 

https://en.wikipedia...r_compatibility

 

 

UEFI requires the firmware and operating system loader (or kernel) to be size-matched; for example, a 64-bit UEFI firmware implementation can load only a 64-bit operating system (OS) boot loader or kernel. After the system transitions from "Boot Services" to "Runtime Services", the operating system kernel takes over. At this point, the kernel can change processor modes if it desires, but this bars usage of the runtime services (unless the kernel switches back again).[24]:sections 2.3.2 and 2.3.4 As of version 3.15, the Linux kernel supports 64-bit kernels to be booted on 32-bit UEFI firmware implementations running on x86-64 CPUs, with UEFI handover support from a UEFI boot loader as the requirement.[25] UEFI handover protocol deduplicates the UEFI initialization code between the kernel and UEFI boot loaders, leaving the initialization to be performed only by the Linux kernel's UEFI boot stub.[26][27]

 

Once the initial part of the OS is loaded, an only then it may switch mode, but of course no Windows does that.

 

:duff:

Wonko



#3 steve6375

steve6375

    Platinum Member

  • Developer
  • 6740 posts
  • Location:UK
  • Interests:computers, programming (masm,vb6,C,vbs), photography,TV,films,guitars
  •  
    United Kingdom

Posted 16 January 2018 - 12:01 PM

5) 32-bit CPU with UEFI support: Can boot x86 WinPE WIM/ISO UEFI. Cannot boot x64 WinPE WIM/ISO UEFI.
6) 64-bit CPU with UEFI support:  Can boot x64 WinPE WIM/ISO UEFI. Cannot boot x86 WinPE WIM/ISO UEFI.

 

Should be...

 

5) 32-bit CPU with 32-bit UEFI support: Can boot x86 WinPE WIM/ISO UEFI. Cannot boot x64 WinPE WIM/ISO UEFI.
6) 64-bit CPU with 32-bit UEFI support:  Can boot x86 WinPE WIM/ISO UEFI. Cannot boot x64 WinPE WIM/ISO UEFI.

7) 64-bit CPU with 64-bit UEFI support:  Can boot x64 WinPE WIM/ISO UEFI. Cannot boot x86 WinPE WIM/ISO UEFI.

 

A few systems (usually with limited solid state storage instead of a large HDD) have 64-bit CPUs but a 32-bit UEFI BIOS. They boot to Windows 32-bit OS because the 32-bit OS is smaller than the 64-bit OS.


  • ktp likes this

#4 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 14300 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 January 2018 - 01:54 PM

A few systems (usually with limited solid state storage instead of a large HDD) have 64-bit CPUs but a 32-bit UEFI BIOS. They boot to Windows 32-bit OS because the 32-bit OS is smaller than the 64-bit OS.

Yes :), but they are exceptions, normally (like 99.99% of the times) firmware has the same bitwidth as the CPU.

 

Typically those exceptions are a few mini-tablets or similar, such - as an example - some Chuwi  models:

https://doalmostanyt...ou-need-to.html

 

Some Hi8 have a dual boot between Android and Windows 10 (32 bit), while some have only Windows 10 (64 bit)

 

:duff:

Wonko



#5 alacran

alacran

    Silver Member

  • .script developer
  • 638 posts
  •  
    Mexico

Posted 16 January 2018 - 10:06 PM

Also almost all HDMI Smart TV adapters / sticks running Win 8.x or Win 10 have 32 bits UEFI and OS, even if they have a 64 bits capable CPU.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users