linux/arch/arm/kernel
Dietmar Eggemann 57ba899731 ARM: hw_breakpoint: Check function for OS Save and Restore mechanism
v7 debug introduced OS Save and Restore mechanism. On a v7 debug SinglePower
system, i.e a system without a separate core and debug power domain, which does
not support external debug over powerdown, it is implementation defined whether
OS Save and Restore is implemented.
v7.1 debug requires OS Save and Restore mechanism. v6 debug and v6.1 debug do
not implement it.

A new global variable bool has_ossr is introduced and is determined in
arch_hw_breakpoint_init() like debug_arch or the number of BRPs/WRPs.

The logic how to check if OS Save and Restore is supported has changed with
this patch. In reset_ctrl_regs() a mask consisting of OSLM[1] (OSLSR.3) and
OSLM[0] (OSLSR.0) was used to check if the system supports OS Save and
Restore. In the new function core_has_os_save_restore() only OSLM[0] is used.
It is not necessary to check OSLM[1] too since it is v7.1 debug specific and
v7.1 debug requires OS Save and Restore and thus OS Lock.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2013-01-10 21:13:06 +00:00
..
.gitignore
arch_timer.c ARM: 7538/1: delay: add registration mechanism for delay timer sources 2012-09-26 22:57:52 +01:00
armksyms.c Merge branches 'audit', 'delay', 'fixes', 'misc' and 'sta2x11' into for-linus 2012-07-27 23:06:32 +01:00
arthur.c
asm-offsets.c ARM: Don't unconditionally bloat thread_info 2012-08-29 11:18:17 +01:00
atags_compat.c ARM: 7505/1: split out ATAGS parsing 2012-09-03 22:55:56 +01:00
atags_parse.c ARM: 7505/1: split out ATAGS parsing 2012-09-03 22:55:56 +01:00
atags_proc.c ARM: 7505/1: split out ATAGS parsing 2012-09-03 22:55:56 +01:00
atags.h ARM: 7506/1: allow for ATAGS to be configured out when DT support is selected 2012-09-03 22:56:15 +01:00
bios32.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
calls.S Nothing all that exciting; a new module-from-fd syscall for those who want 2012-12-19 07:55:08 -08:00
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
debug.S ARM: implement debug_ll_io_init() 2012-11-05 09:35:59 -08:00
devtree.c ARM: 7585/1: kernel: fix nr_cpu_ids check in DT logical map init 2012-11-23 13:01:31 +00:00
dma-isa.c ARM: dma-isa: request cascade channel after registering it 2009-12-24 18:34:08 +00:00
dma.c locking, ARM: Annotate low level hw locks as raw 2011-09-13 11:12:14 +02:00
early_printk.c ARM: Add an earlyprintk debug console 2009-12-09 10:02:18 +00:00
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: Fix undefined instruction exception handling 2012-07-31 12:04:30 +01:00
entry-common.S Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-12 12:22:13 -08:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
fiq.c ARM: fiq: change FIQ_START to a variable 2012-07-01 21:59:19 +08:00
fiqasm.S ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
ftrace.c ARM: 7468/1: ftrace: Trace function entry before updating index 2012-07-31 10:30:42 +01:00
head-common.S arm/dt: Make __vet_atags also accept a dtb image 2011-05-11 15:12:32 +02:00
head-nommu.S ARM: 7591/1: nommu: Enable the strict alignment (CR_A) bit only if ARCH < v6 2012-12-07 11:48:57 +00:00
head.S Merge branch 'fixes' into for-linus 2012-10-11 10:55:04 +01:00
hw_breakpoint.c ARM: hw_breakpoint: Check function for OS Save and Restore mechanism 2013-01-10 21:13:06 +00:00
hyp-stub.S ARM: virt: arch_timers: enable access to physical timers 2012-09-19 08:32:54 +01:00
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
io.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
irq.c ARM: export set_irq_flags 2012-10-09 20:24:24 +02:00
isa.c
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c kgdb,arm: fix register dump 2010-10-29 13:14:40 -05:00
kprobes-arm.c ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below 2011-11-30 23:54:54 +00:00
kprobes-common.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
kprobes-test-arm.c ARM: kprobes: make more tests conditional 2012-10-09 17:07:43 +02:00
kprobes-test-thumb.c ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-test.c treewide: fix printk typo in multiple drivers 2012-11-19 11:08:17 +01:00
kprobes-test.h ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels 2011-11-26 21:58:53 +00:00
kprobes-thumb.c ARM: 7423/1: kprobes: run t32_simulate_ldr_literal() without insn slot 2012-06-14 15:11:44 +01:00
kprobes.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-04-02 08:53:24 -07:00
kprobes.h ARM: kprobes: Add exports for test code 2011-09-20 18:17:43 +00:00
machine_kexec.c ARM: 7555/1: kexec: fix segment memory addresses check 2012-10-18 11:05:19 +01:00
Makefile Merge branch 'fixes' into for-linus 2012-10-11 10:55:04 +01:00
module.c ARM: 7059/1: LPAE: Use PMD_(SHIFT|SIZE|MASK) instead of PGDIR_* 2011-08-23 15:30:33 +01:00
opcodes.c ARM: 7206/1: Add generic ARM instruction set condition code checks. 2011-12-13 08:52:02 +00:00
patch.c ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
patch.h ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
perf_event_cpu.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
perf_event_v6.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
perf_event_v7.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
perf_event_xscale.c ARM: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
perf_event.c ARM: PMU: fix runtime PM enable 2012-11-09 11:37:26 +00:00
pj4-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00
process.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-12 12:22:13 -08:00
ptrace.c ARM: 7595/1: syscall: rework ordering in syscall_trace_exit 2012-12-11 00:18:26 +00:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
sched_clock.c ARM: 7565/1: sched: stop sched_clock() during suspend 2012-10-29 10:02:49 +00:00
setup.c ARM: 7602/1: Pass real "__machine_arch_type" variable to setup_machine_tags() procedure 2012-12-16 10:04:24 +00:00
signal.c Uninclude linux/freezer.h 2012-10-01 09:58:18 -04:00
signal.h ARM: 7471/1: Revert "7442/1: Revert "remove unused restart trampoline"" 2012-07-28 11:11:51 +01:00
sleep.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
smp_scu.c ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode 2012-04-28 17:31:37 +01:00
smp_tlb.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smp_twd.c ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
smp.c Merge branch 'devel-stable' into for-linus 2012-12-11 10:01:53 +00:00
stacktrace.c arm: convert core files from module.h to export.h 2011-10-31 19:30:49 -04:00
suspend.c ARM: kernel: update cpu_suspend code to use cache LoUIS operations 2012-09-25 11:20:26 +01:00
swp_emulate.c ARM: missing ->mmap_sem around find_vma() in swp_emulate.c 2012-12-20 10:40:24 +00:00
sys_arm.c arm: switch to generic fork/vfork/clone 2012-11-28 22:13:54 -05:00
sys_oabi-compat.c userns: Convert stat to return values mapped from kuids and kgids 2012-05-15 14:08:35 -07:00
tcm.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
tcm.h
thumbee.c ARM: 7385/1: ThumbEE: Use cpuid macros to read ID_PFR0 for ThumbEE 2012-04-25 19:49:26 +01:00
time.c ARM: use new LEDS CPU trigger stub to replace old one 2012-08-01 11:22:14 +08:00
topology.c ARM: kernel: update topology to use new MPIDR macros 2012-11-19 15:44:33 +00:00
traps.c ARM: 7526/1: traps: send SIGILL if get_user fails on undef handling path 2012-09-07 20:40:44 +01:00
unwind.c ARM: unwinder: fix bisection to find origin in .idx section 2011-12-15 14:02:19 -08:00
vmlinux.lds.S ARM: 7605/1: vmlinux.lds: Move .notes section next to the rodata 2012-12-16 10:04:24 +00:00
xscale-cp0.c arm: remove several unnecessary module.h include instances 2011-10-31 19:30:48 -04:00