| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Allow to override default kernel virtual address assignment on ARM.
Do not save/restore the TLS pointer on context switch for armv6.
|
|
|
|
|
|
|
|
|
|
| |
Rename pmap_kenter_temp to pmap_kenter_temporary to be consistent with the
other architectures with this function.
Eliminate unnecessary references to pte.h internals by using the standard
pmap_kenter_temporary() to map pages while dumping.
Cleanup up ARM *frame structures.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't call device_set_ivars() for the mmchs
Change the way pcpu and curthread are stored per-core
Invalidate cachelines for bounce pages on PREREAD too, there may still be
stale entries from a previous transfer.
Only use the CPU ID register if SMP is defined. Some non-MPCore armv6 cpu,
such as the one found in the RPi, don't have it, and just hang when we try
to access it.
|
|
|
|
|
|
|
|
|
|
|
| |
Apply access flags for managed and unmanaged pages properly on ARMv6/v7
Set the PGA_WRITEABLE flag when the protections indicate write access, not
just when the current access is a write.
Enable missing Access Flag for secondary cores on ARMv6/v7
Add identification and necessary type checks for Krait CPU cores.
|
|
|
|
| |
for example when dumping threads in the kernel debugger.
|
|
|
|
|
|
|
| |
simplifies enabling as previously both options were required to be enabled,
now we only need a single option.
While here enable VFP on the PandaBoard.
|
|
|
|
| |
arm_fpe_core_changecontext is not a function.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
of the functions are when creating the EABI unwind tables.
|
|
|
|
| |
by AAPCS.
|
|
|
|
| |
arches.
|
|
|
|
|
|
|
|
|
| |
Cummulative patch of changes that are not vendor-specific:
- ARMv6 and ARMv7 architecture support
- ARM SMP support
- VFP/Neon support
- ARM Generic Interrupt Controller driver
- Simplification of startup code for all platforms
|
| |
|
|
|
|
| |
Spotted out by: Mark Tinguely <tinguely at casselton d0t net>
|
|
|
|
|
|
| |
values in ARM_RAS_START and ARM_RAS_END at context switch time.
MFC after: 1 week
|
|
|
|
|
|
|
| |
With VIPT L2 cache such syncing not only is redundant, but also a performance
penalty.
Pointed out by: cognet
|
|
|
|
|
|
|
| |
Note the cpu_l2cache_wbinv_* routines are no-ops on systems not populated with
L2 caches.
Obtained from: Marvell, Semihalf
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
De-hardcode usage of ARM_TP_ADDRESS and RAS local storage, and move this
special purpose page to a more convenient place i.e. after the vectors high
page, more towards the end of address space. Previous location (0xe000_0000)
caused grief if KVA was to go beyond the default limit.
Note that ARM world rebuilding is required after this change since the
location of ARM_TP_ADDRESS is shared between kernel and userland.
Submitted by: Grzegorz Bernacki (gjb AT semihalf dot com)
Reviewed by: imp
Approved by: cognet (mentor)
|
|
|
|
|
|
| |
_ARM_ARCH_5E instead.
MFC After: 3 days
|
|
|
|
|
|
| |
required for ULE.
Approved by: re (blanket)
|
| |
|
| |
|
|
|
|
|
| |
to savectx isn't always, so always use stmia, savectx isn't called enough
to need that kind of optimization.
|
|
|
|
| |
Obtained from: NetBSD
|
|
|
|
|
|
| |
to change the DACR when switching to a kernel thread, thus making
userland thread => kernel thread => same userland thread switch cheaper by
totally avoiding data cache and TLB invalidation.
|
| |
|
|
|
|
| |
In cpu_switch(), set the DACR even if we're switching to a kernel thread.
|
|
|
|
|
|
|
|
|
|
|
| |
ARM_TP_ADDRESS, where the tp will be stored. On CPUs that support it, a cache
line will be allocated and locked for this address, so that it will never go
to RAM. On CPUs that does not, a page is allocated for it (it will be a bit
slower, and is wrong for SMP, but should be fine for UP).
The tp is still stored in the mdthread struct, and at each context switch,
ARM_TP_ADDRESS gets updated.
Suggested by: davidxu
|
| |
|
|
|
|
| |
This is a good candidate for the golden pointy hat awards.
|
| |
|
|
|
|
| |
a kernel thread.
|
| |
|
| |
|
| |
|
|
|
|
| |
Update comments to reflect reality.
|
| |
|
|
|
|
| |
Obtained from: NetBSD
|
|
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.
|