27 Apr, 2018
1 commit
-
Porting the cadence USB3 (CDNS3) driver from kernel to u-boot. We only support
the gadget (device mode), while the host mode is not supported. Users remains
to use xhci-imx8 driver for host mode.Some changes in the CDNS3 driver porting:
1. Add match_ep call back to usb_gadget_ops. The CDNS3 gadget driver replies
on this operation to bind the usb_ep/usb_ss_ep with the endpoint descriptor
when function layer uses usb_ep_autoconfig to add endpoint descriptors to gadget.
So that CDNS3 driver can know the EP information and configure the EP once the
set configuration request is received.2. U-boot does not have CMA, so it won't allocate uncached memory. Need to flush
TRB and its DMA buffer before prime to usb controller and after complete transfer.3. In core.c, we add functions to hook with u-boot. It needs uplayer like
to pass the register base address of each part of the USB controller.4. Force the CDNS3 gadget max speed to HS. The SuperSpeed is not supported by u-boot,
so disable it in gadget driver. A configuration USB_CDNS3_GADGET_FORCE_HIGHSPEED is
selected.5. Added gadget_is_cdns3 checking to provide bcdUSB value in device descriptor.
6. Moved some new fields in usb_ep structure to usb_ss_ep, since u-boot does not have them.
7. Remove host part codes as it is not supported by this driver.
Signed-off-by: Ye Li
Acked-by: Peter Chen
(cherry picked from commit 70514bd095ff9a94e9a523845641381486284257)
13 Mar, 2018
1 commit
-
Signed-off-by: Tom Rini
06 Mar, 2018
1 commit
-
Signed-off-by: Tom Rini
28 Feb, 2018
2 commits
-
The u-boot-spl.srec is needed for some platforms, add target to generate this file.
Signed-off-by: Marek Vasut
Cc: Nobuhiro Iwamatsu
Cc: Tom Rini -
The u-boot-elf.srec is needed for some platforms, add target to generate this file.
Signed-off-by: Masaru Nagai
Signed-off-by: Hiroyuki Yokoyama
Signed-off-by: Marek Vasut
Cc: Hiroyuki Yokoyama
Cc: Nobuhiro Iwamatsu
23 Feb, 2018
1 commit
-
Most of architectures have .text section situated in the very beginning
of U-Boot binary and thus it is very logical that CONFIG_SYS_TEXT_BASE
is used on final linkage step to specify where U-Boot gets linked to.For that we pass the following construction to the LD:
---------------------------->8-----------------------
xxx-ld ... -Ttext $(CONFIG_SYS_TEXT_BASE) ...
---------------------------->8-----------------------But there could be exceptions. For example:
1. In case of ARCv2 we want to put vectors table in its own section
.ivt in front of .text section which means we need either add an
offset to CONFIG_SYS_TEXT_BASE to compensate for .ivt or don't
pass "-Ttext" to the LD at all and specify link base in linker
script directly.2. Some architectures even though have .text section in the very
beginning of the U-Boot image still use different symbols to
specify link-base:
* NIOS2: CONFIG_SYS_MONITOR_BASE (which I really like because
that exactly what makes sense - where out image starts but not
beginning of its .text section which just happened to match the
whole image beginning)
* EXTENSA: CONFIG_SYS_TEXT_ADDR
* X86: Which doesn't use CONFIG_SYS_MONITOR_BASE in case of EFI
otherwise sets explicit link base in u-boot.ldsI think that's good to allow for flexibility and don't require each and
every architecture or even platform to specify CONFIG_SYS_TEXT_BASE as well
as use it to set .text section location.So let's only pass "-Ttext xxx" for those architectures who don't set
link-base explicitly in their linker scripts.This patch iaddresses comments for previously sent
https://patchwork.ozlabs.org/patch/867540/.Signed-off-by: Alexey Brodkin
Cc: Masahiro Yamada
Cc: Marek Vasut
Cc: Max Filippov
Cc: Simon Glass
Cc: Tom Rini
21 Feb, 2018
1 commit
-
Signed-off-by: Tom Rini
13 Feb, 2018
1 commit
-
Signed-off-by: Tom Rini
30 Jan, 2018
1 commit
-
Signed-off-by: Tom Rini
26 Jan, 2018
1 commit
-
The make macro to check if the binary exceeds the board size limit is not
called. Make sure that is the case.Signed-off-by: Maxime Ripard
Reviewed-by: Jagan Teki
13 Jan, 2018
2 commits
-
With CONFIG_SYS_INIT_SP_BSS_OFFSET enabled, the initial (pre-relocation)
stack is placed some distance after bss_start. The control DTB is appended
to the U-Boot binary at bss_start. If the DTB is too large, or the SP BSS
offset too small, then the initial stack could corrupt the DTB. Enhance
the Makefile to check whether this is likely to occur.Signed-off-by: Stephen Warren
Signed-off-by: Tom Warren
12 Jan, 2018
1 commit
-
Add prelink-riscv to arrange .rela.dyn and .rela.got
in compile time. So that u-boot can be directly
executed without fixup.Signed-off-by: Chih-Mao Chen
Signed-off-by: Rick Chen
Signed-off-by: Rick Chen
Signed-off-by: Greentime Hu
09 Jan, 2018
1 commit
-
Signed-off-by: Tom Rini
02 Jan, 2018
1 commit
-
Signed-off-by: Tom Rini
19 Dec, 2017
1 commit
-
Signed-off-by: Tom Rini
13 Dec, 2017
1 commit
-
Update tegra to use binman for image creation. This still includes the
current Makefile logic, but a later patch will remove this. Three output
files are created, all of which combine
SPL and U-Boot:u-boot-tegra.bin - standard image
u-boot-dtb-tegra.bin - same as u-boot-tegra.bin
u-boot-nodtb-target.bin - includes U-Boot without the appended device treeThe latter is useful for build systems where the device is appended later,
perhaps after being modified.Signed-off-by: Simon Glass
05 Dec, 2017
1 commit
-
Signed-off-by: Tom Rini
21 Nov, 2017
3 commits
-
With commit 84d46e7e8948 ("tools: env: allow to print U-Boot version")
the fw_env utilities need the version.h header file. Building only
the envtools in a pristine build directory will fail due to missing
header files.Make sure the header files are a dependency of the envtools target.
Fixes: 84d46e7e8948 ("tools: env: allow to print U-Boot version")
Signed-off-by: Stefan Agner
Tested-by: Peter Robinson
Reviewed-by: Simon Glass -
When building on a multi-core machine for an SPL-enabled board that
also uses CONFIG_OF_EMBED, the following error can be encountered
due to a race condition:make[3]: *** No rule to make target 'spl/dts/dt.dtb.o', needed by
'spl/dts/built-in.o'. Stop.
../scripts/Makefile.spl:364: recipe for target 'spl/dts' failed
make[2]: *** [spl/dts] Error 2
make[2]: *** Waiting for unfinished jobs....A reliable way to trigger this race condition is to add "sleep 60" to
the end of the "arch-dtbs" rule's recipe in "dts/Makefile" and to build
U-Boot against a board which uses the CONFIG_OF_EMBED and CONFIG_SPL
options using "make -j8" or a similar command.This commit corrects this race condition via the use of CONFIG_OF_EMBED
in the same way that commit 3c00a2c8b5e2 ("Makefile: Correct dependency
race condition with TPL") and commit 054b3a1e80fc ("dm: Makefile: Build
of-platdata before SPL") use CONFIG_OF_SEPARATE.Signed-off-by: M. Vefa Bicakci
Reviewed-by: Simon Glass -
Coccinelle is a program for static code analysis.
For details on Coccinelle seehttp://coccinelle.lip6.fr/
Add scripts/coccicheck copied from Linux kernel v4.14.
The coccicheck script executes the tests *.cocci in
directory scripts/coccinelle by calling spatch.In Makefile add a coccicheck target. You can use it with
make coccicheck MODE=
where mode in patch, report, context, org.
Add a copy of Linux v4.14 file Documentation/dev-tools/coccinelle.rst
as doc/README.coccinelle.Cc: Simon Glass
Signed-off-by: Heinrich Schuchardt
17 Nov, 2017
2 commits
-
Currently, pylibfdt is always compiled if swig is installed on your
machine. It is really annoying because most of targets (excepts
x86, sunxi, rockchip) do not use dtoc or binman."checkbinman" and "checkdtoc" are wrong. It is odd that the final
build stage checks if we have built necessary tools. If your platform
depends on dtoc/binman, you must be able to build pylibfdt. If swig
is not installed, it should fail immediately.I added PYLIBFDT, DTOC, BINMAN entries to Kconfig. They should be
property select:ed by platforms that need them. Kbuild will descend
into scripts/dtc/pylibfdt/ only when CONFIG_PYLIBFDT is enabled.Signed-off-by: Masahiro Yamada
Reviewed-by: Simon Glass -
The pylibfdt is used by dtoc (and, indirectly by binman), but there
is no reason why it must be generated in the tools/ directory.Recently, U-Boot switched over to the bundled DTC, and the directory
structure under scripts/dtc/ now mirrors the upstream DTC project.
So, scripts/dtc/pylibfdt is the best location.I also rewrote the Makefile in a cleaner Kbuild style.
The scripts from the upstream have been moved as follows:
lib/libfdt/pylibfdt/setup.py -> scripts/dtc/pylibfdt/setup.py
lib/libfdt/pylibfdt/libfdt.i -> scripts/dtc/pylibfdt/libfdt.i_shippedThe .i_shipped is coped to .i during building because the .i must be
located in the objtree when we build it out of tree.Signed-off-by: Masahiro Yamada
14 Nov, 2017
1 commit
-
Signed-off-by: Tom Rini
07 Nov, 2017
1 commit
-
Signed-off-by: Tom Rini
31 Oct, 2017
1 commit
-
Signed-off-by: Tom Rini
19 Oct, 2017
1 commit
-
Up to now we depended on an exported variable to build u-boot.rom.
We should be able to specify it in the configuration file, too.With this patch this becomes possible using the new Kconfig option
CONFIG_BUILD_ROM.This option depends on CONFIG_X86 and is selected in
qemu-x86_defconfig and qemu-x86_64_defconfig.Cc: Simon Glass
Cc: Bin Meng
Signed-off-by: Heinrich Schuchardt
Reviewed-by: Bin Meng
17 Oct, 2017
1 commit
-
Signed-off-by: Tom Rini
06 Oct, 2017
1 commit
-
CONFIG_FIT_EMBED might be confused with CONFIG_OF_EMBED, rename it
MULTI_DTB_FIT as it is able to get a DTB from a FIT image containing
multiple DTBs. Also move the option to the Kconfig dedicated to the DTS
options and create a README for this feature.Signed-off-by: Jean-Jacques Hiblot
Reviewed-by: Tom Rini
Reviewed-by: Simon Glass
03 Oct, 2017
1 commit
-
Signed-off-by: Tom Rini
24 Sep, 2017
1 commit
-
This makes us act like the Linux Kernel does and allow for dtc to be
provided externally but otherwise we use the version of dtc that is
included in the sources. This in turn means that we can drop the
checkdtc logic. We select DTC in the cases where we will need the dtc
tool provided.Signed-off-by: Tom Rini
22 Sep, 2017
1 commit
-
With support for overlays and calling the -@ flag to dtc we need to have
at least 1.4.3 available now.Cc: Simon Glass
Reported-by: Stephen Warren
Signed-off-by: Tom Rini
13 Sep, 2017
1 commit
-
EFI_LOADER really wants UTF-16 strings (ie. %ls and L"string" are 16bit
chars instead of 32bit chars). But rather than enabling -fshort-wchar
conditionally if EFI_LOADER is enabled, it was deemed preferrable to
globally switch.Signed-off-by: Rob Clark
Acked-by: Masahiro Yamada
12 Sep, 2017
1 commit
-
Signed-off-by: Tom Rini
06 Sep, 2017
3 commits
-
The target is not currently mentioned anywhere. Add it to the help so
people can find it.Signed-off-by: Simon Glass
-
This was broken by the recent environment refactoring. Specifically:
$ make environ
scripts/Makefile.build:59: tools/environ/Makefile: No such file or directory
make[1]: *** No rule to make target 'tools/environ/Makefile'. Stop.
make: *** [Makefile:1469: environ] Error 2Fix this by updating the Makefile and adjusting the #include filesnames in
two C files.Fixes: ec74f5f (Makefile: Rename 'env' target to 'environ')
Reported-by: Måns Rullgård
Signed-off-by: Simon Glass -
With the move of environment code from common/ to env/ a number of
changes needed to be made to various make targets. We missed updating
some of the files required for out of tree builds of the tools. Correct
the 'environ' target to know that we need to work under tools/env/ still
(not tools/environ/) and then update the wrappers in env_attr.c and
env_flags.c to point to the new correct file.Reported-by: Peter Robinson
Tested-by: Peter Robinson
Signed-off-by: Tom Rini
04 Sep, 2017
1 commit
-
Signed-off-by: Tom Rini
29 Aug, 2017
1 commit
-
Signed-off-by: Tom Rini
20 Aug, 2017
1 commit
-
On some systems `python` is `python3` (for instance, Archlinux). The
`PYTHON` variable can be used to point to `python2` to have a successful
build.The use of `PYTHON` is currently limited in the Makefile and needs to be
extended in other places:First, pylibfdt is required to be a Python 2 binding (binman imports
pylibfdt and is only compatible Python 2), so its setup.py needs to be
called accordingly. An alternative would be to change the libfdt
setup.py shebang to python2, but the binding is actually portable. Also,
it would break on system where there is no such thing as `python2`.Secondly, the libfdt import checks need to be done against Python 2 as
well since the Python 2 compiled modules (in this case _libdft.so) can
not be imported from Python 3.Note on the libfdt imports: "@if ! PYTHONPATH=tools $(PYTHON) -c 'import
libfdt'; then..." is probably simpler than the currently sub-optimal
pipe.
Reviewed-by: Jonathan Gray