forked from CTCaer/hekate
2e9a89aa20
- Still compatible with old hekate. - Allows for hotfix control - Sept is now copied from actual running payload, negating the need to check update.bin - If a foreign payload is found in sept then it is renamed and hekate copies itself. After sept run, it renames it back and continues with boot.
117 lines
2.5 KiB
Makefile
Executable File
117 lines
2.5 KiB
Makefile
Executable File
ifeq ($(strip $(DEVKITARM)),)
|
|
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
|
|
endif
|
|
|
|
include $(DEVKITARM)/base_rules
|
|
|
|
IPL_LOAD_ADDR := 0x40008000
|
|
IPL_MAGIC := 0x43544349 #"ICTC"
|
|
BLVERSION_MAJOR := 4
|
|
BLVERSION_MINOR := 8
|
|
BLVERSION_HOTFX := 0
|
|
|
|
BL_RESERVED := 0
|
|
|
|
TARGET := hekate
|
|
BUILD := build
|
|
OUTPUT := output
|
|
SOURCEDIR = bootloader
|
|
VPATH = $(dir $(wildcard ./$(SOURCEDIR)/*/)) $(dir $(wildcard ./$(SOURCEDIR)/*/*/))
|
|
|
|
OBJS = $(addprefix $(BUILD)/$(TARGET)/, \
|
|
start.o \
|
|
main.o \
|
|
fe_emmc_tools.o \
|
|
fe_info.o \
|
|
fe_tools.o \
|
|
config.o \
|
|
btn.o \
|
|
clock.o \
|
|
cluster.o \
|
|
fuse.o \
|
|
gpio.o \
|
|
heap.o \
|
|
hos.o \
|
|
hos_config.o \
|
|
secmon_exo.o \
|
|
sept.o \
|
|
i2c.o \
|
|
kfuse.o \
|
|
bq24193.o \
|
|
max7762x.o \
|
|
max17050.o \
|
|
mc.o \
|
|
nx_emmc.o \
|
|
sdmmc.o \
|
|
sdmmc_driver.o \
|
|
sdram.o \
|
|
tui.o \
|
|
util.o \
|
|
di.o \
|
|
gfx.o \
|
|
pinmux.o \
|
|
pkg1.o \
|
|
pkg2.o \
|
|
se.o \
|
|
tsec.o \
|
|
uart.o \
|
|
hw_init.o \
|
|
dirlist.o \
|
|
ini.o \
|
|
ianos.o \
|
|
smmu.o \
|
|
max77620-rtc.o \
|
|
)
|
|
|
|
OBJS += $(addprefix $(BUILD)/$(TARGET)/, \
|
|
lz.o blz.o \
|
|
diskio.o ff.o ffunicode.o ffsystem.o \
|
|
elfload.o elfreloc_arm.o \
|
|
)
|
|
|
|
CUSTOMDEFINES := -DIPL_LOAD_ADDR=$(IPL_LOAD_ADDR) -DBL_MAGIC=$(IPL_MAGIC)
|
|
CUSTOMDEFINES += -DBL_VER_MJ=$(BLVERSION_MAJOR) -DBL_VER_MN=$(BLVERSION_MINOR) -DBL_VER_HF=$(BLVERSION_HOTFX) -DBL_RESERVED=$(BL_RESERVED)
|
|
CUSTOMDEFINES += -DMENU_LOGO_ENABLE
|
|
|
|
# 0: UART_A, 1: UART_B.
|
|
#CUSTOMDEFINES += -DDEBUG_UART_PORT=0
|
|
|
|
#CUSTOMDEFINES += -DDEBUG
|
|
|
|
ARCH := -march=armv4t -mtune=arm7tdmi -mthumb -mthumb-interwork
|
|
CFLAGS = $(ARCH) -O2 -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11 -Wall $(CUSTOMDEFINES)
|
|
LDFLAGS = $(ARCH) -nostartfiles -lgcc -Wl,--nmagic,--gc-sections -Xlinker --defsym=IPL_LOAD_ADDR=$(IPL_LOAD_ADDR)
|
|
|
|
MODULEDIRS := $(wildcard modules/*)
|
|
|
|
.PHONY: all clean $(MODULEDIRS)
|
|
|
|
all: $(TARGET).bin
|
|
@echo -n "Payload size is "
|
|
@wc -c < $(OUTPUT)/$(TARGET).bin
|
|
@echo "Max size is 126296 Bytes."
|
|
|
|
clean:
|
|
@rm -rf $(OBJS)
|
|
@rm -rf $(BUILD)
|
|
@rm -rf $(OUTPUT)
|
|
|
|
$(MODULEDIRS):
|
|
$(MAKE) -C $@ $(MAKECMDGOALS)
|
|
|
|
$(TARGET).bin: $(BUILD)/$(TARGET)/$(TARGET).elf $(MODULEDIRS)
|
|
$(OBJCOPY) -S -O binary $< $(OUTPUT)/$@
|
|
@printf ICTC$(BLVERSION_MAJOR)$(BLVERSION_MINOR) >> $(OUTPUT)/$@
|
|
|
|
$(BUILD)/$(TARGET)/$(TARGET).elf: $(OBJS)
|
|
$(CC) $(LDFLAGS) -T $(SOURCEDIR)/link.ld $^ -o $@
|
|
|
|
$(BUILD)/$(TARGET)/%.o: %.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(BUILD)/$(TARGET)/%.o: %.S
|
|
@mkdir -p "$(BUILD)"
|
|
@mkdir -p "$(BUILD)/$(TARGET)"
|
|
@mkdir -p "$(OUTPUT)"
|
|
$(CC) $(CFLAGS) -c $< -o $@
|