Lays groundword for Rv64i extension
Some base files had to be modified to support 64-bit architecture as well as the Makefile to load 64-bit words into memory
This commit is contained in:
8
Makefile
8
Makefile
@@ -46,10 +46,11 @@ MEM_TESTS = $(addprefix test-, $(addprefix $(MEM_DIR)/, $(addsuffix .mem, $(base
|
||||
PREFIX := $(shell command -v riscv64-unknown-elf-gcc >/dev/null 2>&1 && echo riscv64-unknown-elf- || echo /matieres/3MMFMN/riscv32/bin/riscv32-unknown-elf-)
|
||||
CC := $(PREFIX)gcc
|
||||
OBJDUMP := $(PREFIX)objdump
|
||||
OBJCOPY := $(PREFIX)objcopy
|
||||
OBTOMEM := common/objtomem.awk
|
||||
|
||||
## Flags
|
||||
ASFLAGS :=-march=rv32i -mabi=ilp32 -ffreestanding -nostdlib -T $(BENCH_DIR)/link.ld
|
||||
ASFLAGS :=-march=rv64i -mabi=lp64 -ffreestanding -nostdlib -T $(BENCH_DIR)/link.ld
|
||||
CFLAGS :=$(ASFLAGS)
|
||||
ELFFLAGS :=$(ASFLAGS) $(MEM_DIR)/crt.o -Os -fno-unroll-loops
|
||||
ODFLAGS :=-j .text -j .rodata -j .data -s
|
||||
@@ -70,7 +71,10 @@ $(MEM_DIR)/%.elf: $(BENCH_DIR)/%.c $(MEM_DIR)/crt.o |$(MEM_DIR)
|
||||
$(MEM_DIR)/%.elf: $(BENCH_DIR)/%.s |$(MEM_DIR)
|
||||
$(CC) $(CFLAGS) -o $@ $<
|
||||
$(MEM_DIR)/%.mem: $(MEM_DIR)/%.elf |$(MEM_DIR)
|
||||
$(OBJDUMP) $(ODFLAGS) $< | awk -f $(OBTOMEM) | awk -f common/fix_mem.awk > $@
|
||||
$(OBJCOPY) -O binary --verilog-data-width 8 $< $@.bin
|
||||
python3 common/swap_endian.py $@.bin $@.bin.swapped 8
|
||||
$(OBJCOPY) -I binary -O verilog --verilog-data-width 8 $@.bin.swapped $@
|
||||
rm $@.bin $@.bin.swapped
|
||||
|
||||
test-$(MEM_DIR)/%.mem: $(MEM_DIR)/%.mem |$(MEM_DIR)
|
||||
@PROG="$(shell echo $< | sed "s/^bench\/mem\///g" | sed "s/\.mem$$//g")" PROOT=$(shell pwd) ./mill TPchisel.test.testOnly $(TOP_REP).$(TOP_TEST) -- -z "$(shell echo $< | sed "s/^bench\/mem\///g" | sed "s/\.mem$$//g")"
|
||||
|
||||
Reference in New Issue
Block a user