51 lines
1003 B
Makefile
51 lines
1003 B
Makefile
# RISCV environment variable must be set
|
|
# needs the following variables
|
|
# LONG_NAME
|
|
# BUILD_DIR
|
|
# ROCKETCHIP_DIR
|
|
# ROMCONF
|
|
|
|
CC=$(RISCV)/bin/riscv64-unknown-elf-gcc
|
|
OBJCOPY=$(RISCV)/bin/riscv64-unknown-elf-objcopy
|
|
CFLAGS=-march=rv32imac -mabi=ilp32 -O2 -std=gnu11 -Wall -I. -nostartfiles -fno-common -g
|
|
LFLAGS=-static -nostdlib
|
|
|
|
dtb := $(BUILD_DIR)/$(LONG_NAME).dtb
|
|
$(dtb): $(BUILD_DIR)/$(LONG_NAME).dts
|
|
dtc -I dts -O dtb -o $@ $<
|
|
|
|
.PHONY: dtb
|
|
dtb: $(dtb)
|
|
|
|
elf := $(BUILD_DIR)/xip.elf
|
|
$(elf): xip.S $(dtb)
|
|
$(CC) $(CFLAGS) -DXIP_TARGET_ADDR=0x20400000 -DDEVICE_TREE='"$(dtb)"' $(LFLAGS) -o $@ $<
|
|
|
|
.PHONY: elf
|
|
elf: $(elf)
|
|
|
|
bin := $(BUILD_DIR)/xip.bin
|
|
$(bin): $(elf)
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
.PHONY: bin
|
|
bin: $(bin)
|
|
|
|
hex := $(BUILD_DIR)/xip.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)
|