build: Remove custom __riscv64 define in favour of built-in __riscv define
We do not support non-64-bit RISC-V anyways
diff --git a/common/GNUmakefile b/common/GNUmakefile
index ac08c763..27665d18 100644
--- a/common/GNUmakefile
+++ b/common/GNUmakefile
@@ -152,8 +152,7 @@ ifeq ($(TARGET),uefi-riscv64)
-I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc' \
-I'$(call SHESCAPE,$(BUILDDIR))/limine-efi/inc/riscv64' \
$(CPPFLAGS_FOR_TARGET) \
- -DUEFI \
- -D__riscv64
+ -DUEFI
endif
ifeq ($(TARGET),uefi-loongarch64)
diff --git a/common/lib/config.c b/common/lib/config.c
index b13644be..633d218f 100644
--- a/common/lib/config.c
+++ b/common/lib/config.c
@@ -225,7 +225,7 @@ skip_loop:
}
#elif defined (__aarch64__)
strcpy(arch_macro->value, "aarch64");
-#elif defined (__riscv64)
+#elif defined (__riscv)
strcpy(arch_macro->value, "riscv64");
#elif defined (__loongarch64)
strcpy(arch_macro->value, "loongarch64");
diff --git a/common/lib/elf.c b/common/lib/elf.c
index 3720d9d7..6812ab1e 100644
--- a/common/lib/elf.c
+++ b/common/lib/elf.c
@@ -164,7 +164,7 @@ static bool elf64_validate(struct elf64_hdr *hdr) {
if (hdr->machine != ARCH_AARCH64) {
panic(true, "elf: Not an aarch64 ELF file.");
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
if (hdr->machine != ARCH_RISCV && hdr->ident[EI_CLASS] == ELFCLASS64) {
panic(true, "elf: Not a riscv64 ELF file.");
}
@@ -473,7 +473,7 @@ end_of_pt_segment:
case R_X86_64_NONE:
#elif defined (__aarch64__)
case R_AARCH64_NONE:
-#elif defined (__riscv64)
+#elif defined (__riscv)
case R_RISCV_NONE:
#elif defined (__loongarch64)
case R_LARCH_NONE:
@@ -485,7 +485,7 @@ end_of_pt_segment:
case R_X86_64_RELATIVE:
#elif defined (__aarch64__)
case R_AARCH64_RELATIVE:
-#elif defined (__riscv64)
+#elif defined (__riscv)
case R_RISCV_RELATIVE:
#elif defined (__loongarch64)
case R_LARCH_RELATIVE:
@@ -505,7 +505,7 @@ end_of_pt_segment:
#elif defined (__aarch64__)
case R_AARCH64_GLOB_DAT:
case R_AARCH64_JUMP_SLOT:
-#elif defined (__riscv64)
+#elif defined (__riscv)
case R_RISCV_JUMP_SLOT:
#elif defined (__loongarch64)
case R_LARCH_JUMP_SLOT:
@@ -530,7 +530,7 @@ end_of_pt_segment:
case R_X86_64_64:
#elif defined (__aarch64__)
case R_AARCH64_ABS64:
-#elif defined (__riscv64)
+#elif defined (__riscv)
case R_RISCV_64:
#elif defined (__loongarch64)
case R_LARCH_64:
diff --git a/common/lib/misc.c b/common/lib/misc.c
index 8bbbec74..88bea2de 100644
--- a/common/lib/misc.c
+++ b/common/lib/misc.c
@@ -251,7 +251,7 @@ retry:
asm volatile ("cli" ::: "memory");
#elif defined (__aarch64__)
asm volatile ("msr daifset, #15" ::: "memory");
-#elif defined (__riscv64)
+#elif defined (__riscv)
asm volatile ("csrci sstatus, 0x2" ::: "memory");
#elif defined (__loongarch64)
asm volatile ("csrxchg $r0, %0, 0x0" :: "r" (0x4) : "memory");
diff --git a/common/lib/misc.h b/common/lib/misc.h
index ba5e72d2..9005b0b7 100644
--- a/common/lib/misc.h
+++ b/common/lib/misc.h
@@ -10,7 +10,7 @@
#include <lib/libc.h>
#if defined (UEFI)
# include <efi.h>
-# if defined (__riscv64)
+# if defined (__riscv)
# include <protocol/riscv/efiboot.h>
# endif
#endif
@@ -90,7 +90,7 @@ noreturn void common_spinup(void *fnptr, int args, ...);
noreturn void enter_in_el1(uint64_t entry, uint64_t sp, uint64_t sctlr,
uint64_t mair, uint64_t tcr, uint64_t ttbr0,
uint64_t ttbr1, uint64_t target_x0);
-#elif defined (__riscv64)
+#elif defined (__riscv)
noreturn void riscv_spinup(uint64_t entry, uint64_t sp, uint64_t satp, uint64_t direct_map_offset);
#if defined (UEFI)
RISCV_EFI_BOOT_PROTOCOL *get_riscv_boot_protocol(void);
diff --git a/common/lib/panic.s2.c b/common/lib/panic.s2.c
index dcd76979..817b651e 100644
--- a/common/lib/panic.s2.c
+++ b/common/lib/panic.s2.c
@@ -76,7 +76,7 @@ noreturn void panic(bool allow_menu, const char *fmt, ...) {
for (;;) {
#if defined (__x86_64__) || defined (__i386__)
asm ("hlt");
-#elif defined (__aarch64__) || defined (__riscv64)
+#elif defined (__aarch64__) || defined (__riscv)
asm ("wfi");
#elif defined (__loongarch64)
asm ("idle 0");
diff --git a/common/lib/trace.s2.c b/common/lib/trace.s2.c
index 56885e9a..2018c814 100644
--- a/common/lib/trace.s2.c
+++ b/common/lib/trace.s2.c
@@ -54,7 +54,7 @@ void print_stacktrace(size_t *base_ptr) {
"movq %%rbp, %0"
#elif defined (__aarch64__)
"mov %0, x29"
-#elif defined (__riscv64)
+#elif defined (__riscv)
"mv %0, fp; addi %0, %0, -16"
#elif defined (__loongarch64)
"move %0, $fp; addi.d %0, %0, -16"
diff --git a/common/menu.c b/common/menu.c
index 8f17e56a..c8a069c1 100644
--- a/common/menu.c
+++ b/common/menu.c
@@ -808,7 +808,7 @@ noreturn void _menu(bool first_run) {
menu_branding = "Limine " LIMINE_VERSION " ("
#if defined (__x86_64__)
"x86-64"
-#elif defined (__riscv64)
+#elif defined (__riscv)
"riscv64"
#elif defined (__aarch64__)
"aarch64"
diff --git a/common/mm/vmm.c b/common/mm/vmm.c
index 9ce4e8f6..80d23312 100644
--- a/common/mm/vmm.c
+++ b/common/mm/vmm.c
@@ -243,7 +243,7 @@ level4:
pml1[pml1_entry] = (pt_entry_t)(phys_addr | real_flags | PT_FLAG_4K_PAGE);
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
#define PT_FLAG_VALID ((uint64_t)1 << 0)
#define PT_FLAG_READ ((uint64_t)1 << 1)
diff --git a/common/mm/vmm.h b/common/mm/vmm.h
index 8adea18a..00fe07b0 100644
--- a/common/mm/vmm.h
+++ b/common/mm/vmm.h
@@ -83,7 +83,7 @@ void vmm_assert_4k_pages(void);
pagemap_t new_pagemap(int lv);
void map_page(pagemap_t pagemap, uint64_t virt_addr, uint64_t phys_addr, uint64_t flags, enum page_size page_size);
-#elif defined (__riscv64)
+#elif defined (__riscv)
// We use fake flags here because these don't properly map onto the
// RISC-V flags.
diff --git a/common/protos/limine.c b/common/protos/limine.c
index ee25bf91..0c0a8669 100644
--- a/common/protos/limine.c
+++ b/common/protos/limine.c
@@ -288,7 +288,7 @@ extern symbol limine_spinup_32;
| ((uint64_t)1 << 8) /* TTBR0 Inner WB RW-Allocate */ \
| ((uint64_t)(tsz) << 0)) /* Address bits in TTBR0 */
-#elif defined (__riscv64)
+#elif defined (__riscv)
#elif defined (__loongarch64)
#else
#error Unknown architecture
@@ -612,7 +612,7 @@ noreturn void limine_load(char *config, char *cmdline) {
goto hhdm_fail;
}
// TODO(qookie): aarch64 also has optional 5 level paging when using 4K pages
-#elif defined (__riscv64)
+#elif defined (__riscv)
max_supported_paging_mode = vmm_max_paging_mode();
min_supported_paging_mode = PAGING_MODE_RISCV_SV39;
if (hhdm_span_top >= (uint64_t)1 << (paging_mode_va_bits(min_supported_paging_mode) - 2)) {
@@ -668,7 +668,7 @@ hhdm_fail:
} else if (strcasecmp(user_max_paging_mode_s, "5level") == 0) {
user_max_paging_mode = PAGING_MODE_AARCH64_5LVL;
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
if (strcasecmp(user_max_paging_mode_s, "sv39") == 0) {
user_max_paging_mode = PAGING_MODE_RISCV_SV39;
} else if (strcasecmp(user_max_paging_mode_s, "sv48") == 0) {
@@ -707,7 +707,7 @@ hhdm_fail:
} else if (strcasecmp(user_min_paging_mode_s, "5level") == 0) {
user_min_paging_mode = PAGING_MODE_AARCH64_5LVL;
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
if (strcasecmp(user_min_paging_mode_s, "sv39") == 0) {
user_min_paging_mode = PAGING_MODE_RISCV_SV39;
} else if (strcasecmp(user_min_paging_mode_s, "sv48") == 0) {
@@ -744,7 +744,7 @@ hhdm_fail:
#if defined (__x86_64__) || defined (__i386__)
paging_mode = PAGING_MODE_X86_64_4LVL;
-#elif defined (__riscv64)
+#elif defined (__riscv)
paging_mode = max_supported_paging_mode >= PAGING_MODE_RISCV_SV48 ? PAGING_MODE_RISCV_SV48 : PAGING_MODE_RISCV_SV39;
#elif defined (__aarch64__)
paging_mode = PAGING_MODE_AARCH64_4LVL;
@@ -752,7 +752,7 @@ hhdm_fail:
paging_mode = PAGING_MODE_LOONGARCH64_4LVL;
#endif
-#if defined (__riscv64)
+#if defined (__riscv)
#define paging_mode_limine_to_vmm(x) (PAGING_MODE_RISCV_SV39 + (x))
#define paging_mode_vmm_to_limine(x) ((x) - PAGING_MODE_RISCV_SV39)
#else
@@ -1362,7 +1362,7 @@ FEAT_START
smp_info = init_smp(&cpu_count, &bsp_mpidr,
pagemap, LIMINE_MAIR(fb_attr), LIMINE_TCR(tsz, pa), LIMINE_SCTLR,
direct_map_offset);
-#elif defined (__riscv64)
+#elif defined (__riscv)
smp_info = init_smp(&cpu_count, pagemap, direct_map_offset);
#elif defined (__loongarch64)
cpu_count = 0;
@@ -1384,7 +1384,7 @@ FEAT_START
if (smp_info[i].mpidr == bsp_mpidr) {
continue;
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
if (smp_info[i].hartid == bsp_hartid) {
continue;
}
@@ -1405,7 +1405,7 @@ FEAT_START
smp_response->bsp_lapic_id = bsp_lapic_id;
#elif defined (__aarch64__)
smp_response->bsp_mpidr = bsp_mpidr;
-#elif defined (__riscv64)
+#elif defined (__riscv)
smp_response->bsp_hartid = bsp_hartid;
#elif defined (__loongarch64)
#else
@@ -1535,7 +1535,7 @@ FEAT_END
(uint64_t)pagemap.top_level[0],
(uint64_t)pagemap.top_level[1],
direct_map_offset);
-#elif defined (__riscv64)
+#elif defined (__riscv)
uint64_t reported_stack = reported_addr(stack);
uint64_t satp = make_satp(pagemap.paging_mode, pagemap.top_level);
diff --git a/common/protos/linux_risc.c b/common/protos/linux_risc.c
index 607f58e0..c95e24ea 100644
--- a/common/protos/linux_risc.c
+++ b/common/protos/linux_risc.c
@@ -1,4 +1,4 @@
-#if defined(__riscv64) || defined(__aarch64__)
+#if defined(__riscv) || defined(__aarch64__)
#include <stdint.h>
#include <stddef.h>
@@ -44,7 +44,7 @@ struct linux_efi_memreserve {
// End of Linux code
-#if defined(__riscv64)
+#if defined(__riscv)
#define LINUX_HEADER_MAGIC2 0x05435352
#define LINUX_HEADER_MAJOR_VER(ver) (((ver) >> 16) & 0xffff)
#define LINUX_HEADER_MINOR_VER(ver) (((ver) >> 0) & 0xffff)
@@ -251,7 +251,7 @@ noreturn void linux_load(char *config, char *cmdline) {
}
// Version fields are RV-specific
-#if defined(__riscv64)
+#if defined(__riscv)
printv("linux: boot protocol version %d.%d\n",
LINUX_HEADER_MAJOR_VER(header.version),
LINUX_HEADER_MINOR_VER(header.version));
@@ -274,7 +274,7 @@ noreturn void linux_load(char *config, char *cmdline) {
panic(true, "linux: failed to prepare the device tree blob");
}
-#if defined(__riscv64)
+#if defined(__riscv)
printv("linux: bsp hart %d, device tree blob at %x\n", bsp_hartid, dtb);
void (*kernel_entry)(uint64_t hartid, uint64_t dtb) = kernel_base;
diff --git a/common/sys/cpu.h b/common/sys/cpu.h
index 2ea89c54..2c12bdc7 100644
--- a/common/sys/cpu.h
+++ b/common/sys/cpu.h
@@ -281,7 +281,7 @@ static inline int current_el(void) {
return v;
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
static inline uint64_t rdtsc(void) {
uint64_t v;
diff --git a/common/sys/smp.c b/common/sys/smp.c
index f02f8f77..d9b52c9e 100644
--- a/common/sys/smp.c
+++ b/common/sys/smp.c
@@ -14,7 +14,7 @@
#include <mm/mtrr.h>
#define LIMINE_NO_POINTERS
#include <limine.h>
-#if defined (__riscv64)
+#if defined (__riscv)
#include <sys/sbi.h>
#endif
#if defined (__aarch64__)
@@ -710,7 +710,7 @@ struct limine_smp_info *init_smp(size_t *cpu_count,
return NULL;
}
-#elif defined (__riscv64)
+#elif defined (__riscv)
struct trampoline_passed_info {
uint64_t smp_tpl_booted_flag;
diff --git a/common/sys/smp.h b/common/sys/smp.h
index b0269f8a..11883135 100644
--- a/common/sys/smp.h
+++ b/common/sys/smp.h
@@ -29,7 +29,7 @@ struct limine_smp_info *init_smp(size_t *cpu_count,
uint64_t sctlr,
uint64_t hhdm_offset);
-#elif defined (__riscv64)
+#elif defined (__riscv)
struct limine_smp_info *init_smp(size_t *cpu_count,
pagemap_t pagemap,
