01 Apr, 2020
2 commits
-
These are used in multiple places so update them to use a shared #define.
Signed-off-by: Simon Glass
Reviewed-by: Philippe Reynes -
This should mention that conf_uname can be NULL and should be in the
header file. Fix this.Signed-off-by: Simon Glass
04 Feb, 2020
2 commits
-
Android Boot Image v1 adds "Recovery DTB" field in image header and
associate payload in boot image itself [1]. Payload should be in
Android DTB/DTBO format [2]. That "Recovery DTB" area should be only
populated for non-A/B devices, and only in recovery image.Add function to get an address and size of that payload. That function
can be further used e.g. in 'abootimg' command to provide the user a way
to get the address of recovery dtbo from U-Boot shell, which can be
further parsed using 'adtimg' command.[1] https://source.android.com/devices/bootloader/boot-image-header
[2] https://source.android.com/devices/architecture/dto/partitionsSigned-off-by: Sam Protsenko
Signed-off-by: Lokesh Vutla -
Android Boot Image v2 adds "DTB" payload (and corresponding field in the
image header). Provide functions for its handling:- android_image_get_dtb_by_index(): Obtain DTB blob from "DTB" part of
boot image, by blob's index
- android_image_print_dtb_contents(): Iterate over all DTB blobs in
"DTB" part of boot image and print those blobs info"DTB" payload might be in one of the following formats:
1. concatenated DTB blobs
2. Android DTBO formatThe latter requires "android-image-dt.c" functionality, so this commit
selects that file for building for CONFIG_ANDROID_BOOT_IMAGE option.Right now this new functionality isn't used, but it can be used further.
As it's required to apply some specific dtbo blob(s) from "dtbo"
partition, we can't automate this process inside of "bootm" command. But
we can do next:
- come up with some new command like "abootimg" to extract dtb blob
from boot image (using functions from this patch)
- extract desired dtbo blobs from "dtbo" partition using "adtimg"
command
- merge dtbo blobs into dtb blob using "fdt apply" command
- pass resulting dtb blob into bootm command in order to boot the
Android kernel with Android ramdisk from boot imageSigned-off-by: Sam Protsenko
Signed-off-by: Lokesh Vutla
18 Jan, 2020
2 commits
-
This function has a very generic name which does not adequately describe
its purpose. Rename it and move it to image.h, since it relates to reading
a script from an image.Signed-off-by: Simon Glass
-
These three globals relate to image handling. Move them to the image
header file.Signed-off-by: Simon Glass
17 Jan, 2020
2 commits
-
This commit add to u-boot the support to decrypt
fit image encrypted with aes. The FIT image contains
the key name and the IV name. Then u-boot look for
the key and IV in his device tree and decrypt images
before moving to the next stage.Signed-off-by: Philippe Reynes
-
This commit add the support of encrypting image with aes
in mkimage. To enable the ciphering, a node cipher with
a reference to a key and IV (Initialization Vector) must
be added to the its file. Then mkimage add the encrypted
image to the FIT and add the key and IV to the u-boot
device tree.Signed-off-by: Philippe Reynes
08 Jan, 2020
1 commit
-
Add a new OS type to be used for chain-loading an EFI compatible
firmware or boot loader like GRUB2, possibly in a verified boot
scenario.Bellow is sample ITS file that generates a FIT image supporting
secure boot. Please note the presence of 'os = "efi";' line, which
identifies the currently introduced OS type:/ {
#address-cells = ;images {
efi-grub {
description = "GRUB EFI";
data = /incbin/("bootarm.efi");
type = "kernel_noload";
arch = "arm";
os = "efi";
compression = "none";
load = ;
entry = ;
hash-1 {
algo = "sha256";
};
};
};configurations {
default = "config-grub";
config-grub {
kernel = "efi-grub";
signature-1 {
algo = "sha256,rsa2048";
sign-images = "kernel";
};
};
};
};Signed-off-by: Cristian Ciocaltea
Reviewed-by: Heinrich Schuchardt
29 Oct, 2019
1 commit
-
__be32 has Linux kernel specific __attribute__((bitwise)) which is
not portable. Use uint32_t instead.Signed-off-by: Bin Meng
27 Aug, 2019
1 commit
-
Define new image type for coprocessor images.
It is used in FIT to identify the files loaded
with remoteproc command (elf or bin).Signed-off-by: Loic Pallardy
Signed-off-by: Patrick Delaunay
Reviewed-by: Simon Glass
26 Aug, 2019
1 commit
-
RISC-V OpenSBI is an open-source implementation of the RISC-V Supervisor
Binary Interface (SBI) specification. It is required by Linux and U-Boot
running in supervisor mode. This patch adds support for booting via the
OpenSBI FW_DYNAMIC firmware. It supports OpenSBI version 0.4 and higher.In this configuration, U-Boot SPL starts in machine mode. After loading
OpenSBI and U-Boot proper, it will start OpenSBI. All necessary
parameters are generated by U-Boot SPL and are passed to OpenSBI. U-Boot
proper is started in supervisor mode by OpenSBI. Support for OpenSBI is
enabled with CONFIG_SPL_OPENSBI. An additional configuration entry,
CONFIG_SPL_OPENSBI_LOAD_ADDR, is used to specify the load address of the
OpenSBI firmware binary. It is not used directly in U-Boot and instead
is intended to make the value available to scripts such as FIT
configuration generators.The header file include/opensbi.h is based on header files from the
OpenSBI project. They are recent, as of commit bae54f764570 ("firmware:
Add fw_dynamic firmware").Signed-off-by: Lukas Auer
Reviewed-by: Bin Meng
Tested-by: Bin Meng
Reviewed-by: Anup Patel
29 Jul, 2019
1 commit
-
Upcoming patches want to add decompression to use cases that are no
longer directly related to booting. It makes sense to retain a single
decompression routine, but it should no longer be in bootm.c (which is
not compiled for all configurations). This patch moves
bootm_decomp_image() to image.c and renames it to image_decomp() in
preparation of those upcoming patches.Signed-off-by: Julius Werner
Reviewed-by: Simon Goldschmidt
[trini: Fix warning around handle_decomp_error being unused]
Signed-off-by: Tom Rini
12 Jul, 2019
1 commit
-
The name CONFIG_LEGACY_IMAGE_FORMAT reads slightly better along with
allowing us to avoid a rather nasty Kbuild/Kconfig issue down the line
with CONFIG_IS_ENABLED(IMAGE_FORMAT_LEGACY). In a few places outside of
cmd/ switch to using CONFIG_IS_ENABLED() to test what is set.Signed-off-by: Tom Rini
11 May, 2019
1 commit
-
Add FPGA driver to support program FPGA with FPGA bitstream loading from
filesystem. The driver are designed based on generic firmware loader
framework. The driver can handle FPGA program operation from loading FPGA
bitstream in flash to memory and then to program FPGA.Signed-off-by: Tien Fong Chee
10 May, 2019
1 commit
-
There is no check for CONFIG_CRC32 so the #define in image.h does
nothing. Remove it.Reported-by: Robert P. J. Day
Signed-off-by: Chris Packham
Reviewed-by: Stefano Babic
Reviewed-by: Heiko Schocher
05 May, 2019
1 commit
-
If building with SPL_LOAD_FIT_FULL and FIT_SIGNATURE, but without
SPL_FIT_SIGNATURE then the build fails with:common/built-in.o: In function `fit_image_verify_with_data':
common/image-fit.c:1220: undefined reference to `fit_image_verify_required_sigs'
common/image-fit.c:1244: undefined reference to `fit_image_check_sig'
common/built-in.o: In function `fit_image_load':
common/image-fit.c:1857: undefined reference to `fit_config_verify'Refactor so that host builds still depend on FIT_SIGNATURE, but target
builds check FIT_SIGNATURE/SPL_FIT_SIGNATURE dependent on the build.Signed-off-by: Alex Kiernan
Reviewed-by: Simon Glass
24 Apr, 2019
1 commit
-
According to Android image format [1], kernel image resides at 1 page
offset from the boot image address. Grab the magic number from there
and allow U-Boot to handle LZ4-compressed KNL binaries instead of
hardcoding compression type to IH_COMP_NONE. Other compression types,
if needed, can be added later.Tested on H3ULCB-KF using the image detailed in [2].
[1] Excerpt from include/android_image.h
+-----------------+
| boot header | 1 page
+-----------------+
| kernel | n pages
+-----------------+
| ramdisk | m pages
+-----------------+
| second stage | o pages
+-----------------+[2] => iminfo 4c000000
## Checking Image at 4c000000 ...
Android image found
kernel size: 85b9d1
kernel address: 48080000
ramdisk size: 54ddbc
ramdisk addrress: 4a180000
second size: 0
second address: 48000800
tags address: 48000100
page size: 800
os_version: 1200012a (ver: 0.9.0, level: 2018.10)
name:
cmdline: buildvariant=userdebugSigned-off-by: Eugeniu Rosca
17 Dec, 2018
1 commit
-
Commit a2b96ece5be146f4995d737f047e5bbb76079b8f breaks the enumeration
of the Image Types. New image types can be appended, but they cannot be
inserted in the list else backward compatibility is broken.This restores the images types as before 2018.11 and move i.MX8 related
images at the end.Signed-off-by: Robert Berger
Signed-off-by: Stefano Babic
CC: Tom Rini
03 Dec, 2018
2 commits
-
We add the support of the padding pss for rsa signature.
This new padding is often recommended instead of pkcs-1.5.Signed-off-by: Philippe Reynes
Reviewed-by: Simon Glass -
The rsa signature use a padding algorithm. By default, we use the
padding pkcs-1.5. In order to add some new padding algorithm, we
add a padding framework to manage several padding algorithm.
The choice of the padding is done in the file .its.Signed-off-by: Philippe Reynes
Reviewed-by: Simon Glass
29 Nov, 2018
1 commit
-
This patch adds support for MTK boot image generation.
Signed-off-by: Weijie Gao
Signed-off-by: Ryder Lee
Reviewed-by: Simon Glass
22 Oct, 2018
1 commit
-
i.MX8/8X bootable image type is container type.
The bootable image, containers a container set which supports two
container. The 1st container is for SECO firmware, the 2nd container
needs to include scfw, m4_0/1 image, ACore images per your requirement.Signed-off-by: Peng Fan
11 Jul, 2018
1 commit
-
When generating timestamps in signatures, use imagetool_get_source_date()
so we can be overridden by SOURCE_DATE_EPOCH to generate reproducible
images.Signed-off-by: Alex Kiernan
Reviewed-by: Simon Glass
19 Jun, 2018
1 commit
-
Add option to the booti_setup() which indicates to it that the caller
requires the image to be relocated to the beginning of the RAM and
that the information whether the image can be located anywhere in RAM
at 2 MiB aligned boundary or not is to be ignored. This is useful ie.
in case the Image is wrapped in another envelope, ie. fitImage and not
relocating it but moving it would corrupt the envelope.Signed-off-by: Marek Vasut
Cc: Bin Chen
Cc: Masahiro Yamada
Cc: Tom Rini
Reviewed-By: Bin Chen
27 May, 2018
1 commit
-
Add FIT data-position & data-offset property support for bootm,
which were already supported in SPL.Signed-off-by: Kelvin Cheung
24 May, 2018
2 commits
-
Just add IH_TYPE_STANDALONE to fit_get_image_type_property().
Signed-off-by: Marek Vasut
Cc: Pantelis Antoniou
Cc: Simon Glass
Reviewed-by: Simon Glass -
We only call fit_conf_print from one place in the code, so mark it as
static and move it up to where we call it. This in turn has us move a
few other already static functions up further as well.Signed-off-by: Tom Rini
11 May, 2018
2 commits
-
Xilinx changes for v2018.07
microblaze:
- Align defconfigzynq:
- Rework fpga initialization and cpuinfo handlingzynqmp:
- Add ZynqMP R5 support
- Wire and enable watchdog on zcu100-revC
- Setup MMU map for DDR at run time
- Show board info based on DT and cleanup IDENT_STRINGzynqmp tools:
- Add read partition support
- Add initial support for Xilinx bif format for boot.bin generationmmc:
- Fix get_timer usage on 64bit cpus
- Add support for SD3.0 UHS modenand-zynq:
- Add support for 16bit buswidth
- Use address cycles from onfi paramsscsi:
- convert ceva sata to UCLASS_AHCItimer:
- Add Cadence TTC for ZynqMP r5watchdog:
- Minor cadence driver cleanup -
The officially described way to generate boot.bin files for ZynqMP is to
describe the contents of the target binary using a file of the "bif"
format. This file then links to other files that all get packed into a
bootable image.This patch adds support to read such a .bif file and generate a respective
ZynqMP boot.bin file that can include the normal image and pmu files, but
also supports image partitions now. This makes it a handy replacement for
the proprietary "bootgen" utility that is currently used to generate
boot.bin files with FSBL.Signed-off-by: Alexander Graf
Signed-off-by: Michal Simek
09 May, 2018
1 commit
-
Add support for the SoCFPGA header v1, which is used on Arria 10.
The layout of the v0 and v1 header is similar, yet there are a few
differences which make it incompatible with previous v0 header, so
add a new entry.Signed-off-by: Marek Vasut
Cc: Dinh Nguyen
Cc: Chin Liang See
07 May, 2018
1 commit
-
When U-Boot started using SPDX tags we were among the early adopters and
there weren't a lot of other examples to borrow from. So we picked the
area of the file that usually had a full license text and replaced it
with an appropriate SPDX-License-Identifier: entry. Since then, the
Linux Kernel has adopted SPDX tags and they place it as the very first
line in a file (except where shebangs are used, then it's second line)
and with slightly different comment styles than us.In part due to community overlap, in part due to better tag visibility
and in part for other minor reasons, switch over to that style.This commit changes all instances where we have a single declared
license in the tag as both the before and after are identical in tag
contents. There's also a few places where I found we did not have a tag
and have introduced one.Signed-off-by: Tom Rini
07 Apr, 2018
1 commit
-
SPL ATF support requires to have firmware property which should be also
listed by mkimage -l when images is created.The patch is also using this macro in spl_fit to match keyword.
When image is created:
Default Configuration: 'config'
Configuration 0 (config)
Description: ATF with full u-boot
Kernel: unavailable
Firmware: atf
FDT: dtbSigned-off-by: Michal Simek
Reviewed-by: Simon Glass
Reviewed-by: Jun Nie
Reviewed-by: Philipp Tomsich
01 Apr, 2018
1 commit
-
This header needs to know 'fdt_region' is a struct for the
fit_region_make_list() prototype.Signed-off-by: Masahiro Yamada
Reviewed-by: Simon Glass
20 Mar, 2018
2 commits
-
This patch adds a new type IH_OS_TEE. This new OS type will be used for
chain-loading to Linux via a TEE.With this patch in-place you can generate a bootable OPTEE image like this:
mkimage -A arm -T kernel -O tee -C none -d tee.bin uTee.optee
where "tee.bin" is the input binary prefixed with an OPTEE header and
uTee.optee is the output prefixed with a u-boot wrapper header.This image type "-T kernel -O tee" is differentiated from the existing
IH_TYPE_TEE "-T tee" in that the IH_TYPE is installed by u-boot (flow
control returns to u-boot) whereas for the new IH_OS_TEE control passes to
the OPTEE firmware and the firmware chainloads onto Linux.Andrew Davis gave the following ASCII diagram:
IH_OS_TEE: (mkimage -T kernel -O tee)
Non-Secure SecureBootROM
|
-------------
|
v
SPL
|
v
U-Boot ------>
Suggested-by: Andrew F. Davis
Cc: Harinarayan Bhatta
Cc: Andrew F. Davis
Cc: Tom Rini
Cc: Kever Yang
Cc: Philipp Tomsich
Cc: Peng Fan
Link: http://mrvan.github.io/optee-imx6ul -
STM32MP157 bootrom needs a specific header for first boot stage.
This patch adds support of this header in mkimage.Signed-off-by: Patrick Delaunay
19 Mar, 2018
1 commit
-
U-boot proper signature is not verified by SPL on most platforms
even config SPL_FIT_SIGNATURE is enabled. Only fsl-layerscape
platform support secure boot in platform specific code. So
verified boot cannot be achieved if u-boot proper is loaded by
SPL.This patch add signature verification to u-boot proper images
when loading FIT image in SPL. It is tested on Allwinner bananapi
zero board with H2+ SoC.Signed-off-by: Jun Nie
05 Mar, 2018
1 commit
-
Thomas reported U-Boot failed to build host tools if libfdt-devel
package is installed because tools include libfdt headers from
/usr/include/ instead of using internal ones.This commit moves the header code:
include/libfdt.h -> include/linux/libfdt.h
include/libfdt_env.h -> include/linux/libfdt_env.hand replaces include directives:
#include -> #include
#include -> #includeReported-by: Thomas Petazzoni
Signed-off-by: Masahiro Yamada
08 Feb, 2018
2 commits
-
Follow bootz's pattern by moving the booti_setup to arch/arm/lib.
This allows to use booti_setup in other paths, e.g booting
an Android image containing Image format.Note that kernel relocation is move out of booti_setup and it is the
caller's responsibility to do it and allows them do it differently. say,
cmd/booti.c just do a manually, while in the bootm path, we can use
bootm_load_os(with some changes).Signed-off-by: Bin Chen
Reviewed-by: Tom Rini -
The second area of android image was intended to put a 2nd stage
bootloader but in practice were rarely used (in my knowledge).An proposal was made to the AOSP to (re)use the second area as the dtb[1],
This patch itself doesn't depend on that proposal being accepted but it won't
be that helpful as well if that proposal won't be accepted. But don't do
any harm as well.[1] https://android-review.googlesource.com/#/c/417447/
Signed-off-by: Bin Chen
Reviewed-by: Tom Rini
Reviewed-by: Kever Yang