<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/include/asm/reg.h, branch linux-5.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-04-21T12:52:32Z</updated>
<entry>
<title>powerpc/32: Use r2 in wrtspr() instead of r0</title>
<updated>2021-04-21T12:52:32Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-01-22T07:15:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=867e762480f4ad4106b16299a373fa23eccf5b4b'/>
<id>urn:sha1:867e762480f4ad4106b16299a373fa23eccf5b4b</id>
<content type='text'>
wrtspr() is a function to write an arbitrary value in a special
register. It is used on 8xx to write to SPRN_NRI, SPRN_EID and
SPRN_EIE. Writing any value to one of those will play with MSR EE
and MSR RI regardless of that value.

r0 is used many places in the generated code and using r0 for
that creates an unnecessary dependency of this instruction with
preceding ones using r0 in a few places in vmlinux.

r2 is most likely the most stable register as it contains the
pointer to 'current'.

Using r2 instead of r0 avoids that unnecessary dependency.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/69f9968f4b592fefda55227f0f7430ea612cc950.1611299687.git.christophe.leroy@csgroup.eu

</content>
</entry>
<entry>
<title>powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors</title>
<updated>2021-04-18T13:19:29Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2021-04-02T02:41:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49c1d07fd04f54eb588c4a1dfcedc8d22c5ffd50'/>
<id>urn:sha1:49c1d07fd04f54eb588c4a1dfcedc8d22c5ffd50</id>
<content type='text'>
Starting with ISA v3.1, LPCR[AIL] no longer controls the interrupt
mode for HV=1 interrupts. Instead, a new LPCR[HAIL] bit is defined
which behaves like AIL=3 for HV interrupts when set.

Set HAIL on bare metal to give us mmu-on interrupts and improve
performance.

This also fixes an scv bug: we don't implement scv real mode (AIL=0)
vectors because they are at an inconvenient location, so we just
disable scv support when AIL can not be set. However powernv assumes
that LPCR[AIL] will enable AIL mode so it enables scv support despite
HV interrupts being AIL=0, which causes scv interrupts to go off into
the weeds.

Fixes: 7fa95f9adaee ("powerpc/64s: system call support for scv/rfscv instructions")
Cc: stable@vger.kernel.org # v5.9+
Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210402024124.545826-1-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: Reference parameter in MSR_TM_ACTIVE() macro</title>
<updated>2021-03-29T01:49:46Z</updated>
<author>
<name>Christopher M. Riedl</name>
</author>
<published>2021-02-27T01:12:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a130b67c682be9842f188f593c2080786de4204'/>
<id>urn:sha1:1a130b67c682be9842f188f593c2080786de4204</id>
<content type='text'>
Unlike the other MSR_TM_* macros, MSR_TM_ACTIVE does not reference or
use its parameter unless CONFIG_PPC_TRANSACTIONAL_MEM is defined. This
causes an 'unused variable' compile warning unless the variable is also
guarded with CONFIG_PPC_TRANSACTIONAL_MEM.

Reference but do nothing with the argument in the macro to avoid a
potential compile warning.

Signed-off-by: Christopher M. Riedl &lt;cmr@codefail.de&gt;
Reviewed-by: Daniel Axtens &lt;dja@axtens.net&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20210227011259.11992-5-cmr@codefail.de
</content>
</entry>
<entry>
<title>powerpc/irq: Rework helpers that manipulate MSR[EE/RI]</title>
<updated>2021-02-11T12:35:09Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-02-08T15:10:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=08353779f2889305f64e04de3e46ed59ed60f859'/>
<id>urn:sha1:08353779f2889305f64e04de3e46ed59ed60f859</id>
<content type='text'>
In preparation of porting PPC32 to C syscall entry/exit,
rewrite the following helpers as static inline functions and
add support for PPC32 in them:
	__hard_irq_enable()
	__hard_irq_disable()
	__hard_EE_RI_disable()
	__hard_RI_enable()

