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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [powerpc/] [vads/] [v2_0/] [include/] [hal_diag.h] - Blame information for rev 454

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_HAL_HAL_DIAG_H
2
#define CYGONCE_HAL_HAL_DIAG_H
3
 
4
//=============================================================================
5
//
6
//      hal_diag.h
7
//
8
//      HAL Support for Kernel Diagnostic Routines
9
//
10
//=============================================================================
11
//####ECOSGPLCOPYRIGHTBEGIN####
12
// -------------------------------------------
13
// This file is part of eCos, the Embedded Configurable Operating System.
14
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15
// Copyright (C) 2002 Gary Thomas
16
//
17
// eCos is free software; you can redistribute it and/or modify it under
18
// the terms of the GNU General Public License as published by the Free
19
// Software Foundation; either version 2 or (at your option) any later version.
20
//
21
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
22
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
23
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
24
// for more details.
25
//
26
// You should have received a copy of the GNU General Public License along
27
// with eCos; if not, write to the Free Software Foundation, Inc.,
28
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
29
//
30
// As a special exception, if other files instantiate templates or use macros
31
// or inline functions from this file, or you compile this file and link it
32
// with other works to produce a work based on this file, this file does not
33
// by itself cause the resulting work to be covered by the GNU General Public
34
// License. However the source code for this file must still be made available
35
// in accordance with section (3) of the GNU General Public License.
36
//
37
// This exception does not invalidate any other reasons why a work based on
38
// this file might be covered by the GNU General Public License.
39
//
40
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
41
// at http://sources.redhat.com/ecos/ecos-license/
42
// -------------------------------------------
43
//####ECOSGPLCOPYRIGHTEND####
44
//=============================================================================
45
//#####DESCRIPTIONBEGIN####
46
//
47
// Author(s):   nickg
48
// Contributors:nickg
49
// Date:        1998-03-02
50
// Purpose:     HAL Support for Kernel Diagnostic Routines
51
// Description: Diagnostic routines for use during kernel development.
52
// Usage:       #include <cyg/hal/hal_diag.h>
53
//
54
//####DESCRIPTIONEND####
55
//
56
//=============================================================================
57
 
58
#include <pkgconf/hal.h>
59
 
60
#include <cyg/infra/cyg_type.h>
61
 
62
#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
63
// These should not need to be prototyped here, but where????
64
cyg_uint8
65
cyg_hal_plf_serial_getc(void);
66
 
67
#if 1
68
void
69
cyg_hal_plf_serial_putc(cyg_uint8 ch);
70
#else
71
void
72
cyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 ch);
73
#endif
74
 
75
#if 1
76
void
77
cyg_hal_plf_serial_init(void);
78
#else
79
void
80
cyg_hal_plf_serial_init_channel(void);
81
#endif
82
#endif //#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
83
 
84
#define LATER
85
#ifdef LATER
86
// See the #else clause at the end
87
#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
88
 
89
#include <cyg/hal/hal_if.h>
90
 
91
#define HAL_DIAG_INIT() hal_if_diag_init()
92
#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
93
#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
94
 
95
#else // everything by steam
96
 
97
//-----------------------------------------------------------------------------
98
// functions implemented in hal_diag.c
99
 
100
externC void hal_diag_init(void);
101
 
102
externC void hal_diag_write_char(char c);
103
 
104
externC void hal_diag_read_char(char *c);
105
 
106
//-----------------------------------------------------------------------------
107
 
108
#define HAL_DIAG_INIT() hal_diag_init()
109
 
110
#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
111
 
112
#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
113
 
114
#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
115
 
116
//-----------------------------------------------------------------------------
117
// end of hal_diag.h
118
#else
119
// Need to figure out what to do here at some point, for now, I just copied
120
// these from the simulator hal_diag.h
121
 
122
//-----------------------------------------------------------------------------
123
// Register addresses
124
 
125
#define PAL_RESET        0x00
126
#define PAL_CPU_NR       0x04
127
#define PAL_INT          0x08
128
#define PAL_NR_CPU       0x0a
129
 
130
#define PAL_READ_FIFO    0x10
131
#define PAL_READ_STATUS  0x14
132
#define PAL_WRITE_FIFO   0x18
133
#define PAL_WRITE_STATUS 0x1a
134
 
135
#define OEA_DEV          0xf0001000
136
 
137
//-----------------------------------------------------------------------------
138
 
139
#define HAL_DIAG_INIT()
140
 
141
// Added by WPD
142
#ifndef HAL_DISABLE_INTERRUPTS
143
#define HAL_DISABLE_INTERRUPTS
144
#define HAL_RESTORE_INTERRUPTS
145
#endif
146
 
147
#define HAL_DIAG_WRITE_CHAR(_c_)                        \
148
CYG_MACRO_START                                         \
149
    volatile unsigned char *tty_buffer =                \
150
        (unsigned char*)(OEA_DEV + PAL_WRITE_FIFO);     \
151
    volatile unsigned char *tty_status =                \
152
        (unsigned char*)(OEA_DEV + PAL_WRITE_STATUS);   \
153
    unsigned long __state;                              \
154
                                                        \
155
    HAL_DISABLE_INTERRUPTS(__state);                    \
156
    if( _c_ != '\r' )                                   \
157
    {                                                   \
158
        while( *tty_status == 0 ) continue;             \
159
        *tty_buffer = _c_;                              \
160
    }                                                   \
161
    HAL_RESTORE_INTERRUPTS(__state);                    \
162
CYG_MACRO_END
163
 
164
#define HAL_DIAG_READ_CHAR(_c_)                         \
165
CYG_MACRO_START                                         \
166
    volatile unsigned char *tty_buffer =                \
167
        (unsigned char*)(OEA_DEV + PAL_READ_FIFO);      \
168
    volatile unsigned char *tty_status =                \
169
        (unsigned char*)(OEA_DEV + PAL_READ_STATUS);    \
170
    while( *tty_status == 0 ) continue;                 \
171
    _c_ = *tty_buffer;                                  \
172
CYG_MACRO_END
173
#endif // LATER
174
#endif // CYGONCE_HAL_HAL_DIAG_H

powered by: WebSVN 2.1.0

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