050abaeaa8
* conf/Makefile.common (CFLAGS_PLATFORM): Add -mflush-func =grub_cpu_flush_cache on all mips and not only yeeloong. * configure.ac (COND_mips): New conditional. * grub-core/Makefile.am (KERNEL_HEADER_FILES): Add libgcc on all platforms. * grub-core/kern/emu/cache.S (__mips__): Use _flush_cache. * grub-core/kern/emu/full.c (grub_arch_dl_init_linker) [GRUB_LINKER_HAVE_INIT]: New function. (grub_emu_post_init): Likewise. * grub-core/kern/emu/lite.c (grub_emu_post_init): Likewise. * grub-core/kern/emu/main.c: Use grub_emu_post_init. * include/grub/cache.h (_mips): Include mips/cache.h. * include/grub/disk.h [GRUB_UTIL || GRUB_MACHINE_EMU]: Add missing LVM and RAID prototypes. * include/grub/emu/misc.h (grub_emu_post_init): New proto. * include/grub/mips/time.h (grub_cpu_idle) [GRUB_MACHINE_EMU]: New function.
28 lines
647 B
ArmAsm
28 lines
647 B
ArmAsm
#ifndef GRUB_MACHINE_EMU
|
|
#error "This source is only meant for grub-emu platform"
|
|
#endif
|
|
|
|
#if defined(__i386__) || defined(__x86_64__)
|
|
/* Nothing is necessary. */
|
|
#elif defined(__sparc__)
|
|
#include "../sparc64/cache.S"
|
|
#elif defined(__mips__)
|
|
/* On MIPS we must go through standard functions. */
|
|
#include <grub/symbol.h>
|
|
|
|
FUNCTION (grub_cpu_flush_cache)
|
|
FUNCTION (grub_arch_sync_caches)
|
|
.set nomacro
|
|
.set noreorder
|
|
lui $t0, %hi(_flush_cache)
|
|
addui $t0, $t0, %lo(_flush_cache)
|
|
move $a3, $zero
|
|
jr $t0
|
|
nop
|
|
.set reorder
|
|
.set macro
|
|
#elif defined(__powerpc__)
|
|
#include "../powerpc/cache.S"
|
|
#else
|
|
#error "No target cpu type is defined"
|
|
#endif
|