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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [powerpc/] [csb281/] [v2_0/] [include/] [plf_regs.h] - Blame information for rev 587

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

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_HAL_PLF_REGS_H
2
#define CYGONCE_HAL_PLF_REGS_H
3
 
4
//==========================================================================
5
//
6
//      plf_regs.h
7
//
8
//      PowerPC 82xx platform CPU definitions
9
//
10
//==========================================================================
11
//####ECOSGPLCOPYRIGHTBEGIN####
12
// -------------------------------------------
13
// This file is part of eCos, the Embedded Configurable Operating System.
14
// Copyright (C) 2002 Gary Thomas
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):    gthomas
47
// Contributors: gthomas
48
// Date:         2002-06-27
49
// Purpose:      
50
// Description:  Possibly override any platform assumptions
51
//
52
// Usage:        Included via the variant+architecture register headers:
53
//               ...
54
//              
55
//
56
//####DESCRIPTIONEND####
57
//
58
//==========================================================================
59
 
60
#define _CSB281_PCI_CONFIG_ADDR    0xFEC00000   // PCI configuration cycle address
61
#define _CSB281_PCI_CONFIG_DATA    0xFEE00000   // PCI configuration cycle data
62
 
63
#define _CSB281_BCSR               0xFF000000   // Board control (16 bit access)
64
#define _CSB281_BCSR_IDSEL1          0x0001     // Select PCI slot 0
65
#define _CSB281_BCSR_IDSEL2          0x0002     // Select PCI slot 1
66
#define _CSB281_BCSR_IDSEL3          0x0004     // Select GD82559 (PCI)
67
#define _CSB281_BCSR_LED0            0x0008     // 0 => LED0 on
68
#define _CSB281_BCSR_LED1            0x0010     // 0 => LED1 on
69
#define _CSB281_BCSR_PRESET          0x0020     // 0 => Reset peripherals (PCI, etc)
70
#define _CSB281_BCSR_SMI             0x0040     // 1 => enable SMI via SW0
71
#define _CSB281_BCSR_NMI             0x0080     // 1 => enable SMI via SW1
72
#define _CSB281_BCSR_USER0           0x0100     // 0 => DIP switch 0 on
73
#define _CSB281_BCSR_USER1           0x0200     // 0 => DIP switch 1 on
74
#define _CSB281_BCSR_USER2           0x0400     // 0 => DIP switch 2 on
75
#define _CSB281_BCSR_USER3           0x0800     // 0 => DIP switch 3 on
76
#define _CSB281_BCSR_SW0             0x1000     // 0 => SW0 pressed
77
#define _CSB281_BCSR_SW1             0x2000     // 0 => SW1 pressed
78
 
79
#define _CSB281_2WCSR              0xFF000100   // 2wire controller (32 bit access)
80
#define _CSB281_2WCSR_CLR_ALL        0x0000     // SDA=0, SCL=0
81
#define _CSB281_2WCSR_SET_ALL        0x00FF     // SDA=1, SCL=1
82
#define _CSB281_2WCSR_CLR_SDA        0x0004     // SDA=0
83
#define _CSB281_2WCSR_SET_SDA        0x0008     // SDA=1
84
#define _CSB281_2WCSR_CLR_SCL        0x0001     // SCL=0
85
#define _CSB281_2WCSR_SET_SCL        0x0002     // SCL=1
86
#define _CSB281_2WCSR_GET_SCL        0x0002     // SCL=?
87
#define _CSB281_2WCSR_GET_SDA        0x0001     // SDA=?
88
 
89
#define _CSB281_FS6377_DEV         0x58
90
 
91
#define _CSB281_EUMBBAR            0xF0000000   // Internal registers
92
 
