mirror of
https://github.com/reactos/reactos.git
synced 2024-12-31 19:42:51 +00:00
- Start major ARM port cleanup:
- Make use of the SARCH rbuild parameter to define the target board (default to ARM VersatilePB for now) - Make official ARM include directory (include/reactos/arm) and move the ARM DDK there - Start creating header files for different target board components. - Update halfuncs in NDK with one missing function, and temporarily, one ARM function. svn path=/trunk/; revision=33979
This commit is contained in:
parent
a52eaf94d5
commit
b300ac4364
8 changed files with 147 additions and 9 deletions
|
@ -12,9 +12,15 @@
|
|||
<define name="_ARM_" />
|
||||
<define name="__arm__" />
|
||||
|
||||
<include>include/reactos/arm</include>
|
||||
|
||||
<property name="WINEBUILD_FLAGS" value="--kill-at"/>
|
||||
<property name="NTOSKRNL_SHARED" value="-Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -shared"/>
|
||||
|
||||
<if property="SARCH" value="versatile">
|
||||
<define name="BOARD_CONFIG_VERSATILE"/>
|
||||
</if>
|
||||
|
||||
<if property="OPTIMIZE" value="1">
|
||||
<compilerflag>-Os</compilerflag>
|
||||
<compilerflag>-ftracer</compilerflag>
|
||||
|
|
|
@ -14,15 +14,16 @@
|
|||
|
||||
|
||||
<!--
|
||||
Sub-architecture to build for. Specify one of:
|
||||
Sub-architecture (board) to build for. Specify one of:
|
||||
kurobox versatile
|
||||
|
||||
-->
|
||||
<property name="SARCH" value="" />
|
||||
<property name="SARCH" value="versatile" />
|
||||
|
||||
|
||||
<!--
|
||||
Which CPU ReactOS should be optimized for. Specify one of:
|
||||
armv4, armv4t, armv5, armv5te
|
||||
armv5te
|
||||
|
||||
See GCC manual for more CPU names and which CPUs GCC can optimize for.
|
||||
-->
|
||||
|
|
|
@ -137,6 +137,12 @@ HalBeginSystemInterrupt(
|
|||
PKIRQL OldIrql
|
||||
);
|
||||
|
||||
VOID
|
||||
FASTCALL
|
||||
HalClearSoftwareInterrupt(
|
||||
IN KIRQL Request
|
||||
);
|
||||
|
||||
NTHALAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
|
@ -162,6 +168,13 @@ HalEndSystemInterrupt(
|
|||
ULONG Vector
|
||||
);
|
||||
|
||||
#ifdef _ARM_ // FIXME: ndk/arm? armddk.h?
|
||||
ULONG
|
||||
HalGetInterruptSource(
|
||||
VOID
|
||||
);
|
||||
#endif
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
|
|
58
reactos/include/reactos/arm/targets/pl011.h
Normal file
58
reactos/include/reactos/arm/targets/pl011.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: include/reactos/arm/targets/pl011.h
|
||||
* PURPOSE: PL011 Registers and Constants
|
||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||
*/
|
||||
|
||||
/* GLOBALS ********************************************************************/
|
||||
|
||||
//
|
||||
// UART Registers
|
||||
//
|
||||
#define UART_BASE (PVOID)0xE00F1000 /* HACK: freeldr mapped it here */
|
||||
|
||||
#define UART_PL01x_DR (UART_BASE + 0x00)
|
||||
#define UART_PL01x_RSR (UART_BASE + 0x04)
|
||||
#define UART_PL01x_ECR (UART_BASE + 0x04)
|
||||
#define UART_PL01x_FR (UART_BASE + 0x18)
|
||||
#define UART_PL011_IBRD (UART_BASE + 0x24)
|
||||
#define UART_PL011_FBRD (UART_BASE + 0x28)
|
||||
#define UART_PL011_LCRH (UART_BASE + 0x2C)
|
||||
#define UART_PL011_CR (UART_BASE + 0x30)
|
||||
#define UART_PL011_IMSC (UART_BASE + 0x38)
|
||||
|
||||
//
|
||||
// LCR Values
|
||||
//
|
||||
typedef union _PL011_LCR_REGISTER
|
||||
{
|
||||
ULONG Todo;
|
||||
} PL011_LCR_REGISTER, *PPL011_LCR_REGISTER;
|
||||
|
||||
#define UART_PL011_LCRH_WLEN_8 0x60
|
||||
#define UART_PL011_LCRH_FEN 0x10
|
||||
|
||||
//
|
||||
// FCR Values
|
||||
//
|
||||
typedef union _PL011_FCR_REGISTER
|
||||
{
|
||||
ULONG Todo;
|
||||
} PL011_FCR_REGISTER, *PPL011_FCR_REGISTER;
|
||||
|
||||
#define UART_PL011_CR_UARTEN 0x01
|
||||
#define UART_PL011_CR_TXE 0x100
|
||||
#define UART_PL011_CR_RXE 0x200
|
||||
|
||||
//
|
||||
// LSR Values
|
||||
//
|
||||
typedef union _PL011_LSR_REGISTER
|
||||
{
|
||||
ULONG Todo;
|
||||
} PL011_LSR_REGISTER, *PPL011_LSR_REGISTER;
|
||||
|
||||
#define UART_PL01x_FR_RXFE 0x10
|
||||
#define UART_PL01x_FR_TXFF 0x20
|
20
reactos/include/reactos/arm/targets/pl190.h
Normal file
20
reactos/include/reactos/arm/targets/pl190.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: include/reactos/arm/targets/pl190.h
|
||||
* PURPOSE: PL190 Registers and Constants
|
||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||
*/
|
||||
|
||||
/* GLOBALS ********************************************************************/
|
||||
|
||||
//
|
||||
// VIC Registers
|
||||
//
|
||||
#define VIC_BASE (PVOID)0xE0040000 /* HACK: freeldr mapped it here */
|
||||
|
||||
#define VIC_INT_STATUS (VIC_BASE + 0x00)
|
||||
#define VIC_INT_ENABLE (VIC_BASE + 0x10)
|
||||
#define VIC_INT_CLEAR (VIC_BASE + 0x14)
|
||||
#define VIC_SOFT_INT (VIC_BASE + 0x18
|
||||
#define VIC_SOFT_INT_CLEAR (VIC_BASE + 0x1C)
|
46
reactos/include/reactos/arm/targets/sp804.h
Normal file
46
reactos/include/reactos/arm/targets/sp804.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Kernel
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: include/reactos/arm/targets/pl011.h
|
||||
* PURPOSE: SB804 Registers and Constants
|
||||
* PROGRAMMERS: ReactOS Portable Systems Group
|
||||
*/
|
||||
|
||||
/* GLOBALS ********************************************************************/
|
||||
|
||||
//
|
||||
// Timer Registers
|
||||
//
|
||||
#define TIMER_BASE(x) (PVOID)(0xE00E2000 + (x * 0x1000)) /* HACK: freeldr mapped it here */
|
||||
#define TIMER0_LOAD TIMER_BASE(0, 0x00)
|
||||
#define TIMER0_VALUE TIMER_BASE(0, 0x04)
|
||||
#define TIMER0_CONTROL TIMER_BASE(0, 0x08)
|
||||
#define TIMER0_INT_CLEAR TIMER_BASE(0, 0x0C)
|
||||
#define TIMER0_INT_STATUS TIMER_BASE(0, 0x10)
|
||||
#define TIMER0_INT_MASK TIMER_BASE(0, 0x14)
|
||||
#define TIMER0_BACKGROUND_LOAD TIMER_BASE(0, 0x18)
|
||||
#define TIMER1_LOAD TIMER_BASE(1, 0x00)
|
||||
#define TIMER1_VALUE TIMER_BASE(1, 0x04)
|
||||
#define TIMER1_CONTROL TIMER_BASE(1, 0x08)
|
||||
#define TIMER1_INT_CLEAR TIMER_BASE(1, 0x0C)
|
||||
#define TIMER1_INT_STATUS TIMER_BASE(1, 0x10)
|
||||
#define TIMER1_INT_MASK TIMER_BASE(1, 0x14)
|
||||
#define TIMER1_BACKGROUND_LOAD TIMER_BASE(1, 0x18)
|
||||
|
||||
//
|
||||
// Control Register
|
||||
//
|
||||
typedef union _SP804_CONTROL_REGISTER
|
||||
{
|
||||
struct
|
||||
{
|
||||
ULONG Wrap:1;
|
||||
ULONG Wide:1;
|
||||
ULONG Prescale:2;
|
||||
ULONG Reserved:1;
|
||||
ULONG Interrupt:1;
|
||||
ULONG Periodic:1;
|
||||
ULONG Enabled:1;
|
||||
};
|
||||
ULONG AsUlong;
|
||||
} SP804_CONTROL_REGISTER, *PSP804_CONTROL_REGISTER;
|
|
@ -27,12 +27,6 @@ KiSystemCall(
|
|||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
ULONG
|
||||
HalGetInterruptSource(VOID);
|
||||
|
||||
VOID FASTCALL
|
||||
HalClearSoftwareInterrupt(IN KIRQL Request);
|
||||
|
||||
VOID
|
||||
KiIdleLoop(VOID)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue