Revision 3c178e72 hw/sun4m.c

b/hw/sun4m.c
299 299
    int linux_boot;
300 300
    unsigned int i;
301 301
    long initrd_size, kernel_size;
302
    uint8_t *ptr;
302 303

  
303 304
    linux_boot = (kernel_filename != NULL);
304 305

  
......
341 342
        }
342 343
        if (initrd_size > 0) {
343 344
            for (i = 0; i < 64 * TARGET_PAGE_SIZE; i += TARGET_PAGE_SIZE) {
344
                if (ldl_phys(KERNEL_LOAD_ADDR + i) == 0x48647253) { // HdrS
345
                    stl_phys(KERNEL_LOAD_ADDR + i + 16, INITRD_LOAD_ADDR);
346
                    stl_phys(KERNEL_LOAD_ADDR + i + 20, initrd_size);
345
                ptr = rom_ptr(KERNEL_LOAD_ADDR + i);
346
                if (ldl_p(ptr) == 0x48647253) { // HdrS
347
                    stl_p(ptr + 16, INITRD_LOAD_ADDR);
348
                    stl_p(ptr + 20, initrd_size);
347 349
                    break;
348 350
                }
349 351
            }
......
875 877
    fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size);
876 878
    if (kernel_cmdline) {
877 879
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, CMDLINE_ADDR);
878
        pstrcpy_targphys(CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
880
        pstrcpy_targphys("cmdline", CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
879 881
    } else {
880 882
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0);
881 883
    }
......
1457 1459
    fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size);
1458 1460
    if (kernel_cmdline) {
1459 1461
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, CMDLINE_ADDR);
1460
        pstrcpy_targphys(CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
1462
        pstrcpy_targphys("cmdline", CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
1461 1463
    } else {
1462 1464
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0);
1463 1465
    }
......
1645 1647
    fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_SIZE, kernel_size);
1646 1648
    if (kernel_cmdline) {
1647 1649
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, CMDLINE_ADDR);
1648
        pstrcpy_targphys(CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
1650
        pstrcpy_targphys("cmdline", CMDLINE_ADDR, TARGET_PAGE_SIZE, kernel_cmdline);
1649 1651
    } else {
1650 1652
        fw_cfg_add_i32(fw_cfg, FW_CFG_KERNEL_CMDLINE, 0);
1651 1653
    }

Also available in: Unified diff