Difference between revisions of "AArch64"

From ReactOS Wiki
Jump to: navigation, search
m (General TODO list)
m (General TODO list)
Line 40: Line 40:
 
* Fix the AArch64 port build so it can generate <code>bootcd-arm64.iso</code> and <code>livecd-arm64.iso</code>
 
* Fix the AArch64 port build so it can generate <code>bootcd-arm64.iso</code> and <code>livecd-arm64.iso</code>
 
** Get rid of boot sector, it's not supported on ARM64
 
** Get rid of boot sector, it's not supported on ARM64
** Choose your way of working on ARM port boot process:
+
** Choose your way of working on ARM64 port boot process:
 
*** '''1st way:''' Create low-level bootloader that will bootstrap FreeLoader on ARM64
 
*** '''1st way:''' Create low-level bootloader that will bootstrap FreeLoader on ARM64
 
*** '''2nd way:''' Don't use FreeLoader, make it booting from UEFI: [http://github.com/maharmstone/quibble Quibble] bootloader by Mark Harmstone might help
 
*** '''2nd way:''' Don't use FreeLoader, make it booting from UEFI: [http://github.com/maharmstone/quibble Quibble] bootloader by Mark Harmstone might help

Revision as of 20:05, 27 April 2020

AArch64 is a 64-bit execution state of the ARMv8 Instruction Set Architecture, which itself was introduced in 2011. Microsoft Windows publicly started supporting AArch64 with Windows 10 Pro in 2016.

Status

Currently ReactOS is not ported to AArch64 yet, so it can not boot or run on this architecture natively.

ReactOS is looking for help creating ARM64 port, see forum thread.


Build System

Please refer to these articles:

Building steps

You will need Visual Studio 2019. It would work with community edition as well.

  • Start VS command prompt for your host architecture
  • Run configure.cmd and build host tools: cd output-VS-i386 and then ninja host_tools
  • Switch to VS command prompt for ARM64 cross-compilation
  • Run configure.cmd -DWITH_HOST_TOOLS=C:\reactos\output-VS-i386\host-tools and don't forget to put actual host-tools directory path here
  • Type cd output-VS-arm64 and run ninja -k 1

If you're developing on ARM64 device with Windows on ARM:

  • Start VS command prompt for your host architecture
  • Run configure.cmd
    • You might need RosBE for ARM64 package (doesn't exist yet)
  • Type cd output-VS-arm64 and run ninja -k 1
    • You might need to fix host-tools issues first (see below)

General TODO list

  • Add ARM64 target support to the configure.cmd build script
  • Make ReactOS applications work on ARM64 Windows without crashes (latest Windows 10 for ARM64)
    • Fix remaining problems in our CRT and SDK: sync with newer versions of upstream components
    • Fix host-tools issues to achieve native ReactOS development on ARM64 Windows
  • Fix the AArch64 port build so it can generate bootcd-arm64.iso and livecd-arm64.iso
    • Get rid of boot sector, it's not supported on ARM64
    • Choose your way of working on ARM64 port boot process:
      • 1st way: Create low-level bootloader that will bootstrap FreeLoader on ARM64
      • 2nd way: Don't use FreeLoader, make it booting from UEFI: Quibble bootloader by Mark Harmstone might help
      • 3rd way: Work on both UEFI and FreeLoader way (requires more effort)
  • Once the whole tree is built without issues, we can think about updating this TODO list


These pages may be helpful to accomplish the tasks above:


Don't be in hurry and propose a Pull Request for the each fix you have done into the ReactOS repository.

FreeLoader

Unsupported

Kernel

Unsupported

Memory Manager

Unsupported

Processes

Unsupported

Hardware Abstraction Layer

Unsupported

Kernel run-time library (RTL)

Unsupported

C run-time library (CRT)

Unsupported

NTDLL.DLL

Unsupported

KERNEL32.DLL

Unsupported

Compatible devices list

See this forum post: https://reactos.org/forum/viewtopic.php?p=134528#p134528

See Also

ReactOS ports‎
In active development Intel IA-32 (x86) | AMD64 (x64)
In slow development ARM64 (aarch64) | ARM32 (armv7) | NEC PC-98 (x86) | OG Xbox (x86) | Apple TV (1st generation) (x86)
Unmaintained OLPC (x86)
Missing ports that Windows has Intel IA-64 (Itanium) | IBM PS/2 MCA (x86) | SGI 320/540 (x86) | DEC Alpha (axp) | MIPS | PowerPC (ppc)
Ideas for new ports FM Towns (x86) | PlayStation 4 (x64) | Intel SFI (x86)