From: Janosch Frank <frankja@linux.ibm.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>, qemu-devel@nongnu.org
Cc: thuth@redhat.com, cohuck@redhat.com, david@redhat.com
Subject: Re: [PATCH 1/7] pc-bios: s390x: Fix bootmap.c zipl component entry data handling
Date: Wed, 22 Jul 2020 09:30:26 +0200 [thread overview]
Message-ID: <80fa1441-588e-0f69-c8e5-df79a2e021fb@linux.ibm.com> (raw)
In-Reply-To: <20d8b933-b37a-1ddb-4414-013eb4ec84f0@de.ibm.com>
[-- Attachment #1.1: Type: text/plain, Size: 2994 bytes --]
On 7/22/20 8:50 AM, Christian Borntraeger wrote:
>
>
> On 15.07.20 11:40, Janosch Frank wrote:
>> The two main types of zipl component entries are execute and
>> load/data. The last member of the component entry struct therefore
>> denotes either a PSW or an address. Let's make this a bit more clear
>> by introducing a union and cleaning up the code that uses that struct
>> member.
>>
>> The execute type component entries written by zipl contain short PSWs,
>> not addresses. Let's mask them and only pass the address part to
>> jump_to_IPL_code(uint64_t address) because it expects an address as
>> visible by the name of the argument.
>
> If zipl actually specifies a PSW, shouldnt we actually USE that PSW including
> the zipl specified mask?
I expected the current approach to have some kind of meaning behind it,
if there isn't I'll be the first one to make it more sensible.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>> pc-bios/s390-ccw/bootmap.c | 5 +++--
>> pc-bios/s390-ccw/bootmap.h | 7 ++++++-
>> 2 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c
>> index 97205674e5..8747c4ea26 100644
>> --- a/pc-bios/s390-ccw/bootmap.c
>> +++ b/pc-bios/s390-ccw/bootmap.c
>> @@ -10,6 +10,7 @@
>>
>> #include "libc.h"
>> #include "s390-ccw.h"
>> +#include "s390-arch.h"
>> #include "bootmap.h"
>> #include "virtio.h"
>> #include "bswap.h"
>> @@ -436,7 +437,7 @@ static void zipl_load_segment(ComponentEntry *entry)
>> char *blk_no = &err_msg[30]; /* where to print blockno in (those ZZs) */
>>
>> blockno = entry->data.blockno;
>> - address = entry->load_address;
>> + address = entry->compdat.load_addr;
>>
>> debug_print_int("loading segment at block", blockno);
>> debug_print_int("addr", address);
>> @@ -514,7 +515,7 @@ static void zipl_run(ScsiBlockPtr *pte)
>> IPL_assert(entry->component_type == ZIPL_COMP_ENTRY_EXEC, "No EXEC entry");
>>
>> /* should not return */
>> - jump_to_IPL_code(entry->load_address);
>> + jump_to_IPL_code(entry->compdat.load_psw & PSW_MASK_SHORT_ADDR);
>> }
>>
>> static void ipl_scsi(void)
>> diff --git a/pc-bios/s390-ccw/bootmap.h b/pc-bios/s390-ccw/bootmap.h
>> index 12a0166aae..3946aa3f8d 100644
>> --- a/pc-bios/s390-ccw/bootmap.h
>> +++ b/pc-bios/s390-ccw/bootmap.h
>> @@ -64,11 +64,16 @@ typedef struct BootMapTable {
>> BootMapPointer entry[];
>> } __attribute__ ((packed)) BootMapTable;
>>
>> +typedef union ComponentEntryData {
>> + uint64_t load_psw;
>> + uint64_t load_addr;
>> +} ComponentEntryData;
>> +
>> typedef struct ComponentEntry {
>> ScsiBlockPtr data;
>> uint8_t pad[7];
>> uint8_t component_type;
>> - uint64_t load_address;
>> + ComponentEntryData compdat;
>> } __attribute((packed)) ComponentEntry;
>>
>> typedef struct ComponentHeader {
>>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-07-22 7:31 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-15 9:40 [PATCH 0/7] pc-bios: s390x: Cleanup part 2 Janosch Frank
2020-07-15 9:40 ` [PATCH 1/7] pc-bios: s390x: Fix bootmap.c zipl component entry data handling Janosch Frank
2020-07-17 15:05 ` Thomas Huth
2020-07-22 6:50 ` Christian Borntraeger
2020-07-22 7:30 ` Janosch Frank [this message]
2020-07-22 7:33 ` Christian Borntraeger
2020-07-22 8:06 ` Janosch Frank
2020-07-15 9:40 ` [PATCH 2/7] pc-bios: s390x: Cleanup jump to ipl code Janosch Frank
2020-07-17 15:13 ` Thomas Huth
2020-07-21 13:07 ` Janosch Frank
2020-07-21 13:54 ` Christian Borntraeger
2020-07-15 9:40 ` [PATCH 3/7] pc-bios: s390x: Remove unneeded dasd-ipl.c reset psw mask changes Janosch Frank
2020-07-20 11:45 ` Thomas Huth
2020-07-20 12:16 ` Janosch Frank
2020-07-21 7:10 ` Thomas Huth
2020-07-15 9:40 ` [PATCH 4/7] pc-bios: s390x: Rework data initialization Janosch Frank
2020-07-20 11:56 ` Thomas Huth
2020-07-20 12:10 ` Janosch Frank
2020-07-15 9:40 ` [PATCH 5/7] pc-bios: s390x: Replace lowcore offsets with pointers in dasd-ipl.c Janosch Frank
2020-07-21 7:00 ` Thomas Huth
2020-07-15 9:40 ` [PATCH 6/7] pc-bios: s390x: Use PSW constants in start.S Janosch Frank
2020-07-21 7:05 ` Thomas Huth
2020-07-22 6:47 ` Christian Borntraeger
2020-07-15 9:40 ` [PATCH 7/7] pc-bios: s390x: Setup io and ext new psws only once Janosch Frank
2020-07-15 13:13 ` Janosch Frank
2020-07-15 13:16 ` Christian Borntraeger
2020-07-15 14:08 ` [PATCH] pc-bios: s390x: Add a comment to the io and external new PSW setup Janosch Frank
2020-07-21 7:03 ` Thomas Huth
2020-07-22 6:43 ` Christian Borntraeger
2020-07-22 7:24 ` Janosch Frank
2020-07-22 7:39 ` Christian Borntraeger
2020-07-22 8:05 ` Janosch Frank
2020-08-27 9:20 ` Thomas Huth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=80fa1441-588e-0f69-c8e5-df79a2e021fb@linux.ibm.com \
--to=frankja@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.