i386-qemu) ;;
powerpc-ieee1275) ;;
sparc64-ieee1275) ;;
- mips-qemu-mips) ;;
+ ia64-efi) ;;
- mips-yeeloong) ;;
+ mips-qemu_mips) ;;
++ mips-qemu-mips) platform=qemu_mips;;
+ mips-yeeloong) platform=loongson ;;
+ mips-fuloong) platform=loongson ;;
+ mips-loongson) ;;
+ mips-arc) ;;
*-emu) ;;
*) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;;
esac
qemu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_QEMU=1" ;;
pc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_PCBIOS=1" ;;
emu) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_EMU=1" ;;
- yeeloong) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_YEELOONG=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
- qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1" ;;
+ loongson) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_LOONGSON=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
- qemu-mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
- mips-arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_ARC=1 -DGRUB_MACHINE_ARC=1" ;;
++ qemu_mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS_QEMU_MIPS=1 -DGRUB_MACHINE_MIPS_BONITO=1" ;;
++ arc) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_ARC=1" ;;
esac
case "$target_cpu" in
mips) machine_CPPFLAGS="$machine_CPPFLAGS -DGRUB_MACHINE_MIPS=1" ;;
GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot",
"i386_multiboot", "i386_ieee1275", "x86_64_efi",
- "mips_yeeloong", "mips_qemu_mips", "sparc64_ieee1275",
- "powerpc_ieee1275" ]
+ "mips_loongson", "sparc64_ieee1275",
- "powerpc_ieee1275", "mips_arc", "ia64_efi" ]
++ "powerpc_ieee1275", "mips_arc", "ia64_efi",
++ "mips_qemu_mips" ]
GROUPS = {}
GROUPS["i386"] = [ "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", "i386_multiboot", "i386_ieee1275" ]
GROUPS["x86_64"] = [ "x86_64_efi" ]
GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"]
- GROUPS["mips"] = [ "mips_yeeloong", "mips_qemu_mips" ]
-GROUPS["mips"] = [ "mips_loongson", "mips_arc" ]
++GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ]
GROUPS["sparc64"] = [ "sparc64_ieee1275" ]
GROUPS["powerpc"] = [ "powerpc_ieee1275" ]
GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu")
# Groups based on hardware features
- GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_yeeloong", "mips_qemu_mips" ]; GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi")
- GROUPS["pci"] = GROUPS["x86"] + ["mips_yeeloong"]
-GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson"]; GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi")
++GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips"]; GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi")
+ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"]
GROUPS["usb"] = GROUPS["pci"]
# If gfxterm is main output console integrate it into kernel
for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i)
# Similar for terminfo
- GROUPS["terminfoinkernel"] = ["mips_yeeloong"] + GROUPS["ieee1275"];
-GROUPS["terminfoinkernel"] = ["mips_loongson", "mips_arc"] + GROUPS["ieee1275"];
++GROUPS["terminfoinkernel"] = ["mips_loongson", "mips_arc", "mips_qemu_mips" ] + GROUPS["ieee1275"];
GROUPS["terminfomodule"] = GRUB_PLATFORMS[:];
for i in GROUPS["terminfoinkernel"]: GROUPS["terminfomodule"].remove(i)
KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/pit.h
endif
- if COND_mips_yeeloong
+ if COND_ia64_efi
+ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h
+ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/time.h
+ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h
+ endif
+
+ if COND_mips
+ KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/kernel.h
+ endif
+
+ if COND_mips_arc
+ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
+ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arc/arc.h
+ endif
+
++if COND_mips_qemu_mips
++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h
++endif
++
+ if COND_mips_loongson
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/machine/kernel.h
KERNEL_HEADER_FILES += $(top_builddir)/include/grub/cpu/cache.h
i386_coreboot_ldflags = '-Wl,-Ttext=0x8200';
i386_multiboot_ldflags = '-Wl,-Ttext=0x8200';
i386_ieee1275_ldflags = '-Wl,-Ttext=0x10000';
- mips_yeeloong_ldflags = '-Wl,-Ttext,0x80200000';
+ mips_loongson_ldflags = '-Wl,-Ttext,0x80200000';
powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000';
sparc64_ieee1275_ldflags = '-Wl,-Ttext,0x4400';
+ mips_arc_ldflags = '-Wl,-Ttext,0x8a000000';
++ mips_qemu_mips_ldflags = '-Wl,-Ttext,0x80200000';
- mips_yeeloong_cppflags = '-DUSE_ASCII_FAILBACK';
+ mips_loongson_cppflags = '-DUSE_ASCII_FAILBACK';
i386_qemu_cppflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)';
emu_cflags = '$(CFLAGS_GNULIB)';
emu_cppflags = '$(CPPFLAGS_GNULIB)';
mips = kern/mips/cache.S;
mips = kern/mips/dl.c;
mips = kern/mips/init.c;
- mips_yeeloong = kern/mips/yeeloong/init.c;
- mips_qemu_mips = kern/mips/qemu-mips/init.c;
- mips_yeeloong = term/at_keyboard.c;
- mips_yeeloong = term/serial.c;
- mips_yeeloong = video/sm712.c;
+
++ mips_qemu_mips = kern/mips/qemu_mips/init.c;
++ mips_qemu_mips = term/ns8250.c;
++ mips_qemu_mips = term/serial.c;
++
+ mips_arc = kern/mips/arc/init.c;
+ mips_arc = term/arc/console.c;
+ mips_arc = disk/arc/arcdisk.c;
+
+ mips_loongson = term/ns8250.c;
+ mips_loongson = bus/bonito.c;
+ mips_loongson = bus/cs5536.c;
+ mips_loongson = bus/pci.c;
+ mips_loongson = kern/mips/loongson/init.c;
+ mips_loongson = term/at_keyboard.c;
+ mips_loongson = term/serial.c;
+ mips_loongson = video/sm712.c;
+ mips_loongson = video/sis315pro.c;
extra_dist = video/sm712_init.c;
- mips_yeeloong = commands/keylayouts.c;
+ mips_loongson = commands/keylayouts.c;
powerpc_ieee1275 = kern/ieee1275/init.c;
powerpc_ieee1275 = kern/powerpc/cache.S;
common = lib/xzembed/xz_dec_lzma2.c;
common = lib/xzembed/xz_dec_stream.c;
- cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed';
-
- mips_cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000';
+ cppflags = '-I$(srcdir)/lib/posix_wrap -I$(srcdir)/lib/xzembed -DGRUB_EMBED_DECOMPRESSOR=1';
objcopyflags = '-O binary';
- ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
+ mips_loongson_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
++ mips_qemu_mips_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
+ mips_arc_ldflags = '-static-libgcc -Wl,-Ttext,0x89f00000';
ldadd = '-lgcc';
cflags = '-static-libgcc';
enable = mips;
mips = boot/mips/startup_raw.S;
common = boot/decompressor/none.c;
- mips_cppflags = '-DGRUB_EMBED_DECOMPRESSOR=1 -DGRUB_MACHINE_LINK_ADDR=0x80200000';
+ cppflags = '-DGRUB_EMBED_DECOMPRESSOR=1';
objcopyflags = '-O binary';
- ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
+ mips_loongson_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
++ mips_qemu_mips_ldflags = '-static-libgcc -Wl,-Ttext,0x80100000';
+ mips_arc_ldflags = '-static-libgcc -Wl,-Ttext,0x89f00000';
ldadd = '-lgcc';
cflags = '-static-libgcc';
enable = mips;
}
}
- /* This is actualy platform-independant but used only on yeeloong and sparc. */
- #if defined (GRUB_MACHINE_MIPS_YEELOONG) || defined (GRUB_MACHINE_SPARC64)
+ /* This is actualy platform-independant but used only on loongson and sparc. */
-#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_SPARC64)
++#if defined (GRUB_MACHINE_MIPS_LOONGSON) || defined (GRUB_MACHINE_MIPS_QEMU_MIPS) || defined (GRUB_MACHINE_SPARC64)
grub_addr_t
grub_modules_get_end (void)
{
subu $t1, $t3, $t2
2:
cache 0, 0($t0)
- addiu $t1, $t1, 0xffff
+ addiu $t1, $t1, -0x4
bne $t1, $zero, 2b
- addiu $t0, $t0, 0x1
+ addiu $t0, $t0, 0x4
sync
+#endif
#include <grub/misc.h>
#include <grub/mm.h>
#include <grub/time.h>
-#include <grub/machine/kernel.h>
#include <grub/machine/memory.h>
-#include <grub/cpu/kernel.h>
++#include <grub/cpu/memory.h>
+#include <grub/memory.h>
#define RAMSIZE (*(grub_uint32_t *) ((16 << 20) - 264))
--grub_uint32_t
--grub_get_rtc (void)
--{
-- static int calln = 0;
-- return calln++;
--}
++extern void grub_serial_init (void);
++extern void grub_terminfo_init (void);
void
grub_machine_init (void)
{
-- grub_mm_init_region ((void *) GRUB_MACHINE_MEMORY_USABLE,
-- RAMSIZE - (GRUB_MACHINE_MEMORY_USABLE & 0x7fffffff));
++ grub_addr_t modend;
++
++ /* FIXME: measure this. */
++ grub_arch_cpuclock = 64000000;
++
++ modend = grub_modules_get_end ();
++ grub_mm_init_region ((void *) modend, RAMSIZE
++ - (modend - GRUB_ARCH_LOWMEMVSTART));
++
grub_install_get_time_ms (grub_rtc_get_time_ms);
++
++ grub_terminfo_init ();
++ grub_serial_init ();
}
void
bal cont
nop
- . = _start + GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE
- . = _start + GRUB_KERNEL_MIPS_LOONGSON_TOTAL_MODULE_SIZE
++ . = _start + GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE
total_module_size:
.long 0
#define GRUB_MACHINE_MEMORY_STACK_HIGH 0x80f00000
#define GRUB_MACHINE_MEMORY_USABLE 0x81000000
- #define GRUB_MACHINE_MEMORY_AVAILABLE 1
- #define GRUB_MACHINE_MEMORY_MAX_TYPE 1
- /* This one is special: it's used internally but is never reported
- by firmware. */
- #define GRUB_MACHINE_MEMORY_HOLE 2
- #define GRUB_MACHINE_MEMORY_RESERVED GRUB_MACHINE_MEMORY_HOLE
-
#ifndef ASM_FILE
-
- typedef grub_addr_t grub_phys_addr_t;
-
- static inline grub_phys_addr_t
- grub_vtop (void *a)
- {
- return ((grub_phys_addr_t) a) & 0x1fffffff;
- }
-
- static inline void *
- grub_map_memory (grub_phys_addr_t a, grub_size_t size __attribute__ ((unused)))
- {
- return (void *) (a | 0x80000000);
- }
-
- static inline void
- grub_unmap_memory (void *a __attribute__ ((unused)),
- grub_size_t size __attribute__ ((unused)))
- {
- }
-
--grub_err_t EXPORT_FUNC (grub_machine_mmap_iterate)
--(int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t));
-grub_err_t EXPORT_FUNC(grub_machine_mmap_iterate)
- (int NESTED_FUNC_ATTR (*hook) (grub_uint64_t, grub_uint64_t, grub_uint32_t));
--
static inline grub_err_t
grub_machine_mmap_register (grub_uint64_t start __attribute__ ((unused)),
grub_uint64_t size __attribute__ ((unused)),
#ifndef GRUB_MACHINE_SERIAL_HEADER
#define GRUB_MACHINE_SERIAL_HEADER 1
--#define GRUB_MACHINE_SERIAL_PORTS { 0x140003f8 }
++#define GRUB_MACHINE_SERIAL_PORTS { 0xb40003f8 }
#endif
#define KERNEL_MACHINE_TIME_HEADER 1
#include <grub/symbol.h>
--
--#define GRUB_TICKS_PER_SECOND 1000
--
--/* Return the real time in ticks. */
--grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
--
--static inline void
--grub_cpu_idle(void)
--{
--}
++#include <grub/cpu/time.h>
#endif /* ! KERNEL_MACHINE_TIME_HEADER */
#define GRUB_KERNEL_POWERPC_IEEE1275_LINK_ALIGN 4
#define GRUB_KERNEL_POWERPC_IEEE1275_LINK_ADDR 0x200000
- #define GRUB_KERNEL_MIPS_YEELOONG_LINK_ADDR 0x80200000
+ #define GRUB_KERNEL_MIPS_LOONGSON_LINK_ADDR 0x80200000
- #define GRUB_KERNEL_MIPS_YEELOONG_LINK_ALIGN 32
+ #define GRUB_KERNEL_MIPS_LOONGSON_LINK_ALIGN 32
- #define GRUB_KERNEL_MIPS_COMPRESSED_SIZE 0x8
- #define GRUB_KERNEL_MIPS_UNCOMPRESSED_SIZE 0xc
+ #define GRUB_KERNEL_MIPS_LOONGSON_COMPRESSED_SIZE 0x8
+ #define GRUB_KERNEL_MIPS_LOONGSON_UNCOMPRESSED_SIZE 0xc
- #define GRUB_KERNEL_MIPS_YEELOONG_COMPRESSED_SIZE GRUB_KERNEL_MIPS_COMPRESSED_SIZE
- #define GRUB_KERNEL_MIPS_YEELOONG_UNCOMPRESSED_SIZE GRUB_KERNEL_MIPS_UNCOMPRESSED_SIZE
+ #define GRUB_KERNEL_MIPS_LOONGSON_TOTAL_MODULE_SIZE 0x08
+ #define GRUB_KERNEL_MIPS_LOONGSON_PREFIX 0x0c
+ #define GRUB_KERNEL_MIPS_LOONGSON_PREFIX_END 0x54
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_COMPRESSED_SIZE GRUB_KERNEL_MIPS_COMPRESSED_SIZE
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_UNCOMPRESSED_SIZE GRUB_KERNEL_MIPS_UNCOMPRESSED_SIZE
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ADDR 0x80200000
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ALIGN 32
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_COMPRESSED_SIZE 0x8
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_UNCOMPRESSED_SIZE 0xc
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_TOTAL_MODULE_SIZE 0x08
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX 0x0c
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END 0x54
+
- #define GRUB_KERNEL_MIPS_TOTAL_MODULE_SIZE 0x08
- #define GRUB_KERNEL_MIPS_PREFIX 0x0c
- #define GRUB_KERNEL_MIPS_PREFIX_END 0x54
+ #define GRUB_KERNEL_MIPS_ARC_LINK_ADDR 0x8a000000
- #define GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE GRUB_KERNEL_MIPS_TOTAL_MODULE_SIZE
- #define GRUB_KERNEL_MIPS_YEELOONG_PREFIX GRUB_KERNEL_MIPS_PREFIX
- #define GRUB_KERNEL_MIPS_YEELOONG_PREFIX_END GRUB_KERNEL_MIPS_PREFIX_END
+ #define GRUB_KERNEL_MIPS_ARC_LINK_ALIGN 32
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_TOTAL_MODULE_SIZE GRUB_KERNEL_MIPS_TOTAL_MODULE_SIZE
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX GRUB_KERNEL_MIPS_PREFIX
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END GRUB_KERNEL_MIPS_PREFIX_END
+ #define GRUB_KERNEL_MIPS_ARC_COMPRESSED_SIZE 0x8
+ #define GRUB_KERNEL_MIPS_ARC_UNCOMPRESSED_SIZE 0xc
+
+ #define GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE 0x08
+ #define GRUB_KERNEL_MIPS_ARC_PREFIX 0x0c
+ #define GRUB_KERNEL_MIPS_ARC_PREFIX_END 0x54
/* The offset of GRUB_PREFIX. */
#define GRUB_KERNEL_I386_EFI_PREFIX 0x8
#define GRUB_KERNEL_POWERPC_IEEE1275_MOD_ALIGN 0x1000
- #define GRUB_KERNEL_MIPS_MOD_ALIGN 0x1
- #define GRUB_KERNEL_MIPS_YEELOONG_MOD_ALIGN GRUB_KERNEL_MIPS_MOD_ALIGN
- #define GRUB_KERNEL_MIPS_QEMU_MIPS_MOD_ALIGN GRUB_KERNEL_MIPS_MOD_ALIGN
+ #define GRUB_KERNEL_MIPS_LOONGSON_MOD_ALIGN 0x1
+ #define GRUB_KERNEL_MIPS_ARC_MOD_ALIGN 0x1
++#define GRUB_KERNEL_MIPS_QEMU_MIPS_MOD_ALIGN 0x1
/* Minimal gap between _end and the start of the modules. It's a hack
for PowerMac to prevent "CLAIM failed" error. The real fix is to
.install_bsd_part = TARGET_NO_FIELD,
.link_addr = GRUB_KERNEL_SPARC64_IEEE1275_LINK_ADDR
},
+ {
+ .dirname = "ia64-efi",
+ .names = {"ia64-efi", NULL},
+ .voidp_sizeof = 8,
+ .bigendian = 0,
+ .id = IMAGE_EFI,
+ .flags = PLATFORM_FLAGS_NONE,
+ .prefix = GRUB_KERNEL_IA64_EFI_PREFIX,
+ .prefix_end = GRUB_KERNEL_IA64_EFI_PREFIX_END,
+ .raw_size = 0,
+ .total_module_size = TARGET_NO_FIELD,
+ .kernel_image_size = TARGET_NO_FIELD,
+ .compressed_size = TARGET_NO_FIELD,
+ .section_align = GRUB_PE32_SECTION_ALIGNMENT,
+ .vaddr_offset = EFI64_HEADER_SIZE,
+ .install_dos_part = TARGET_NO_FIELD,
+ .install_bsd_part = TARGET_NO_FIELD,
+ .pe_target = GRUB_PE32_MACHINE_IA64,
+ .elf_target = EM_IA_64,
+ },
+ {
+ .dirname = "mips-arc",
+ .names = {"mips-arc", NULL},
+ .voidp_sizeof = 4,
+ .bigendian = 1,
+ .id = IMAGE_MIPS_ARC,
+ .flags = PLATFORM_FLAGS_DECOMPRESSORS,
+ .prefix = GRUB_KERNEL_MIPS_ARC_PREFIX,
+ .prefix_end = GRUB_KERNEL_MIPS_ARC_PREFIX_END,
+ .raw_size = 0,
+ .total_module_size = GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE,
+ .compressed_size = TARGET_NO_FIELD,
+ .kernel_image_size = TARGET_NO_FIELD,
+ .section_align = 1,
+ .vaddr_offset = 0,
+ .install_dos_part = TARGET_NO_FIELD,
+ .install_bsd_part = TARGET_NO_FIELD,
+ .link_addr = GRUB_KERNEL_MIPS_ARC_LINK_ADDR,
+ .elf_target = EM_MIPS,
+ .link_align = GRUB_KERNEL_MIPS_ARC_LINK_ALIGN,
+ .default_compression = COMPRESSION_NONE
+ },
++ {
++ .dirname = "mips-qemu_mips",
++ .names = { "mips-qemu_mips-elf", NULL },
++ .voidp_sizeof = 4,
++ .bigendian = 0,
++ .id = IMAGE_LOONGSON_ELF,
++ .flags = PLATFORM_FLAGS_DECOMPRESSORS,
++ .prefix = GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX,
++ .prefix_end = GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END,
++ .raw_size = 0,
++ .total_module_size = GRUB_KERNEL_MIPS_QEMU_MIPS_TOTAL_MODULE_SIZE,
++ .compressed_size = TARGET_NO_FIELD,
++ .kernel_image_size = TARGET_NO_FIELD,
++ .section_align = 1,
++ .vaddr_offset = 0,
++ .install_dos_part = TARGET_NO_FIELD,
++ .install_bsd_part = TARGET_NO_FIELD,
++ .link_addr = GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ADDR,
++ .elf_target = EM_MIPS,
++ .link_align = GRUB_KERNEL_MIPS_QEMU_MIPS_LINK_ALIGN,
++ .default_compression = COMPRESSION_NONE
++ },
};
#define grub_target_to_host32(x) (grub_target_to_host32_real (image_target, (x)))