<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/pc-bios/s390-ccw/jump2ipl.c, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/pc-bios/s390-ccw/jump2ipl.c?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/pc-bios/s390-ccw/jump2ipl.c?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2021-05-14T10:38:43+00:00</updated>
<entry>
<title>pc-bios/s390-ccw: Fix inline assembly for older versions of Clang</title>
<updated>2021-05-14T10:38:43+00:00</updated>
<author>
<name>Thomas Huth</name>
</author>
<published>2021-05-12T17:15:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=052b66e7211af64964e005126eaa3c944b296b0e'/>
<id>urn:sha1:052b66e7211af64964e005126eaa3c944b296b0e</id>
<content type='text'>
Clang versions before v11.0 insist on having the %rX or %cX register
names instead of just a number. Since our Travis-CI is currently
still using Clang v6.0, we have to fix this to avoid failing jobs.

Message-Id: &lt;20210512171550.476130-2-thuth@redhat.com&gt;
Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@redhat.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios/s390-ccw: Use reset_psw pointer instead of hard-coded null pointer</title>
<updated>2021-05-09T16:14:31+00:00</updated>
<author>
<name>Thomas Huth</name>
</author>
<published>2021-04-23T08:30:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=ff77712a8a2e15e5901fad35b9a6bb65974b2e4a'/>
<id>urn:sha1:ff77712a8a2e15e5901fad35b9a6bb65974b2e4a</id>
<content type='text'>
When compiling the s390-ccw bios with clang, it emits a warning like this:

 pc-bios/s390-ccw/jump2ipl.c:86:9: warning: indirection of non-volatile null
  pointer will be deleted, not trap [-Wnull-dereference]
     if (*((uint64_t *)0) &amp; RESET_PSW_MASK) {
         ^~~~~~~~~~~~~~~~
 pc-bios/s390-ccw/jump2ipl.c:86:9: note: consider using __builtin_trap() or
  qualifying pointer with 'volatile'

We could add a "volatile" here to shut it up, but on the other hand,
we also have a pointer variable called "reset_psw" in this file already
that points to the PSW at address 0, so we can simply use that pointer
variable instead.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@redhat.com&gt;
Message-Id: &lt;20210423142440.582188-1-thuth@redhat.com&gt;
Reviewed-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios: s390x: Clear out leftover S390EP string</title>
<updated>2020-11-23T08:48:45+00:00</updated>
<author>
<name>Eric Farman</name>
</author>
<published>2020-11-20T16:01:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=3d6519968bb10260fc724c491fb4275f7c0b78ac'/>
<id>urn:sha1:3d6519968bb10260fc724c491fb4275f7c0b78ac</id>
<content type='text'>
A Linux binary will have the string "S390EP" at address 0x10008,
which is important in getting the guest up off the ground. In the
case of a reboot (specifically chreipl going to a new device),
we should defer to the PSW at address zero for the new config,
which will re-write "S390EP" from the new image.

Let's clear it out at this point so that a reipl to, say, a DASD
passthrough device drives the IPL path from scratch without disrupting
disrupting the order of operations for other boots.

Rather than hardcoding the address of this magic (again), let's
define it somewhere so that the two users are visibly related.

Signed-off-by: Eric Farman &lt;farman@linux.ibm.com&gt;
Message-Id: &lt;20201120160117.59366-3-farman@linux.ibm.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios: s390x: Use reset PSW if avaliable</title>
<updated>2020-10-06T18:14:17+00:00</updated>
<author>
<name>Janosch Frank</name>
</author>
<published>2020-10-06T09:42:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=42ab98e7d71b834f4f8e2471f60b1c737b9543f3'/>
<id>urn:sha1:42ab98e7d71b834f4f8e2471f60b1c737b9543f3</id>
<content type='text'>
If a blob provides a reset PSW then we should use it instead of
branching to the PSW address and using our own mask.

Signed-off-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Reviewed-by: Thomas Huth &lt;thuth@redhat.com&gt;
Message-Id: &lt;20201006094249.50640-4-frankja@linux.ibm.com&gt;
[thuth: Use Elvis operator to shorten long line]
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios: s390x: Save PSW rework</title>
<updated>2020-10-06T17:57:35+00:00</updated>
<author>
<name>Janosch Frank</name>
</author>
<published>2020-10-06T09:42:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=26e0b96fa9c303194fe159037d69d9ec30355d07'/>
<id>urn:sha1:26e0b96fa9c303194fe159037d69d9ec30355d07</id>
<content type='text'>
We don't need to save the ipl_continue variable in lowcore and have it
limited to 32 bits because of the lowcore layout. Let's move it to a
new 64 bit variable and get rid of the reset info struct.

Signed-off-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Reviewed-by: Thomas Huth &lt;thuth@redhat.com&gt;
Message-Id: &lt;20201006094249.50640-3-frankja@linux.ibm.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR</title>
<updated>2020-07-02T08:00:32+00:00</updated>
<author>
<name>Janosch Frank</name>
</author>
<published>2020-06-24T07:52:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=fe75c657b8ee962da79f5d3518b139e26dc69c24'/>
<id>urn:sha1:fe75c657b8ee962da79f5d3518b139e26dc69c24</id>
<content type='text'>
Let's move some of the PSW mask defines into s390-arch.h and use them
in jump2ipl.c. Also let's introduce a new constant for the address
mask of 8 byte (short) PSWs.

Signed-off-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Reviewed-by: David Hildenbrand &lt;david@redhat.com&gt;
Reviewed-by: Thomas Huth &lt;thuth@redhat.com&gt;
Message-Id: &lt;20200624075226.92728-8-frankja@linux.ibm.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios: s390x: Save iplb location in lowcore</title>
<updated>2020-03-10T09:18:08+00:00</updated>
<author>
<name>Janosch Frank</name>
</author>
<published>2020-03-04T11:42:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=9bfc04f9ef6802fff0fc77130ff345a541783363'/>
<id>urn:sha1:9bfc04f9ef6802fff0fc77130ff345a541783363</id>
<content type='text'>
The POP states that for a list directed IPL the IPLB is stored into
memory by the machine loader and its address is stored at offset 0x14
of the lowcore.

ZIPL currently uses the address in offset 0x14 to access the IPLB and
acquire flags about secure boot. If the IPLB address points into
memory which has an unsupported mix of flags set, ZIPL will panic
instead of booting the OS.

As the lowcore can have quite a high entropy for a guest that did drop
out of protected mode (i.e. rebooted) we encountered the ZIPL panic
quite often.

Signed-off-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Tested-by: Marc Hartmayer &lt;mhartmay@linux.ibm.com&gt;
Message-Id: &lt;20200304114231.23493-19-frankja@linux.ibm.com&gt;
Reviewed-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Reviewed-by: David Hildenbrand &lt;david@redhat.com&gt;
Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>pc-bios/s390x: Fix reset psw mask</title>
<updated>2019-12-18T14:54:24+00:00</updated>
<author>
<name>Janosch Frank</name>
</author>
<published>2019-12-03T13:28:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=5c6f0d5f46a77d77460dfb518cf1e1e4145c276e'/>
<id>urn:sha1:5c6f0d5f46a77d77460dfb518cf1e1e4145c276e</id>
<content type='text'>
We need to set the short psw indication bit in the reset psw, as it is
a short psw.

Exposed by "s390x: Properly fetch and test the short psw on diag308
subc 0/1".

Fixes: 962982329029 ("pc-bios/s390-ccw: do a subsystem reset before running the guest")
Signed-off-by: Janosch Frank &lt;frankja@linux.ibm.com&gt;
Message-Id: &lt;20191203132813.2734-5-frankja@linux.ibm.com&gt;
Acked-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Cornelia Huck &lt;cohuck@redhat.com&gt;
</content>
</entry>
<entry>
<title>pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS</title>
<updated>2018-05-02T09:27:14+00:00</updated>
<author>
<name>Thomas Huth</name>
</author>
<published>2018-04-20T09:30:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=9a848adf45d6732e62551decb3c0255173090767'/>
<id>urn:sha1:9a848adf45d6732e62551decb3c0255173090767</id>
<content type='text'>
The netboot firmware so far simply jumped directly into the OS kernel
after the download has been completed. This, however, bears the risk
that the virtio-net device still might be active in the background and
incoming packets are still placed into the buffers - which could destroy
memory of the now-running Linux kernel in case it did not take over the
device fast enough. Also the SCLP console is not put into a well-defined
state here. We should hand over the system in a clean state when jumping
into the kernel, so let's use the same mechanism as it's done in the
main s390-ccw firmware and reset the machine with diag308 into a clean
state before jumping into the OS kernel code. To be able to share the
code with the main s390-ccw firmware, the related functions are now
extracted from bootmap.c into a new file called jump2ipl.c.

Since we now also set the boot device schid at address 184 for the network
boot device, this patch also slightly changes the way how we detect the
entry points for non-ELF binary images: The code now looks for the "S390EP"
magic first and then jumps to 0x10000 in case it has been found. This is
necessary for booting from network devices, since the normal kernel code
(where the PSW at ddress 0 points to) tries to do a block load from the
boot device. This of course fails for a virtio-net device and causes the
kernel to abort with a panic-PSW silently.

Acked-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Thomas Huth &lt;thuth@redhat.com&gt;
</content>
</entry>
</feed>
