| # |
| # (C) Copyright 2015 Quantenna Communications Inc. |
| # |
| # Makefile for building the U-Boot Tiny (first stage bootloader) |
| # |
| |
| include helper.mk |
| |
| CFLAGS = |
| CC = $(CROSS_COMPILE)gcc |
| CPP = $(CROSS_COMPILE)gcc -E |
| LD = $(CROSS_COMPILE)ld |
| OBJCOPY = $(CROSS_COMPILE)objcopy |
| |
| TARGET=tiny |
| |
| default: u-boot-$(TARGET) u-boot-$(TARGET).bin |
| |
| BUILD_DIR=./build_$(TARGET) |
| |
| -include $(shell if [ -d $(BUILD_DIR) ]; then \ |
| find $(BUILD_DIR)/ -name \*.d; \ |
| fi) |
| |
| gccincdir = $(shell $(CC) -print-file-name=include) |
| UBOOT_TINY_TEXT_BASE_OFFSET = 0x14000 |
| |
| CFLAGS += -Wall -Werror -Wno-unused-parameter \ |
| -Os \ |
| -D__KERNEL__ -D__ARC__ -DTOPAZ_TINY_UBOOT -DRUBY_MINI\ |
| -mA7 \ |
| -fno-builtin -ffreestanding -fomit-frame-pointer \ |
| -nostdinc \ |
| -mno-sdata -mvolatile-cache -mno-millicode \ |
| -pipe \ |
| -Iboard/ruby/ -Iinclude/ -Iquantenna/common/ -Iquantenna/include/qtn/ \ |
| -isystem $(gccincdir) \ |
| -DTEXT_BASE_OFFSET=$(UBOOT_TINY_TEXT_BASE_OFFSET) \ |
| |
| AFLAGS = -D__ASSEMBLY__ $(CFLAGS) |
| |
| $(BUILD_DIR)/%.o: %.c |
| @mkdir -p $(@D) |
| $(CC) $(CFLAGS) $< -c -o $@ -MP -MD -MF $@.d |
| |
| $(BUILD_DIR)/%.o: %.S |
| @mkdir -p $(@D) |
| $(CC) $(AFLAGS) $< -c -o $@ -MP -MD -MF $@.d |
| |
| $(BUILD_DIR)/%.s: %.S |
| @mkdir -p $(@D) |
| $(CPP) $(AFLAGS) $< -o $@ -MP -MD -MF $@.d |
| |
| |
| OBJS = board/ruby/start.o \ |
| board/ruby/flip.o \ |
| cpu/arc/cache.o \ |
| board/ruby/gpio.o \ |
| board/ruby/timer.o \ |
| board/ruby/serial.o \ |
| board/ruby/reset.o \ |
| board/ruby/spi_api.o \ |
| board/ruby/newlib_io_copy.o \ |
| board/ruby/spi_flash.o \ |
| lib_generic/ctype.o \ |
| lib_generic/vsprintf.o \ |
| lib_generic/string.o \ |
| lib_generic/crc32.o \ |
| board/ruby_mini/ruby_mini_common.o \ |
| board/ruby_mini/ruby_tiny.o |
| |
| LDFLAGS = -lgcc |
| |
| LDMAP = $(BUILD_DIR)/u-boot-$(TARGET).lds |
| |
| RUBY_TINY_OBJS = $(OBJS:%=$(BUILD_DIR)/%) |
| |
| u-boot-$(TARGET): $(RUBY_TINY_OBJS) $(LDMAP) |
| $(LD) -Bstatic -T $(LDMAP) $(RUBY_TINY_OBJS) -Map $@.map -o $@ $(LDFLAGS) |
| |
| %.bin: % |
| $(OBJCOPY) -O binary $< $@ |
| |
| $(LDMAP): $(RUBY_MINI_LDMAP_SRC) |
| $(call build-mini-ldmap,$(CFLAGS)) |