Revision ca20cf32 hw/ppc_newworld.c

b/hw/ppc_newworld.c
36 36
#include "escc.h"
37 37
#include "openpic.h"
38 38
#include "ide.h"
39
#include "loader.h"
40
#include "elf.h"
39 41

  
40 42
#define MAX_IDE_BUS 2
41 43
#define VGA_BIOS_SIZE 65536
......
145 147

  
146 148
    /* Load OpenBIOS (ELF) */
147 149
    if (filename) {
148
        bios_size = load_elf(filename, 0, NULL, NULL, NULL);
150
        bios_size = load_elf(filename, 0, NULL, NULL, NULL, 1, ELF_MACHINE, 0);
151

  
149 152
        qemu_free(filename);
150 153
    } else {
151 154
        bios_size = -1;
......
187 190

  
188 191
    if (linux_boot) {
189 192
        uint64_t lowaddr = 0;
193
        int bswap_needed;
194

  
195
#ifdef BSWAP_NEEDED
196
        bswap_needed = 1;
197
#else
198
        bswap_needed = 0;
199
#endif
190 200
        kernel_base = KERNEL_LOAD_ADDR;
191 201

  
192 202
        /* Now we can load the kernel. The first step tries to load the kernel
193 203
           supposing PhysAddr = 0x00000000. If that was wrong the kernel is
194 204
           loaded again, the new PhysAddr being computed from lowaddr. */
195
        kernel_size = load_elf(kernel_filename, kernel_base, NULL, &lowaddr, NULL);
205
        kernel_size = load_elf(kernel_filename, kernel_base, NULL, &lowaddr, NULL,
206
                               1, ELF_MACHINE, 0);
196 207
        if (kernel_size > 0 && lowaddr != KERNEL_LOAD_ADDR) {
197 208
            kernel_size = load_elf(kernel_filename, (2 * kernel_base) - lowaddr,
198
                                   NULL, NULL, NULL);
209
                                   NULL, NULL, NULL, 1, ELF_MACHINE, 0);
199 210
        }
200 211
        if (kernel_size < 0)
201 212
            kernel_size = load_aout(kernel_filename, kernel_base,
202
                                    ram_size - kernel_base);
213
                                    ram_size - kernel_base, bswap_needed,
214
                                    TARGET_PAGE_SIZE);
203 215
        if (kernel_size < 0)
204 216
            kernel_size = load_image_targphys(kernel_filename,
205 217
                                              kernel_base,

Also available in: Unified diff