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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [common/] [v2_0/] [cdl/] [interrupts.cdl] - Blame information for rev 665

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

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

powered by: WebSVN 2.1.0

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