This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001160] FIQ can trash stack when interrupting IRQ


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001160

--- Comment #3 from Morten Lave <ml@tctechnologies.tc> 2011-02-23 15:07:10 GMT ---
Absolutely valid comments. I do not believe it makes sense to make the fix a
CDL option as it would not make sense to use FIQ without the fix. It is a
disaster waiting to happen. It does make sense to make the whole FIQ a CDL
option though.
I see two objectives (apart form not using FIQ at all):
1) The FIQ happens to be hardwired to some function in an ARM chip and it is
not possible to avoid using it. In that case you would want the FIQ code with
the proposed fix.

2) You need the FIQ to do something really high priority, low latency. In that
case the user might want to disable eCos FIQ handling all together, modify the
HAL interrupt functions to not touch the F bit and likewise modify Vectors.s to
not touch the F bit.


option 2) has been discussed on the forums and we have at some point done
something like this ad-hoc for audio processing but have not made it generic
enough to be part of a release. We would love to do that with some help.

It could be nice with a CDL option selecting:
- No eCos FIQ handling.
- Standard eCos FIQ handling (FIQ morphs into IRQ)
- FIQ independent of eCos (no kernel calls allowed)

Maybe the simple first step is to make an option to include the FIQ->isr/dsr or
not. If not included it will just be a VSR (as suggested by Jonathan Larmour).
For super low latency requirements one can still manually modify vectors.s and
the HAL interrupt functions to prevent the F bit from being set.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]