OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [mips/] [sni/] [reset.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  linux/arch/mips/sni/process.c
3
 *
4
 *  Reset a SNI machine.
5
 */
6
#include <asm/io.h>
7
#include <asm/reboot.h>
8
#include <asm/system.h>
9
#include <asm/sni.h>
10
 
11
/*
12
 * This routine reboots the machine by asking the keyboard
13
 * controller to pulse the reset-line low. We try that for a while,
14
 * and if it doesn't work, we do some other stupid things.
15
 */
16
static inline void
17
kb_wait(void)
18
{
19
        int i;
20
 
21
        for (i=0; i<0x10000; i++)
22
                if ((inb_p(0x64) & 0x02) == 0)
23
                        break;
24
}
25
 
26
/* XXX This ends up at the ARC firmware prompt ...  */
27
void sni_machine_restart(char *command)
28
{
29
        int i, j;
30
 
31
        /* This does a normal via the keyboard controller like a PC.
32
           We can do that easier ...  */
33
        sti();
34
        for (;;) {
35
                for (i=0; i<100; i++) {
36
                        kb_wait();
37
                        for(j = 0; j < 100000 ; j++)
38
                                /* nothing */;
39
                        outb_p(0xfe,0x64);       /* pulse reset low */
40
                }
41
        }
42
}
43
 
44
void sni_machine_halt(void)
45
{
46
}
47
 
48
void sni_machine_power_off(void)
49
{
50
        *(volatile unsigned char *)PCIMT_CSWCSM = 0xfd;
51
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.