<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/exceptions-64s.S, branch linux-3.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-05-08T03:08:16Z</updated>
<entry>
<title>powerpc: Fix hardware IRQs with MMU on exceptions when HV=0</title>
<updated>2013-05-08T03:08:16Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2013-04-25T15:30:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1248f642860f89ae24eac527c0cc8a26b4fb6660'/>
<id>urn:sha1:1248f642860f89ae24eac527c0cc8a26b4fb6660</id>
<content type='text'>
commit 3e96ca7f007ddb06b82a74a68585d1dbafa85ff1 upstream.

POWER8 allows us to take interrupts with the MMU on.  This gives us a
second set of vectors offset at 0x4000.

Unfortunately when coping these vectors we missed checking for MSR HV
for hardware interrupts (0x500).  This results in us trying to use
HSRR0/1 when HV=0, rather than SRR0/1 on HW IRQs

The below fixes this to check CPU_FTR_HVMODE when patching the code at
0x4500.

Also we remove the check for CPU_FTR_ARCH_206 since relocation on IRQs
are only available in arch 2.07 and beyond.

Thanks to benh for helping find this.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Rename USER_ESID_BITS* to ESID_BITS*</title>
<updated>2013-03-20T20:10:55Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2013-03-13T03:34:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0fab6a93766984b3cac6e2ca61ac86090663495b'/>
<id>urn:sha1:0fab6a93766984b3cac6e2ca61ac86090663495b</id>
<content type='text'>
commit af81d7878c641629f2693ae3fdaf74b4af14dfca upstream.

Now we use ESID_BITS of kernel address to build proto vsid. So rename
USER_ESIT_BITS to ESID_BITS

Acked-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Update kernel VSID range</title>
<updated>2013-03-20T20:10:55Z</updated>
<author>
<name>Aneesh Kumar K.V</name>
</author>
<published>2013-03-13T03:34:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7684eb4f4596ca2b83932a7e9b76c5b125d7838e'/>
<id>urn:sha1:7684eb4f4596ca2b83932a7e9b76c5b125d7838e</id>
<content type='text'>
commit c60ac5693c47df32a2b4b18af97fca5635def015 upstream.

This patch change the kernel VSID range so that we limit VSID_BITS to 37.
This enables us to support 64TB with 65 bit VA (37+28). Without this patch
we have boot hangs on platforms that only support 65 bit VA.

With this patch we now have proto vsid generated as below:

We first generate a 37-bit "proto-VSID". Proto-VSIDs are generated
from mmu context id and effective segment id of the address.

For user processes max context id is limited to ((1ul &lt;&lt; 19) - 5)
for kernel space, we use the top 4 context ids to map address as below
0x7fffc -  [ 0xc000000000000000 - 0xc0003fffffffffff ]
0x7fffd -  [ 0xd000000000000000 - 0xd0003fffffffffff ]
0x7fffe -  [ 0xe000000000000000 - 0xe0003fffffffffff ]
0x7ffff -  [ 0xf000000000000000 - 0xf0003fffffffffff ]

Acked-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: Aneesh Kumar K.V &lt;aneesh.kumar@linux.vnet.ibm.com&gt;
Tested-by: Geoff Levand &lt;geoff@infradead.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>powerpc: Add relocation on exception vector handlers</title>
<updated>2012-11-15T04:08:05Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-02T06:21:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c1fb6816fb1b78dd94b673b0fdaa9a7a16e97bd1'/>
<id>urn:sha1:c1fb6816fb1b78dd94b673b0fdaa9a7a16e97bd1</id>
<content type='text'>
POWER8/v2.07 allows exceptions to be taken with the MMU still on.

A new set of exception vectors is added at 0xc000_0000_0000_4xxx.  When the HW
takes us here, MSR IR/DR will be set already and we no longer need a costly
RFID to turn the MMU back on again.

