<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/mm/cache.S, branch linux-4.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-08-22T09:00:48Z</updated>
<entry>
<title>arm64: mm: convert __dma_* routines to use start, size</title>
<updated>2016-08-22T09:00:48Z</updated>
<author>
<name>Kwangwoo Lee</name>
</author>
<published>2016-08-02T00:50:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d34fdb7081394cbf93fa6571d990086356f4ea9d'/>
<id>urn:sha1:d34fdb7081394cbf93fa6571d990086356f4ea9d</id>
<content type='text'>
__dma_* routines have been converted to use start and size instread of
start and end addresses. The patch was origianlly for adding
__clean_dcache_area_poc() which will be used in pmem driver to clean
dcache to the PoC(Point of Coherency) in arch_wb_cache_pmem().

The functionality of __clean_dcache_area_poc()  was equivalent to
__dma_clean_range(). The difference was __dma_clean_range() uses the end
address, but __clean_dcache_area_poc() uses the size to clean.

Thus, __clean_dcache_area_poc() has been revised with a fallthrough
function of __dma_clean_range() after the change that __dma_* routines
use start and size instead of using start and end.

As a consequence of using start and size, the name of __dma_* routines
has also been altered following the terminology below:
    area: takes a start and size
    range: takes a start and end

Reviewed-by: Robin Murphy &lt;robin.murphy@arm.com&gt;
Signed-off-by: Kwangwoo Lee &lt;kwangwoo.lee@sk.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: fix "dc cvau" cache operation on errata-affected core</title>
<updated>2016-07-01T10:26:20Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2016-06-28T17:07:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=290622efc76ece22ef76a30bf117755891ab27f6'/>
<id>urn:sha1:290622efc76ece22ef76a30bf117755891ab27f6</id>
<content type='text'>
The ARM errata 819472, 826319, 827319 and 824069 for affected
Cortex-A53 cores demand to promote "dc cvau" instructions to
"dc civac" as well.
Attribute the usage of the instruction in __flush_cache_user_range
to also be covered by our alternative patching efforts.
For that we introduce an assembly macro which both deals with
alternatives while still tagging the instructions as USER.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: Fold proc-macros.S into assembler.h</title>
<updated>2016-04-28T11:05:45Z</updated>
<author>
<name>Geoff Levand</name>
</author>
<published>2016-04-27T16:47:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b7293ae3dbd0a1965bf310b77fed5f9bb37bb93'/>
<id>urn:sha1:7b7293ae3dbd0a1965bf310b77fed5f9bb37bb93</id>
<content type='text'>
To allow the assembler macros defined in arch/arm64/mm/proc-macros.S to
be used outside the mm code move the contents of proc-macros.S to
asm/assembler.h.  Also, delete proc-macros.S, and fix up all references
to proc-macros.S.

Signed-off-by: Geoff Levand &lt;geoff@infradead.org&gt;
Acked-by: Pavel Machek &lt;pavel@ucw.cz&gt;
[rebased, included dcache_by_line_op]
Signed-off-by: James Morse &lt;james.morse@arm.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: Use PoU cache instr for I/D coherency</title>
<updated>2015-12-17T11:07:13Z</updated>
<author>
<name>Ashok Kumar</name>
</author>
<published>2015-12-17T09:38:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0a28714c53fd4f7aea709be7577dfbe0095c8c3e'/>
<id>urn:sha1:0a28714c53fd4f7aea709be7577dfbe0095c8c3e</id>
<content type='text'>
In systems with three levels of cache(PoU at L1 and PoC at L3),
PoC cache flush instructions flushes L2 and L3 caches which could affect
performance.
For cache flushes for I and D coherency, PoU should suffice.
So changing all I and D coherency related cache flushes to PoU.

Introduced a new __clean_dcache_area_pou API for dcache flush till PoU
and provided a common macro for __flush_dcache_area and
__clean_dcache_area_pou.

Also, now in __sync_icache_dcache, icache invalidation for non-aliasing
VIPT icache is done only for that particular page instead of the earlier
__flush_icache_all.

