Updates to Freedom SoCs
[freedom-sifive.git] / bootrom / sdboot / Makefile
1 # RISCV environment variable must be set
2
3 CC=$(RISCV)/bin/riscv64-unknown-elf-gcc
4 OBJCOPY=$(RISCV)/bin/riscv64-unknown-elf-objcopy
5 CFLAGS=-march=rv64imac -mcmodel=medany -O2 -std=gnu11 -Wall -nostartfiles
6 CFLAGS+= -fno-common -g -DENTROPY=0 -mabi=lp64 -DNONSMP_HART=0
7 CFLAGS+= -I $(BOOTROM_DIR)/include -I.
8 LFLAGS=-static -nostdlib -L $(BOOTROM_DIR)/linker -T sdboot.elf.lds
9
10 dtb := $(BUILD_DIR)/$(CONFIG).dtb
11 $(dtb): $(BUILD_DIR)/$(CONFIG).dts
12 dtc -I dts -O dtb -o $@ $<
13
14 .PHONY: dtb
15 dtb: $(dtb)
16
17 elf := $(BUILD_DIR)/sdboot.elf
18 $(elf): $(dtb) head.S kprintf.c sd.c
19 $(CC) $(CFLAGS) -DDEVICE_TREE='"$(dtb)"' $(LFLAGS) -o $@ head.S sd.c kprintf.c
20
21 .PHONY: elf
22 elf: $(elf)
23
24 bin := $(BUILD_DIR)/sdboot.bin
25 $(bin): $(elf)
26 $(OBJCOPY) -O binary $< $@
27
28 .PHONY: bin
29 bin: $(bin)
30
31 hex := $(BUILD_DIR)/sdboot.hex
32 $(hex): $(bin)
33 od -t x4 -An -w4 -v $< > $@
34
35 .PHONY: hex
36 hex: $(hex)
37
38 romgen := $(BUILD_DIR)/rom.v
39 $(romgen): $(hex)
40 $(rocketchip_dir)/scripts/vlsi_rom_gen $(ROMCONF) $< > $@
41
42 .PHONY: romgen
43 romgen: $(romgen)
44
45 .PHONY: clean
46 clean::
47 rm -rf $(hex) $(elf)