X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=sboot%2Fmagpie_1_1%2Fsboot%2Fathos%2Fsrc%2Fxtos%2Fdebug-vector.S;fp=sboot%2Fmagpie_1_1%2Fsboot%2Fathos%2Fsrc%2Fxtos%2Fdebug-vector.S;h=35fb1be7c021556259e398bfba7e0b4013283471;hb=ff66305a044be28464fa0969ea2d605bb268d478;hp=0000000000000000000000000000000000000000;hpb=60b496560eec004ded92ae4dad43b3d102c6658d;p=open-ath9k-htc-firmware.git diff --git a/sboot/magpie_1_1/sboot/athos/src/xtos/debug-vector.S b/sboot/magpie_1_1/sboot/athos/src/xtos/debug-vector.S new file mode 100755 index 0000000..35fb1be --- /dev/null +++ b/sboot/magpie_1_1/sboot/athos/src/xtos/debug-vector.S @@ -0,0 +1,65 @@ +// debug-vector.S -- Debug Exception Vector +// $Id: //depot/rel/Cottonwood/Xtensa/OS/xtos/debug-vector.S#3 $ + +// Copyright (c) 2003-2004, 2006, 2010 Tensilica Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#include +#include +#ifdef SIMULATOR +#include +#endif + +#if XCHAL_HAVE_DEBUG && XCHAL_HAVE_EXCEPTIONS + + // This code goes at the debug exception vector + + .begin literal_prefix .DebugExceptionVector + .section .DebugExceptionVector.text, "ax" + .align 4 + .global _DebugExceptionVector +_DebugExceptionVector: + +# ifdef SIMULATOR + // In the simulator (ISS), let the debugger (if any is attached) + // handle the debug exception, else simply stop the simulation: + // + wsr a2, EXCSAVE+XCHAL_DEBUGLEVEL // save a2 where simulator expects it + movi a2, SYS_gdb_enter_sktloop + simcall // have ISS handle the debug exception +# else + // For hardware, this code does not handle debug exceptions. + // To implement a target-side debug monitor, replace this + // vector with a real one that uses target-specific facilities + // to communicate with the debugger. + // +1: +#if XCHAL_HAVE_INTERRUPTS + waiti XCHAL_DEBUGLEVEL // unexpected debug exception, loop in low-power mode +#endif + j 1b // infinite loop - unexpected debug exception +# endif /*!SIMULATOR*/ + + .end literal_prefix + .size _DebugExceptionVector, . - _DebugExceptionVector + +#endif /* XCHAL_HAVE_DEBUG && XCHAL_HAVE_EXCEPTIONS */ +