Revision fe270d04 hw/s390-virtio.c

b/hw/s390-virtio.c
52 52
#define INITRD_PARM_SIZE                0x010410UL
53 53
#define PARMFILE_START                  0x001000UL
54 54

  
55
#define ZIPL_START			0x009000UL
56
#define ZIPL_LOAD_ADDR			0x009000UL
57
#define ZIPL_FILENAME			"s390-zipl.rom"
58

  
55 59
#define MAX_BLK_DEVS                    10
56 60

  
57 61
static VirtIOS390Bus *s390_bus;
......
188 192

  
189 193
        env->psw.addr = KERN_IMAGE_START;
190 194
        env->psw.mask = 0x0000000180000000ULL;
195
    } else {
196
        ram_addr_t bios_size = 0;
197
        char *bios_filename;
198

  
199
        /* Load zipl bootloader */
200
        if (bios_name == NULL) {
201
            bios_name = ZIPL_FILENAME;
202
        }
203

  
204
        bios_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name);
205
        bios_size = load_image(bios_filename, qemu_get_ram_ptr(ZIPL_LOAD_ADDR));
206

  
207
        if ((long)bios_size < 0) {
208
            hw_error("could not load bootloader '%s'\n", bios_name);
209
        }
210

  
211
        if (bios_size > 4096) {
212
            hw_error("stage1 bootloader is > 4k\n");
213
        }
214

  
215
        env->psw.addr = ZIPL_START;
216
        env->psw.mask = 0x0000000180000000ULL;
191 217
    }
192 218

  
193 219
    if (initrd_filename) {

Also available in: Unified diff