<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/arch/powerpc/boot/crt0.S, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2015-03-16T07:58:35+00:00</updated>
<entry>
<title>powerpc/boot: don't clobber r6 and r7 in epapr boot</title>
<updated>2015-03-16T07:58:35+00:00</updated>
<author>
<name>Jeremy Kerr</name>
<email>jk@ozlabs.org</email>
</author>
<published>2015-02-11T04:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7f664cf9e422105644818b180349e3b10a370de7'/>
<id>urn:sha1:7f664cf9e422105644818b180349e3b10a370de7</id>
<content type='text'>
We use r6 and r7 for epapr boot, but the current pre-C init will clobber
both of these.

This change does a simple replacement, of r6 -&gt; r12 and r7 -&gt; r13, so
that we hit platform init with these registers intact.

Signed-off-by: Jeremy Kerr &lt;jk@ozlabs.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/boot: Fix stack corruption in epapr entry point</title>
<updated>2015-03-16T07:58:34+00:00</updated>
<author>
<name>Jeremy Kerr</name>
<email>jk@ozlabs.org</email>
</author>
<published>2015-02-11T04:55:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8c06f0d910ca628b657dc964a7347e70070dc7d6'/>
<id>urn:sha1:8c06f0d910ca628b657dc964a7347e70070dc7d6</id>
<content type='text'>
Currently, a 64-bit little-endian zImage.epapr won't boot in epapr mode,
as we never return from platform_init.

Before entering C, we initialise our stack by setting r1 16 bytes below
the end of the _bss_stack:

  stwu	r0,-16(r1)	/* establish a stack frame */

However, the called function will save the caller's lr in the caller's
frame's lr save area, at -16(r1) to -32(r1).

This means that writes to the fdt variable will corrupt the saved link
register:

 0000000020c06018 l     O .bss   0000000000001000 _bss_stack
 0000000020c07018 l     O .bss   0000000000000008 fdt

We'll need at least 32 bytes in the initial stack frame, to handle the
LR save area. We bump this to 112 bytes, as that'll be the max required
by ABIv1.

Thanks to Alistair Popple for debugging help.

Signed-off-by: Jeremy Kerr &lt;jk@ozlabs.org&gt;
Signed-off-by: Michael Ellerman &lt;mpe@ellerman.id.au&gt;
</content>
</entry>
<entry>
<title>powerpc/boot: Add support for 64bit little endian wrapper</title>
<updated>2014-04-28T07:36:21+00:00</updated>
<author>
<name>Cédric Le Goater</name>
<email>clg@fr.ibm.com</email>
</author>
<published>2014-04-24T07:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=147c05168fc86e824ccd1c0a02b40843e3cbca88'/>
<id>urn:sha1:147c05168fc86e824ccd1c0a02b40843e3cbca88</id>
<content type='text'>
The code is only slightly modified : entry points now use the
FIXUP_ENDIAN trampoline to switch endian order. The 32bit wrapper
is kept for big endian kernels and 64bit is enforced for little
endian kernels with a PPC64_BOOT_WRAPPER config option.

The linker script is generated using the kernel preprocessor flags
to make use of the CONFIG_* definitions and the wrapper script is
modified to take into account the new elf64ppc format.

Finally, the zImage file is compiled as a position independent
executable (-pie) which makes it loadable at any address by the
firmware.

Signed-off-by: Cédric Le Goater &lt;clg@fr.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/boot: Modify entry point for 64bit</title>
<updated>2014-04-28T07:36:12+00:00</updated>
<author>
<name>Cédric Le Goater</name>
<email>clg@fr.ibm.com</email>
</author>
<published>2014-04-24T07:23:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f16e9684996188c12e1f460589003e99086ce36e'/>
<id>urn:sha1:f16e9684996188c12e1f460589003e99086ce36e</id>
<content type='text'>
This patch adds support a 64bit wrapper entry point. As in 32bit, the
entry point does its own relocation and can be loaded at any address
by the firmware.

Signed-off-by: Cédric Le Goater &lt;clg@fr.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/boot: Define a routine to enter prom</title>
<updated>2014-04-28T07:36:08+00:00</updated>
<author>
<name>Cédric Le Goater</name>
<email>clg@fr.ibm.com</email>
</author>
<published>2014-04-24T07:23:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=93d3921042988317e94b1bcc2e19844efe0b7356'/>
<id>urn:sha1:93d3921042988317e94b1bcc2e19844efe0b7356</id>
<content type='text'>
This patch defines a 'prom' routine similar to 'enter_prom' in the
kernel.