93
// Interrupt controller
94
#define _CSB281_EPIC               (_CSB281_EUMBBAR+0x40000)
95
#define _CSB281_EPIC_FRR           (_CSB281_EPIC+0x01000)  // Feature reporting register
96
#define _CSB281_EPIC_GCR           (_CSB281_EPIC+0x01020)  // Global configuration
97
#define _CSB281_EPIC_GCR_R            0x80000000           // Reset
98
#define _CSB281_EPIC_GCR_M            0x20000000           // Mode
99
#define _CSB281_EPIC_EICR          (_CSB281_EPIC+0x01030)  // Interrupt configuration
100
#define _CSB281_EPIC_EICR_SIE         0x08000000           // Serial interrupt enable
101
#define _CSB281_EPIC_EVI           (_CSB281_EPIC+0x01080)  // Vendor identification
102
#define _CSB281_EPIC_PI            (_CSB281_EPIC+0x01090)  // Processor initialization
103
#define _CSB281_EPIC_SVR           (_CSB281_EPIC+0x010E0)  // Spurious interrupt
104
#define _CSB281_EPIC_TFRR          (_CSB281_EPIC+0x010F0)  // Timer frequency
105
#define _CSB281_EPIC_TCR           (_CSB281_EPIC+0x010F4)  // Timer control
106
#define _CSB281_EPIC_GTCCR0        (_CSB281_EPIC+0x01100)  // Timer 0 - current count
107
#define _CSB281_EPIC_GTBCR0        (_CSB281_EPIC+0x01110)  // Timer 0 - base  count
108
#define _CSB281_EPIC_GTVPR0        (_CSB281_EPIC+0x01120)  // Timer 0 - vector/priority
109
#define _CSB281_EPIC_GTDR0         (_CSB281_EPIC+0x01130)  // Timer 0 - destination
110
#define _CSB281_EPIC_GTCCR1        (_CSB281_EPIC+0x01140)  // Timer 1 - current count
111
#define _CSB281_EPIC_GTBCR1        (_CSB281_EPIC+0x01150)  // Timer 1 - base  count
112
#define _CSB281_EPIC_GTVPR1        (_CSB281_EPIC+0x01160)  // Timer 1 - vector/priority
113
#define _CSB281_EPIC_GTDR1         (_CSB281_EPIC+0x01170)  // Timer 1 - destination
114
#define _CSB281_EPIC_GTCCR2        (_CSB281_EPIC+0x01180)  // Timer 2 - current count
115
#define _CSB281_EPIC_GTBCR2        (_CSB281_EPIC+0x01190)  // Timer 2 - base  count
116
#define _CSB281_EPIC_GTVPR2        (_CSB281_EPIC+0x011A0)  // Timer 2 - vector/priority
117
#define _CSB281_EPIC_GTDR2         (_CSB281_EPIC+0x011B0)  // Timer 2 - destination
118
#define _CSB281_EPIC_GTCCR3        (_CSB281_EPIC+0x011C0)  // Timer 2 - current count
119
#define _CSB281_EPIC_GTBCR3        (_CSB281_EPIC+0x011D0)  // Timer 2 - base  count
120
#define _CSB281_EPIC_GTVPR3        (_CSB281_EPIC+0x011E0)  // Timer 2 - vector/priority
121
#define _CSB281_EPIC_IVPR0         (_CSB281_EPIC+0x10200)  // IRQ 0 - vector/priority
122
#define _CSB281_EPIC_IDR0          (_CSB281_EPIC+0x10210)  // IRQ 0 - destination
123
#define _CSB281_EPIC_IVPR1         (_CSB281_EPIC+0x10220)  // IRQ 1 - vector/priority
124
#define _CSB281_EPIC_IDR1          (_CSB281_EPIC+0x10230)  // IRQ 1 - destination
125
#define _CSB281_EPIC_IVPR2         (_CSB281_EPIC+0x10240)  // IRQ 2 - vector/priority
126
#define _CSB281_EPIC_IDR2          (_CSB281_EPIC+0x10250)  // IRQ 2 - destination
127
#define _CSB281_EPIC_IVPR3         (_CSB281_EPIC+0x10260)  // IRQ 3 - vector/priority
128
#define _CSB281_EPIC_IDR3          (_CSB281_EPIC+0x10270)  // IRQ 3 - destination
129
#define _CSB281_EPIC_IVPR4         (_CSB281_EPIC+0x10280)  // IRQ 4 - vector/priority
130
#define _CSB281_EPIC_IDR4          (_CSB281_EPIC+0x10290)  // IRQ 4 - destination
131
#define _CSB281_EPIC_I2CVPR        (_CSB281_EPIC+0x11020)  // I2C - vector/priority
132
#define _CSB281_EPIC_I2CDR         (_CSB281_EPIC+0x11030)  // I2C - destination
133
#define _CSB281_EPIC_DMA0VPR       (_CSB281_EPIC+0x11040)  // DMA0 - vector/priority
134
#define _CSB281_EPIC_DMA0DR        (_CSB281_EPIC+0x11050)  // DMA0 - destination
135
#define _CSB281_EPIC_DMA1VPR       (_CSB281_EPIC+0x11060)  // DMA1 - vector/priority
136
#define _CSB281_EPIC_DMA1DR        (_CSB281_EPIC+0x11070)  // DMA1 - destination
137
#define _CSB281_EPIC_MSGVPR        (_CSB281_EPIC+0x110C0)  // MSG - vector/priority
138
#define _CSB281_EPIC_MSGDR         (_CSB281_EPIC+0x110D0)  // MSG - destination
139
#define _CSB281_EPIC_UART0VPR      (_CSB281_EPIC+0x11120)  // UART0 - vector/priority
140
#define _CSB281_EPIC_UART0DR       (_CSB281_EPIC+0x11130)  // UART0 - destination
141
#define _CSB281_EPIC_UART1VPR      (_CSB281_EPIC+0x11140)  // UART1 - vector/priority
142
#define _CSB281_EPIC_UART1DR       (_CSB281_EPIC+0x11150)  // UART1 - destination
143
#define _CSB281_EPIC_PCTPR         (_CSB281_EPIC+0x20080)  // Processor current task priority
144
#define _CSB281_EPIC_IACK          (_CSB281_EPIC+0x200A0)  // Interrupt ack (vector)
145
#define _CSB281_EPIC_EOI           (_CSB281_EPIC+0x200B0)  // End of interrupt
146
 
147
#define _CSB281_EPIC_PVR_M            0x80000000           // Interrupt masked
148
#define _CSB281_EPIC_PVR_A            0x40000000           // Interrupt active
149
#define _CSB281_EPIC_PVR_P            0x00800000           // Polarity 0 = active low
150
#define _CSB281_EPIC_PVR_S            0x00400000           // Sense 0 = edge
151
#define _CSB281_EPIC_PVR_PRIO_SHIFT   16
152
#define _CSB281_EPIC_PVR_PRIO_MASK    0xF
153
#define _CSB281_EPIC_PVR_VEC_SHIFT    0
154
#define _CSB281_EPIC_PVR_VEC_MASK     0xFF
155
 
156
#define _zero_bit(_val_, _bit_) _val_ & ~_bit_
157
#define _one_bit(_val_, _bit_) _val_ | _bit_
158
 
159
#endif // CYGONCE_HAL_PLF_REGS_H

powered by: WebSVN 2.1.0

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