# # The TARGET is expected to indicate which *specific* AT91SAM7 chip # is being used, since features and memory vary from chip to chip # # chip ram rom EMAC CAN # AT91CHIP := sam7s64 16k 64k N N # AT91CHIP := sam7s256 64k 256k N N # AT91CHIP := sam7x256 64k 256k Y Y # # ROMBASE, MEMBASE, and MEMSIZE are required for the linker script ROMBASE := 0x0 MEMBASE := 0x200000 TMP_CFG := bad ifeq ($(AT91CHIP), sam7x256) DEFINES += AT91_SAM7X=1 DEFINES += AT91_RAMSIZE=65536 DEFINES += AT91_ROMSIZE=262144 MEMSIZE := 65536 TMP_CFG := ok endif ifeq ($(AT91CHIP), sam7s256) DEFINES += AT91_SAM7S=1 DEFINES += AT91_RAMSIZE=65536 DEFINES += AT91_ROMSIZE=262144 MEMSIZE := 65536 TMP_CFG := ok endif ifeq ($(AT91CHIP), sam7s64) DEFINES += AT91_SAM7S=1 DEFINES += AT91_RAMSIZE=16384 DEFINES += AT91_ROMSIZE=65536 MEMSIZE := 16384 TMP_CFG := ok endif ifeq ($(TMP_CFG), bad) $(error The AT91SAM7 platform requires AT91CHIP be set by the target) endif LOCAL_DIR := $(GET_LOCAL_DIR) ARCH := arm ARM_CPU := arm7tdmi DEFINES += AT91_MCK_MHZ=48000000 INCLUDES += \ -I$(LOCAL_DIR)/include OBJS += \ $(LOCAL_DIR)/debug.o \ $(LOCAL_DIR)/interrupts.o \ $(LOCAL_DIR)/platform_early.o \ $(LOCAL_DIR)/platform.o \ $(LOCAL_DIR)/timer.o \ $(LOCAL_DIR)/init_clock.o \ $(LOCAL_DIR)/init_clock_48mhz.o \ $(LOCAL_DIR)/mux.o \ $(LOCAL_DIR)/emac_dev.o # use a two segment memory layout, where all of the read-only sections # of the binary reside in rom, and the read/write are in memory. The # ROMBASE, MEMBASE, and MEMSIZE make variables are required to be set # for the linker script to be generated properly. # LINKER_SCRIPT += \ $(BUILDDIR)/system-twosegment.ld