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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [common/] [current/] [cdl/] [interrupts.cdl] - Blame information for rev 856

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

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      interrupts.cdl
4
#
5
#      HAL interrupt configuration data
6
#
7
# ====================================================================
8
## ####ECOSGPLCOPYRIGHTBEGIN####
9
## -------------------------------------------
10
## This file is part of eCos, the Embedded Configurable Operating System.
11
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
12
##
13
## eCos is free software; you can redistribute it and/or modify it under
14
## the terms of the GNU General Public License as published by the Free
15
## Software Foundation; either version 2 or (at your option) any later
16
## version.
17
##
18
## eCos is distributed in the hope that it will be useful, but WITHOUT
19
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
21
## for more details.
22
##
23
## You should have received a copy of the GNU General Public License
24
## along with eCos; if not, write to the Free Software Foundation, Inc.,
25
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
26
##
27
## As a special exception, if other files instantiate templates or use
28
## macros or inline functions from this file, or you compile this file
29
## and link it with other works to produce a work based on this file,
30
## this file does not by itself cause the resulting work to be covered by
31
## the GNU General Public License. However the source code for this file
32
## must still be made available in accordance with section (3) of the GNU
33
## General Public License v2.
34
##
35
## This exception does not invalidate any other reasons why a work based
36
## on this file might be covered by the GNU General Public License.
37
## -------------------------------------------
38
## ####ECOSGPLCOPYRIGHTEND####
39
# ====================================================================
40
######DESCRIPTIONBEGIN####
41
#
42
# Author(s):      jskov
43
# Original data:  nickg,jskov,jlarmour
44
# Contributors:
45
# Date:           1999-07-02
46
#
47
#####DESCRIPTIONEND####
48
#
49
# ====================================================================
50
 
51
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
52
    display       "Use separate stack for interrupts"
53
    default_value 1
54
    description   "
55
        When an interrupt occurs this interrupt can be handled either
56
        on the current stack or on a separate stack maintained by the
57
        HAL. Using a separate stack requires a small number of extra
58
        instructions in the interrupt handling code, but it has the
59
        advantage that it is no longer necessary to allow extra space
60
        in every thread stack for the interrupt handlers. The amount
61
        of extra space required depends on the interrupt handlers
62
        that are being used."
63
}
64
 
65
# NOTE: various parts of the system such as device drivers should
66
# impose lower bounds on this. The actual lower bound depends on a
67
# platform-specific value for startup overheads, and the minimum
68
# sizes specified by the various device drivers. If interrupts are
69
# not handled on a separate stack then only the startup overheads
70
# are significant. If nested interrupts are disabled then the
71
# lower bound is the maximum of the individual sizes, otherwise
72
# it is the sum of these sizes. It is not currently possible to
73
# express a relationship like this.
74
cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
75
    display       "Interrupt stack size"
76
    flavor        data
77
    default_value { CYGPKG_KERNEL ? 4096 : 32768 }
78
    legal_values  128 to 1048576
79
    description   "
80
        This configuration option specifies the stack size in bytes
81
        for the interrupt stack. Typically this should be a multiple
82
        of 16, but the exact requirements will vary from architecture
83
        to architecture. The interrupt stack serves two separate
84
        purposes. It is used as the stack during system
85
        initialization. In addition, if the interrupt system is
86
        configured to use a separate stack then all interrupts will
87
        be processed on this stack. The exact memory requirements
88
        will vary from application to application, and will depend
89
        heavily on whether or not other interrupt-related options,
90
        for example nested interrupts, are enabled. On most targets,
91
        in a configuration with no kernel this stack will also be
92
        the stack used to invoke the application, and must obviously
93
        be appropriately large in that case."
94
}
95
 
96
cdl_option CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING {
97
    display       "Allow nested interrupts"
98
    default_value 0
99
    description   "
100
        When an interrupt occurs the HAL interrupt handling code can
101
        either leave interrupts disabled for the duration of the
102
        interrupt handling code, or by doing some extra work it can
103
        reenable interrupts before invoking the interrupt handler and
104
        thus allow nested interrupts to happen. If all the interrupt
105
        handlers being used are small and do not involve any loops
106
        then it is usually better to disallow nested interrupts.
107
        However if any of the interrupt handlers are more complicated
108
        than nested interrupts will usually be required."
109
}
110
 
111
cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
112
    display       "Save minimum context on interrupt"
113
    default_value 1
114
    description   "
115
        The HAL interrupt handling code can exploit the calling conventions
116
        defined for a given architecture to reduce the amount of state
117
        that has to be saved. Generally this improves performance and
118
        reduces code size. However it can make source-level debugging
119
        more difficult."
120
}
121
 
122
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN {
123
    display       "Chain all interrupts together"
124
    default_value 0
125
    description   "
126
        Interrupts can be attached to vectors either singly, or be
127
        chained together. The latter is necessary if there is no way
128
        of discovering which device has interrupted without
129
        inspecting the device itself. It can also reduce the amount
130
        of RAM needed for interrupt decoding tables and code."
131
}
132
 
133
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS {
134
    display       "Ignore spurious \[fleeting\] interrupts"
135
    default_value 0
136
    description   "
137
        On some hardware, interrupt sources may not be de-bounced or
138
        de-glitched.  Rather than try to handle these interrupts (no
139
        handling may be possible), this option allows the HAL to simply
140
        ignore them.  In most cases, if the interrupt is real it will
141
        reoccur in a detectable form."
142
}

powered by: WebSVN 2.1.0

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