mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
pc-bios/s390-ccw: store proper subsystem information word
POP chapter 17 requires to store a subsystem information word at 184 during IPL. Furthermore bytes 188-191 should be zero. The bootmap might contain data blocks that are written to the first page. We have to write these values after we processed the bootmap and before the final IPL. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
eaa4980185
commit
f2879a5c9e
3 changed files with 19 additions and 1 deletions
|
@ -13,6 +13,22 @@
|
|||
|
||||
char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
|
||||
uint64_t boot_value;
|
||||
struct subchannel_id blk_schid = { .one = 1 };
|
||||
|
||||
/*
|
||||
* Priniciples of Operations (SA22-7832-09) chapter 17 requires that
|
||||
* a subsystem-identification is at 184-187 and bytes 188-191 are zero
|
||||
* after list-directed-IPL and ccw-IPL.
|
||||
*/
|
||||
void write_subsystem_identification(void)
|
||||
{
|
||||
struct subchannel_id *schid = (struct subchannel_id *) 184;
|
||||
uint32_t *zeroes = (uint32_t *) 188;
|
||||
|
||||
*schid = blk_schid;
|
||||
*zeroes = 0;
|
||||
}
|
||||
|
||||
|
||||
void virtio_panic(const char *string)
|
||||
{
|
||||
|
@ -23,7 +39,6 @@ void virtio_panic(const char *string)
|
|||
|
||||
static void virtio_setup(uint64_t dev_info)
|
||||
{
|
||||
struct subchannel_id blk_schid = { .one = 1 };
|
||||
struct schib schib;
|
||||
int i;
|
||||
int r;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue