@@ -206,7 +206,7 @@ static void run_ipl2(SubChannelId schid, uint16_t cutype, uint32_t addr)
*/
void dasd_ipl(SubChannelId schid, uint16_t cutype)
{
- PSWLegacy *pswl = (PSWLegacy *) 0x00;
+ unsigned long *pswl = 0x0;
uint32_t ipl2_addr;
/* Construct Read IPL CCW and run it to read IPL1 from boot disk */
@@ -229,7 +229,6 @@ void dasd_ipl(SubChannelId schid, uint16_t cutype)
run_ipl2(schid, cutype, ipl2_addr);
/* Transfer control to the guest operating system */
- pswl->mask |= PSW_MASK_EAMODE; /* Force z-mode */
- pswl->addr |= PSW_MASK_BAMODE; /* ... */
+ *pswl |= PSW_MASK_64; /* Force 64 bit addressing */
jump_to_low_kernel();
}
@@ -29,7 +29,7 @@ _Static_assert(sizeof(struct PSWLegacy) == 8, "PSWLegacy size incorrect");
#define PSW_MASK_WAIT 0x0002000000000000ULL
#define PSW_MASK_EAMODE 0x0000000100000000ULL
#define PSW_MASK_BAMODE 0x0000000080000000ULL
-#define PSW_MASK_ZMODE (PSW_MASK_EAMODE | PSW_MASK_BAMODE)
+#define PSW_MASK_64 (PSW_MASK_EAMODE | PSW_MASK_BAMODE)
/* Low core mapping */
typedef struct LowCore {