xref: /reactos/hal/halx86/xbox/halinit.c (revision 9393fc32)
1 /*
2  * PROJECT:     Xbox HAL
3  * LICENSE:     GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4  * PURPOSE:     Initialize the x86 HAL
5  * COPYRIGHT:   Copyright 1998 David Welch (welch@cwcom.net)
6  */
7 
8 /* INCLUDES *****************************************************************/
9 
10 #include "halxbox.h"
11 
12 #define NDEBUG
13 #include <debug.h>
14 
15 /* FUNCTIONS ****************************************************************/
16 
17 VOID
18 NTAPI
19 HalpInitProcessor(
20     IN ULONG ProcessorNumber,
21     IN PLOADER_PARAMETER_BLOCK LoaderBlock)
22 {
23     /* Set default IDR */
24     KeGetPcr()->IDR = 0xFFFFFFFF & ~(1 << PIC_CASCADE_IRQ);
25 }
26 
27 VOID
28 HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
29 {
30     /* Initialize Xbox-specific disk hacks */
31     HalpXboxInitPartIo();
32 }
33 
34 VOID
35 HalpInitPhase1(VOID)
36 {
37     /* Enable timer interrupt handler */
38     HalpEnableInterruptHandler(IDT_DEVICE,
39                                0,
40                                PRIMARY_VECTOR_BASE + PIC_TIMER_IRQ,
41                                CLOCK2_LEVEL,
42                                HalpClockInterrupt,
43                                Latched);
44 
45     /* Enable RTC interrupt handler */
46     HalpEnableInterruptHandler(IDT_DEVICE,
47                                0,
48                                PRIMARY_VECTOR_BASE + PIC_RTC_IRQ,
49                                PROFILE_LEVEL,
50                                HalpProfileInterrupt,
51                                Latched);
52 
53     /* Initialize DMA. NT does this in Phase 0 */
54     HalpInitDma();
55 }
56 
57 /* EOF */
58