Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 1 | #ice1usb |
| 2 | #ice1usb-proto-icebreaker |
| 3 | #ice1usb-proto-bitsty |
| 4 | #e1-tracer |
Sylvain Munaut | 5e86047 | 2020-09-15 22:20:21 +0200 | [diff] [blame] | 5 | BOARD ?= ice1usb |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 6 | CROSS ?= riscv-none-embed- |
| 7 | CC = $(CROSS)gcc |
| 8 | OBJCOPY = $(CROSS)objcopy |
| 9 | ICEPROG = iceprog |
| 10 | DFU_UTIL = dfu-util |
| 11 | |
Harald Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 12 | TAG_PREFIX = icE1usb-fw |
Sylvain Munaut | 2c33f6d | 2022-01-12 14:12:31 +0100 | [diff] [blame] | 13 | GITVER = $(shell git describe --match '$(TAG_PREFIX)*' --dirty) |
Harald Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 14 | TARGET = $(GITVER) |
| 15 | |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 16 | BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_) |
Sylvain Munaut | 5e3fbfe | 2022-01-09 18:37:30 +0100 | [diff] [blame] | 17 | CFLAGS=-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 Munaut | 2c33f6d | 2022-01-12 14:12:31 +0100 | [diff] [blame] | 18 | CFLAGS += -DBUILD_INFO="\"$(GITVER) built $(shell date) on $(shell hostname)\"" |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 19 | |
Sylvain Munaut | db0b810 | 2022-09-01 18:43:41 +0200 | [diff] [blame] | 20 | ifeq ($(SINGLE_CHANNEL),1) |
| 21 | CFLAGS += -DNUM_E1_PORTS=1 |
| 22 | endif |
| 23 | |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 24 | NO2USB_FW_VERSION=0 |
| 25 | include ../../../gateware/cores/no2usb/fw/fw.mk |
| 26 | CFLAGS += $(INC_no2usb) |
| 27 | |
| 28 | LNK=../common/lnk-app.lds |
| 29 | |
| 30 | HEADERS_common := $(addprefix ../common/, \ |
| 31 | console.h \ |
| 32 | dma.h \ |
| 33 | led.h \ |
| 34 | mini-printf.h \ |
| 35 | spi.h \ |
| 36 | utils.h \ |
| 37 | ) |
| 38 | |
| 39 | SOURCES_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 | |
| 49 | HEADERS_common += $(HEADERS_no2usb) |
| 50 | SOURCES_common += $(SOURCES_no2usb) |
| 51 | |
| 52 | HEADERS_app=\ |
| 53 | config.h \ |
| 54 | e1.h \ |
Sylvain Munaut | ef5fe38 | 2022-01-12 11:55:44 +0100 | [diff] [blame] | 55 | gps.h \ |
Sylvain Munaut | e76b643 | 2022-01-12 22:41:01 +0100 | [diff] [blame] | 56 | gpsdo.h \ |
Sylvain Munaut | 51122af | 2022-01-12 23:03:21 +0100 | [diff] [blame] | 57 | ice1usb_proto.h \ |
Sylvain Munaut | a896e5b | 2022-09-01 17:54:29 +0200 | [diff] [blame] | 58 | i2c.h \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 59 | misc.h \ |
Sylvain Munaut | 34b0d02 | 2022-09-01 18:16:19 +0200 | [diff] [blame] | 60 | rs422.h \ |
Sylvain Munaut | 8a5a9d4 | 2022-01-03 18:44:33 +0100 | [diff] [blame] | 61 | usb_desc_ids.h \ |
Sylvain Munaut | caf8cf9 | 2022-01-12 13:35:12 +0100 | [diff] [blame] | 62 | usb_dev.h \ |
Sylvain Munaut | 9c213e6 | 2022-01-12 11:49:33 +0100 | [diff] [blame] | 63 | usb_e1.h \ |
Sylvain Munaut | 70c10f0 | 2022-01-12 11:58:34 +0100 | [diff] [blame] | 64 | usb_gps.h \ |
Harald Welte | cac342a | 2022-01-30 20:41:12 +0100 | [diff] [blame] | 65 | usb_gpsdo.h \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 66 | usb_str_app.gen.h \ |
| 67 | $(NULL) |
| 68 | |
| 69 | SOURCES_app=\ |
| 70 | e1.c \ |
| 71 | fw_app.c \ |
Sylvain Munaut | ef5fe38 | 2022-01-12 11:55:44 +0100 | [diff] [blame] | 72 | gps.c \ |
Sylvain Munaut | e76b643 | 2022-01-12 22:41:01 +0100 | [diff] [blame] | 73 | gpsdo.c \ |
Sylvain Munaut | a896e5b | 2022-09-01 17:54:29 +0200 | [diff] [blame] | 74 | i2c.c \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 75 | misc.c \ |
Sylvain Munaut | 34b0d02 | 2022-09-01 18:16:19 +0200 | [diff] [blame] | 76 | rs422.c \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 77 | usb_desc_app.c \ |
Sylvain Munaut | caf8cf9 | 2022-01-12 13:35:12 +0100 | [diff] [blame] | 78 | usb_dev.c \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 79 | usb_e1.c \ |
Sylvain Munaut | 70c10f0 | 2022-01-12 11:58:34 +0100 | [diff] [blame] | 80 | usb_gps.c \ |
Harald Welte | cac342a | 2022-01-30 20:41:12 +0100 | [diff] [blame] | 81 | usb_gpsdo.c \ |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 82 | $(NULL) |
| 83 | |
| 84 | |
Harald Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 85 | all: $(GITVER).bin $(TAG_PREFIX).bin $(TAG_PREFIX).elf |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 86 | |
| 87 | |
Harald Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 88 | $(GITVER).elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common) |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 89 | $(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 Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 98 | $(TAG_PREFIX).bin: $(GITVER).bin |
| 99 | ln -sf $< $@ |
| 100 | |
| 101 | $(TAG_PREFIX).elf: $(GITVER).elf |
| 102 | ln -sf $< $@ |
| 103 | |
| 104 | prog: $(GITVER).bin |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 105 | $(ICEPROG) -o 640k $< |
| 106 | |
Harald Welte | 3255b74 | 2020-12-17 13:15:12 +0100 | [diff] [blame] | 107 | dfuprog: $(GITVER).bin |
Sylvain Munaut | 9b3f2c4 | 2022-09-01 17:53:51 +0200 | [diff] [blame] | 108 | $(DFU_UTIL) -R -d 1d50:6145,1d50:6144 -a 1 -D $< |
Sylvain Munaut | bc9f5c4 | 2020-09-14 10:22:29 +0200 | [diff] [blame] | 109 | |
| 110 | |
| 111 | clean: |
| 112 | rm -f *.bin *.hex *.elf *.o *.gen.h |
| 113 | |
| 114 | .PHONY: prog dfuprog clean |