pc-bios: s390x: Get rid of magic offsets into the lowcore

If we have a lowcore struct that has members for offsets that we want
to touch, why not use it?

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200624075226.92728-5-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Janosch Frank 2020-06-24 03:52:18 -04:00 committed by Thomas Huth
parent 12ea90dbd8
commit e6d393d097
2 changed files with 14 additions and 11 deletions

View File

@ -122,12 +122,17 @@ typedef struct schib {
} __attribute__ ((packed, aligned(4))) Schib;
typedef struct subchannel_id {
__u32 cssid:8;
__u32:4;
__u32 m:1;
__u32 ssid:2;
__u32 one:1;
__u32 sch_no:16;
union {
struct {
__u16 cssid:8;
__u16 reserved:4;
__u16 m:1;
__u16 ssid:2;
__u16 one:1;
};
__u16 sch_id;
};
__u16 sch_no;
} __attribute__ ((packed, aligned(4))) SubChannelId;
struct chsc_header {

View File

@ -36,11 +36,9 @@ LowCore *lowcore; /* Yes, this *is* a pointer to address 0 */
*/
void write_subsystem_identification(void)
{
SubChannelId *schid = (SubChannelId *) 184;
uint32_t *zeroes = (uint32_t *) 188;
*schid = blk_schid;
*zeroes = 0;
lowcore->subchannel_id = blk_schid.sch_id;
lowcore->subchannel_nr = blk_schid.sch_no;
lowcore->io_int_parm = 0;
}
void write_iplb_location(void)