| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # SPDX-License-Identifier: BSD-2-Clause
- #
- # Copyright (C) 2022 Matthias Schiffer <[email protected]>
- CONFIG ?= $(error No configuration set)
- include config/$(CONFIG).mk
- MKIMAGE := mkimage
- KARCH := powerpc
- CC := $(CROSS_COMPILE)gcc
- LD := $(CROSS_COMPILE)ld
- OBJCOPY := $(CROSS_COMPILE)objcopy
- PROGRAM_NAME := MPC85xx SPI loader
- BIN_FLAGS := -O binary --pad-to=$(PAD_TO)
- CFLAGS += -std=gnu17 -Os -Wall -Wstrict-prototypes \
- -fomit-frame-pointer -ffreestanding \
- -ffunction-sections -fno-pic \
- -Iinclude -include ../config/$(CONFIG).h \
- -DCONFIG_PROGRAM_NAME='"$(PROGRAM_NAME)"' \
- -DCONFIG_IMAGE_OFFSET=$(IMAGE_OFFSET)
- ASFLAGS := $(CFLAGS)
- LDS := loader.lds
- LDFLAGS := -static --gc-sections -T $(LDS) -Ttext $(TEXT_START)
- OBJECTS := head.o loader.o string.o stdio.o drivers/serial/ns16550.o \
- drivers/spi/fsl_espi.o drivers/spi/spi-nor.o
- OUTDIR := out
- all: $(OUTDIR)/uImage
- -include $(OBJECTS:%.o=$(OUTDIR)/%.d)
- $(OUTDIR)/%.o: %.c Makefile config/$(CONFIG).mk
- @mkdir -p $(dir $@)
- $(CC) $(CFLAGS) -c -o $@ -MD -MP $<
- $(OUTDIR)/%.o: %.S Makefile config/$(CONFIG).mk
- @mkdir -p $(dir $@)
- $(CC) $(ASFLAGS) -c -o $@ -MD -MP $<
- $(OUTDIR)/loader.elf: $(OBJECTS:%=$(OUTDIR)/%) $(LDS)
- $(LD) $(LDFLAGS) -o $@ $(OBJECTS:%=$(OUTDIR)/%)
- $(OUTDIR)/loader.bin: $(OUTDIR)/loader.elf
- $(OBJCOPY) $(BIN_FLAGS) $< $@
- $(OUTDIR)/uImage: $(OUTDIR)/loader.bin
- $(MKIMAGE) -A $(KARCH) -O linux -T kernel -C none \
- -a $(TEXT_START) -e $(TEXT_START) -n '$(PROGRAM_NAME)' -d $< $@
- clean:
- rm -rf $(OUTDIR)
- .PHONY: all clean
|