From 08e9796822ac83485fdfb57d83443c897bf104c4 Mon Sep 17 00:00:00 2001 From: Elms Date: Wed, 7 Apr 2021 11:43:28 -0700 Subject: [PATCH] make: Add PPC arch and refactor some of Makefile --- Makefile | 20 ++++++++------------ arch.mk | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 8631531f..4ad11c37 100644 --- a/Makefile +++ b/Makefile @@ -47,19 +47,15 @@ all: $(MAIN_TARGET) wolfboot.bin: wolfboot.elf @echo "\t[BIN] $@" - $(Q)$(OBJCOPY) -O binary $^ $@ + $(Q)$(OBJCOPY) -O binary --gap-fill=255 $^ $@ align: wolfboot-align.bin -.bootloader-partition-size: - $(Q)printf "%d" $(WOLFBOOT_PARTITION_BOOT_ADDRESS) > .wolfboot-offset - $(Q)printf "%d" $(ARCH_FLASH_OFFSET) > .wolfboot-arch-offset - $(Q)expr `cat .wolfboot-offset` - `cat .wolfboot-arch-offset` > .bootloader-partition-size - $(Q)rm -f .wolfboot-offset .wolfboot-arch-offset +BOOTLOADER_PARTITION_SIZE=$$(( $(WOLFBOOT_PARTITION_BOOT_ADDRESS) - $(ARCH_FLASH_OFFSET))) -wolfboot-align.bin: .bootloader-partition-size wolfboot.bin - $(Q)dd if=/dev/zero bs=`cat .bootloader-partition-size` count=1 2>/dev/null | tr "\000" "\377" > $(@) - $(Q)dd if=wolfboot.bin of=$(@) conv=notrunc 2>/dev/null +wolfboot-align.bin: wolfboot.elf + $(Q)$(OBJCOPY) -O binary --gap-fill=255 --pad-to= wolfboot.elf $@ + echo $(BOOTLOADER_PARTITION_SIZE) @echo @echo "\t[SIZE]" $(Q)$(SIZE) wolfboot.elf @@ -106,9 +102,9 @@ wolfboot.elf: include/target.h $(OBJS) $(LSCRIPT) FORCE @echo "\t[LD] $@" $(Q)$(LD) $(LDFLAGS) -Wl,--start-group $(OBJS) -Wl,--end-group -o $@ -$(LSCRIPT): hal/$(TARGET).ld .bootloader-partition-size FORCE +$(LSCRIPT): hal/$(TARGET).ld FORCE @cat hal/$(TARGET).ld | \ - sed -e "s/##WOLFBOOT_PARTITION_BOOT_ADDRESS##/`cat .bootloader-partition-size`/g" | \ + sed -e "s/##WOLFBOOT_PARTITION_BOOT_ADDRESS##/$(BOOTLOADER_PARTITION_SIZE)/g" | \ sed -e "s/##WOLFBOOT_ORIGIN##/$(WOLFBOOT_ORIGIN)/g" \ > $@ @@ -130,7 +126,7 @@ keys: $(PRIVATE_KEY) clean: @find . -type f -name "*.o" | xargs rm -f - @rm -f *.bin *.elf wolfboot.map *.bin *.hex config/target.ld .bootloader-partition-size + @rm -f *.bin *.elf wolfboot.map *.bin *.hex config/target.ld @make -C test-app clean @make -C tools/check_config clean diff --git a/arch.mk b/arch.mk index 6ba96eae..d9b47831 100644 --- a/arch.mk +++ b/arch.mk @@ -10,7 +10,7 @@ else endif # Default flash offset -ARCH_FLASH_OFFSET=0x0 +ARCH_FLASH_OFFSET?=0x0 # Default SPI driver name SPI_TARGET=$(TARGET) @@ -126,6 +126,20 @@ ifeq ($(ARCH),RISCV) ARCH_FLASH_OFFSET=0x20010000 endif +# powerpc +ifeq ($(ARCH),PPC) + CROSS_COMPILE:=powerpc-linux-gnu- + CFLAGS+=-fno-builtin-printf -DUSE_M_TIME -g -nostartfiles + LDFLAGS+=-Wl,--build-id=none + #MATH_OBJS += ./lib/wolfssl/wolfcrypt/src/sp_c32.o + + # Prune unused functions and data + CFLAGS +=-ffunction-sections -fdata-sections + LDFLAGS+=-Wl,--gc-sections + + OBJS+=src/boot_ppc_start.o src/boot_ppc.o +endif + ifeq ($(TARGET),kinetis) CFLAGS+= -I$(MCUXPRESSO_DRIVERS)/drivers -I$(MCUXPRESSO_DRIVERS) -DCPU_$(MCUXPRESSO_CPU) -I$(MCUXPRESSO_CMSIS)/Include -DDEBUG_CONSOLE_ASSERT_DISABLE=1 OBJS+= $(MCUXPRESSO_DRIVERS)/drivers/fsl_clock.o $(MCUXPRESSO_DRIVERS)/drivers/fsl_ftfx_flash.o $(MCUXPRESSO_DRIVERS)/drivers/fsl_ftfx_cache.o $(MCUXPRESSO_DRIVERS)/drivers/fsl_ftfx_controller.o