mirror of
https://github.com/AsahiLinux/m1n1
synced 2024-09-20 05:01:53 +00:00
d73276b0bc
There are at least two types in the ADT related to USB, but there's a decent chance that there are even more required for other devices: * A simple tunable that applies to a whole device node and all its MMIO ranges specified in the "reg" property. This one seems to just be mask32. * A slightly more complex tunable that applies to a single MMIO range specified in the "reg" property. So far I've only seen 32 bit masks but the format looks like it should also support 8,16 and 64 bit masks. Signed-off-by: Sven Peter <sven@svenpeter.dev>
109 lines
3 KiB
Makefile
109 lines
3 KiB
Makefile
ARCH := aarch64-linux-gnu-
|
|
|
|
ifeq ($(USE_CLANG),1)
|
|
CC := clang --target=$(ARCH)
|
|
AS := clang --target=$(ARCH)
|
|
LD := ld.lld
|
|
OBJCOPY := llvm-objcopy
|
|
else
|
|
CC := $(ARCH)gcc
|
|
AS := $(ARCH)gcc
|
|
LD := $(ARCH)ld
|
|
OBJCOPY := $(ARCH)objcopy
|
|
endif
|
|
|
|
CFLAGS := -O2 -Wall -Wundef -Werror=strict-prototypes -fno-common -fno-PIE \
|
|
-Werror=implicit-function-declaration -Werror=implicit-int \
|
|
-Wsign-compare -Wunused-parameter -Wno-multichar \
|
|
-ffreestanding -fpic -ffunction-sections -fdata-sections \
|
|
-nostdinc -isystem $(shell $(CC) -print-file-name=include) -isystem sysinc \
|
|
-fno-stack-protector -mgeneral-regs-only -mstrict-align -march=armv8.2-a
|
|
|
|
LDFLAGS := -T m1n1.ld -EL -maarch64elf --no-undefined -X -Bsymbolic \
|
|
-z notext --no-apply-dynamic-relocs --orphan-handling=warn --strip-debug \
|
|
-z nocopyreloc --gc-sections -pie
|
|
|
|
MINILZLIB_OBJECTS := $(patsubst %,minilzlib/%, \
|
|
dictbuf.o inputbuf.o lzma2dec.o lzmadec.o rangedec.o xzstream.o)
|
|
|
|
TINF_OBJECTS := $(patsubst %,tinf/%, \
|
|
adler32.o crc32.o tinfgzip.o tinflate.o tinfzlib.o)
|
|
|
|
DLMALLOC_OBJECTS := dlmalloc/malloc.o
|
|
|
|
LIBFDT_OBJECTS := $(patsubst %,libfdt/%, \
|
|
fdt_addresses.o fdt_empty_tree.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_sw.o \
|
|
fdt_wip.o fdt.o)
|
|
|
|
OBJECTS := adt.o bootlogo_128.o bootlogo_256.o chickens.o exception.o exception_asm.o fb.o \
|
|
heapblock.o kboot.o main.o memory.o memory_asm.o payload.o proxy.o smp.o start.o startup.o \
|
|
string.o tunables.o uart.o uartproxy.o utils.o utils_asm.o vsprintf.o wdt.o $(MINILZLIB_OBJECTS) \
|
|
$(TINF_OBJECTS) $(DLMALLOC_OBJECTS) $(LIBFDT_OBJECTS)
|
|
|
|
DTS := t8103-j274.dts
|
|
|
|
BUILD_OBJS := $(patsubst %,build/%,$(OBJECTS))
|
|
DTBS := $(patsubst %.dts,build/dtb/%.dtb,$(DTS))
|
|
|
|
NAME := m1n1
|
|
TARGET := m1n1.macho
|
|
|
|
DEPDIR := build/.deps
|
|
|
|
.PHONY: all clean format
|
|
all: build/$(TARGET) $(DTBS)
|
|
clean:
|
|
rm -rf build/*
|
|
format:
|
|
clang-format -i src/*.c src/*.h sysinc/*.h
|
|
format-check:
|
|
clang-format --dry-run --Werror src/*.c src/*.h sysinc/*.h
|
|
|
|
build/dtb/%.dts: dts/%.dts
|
|
@echo " DTCPP $@"
|
|
@mkdir -p "$(dir $@)"
|
|
@$(CC) -E -nostdinc -I dts -x assembler-with-cpp -o $@ $<
|
|
|
|
build/dtb/%.dtb: build/dtb/%.dts
|
|
@echo " DTC $@"
|
|
@mkdir -p "$(dir $@)"
|
|
@dtc -I dts -i dts $< -o $@
|
|
|
|
build/%.o: src/%.S
|
|
@echo " AS $@"
|
|
@mkdir -p $(DEPDIR)
|
|
@mkdir -p "$(dir $@)"
|
|
@$(AS) -c $(CFLAGS) -Wp,-MMD,$(DEPDIR)/$(*F).d,-MQ,"$@",-MP -o $@ $<
|
|
|
|
build/%.o: src/%.c
|
|
@echo " CC $@"
|
|
@mkdir -p $(DEPDIR)
|
|
@mkdir -p "$(dir $@)"
|
|
@$(CC) -c $(CFLAGS) -Wp,-MMD,$(DEPDIR)/$(*F).d,-MQ,"$@",-MP -o $@ $<
|
|
|
|
build/$(NAME).elf: $(BUILD_OBJS) m1n1.ld
|
|
@echo " LD $@"
|
|
@$(LD) $(LDFLAGS) -o $@ $(BUILD_OBJS)
|
|
|
|
build/$(NAME).macho: build/$(NAME).elf
|
|
@echo " MACHO $@"
|
|
@$(OBJCOPY) -O binary $< $@
|
|
|
|
build/build_tag.h:
|
|
@echo " TAG $@"
|
|
@echo "#define BUILD_TAG \"$$(git describe --always --dirty)\"" > $@
|
|
|
|
build/%.bin: data/%.png
|
|
@echo " IMG $@"
|
|
@convert $< -background black -flatten -depth 8 rgba:$@
|
|
|
|
build/%.o: build/%.bin
|
|
@echo " BIN $@"
|
|
@$(OBJCOPY) -I binary -B aarch64 -O elf64-littleaarch64 $< $@
|
|
|
|
build/main.o: build/build_tag.h src/main.c
|
|
|
|
-include $(DEPDIR)/*
|
|
|
|
|
|
|