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
wrppmc
reset.c
Go to the documentation of this file.
1
/*
2
* This file is subject to the terms and conditions of the GNU General Public
3
* License. See the file "COPYING" in the main directory of this archive
4
* for more details.
5
*
6
* Copyright (C) 1997 Ralf Baechle
7
*/
8
#include <
linux/irqflags.h
>
9
#include <linux/kernel.h>
10
11
#include <asm/cacheflush.h>
12
#include <
asm/mipsregs.h
>
13
#include <asm/processor.h>
14
15
void
wrppmc_machine_restart
(
char
*
command
)
16
{
17
/*
18
* Ouch, we're still alive ... This time we take the silver bullet ...
19
* ... and find that we leave the hardware in a state in which the
20
* kernel in the flush locks up somewhen during of after the PCI
21
* detection stuff.
22
*/
23
local_irq_disable
();
24
set_c0_status(
ST0_BEV
|
ST0_ERL
);
25
change_c0_config(
CONF_CM_CMASK
,
CONF_CM_UNCACHED
);
26
flush_cache_all
();
27
write_c0_wired
(0);
28
__asm__
__volatile__(
"jr\t%0"
::
"r"
(0xbfc00000));
29
}
30
31
void
wrppmc_machine_halt
(
void
)
32
{
33
local_irq_disable
();
34
35
printk
(
KERN_NOTICE
"You can safely turn off the power\n"
);
36
while
(1) {
37
if
(
cpu_wait
)
38
cpu_wait
();
39
}
40
}
Generated on Thu Jan 10 2013 13:00:20 for Linux Kernel by
1.8.2