From: "Jason J. Herne" <jjhe...@linux.vnet.ibm.com> The boot method is different depending on which device type we are booting from. Let's examine the control unit type to determine if we're a virtio device. We'll eventually add a case to check for a real dasd device here as well.
Signed-off-by: Jason J. Herne <jjhe...@linux.vnet.ibm.com> Signed-off-by: Jason J. Herne <jjhe...@linux.ibm.com> --- pc-bios/s390-ccw/main.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pc-bios/s390-ccw/main.c b/pc-bios/s390-ccw/main.c index 20c30c6..e4236c0 100644 --- a/pc-bios/s390-ccw/main.c +++ b/pc-bios/s390-ccw/main.c @@ -204,9 +204,16 @@ int main(void) cio_setup(); boot_setup(); find_boot_device(); + enable_subchannel(blk_schid); - virtio_setup(); - zipl_load(); /* no return */ + switch (cu_type(blk_schid)) { + case 0x3832: /* Virtio device */ + virtio_setup(); + zipl_load(); /* no return */ + break; + default: + panic("Attempting to boot from unexpected device type\n"); + } panic("Failed to load OS from hard disk\n"); return 0; /* make compiler happy */ -- 2.7.4