summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halfire/ppc/pxmapio.c
blob: 383fa1c052f15381b8134fd6c8375be707c1b7d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*++

Copyright (c) 1991  Microsoft Corporation

Copyright (c) 1994 MOTOROLA, INC.  All Rights Reserved.  This file
contains copyrighted material.  Use of this file is restricted
by the provisions of a Motorola Software License Agreement.

Module Name:

    pxmapio.c

Abstract:

    This module implements the mapping of HAL I/O space for a POWER PC
    system.

Author:

    David N. Cutler (davec) 28-Apr-1991

Environment:

    Kernel mode

Revision History:

    Jim Wooldridge (jimw@austin.vnet.ibm.com) Initial PowerPC port

       Map interrupt acknowledge base address
       Map SIO config base address
       Remove RTC map - S-FOOT mapsthe RTC into the ISA I/O space

--*/

/*
 * Copyright (c) 1995 FirePower Systems, Inc.
 * DO NOT DISTRIBUTE without permission
 *
 * $RCSfile: pxmapio.c $
 * $Revision: 1.5 $
 * $Date: 1996/01/11 07:11:27 $
 * $Locker:  $
 */

#include "halp.h"

//
// Put all code for HAL initialization in the INIT section. It will be
// deallocated by memory management when phase 1 initialization is
// completed.
//

#if defined(ALLOC_PRAGMA)

#pragma alloc_text(INIT, HalpMapIoSpace)

#endif


BOOLEAN
HalpMapIoControlSpace (
    VOID
    );

BOOLEAN
HalpMapPlanarSpace (
    VOID
    );

BOOLEAN
HalpMapBusConfigSpace (
    VOID
    );

//
// Define global data used to locate the IO control space and the PCI config
// space.
//

PVOID HalpInterruptBase;
PVOID HalpPciConfigBase;
PVOID HalpErrorAddressRegister;


BOOLEAN
HalpMapIoSpace (
    VOID
    )

/*++

Routine Description:

    This routine maps the HAL I/O, planar control, and bus configuration
    spaces for a PowerPC system.

Arguments:

    None.

Return Value:

    If the initialization is successfully completed, than a value of TRUE
    is returned. Otherwise, a value of FALSE is returned.

--*/

{

    //
    // Map bus/bridge I/O control space
    //

    if (!HalpMapIoControlSpace())
       return FALSE;

    //
    // Map Planar I/O control space
    //

    if (!HalpMapPlanarSpace())
       return FALSE;

    //
    // Map Bus configuration space
    //

    if (!HalpMapBusConfigSpace())
       return FALSE;


    return TRUE;
}