<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-obmc-linux/arch/s390/boot, branch v4.19.20</title>
<subtitle>Talos™ II Linux sources for OpenBMC</subtitle>
<id>https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v4.19.20</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v4.19.20'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/'/>
<updated>2018-11-27T15:13:02+00:00</updated>
<entry>
<title>s390/decompressor: add missing FORCE to build targets</title>
<updated>2018-11-27T15:13:02+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-10-19T11:37:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=9b2d5118f74fede5a989ef8747d8fdfca84771dd'/>
<id>urn:sha1:9b2d5118f74fede5a989ef8747d8fdfca84771dd</id>
<content type='text'>
[ Upstream commit ef5febae1543f35a45f01614123e829d77326d0f ]

According to Documentation/kbuild/makefiles.txt all build targets
using if_changed should use FORCE as well. Add missing FORCE to make
sure vmlinux decompressor targets are rebuild properly when not just
immediate prerequisites have changed but also when build command differs.

Reviewed-by: Philipp Rudo &lt;prudo@linux.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: avoid packing *.o.chkbss files into startup.a</title>
<updated>2018-07-02T10:32:22+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-28T17:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=7e0363b469f5d2ad00234497aad65c7b46db42c0'/>
<id>urn:sha1:7e0363b469f5d2ad00234497aad65c7b46db42c0</id>
<content type='text'>
startup.a build rule packs a list of prerequisites into archive. That
didn't take into account extra prerequisites added by chkbss, so that
zero length *.o.chkbss files were also packed into the archive.

To avoid that filter only real object from prerequisites list.

Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: avoid constant startup.a rebuilds</title>
<updated>2018-07-02T10:32:21+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-07-01T09:31:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=b887b1b106654141ab034061ef0cc8d471ebc683'/>
<id>urn:sha1:b887b1b106654141ab034061ef0cc8d471ebc683</id>
<content type='text'>
Correct merging error which replaced startup.a in targets list with
non-existing setup.a. Due to missing startup.a in targets list if_changed
triggered startup.a rebuild unconditionally.

Fixes: 3e200c54438d ("s390/decompressor: avoid reusing uncompressed image objects")
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/boot: block uncompressed vmlinux booting attempts</title>
<updated>2018-07-02T09:25:05+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-25T11:59:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=627c9b62058ebfd368b7411e7ea5a27df48486c8'/>
<id>urn:sha1:627c9b62058ebfd368b7411e7ea5a27df48486c8</id>
<content type='text'>
Since the plain vmlinux ELF file no longer carries all necessary parts
for starting up (like the entry point and decompressor), add a check
which would block boot process and encourage users to use bzImage or
arch/s390/boot/compressed/vmlinux instead.

The check relies on s390 linux entry point ABI definition, which is only
present in bzImage and arch/s390/boot/compressed/vmlinux.

Reported-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Acked-by: Cornelia Huck &lt;cohuck@redhat.com&gt;
Acked-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: correct EXCLUDE_FILE construct</title>
<updated>2018-07-02T09:25:01+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-28T05:39:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=2d6f74f797f26e14bdd672b3547ad29199bbb6b8'/>
<id>urn:sha1:2d6f74f797f26e14bdd672b3547ad29199bbb6b8</id>
<content type='text'>
The following linker construct is problematic with linkers of
binutils &lt; 2.28:

EXCLUDE_FILE (*piggy.o) *(.rodata.*)

from 8f1732fc2a11dc of binutils:
"though the linker accepts this without complaint the
EXCLUDE_FILE part is silently ignored and has no effect."

Silent ignoring of EXCLUDE_FILE construct made .rodata.compressed be
part of .rodata, and in case of .rodata.compressed following some
unaligned data, input_len would also become unaligned.

from arch/s390/boot/compressed/vmlinux.map:
 .rodata.compressed
                0x0000000000012fea   0x4d57e7 arch/s390/boot/compressed/piggy.o
                0x0000000000012fea                input_len
                0x0000000000012fee                input_data