Reviewed-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Ashok Kumar &lt;ashoks@broadcom.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: use ENDPIPROC() to annotate position independent assembler routines</title>
<updated>2015-10-12T15:19:45Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2015-10-08T19:02:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=207918461eb0aca720fddec5da79bc71c133b9f1'/>
<id>urn:sha1:207918461eb0aca720fddec5da79bc71c133b9f1</id>
<content type='text'>
For more control over which functions are called with the MMU off or
with the UEFI 1:1 mapping active, annotate some assembler routines as
position independent. This is done by introducing ENDPIPROC(), which
replaces the ENDPROC() declaration of those routines.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: mm: Adopt new alternative assembler macros</title>
<updated>2015-07-27T10:08:40Z</updated>
<author>
<name>Daniel Thompson</name>
</author>
<published>2015-07-22T11:21:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=271d35eb77d0f53177b44968417b630d1fee8b99'/>
<id>urn:sha1:271d35eb77d0f53177b44968417b630d1fee8b99</id>
<content type='text'>
Convert the dynamic patching for ARM64_WORKAROUND_CLEAN_CACHE over to
the newly added alternative assembler macros.

Signed-off-by: Daniel Thompson &lt;daniel.thompson@linaro.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: alternative: Merge alternative-asm.h into alternative.h</title>
<updated>2015-06-05T09:38:53Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2015-06-01T09:47:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8d883b23aed73cad844ba48051c7e96eddf0f51c'/>
<id>urn:sha1:8d883b23aed73cad844ba48051c7e96eddf0f51c</id>
<content type='text'>
asm/alternative-asm.h and asm/alternative.h are extremely similar,
and really deserve to live in the same file (as this makes further
modufications a bit easier).

Fold the content of alternative-asm.h into alternative.h, and
update the few users.

Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: kill flush_cache_all()</title>
<updated>2015-05-19T14:27:42Z</updated>
<author>
<name>Mark Rutland</name>
</author>
<published>2015-04-20T09:24:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68234df4ea7939f98431aa81113fbdce10c4a84b'/>
<id>urn:sha1:68234df4ea7939f98431aa81113fbdce10c4a84b</id>
<content type='text'>
The documented semantics of flush_cache_all are not possible to provide
for arm64 (short of flushing the entire physical address space by VA),
and there are currently no users; KVM uses VA maintenance exclusively,
cpu_reset is never called, and the only two users outside of arch code
cannot be built for arm64.

While cpu_soft_reset and related functions (which call flush_cache_all)
were thought to be useful for kexec, their current implementations only
serve to mask bugs. For correctness kexec will need to perform
maintenance by VA anyway to account for system caches, line migration,
and other subtleties of the cache architecture. As the extent of this
cache maintenance will be kexec-specific, it should probably live in the
kexec code.

This patch removes flush_cache_all, and related unused components,
preventing further abuse.

Signed-off-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Cc: AKASHI Takahiro &lt;takahiro.akashi@linaro.org&gt;
Cc: Geoff Levand &lt;geoff@infradead.org&gt;
Acked-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Acked-by: Lorenzo Pieralisi &lt;lorenzo.pieralisi@arm.com&gt;
Acked-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: compat: align cacheflush syscall with arch/arm</title>
<updated>2014-12-01T13:31:12Z</updated>
<author>
<name>Vladimir Murzin</name>
</author>
<published>2014-12-01T10:53:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2d25a5391ca219f196f9fee7b535c40d201c6bf'/>
<id>urn:sha1:a2d25a5391ca219f196f9fee7b535c40d201c6bf</id>
<content type='text'>
Update handling of cacheflush syscall with changes made in arch/arm
counterpart:
 - return error to userspace when flushing syscall fails
 - split user cache-flushing into interruptible chunks
 - don't bother rounding to nearest vma

Signed-off-by: Vladimir Murzin &lt;vladimir.murzin@arm.com&gt;
[will: changed internal return value from -EINTR to 0 to match arch/arm/]
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: add Cortex-A53 cache errata workaround</title>
<updated>2014-11-25T15:56:21Z</updated>
<author>
<name>Andre Przywara</name>
</author>
<published>2014-11-14T15:54:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=301bcfac42897dbd1b0b3c1be49f24654a1bc49e'/>
<id>urn:sha1:301bcfac42897dbd1b0b3c1be49f24654a1bc49e</id>
<content type='text'>
The ARM errata 819472, 826319, 827319 and 824069 define the same
workaround for these hardware issues in certain Cortex-A53 parts.
Use the new alternatives framework and the CPU MIDR detection to
patch "cache clean" into "cache clean and invalidate" instructions if
an affected CPU is detected at runtime.

Signed-off-by: Andre Przywara &lt;andre.przywara@arm.com&gt;
[will: add __maybe_unused to squash gcc warning]
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
</feed>
