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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [arm/] [ebsa285/] [current/] [include/] [hal_platform_ints.h] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_PLATFORM_INTS_H
2
#define CYGONCE_HAL_PLATFORM_INTS_H
3
//==========================================================================
4
//
5
//      hal_platform_ints.h
6
//
7
//      HAL Interrupt and clock support
8
//
9
//==========================================================================
10
// ####ECOSGPLCOPYRIGHTBEGIN####                                            
11
// -------------------------------------------                              
12
// This file is part of eCos, the Embedded Configurable Operating System.   
13
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
14
//
15
// eCos is free software; you can redistribute it and/or modify it under    
16
// the terms of the GNU General Public License as published by the Free     
17
// Software Foundation; either version 2 or (at your option) any later      
18
// version.                                                                 
19
//
20
// eCos is distributed in the hope that it will be useful, but WITHOUT      
21
// ANY 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        
26
// along with eCos; if not, write to the Free Software Foundation, Inc.,    
27
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.            
28
//
29
// As a special exception, if other files instantiate templates or use      
30
// macros or inline functions from this file, or you compile this file      
31
// and link it with other works to produce a work based on this file,       
32
// this file does not by itself cause the resulting work to be covered by   
33
// the GNU General Public License. However the source code for this file    
34
// must still be made available in accordance with section (3) of the GNU   
35
// General Public License v2.                                               
36
//
37
// This exception does not invalidate any other reasons why a work based    
38
// on this file might be covered by the GNU General Public License.         
39
// -------------------------------------------                              
40
// ####ECOSGPLCOPYRIGHTEND####                                              
41
//==========================================================================
42
//#####DESCRIPTIONBEGIN####
43
//
44
// Author(s):    hmt
45
// Contributors: hmt
46
// Date:         1999-04-21
47
// Purpose:      Define Interrupt support
48
// Description:  The interrupt details for the EBSA285 are defined here.
49
// Usage:
50
//               #include <cyg/hal/hal_platform_ints.h>
51
//               ...
52
//              
53
//
54
//####DESCRIPTIONEND####
55
//
56
//==========================================================================
57
 
58
#define CYGNUM_HAL_INTERRUPT_reserved0                   0
59
#define CYGNUM_HAL_INTERRUPT_SOFT_IRQ                    1
60
#define CYGNUM_HAL_INTERRUPT_SERIAL_RX                   2
61
#define CYGNUM_HAL_INTERRUPT_SERIAL_TX                   3
62
#define CYGNUM_HAL_INTERRUPT_TIMER_1                     4
63
#define CYGNUM_HAL_INTERRUPT_TIMER_2                     5
64
#define CYGNUM_HAL_INTERRUPT_TIMER_3                     6    
65
#define CYGNUM_HAL_INTERRUPT_TIMER_4                     7
66
#define CYGNUM_HAL_INTERRUPT_IRQ_IN_0                    8
67
#define CYGNUM_HAL_INTERRUPT_IRQ_IN_1                    9
68
#define CYGNUM_HAL_INTERRUPT_IRQ_IN_2                    10
69
#define CYGNUM_HAL_INTERRUPT_IRQ_IN_3                    11
70
#define CYGNUM_HAL_INTERRUPT_XBUS_CS_0                   12
71
#define CYGNUM_HAL_INTERRUPT_XBUS_CS_1                   13
72
#define CYGNUM_HAL_INTERRUPT_XBUS_CS_2                   14
73
#define CYGNUM_HAL_INTERRUPT_DOORBELL                    15
74
#define CYGNUM_HAL_INTERRUPT_DMA_1                       16
75
#define CYGNUM_HAL_INTERRUPT_DMA_2                       17
76
#define CYGNUM_HAL_INTERRUPT_PCI_IRQ                     18
77
#define CYGNUM_HAL_INTERRUPT_PMCSR                       19
78
#define CYGNUM_HAL_INTERRUPT_reserved20                  20
79
#define CYGNUM_HAL_INTERRUPT_reserved21                  21
80
#define CYGNUM_HAL_INTERRUPT_BIST                        22
81
#define CYGNUM_HAL_INTERRUPT_SERR                        23
82
#define CYGNUM_HAL_INTERRUPT_SDRAM_PARITY                24
83
#define CYGNUM_HAL_INTERRUPT_I2O_POST                    25
84
#define CYGNUM_HAL_INTERRUPT_reserved26                  26
85
#define CYGNUM_HAL_INTERRUPT_DISCARD_TIMER               27
86
#define CYGNUM_HAL_INTERRUPT_PCI_DATA_PARITY             28
87
#define CYGNUM_HAL_INTERRUPT_PCI_MASTER_ABORT            29
88
#define CYGNUM_HAL_INTERRUPT_PCI_TARGET_ABORT            30
89
#define CYGNUM_HAL_INTERRUPT_PCI_PARITY_ERROR            31
90
 
91
#define CYGNUM_HAL_ISR_MIN               0
92
#define CYGNUM_HAL_ISR_MAX              31
93
 
94
#define CYGNUM_HAL_ISR_COUNT            (CYGNUM_HAL_ISR_MAX+1)
95
 
96
// The vector used by the Real time clock
97
#define CYGNUM_HAL_INTERRUPT_RTC        CYGNUM_HAL_INTERRUPT_TIMER_3
98
 
99
 
100
//----------------------------------------------------------------------------
101
// Reset.
102
#include <cyg/hal/hal_ebsa285.h>        // registers
103
#include <cyg/hal/hal_io.h>             // IO macros
104
 
105
#define HAL_PLATFORM_RESET()                                               \
106
    CYG_MACRO_START                                                        \
107
    cyg_uint32 ctrl;                                                       \
108
                                                                           \
109
    /* If watchdog is already enabled, writing to timer4 has no effect. */ \
110
    /* But by disabling interupts and just hanging in the loop below    */ \
111
    /* the timer might run out eventually (not guaranteed).             */ \
112
    HAL_DISABLE_INTERRUPTS(ctrl);                                          \
113
                                                                           \
114
    /* Set timer4 (must be done before enabling watchdog) */               \
115
    HAL_WRITE_UINT32(SA110_TIMER4_LOAD, 2);                                \
116
    HAL_WRITE_UINT32(SA110_TIMER4_CONTROL, SA110_TIMER_CONTROL_ENABLE);    \
117
                                                                           \
118
    /* Enable watchdog */                                                  \
119
    HAL_READ_UINT32(SA110_CONTROL, ctrl);                                  \
120
    ctrl |= SA110_CONTROL_WATCHDOG;                                        \
121
    HAL_WRITE_UINT32(SA110_CONTROL, ctrl);                                 \
122
                                                                           \
123
    for(;;); /* wait for it */                                             \
124
    CYG_MACRO_END
125
 
126
#define HAL_PLATFORM_RESET_ENTRY 0x41000000
127
 
128
#endif // CYGONCE_HAL_PLATFORM_INTS_H

powered by: WebSVN 2.1.0

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