06 May, 2020
2 commits
-
The lib provided ql-tipc communication channel with
Trusty OS.
Also the AVB, Keymaster, hwcrypto and SecureStorage service
tipc client implement in this lib.Change-Id: I0ab1ec9ee1b6f272b960c2e944008283c2c9249a
Signed-off-by: Haoran.Wang
(cherry picked from commit 8fb370dd80fbb293b58115d2e7fc4970813773c7)
(cherry picked from commit 0ccdd527a794c2b450658980361a7857ce7495c9)
(cherry picked from commit ffca28682c5a9375c29b3036a156aff190341960) -
Porting the android AVB lib from imx u-boot v2018.03. Since 2019 u-boot
has added latest AVB library, try to reuse it.Signed-off-by: Ye Li
(cherry picked from commit 2105662ada738a271e12a81d775134a5821dc38f)
(cherry picked from commit f7291d86c4183ce2e299ad271aa5618c71507ffc)
(cherry picked from commit b871714c519e1bda3de6afbd354bee2cb246e4b7)
26 Jan, 2020
1 commit
-
CONFIG_SPL_RSA is meant to control if lib/rsa/* is used for SPL. Adjust
lib/Makefile to consider this setting.This was correctly setup with commit 51c14cd128f4 ("verified-boot: Minimal
support for booting U-Boot proper from SPL") and got lost with commit
089df18bfe9d ("lib: move hash CONFIG options to Kconfig").Fixes: 089df18bfe9d ("lib: move hash CONFIG options to Kconfig")
Signed-off-by: Heinrich Schuchardt
17 Jan, 2020
1 commit
-
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
15 Dec, 2019
2 commits
-
These functions are used by code outside the network support, so move them
to lib/ to be more accessible.Without this, the functions are only accessible in SPL/TPL only if
CONFIG_SPL/TPL_NET are defined. Many boards do not enable those option but
still want to do checksums in this format.Fix up a few code-style nits while we are here.
Signed-off-by: Simon Glass
Acked-by: Joe Hershberger
Reviewed-by: Bin Meng -
SPL and TPL can access information about binman entries using link-time
symbols but this is not available in U-Boot proper. Of course it could be
made available, but the intention is to just read the device tree.Add support for this, so that U-Boot can locate entries.
Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
07 Dec, 2019
4 commits
-
Imported from linux kernel v5.3:
x509.asn1 without changes
x509_akid.asn1 without changes
x509_parser.h without changes
x509_cert_parser.c with changes marked as __UBOOT__
x509_public_key.c with changes marked as __UBOOT__Signed-off-by: AKASHI Takahiro
-
Imported from linux kernel v5.3:
build_OID_registry without changes
oid_registry.h without changes
oid_registry.c with changes marked as __UBOOT__Signed-off-by: AKASHI Takahiro
-
Imported from linux kernel v5.3:
lib/asn1_decoder.c with changes marked as __UBOOT__Signed-off-by: AKASHI Takahiro
-
In the next commit, rtc_mktime(), for compatibility with linux, will be
implemented using rtc_mktime(), which is no longer drivers/rtc specific.
So move this file under lib/.Signed-off-by: AKASHI Takahiro
03 Dec, 2019
1 commit
-
At present this function sits in its own file but it does not really
justify it. There are similar string functions in vsprintf.h, so move it
there. Also add the missing function comment.Use the vsprintf.h include file explicitly where needed.
Signed-off-by: Simon Glass
Reviewed-by: Tom Rini
08 Oct, 2019
1 commit
-
At present there is only one control for this and it is used for both SPL
and TPL. But SPL might have a lot more space than TPL so the extra cost of
a full printf() might be acceptable.Split the option into two, providing separate SPL and TPL controls. The
TPL setting defaults to the same as SPL.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
21 Jun, 2019
1 commit
-
When build SPL_OF_PLATDATA on i.MX6, meet issue the fdtdec_get_int
not defined, however fdtdec.c will use fdtdec_get_int, so let's
compile fdtdec_common.c when OF_LIBFDT selected.Since there is also SPL_OF_LIBFDT, so need to use
CONFIG_$(SPL_TPL_)OF_LIBFDT.Signed-off-by: Peng Fan
05 May, 2019
2 commits
-
Add the zstd library from Linux kernel (only decompression support).
There are minimal changes to build with U-Boot, otherwise the files are
identical to Linux commit dc35da16 from March 2018, the files had not
been touched since in kernel. Also SPDX lincese tags were added.Signed-off-by: Marek Behún
-
This adds the xxhash support from Linux. Files are almost identical to
those added to Linux in commit 5d240522 ("lib: Add xxhash module") (they
haven't been touched since in Linux). The only difference is to add some
includes to be compatible with U-Boot. Also SPDX lincese tags were
added.Signed-off-by: Marek Behún
09 Feb, 2019
1 commit
-
The board_r init function was complaining that we are looping through
an array, calling all our tiny init stubs sequentially via indirect
function calls (which can't be speculated, so they are slow).The solution to that is pretty easy though. All we need to do is inline
the function that loops through the functions and the compiler will
automatically convert almost all indirect calls into direct inlined code.With this patch, the overall code size drops (by 40 bytes on riscv64)
and boot time should become measurably faster for every target.Signed-off-by: Alexander Graf
17 Jan, 2019
2 commits
-
This fixes CVE-2018-18439 ("insufficient boundary checks in network
image boot") by using lmb to check for a valid range to store
received blocks.Signed-off-by: Simon Goldschmidt
Acked-by: Joe Hershberger
[trini: Always build lib/lmb.o on LMB and lib/fdtdec.o on OF_LIBFDT]
Signed-off-by: Tom Rini -
boot_fdt_add_mem_rsv_regions() adds reserved memory sections to an lmb
struct. Currently, it only parses regions described by /memreserve/
entries.Extend this to the more commonly used scheme of the "reserved-memory"
node.Signed-off-by: Simon Goldschmidt
Reviewed-by: Simon Glass
16 Jan, 2019
1 commit
-
Add the dollar_complete() function to auto-complete arguments starting
with a '$' and use it in the cmd_auto_complete() path such that all
args starting with a $ can be auto-completed based on the available env
vars.Signed-off-by: Boris Brezillon
[trini: Fix some linking problems]
Signed-off-by: Tom Rini
09 Dec, 2018
1 commit
-
The CRC16-CCITT checksum function is useful for space-constrained
applications (such as obtaining a checksum across a 2KBit or 4KBit
EEPROM) in boot applications. It has not been accessible from boot
scripts until now (due to not having a dedicated command and not being
supported by the hash infrstructure) limiting its applicability
outside of custom commands.This adds the CRC16-CCITT (poly 0x1021, init 0x0) algorithm to the
list of available hashes and adds a new crc16_ccitt_wd_buf() to make
this possible.Signed-off-by: Philipp Tomsich
[trini: Fix building crc16.o for SPL/TPL]
Signed-off-by: Tom Rini
03 Dec, 2018
1 commit
-
We should not make anything in lib/efi_selftest if
CONFIG_CMD_BOOTEFI_SELFTEST is not defined.We can make that test in lib/Makefile
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
21 Nov, 2018
1 commit
-
In some cases U-Boot is compressed and it is useful to be able to
decompress it in SPL. Add a Kconfig and Makefile change to allow this.
Note that this does not actually implement decompression.Signed-off-by: Simon Glass
09 Oct, 2018
1 commit
-
At present the tpm can only be used in U-Boot proper. Updated it to work
in SPL and TPL also.Signed-off-by: Simon Glass
24 Sep, 2018
2 commits
-
Provide unit tests for Unicode functions.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf -
charset.o is only needed for the EFI subsystem
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
19 Jun, 2018
1 commit
-
Integrate libavb into the build system. Introduce CONFIG_LIBAVB
build option.Signed-off-by: Igor Opaniuk
13 Jun, 2018
1 commit
-
Often during debugging session it's very interesting to see
what data we were dealing with. For example what we write or read
to/from memory or peripherals.This change introduces functions that allow to dump binary
data with one simple function invocation like:
------------------->8----------------
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, buf, len);
------------------->8----------------which gives us the following:
------------------->8----------------
00000000: f2 b7 c9 88 62 61 75 64 72 61 74 65 3d 31 31 35 ....baudrate=115
00000010: 32 30 30 00 62 6f 6f 74 61 72 67 73 3d 63 6f 6e 200.bootargs=con
00000020: 73 6f 6c 65 3d 74 74 79 53 33 2c 31 31 35 32 30 sole=ttyS3,11520
00000030: 30 6e 38 00 62 6f 6f 74 64 65 6c 61 79 3d 33 00 0n8.bootdelay=3.
00000040: 62 6f 6f 74 66 69 6c 65 3d 75 49 6d 61 67 65 00 bootfile=uImage.
00000050: 66 64 74 63 6f 6e 74 72 6f 6c 61 64 64 72 3d 39 fdtcontroladdr=9
00000060: 66 66 62 31 62 61 30 00 6c 6f 61 64 61 64 64 72 ffb1ba0.loadaddr
00000070: 3d 30 78 38 32 30 30 30 30 30 30 00 73 74 64 65 =0x82000000.stde
00000080: 72 72 3d 73 65 72 69 61 6c 30 40 65 30 30 32 32 rr=serial0@e0022
00000090: 30 30 30 00 73 74 64 69 6e 3d 73 65 72 69 61 6c 000.stdin=serial
000000a0: 30 40 65 30 30 32 32 30 30 30 00 73 74 64 6f 75 0@e0022000.stdou
000000b0: 74 3d 73 65 72 69 61 6c 30 40 65 30 30 32 32 30 t=serial0@e00220
000000c0: 30 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00..............
...
------------------->8----------------Source of hexdump.c was copied from Linux kernel v4.7-rc2.
Signed-off-by: Alexey Brodkin
Cc: Anatolij Gustschin
Cc: Mario Six
Cc: Simon Glass
Cc: Tom Rini
Cc: Stefan Roese
30 May, 2018
1 commit
-
Introduce CONFIG_IMAGE_SPARSE and CONFIG_CMD_MMC_SWRITE so the "mmc
swrite" command is separated from the fastboot code.Move image-sparse from common to lib so it's clear it's library code.
Rename CONFIG_FASTBOOT_FLASH_FILLBUF_SIZE to CONFIG_IMAGE_SPARSE_FILLBUF_SIZE
and migrate it to Kconfig.Signed-off-by: Alex Kiernan
Acked-by: Jassi Brar
Reviewed-by: Simon Glass
26 May, 2018
3 commits
-
Choice between v1 and v2 compliant functions is done with the
configuration.Create the various files that will receive TPMv2-only code on the same
scheme as for the TPMv1 code.Signed-off-by: Miquel Raynal
Reviewed-by: Simon Glass
Reviewed-by: Tom Rini -
There are no changes in this commit but a new organization of the code
as follow.* cmd/ directory:
> move existing code from cmd/tpm.c in cmd/tpm-common.c
> move specific code in cmd/tpm-v1.c
> create a specific header file with generic definitions for
commands only called cmd/tpm-user-utils.h* lib/ directory:
> move existing code from lib/tpm.c in lib/tpm-common.c
> move specific code in lib/tpm-v1.c
> create a specific header file with generic definitions for
the library itself called lib/tpm-utils.h* include/ directory:
> move existing code from include/tpm.h in include/tpm-common.h
> move specific code in include/tpm-v1.hCode designated as 'common' is compiled if TPM are used. Code designated
as 'specific' is compiled only if the right specification has been
selected.All files include tpm-common.h.
Files in cmd/ include tpm-user-utils.h.
Files in lib/ include tpm-utils.h.
Depending on the specification, files may include either (not both)
tpm-v1.h or tpm-v2.h.Signed-off-by: Miquel Raynal
Reviewed-by: Tom Rini
[trini: Fix a few more cases of tpm.h -> tpm-v1.h, some Kconfig logic]
Signed-off-by: Tom Rini -
Because both major revisions are not compatible at all, let's make them
mutually exclusive in Kconfig. This way we will be sure, when using a
command or a library function that it is supported by the right
revision.Current drivers are currently prefixed by "tpm_", we will prefix TPMv2.x
files by "tpm2_" to make the distinction without moving everything.The Kconfig menu about TPM drivers is now divided into two sections, one
for each specification. Compliant drivers with one specification will
only show up if this specification _only_ has been selected, otherwise a
comment is displayed.Once a driver is selected by the user, it selects automatically a
boolean value, that is needed in order to activate the TPM commands.
Selecting the TPM commands will automatically select the right
command/library files.Signed-off-by: Miquel Raynal
Reviewed-by: Simon Glass
Reviewed-by: Tom Rini
[trini: Rework deps as TPM_V1 and TPM_V2 depend on TPM,
drop TPM_DRIVER_SELECTED]
Signed-off-by: Tom Rini
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
29 Apr, 2018
1 commit
-
When SPL serial is disabled, callers who need sprintf or strtoul fail
because their inclusion is guarded by CONFIG_SPL_SERIAL_SUPPORT/
CONFIG_TPL_SERIAL_SUPPORT.Split printf, sprintf and strto into their own entries and then select
all of them if SERIAL_SUPPORT is enabled to match the current behaviour.Include panic.o unconditionally as it can be called from anywhere which
uses BUG_ON().Signed-off-by: Alex Kiernan
20 Mar, 2018
1 commit
-
This patch adds code to lib to enable sharing of useful OPTEE code between
board-ports and architectures. The code on lib/optee/optee.c comes from the
TI omap2 port. Eventually the OMAP2 code will be patched to include the
shared code. The intention here is to add more useful OPTEE specific code
as more functionality gets added.Signed-off-by: Bryan O'Donoghue
Cc: Harinarayan Bhatta
Cc: Andrew F. Davis
Cc: Tom Rini
Cc: Kever Yang
Cc: Philipp Tomsich
Cc: Peng Fan
Tested-by: Peng Fan
23 Jan, 2018
1 commit
-
This patch provides
* a uclass for EFI drivers
* a EFI driver for block devicesFor each EFI driver the uclass
* creates a handle
* adds the driver binding protocolThe uclass provides the bind, start, and stop entry points for the driver
binding protocol.In bind() and stop() it checks if the controller implements the protocol
supported by the EFI driver. In the start() function it calls the bind()
function of the EFI driver. In the stop() function it destroys the child
controllers.The EFI block driver binds to controllers implementing the block io
protocol.When the bind function of the EFI block driver is called it creates a
new U-Boot block device. It installs child handles for all partitions and
installs the simple file protocol on these.The read and write functions of the EFI block driver delegate calls to the
controller that it is bound to.A usage example is as following:
U-Boot loads the iPXE snp.efi executable. iPXE connects an iSCSI drive and
exposes a handle with the block IO protocol. It calls ConnectController.Now the EFI block driver installs the partitions with the simple file
protocol.iPXE uses the simple file protocol to load Grub or the Linux Kernel.
Signed-off-by: Heinrich Schuchardt
[agraf: add comment on calloc len]
Signed-off-by: Alexander Graf
06 Oct, 2017
1 commit
-
Signed-off-by: Jean-Jacques Hiblot
Reviewed-by: Tom Rini
Reviewed-by: Simon Glass
03 Oct, 2017
1 commit
-
This is needed for BTRFS.
Signed-off-by: Marek Behun
create mode 100644 lib/crc32c.c
19 Sep, 2017
1 commit
-
A testing framework for the EFI API is provided.
It can be executed with the 'bootefi selftest' command.It is coded in a way that at a later stage we may turn it
into a standalone EFI application. The current build system
does not allow this yet.All tests use a driver model and are run in three phases:
setup, execute, teardown.A test may be setup and executed at boottime,
it may be setup at boottime and executed at runtime,
or it may be setup and executed at runtime.After executing all tests the system is reset.
Signed-off-by: Heinrich Schuchardt
Signed-off-by: Alexander Graf
15 Sep, 2017
1 commit
-
In order to display the company's logo via the API of DM_VIDEO,
and add the logo files of both Atmel and Microchip.Signed-off-by: Wenyou Yang
Reviewed-by: Simon Glass
13 Sep, 2017
1 commit
-
We'll eventually want these in a few places in efi_loader, and also
vsprintf.Signed-off-by: Rob Clark