aboutsummaryrefslogtreecommitdiff
path: root/arch/arc/include/asm
AgeCommit message (Collapse)AuthorFilesLines
2013-02-11ARC: String libraryVineet Gupta1-0/+40
Hand optimised asm code for ARC700 pipeline. Originally written/optimized by Joern Rennecke Signed-off-by: Vineet Gupta <[email protected]> Cc: Joern Rennecke <[email protected]>
2013-02-11ARC: Spinlock/rwlock/mutex primitivesVineet Gupta3-0/+188
Signed-off-by: Vineet Gupta <[email protected]> Acked-by: Arnd Bergmann <[email protected]>
2013-02-11ARC: Fundamental ARCH data-types/definesVineet Gupta12-0/+685
* L1_CACHE_SHIFT * PAGE_SIZE, PAGE_OFFSET * struct pt_regs, struct user_regs_struct * struct thread_struct, cpu_relax(), task_pt_regs(), start_thread(), ... * struct thread_info, THREAD_SIZE, INIT_THREAD_INFO(), TIF_*, ... * BUG() * ELF_* * Elf_* To disallow user-space visibility into some of the core kernel data-types such as struct pt_regs, #ifdef __KERNEL__ which also makes the UAPI header spit (further patch in the series) to NOT export it to asm/uapi/ptrace.h Signed-off-by: Vineet Gupta <[email protected]> Cc: Jonas Bonn <[email protected]> Cc: Al Viro <[email protected]> Acked-by: Arnd Bergmann <[email protected]>
2013-02-11ARC: Checksum/byteorder/swab routinesVineet Gupta3-0/+217
TBD: do_csum still needs to be written in asm Signed-off-by: Vineet Gupta <[email protected]> Acked-by: Arnd Bergmann <[email protected]>
2013-02-11ARC: [optim] uaccess __{get,put}_user() optimisedVineet Gupta1-0/+105
Override asm-generic implementations. We basically gain on 2 fronts * checks for alignment no longer needed as we are only doing "unit" sized copies. (Careful observer could argue that While the kernel buffers are aligned, the user buffer in theory might not be - however in that case the user space is already broken when it tries to deref a hword/word straddling word boundary - so we are not making it any worse). * __copy_{to,from}_user( ) returns bytes that couldn't be copied, whereas get_user() returns 0 for success or -EFAULT (not size). Thus the code to do leftover bytes calculation can be avoided as well. The savings were significant: ~17k of code. bloat-o-meter vmlinux_uaccess_pre vmlinux_uaccess_post add/remove: 0/4 grow/shrink: 8/118 up/down: 1262/-18758 (-17496) ^^^^^^^^^ Signed-off-by: Vineet Gupta <[email protected]> Acked-by: Arnd Bergmann <[email protected]>
2013-02-11ARC: uaccess friendsVineet Gupta2-0/+670
Signed-off-by: Vineet Gupta <[email protected]>
2013-02-11ARC: Atomic/bitops/cmpxchg/barriersVineet Gupta5-0/+967
This covers the UP / SMP (with no hardware assist for atomic r-m-w) as well as ARC700 LLOCK/SCOND insns based. Signed-off-by: Vineet Gupta <[email protected]>
2013-02-11ARC: irqflags - Interrupt enabling/disabling at in-core intcVineet Gupta2-0/+263
ARC700 has an in-core intc which provides 2 priorities (a.k.a.) "levels" of interrupts (per IRQ) hencforth referred to as L1/L2 interrupts. CPU flags register STATUS32 has Interrupt Enable bits per level (E1/E2) to globally enable (or disable) all IRQs at a level. Hence the implementation of arch_local_irq_{save,restore,enable,disable}( ) The STATUS32 reg can be r/w only using the AUX Interface of ARC, hence the use of LR/SR instructions. Further, E1/E2 bits in there can only be updated using the FLAG insn. The intc supports 32 interrupts - and per IRQ enabling is controlled by a bit in the AUX_IENABLE register, hence the implmentation of arch_{,un}mask_irq( ) routines. Signed-off-by: Vineet Gupta <[email protected]> Cc: Thomas Gleixner <[email protected]>
2013-02-11ARC: Build system: Makefiles, Kconfig, Linker scriptVineet Gupta1-0/+1
Arnd in his review pointed out that arch Kconfig organisation has several deficiencies: * Build time entries for things which can be runtime extracted from DT (e.g. SDRAM size, core clk frequency..) * Not multi-platform-image-build friendly (choice .. endchoice constructs) * cpu variants support (750/770) is exclusive. The first 2 have been fixed in subsequent patches. Due to the nature of the 750 and 770, it is not possible to build for both together, w/o special runtime glue code which would hurt performance. Signed-off-by: Vineet Gupta <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Sam Ravnborg <[email protected]> Acked-by: Sam Ravnborg <[email protected]>
2013-01-28ARC: Generic HeadersVineet Gupta2-0/+67
Signed-off-by: Vineet Gupta <[email protected]>