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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [alpha/] [kernel/] [err_impl.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *      linux/arch/alpha/kernel/err_impl.h
3
 *
4
 *      Copyright (C) 2000 Jeff Wiedemeier (Compaq Computer Corporation)
5
 *
6
 *      Contains declarations and macros to support Alpha error handling
7
 *      implementations.
8
 */
9
 
10
/*
11
 * SCB Vector definitions
12
 */
13
#define SCB_Q_SYSERR    0x620
14
#define SCB_Q_PROCERR   0x630
15
#define SCB_Q_SYSMCHK   0x660
16
#define SCB_Q_PROCMCHK  0x670
17
#define SCB_Q_SYSEVENT  0x680
18
 
19
/*
20
 * Disposition definitions for logout frame parser
21
 */
22
#define MCHK_DISPOSITION_UNKNOWN_ERROR          0x00
23
#define MCHK_DISPOSITION_REPORT                 0x01
24
#define MCHK_DISPOSITION_DISMISS                0x02
25
 
26
/*
27
 * Error Log definitions
28
 */
29
/*
30
 * Types
31
 */
32
 
33
#define EL_CLASS__TERMINATION           (0)
34
#  define EL_TYPE__TERMINATION__TERMINATION             (0)
35
#define EL_CLASS__HEADER                (5)
36
#  define EL_TYPE__HEADER__SYSTEM_ERROR_FRAME           (1)
37
#  define EL_TYPE__HEADER__SYSTEM_EVENT_FRAME           (2)
38
#  define EL_TYPE__HEADER__HALT_FRAME                   (3)
39
#  define EL_TYPE__HEADER__LOGOUT_FRAME                 (19)
40
#define EL_CLASS__GENERAL_NOTIFICATION  (9)
41
#define EL_CLASS__PCI_ERROR_FRAME       (11)
42
#define EL_CLASS__REGATTA_FAMILY        (12)
43
#  define EL_TYPE__REGATTA__PROCESSOR_ERROR_FRAME       (1)
44
#  define EL_TYPE__REGATTA__SYSTEM_ERROR_FRAME          (2)
45
#  define EL_TYPE__REGATTA__ENVIRONMENTAL_FRAME         (3)
46
#  define EL_TYPE__REGATTA__TITAN_PCHIP0_EXTENDED       (8)
47
#  define EL_TYPE__REGATTA__TITAN_PCHIP1_EXTENDED       (9)
48
#  define EL_TYPE__REGATTA__TITAN_MEMORY_EXTENDED       (10)
49
#  define EL_TYPE__REGATTA__PROCESSOR_DBL_ERROR_HALT    (11)
50
#  define EL_TYPE__REGATTA__SYSTEM_DBL_ERROR_HALT       (12)
51
#define EL_CLASS__PAL                   (14)
52
#  define EL_TYPE__PAL__LOGOUT_FRAME                    (1)
53
#  define EL_TYPE__PAL__EV7_PROCESSOR                   (4)
54
#  define EL_TYPE__PAL__EV7_ZBOX                        (5)
55
#  define EL_TYPE__PAL__EV7_RBOX                        (6)
56
#  define EL_TYPE__PAL__EV7_IO                          (7)
57
 
58
union el_timestamp {
59
        struct {
60
                u8 second;
61
                u8 minute;
62
                u8 hour;
63
                u8 day;
64
                u8 month;
65
                u8 year;
66
        } b;
67
        u64 as_int;
68
};
69
 
70
struct el_subpacket {
71
        u16 length;             /* length of header (in bytes)  */
72
        u16 class;              /* header class and type...     */
73
        u16 type;               /* ...determine content         */
74
        u16 revision;           /* header revision              */
75
        union {
76
                struct {        /* Class 5, Type 1 - System Error       */
77
                        u32 frame_length;
78
                        u32 frame_packet_count;
79
                } sys_err;
80
                struct {        /* Class 5, Type 2 - System Event       */
81
                        union el_timestamp timestamp;
82
                        u32 frame_length;
83
                        u32 frame_packet_count;
84
                } sys_event;
85
                struct {        /* Class 5, Type 3 - Double Error Halt  */
86
                        u16 halt_code;
87
                        u16 reserved;
88
                        union el_timestamp timestamp;
89
                        u32 frame_length;
90
                        u32 frame_packet_count;
91
                } err_halt;
92
                struct {        /* Clasee 5, Type 19 - Logout Frame Header */
93
                        u32 frame_length;
94
                        u32 frame_flags;
95
                        u32 cpu_offset;
96
                        u32 system_offset;
97
                } logout_header;
98
                struct {        /* Class 12 - Regatta                   */
99
                        u64 cpuid;
100
                        u64 data_start[1];
101
                } regatta_frame;
102
                struct {        /* Raw                                  */
103
                        u64 data_start[1];
104
                } raw;
105
        } by_type;
106
};
107
 
108
struct el_subpacket_annotation {
109
        struct el_subpacket_annotation *next;
110
        u16 class;
111
        u16 type;
112
        u16 revision;
113
        char *description;
114
        char **annotation;
115
};
116
#define SUBPACKET_ANNOTATION(c, t, r, d, a) {NULL, (c), (t), (r), (d), (a)}
117
 
118
struct el_subpacket_handler {
119
        struct el_subpacket_handler *next;
120
        u16 class;
121
        struct el_subpacket *(*handler)(struct el_subpacket *);
122
};
123
#define SUBPACKET_HANDLER_INIT(c, h) {NULL, (c), (h)}
124
 
125
/*
126
 * Extract a field from a register given it's name. defines
127
 * for the LSB (__S - shift count) and bitmask (__M) are required
128
 */
129
#define EXTRACT(u, f) (((u) >> f##__S) & f##__M)
130
 
131
/*
132
 * err_common.c
133
 */
134
extern char *err_print_prefix;
135
 
136
extern void mchk_dump_mem(void *, size_t, char **);
137
extern void mchk_dump_logout_frame(struct el_common *);
138
extern void ev7_register_error_handlers(void);
139
extern void ev7_machine_check(u64, u64, struct pt_regs *);
140
extern void ev6_register_error_handlers(void);
141
extern int ev6_process_logout_frame(struct el_common *, int);
142
extern void ev6_machine_check(u64, u64, struct pt_regs *);
143
extern struct el_subpacket *el_process_subpacket(struct el_subpacket *);
144
extern void el_annotate_subpacket(struct el_subpacket *);
145
extern void cdl_check_console_data_log(void);
146
extern int cdl_register_subpacket_annotation(struct el_subpacket_annotation *);
147
extern int cdl_register_subpacket_handler(struct el_subpacket_handler *);
148
 
149
/*
150
 * err_marvel.c
151
 */
152
extern void marvel_machine_check(u64, u64, struct pt_regs *);
153
extern void marvel_register_error_handlers(void);
154
 
155
/*
156
 * err_titan.c
157
 */
158
extern int titan_process_logout_frame(struct el_common *, int);
159
extern void titan_machine_check(u64, u64, struct pt_regs *);
160
extern void titan_register_error_handlers(void);
161
extern int privateer_process_logout_frame(struct el_common *, int);
162
extern void privateer_machine_check(u64, u64, struct pt_regs *);

powered by: WebSVN 2.1.0

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