summaryrefslogtreecommitdiffstats
path: root/sys/arm/arm/exception.S
Commit message (Collapse)AuthorAgeFilesLines
* MFC r276525, r276596:ian2015-02-131-1/+1
| | | | | | | Put in a workaround for bug 196407 (arm modules cause crashes & panics). (Don't allow movw/movt insn in modules.) Fix alignment directives in arm asm code after clang 3.5 import.
* MFC r276206:ian2015-02-121-4/+6
| | | | | | For data and instruction prefetch aborts, call the same handler in the C code, passing a 0/1 flag that indicates which type of abort it was. This sets the stage for unifying the handling of page faults in a single routine.
* MFC r276196, r276197, r276198, r276202, r276203, r276204:ian2015-02-121-20/+20
| | | | | | | | | | | | | Change the style of the DO_AST macro to match the others Remove _PROF_PROLOGUE from the EENTRY() macros. Stylish changes... put tabs where they need to be in macros, move lines around so that related things are more grouped together, rewrite comments. Fix the GLOBAL macro so it works (upper vs lowercase X), use it in _EENTRY. Create 'L' variants of all the ENTRY macros for file-static/local symbols.
* MFC r271394, r271398:ian2015-02-121-4/+4
| | | | | | | Add more register values to armreg.h and remove CPU_CONTROL_32BP_ENABLE from asm.h as they were already defined in armreg.h. Unify interrupts bit definition and usage. While here remove PSR_C_bit.
* MFC r269390: Fix unwind info in hand-written asm (avoid nested functions).ian2014-08-111-2/+2
|
* MFC 262952, 262958, 262966, 262979, 262980, 262986, 262987, 262995, 262997,ian2014-05-171-133/+354
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 263030, 263033, 263034, 263056, 263057, Remove all the redundant external declarations of exception vectors and runtime setting of the pointers that's scattered around various places. Remove all traces of support for ARM chips prior to the arm9 series. Make the default exception handler vectors point to where I thought they were already pointing: the default handlers (not a panic that says there is no default handler). Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.c and the functionality it provided into arm/exception.S. Move the exception vector table (so-called "page0" data) into exception.S and eliminate vectors.S. Change the way the asm GET_CURTHREAD_PTR() macro is defined so that code using it doesn't have to have an "AST_LOCALS" macro somewhere in the file. Arrange for arm fork_trampoline() to return to userland via the standard swi_exit code in exception.S instead of having its own inline expansion of the DO_AST and PULLFRAME macros. Now that the PUSHFRAME and PULLFRAME macros are used only in the swi entry/exit code, they don't need to be macros. Except that didn't work and the whole change was reverted. Remove some unnecessary indirection and jump right to the handler functions. Use panic rather than printf to "handle" an arm26 address exception (should never happen on arm32). Remove the unreferenced DATA() macro. Remove #include <machine/asmacros.h> from files that don't need it.
* MFC 257774, 256760, 262916, 262905, 262918, 262919, 262920, 262921, 262924,ian2014-05-171-35/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 262925, 262929, 262932, 262935, 262940, 262941, 262942, 262948, 262949, 262950 Strip arm/conf/DEFAULTS down to just items that are mandatory for running the architecture. Move all the files named foo/common.c to foo/foo_common.c Initial cut for DTS on the hl201 board. Add commented out dts for sam9260ek as well as early printf support. Make clock optional on uart nodes, then back it out ("I don't know what I was thinking, but it is lame.") Set the baud rate if it isn't 0 Make at91_soc_id() public. Properly round at91 resource on unmapping. Move AT91 AIC related stuff to own file. Fix another bug in multicast filtering. i.MX uses 6 bits from MSB in LE CRC32 for the hash value, not the lowest 6 bits in BE CRC32. Follow r262916 with one more config file that references a renamed common.c Remove bogus AT91 define that causes compile errors. Most of the defines for SAM9X are going away soonish anyway (once FDT works), but until then... Remove all dregs of a per-thread undefined-exception-mode stack. Rework the VFP code that handles demand-based save and restore of state. Always call vfp_discard() on thread death. When a thread begins life it doesn't own the VFP hardware state on any cpu. Make undefined exception entry MP-safe.
* MFC r261137, r261393ian2014-05-151-2/+2
| | | | | | Correct the alignment of sp through functions that use UNWINDSVCFRAME. Update all arm code that manipulates the PSR registers to use modern syntax.
* We no longer need to align the stack before calling swi_handler as it isandrew2013-08-061-3/+0
| | | | already aligned correctly in the PUSHFRAME macro.
* Add UNWINDSVCFRAME to provide the unwind pseudo ops to allow us to unwindandrew2013-06-271-1/+1
| | | | | | | past a trapframe. Use this macro in exception_exit as it is the function the unwinder enters as the functions that store the frame setting lr to point to it.
* Insert STOP_UNWINDING directives in the _start (kernel entry point) andian2013-05-041-4/+9
| | | | | | | | | fork_trampoline (thread entry point) assembler routines, because it's not possible to unwind beyond those points. Also insert STOP_UNWINDING in the exception_exit routine, to prevent an unwind-loop at that point. This is just a stopgap until we get around to instrumenting all assembler functions with proper unwind metadata.
* Add an END macro to ARM. This is mostly used to tell gas where the boundsandrew2013-03-161-3/+8
| | | | of the functions are when creating the EABI unwind tables.
* Tell the unwinder we can't unwind swi_entry. This fixes an infinite loopandrew2013-03-101-0/+4
| | | | | | | when the kernel attempts to unwind through this function. The .fnstart and .fnend in this function should be moved to macros but we are currently missing an END macro on ARM.
* Ensure we align the stack to 8 bytes in system calls.andrew2012-08-041-0/+3
| | | | | | | This is not strictly required with the current ABI but will be when we switch to the ARM EABI. The aapcs requires the stack to be 4 byte aligned at all times and 8 byte aligned when calling a public subroutine where the current ABI only requires sp to be a multiple of 4.
* Final whitespace trim.imp2012-06-131-1/+1
|
* Remove some long-dead codekevlo2008-04-081-5/+0
| | | | Reviewed by: cognet
* Start all license statements with /*-imp2005-01-051-1/+1
|
* Remove useless code.cognet2004-11-201-120/+0
|
* Rename macroes, as we don't need to mess with alignment faults.cognet2004-09-231-10/+5
| | | | Call ast() if TDF_NEEDRESCHED is set too, not just TDF_ASTPENDING.
* Remove filename+line number from panic messages.phk2004-06-061-16/+3
|
* Import FreeBSD/arm kernel bits.cognet2004-05-141-0/+392
It only supports sa1110 (on simics) right now, but xscale support should come soon. Some of the initial work has been provided by : Stephane Potvin <sepotvin at videotron.ca> Most of this comes from NetBSD.
OpenPOWER on IntegriCloud