Updates to Freedom SoCs
[freedom-sifive.git] / bootrom / sdboot / Makefile
diff --git a/bootrom/sdboot/Makefile b/bootrom/sdboot/Makefile
new file mode 100644 (file)
index 0000000..e4bb3d1
--- /dev/null
@@ -0,0 +1,47 @@
+# RISCV environment variable must be set
+
+CC=$(RISCV)/bin/riscv64-unknown-elf-gcc
+OBJCOPY=$(RISCV)/bin/riscv64-unknown-elf-objcopy
+CFLAGS=-march=rv64imac -mcmodel=medany -O2 -std=gnu11 -Wall -nostartfiles 
+CFLAGS+= -fno-common -g -DENTROPY=0 -mabi=lp64 -DNONSMP_HART=0 
+CFLAGS+= -I $(BOOTROM_DIR)/include -I.
+LFLAGS=-static -nostdlib -L $(BOOTROM_DIR)/linker -T sdboot.elf.lds
+
+dtb := $(BUILD_DIR)/$(CONFIG).dtb
+$(dtb): $(BUILD_DIR)/$(CONFIG).dts
+       dtc -I dts -O dtb -o $@ $<
+
+.PHONY: dtb
+dtb: $(dtb)
+
+elf := $(BUILD_DIR)/sdboot.elf
+$(elf): $(dtb) head.S kprintf.c sd.c 
+       $(CC) $(CFLAGS) -DDEVICE_TREE='"$(dtb)"' $(LFLAGS) -o $@ head.S sd.c kprintf.c
+
+.PHONY: elf
+elf: $(elf)
+
+bin := $(BUILD_DIR)/sdboot.bin
+$(bin): $(elf)
+       $(OBJCOPY) -O binary $< $@
+
+.PHONY: bin
+bin: $(bin)
+
+hex := $(BUILD_DIR)/sdboot.hex
+$(hex): $(bin)
+       od -t x4 -An -w4 -v $< > $@
+
+.PHONY: hex
+hex: $(hex)
+
+romgen := $(BUILD_DIR)/rom.v
+$(romgen): $(hex)
+       $(rocketchip_dir)/scripts/vlsi_rom_gen $(ROMCONF) $< > $@
+
+.PHONY: romgen
+romgen: $(romgen)
+
+.PHONY: clean
+clean::
+       rm -rf $(hex) $(elf)