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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [calmrisc32/] [ceb/] [v2_0/] [include/] [plf_io.h] - Blame information for rev 565

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

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_PLF_IO_H
2
#define CYGONCE_PLF_IO_H
3
 
4
//=============================================================================
5
//
6
//      plf_io.h
7
//
8
//      Platform specific IO support
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
//
16
// eCos is free software; you can redistribute it and/or modify it under
17
// the terms of the GNU General Public License as published by the Free
18
// Software Foundation; either version 2 or (at your option) any later version.
19
//
20
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
21
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
22
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23
// for more details.
24
//
25
// You should have received a copy of the GNU General Public License along
26
// with eCos; if not, write to the Free Software Foundation, Inc.,
27
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28
//
29
// As a special exception, if other files instantiate templates or use macros
30
// or inline functions from this file, or you compile this file and link it
31
// with other works to produce a work based on this file, this file does not
32
// by itself cause the resulting work to be covered by the GNU General Public
33
// License. However the source code for this file must still be made available
34
// in accordance with section (3) of the GNU General Public License.
35
//
36
// This exception does not invalidate any other reasons why a work based on
37
// this file might be covered by the GNU General Public License.
38
//
39
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
40
// at http://sources.redhat.com/ecos/ecos-license/
41
// -------------------------------------------
42
//####ECOSGPLCOPYRIGHTEND####
43
//=============================================================================
44
//#####DESCRIPTIONBEGIN####
45
//
46
// Author(s):    msalter
47
// Contributors: msalter
48
// Date:         2001-02-12
49
// Purpose:      CalmRISC32 platform IO support
50
// Description: 
51
// Usage:        #include <cyg/hal/plf_io.h>
52
//
53
//####DESCRIPTIONEND####
54
//
55
//=============================================================================
56
 
57
#include <pkgconf/hal.h>
58
#include <cyg/hal/hal_misc.h>
59
 
60
// coprocessor regs
61
#define HAL_COP_SR_RBR 0x1c
62
#define HAL_COP_SR_TBR 0x1d
63
#define HAL_COP_TBR    0x1e
64
#define HAL_COP_RBR    0x1f
65
 
66
#ifndef __ASSEMBLER__
67
 
68
static inline void cyg_hal_plf_write_sr_rbr(int val)
69
{
70
    asm volatile ("cld fr28,%0\n" : : "r"(val));
71
}
72
 
73
static inline void cyg_hal_plf_write_sr_tbr(int val)
74
{
75
    asm volatile ("cld fr29,%0\n" : : "r"(val));
76
}
77
 
78
static inline void cyg_hal_plf_write_tbr(int val)
79
{
80
    asm volatile ("cld fr30,%0\n" : : "r"(val));
81
}
82
 
83
static inline void cyg_hal_plf_write_rbr(int val)
84
{
85
    asm volatile ("cld fr31,%0\n" : : "r"(val));
86
}
87
 
88
static inline int cyg_hal_plf_read_sr_rbr(void)
89
{
90
    int val;
91
 
92
    asm volatile ("cld %0,fr28\n" : "=r"(val) : );
93
    return val;
94
}
95
 
96
static inline int cyg_hal_plf_read_sr_tbr(void)
97
{
98
    int val;
99
 
100
    asm volatile ("cld %0,fr29\n" : "=r"(val) : );
101
    return val;
102
}
103
 
104
static inline int cyg_hal_plf_read_tbr(void)
105
{
106
    int val;
107
 
108
    asm volatile ("cld %0,fr30\n" : "=r"(val) : );
109
    return val;
110
}
111
 
112
static inline int cyg_hal_plf_read_rbr(void)
113
{
114
    int val;
115
 
116
    asm volatile ("cld %0,fr31\n" : "=r"(val) : );
117
    return val;
118
}
119
#endif
120
 
121
//-----------------------------------------------------------------------------
122
// end of plf_io.h
123
#endif // CYGONCE_PLF_IO_H

powered by: WebSVN 2.1.0

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