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

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [mips/] [jazz/] [reset.c] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/*
2
 * Reset a Jazz machine.
3
 *
4
 * We don't trust the firmware so we do it the classic way by poking and
5
 * stabbing at the keyboard controller ...
6
 */
7
#include <linux/jiffies.h>
8
#include <asm/jazz.h>
9
 
10
#define KBD_STAT_IBF            0x02    /* Keyboard input buffer full */
11
 
12
static void jazz_write_output(unsigned char val)
13
{
14
        int status;
15
 
16
        do {
17
                status = jazz_kh->command;
18
        } while (status & KBD_STAT_IBF);
19
        jazz_kh->data = val;
20
}
21
 
22
static void jazz_write_command(unsigned char val)
23
{
24
        int status;
25
 
26
        do {
27
                status = jazz_kh->command;
28
        } while (status & KBD_STAT_IBF);
29
        jazz_kh->command = val;
30
}
31
 
32
static unsigned char jazz_read_status(void)
33
{
34
        return jazz_kh->command;
35
}
36
 
37
static inline void kb_wait(void)
38
{
39
        unsigned long start = jiffies;
40
        unsigned long timeout = start + HZ/2;
41
 
42
        do {
43
                if (! (jazz_read_status() & 0x02))
44
                        return;
45
        } while (time_before_eq(jiffies, timeout));
46
}
47
 
48
void jazz_machine_restart(char *command)
49
{
50
        while(1) {
51
                kb_wait();
52
                jazz_write_command(0xd1);
53
                kb_wait();
54
                jazz_write_output(0x00);
55
        }
56
}

powered by: WebSVN 2.1.0

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