Difference between revisions of "AMD64"

From ReactOS Wiki
Jump to: navigation, search
m (Completion Status (rough estimates))
m (Building amd64 port)
Line 62: Line 62:
 
'''C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64'''
 
'''C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64'''
  
(And for ARM:  
+
''(And for ARM:  
 
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm  
 
C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm  
)
+
)''
  
 
Here "''e:\RosBE''" was install path of RosBE.
 
Here "''e:\RosBE''" was install path of RosBE.
Line 70: Line 70:
 
Run the custom shortcut, then proceed as usual ([[Building_ReactOS|'''ninja bootcd''']] and similar).
 
Run the custom shortcut, then proceed as usual ([[Building_ReactOS|'''ninja bootcd''']] and similar).
 
You can build amd64 and arm at the same trunk you use for x86 build.  
 
You can build amd64 and arm at the same trunk you use for x86 build.  
New directories will be created and the built ISO will also have different name: ''ReactOS-amd64.iso'' or ReactOS-arm.iso
+
New directories will be created and the built ISO will also have different name: ''ReactOS-amd64.iso''  
 +
 
 +
''(or ReactOS-arm.iso for ARM)''.
  
 
== Links ==
 
== Links ==

Revision as of 17:00, 6 March 2015

This page describes the current status of the AMD64 port of ReactOS. AMD64 refers to AMD's specifications for a 64-bit extension to the x86 instruction set. It is also known as x86-64 (and variants such as x86_64 and x64).

The ros-amd64-bringup branch was created on r34699 by Timo Kreuzer.

Status

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kdbg/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/?view=log

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/amd64/?view=log

  • Everything builds
  • A bootcd is created
  • setupldr loads, switches the cpu to long mode, initializes hardware/memory/paging and jumps to ntoskrnl
  • Basic Mm initialization is done, then the system crashes
  • Non paged pool allocations work
  • Debugging with WinDbg (break points, single stepping etc) works
  • Enabling interrupts makes everything go nots

Completion Status (rough estimates)

completition comment
freeldr 95% only fixes expected
hal 5% only initial work has been done, most missing is support for interrupts
ntoskrnl/ke 50% core functionality is implemented
ntoskrnl/mm 10% only a few functions are implemented, most stuff is missing
rtl 60% exception handling is missing and unwinding is incomplete
crt 60% missing stuff here and there
PSEH 0% Unimplemented. Waiting for mingw-w64 support

See also Building_MINGW-w64, Techwiki:SEH64

Building amd64 port

Firstly, install Amd64 addon for RosBE (taken from here), then start a 64bit RosBE session, with a custom shortcut:

Normal shortcut for i386 port is: C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd"

The one for AMD64 should be:

C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" amd64

(And for ARM: C:\Windows\System32\cmd.exe /t:0A /k "e:\RosBE\RosBE.cmd" arm )

Here "e:\RosBE" was install path of RosBE.

Run the custom shortcut, then proceed as usual (ninja bootcd and similar). You can build amd64 and arm at the same trunk you use for x86 build. New directories will be created and the built ISO will also have different name: ReactOS-amd64.iso

(or ReactOS-arm.iso for ARM).

Links

See Also

ReactOS Ports AMD64 Section