summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorPalmer Dabbelt <palmer@sifive.com>2018-12-13 18:45:09 -0800
committerPalmer Dabbelt <palmer@sifive.com>2018-12-13 18:45:09 -0800
commit2077ff04a25b4393d9b88cd0ee69db3f8eb40276 (patch)
treebe7b0dcc478fc97978a7efccce04a17557a37b22 /Makefile
parent0c3b3d75eadffb9ab1d85e811cac55d54ac9d3ca (diff)
Add support for generating coreip hex files via elf2hex
This just calls elf2hex on the compiled elf files, producing a hex file that can be fed into RTL simulation. Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile32
1 files changed, 31 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index ec363a9..7900baa 100644
--- a/Makefile
+++ b/Makefile
@@ -192,16 +192,41 @@ mee_install: mee
$(MAKE) -C $(MEE_SOURCE_PATH) install
#############################################################
+# This Section is for elf2hex Compliation
+#############################################################
+scripts/elf2hex/build/Makefile: scripts/elf2hex/configure
+ @rm -rf $(dir $@)
+ @mkdir -p $(dir $@)
+ cd $(dir $@); \
+ $(abspath $<) \
+ --prefix=$(abspath $(dir $<))/install \
+ --target=$(CROSS_COMPILE)
+
+scripts/elf2hex/install/bin/$(CROSS_COMPILE)-elf2hex: scripts/elf2hex/build/Makefile
+ $(MAKE) -C $(dir $<) install
+ touch -c $@
+
+.PHONY: clean-elf2hex
+clean-elf2hex:
+ rm -rf scripts/elf2hex/build scripts/elf2hex/install
+clean: clean-elf2hex
+
+#############################################################
# This Section is for Software Compilation
#############################################################
PROGRAM_ELF = software/$(PROGRAM)/$(PROGRAM)
+PROGRAM_HEX = software/$(PROGRAM)/$(PROGRAM).hex
ifeq ($(BSP),mee)
.PHONY: software
software: $(PROGRAM_ELF)
+ifneq ($(COREIP_MEM_WIDTH),)
+software: $(PROGRAM_HEX)
+endif
+
$(PROGRAM_ELF): \
- $(shell find $(abspath $(dir $(PROGRAM_ELF))) -type f) \
+ $(addprefix software/$(PROGRAM)/,$(shell git -C software/$(PROGRAM) ls-files)) \
$(MEE_BSP_PATH)/install/lib/libmee.a \
$(MEE_BSP_PATH)/install/lib/libmee-gloss.a \
$(MEE_BSP_PATH)/mee.lds
@@ -214,6 +239,11 @@ $(PROGRAM_ELF): \
LDLIBS="-Wl,--start-group -lc -lmee -lmee-gloss -Wl,--end-group"
touch -c $@
+$(PROGRAM_HEX): \
+ scripts/elf2hex/install/bin/$(CROSS_COMPILE)-elf2hex \
+ $(PROGRAM_ELF)
+ $< --output $@ --input $(PROGRAM_ELF) --bit-width $(COREIP_MEM_WIDTH)
+
.PHONY: clean-software
clean-software:
$(MAKE) -C $(dir $(PROGRAM_ELF)) clean