The original 0x0 based exception vectors remain for when the HW can't leave the
MMU on.  Examples of this are when we can't trust the current MMU mappings,
like when we are changing from guest to hypervisor (HV 0 -&gt; 1) or when the MMU
was off already.  In these cases the HW will take us to the original 0x0 based
exception vectors with the MMU off as before.

This uses the new macros added previously too implement these new execption
vectors at 0xc000_0000_0000_4xxx.  We exit these exception vectors using
mflr/blr (rather than mtspr SSR0/RFID), since we don't need the costly MMU
switch anymore.

This moves the __end_interrupts marker down past these new 0x4000 vectors since
they will need to be copied down to 0x0 when the kernel is not at 0x0.

Signed-off-by: Matt Evans &lt;matt@ozlabs.org&gt;
Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Add new macros needed for relocation on exceptions</title>
<updated>2012-11-15T04:08:04Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-02T06:21:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4700dfaf1e988b785bd9791064df92d3353e8b88'/>
<id>urn:sha1:4700dfaf1e988b785bd9791064df92d3353e8b88</id>
<content type='text'>
POWER8/v2.07 allows exceptions to be taken with the MMU still on.

A new set of exception vectors is added at 0xc000_0000_0000_4xxx.  When the HW
takes us here, MSR IR/DR will be set already and we no longer need a costly
RFID to turn the MMU back on again.

The original 0x0 based exception vectors remain for when the HW can't leave the
MMU on.  Examples of this are when we can't trust the current the MMU mappings,
like when we are changing from guest to hypervisor (HV 0 -&gt; 1) or when the MMU
was off already.  In these cases the HW will take us to the original 0x0 based
exception vectors with the MMU off as before.

The below macros are copies of the macros used at the 0x0 offset but modified
to handle the MMU being on.  In these macros we use the link register to jump
to the secondary handlers rather than using RFID (RFID was also use to turn on
the MMU).

Signed-off-by: Matt Evans &lt;matt@ozlabs.org&gt;
Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Turn syscall handler into macros</title>
<updated>2012-11-15T04:08:04Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-02T06:16:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=742415d6b66bf09e3e73280178ef7ec85c90b7ee'/>
<id>urn:sha1:742415d6b66bf09e3e73280178ef7ec85c90b7ee</id>
<content type='text'>
This turns the syscall handler into macros as we are going to want to reuse
them again later.

Signed-off-by: Matt Evans &lt;matt@ozlabs.org&gt;
Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Make load_hander handle upto 64k offset</title>
<updated>2012-11-15T04:08:03Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-05T06:10:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=61e2390ede3cea186cc01f5f3d0c9eb570c42c40'/>
<id>urn:sha1:61e2390ede3cea186cc01f5f3d0c9eb570c42c40</id>
<content type='text'>
If we change load_hander() to use an ori instead of addi, we can load handlers
upto 64k away provided we are still 64k aligned.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Remove unessessary 0x3000 location enforcement</title>
<updated>2012-11-15T04:08:03Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-02T02:53:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=faab4dd2d281d42cb46b16e36f769be59c0a7338'/>
<id>urn:sha1:faab4dd2d281d42cb46b16e36f769be59c0a7338</id>
<content type='text'>
This removes the large gap between 0x1800 and 0x3000.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Whitespace changes in exception64s.S</title>
<updated>2012-11-15T04:08:02Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-11-02T03:11:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=278a6cdc39218c13c7a924d21cda71d829007b60'/>
<id>urn:sha1:278a6cdc39218c13c7a924d21cda71d829007b60</id>
<content type='text'>
Remove redundancy spaces and make tab usage consistent.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Fix denorm symbol name</title>
<updated>2012-11-15T02:00:48Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2012-10-31T18:58:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=51cf2b30a552fe890a1af83cc0bcf49f92d82e58'/>
<id>urn:sha1:51cf2b30a552fe890a1af83cc0bcf49f92d82e58</id>
<content type='text'>
Fix global symbol name to match actual denorm_exception_hv label.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
</feed>
