summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/kernel/cpu (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'split-asm_system_h-for-linus-20120328' of ↵Linus Torvalds2012-03-291-1/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system Pull "Disintegrate and delete asm/system.h" from David Howells: "Here are a bunch of patches to disintegrate asm/system.h into a set of separate bits to relieve the problem of circular inclusion dependencies. I've built all the working defconfigs from all the arches that I can and made sure that they don't break. The reason for these patches is that I recently encountered a circular dependency problem that came about when I produced some patches to optimise get_order() by rewriting it to use ilog2(). This uses bitops - and on the SH arch asm/bitops.h drags in asm-generic/get_order.h by a circuituous route involving asm/system.h. The main difficulty seems to be asm/system.h. It holds a number of low level bits with no/few dependencies that are commonly used (eg. memory barriers) and a number of bits with more dependencies that aren't used in many places (eg. switch_to()). These patches break asm/system.h up into the following core pieces: (1) asm/barrier.h Move memory barriers here. This already done for MIPS and Alpha. (2) asm/switch_to.h Move switch_to() and related stuff here. (3) asm/exec.h Move arch_align_stack() here. Other process execution related bits could perhaps go here from asm/processor.h. (4) asm/cmpxchg.h Move xchg() and cmpxchg() here as they're full word atomic ops and frequently used by atomic_xchg() and atomic_cmpxchg(). (5) asm/bug.h Move die() and related bits. (6) asm/auxvec.h Move AT_VECTOR_SIZE_ARCH here. Other arch headers are created as needed on a per-arch basis." Fixed up some conflicts from other header file cleanups and moving code around that has happened in the meantime, so David's testing is somewhat weakened by that. We'll find out anything that got broken and fix it.. * tag 'split-asm_system_h-for-linus-20120328' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits) Delete all instances of asm/system.h Remove all #inclusions of asm/system.h Add #includes needed to permit the removal of asm/system.h Move all declarations of free_initmem() to linux/mm.h Disintegrate asm/system.h for OpenRISC Split arch_align_stack() out from asm-generic/system.h Split the switch_to() wrapper out of asm-generic/system.h Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h Create asm-generic/barrier.h Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h Disintegrate asm/system.h for Xtensa Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] Disintegrate asm/system.h for Tile Disintegrate asm/system.h for Sparc Disintegrate asm/system.h for SH Disintegrate asm/system.h for Score Disintegrate asm/system.h for S390 Disintegrate asm/system.h for PowerPC Disintegrate asm/system.h for PA-RISC Disintegrate asm/system.h for MN10300 ...
| * Disintegrate asm/system.h for MicroblazeDavid Howells2012-03-281-1/+0
| | | | | | | | | | | | | | Disintegrate asm/system.h for Microblaze. Not compiled. Signed-off-by: David Howells <dhowells@redhat.com> cc: microblaze-uclinux@itee.uq.edu.au
* | microblaze: Add PVR version string for MB 8.20.b and 8.30.aMichal Simek2012-03-191-0/+2
|/ | | | | | Just extend PVR reg decoding. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add PVR for Microblaze v8.20.aMichal Simek2011-10-141-0/+1
| | | | | | Microblaze v8.20.a has 0x15 version string. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Standardise cpuinfo output for cache policyJohn A. Williams2011-07-251-2/+3
| | | | | | | The current cpuinfo output for the cache policy has no leading tag:, making it difficult to parse. Add a leaning "Dcache-policy:" tag to this field. Signed-off-by: John A. Williams <john.williams@petalogix.com>
* microblaze: Unprivileged stream instruction awarenessJohn A. Williams2011-07-254-0/+10
| | | | | | | | | | | Add cpuinfo support for the new MicroBlaze option permitting userspace (unprivileged) access to the streaming instructions (FSL / AXI-stream). Emit a noisy warning at bootup if this is enabled, because bad user code can potentially lockup the CPU. Signed-off-by: John A. Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* Fix common misspellingsLucas De Marchi2011-03-311-1/+1
| | | | | | Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
* Merge branch 'trivial' of ↵Linus Torvalds2011-03-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (25 commits) video: change to new flag variable scsi: change to new flag variable rtc: change to new flag variable rapidio: change to new flag variable pps: change to new flag variable net: change to new flag variable misc: change to new flag variable message: change to new flag variable memstick: change to new flag variable isdn: change to new flag variable ieee802154: change to new flag variable ide: change to new flag variable hwmon: change to new flag variable dma: change to new flag variable char: change to new flag variable fs: change to new flag variable xtensa: change to new flag variable um: change to new flag variables s390: change to new flag variable mips: change to new flag variable ... Fix up trivial conflict in drivers/hwmon/Makefile
| * microblaze: change to new flag variablematt mooney2011-03-171-1/+1
| | | | | | | | | | | | | | | | Replace EXTRA_CFLAGS with ccflags-y. Signed-off-by: matt mooney <mfm@muteddisk.com> Acked-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: Michal Marek <mmarek@suse.cz>
* | microblaze: Fix sparse warnings - cache.cMichal Simek2011-03-091-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Warning log: CHECK arch/microblaze/kernel/cpu/cache.c arch/microblaze/kernel/cpu/cache.c:522:21: warning: symbol 'wb_msr' was not declared. Should it be static? arch/microblaze/kernel/cpu/cache.c:538:21: warning: symbol 'wb_nomsr' was not declared. Should it be static? arch/microblaze/kernel/cpu/cache.c:554:21: warning: symbol 'wt_msr' was not declared. Should it be static? arch/microblaze/kernel/cpu/cache.c:569:21: warning: symbol 'wt_nomsr' was not declared. Should it be static? arch/microblaze/kernel/cpu/cache.c:585:21: warning: symbol 'wt_msr_noirq' was not declared. Should it be static? arch/microblaze/kernel/cpu/cache.c:600:21: warning: symbol 'wt_nomsr_noirq' was not declared. Should it be static? Signed-off-by: Michal Simek <monstr@monstr.eu>
* | microblaze: Add PVR for Microblaze v8.10.aMichal Simek2011-03-091-0/+1
| | | | | | | | | | | | Microblaze v8.10.a has 0x14 version string. Signed-off-by: Michal Simek <monstr@monstr.eu>
* | microblaze: Label MB 7.20.d as broken with WB cacheMichal Simek2011-03-091-2/+2
|/ | | | | | | MB version 7.20.d contains fault which is related with WB that's why error message will be shown. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix asm compilation warningMichal Simek2011-02-071-2/+2
| | | | | | | | | Microblaze ASM doesn't support hex values for mfs instructions. /tmp/ccwiXVmt.s: Assembler messages: /tmp/ccwiXVmt.s:19: Warning: ignoring operands: x00 Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add PVR for Microblaze v8.00.bMichal Simek2011-01-031-0/+1
| | | | | | Microblaze v8.00.b have 0x13 version string. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add PVR for endians plus detectionMichal Simek2010-10-213-1/+4
| | | | | | | Upcomming microblaze version will support little-endian. Signed-off-by: Michal Simek <monstr@monstr.eu> Acked-by: Grant Likely <grant.likely@secretlab.ca>
* microblaze: Remove hardcoded asm instraction for PVR loadingMichal Simek2010-10-211-1/+1
| | | | | | It comes from past where pvr wasn't supported in msr instruction. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add new microblaze versionsMichal Simek2010-10-211-0/+2
| | | | | | PVR for 7.30.b, 8.00.a versions. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Allow PAGE_SIZE configurationSteven J. Magnani2010-08-041-0/+1
| | | | | | | | | | Allow developer to configure memory page size at compile time. Larger pages can improve performance on some workloads. Based on PowerPC code. Signed-off-by: Steven J. Magnani <steve@digidescorp.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Remove compilation warnings in cache macroMichal Simek2010-05-131-1/+2
| | | | | | | | | | CC arch/microblaze/kernel/cpu/cache.o arch/microblaze/kernel/cpu/cache.c: In function '__invalidate_dcache_range_wb': arch/microblaze/kernel/cpu/cache.c:398: warning: ISO C90 forbids mixed declarations and code arch/microblaze/kernel/cpu/cache.c: In function '__flush_dcache_range_wb': arch/microblaze/kernel/cpu/cache.c:509: warning: ISO C90 forbids mixed declara Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Optimize CACHE_LOOP_LIMITS and CACHE_RANGE_LOOP macrosMichal Simek2010-05-061-27/+35
| | | | | | | | | | | | | | | | | | | | | | | 1. Remove CACHE_ALL_LOOP2 macro because it is identical to CACHE_ALL_LOOP 2. Change BUG_ON to WARN_ON 3. Remove end aligned from CACHE_LOOP_LIMITS. C implementation do not need aligned end address and ASM code do aligned in their macros 4. ASM optimized CACHE_RANGE_LOOP_1/2 macros needs to get aligned end address. Because end address is compound from start + size, end address is the first address which is exclude. Here is the corresponding code which describe it. + int align = ~(line_length - 1); + end = ((end & align) == end) ? end - line_length : end & align; a) end is aligned: it is necessary to subtruct line length because we don't want to work with next cacheline b) end address is not aligned: Just align it to be ready for ASM code. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: cpuinfo shows cache line lengthMichal Simek2010-05-061-4/+6
| | | | | | Show cache line length in /proc/cpuinfo. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix typo fault in cache codeMichal Simek2010-05-061-5/+5
| | | | | | Copy & paste error. Signed-off-by: Michal Simek <monstr@monstr.eu>
* include cleanup: Update gfp.h and slab.h includes to prepare for breaking ↵Tejun Heo2010-03-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implicit slab.h inclusion from percpu.h percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
* microblaze: Add define for ASM_LOOPMichal Simek2010-03-111-43/+161
| | | | | | It is default option but both options must be measured. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: remove trailing space in messagesFrans Pop2010-03-111-1/+1
| | | | | | | Signed-off-by: Frans Pop <elendil@planet.nl> Cc: microblaze-uclinux@itee.uq.edu.au Cc: Michal Simek <monstr@monstr.eu> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Move cache function to cache.cMichal Simek2010-03-111-0/+5
| | | | | | It is better to have init cache handling on one place. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix cache loop function for cache rangeMichal Simek2010-02-241-19/+8
| | | | | | | | | | I create wrong asm code but none test shows that this part of code is wrong. I am not convinces that were good idea to create asm optimized macros for caches. The reason is that there is not optimization with previous code that's why make sense to add old code and do some benchmarking which functions are faster. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Support for WB cacheMichal Simek2009-12-141-186/+477
| | | | | | | | | | | Microblaze version 7.20.d is the first MB version which can be run on MMU linux. Please do not used previous version because they contain HW bug. Based on WB support was necessary to redesign whole cache design. Microblaze versions from 7.20.a don't need to disable IRQ and cache before working with them that's why there are special structures for it. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add PVR for Microblaze v7.30.aMichal Simek2009-12-141-0/+1
| | | | | | Microblaze v7.30.a will have 0x10 version string. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Remove ancient and fake microblaze version from cpu_ver tableMichal Simek2009-12-141-5/+0
| | | | | | | | | | We need to continue with next microblaze PVR version that's why I have to remove that ancient version. These version strings not match any versions. From Microblaze v5.00.a is possible to use this style. I believe that none use ancients versions. If yes they will be just labeled as unknown version. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Checking DTS against PVR for write-back cacheMichal Simek2009-12-141-0/+11
| | | | | | | WB cache has special flag in PVR. There is added checking mechanism for PVR and DTS. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Extend cpuinfo for support write-back cachesMichal Simek2009-12-142-2/+7
| | | | | | | There is missing checking agains PVR but this is not important for now. There are some missing checking too. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix cache_line_lenghtMichal Simek2009-12-143-18/+18
| | | | | | | We used cache_line as cache_line_lenght. For this reason we did cache flushing 4 times longer than was necessary. Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Detect new 7.20.d versionMichal Simek2009-12-141-0/+1
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: ftrace: add static function tracerMichal Simek2009-12-141-0/+4
| | | | | | | | | | | | | | | | If -pg of gcc is enabled with CONFIG_FUNCTION_TRACER=y. a calling to _mcount will be inserted into each kernel function. so, there is a possibility to trace the kernel functions in _mcount. This patch add the specific _mcount support for static function tracing. by default, ftrace_trace_function is initialized as ftrace_stub(an empty function), so, the default _mcount will introduce very little overhead. after enabling ftrace in user-space, it will jump to a real tracing function and do static function tracing for us. Commit message from Wu Zhangjin <wuzhangjin@gmail.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Add TRACE_IRQFLAGS_SUPPORTMichal Simek2009-12-141-1/+1
| | | | | | | | | | There are just two major changes Renamed local_irq functions to raw_local_irq in irq.c. Added TRACE_IRQFLAGS_SUPPORT to Kconfig.debug. Look at Documentation/irqflags-tracing.txt Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Updated CPU version and FPGA family codes in PVRJohn Williams2009-09-221-0/+3
| | | | | Signed-off-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Typo fix for cpu param inconsistencyMichal Simek2009-07-272-2/+2
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Detect new Microblaze 7.20 versionsMichal Simek2009-07-271-0/+2
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Storage class should be before const qualifierTobias Klauser2009-05-011-2/+2
| | | | | | | | | | | The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Do not check use_dcacheMichal Simek2009-04-231-3/+0
| | | | | | | It is not necessary to check cpuinfo.use_dcache because this checking is done in function which call that functions Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Do not use PVR configuration for broken MB versionMichal Simek2009-04-232-3/+8
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze: Fix USR1/2 pvr printing messageMichal Simek2009-04-231-2/+2
| | | | Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze_v8: Makefiles for Microblaze cpuMichal Simek2009-03-271-0/+8
| | | | | | | | | Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze_v8: PVR support, cpuinfo supportMichal Simek2009-03-272-0/+229
| | | | | | | | Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze_v8: cache supportMichal Simek2009-03-271-0/+258
| | | | | | | | Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
* microblaze_v8: Cpuinfo handlingMichal Simek2009-03-273-0/+331
Reviewed-by: Ingo Molnar <mingo@elte.hu> Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Acked-by: John Linn <john.linn@xilinx.com> Acked-by: John Williams <john.williams@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>