The check for sandbox architecture is too early in the Makefile, so
standalone and api are built regardless. This moves the check until
after autoconf.mk has been read.
This fixes a build breakage.
Signed-off-by: Simon Glass <sjg@chromium.org>
U-Boot Makefiles contain a number of tests for compiler features etc.
which so far are executed again and again. On some architectures
(especially ARM) this results in a large number of calls to gcc.
This patch makes sure to run such tests only once, thus largely
reducing the number of "execve" system calls.
Example: number of "execve" system calls for building the "P2020DS"
(Power Architecture) and "qong" (ARM) boards, measured as:
-> strace -f -e trace=execve -o /tmp/foo ./MAKEALL <board>
-> grep execve /tmp/foo | wc -l
Before: After: Reduction:
==================================
P2020DS 20555 15205 -26%
qong 31692 14490 -54%
As a result, built times are significantly reduced, typically by
30...50%.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Andy Fleming <afleming@gmail.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Albert Aribaud <albert.aribaud@free.fr>
cc: Graeme Russ <graeme.russ@gmail.com>
cc: Mike Frysinger <vapier@gentoo.org>
Tested-by: Graeme Russ <graeme.russ@gmail.com>
Tested-by: Matthias Weisser <weisserm@arcor.de>
Tested-by: Sanjeev Premi <premi@ti.com>
Tested-by: Simon Glass <sjg@chromium.org>
Tested-by: Macpaul Lin <macpaul@gmail.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
This adds support for an FDT to be build as a separate binary file called
u-boot.dtb. This can be concatenated with the U-Boot binary to provide a
device tree located at run-time by U-Boot. The Makefile is modified to
provide this file in u-boot-dtb.bin.
Signed-off-by: Simon Glass <sjg@chromium.org>
This new option allows U-Boot to embed a binary device tree into its image
to allow run-time control of peripherals. This device tree is for U-Boot's
own use and is not necessarily the same one as is passed to the kernel.
The device tree compiler output should be placed in the $(obj)
rooted tree. Since $(OBJCOPY) insists on adding the path to the
generated symbol names, to ensure consistency it should be
invoked from the directory where the .dtb file is located and
given the input file name without the path.
This commit contains my entry for the ugliest Makefile / shell interaction
competition.
Signed-off-by: Simon Glass <sjg@chromium.org>
The current autoconf.mk.dep rule uses the host cflags when executing the
target compiler (which includes target header files). We don't want to
mix the target compiler and host compiler flags, so change it to CFLAGS.
Otherwise we get things like -pedantic which the U-Boot source code does
not build with.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
SPL builds could leave an MLO which is an mkimage of type omapimage
Make sure its deleted on make clean/distclean
Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
The examples/api is not configured with USE_PRIVATE_LIBGCC. This makes
building examples/api break on certain boards that do not/cannot use the
public libgcc.
Nevertheless, this patch has to also touch the top-level Makefile to fix
this problem because the current top-level Makefile does not specify
libgcc as a prerequisite of examples/api, and explicitly builds
examples/api _before_ libgcc.
For testing this patch, I added the following to configs/seaboard.h and
ran demo.bin on a Seaboard.
+#define CONFIG_API
+#define CONFIG_SYS_MMC_MAX_DEVICE 2
+#define CONFIG_CMD_NET
+#define CONFIG_NET_MULTI
Signed-off-by: Che-Liang Chiou <clchiou@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
The spa, stm, int, 32 and 16 linking files are identical so there is
no need to differentiate them. A single lds file is now used, and
_config rule are simplified.
Signed-off-by: Stany MARCEL <stany.marcel@novasys-ingenierie.com>
There is a rather subtle build problem where the build time stamp is not
updated for out-of-tree builds if there exists an in-tree build which
has a valid timestamp file. So if you do an in-tree build, then an
out-of-tree build your timestamp will not change.
The correct timestamp_autogenerated.h lives in the object tree, but it
is not always found there. The source still lives in the source tree and
when compiling version.h, it includes timestamp_autogenerated.h. Since
the current directory is always searched first, this will come from the
source tree rather than the object tree if it exists there. This affects
dependency generation also, which means that common/cmd_version.o will not
even be rebuilt if you have ever done an in-tree build.
A similar problem exists with the version file.
This change moves both files into the 'generated' subdir, which is already
used for asm-offsets.h. Then timestamp.h and version.h are updated to
include the files from there.
There are other places where these generated files are included, but I
cannot see why these don't just use the timestamp.h and version.h headers.
So this change also tidies that up.
I have tested this with in- and out-of-tree builds, but not SPL. I have
looked at various other options for fixing this, including sed on the dep
files, -I- and -include flags to gcc, but I don't think they can be made
to work. Comments welcome.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
At this point U-Boot will build and run on x86 under Linux.
The idea is to define a new architecture called 'sandbox', alongside ARM
and x86. This runs natively on Linux to suit the host machine. All
hardware access is either omitted or emulated.
The purpose of this system is to test the bulk of the non-hardware-specific
U-Boot code. We can mock the SPI flash, GPIOs, UART and keyboard, then test
that U-Boot behaves as we wish.
Signed-off-by: Simon Glass <sjg@chromium.org>
The dependency rules are currently done in a shell 'for' loop. This does not
permit Makefile variables to adjust preprocessor flags as is done with normal
compile flags, using the CFLAGS_path/file.o syntax.
This change moves the dependency generation into the Makefile itself, and
permits a CPPFLAGS_path/file.o to adjust preprocessor flags on a file or
directory basis.
The CPPFLAGS_... variable is also folded into CFLAGS during the build.
Signed-off-by: Simon Glass <sjg@chromium.org>
Tools such as mkimage include version information but are
config-agnostic; build timestamp_autogenerated.h even when config.mk
isn't generated to fix "make tools" build failure:
gcc [...] -o mkimage.o mkimage.c -c
In file included from include/version.h:27:0, from mkimage.c:26:
include/timestamp.h:27:37: fatal error: timestamp_autogenerated.h: No
such file or directory
Cc: patches@linaro.org
Signed-off-by: Loïc Minier <loic.minier@linaro.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
An entry in the main Makefile for the mx31pdk board is not
necessary, and the board is added to boards.cfg as all
other targets.
Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Wolfgang Denk <wd@denx.de>
An entry in the main Makefile for the tx25 board is not
necessary, and the board is added to boards.cfg as all
other targets.
Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Wolfgang Denk <wd@denx.de>
Unified DDR driver is maintained for better performance, robustness and bug
fixes. Upgrading to use unified DDR driver for MPC83xx takes advantage of
overall improvement. It requires changes for board files to customize
platform-dependent parameters.
To utilize the unified DDR driver, a board needs to define CONFIG_FSL_DDRx
in the header file. No more boards will be accepted without such definition.
Note: the workaround for erratum DDR6 for the very old MPC834x Rev 1.0/1.1
and MPC8360 Rev 1.1/1.2 parts is not migrated to unified driver.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
The Frame Manager (FMan) on QorIQ SoCs with DPAA (datapath acceleration
architecture) is the ethernet contoller block. Normally it is utilized
via Queue Manager (Qman) and Buffer Manager (Bman). However for boot
usage the FMan supports a mode similar to QE or CPM ethernet collers
called Independent mode.
Additionally the FMan block supports multiple 1g and 10g interfaces as a
single entity in the system rather than each controller being managed
uniquely. This means we have to initialize all of Fman regardless of
the number of interfaces we utilize.
Different SoCs support different combinations of the number of FMan as
well as the number of 1g & 10g interfaces support per Fman.
We add support for the following SoCs:
* P1023 - 1 Fman, 2x1g
* P4080 - 2 Fman, each Fman has 4x1g and 1x10g
* P204x/P3041/P5020 - 1 Fman, 5x1g, 1x10g
Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Roy Zang <tie-fei.zang@freescale.com>
Signed-off-by: Dai Haruki <dai.haruki@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@freescale.com>
Signed-off-by: Lei Xu <B33228@freescale.com>
Signed-off-by: Mingkai Hu <Mingkai.hu@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Shaohui Xie <b21989@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
commit 0edf8b5b2f breaks
building on a different directory with the O= parameter.
The patch wil fix this issue, generating always asm-offsets.h before
the other targets.
Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Matthias Weisser <weisserm@arcor.de>
CC: Wolfgang Denk <wd@denx.de>
This deletes the integrator split_by_variant.sh script and
defines a number of unique board types for the core modules
that are meaningful to support for the Integrator AP/CP, i.e.
the ones that did not just say "unsupported core module" in
split_by_variant.sh. If more core modules need to be supported
they are easy to add.
We delete all the old cruft in Makefile and MAKEALL that was
working around the old way of building boards. We create a
unique config file per board to satisfy the build system, but
they are just oneliners that include the existing
integratorap.h and integratorcp.h configs.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Versatile board is used as example to run u-boot under qemu.
The patch fixes relocation for all versatile boards and adds
a versatileqemu target to be used under qemu.
Patch tested only under qemu, not on real boards.
Tested with QEMU emulator version 0.14.50.
Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Alessandro Rubini <rubini-list@gnudd.com>
CC: Loïc Minier <loic.minier@linaro.org>
Rework for AT91SAM9263-EK, makes it build again.
Based on the work for AT91SAM9260-EK.
Signed-off-by: Hong Xu <hong.xu@atmel.com>
Signed-off-by: Reinhard Meyer <uboot@emk-elektronik.de>
Fix board part of AT91SAM9261-EK according to the new scheme
Signed-off-by: Hong Xu <hong.xu@atmel.com>
Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
Rework for AT91SAM9RL-EK, makes it build again.
Based on the work for AT91SAM9260-EK.
V4: added changes to MAKEALL
Signed-off-by: Hong Xu <hong.xu@atmel.com>
Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
creating an u-boot.ubl file, which contains the UBL Header
needed for booting from NAND with the RBL from TI. For more
information read doc/README.ublimage.
Signed-off-by: Heiko Schocher <hs@denx.de>
Tell 'find' to follow symbolic links, so that files under include/asm
and arch/$(ARCH)/include/asm/arch are added to the indexing file list.
Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
Acked-by: Detlev Zundel <dzu@denx.de>
Now that the tools target requires the generated version header file, we
need to make sure that the directory it writes to exists. In a configured
tree, this is taken care of for us. But in an unconfigured one, the dir
does not yet exist causing a build error like so:
/bin/sh: line 5: ..../u-boot_build/include/version_autogenerated.h.tmp: No such file or directory
So create the dir for this file before we attempt to generate it.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
The targets/prerequisites are the same here; the rules only differ in
the recipes. So move the if logic protection to the recipe part so we
can keep the rest the same.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This creates a standalone ELF that executes just the Blackfin initcode.
This is useful for people who want to program the low level aspects of
the CPU (memory/clocks/etc...) and can easily be used with JTAG for
quick booting while developing.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
On MPC85xx based NAND_SPL builds we generate a u-boot-nand_spl.lds based
on output from preprocessor. We where never removed it.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Scott Wood <scottwood@freescale.com>
I can't build test this, but just looking at the config files written
and it seems OK ...
Tested-by: Thomas Chou <thomas@wytron.com.tw>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Scott McNutt <smcnutt@psyent.com>