blob: b90fffbb142fa48379cf38530513a517ffcc1c67 (
plain) (
tree)
|
|
###############################################################################
#
# Beaglebone Black makefile
#
#
PLATFORM = BEAGLEBONEBLACK
TOPDIR = $(UMONTOP)
TGTDIR = beagleboneblack
CPUTYPE = arm
FILETYPE = elf
TOOLSET = RTEMS
ifeq ($(TOOLSET),RTEMS)
#
# Using tools built by RTEMS Source Builder:
#
ABIDIR = $(HOME)/development/rtems/4.11/lib/gcc/arm-rtems4.11/4.9.2
TOOL_PREFIX = arm-rtems4.11
else
#
# Using tools installed by "sudo apt-get install gcc-arm-none-eabi"...
#
ABIDIR = /usr/lib/gcc/arm-none-eabi/4.8.2
TOOL_PREFIX = /usr/bin/arm-none-eabi
endif
LIBABIDIR = -L $(ABIDIR)
COMMON_AFLAGS = -c -D PLATFORM_$(PLATFORM)=1 -D ASSEMBLY_ONLY
CUSTOM_CFLAGS = -mcpu=cortex-a8 -O2 -isystem $(ABIDIR)/include -Wno-char-subscripts
###############################################################################
#
# Memory map configuration:
# The following variables are used to establish the system's memory map.
#
BOOTROMBASE=0x402F0400
BOOTROMLEN=0x010000
BOOTRAMBASE=0x80000000
BOOTRAMLEN=0x010000
RAMTSTROMBASE=0x80100000
RAMTSTROMLEN=0x100000
ATAGSIZE=0x1000
# These next two hard-coded values are used by the ramtst version of
# uMon to allow it to know where these flash-based structures are located.
MACADDRBASE=0x08000020
ALTTFSDEVTBLBASE=0x08000040
include $(TOPDIR)/make/common.make
# Build each variable from a list of individual filenames...
#
LOCSSRC =
CPUSSRC = vectors_arm.S
LOCCSRC = cpuio.c etherdev.c am335x_sd.c am335x_mmc.c
COMCSRC = arp.c cast.c cache.c chario.c cmdtbl.c \
docmd.c dhcp_00.c dhcpboot.c dns.c edit.c env.c ethernet.c \
flash.c gdb.c icmp.c if.c ledit_vt100.c monprof.c \
fbi.c font.c mprintf.c memcmds.c malloc.c moncom.c memtrace.c \
misccmds.c misc.c nand.c password.c redirect.c \
reg_cache.c sbrk.c sd.c \
start.c struct.c symtbl.c syslog.c tcpstuff.c tfs.c tfsapi.c \
tfsclean1.c tfscli.c tfsloader.c tfslog.c tftp.c timestuff.c \
tsi.c xmodem.c
CPUCSRC = except_arm.c misc_arm.c strace_arm.c
IODEVSRC = uart16550.c
FLASHSRC =
include $(TOPDIR)/make/objects.make
OBJS = $(LOCSOBJ) $(CPUSOBJ) $(LOCCOBJ) $(CPUCOBJ) $(COMCOBJ) \
$(FLASHOBJ) $(IODEVOBJ)
#########################################################################
#
# Targets...
# boot:
# The default target is "boot", a shortcut to $(BUILDDIR)/boot.$(FILETYPE).
# This builds the bootflash image that can be used by 'newmon' to
# load a new version onto an already running system.
#
boot: $(BUILDDIR)/boot.$(FILETYPE)
$(CC) $(ASMFLAGS) -D \
BIN_SIZE=$(shell wc --bytes build_$(PLATFORM)/boot.bin | cut -f 1 -d ' ') \
-o gp_header.o gp_header.S
${CC} ${ASMFLAGS} -o config_header.o config_header.S
$(OBJCOPY) -O binary gp_header.o build_$(PLATFORM)/gp_header.bin
${OBJCOPY} -O binary config_header.o build_${PLATFORM}/config_header.bin
@cat build_$(PLATFORM)/gp_header.bin build_$(PLATFORM)/boot.bin > build_$(PLATFORM)/MLO
@cat build_$(PLATFORM)/config_header.bin build_$(PLATFORM)/gp_header.bin \
build_$(PLATFORM)/boot.bin > build_$(PLATFORM)/rawboot.bin
@echo Boot version of uMon built under $(BUILDDIR) ...
@ls $(BUILDDIR)/boot*
@echo Boot version of uMon prepended with a GP header built under $(BUILDDIR) ...
@ls $(BUILDDIR)/MLO
@echo Boot version of uMon prepended with a Configuration header and a GP header built
@echo under $(BUILDDIR) ...
@ls $(BUILDDIR)/rawboot.bin
# ramtst:
# A shortcut to $(BUILDDIR)/ramtst.$(FILETYPE). This is a version of uMon
# that resides strictly in RAM and is used for two main purposes:
# 1. To test new monitor features prior to burning the boot flash.
# 2. To be downloaded into the RAM space of a board that has no programmed
# boot flash. This provides a running monitor that can then accept
# an incoming bootflash image using 'newmon'.
#
ramtst: $(BUILDDIR)/ramtst.$(FILETYPE)
@echo Ram-resident test version of uMon built under $(BUILDDIR) ...
@ls $(BUILDDIR)/ramtst*
$(BUILDDIR)/boot.$(FILETYPE): $(BUILDDIR) $(OBJS) libz.a \
libg.a Makefile
$(CC) $(ASMFLAGS) -o rom_reset.o rom_reset.S
$(MAKE_MONBUILT)
sed -e s/ROMBASE/$(BOOTROMBASE)/ -e s/ROMLEN/$(BOOTROMLEN)/ \
-e s/DRAMBASE/$(BOOTRAMBASE)/ -e s/DRAMLEN/$(BOOTRAMLEN)/ -e s/ATAGSIZE/$(ATAGSIZE)/ \
$(PLATFORM)_$(@F:.$(FILETYPE)=.ldt) > $(PLATFORM)_$(@F:.$(FILETYPE)=.ld)
$(LINK) -e coldstart $(OBJS) monbuilt.o libz.a \
libg.a $(LIBABIDIR) $(LIBGCC)
$(MAKE_BINARY)
$(MAKE_GNUSYMS)
$(BUILDDIR)/ramtst.$(FILETYPE): $(BUILDDIR) $(OBJS) libz.a \
libg.a Makefile
$(CC) $(ASMFLAGS) -o ram_reset.o ram_reset.S
$(MAKE_MONBUILT)
sed -e s/RAMTSTROMBASE/$(RAMTSTROMBASE)/ \
-e s/RAMTSTROMLEN/$(RAMTSTROMLEN)/ -e s/ATAGSIZE/$(ATAGSIZE)/ \
-e s/MACADDRBASE/$(MACADDRBASE)/ -e s/ALTTFSDEVTBLBASE/$(ALTTFSDEVTBLBASE)/ \
$(PLATFORM)_$(@F:.$(FILETYPE)=.ldt) > $(PLATFORM)_$(@F:.$(FILETYPE)=.ld)
$(LINK) -e coldstart $(OBJS) monbuilt.o libz.a libg.a $(LIBGCC)
$(MAKE_BINARY)
$(MAKE_GNUSYMS)
include $(TOPDIR)/make/rules.make
#########################################################################
#
# Miscellaneous...
cscope_local:
ls rom_reset.S ram_reset.S >cscope.files
ls $(FLASHDIR)/s29gl512n_16x1.c >>cscope.files
ls $(FLASHDIR)/s29gl512n_16x1.h >>cscope.files
help_local:
varcheck:
|