quibble
                                
                                 quibble copied to clipboard
                                
                                    quibble copied to clipboard
                            
                            
                            
                        Boot 64 bit Windows on 32 Bit UEFI?
There are some tablets/cheap laptops with an x64 capable processor, that are crippled by 32 bit UEFI firmware, thus these can boot 32 bit Windows only. Could it be possible to load 64 bit Windows on 32 bit version of quibble (reverse of what is mentioned in To-do list)? Thank you for your work in any case.
I wasn't aware of that! Yes, if that's happening, it'd make sense to have amd64-on-x86 support as well.
If you’re curious, I wrote about the backstory about half a decade ago: https://github.com/Manouchehri/vi8/issues/4#issuecomment-135216613
(I’m a Linux kernel person.)
Linux supports 64-bit kernels on 32-bit UEFI. There is special kernel support for runtime services, and I doubt Windows has this support. The best way to support this on Windows is probably to tell Windows that runtime services are not available.
If you were wondering why these cheap laptops/tablets can boot only 32 bit uefi here is a good explanation from Intel themselves. Essentially Intel makes cheap motherboards for computer manufactures which are prebuilt with ram, soc (integrated cpu), soundcard etc. So what they say in the blog post is that a cheap laptop with 32gb/64gb emmc and 2gb of ram can't benefit from a 64bit os. This is kinda true but since most apps are now dropping 32bit support, there is actually a benefit of doing that. If we can manage to boot 64 bit Windows on a locked firmware which only supports 32 bit uefi, we can install a lighter custom version of Windows 10 or even Windows 7/8. But is it possible though?
It's definitely theoretically possible - there's no problem booting a 64-bit OS from a 16-bit BIOS, after all. It'll just take some work.
From the article:
This means your Black Friday special purchase with 2GB of RAM and 16-32GB of internal flash storage doesn't see any 64-bit architecture benefits.
This is flat-out wrong. Off the top of my head, you have more registers, you have the lack of segmentation speeding things up slightly, you have RIP-relative addressing speeding up rebasing, and you have a faster calling convention. Apart from that...
https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/uefi-requirements-that-apply-to-all-windows-platforms
Windows expects Runtime Services. And apparently their bitness must be the same as the OS. (and it's a reasonable assumption. not counting cases, when it's made due "because we can" reasons. Windows also could have "da speshul kernal support" for mismatched bitness RTS (after all, there is WoW) but why could it be needed except to show off?)
Yep, I've already twigged that. If you were booting 64-bit Windows from 32-bit UEFI or vice versa, you'd have to forego Runtime Services and convince Windows it was doing an old-fashioned BIOS boot. That's the way Quibble worked through most of its development, so that's not an issue.
It should also be noted that a lot of these machines also lack CSM support (such as in my case with the NuVision TMAX TM101W638L) and loads of vendors refuse to update their BIOS since Connected Standby now is supported on 64-bit.
If you can pull this feat off, I'd be glad to test it out as I've been longing to run 64-bit Windows on this machine for WSL support (and my guilty pleasure, WoW, which dropped 32-bit support two years ago).
is this released yet?
I have an older onda v919 z3975 atom that is similar. It is still a very capable machine with 4 core. would be great to run 64 bit windows or linux or even chromeos. But UEFI is crippled to 32 bit.
I have an older onda v919 z3975 atom that is similar. It is still a very capable machine with 4 core. would be great to run 64 bit windows or linux or even chromeos. But UEFI is crippled to 32 bit.
Running 64bit Windows would depend on this project.
Linux you can run 64bit (in fact you can't run 32bit linux on uefi afaik). On most of the distros you will need to add an efi file to the installer and then boot again to the live cd after the install to add that file to your installation in order for it to boot (you dont need to do this on fedora official and arch custom builds).
Chromeos you can run 32bit only but in my case, eventhough the laptop I have has a chromeos version, it doesn't boot no matter what I do..
Btw I have a Lenovo 100s-11iby
Why chromeos can run only 32 bit? Chromeos should be 64 bit only by now.
Why chromeos can run only 32 bit? Chromeos should be 64 bit only by now.
I mean in a locked firmware where you can only boot 32bit uefi. There is no trick to boot the 64bit version afaik
I am hoping this Quibble project might be able to help.
I am hoping this Quibble project might be able to help.
The readme says:
Quibble is the custom Windows bootloader
So it won't help :( It's only for Windows
(I’m a Linux kernel person.)
Linux supports 64-bit kernels on 32-bit UEFI. There is special kernel support for runtime services, and I doubt Windows has this support. The best way to support this on Windows is probably to tell Windows that runtime services are not available.
Indeed to run 64-bit Linux on a 32-bit UEFI a thunking layer is needed to convert things between the 32 and 64-bit ABIs. The kernel needs to be built with CONFIG_EFI_MIXED=y to have that capability. But since Windows has always require the bitness of the OS the match that of UEFI, I don't think MS will spend time creating that thunking layer for Windows
I don't think MS will spend time creating that thunking layer for Windows
I see this problem bothers a lot of people, so I think this problem will be addressed in ReactOS at some point.
Anyway I don't know what this has to do with quibble, because it's a mainly kernel thing instead of bootloader. If it's just because of the bootloader I guess you can just boot up TianoCore then boot 64-bit Windows from it without problem. I'm not sure if it TianoCore currently supports booting from 32-bit UEFI or not but I've did that to boot 64-bit Windows from GPT disk on a BIOS system. There may be other methods as well: Installing Windows x64 on 32-bit UEFI (EFI-IA32) via GRUB
Anyway I don't know what this has to do with quibble, because it's a mainly kernel thing instead of bootloader. If it's just because of the bootloader I guess you can just boot up TianoCore then boot 64-bit Windows from it without problem. I'm not sure if it TianoCore currently supports booting from 32-bit UEFI or not but I've did that to boot 64-bit Windows from GPT disk on a BIOS system. There may be other methods as well: Installing Windows x64 on 32-bit UEFI (EFI-IA32) via GRUB
that method doesn't work unfortunately. It just tells you to chainload the windows x64 boot file from grub which throws an error
Anyway I don't know what this has to do with quibble, because it's a mainly kernel thing instead of bootloader. If it's just because of the bootloader I guess you can just boot up TianoCore then boot 64-bit Windows from it without problem. I'm not sure if it TianoCore currently supports booting from 32-bit UEFI or not but I've did that to boot 64-bit Windows from GPT disk on a BIOS system. There may be other methods as well: Installing Windows x64 on 32-bit UEFI (EFI-IA32) via GRUB
This method doesn't work, it only works with Linux, I've tried it multiple different ways and can't get Grub EFI to chainload a 64-bit Windows EFI executable. Your suggestion for TianoCore also doesn't help those that can't boot into CSM mode, such as these tablets that are locked into IA32 UEFI only (despite having a 64-bit capable Atom in them). Without CSM mode, you can't boot into Duet which is a requirement for that method.
If you compiled quibble as EBC (EFI Byte Code), can you run Windows 32-bit on UEFI 64-bit or Windows 64-bit on UEFI 32-bit?
Lenovo's ThinkPad 8 from 2014, then reviewed as the Rolls Royce of small Windows tablets, has several SKUs that are stuck with a 32-bit-only, no-CSM UEFI. These Bay Trail tablets support Connected Standby, presumably why they launched with 32-bit only UEFI. They only have 2 GB RAM, so the utility of 64-bit Windows (which is considerably more memory hungry than 32-bit Windows) is limited, but it would be cool to at least have the option.
I have booted the Lubuntu 64-bit live ISO off the 32-bit UEFI, so Linux is clearly fine with it. Windows definitely isn't.
@Prototyped Linux has the ability to take over Runtime Services within it's kernel, essentially replacing the running UEFI implementation with itself. Grub sets this up and then the kernel finishes it. Since the kernel essentially takes the UEFI environment out of play, it can boot itself in 64-bit. Windows however doesn't have this ability.
@Prototyped Linux has the ability to take over Runtime Services within it's kernel, essentially replacing the running UEFI implementation with itself. Grub sets this up and then the kernel finishes it. Since the kernel essentially takes the UEFI environment out of play, it can boot itself in 64-bit. Windows however doesn't have this ability.
May I know how and where this is implemented?
@TheMadHau5 May I know how and where this is implemented?
It's a thunking layer that MS simply just doesn't bother spending effort writing. Here are the related commits
Take note that until some refactoring in early 2020, some "legit effort by bootloader" was also needed.
systemd contains EFI code? Why am I not surprised...
You can write EFI runtime services drivers that stay resident while the OS is running - that'd be one way to implement a thunking layer. Or you could just fake it, depending on exactly which runtime services Windows actually uses.
Systemd merged gummiboot a long time ago, but it could have been as well an entirely different project. They don't really share anything AFAIK and it's also probably the leanest bootloader out there.
Im also very interested in this Topic. Got an Z3736 Board with 32Bit Efi and 32bit Windows.
Also the reason i know that why many of that boards are 32bit is that in that time Intel annouced the Baytrail Atom chips the 64bit efi was not ready for release and a little buggy. So the developers of the boards where forced to use the 32bit version. I dont know if that is true but thats what i have read in the internet about that topic. So are there any news about it?
Im also very interested in this Topic. Got an Z3736 Board with 32Bit Efi and 32bit Windows.
Also the reason i know that why many of that boards are 32bit is that in that time Intel annouced the Baytrail Atom chips the 64bit efi was not ready for release and a little buggy. So the developers of the boards where forced to use the 32bit version. I dont know if that is true but thats what i have read in the internet about that topic. So are there any news about it?
Intel's explanation is that the systems with 2gb of ram are not going to be compatible with x64 Windows 10 so there is no point of supporting x64 UEFI
A 64-bit OS does theoretically perform better than a 32-bit OS, but those performance gains are tied to larger amounts of memory (over 4GB). The 64-bit version of Windows takes up more disk space, thanks to larger binaries (hello, bigger opcodes) and any underlying 64/32-bit translation layers. This means your Black Friday special purchase with 2GB of RAM and 16-32GB of internal flash storage doesn't see any 64-bit architecture benefits.