summaryrefslogtreecommitdiffstats
path: root/arch/metag/lib
Commit message (Collapse)AuthorAgeFilesLines
* metag: Fix typosAndrea Gelmini2016-07-151-2/+2
| | | | | | | | | Fix typos in metag architecture. [james.hogan@imgtec.com: squashed patches and fixed "detailed"] Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net> Signed-off-by: James Hogan <james.hogan@imgtec.com>
* metag: move EXPORT_SYMBOL(csum_partial) to metag_ksyms.cJames Hogan2013-07-041-1/+0
| | | | | | | | | | | | Move EXPORT_SYMBOL(csum_partial) from lib/checksum.c into metag_ksyms.c so that it doesn't get omitted by the static linker if it's not used by any other statically linked code, which can result in undefined symbols when building modules. For example a randconfig caused the following error: ERROR: "csum_partial" [fs/reiserfs/reiserfs.ko] undefined! Signed-off-by: James Hogan <james.hogan@imgtec.com>
* metag: move usercopy.c exports out of metag_ksyms.cJames Hogan2013-03-021-0/+13
| | | | | | | | It's less error prone to have function symbols exported immediately after the function rather than in metag_ksyms.c. Move each EXPORT_SYMBOL in metag_ksyms.c for symbols defined in usercopy.c into usercopy.c Signed-off-by: James Hogan <james.hogan@imgtec.com>
* metag: Build infrastructureJames Hogan2013-03-021-0/+22
| | | | | | Add metag build infrastructure. Signed-off-by: James Hogan <james.hogan@imgtec.com>
* metag: Optimised library functionsJames Hogan2013-03-0217-0/+1357
| | | | | | Add optimised library functions for metag. Signed-off-by: James Hogan <james.hogan@imgtec.com>
* metag: Memory handlingJames Hogan2013-03-021-0/+1341
Meta has instructions for accessing: - bytes - GETB (1 byte) - words - GETW (2 bytes) - doublewords - GETD (4 bytes) - longwords - GETL (8 bytes) All accesses must be aligned. Unaligned accesses can be detected and made to fault on Meta2, however it isn't possible to fix up unaligned writes so we don't bother fixing up reads either. This patch adds metag memory handling code including: - I/O memory (io.h, ioremap.c): Actually any virtual memory can be accessed with these helpers. A part of the non-MMUable address space is used for memory mapped I/O. The ioremap() function is implemented one to one for non-MMUable addresses. - User memory (uaccess.h, usercopy.c): User memory is directly accessible from privileged code. - Kernel memory (maccess.c): probe_kernel_write() needs to be overwridden to use the I/O functions when doing a simple aligned write to non-writecombined memory, otherwise the write may be split by the generic version. Note that due to the fact that a portion of the virtual address space is non-MMUable, and therefore always maps directly to the physical address space, metag specific I/O functions are made available (metag_in32, metag_out32 etc). These cast the address argument to a pointer so that they can be used with raw physical addresses. These accessors are only to be used for accessing fixed core Meta architecture registers in the non-MMU region, and not for any SoC/peripheral registers. Signed-off-by: James Hogan <james.hogan@imgtec.com>
OpenPOWER on IntegriCloud