2014-04-18 21:43:28 -07:00
|
|
|
LOCAL_DIR := $(GET_LOCAL_DIR)
|
|
|
|
|
|
|
|
|
|
MODULE := $(LOCAL_DIR)
|
|
|
|
|
|
|
|
|
|
ARCH := arm
|
2014-06-11 14:37:27 -07:00
|
|
|
ARM_CPU := cortex-a9-neon
|
2015-03-31 15:43:47 -07:00
|
|
|
WITH_SMP ?= 1
|
2015-03-27 21:43:29 -07:00
|
|
|
SMP_MAX_CPUS := 2
|
2014-04-18 21:43:28 -07:00
|
|
|
|
2014-04-21 01:19:22 -07:00
|
|
|
MODULE_DEPS := \
|
2014-06-27 15:17:38 -07:00
|
|
|
lib/bio \
|
2014-04-27 14:29:15 -07:00
|
|
|
lib/cbuf \
|
2015-05-12 17:46:53 -07:00
|
|
|
lib/watchdog \
|
2014-06-03 21:17:52 -07:00
|
|
|
dev/cache/pl310 \
|
2014-05-11 00:45:58 -07:00
|
|
|
dev/interrupt/arm_gic \
|
|
|
|
|
dev/timer/arm_cortex_a9
|
2014-04-21 01:19:22 -07:00
|
|
|
|
2014-04-18 21:43:28 -07:00
|
|
|
MODULE_SRCS += \
|
2014-04-21 01:19:22 -07:00
|
|
|
$(LOCAL_DIR)/clocks.c \
|
2014-04-18 21:43:28 -07:00
|
|
|
$(LOCAL_DIR)/debug.c \
|
2014-06-27 15:03:23 -07:00
|
|
|
$(LOCAL_DIR)/fpga.c \
|
2015-03-23 16:30:43 -07:00
|
|
|
$(LOCAL_DIR)/gpio.c \
|
2014-04-18 21:43:28 -07:00
|
|
|
$(LOCAL_DIR)/platform.c \
|
2014-06-27 15:03:23 -07:00
|
|
|
$(LOCAL_DIR)/qspi.c \
|
2014-06-27 15:17:38 -07:00
|
|
|
$(LOCAL_DIR)/spiflash.c \
|
2014-07-11 18:07:40 -07:00
|
|
|
$(LOCAL_DIR)/start.S \
|
2015-05-12 17:46:53 -07:00
|
|
|
$(LOCAL_DIR)/swdt.c \
|
2014-05-26 13:30:12 -07:00
|
|
|
$(LOCAL_DIR)/uart.c \
|
2014-04-18 21:43:28 -07:00
|
|
|
|
2014-07-11 18:07:40 -07:00
|
|
|
# default to no sdram unless the target calls it out
|
|
|
|
|
ZYNQ_SDRAM_SIZE ?= 0
|
|
|
|
|
|
2015-03-17 17:47:54 -07:00
|
|
|
# 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 += \
|
2015-06-01 18:35:25 -07:00
|
|
|
ZYNQ_WITH_GEM_ETH=1 \
|
2015-06-02 13:39:15 -07:00
|
|
|
ARM_ARCH_WAIT_FOR_SECONDARIES=1
|
2015-03-17 17:47:54 -07:00
|
|
|
|
|
|
|
|
# gem driver depends on minip interface
|
|
|
|
|
MODULE_DEPS += \
|
|
|
|
|
lib/minip
|
|
|
|
|
endif
|
|
|
|
|
|
2014-04-20 21:20:22 -07:00
|
|
|
ifeq ($(ZYNQ_USE_SRAM),1)
|
2014-04-18 21:43:28 -07:00
|
|
|
MEMBASE := 0x0
|
2015-03-19 20:50:11 -07:00
|
|
|
MEMSIZE := 0x40000 # 4 * 64K
|
2014-08-13 17:22:49 -07:00
|
|
|
|
|
|
|
|
GLOBAL_DEFINES += \
|
2015-03-17 17:47:54 -07:00
|
|
|
ZYNQ_CODE_IN_SRAM=1
|
|
|
|
|
|
|
|
|
|
ifneq ($(ZYNQ_SDRAM_SIZE),0)
|
|
|
|
|
GLOBAL_DEFINES += \
|
2014-08-13 17:22:49 -07:00
|
|
|
ZYNQ_SDRAM_INIT=1
|
2015-03-17 17:47:54 -07:00
|
|
|
endif
|
|
|
|
|
|
2014-04-20 21:20:22 -07:00
|
|
|
else
|
2014-07-11 18:07:40 -07:00
|
|
|
MEMBASE := 0x00000000
|
|
|
|
|
MEMSIZE ?= $(ZYNQ_SDRAM_SIZE) # 256MB
|
2014-08-13 17:22:49 -07:00
|
|
|
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
|
2014-04-20 21:20:22 -07:00
|
|
|
endif
|
2014-04-18 21:43:28 -07:00
|
|
|
|
2014-07-24 15:25:43 -07:00
|
|
|
# put our kernel at 0xc0000000 so we can have axi bus 1 mapped at 0x80000000
|
|
|
|
|
KERNEL_BASE = 0xc0000000
|
|
|
|
|
|
2014-04-18 21:43:28 -07:00
|
|
|
GLOBAL_DEFINES += \
|
2014-07-11 18:07:40 -07:00
|
|
|
SDRAM_SIZE=$(ZYNQ_SDRAM_SIZE)
|
2014-04-18 21:43:28 -07:00
|
|
|
|
|
|
|
|
LINKER_SCRIPT += \
|
|
|
|
|
$(BUILDDIR)/system-onesegment.ld
|
|
|
|
|
|
2014-04-20 21:20:22 -07:00
|
|
|
# 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) $@
|
|
|
|
|
|
2014-04-18 21:43:28 -07:00
|
|
|
include make/module.mk
|