1LOCAL_DIR := $(GET_LOCAL_DIR) 2 3MODULE := $(LOCAL_DIR) 4 5ARCH := arm 6ARM_CPU := cortex-a9-neon 7WITH_SMP ?= 1 8SMP_MAX_CPUS := 2 9 10MODULE_DEPS := \ 11 lib/bio \ 12 lib/cbuf \ 13 lib/watchdog \ 14 dev/cache/pl310 \ 15 dev/interrupt/arm_gic \ 16 dev/timer/arm_cortex_a9 17 18MODULE_SRCS += \ 19 $(LOCAL_DIR)/clocks.c \ 20 $(LOCAL_DIR)/debug.c \ 21 $(LOCAL_DIR)/fpga.c \ 22 $(LOCAL_DIR)/gpio.c \ 23 $(LOCAL_DIR)/platform.c \ 24 $(LOCAL_DIR)/qspi.c \ 25 $(LOCAL_DIR)/spiflash.c \ 26 $(LOCAL_DIR)/start.S \ 27 $(LOCAL_DIR)/swdt.c \ 28 $(LOCAL_DIR)/uart.c \ 29 30# default to no sdram unless the target calls it out 31ZYNQ_SDRAM_SIZE ?= 0 32 33# default to having the gem ethernet controller 34ZYNQ_WITH_GEM_ETH ?= 1 35 36ifeq ($(ZYNQ_WITH_GEM_ETH),1) 37MODULE_SRCS += \ 38 $(LOCAL_DIR)/gem.c \ 39 40GLOBAL_DEFINES += \ 41 ZYNQ_WITH_GEM_ETH=1 \ 42 ARM_ARCH_WAIT_FOR_SECONDARIES=1 43 44# gem driver depends on minip interface 45MODULE_DEPS += \ 46 lib/minip 47endif 48 49ifeq ($(ZYNQ_USE_SRAM),1) 50MEMBASE := 0x0 51MEMSIZE := 0x40000 # 4 * 64K 52 53GLOBAL_DEFINES += \ 54 ZYNQ_CODE_IN_SRAM=1 55 56ifneq ($(ZYNQ_SDRAM_SIZE),0) 57GLOBAL_DEFINES += \ 58 ZYNQ_SDRAM_INIT=1 59endif 60 61else 62MEMBASE := 0x00000000 63MEMSIZE ?= $(ZYNQ_SDRAM_SIZE) # 256MB 64KERNEL_LOAD_OFFSET := 0x00100000 # loaded 1MB into physical space 65 66# set a #define so system code can decide if it needs to reinitialize dram or not 67GLOBAL_DEFINES += \ 68 ZYNQ_CODE_IN_SDRAM=1 69endif 70 71# put our kernel at 0xc0000000 so we can have axi bus 1 mapped at 0x80000000 72KERNEL_BASE = 0xc0000000 73 74GLOBAL_DEFINES += \ 75 SDRAM_SIZE=$(ZYNQ_SDRAM_SIZE) 76 77LINKER_SCRIPT += \ 78 $(BUILDDIR)/system-onesegment.ld 79 80# python script to generate the zynq's bootrom bootheader 81BOOTHEADERBIN := $(BUILDDIR)/BOOT.BIN 82MKBOOTHEADER := $(LOCAL_DIR)/mkbootheader.py 83EXTRA_BUILDDEPS += $(BOOTHEADERBIN) 84GENERATED += $(BOOTHEADERBIN) 85 86$(BOOTHEADERBIN): $(OUTBIN) $(MKBOOTHEADER) 87 @$(MKDIR) 88 $(NOECHO)echo generating $@; \ 89 $(MKBOOTHEADER) $(OUTBIN) $@ 90 91include make/module.mk 92