⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 em86xx 完整启动程序,支持网络下载与串通下载
💻
📖 第 1 页 / 共 2 页
字号:
## Makefile for Boot Loader## About configuration file#   make : use .config. if it doesn't exist, copy it from config-default#   make CONFIG=xxx : use specified configuration file.# For more information on the configurations, read the README file#MAJORVERSION = 0MINORVERSION = 12PATCHLEVEL = 17ifdef CONFIGRTCONFIG = $(CONFIG)include $(CONFIG)elseRTCONFIG = .configifeq (.config, $(wildcard .config))include .configendifendififndef RUA_DIRRUA_DIR := ../..endififndef CRYPTODIRCRYPTODIR = ./cryptoendifCRYPTODIR_STAGE1= $(CRYPTODIR)/stage1CRYPTODIR_STAGE0= $(CRYPTODIR)/stage0ifeq ($(ENABLE_CRYPTO), y)ifndef ID$(error No key set ID defined, abort)endifCRYPTO = $(shell find $(CRYPTODIR_STAGE1) -maxdepth 0 -type d)ifneq ($(findstring $(CRYPTODIR_STAGE1), $(CRYPTO)), $(CRYPTODIR_STAGE1))$(error Crypto library not available, check your configuration file ($(RTCONFIG)))endifendififeq ($(ENABLE_CRYPTO_FULL), y)ifneq ($(ENABLE_CRYPTO), y)$(error Enable crypto to get full crypto support)endifCRYPTO = $(shell find $(CRYPTODIR_STAGE0)/src/ -maxdepth 0 -type d)ifneq ($(findstring $(CRYPTODIR_STAGE0)/src/, $(CRYPTO)), $(CRYPTODIR_STAGE0)/src/)$(error Crypto library not available, check your configuration file ($(RTCONFIG)))endifendififeq ($(findstring -DWITH_XIP=1, $(RMCFLAGS)), -DWITH_XIP=1)RMCFLAGS := $(filter-out -DWITH_XIP=1, $(RMCFLAGS))export RMCFLAGS$(warning XIP flag is set, turn it off, now : $(RMCFLAGS))endif# Configuration adjustmentifeq ($(RELEASE), y)ENABLE_FULLFUNCTION = nENABLE_SFLASH = nENABLE_FLASH = nENABLE_IDE = nENABLE_PCI = nENABLE_NETWORK = nendififeq ($(ENABLE_SFLASH), n)ENABLE_SFLASH_ST_M25 = nENABLE_SFLASH_ST_M95 = nENABLE_SFLASH_SST = nendififeq ($(ENABLE_IDE), n)ENABLE_IDE_ISA = nENABLE_IDE_BM = nendififeq ($(ENABLE_PCI), n)ENABLE_PCIHOST_EM86XX = nENABLE_PCIHOST_FPGA = nENABLE_NETWORK_NE2KPCI = nENABLE_NETWORK_RTL81XX = nendififeq ($(ENABLE_NETWORK), n)ENABLE_NETWORK_DNS = nENABLE_NETWORK_NE2KPCI = nENABLE_NETWORK_RTL81XX = nENABLE_NETWORK_TANGO15 = nendififneq ($(EM86XX_ARCH), TANGO15)ENABLE_NETWORK_TANGO15 = nendififeq ($(PRODUCTIONTEST), y)DRAMADJUSTMENT = nDEBUG_DRAMADJUSTMENT = nendif# Build toolsCROSS_COMPILE = arm-elf-CPP = cppAS = $(CROSS_COMPILE)asCC = $(CROSS_COMPILE)gccLD = $(CROSS_COMPILE)ldOBJCOPY = $(CROSS_COMPILE)objcopyOBJDUMP = $(CROSS_COMPILE)objdumpNM = $(CROSS_COMPILE)nm# Compiler optionsCFLAGS  = -O2 -fomit-frame-pointer -fno-builtin -nostdinc -nostdlib -ffunction-sections -fdata-sections -Wall -Wstrict-prototypes -DBOOTLOADER #CFLAGS += -DENABLE_FIQ_TESTifneq ($(RMCFLAGS),)CFLAGS+=$(RMCFLAGS)endifCPPFLAGS = ifeq ($(DEBUG), y)CFLAGS += -DDEBUGCPPFLAGS += -DDEBUGendififeq ($(DEBUG_DRAMADJUSTMENT), y)CFLAGS	+= -DDEBUG_DRAMADJUSTMENTendififeq '$(ENABLE_DVI)' 'y'CFLAGS += -I$(RUA_DIR)endififeq ($(ENABLE_CRYPTO),y)CFLAGS += -I$(CRYPTODIR_STAGE1)/include -I$(RUA_DIR)/emhwlib_hal/include -I$(RUA_DIR)/emhwlib_hal/includeCPPFLAGS += -I$(CRYPTODIR_STAGE1)/include -I. -I$(RUA_DIR)/emhwlib_hal/include -I$(RUA_DIR)/emhwlib_hal/include ifneq ($(ENABLE_CRYPTO_FULL),y)TARGET += loader-sflash-secure-kernel.bin loader-flash-secure-kernel.binendifendif# Target filesifeq ($(PRODUCTIONTEST), y)TARGET += loader-sflash-test.bin loader-flash-test.binelseTARGET += loader-sflash.bin loader-flash.bin loader-sflash-min.binendififeq ($(ENABLE_CRYPTO_FULL), y)TARGET += loader-flash-secure-boot1.binUCODE = $(shell cd $(CRYPTODIR_STAGE0) && find . -maxdepth 1 -name "ucode*.bin")ifeq ($(findstring $(UCODE), ./ucode_sflash.bin), ./ucode_sflash.bin)TARGET += loader-sflash-secure-boot0.binelseifeq ($(findstring $(UCODE), ./ucode_pflash.bin), ./ucode_pflash.bin)TARGET += loader-flash-secure-boot0.binelse$(error Cannot find a suitable microcode for full crypto support)endifendifendif# Object filesOBJS-y = main.o uart.o util.o vsprintf.o em86xxapi.o romfs.o kunzip.o inflate.o boot.o board/board-init.oifeq ($(RELEASE), n)OBJS-y += bootmenu.o uucodec.o timer.o bootconfig.oendififeq ($(EM86XX_ARCH), TANGO15)OBJS-y += i2c_hw.oendifOBJS-$(ENABLE_SFLASH) += sflash.o OBJS-$(ENABLE_SFLASH_ST_M25) += sflash-st-m25.oOBJS-$(ENABLE_SFLASH_ST_M95) += sflash-st-m95.oOBJS-$(ENABLE_SFLASH_SST) += sflash-sst.oOBJS-$(ENABLE_FLASH) += flash.oOBJS-$(ENABLE_IDE) += ide.o atapi.o bootcd.oOBJS-$(ENABLE_PCI) += pcicommon.oifeq ($(ENABLE_PCI), y)	OBJS-$(ENABLE_PCIHOST_EM86XX) += pciem86xx.o	OBJS-$(ENABLE_PCIHOST_FPGA) += pcifpga.oendifOBJS-$(ENABLE_NETWORK) += net.o net_ipv4.o net_ipv4_bootp.o net_ipv4_tftp.oOBJS-$(ENABLE_CRYPTO) += $(CRYPTODIR_STAGE1)/cryptolib.oOBJS-$(ENABLE_NETWORK_DNS) += net_ipv4_dns.oOBJS-$(ENABLE_NETWORK_NE2KPCI) += ne2kpci.oOBJS-$(ENABLE_NETWORK_RTL81XX) += rtl81xx.oOBJS-$(ENABLE_NETWORK_TANGO15) += em86xx_eth.oifeq ($(PRODUCTIONTEST), y)OBJS-y += test-stage1.o board/test-stage1.oendifOBJS-$(ENABLE_DVI) += $(RUA_DIR)/emhwlib_hal/i2c/src/i2c_hal.oDEVZERO := $(wildcard /dev/zero)ifndef DEVZERO error:	@echo "You need to create a /dev/zero device - mknod -m 666 /dev/zero c 1 5";	@exit 1;endif ifneq ($(PRODUCTIONTEST), y)ifeq ($(ENABLE_FLASH), y)ifeq ($(ENABLE_2NDBOOT), y)TARGET += loader-flash-stage2.binendifendifendififeq ($(ENABLE_FIP), y)OBJS-y += fipkernel.oendifall: $(RTCONFIG) checkboard version.h loader.bin $(TARGET) checkbin# Check that the CONFIG is defined correctly (or .config exist)$(RTCONFIG) :	$(error Please use the appropriate configuration file to compile the kernel: make CONFIG=config-yourconfig)checkboard : 	@rm -f board	@ln -sf board-${BOARD} board# automatically generated fileversion.h : $(RTCONFIG) Makefile	@echo "/*" > $@	@echo " * Boot Loader Version" >> $@	@echo " *" >> $@	@echo " * This file is automatically generated from Makefile" >> $@	@echo " */" >> $@	@echo "" >> $@	@echo "#ifndef __BOOTLOADER_VERSION_H" >> $@	@echo "#define __BOOTLOADER_VERSION_H" >> $@	@echo "" >> $@	@echo "#define BOOTLOADER_MAJORVERSION		$(MAJORVERSION)" >> $@	@echo "#define BOOTLOADER_MINORVERSION		$(MINORVERSION)" >> $@	@echo "#define BOOTLOADER_PATCHLEVEL		$(PATCHLEVEL)" >> $@	@echo "" >> $@	@echo "#define MAKE_VERSION(a, b, c)		(((a) << 16) | ((b) << 8) | (c))" >> $@	@echo "#define BOOTLOADER_VERSION			MAKE_VERSION($(MAJORVERSION), $(MINORVERSION), $(PATCHLEVEL))" >> $@	@echo "#define BOOTLOADER_VERSIONSTR		\"$(MAJORVERSION).$(MINORVERSION).$(PATCHLEVEL)\"" >> $@	@echo "" >> $@ifeq ($(RELEASE), n)	@echo "#define CONFIG_DEVEL" >> $@else	@echo "#define CONFIG_RELEASE" >> $@endif	@echo "" >> $@ifeq ($(ENABLE_FULLFUNCTION), y)	@echo "#define CONFIG_ENABLE_FULLFUNCTION" >> $@endififeq ($(ENABLE_SFLASH), y)	@echo "#define CONFIG_ENABLE_SFLASH" >> $@ifeq ($(ENABLE_SFLASH_ST_M25), y)	@echo "#define CONFIG_ENABLE_SFLASH_ST_M25" >> $@endififeq ($(ENABLE_SFLASH_ST_M95), y)	@echo "#define CONFIG_ENABLE_SFLASH_ST_M95" >> $@endififeq ($(ENABLE_SFLASH_SST), y)	@echo "#define CONFIG_ENABLE_SFLASH_SST" >> $@endifendififeq ($(ENABLE_FLASH), y)	@echo "#define CONFIG_ENABLE_FLASH" >> $@	@echo "#define MAX_ROMFS_SIZE	$(MAX_ROMFS_SIZE)" >> $@else	@echo "#define MAX_ROMFS_SIZE	0" >> $@endififeq ($(ENABLE_2NDBOOT), y)	@echo "#define CONFIG_ENABLE_2NDBOOT" >> $@	@echo "#define STAGE2_IMAGE_SIZE	$(STAGE2_IMAGE_SIZE)" >> $@ifeq ($(BOOT_2NDBOOT), y)	@echo "#define BOOT_2NDBOOT" >> $@endifendififeq ($(ENABLE_FIP), y)	@echo "#define CONFIG_ENABLE_FIP" >> $@	@echo "#define CONFIG_EM86XX_FIP_$(EM86XX_FIP)" >> $@endififeq ($(ENABLE_IDE), y)	@echo "#define CONFIG_ENABLE_IDE" >> $@endififeq ($(ENABLE_IDE_ISA), y)	@echo "#define CONFIG_ENABLE_IDE_ISA" >> $@endififeq ($(ENABLE_IDE_BM), y)	@echo "#define CONFIG_ENABLE_IDE_BM" >> $@endififeq ($(ENABLE_PCI), y)	@echo "#define CONFIG_ENABLE_PCI" >> $@ifeq ($(ENABLE_PCIHOST_EM86XX), y)	@echo "#define CONFIG_ENABLE_PCIHOST_EM86XX" >> $@endififeq ($(ENABLE_PCIHOST_FPGA), y)	@echo "#define CONFIG_ENABLE_PCIHOST_PCIFPGA" >> $@endifendififeq ($(ENABLE_CRYPTO), y)	@echo "#define CONFIG_ENABLE_CRYPTO" >> $@endififeq ($(ENABLE_CRYPTO_FULL), y)	@echo "#define CONFIG_ENABLE_CRYPTO_FULL" >> $@	@echo "#define STAGE0_CRYPTO_IMAGE_SIZE $(STAGE0_CRYPTO_IMAGE_SIZE)" >> $@endififeq ($(ENABLE_NETWORK), y)	@echo "#define CONFIG_ENABLE_NETWORK" >> $@ifeq ($(ENABLE_NETWORK_DNS), y)	@echo "#define CONFIG_ENABLE_NETWORK_DNS" >> $@endififeq ($(ENABLE_NETWORK_NE2KPCI), y)	@echo "#define CONFIG_ENABLE_NETWORK_NE2KPCI" >> $@endififeq ($(ENABLE_NETWORK_RTL81XX), y)	@echo "#define CONFIG_ENABLE_NETWORK_RTL81XX" >> $@endififeq ($(ENABLE_NETWORK_TANGO15), y)	@echo "#define CONFIG_ENABLE_NETWORK_TANGO15" >> $@endifendififeq ($(DISABLE_HELP_MSGS), y)	@echo "#define CONFIG_DISABLE_HELP_MSGS" >> $@endififeq ($(ENABLE_IRQHANDLER), y)	@echo "#define CONFIG_ENABLE_IRQHANDLER" >> $@	@echo "#define CONFIG_SD_PRESERVE_FIQ" >> $@endififeq ($(ENABLE_BITMAPS), y)	@echo "#define CONFIG_ENABLE_BITMAPS" >> $@endififeq ($(ENABLE_UCODES), y)	@echo "#define CONFIG_ENABLE_UCODES" >> $@endififeq ($(ENABLE_USERPREF), y)	@echo "#define CONFIG_ENABLE_USERPREF" >> $@endififeq ($(ENABLE_VSYNCPARAM), y)	@echo "#define CONFIG_ENABLE_VSYNCPARAM" >> $@endififeq ($(ENABLE_DVI), y)	@echo "#define CONFIG_ENABLE_DVI" >> $@endif	@echo "" >> $@	@echo "#define CONFIG_ARCH_$(EM86XX_ARCH)" >> $@	@echo "#define CONFIG_ARCH                  \"$(EM86XX_ARCH)\"" >> $@ifeq ($(EM86XX_ARCH), MAMBO)	@echo "#define CONFIG_ARCH_MAMBO_REV        $(EM86XX_REV)" >> $@elseifeq ($(EM86XX_ARCH), TANGO10)	@echo "#define CONFIG_ARCH_TANGO" >> $@	@echo "#define CONFIG_ARCH_TANGO10_REV        $(EM86XX_REV)" >> $@elseifeq ($(EM86XX_ARCH), TANGO15)	@echo "#define CONFIG_ARCH_TANGO" >> $@	@echo "#define CONFIG_ARCH_TANGO15_REV        $(EM86XX_REV)" >> $@endifendifendif	@echo "#define CONFIG_BOARD                 \"$(BOARD)\"" >> $@ifdef SUBBOARD	@echo "#define CONFIG_SUBBOARD              \"$(SUBBOARD)\"" >> $@	@echo "#define CONFIG_SUBBOARD_LEN          $(SUBBOARD_LEN)" >> $@endif	@echo "#define DRAMBASE                     $(DRAMBASE)" >> $@	@echo "#define LOADER_DRAMBASE              $(LOADERBASE)" >> $@	@echo "#define STAGE1_IMAGE_SIZE            $(STAGE1_IMAGE_SIZE)" >> $@ifeq ($(ENABLE_CRYPTO), y)	@echo "#define ENCRYPTED_ROM0_NAME          \"$(ENCRYPTED_ROM0_NAME)\"" >> $@ifeq ($(ENABLE_ENCRYPTED_OPT_ROM), y)	@echo "#define ENABLE_ENCRYPTED_OPT_ROM" >> $@	@echo "#define CRYPTO_KERNEL_CMDLINE       \"$(CRYPTO_KERNEL_CMDLINE)\"" >> $@	@echo "#define ENCRYPTED_OPT_DRAM_SIZE      $(ENCRYPTED_OPT_DRAM_SIZE)" >> $@ 	@echo "#define ENCRYPTED_ROM0_SIZE          $(ENCRYPTED_ROM0_SIZE)" >> $@	@echo "#define ENCRYPTED_ROM0_ADDR          $(ENCRYPTED_ROM0_ADDR)" >> $@	@echo "#define ENCRYPTED_OPT_ROM1_NAME      \"$(ENCRYPTED_OPT_ROM1_NAME)\"" >> $@	@echo "#define ENCRYPTED_OPT_ROM1_ADDR      $(ENCRYPTED_OPT_ROM1_ADDR)" >> $@	@echo "#define ENCRYPTED_OPT_ROM1_SIZE      $(ENCRYPTED_OPT_ROM1_SIZE)" >> $@	@echo "#define ENCRYPTED_OPT_ROM2_NAME      \"$(ENCRYPTED_OPT_ROM2_NAME)\"" >> $@	@echo "#define ENCRYPTED_OPT_ROM2_ADDR      $(ENCRYPTED_OPT_ROM2_ADDR)" >> $@	@echo "#define ENCRYPTED_OPT_ROM2_SIZE      $(ENCRYPTED_OPT_ROM2_SIZE)" >> $@	@echo "#define ENCRYPTED_OPT_ROM3_NAME      \"$(ENCRYPTED_OPT_ROM3_NAME)\"" >> $@	@echo "#define ENCRYPTED_OPT_ROM3_ADDR      $(ENCRYPTED_OPT_ROM3_ADDR)" >> $@	@echo "#define ENCRYPTED_OPT_ROM3_SIZE      $(ENCRYPTED_OPT_ROM3_SIZE)" >> $@	@echo "#define ENCRYPTED_OPT_ROM4_NAME      \"$(ENCRYPTED_OPT_ROM4_NAME)\"" >> $@	@echo "#define ENCRYPTED_OPT_ROM4_ADDR      $(ENCRYPTED_OPT_ROM4_ADDR)" >> $@	@echo "#define ENCRYPTED_OPT_ROM4_SIZE      $(ENCRYPTED_OPT_ROM4_SIZE)" >> $@endififeq ($(ENABLE_SIGNED_OPT_ROM), y)	@echo "#define ENABLE_SIGNED_OPT_ROM" >> $@	@echo "#define SIGNED_OPT_ROM1_ADDR         $(SIGNED_OPT_ROM1_ADDR)" >> $@	@echo "#define SIGNED_OPT_ROM1_SIZE         $(SIGNED_OPT_ROM1_SIZE)" >> $@	@echo "#define SIGNED_OPT_ROM2_ADDR         $(SIGNED_OPT_ROM2_ADDR)" >> $@	@echo "#define SIGNED_OPT_ROM2_SIZE         $(SIGNED_OPT_ROM2_SIZE)" >> $@	@echo "#define SIGNED_OPT_ROM3_ADDR         $(SIGNED_OPT_ROM3_ADDR)" >> $@	@echo "#define SIGNED_OPT_ROM3_SIZE         $(SIGNED_OPT_ROM3_SIZE)" >> $@	@echo "#define SIGNED_OPT_ROM4_ADDR         $(SIGNED_OPT_ROM4_ADDR)" >> $@	@echo "#define SIGNED_OPT_ROM4_SIZE         $(SIGNED_OPT_ROM4_SIZE)" >> $@endifendif	@echo "#define DEFAULT_UART_PORT            $(DEFAULT_UART_PORT)" >> $@	@echo "#define DEFAULT_UART_BAUDRATE        $(DEFAULT_UART_BAUDRATE)" >> $@ifeq ($(DRAMADJUSTMENT), y)	@echo "#define CONFIG_DRAM_ADJUSTMENT" >> $@endififeq ($(TESTLOADERONRAM), y)	@echo "#define CONFIG_TESTLOADERONRAM" >> $@endif	@echo "" >> $@	@echo "#define DEFAULT_CLKGEN_PLL           $(DEFAULT_CLKGEN_PLL)" >> $@	@echo "#define DEFAULT_DRAM0_DUNIT_CFG      $(DEFAULT_DRAM0_DUNIT_CFG)" >> $@	@echo "#define DEFAULT_DRAM1_DUNIT_CFG      $(DEFAULT_DRAM1_DUNIT_CFG)" >> $@	@echo "#define DEFAULT_DRAM0_SIZE           $(DEFAULT_DRAM0_SIZE)" >> $@	@echo "#define DEFAULT_DRAM1_SIZE           $(DEFAULT_DRAM1_SIZE)" >> $@	@echo "#define DEFAULT_DRAM_DUNIT_DELAY0_CTRL $(DEFAULT_DRAM_DUNIT_DELAY0_CTRL)" >> $@	@echo "#define DEFAULT_PCI_SUBSYSTEM_ID     $(DEFAULT_PCI_SUBSYSTEM_ID)" >> $@	@echo "#define DEFAULT_PCI_REVISION_ID      $(DEFAULT_PCI_REVISION_ID)" >> $@	@echo "#define DEFAULT_PCI_MEMORY_SIZE      $(DEFAULT_PCI_MEMORY_SIZE)" >> $@	@echo "#define DEFAULT_CONFIGVALID          $(DEFAULT_CONFIGVALID)" >> $@	@echo "#define DEFAULT_SFLA_DRIVER_SPEED    $(DEFAULT_SFLA_DRIVER_SPEED)" >> $@	@echo "#define DEFAULT_PB_DEFAULT_TIMING    $(DEFAULT_PB_DEFAULT_TIMING)" >> $@	@echo "#define DEFAULT_PB_CS_CONFIG         $(DEFAULT_PB_CS_CONFIG)" >> $@	@echo "#define DEFAULT_PB_TIMING0           $(DEFAULT_PB_TIMING0)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING0       $(DEFAULT_PB_USE_TIMING0)" >> $@	@echo "#define DEFAULT_PB_TIMING1           $(DEFAULT_PB_TIMING1)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING1       $(DEFAULT_PB_USE_TIMING1)" >> $@	@echo "#define DEFAULT_PB_TIMING2           $(DEFAULT_PB_TIMING2)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING2       $(DEFAULT_PB_USE_TIMING2)" >> $@	@echo "#define DEFAULT_PB_TIMING3           $(DEFAULT_PB_TIMING3)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING3       $(DEFAULT_PB_USE_TIMING3)" >> $@	@echo "#define DEFAULT_PB_TIMING4           $(DEFAULT_PB_TIMING4)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING4       $(DEFAULT_PB_USE_TIMING4)" >> $@	@echo "#define DEFAULT_PB_TIMING5           $(DEFAULT_PB_TIMING5)" >> $@	@echo "#define DEFAULT_PB_USE_TIMING5       $(DEFAULT_PB_USE_TIMING5)" >> $@	@echo "#define DEFAULT_IRQ_GPIOMAP          $(DEFAULT_IRQ_GPIOMAP)" >> $@	@echo "#define DEFAULT_BOOTFLAG             $(DEFAULT_BOOTFLAG)" >> $@	@echo "#define DEFAULT_GPIO_DIR             $(DEFAULT_GPIO_DIR)" >> $@	@echo "#define DEFAULT_GPIO_OUTPUT          $(DEFAULT_GPIO_OUTPUT)" >> $@ifeq ($(OPTIMIZE_SIZE), y)	@echo "#define CONFIG_OPTIMIZE_SIZE" >> $@endif	@echo "#endif" >> $@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -