32-bit UEFI ARM
Posted: Thu Mar 28, 2024 10:57 pm
Hi.
I have recently managed to build (makefile.prm in PDPCLIB) 32-bit ARM PE executables using UEFI and running under qemu-system-arm on my x64 laptop. One of the outstanding points of confusion is why edk2 under qemu requires the machine to be 1c2 and doesn't accept 1c0. Before reporting a bug (I've read the code - only 1c2 is coded) to edk2/tianocore, I'd like to find out what real machines do.
Apparently I'm late to the party:
https://windowsreport.com/windows-10-arm-devices/
"So, when will Windows 10 for Qualcomm be available? Microsoft representatives only mention ‘next year’, but some speculation is pointing towards the fall of 2017."
But maybe I'm later than that. ARM v8 64-bit came out in 2011. I'm after 32-bit.
The ARM Microsoft Surface Pro 2 had 32-bit UEFI as far as I know. That's around 2014.
I don't care if the processor *also* supports 64-bit, I'm mainly interested in the UEFI API. With PDOS/386 I use legacy boot, but I don't have that situation with ARM and can go straight to UEFI.
I have no experience of Windows on ARM. I would like to create ARM PE executables too at some point, to run under Windows for ARM. That requires more work as I need to investigate whether there is an msvcrt.dll the same as 32-bit x86. And I will want to build my own kernel32.lib too, assuming that is a thing on ARM.
I have bought several Windows 10 licenses, and I believe that allows me to download an ARM version of Windows which I could then run under qemu-system-arm too. So that's probably something to do too.
But the most important thing is to boot directly on a 32-bit ARM UEFI machine instead of qemu. So I would like to buy a (presumably old) machine.
I read that decades ago there were very cheap netbooks that ran Windows. It's unclear to me what the difference between Windows CE and RT is. I will be doing everything from the command line, and I will be building all of my own software (on PDOS/386, cross-compiling by running gccprm etc). So I don't need fancy features. I just need a test environment to use occasionally. Although if the option exists, I would potentially program directly on a Windows ARM machine.
So - what should I buy? I'm ideally after a laptop. The Surface is actually a tablet with a kickstand. I can use that if required, but I much prefer a proper laptop with a proper hinge - easy to physically handle. I need a full sized keyboard so that I can touch-type.
I could use some other machine like a Raspberry Pi, but it doesn't have UEFI in the firmware. I believe there are add-ons I can get, but I don't want add-ons. If I do that I may as well just use the "add-on" software called qemu-system-arm. And I can potentially run qemu-system-aarch64 with kvm on a Pinebook Pro too. But that's a separate exercise.
Any advice?
Thanks. Paul.
I have recently managed to build (makefile.prm in PDPCLIB) 32-bit ARM PE executables using UEFI and running under qemu-system-arm on my x64 laptop. One of the outstanding points of confusion is why edk2 under qemu requires the machine to be 1c2 and doesn't accept 1c0. Before reporting a bug (I've read the code - only 1c2 is coded) to edk2/tianocore, I'd like to find out what real machines do.
Apparently I'm late to the party:
https://windowsreport.com/windows-10-arm-devices/
"So, when will Windows 10 for Qualcomm be available? Microsoft representatives only mention ‘next year’, but some speculation is pointing towards the fall of 2017."
But maybe I'm later than that. ARM v8 64-bit came out in 2011. I'm after 32-bit.
The ARM Microsoft Surface Pro 2 had 32-bit UEFI as far as I know. That's around 2014.
I don't care if the processor *also* supports 64-bit, I'm mainly interested in the UEFI API. With PDOS/386 I use legacy boot, but I don't have that situation with ARM and can go straight to UEFI.
I have no experience of Windows on ARM. I would like to create ARM PE executables too at some point, to run under Windows for ARM. That requires more work as I need to investigate whether there is an msvcrt.dll the same as 32-bit x86. And I will want to build my own kernel32.lib too, assuming that is a thing on ARM.
I have bought several Windows 10 licenses, and I believe that allows me to download an ARM version of Windows which I could then run under qemu-system-arm too. So that's probably something to do too.
But the most important thing is to boot directly on a 32-bit ARM UEFI machine instead of qemu. So I would like to buy a (presumably old) machine.
I read that decades ago there were very cheap netbooks that ran Windows. It's unclear to me what the difference between Windows CE and RT is. I will be doing everything from the command line, and I will be building all of my own software (on PDOS/386, cross-compiling by running gccprm etc). So I don't need fancy features. I just need a test environment to use occasionally. Although if the option exists, I would potentially program directly on a Windows ARM machine.
So - what should I buy? I'm ideally after a laptop. The Surface is actually a tablet with a kickstand. I can use that if required, but I much prefer a proper laptop with a proper hinge - easy to physically handle. I need a full sized keyboard so that I can touch-type.
I could use some other machine like a Raspberry Pi, but it doesn't have UEFI in the firmware. I believe there are add-ons I can get, but I don't want add-ons. If I do that I may as well just use the "add-on" software called qemu-system-arm. And I can potentially run qemu-system-aarch64 with kvm on a Pinebook Pro too. But that's a separate exercise.
Any advice?
Thanks. Paul.