blob: 513329c490f343aeb1c097f32563417ea63be6b1 [file] [log] [blame]
Sylvain Munautbc9f5c42020-09-14 10:22:29 +02001#ice1usb
2#ice1usb-proto-icebreaker
3#ice1usb-proto-bitsty
4#e1-tracer
Sylvain Munaut5e860472020-09-15 22:20:21 +02005BOARD ?= ice1usb
Sylvain Munautbc9f5c42020-09-14 10:22:29 +02006CROSS ?= riscv-none-embed-
7CC = $(CROSS)gcc
8OBJCOPY = $(CROSS)objcopy
9ICEPROG = iceprog
10DFU_UTIL = dfu-util
11
Harald Welte3255b742020-12-17 13:15:12 +010012TAG_PREFIX = icE1usb-fw
Sylvain Munaut2c33f6d2022-01-12 14:12:31 +010013GITVER = $(shell git describe --match '$(TAG_PREFIX)*' --dirty)
Harald Welte3255b742020-12-17 13:15:12 +010014TARGET = $(GITVER)
15
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020016BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_)
Sylvain Munaut5e3fbfe2022-01-09 18:37:30 +010017CFLAGS=-Wall -Wextra -Wno-unused-parameter -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common
Sylvain Munaut2c33f6d2022-01-12 14:12:31 +010018CFLAGS += -DBUILD_INFO="\"$(GITVER) built $(shell date) on $(shell hostname)\""
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020019
Sylvain Munautdb0b8102022-09-01 18:43:41 +020020ifeq ($(SINGLE_CHANNEL),1)
21CFLAGS += -DNUM_E1_PORTS=1
22endif
23
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020024NO2USB_FW_VERSION=0
25include ../../../gateware/cores/no2usb/fw/fw.mk
26CFLAGS += $(INC_no2usb)
27
28LNK=../common/lnk-app.lds
29
30HEADERS_common := $(addprefix ../common/, \
31 console.h \
32 dma.h \
33 led.h \
34 mini-printf.h \
35 spi.h \
36 utils.h \
37)
38
39SOURCES_common := $(addprefix ../common/, \
40 ../common/start.S \
41 console.c \
42 dma.c \
43 led.c \
44 mini-printf.c \
45 spi.c \
46 utils.c \
47)
48
49HEADERS_common += $(HEADERS_no2usb)
50SOURCES_common += $(SOURCES_no2usb)
51
52HEADERS_app=\
53 config.h \
54 e1.h \
Sylvain Munautef5fe382022-01-12 11:55:44 +010055 gps.h \
Sylvain Munaute76b6432022-01-12 22:41:01 +010056 gpsdo.h \
Sylvain Munaut51122af2022-01-12 23:03:21 +010057 ice1usb_proto.h \
Sylvain Munauta896e5b2022-09-01 17:54:29 +020058 i2c.h \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020059 misc.h \
Sylvain Munaut34b0d022022-09-01 18:16:19 +020060 rs422.h \
Sylvain Munaut8a5a9d42022-01-03 18:44:33 +010061 usb_desc_ids.h \
Sylvain Munautcaf8cf92022-01-12 13:35:12 +010062 usb_dev.h \
Sylvain Munaut9c213e62022-01-12 11:49:33 +010063 usb_e1.h \
Sylvain Munaut70c10f02022-01-12 11:58:34 +010064 usb_gps.h \
Harald Weltecac342a2022-01-30 20:41:12 +010065 usb_gpsdo.h \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020066 usb_str_app.gen.h \
67 $(NULL)
68
69SOURCES_app=\
70 e1.c \
71 fw_app.c \
Sylvain Munautef5fe382022-01-12 11:55:44 +010072 gps.c \
Sylvain Munaute76b6432022-01-12 22:41:01 +010073 gpsdo.c \
Sylvain Munauta896e5b2022-09-01 17:54:29 +020074 i2c.c \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020075 misc.c \
Sylvain Munaut34b0d022022-09-01 18:16:19 +020076 rs422.c \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020077 usb_desc_app.c \
Sylvain Munautcaf8cf92022-01-12 13:35:12 +010078 usb_dev.c \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020079 usb_e1.c \
Sylvain Munaut70c10f02022-01-12 11:58:34 +010080 usb_gps.c \
Harald Weltecac342a2022-01-30 20:41:12 +010081 usb_gpsdo.c \
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020082 $(NULL)
83
84
Harald Welte3255b742020-12-17 13:15:12 +010085all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020086
87
Harald Welte3255b742020-12-17 13:15:12 +010088$(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common)
Sylvain Munautbc9f5c42020-09-14 10:22:29 +020089 $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app)
90
91
92%.hex: %.bin
93 ../common/bin2hex.py $< $@
94
95%.bin: %.elf
96 $(OBJCOPY) -O binary $< $@
97
Harald Welte3255b742020-12-17 13:15:12 +010098$(TAG_PREFIX).bin: $(GITVER).bin
99 ln -sf $< $@
100
101$(TAG_PREFIX).elf: $(GITVER).elf
102 ln -sf $< $@
103
104prog: $(GITVER).bin
Sylvain Munautbc9f5c42020-09-14 10:22:29 +0200105 $(ICEPROG) -o 640k $<
106
Harald Welte3255b742020-12-17 13:15:12 +0100107dfuprog: $(GITVER).bin
Sylvain Munaut9b3f2c42022-09-01 17:53:51 +0200108 $(DFU_UTIL) -R -d 1d50:6145,1d50:6144 -a 1 -D $<
Sylvain Munautbc9f5c42020-09-14 10:22:29 +0200109
110
111clean:
112 rm -f *.bin *.hex *.elf *.o *.gen.h
113
114.PHONY: prog dfuprog clean