Then use them in PPC32 version of arch_local_irq_disable()
and arch_local_irq_enable() to avoid code duplication.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Reviewed-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/0e290372a0e7dc2ae657b4a01aec85f8de7fdf77.1612796617.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32s: Allow constant folding in mtsr()/mfsr()</title>
<updated>2021-02-08T14:10:15Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-02-06T11:47:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b842d131c7983f8f0b9c9572c073130b5f2bcf11'/>
<id>urn:sha1:b842d131c7983f8f0b9c9572c073130b5f2bcf11</id>
<content type='text'>
On the same way as we did in wrtee(), add an alternative
using mtsr/mfsr instructions instead of mtsrin/mfsrin
when the segment register can be determined at compile time.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/9baed0ff9d76723ec90f1b567ddd4ac1ecc7a190.1612612022.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32s: mfsrin()/mtsrin() become mfsr()/mtsr()</title>
<updated>2021-02-08T14:10:15Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-02-06T11:47:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=179ae57dbad1b9a83eec376aa44d54fc24352e37'/>
<id>urn:sha1:179ae57dbad1b9a83eec376aa44d54fc24352e37</id>
<content type='text'>
Function names should tell what the function does, not how.

mfsrin() and mtsrin() are read/writing segment registers.

They are called that way because they are using mfsrin and mtsrin
instructions, but it doesn't matter for the caller.

In preparation of following patch, change their name to mfsr() and mtsr()
in order to make it obvious they manipulate segment registers without
messing up with how they do it.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/f92d99f4349391b77766745900231aa880a0efb5.1612612022.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32s: Change mfsrin() into a static inline function</title>
<updated>2021-02-08T14:10:15Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2021-02-06T11:47:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd659e8f2c6d1e1e96fd5bdb515518801cd02012'/>
<id>urn:sha1:fd659e8f2c6d1e1e96fd5bdb515518801cd02012</id>
<content type='text'>
mfsrin() is a macro.

Change in into an inline function to avoid conflicts in KVM
and make it more evolutive.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/72c7b9879e2e2e6f5c27dadda6486386c2b50f23.1612612022.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/64s: Remove MSR[ISF] bit</title>
<updated>2020-12-09T12:48:14Z</updated>
<author>
<name>Nicholas Piggin</name>
</author>
<published>2020-11-06T04:53:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e89a8ca94bf583f2577fe722483f0304b3390aa2'/>
<id>urn:sha1:e89a8ca94bf583f2577fe722483f0304b3390aa2</id>
<content type='text'>
No supported processor implements this mode. Setting the bit in
MSR values can be a bit confusing (and would prevent the bit from
ever being reused). Remove it.

Signed-off-by: Nicholas Piggin &lt;npiggin@gmail.com&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/20201106045340.1935841-1-npiggin@gmail.com
</content>
</entry>
<entry>
<title>powerpc: Retire e200 core (mpc555x processor)</title>
<updated>2020-12-05T10:49:18Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2020-11-17T05:07:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=39c8bf2b3cc166a2a75111e4941cc5f7efbddc35'/>
<id>urn:sha1:39c8bf2b3cc166a2a75111e4941cc5f7efbddc35</id>
<content type='text'>
There is no defconfig selecting CONFIG_E200, and no platform.

e200 is an earlier version of booke, a predecessor of e500,
with some particularities like an unified cache instead of both an
instruction cache and a data cache.

Remove it.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Acked-by: Scott Wood &lt;oss@buserror.net&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/34ebc3ba2c768d97f363bd5f2deea2356e9ae127.1605589460.git.christophe.leroy@csgroup.eu
</content>
</entry>
<entry>
<title>powerpc/32s: Use SPRN_SPRG_SCRATCH2 in DSI prolog</title>
<updated>2020-12-03T14:01:32Z</updated>
<author>
<name>Christophe Leroy</name>
</author>
<published>2020-11-25T07:10:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de1cd0790697e67b728de43e8657bb52f528bfb9'/>
<id>urn:sha1:de1cd0790697e67b728de43e8657bb52f528bfb9</id>
<content type='text'>
Use SPRN_SPRG_SCRATCH2 as an alternative scratch register in
the early part of DSI prolog in order to avoid clobbering
SPRN_SPRG_SCRATCH0/1 used by other prologs.

The 603 doesn't like a jump from DataLoadTLBMiss to the 10 nops
that are now in the beginning of DSI exception as a result of
the feature section. To workaround this, add a jump as alternative.
It also avoids fetching 10 nops for nothing.

Signed-off-by: Christophe Leroy &lt;christophe.leroy@csgroup.eu&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
Link: https://lore.kernel.org/r/f9f8df2a2be93568768ef1ac793639f7914cf103.1606285014.git.christophe.leroy@csgroup.eu
</content>
</entry>
</feed>
