高通Android Bootloader生成腳本

以高通8974平臺爲例:
bootable/bootloader/lk/makefile
	OUTBIN := $(BUILDDIR)/lk.bin
	OUTELF := $(BUILDDIR)/lk
	CFLAGS := -O2 -g -fno-builtin -finline -W -Wall -Wno-multichar -Wno-unused-parameter -Wno-unused-function -include $(CONFIGHEADER)
	CFLAGS += -ffunction-sections -fdata-sections
	LDFLAGS += -gc-sections


bootable/bootloader/lk/make/build.mk
	NOECHO ?= @
	$(OUTBIN): $(OUTELF)
		@echo generating image: $@
		$(NOECHO)$(SIZE) $<
		$(NOCOPY)$(OBJCOPY) -O binary $< $@
	
	$(OUTELF): $(ALLOBJS) $(LINKER_SCRIPT)
		@echo linking $@
		$(NOECHO)$(LD) $(LDFLAGS) -T $(LINKER_SCRIPT) $(ALLOBJS) $(LIBGCC) -o $@


bootable/bootloader/lk/platform/msm8974/rules.mk
	LINKER_SCRIPT += $(BUILDDIR)/system-onesegment.ld


bootable/bootloader/lk/target/msm8974/tools/makefile
	EMMCBOOT.MBN: emmc_appsboothd.mbn $(OUTBIN)
		cp $(OUTBIN) $(APPSBOOTHEADER_DIR)/emmc_appsboot.raw
		cat $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn $(OUTBIN) > $(APPSBOOTHEADER_DIR)/EMMCBOOT.MBN
		cat $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn $(OUTBIN) > $(APPSBOOTHEADER_DIR)/emmc_appsboot.mbn
		rm -f $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn

	emmc_appsboothd.mbn: mkheader $(OUTBIN)
		$(BUILDDIR)/mkheader $(OUTBIN) $(APPSBOOTHEADER_DIR)/emmc_appsboothd.mbn
	
	mkheader: $(SRC_DIR)/mkheader.c
		@mkdir -p $(BUILDDIR)
		${COMPILER} -DMEMBASE=$(MEMBASE) $(SRC_DIR)/mkheader.c -o $(BUILDDIR)/mkheader

bootable/bootloader/lk/target/msm8974/rules.mk
	MEMBASE := 0x0F900000 # SDRAM
	MEMSIZE := 0x00100000 # 1MB
	BASE_ADDR        := 0x00000
	TAGS_ADDR        := BASE_ADDR+0x00000100
	KERNEL_ADDR      := BASE_ADDR+0x00008000
	RAMDISK_ADDR     := BASE_ADDR+0x01000000
	SCRATCH_ADDR     := 0x11000000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章