The difference is in the MSR which is built before entering prom. Big
endian order is enforced as in the kernel but 32bit mode is not. It
prepares ground for the next patches which will introduce Little endian
order.

Signed-off-by: Cédric Le Goater &lt;clg@fr.ibm.com&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN</title>
<updated>2011-04-20T06:59:20+00:00</updated>
<author>
<name>Michael Ellerman</name>
<email>michael@ozlabs.org</email>
</author>
<published>2011-04-12T20:38:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=6975a783d7b40c79be4b7a7ea450e023ff7e5e02'/>
<id>urn:sha1:6975a783d7b40c79be4b7a7ea450e023ff7e5e02</id>
<content type='text'>
This patch adds code, linker script and makefile support to allow
building the zImage wrapper around the kernel as a position independent
executable.  This results in an ET_DYN instead of an ET_EXEC ELF output
file, which can be loaded at any location by the firmware and will
process its own relocations to work correctly at the loaded address.

This is of interest particularly since the standard ePAPR image format
must be an ET_DYN (although this patch alone is not sufficient to
produce a fully ePAPR compliant boot image).

Note for now we don't enable building with -pie for anything.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Michael Ellerman &lt;michael@ellerman.id.au&gt;
Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] Fix building of COFF zImages</title>
<updated>2007-06-07T12:21:31+00:00</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2007-06-07T12:21:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f40e524eaec9697d1515564fd5b961d839d2dc4f'/>
<id>urn:sha1:f40e524eaec9697d1515564fd5b961d839d2dc4f</id>
<content type='text'>
The COFF zImage (for booting oldworld powermacs) wasn't being built
correctly because the procedure descriptor in crt0.S for the zImage
entry point wasn't declared as .globl, and therefore wasn't getting
pulled in from wrapper.a by the linker.  This adds the necessary
.globl statement.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;</content>
</entry>
<entry>
<title>[POWERPC] bootwrapper: missing relocation in crt0.S</title>
<updated>2007-04-12T17:55:16+00:00</updated>
<author>
<name>Milton Miller</name>
<email>miltonm@bga.com</email>
</author>
<published>2007-03-28T08:21:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f4bdbfc41b3cad813745f64fb849c298770da517'/>
<id>urn:sha1:f4bdbfc41b3cad813745f64fb849c298770da517</id>
<content type='text'>
crt0.S had provisions to provide run address relocaton to got2 and
cache flush, but not on the bss clear or stack pointer load.  Apply
the same fixup for them.

Signed-off-by: Milton Miller &lt;miltonm@bga.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] New reg.h for the zImage</title>
<updated>2007-03-26T05:11:20+00:00</updated>
<author>
<name>David Gibson</name>
<email>david@gibson.dropbear.id.au</email>
</author>
<published>2007-03-22T06:02:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=e5a2072bd48eb4a35c57a8ec45897ac2db3a3f82'/>
<id>urn:sha1:e5a2072bd48eb4a35c57a8ec45897ac2db3a3f82</id>
<content type='text'>
This patch adds a reg.h to the zImage code, with common definitions
for accessing system registers.  For now, this includes functions for
retrieving the PVR and the stack pointer.  This patch then uses the
new reg.h to let start() display the running stack address without
having to explicitly pass the stack as a parameter from the asm code.

Signed-off-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] bootwrapper: Allow platforms to call library zImage_start</title>
<updated>2007-03-26T05:11:20+00:00</updated>
<author>
<name>Milton Miller</name>
<email>miltonm@bga.com</email>
</author>
<published>2007-03-21T15:02:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=160cc3ece727c5158facec9937c2a5b10013bae1'/>
<id>urn:sha1:160cc3ece727c5158facec9937c2a5b10013bae1</id>
<content type='text'>
Some platforms might need to run some code before the zImage start, but
could otherwise use the bss clear and relocation code.   Export the
start address strongly as zImage_start_lib.

Signed-off-by: Milton Miller &lt;miltonm@bga.com&gt;
Acked-by: David Gibson &lt;david@gibson.dropbear.id.au&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
</feed>