input_len is later used here:
arch/s390/boot/compressed/misc.c:113
	__decompress(input_data, input_len, NULL, NULL, output, 0, NULL, error);

asm generated by gcc looks like:
	.loc 3 113 0
egfrl	%r11,input_len

from what assembler generates invalid (the second operand must be aligned
on a doubleword boundary):
   0x00000000000129b4 &lt;+148&gt;:   c4 bc 00 00 03 1b       lgfrl   %r11,0x12fea
hence specification exception is recognized.

To avoid an issue use EXCLUDE_FILE construct which is recognized by
older linkers (since at least binutils-2_11)
	*(EXCLUDE_FILE (*piggy.o) .rodata.compressed)

Also ensure that .rodata.compressed is at least doubleword aligned.

Fixes: 89b5202e81df ("s390/decompressor: support uncompressed kernel")
Reported-by: Halil Pasic &lt;pasic@linux.ibm.com&gt;
Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390: get rid of the first mb of uncompressed image</title>
<updated>2018-07-02T09:24:58+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-27T15:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=183ab05ff285555c56b7f00bb4fd52d80a9513fb'/>
<id>urn:sha1:183ab05ff285555c56b7f00bb4fd52d80a9513fb</id>
<content type='text'>
Instead of generating uncompressed kernel image starting at 0, filling
first mb with zeros (with ".org 0x100000") and then trimming it off
from vmlinux.bin before compression, simply generate a kernel image
starting from 0x100000.

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: discard ___kcrctab section</title>
<updated>2018-07-02T09:24:56+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-27T12:46:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=4778dc08ef99825d2931d44888fda8d49319d93a'/>
<id>urn:sha1:4778dc08ef99825d2931d44888fda8d49319d93a</id>
<content type='text'>
___kcrctab section is not used during the decompressor phase and could be
discarded to save the memory. It is currently generated due to lib/mem.S
usage, which exports few symbols.

Acked-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: support uncompressed kernel</title>
<updated>2018-06-25T08:14:40+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-12T22:00:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=89b5202e81df9f0f0f0a11cf8c78bc8bfdc52a21'/>
<id>urn:sha1:89b5202e81df9f0f0f0a11cf8c78bc8bfdc52a21</id>
<content type='text'>
Implement uncompressed kernel support (when "None" is picked in kernel
compression mode list). In that case an actual decompression code is
skipped and control is passed from boot/head.S to startup_continue in
kernel/head64.S. To achieve that uncompressed kernel payload is
conditionally put at 0x100000 in bzImage.

In reality this is very close to classic uncompressed kernel "image",
but the decompressor has its own build and link process,
kernel/head64.S lives at 0x100000 rather than at 0x11000, and .bss
section is reused for both stages.

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: allow to pack uncompressed vmlinux.bin into piggy.o</title>
<updated>2018-06-25T08:14:40+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-13T04:34:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=c98b6c679a3b8032a2dd5c9724f489e1b959e5a7'/>
<id>urn:sha1:c98b6c679a3b8032a2dd5c9724f489e1b959e5a7</id>
<content type='text'>
If none of compression methods defined, leave suffix-y empty, so that
plain uncompressed vmlinux.bin could be reused instead.

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/decompressor: allow preprocessor in piggy.o linker script</title>
<updated>2018-06-25T08:14:40+00:00</updated>
<author>
<name>Vasily Gorbik</name>
<email>gor@linux.ibm.com</email>
</author>
<published>2018-06-12T19:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=b8326bf52e0894004c790183228c1ec18aae7f72'/>
<id>urn:sha1:b8326bf52e0894004c790183228c1ec18aae7f72</id>
<content type='text'>
Rename vmlinux.scr to vmlinux.scr.lds.S and add it to build rules to
enable preprocessor for it.

Also add vmlinux.scr.lds to local .gitignore

Reviewed-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Vasily Gorbik &lt;gor@linux.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
