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/] [fw/] [arc/] [tree.c] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/*
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
 * PROM component device tree code.
7
 *
8
 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
9
 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org)
10
 * Copyright (C) 1999 Silicon Graphics, Inc.
11
 */
12
#include <linux/init.h>
13
#include <asm/fw/arc/types.h>
14
#include <asm/sgialib.h>
15
 
16
#undef DEBUG_PROM_TREE
17
 
18
pcomponent * __init
19
ArcGetPeer(pcomponent *Current)
20
{
21
        if (Current == PROM_NULL_COMPONENT)
22
                return PROM_NULL_COMPONENT;
23
 
24
        return (pcomponent *) ARC_CALL1(next_component, Current);
25
}
26
 
27
pcomponent * __init
28
ArcGetChild(pcomponent *Current)
29
{
30
        return (pcomponent *) ARC_CALL1(child_component, Current);
31
}
32
 
33
pcomponent * __init
34
ArcGetParent(pcomponent *Current)
35
{
36
        if (Current == PROM_NULL_COMPONENT)
37
                return PROM_NULL_COMPONENT;
38
 
39
        return (pcomponent *) ARC_CALL1(parent_component, Current);
40
}
41
 
42
LONG __init
43
ArcGetConfigurationData(VOID *Buffer, pcomponent *Current)
44
{
45
        return ARC_CALL2(component_data, Buffer, Current);
46
}
47
 
48
pcomponent * __init
49
ArcAddChild(pcomponent *Current, pcomponent *Template, VOID *ConfigurationData)
50
{
51
        return (pcomponent *)
52
               ARC_CALL3(child_add, Current, Template, ConfigurationData);
53
}
54
 
55
LONG __init
56
ArcDeleteComponent(pcomponent *ComponentToDelete)
57
{
58
        return ARC_CALL1(comp_del, ComponentToDelete);
59
}
60
 
61
pcomponent * __init
62
ArcGetComponent(CHAR *Path)
63
{
64
        return (pcomponent *)ARC_CALL1(component_by_path, Path);
65
}
66
 
67
#ifdef DEBUG_PROM_TREE
68
 
69
static char *classes[] = {
70
        "system", "processor", "cache", "adapter", "controller", "peripheral",
71
        "memory"
72
};
73
 
74
static char *types[] = {
75
        "arc", "cpu", "fpu", "picache", "pdcache", "sicache", "sdcache",
76
        "sccache", "memdev", "eisa adapter", "tc adapter", "scsi adapter",
77
        "dti adapter", "multi-func adapter", "disk controller",
78
        "tp controller", "cdrom controller", "worm controller",
79
        "serial controller", "net controller", "display controller",
80
        "parallel controller", "pointer controller", "keyboard controller",
81
        "audio controller", "misc controller", "disk peripheral",
82
        "floppy peripheral", "tp peripheral", "modem peripheral",
83
        "monitor peripheral", "printer peripheral", "pointer peripheral",
84
        "keyboard peripheral", "terminal peripheral", "line peripheral",
85
        "net peripheral", "misc peripheral", "anonymous"
86
};
87
 
88
static char *iflags[] = {
89
        "bogus", "read only", "removable", "console in", "console out",
90
        "input", "output"
91
};
92
 
93
static void __init
94
dump_component(pcomponent *p)
95
{
96
        printk("[%p]:class<%s>type<%s>flags<%s>ver<%d>rev<%d>",
97
               p, classes[p->class], types[p->type],
98
               iflags[p->iflags], p->vers, p->rev);
99
        printk("key<%08lx>\n\tamask<%08lx>cdsize<%d>ilen<%d>iname<%s>\n",
100
               p->key, p->amask, (int)p->cdsize, (int)p->ilen, p->iname);
101
}
102
 
103
static void __init
104
traverse(pcomponent *p, int op)
105
{
106
        dump_component(p);
107
        if(ArcGetChild(p))
108
                traverse(ArcGetChild(p), 1);
109
        if(ArcGetPeer(p) && op)
110
                traverse(ArcGetPeer(p), 1);
111
}
112
 
113
void __init
114
prom_testtree(void)
115
{
116
        pcomponent *p;
117
 
118
        p = ArcGetChild(PROM_NULL_COMPONENT);
119
        dump_component(p);
120
        p = ArcGetChild(p);
121
        while(p) {
122
                dump_component(p);
123
                p = ArcGetPeer(p);
124
        }
125
}
126
 
127
#endif /* DEBUG_PROM_TREE  */

powered by: WebSVN 2.1.0

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