LOCAL_DIR := $(GET_LOCAL_DIR) MODULE := $(LOCAL_DIR) ARCH := arm ARM_CPU := cortex-a9-neon WITH_SMP ?= 1 SMP_MAX_CPUS := 2 MODULE_DEPS := \ lib/bio \ lib/cbuf \ lib/watchdog \ dev/cache/pl310 \ dev/interrupt/arm_gic \ dev/timer/arm_cortex_a9 MODULE_SRCS += \ $(LOCAL_DIR)/clocks.c \ $(LOCAL_DIR)/debug.c \ $(LOCAL_DIR)/fpga.c \ $(LOCAL_DIR)/gpio.c \ $(LOCAL_DIR)/platform.c \ $(LOCAL_DIR)/qspi.c \ $(LOCAL_DIR)/spiflash.c \ $(LOCAL_DIR)/start.S \ $(LOCAL_DIR)/swdt.c \ $(LOCAL_DIR)/uart.c \ # default to no sdram unless the target calls it out ZYNQ_SDRAM_SIZE ?= 0 # default to having the gem ethernet controller ZYNQ_WITH_GEM_ETH ?= 1 ifeq ($(ZYNQ_WITH_GEM_ETH),1) MODULE_SRCS += \ $(LOCAL_DIR)/gem.c \ GLOBAL_DEFINES += \ ZYNQ_WITH_GEM_ETH=1 \ ARM_ARCH_WAIT_FOR_SECONDARIES=1 # gem driver depends on minip interface MODULE_DEPS += \ lib/minip endif ifeq ($(ZYNQ_USE_SRAM),1) MEMBASE := 0x0 MEMSIZE := 0x40000 # 4 * 64K GLOBAL_DEFINES += \ ZYNQ_CODE_IN_SRAM=1 ifneq ($(ZYNQ_SDRAM_SIZE),0) GLOBAL_DEFINES += \ ZYNQ_SDRAM_INIT=1 endif else MEMBASE := 0x00000000 MEMSIZE ?= $(ZYNQ_SDRAM_SIZE) # 256MB KERNEL_LOAD_OFFSET := 0x00100000 # loaded 1MB into physical space # set a #define so system code can decide if it needs to reinitialize dram or not GLOBAL_DEFINES += \ ZYNQ_CODE_IN_SDRAM=1 endif # put our kernel at 0xc0000000 so we can have axi bus 1 mapped at 0x80000000 KERNEL_BASE = 0xc0000000 GLOBAL_DEFINES += \ SDRAM_SIZE=$(ZYNQ_SDRAM_SIZE) LINKER_SCRIPT += \ $(BUILDDIR)/system-onesegment.ld # python script to generate the zynq's bootrom bootheader BOOTHEADERBIN := $(BUILDDIR)/BOOT.BIN MKBOOTHEADER := $(LOCAL_DIR)/mkbootheader.py EXTRA_BUILDDEPS += $(BOOTHEADERBIN) GENERATED += $(BOOTHEADERBIN) $(BOOTHEADERBIN): $(OUTBIN) $(MKBOOTHEADER) @$(MKDIR) $(NOECHO)echo generating $@; \ $(MKBOOTHEADER) $(OUTBIN) $@ include make/module.mk