RISC-V: Add to build system

This patch adds support for RISC-V to the grub build system. With this
patch, I can successfully build grub on RISC-V as a UEFI application.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Alexander Graf 2019-02-12 11:31:07 +01:00 committed by Vincent Batts
parent 1edef90cf9
commit 09d8eedbba
22 changed files with 201 additions and 21 deletions

View file

@ -237,7 +237,8 @@ union component64
};
};
#if defined (__powerpc__) || defined (__arm__) || defined(__mips__)
#if defined (__powerpc__) || defined (__arm__) || defined(__mips__) || \
(defined(__riscv) && (__riscv_xlen == 32))
/* Based on libgcc2.c from gcc suite. */
grub_uint64_t
@ -343,7 +344,8 @@ __ucmpdi2 (grub_uint64_t a, grub_uint64_t b)
#endif
#if defined (__powerpc__) || defined(__mips__) || defined(__sparc__) || defined(__arm__)
#if defined (__powerpc__) || defined(__mips__) || defined(__sparc__) || \
defined(__arm__) || defined(__riscv)
/* Based on libgcc2.c from gcc suite. */
grub_uint32_t

View file

@ -666,7 +666,7 @@ grub_efi_mm_init (void)
2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE));
}
#if defined (__aarch64__) || defined (__arm__)
#if defined (__aarch64__) || defined (__arm__) || defined (__riscv)
grub_err_t
grub_efi_get_ram_base(grub_addr_t *base_addr)
{

View file

@ -25,5 +25,11 @@ grub_arch_sync_caches (void *address, grub_size_t len)
return _flush_cache (address, len, 0);
}
#elif defined(__riscv)
void
grub_arch_sync_caches (void *address, grub_size_t len)
{
}
#endif

View file

@ -8,7 +8,8 @@
#include "../sparc64/cache.S"
#elif defined(__powerpc__)
#include "../powerpc/cache.S"
#elif defined(__ia64__) || defined(__arm__) || defined(__aarch64__) || defined(__mips__)
#elif defined(__ia64__) || defined(__arm__) || defined(__aarch64__) || \
defined(__mips__) || defined(__riscv)
#else
#error "No target cpu type is defined"
#endif

View file

@ -24,6 +24,8 @@
#elif defined(__aarch64__)
#include "../arm64/dl_helper.c"
#include "../arm64/dl.c"
#elif defined(__riscv)
#include "../riscv/dl.c"
#else
#error "No target cpu type is defined"
#endif