Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
cobalt
setup.c
Go to the documentation of this file.
1
/*
2
* Setup pointers to hardware dependent routines.
3
*
4
* This file is subject to the terms and conditions of the GNU General Public
5
* License. See the file "COPYING" in the main directory of this archive
6
* for more details.
7
*
8
* Copyright (C) 1996, 1997, 2004, 05 by Ralf Baechle (
[email protected]
)
9
* Copyright (C) 2001, 2002, 2003 by Liam Davies (
[email protected]
)
10
*
11
*/
12
#include <
linux/init.h
>
13
#include <
linux/interrupt.h
>
14
#include <
linux/io.h
>
15
#include <
linux/ioport.h
>
16
#include <
linux/pm.h
>
17
18
#include <asm/bootinfo.h>
19
#include <asm/reboot.h>
20
#include <
asm/gt64120.h
>
21
22
#include <cobalt.h>
23
24
extern
void
cobalt_machine_restart
(
char
*
command
);
25
extern
void
cobalt_machine_halt
(
void
);
26
27
const
char
*
get_system_type
(
void
)
28
{
29
switch
(
cobalt_board_id
) {
30
case
COBALT_BRD_ID_QUBE1
:
31
return
"Cobalt Qube"
;
32
case
COBALT_BRD_ID_RAQ1
:
33
return
"Cobalt RaQ"
;
34
case
COBALT_BRD_ID_QUBE2
:
35
return
"Cobalt Qube2"
;
36
case
COBALT_BRD_ID_RAQ2
:
37
return
"Cobalt RaQ2"
;
38
}
39
return
"MIPS Cobalt"
;
40
}
41
42
/*
43
* Cobalt doesn't have PS/2 keyboard/mouse interfaces,
44
* keyboard conntroller is never used.
45
* Also PCI-ISA bridge DMA contoroller is never used.
46
*/
47
static
struct
resource
cobalt_reserved_resources[] = {
48
{
/* dma1 */
49
.start = 0x00,
50
.end = 0x1f,
51
.name =
"reserved"
,
52
.flags =
IORESOURCE_BUSY
|
IORESOURCE_IO
,
53
},
54
{
/* keyboard */
55
.start = 0x60,
56
.end = 0x6f,
57
.name =
"reserved"
,
58
.flags =
IORESOURCE_BUSY
|
IORESOURCE_IO
,
59
},
60
{
/* dma page reg */
61
.start = 0x80,
62
.end = 0x8f,
63
.name =
"reserved"
,
64
.flags =
IORESOURCE_BUSY
|
IORESOURCE_IO
,
65
},
66
{
/* dma2 */
67
.start = 0xc0,
68
.end = 0xdf,
69
.name =
"reserved"
,
70
.flags =
IORESOURCE_BUSY
|
IORESOURCE_IO
,
71
},
72
};
73
74
void
__init
plat_mem_setup
(
void
)
75
{
76
int
i
;
77
78
_machine_restart
=
cobalt_machine_restart
;
79
_machine_halt
=
cobalt_machine_halt
;
80
pm_power_off
=
cobalt_machine_halt
;
81
82
set_io_port_base(
CKSEG1ADDR
(
GT_DEF_PCI0_IO_BASE
));
83
84
/* I/O port resource */
85
ioport_resource
.end = 0x01ffffff;
86
87
/* These resources have been reserved by VIA SuperI/O chip. */
88
for
(i = 0; i <
ARRAY_SIZE
(cobalt_reserved_resources); i++)
89
request_resource
(&
ioport_resource
, cobalt_reserved_resources + i);
90
}
91
92
/*
93
* Prom init. We read our one and only communication with the firmware.
94
* Grab the amount of installed memory.
95
* Better boot loaders (CoLo) pass a command line too :-)
96
*/
97
98
void
__init
prom_init
(
void
)
99
{
100
unsigned
long
memsz;
101
int
argc
,
i
;
102
char
**argv;
103
104
memsz =
fw_arg0
& 0x7fff0000;
105
argc =
fw_arg0
& 0x0000ffff;
106
argv = (
char
**)
fw_arg1
;
107
108
for
(i = 1; i <
argc
; i++) {
109
strlcat
(
arcs_cmdline
, argv[i],
COMMAND_LINE_SIZE
);
110
if
(i < (argc - 1))
111
strlcat
(
arcs_cmdline
,
" "
,
COMMAND_LINE_SIZE
);
112
}
113
114
add_memory_region
(0x0, memsz,
BOOT_MEM_RAM
);
115
}
116
117
void
__init
prom_free_prom_memory
(
void
)
118
{
119
/* Nothing to do! */
120
}
Generated on Thu Jan 10 2013 12:52:48 for Linux Kernel by
1.8.2