summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2017-07-10libfdt: Drop -FDT_ERR_TOODEEPSimon Glass
This error code has not been upstreamed and is not really needed since it is unlikely to be triggered. Drop it to maintain compatability with upstream. Reported-by: Peter Robinson <[email protected]> Signed-off-by: Simon Glass <[email protected]> Tested-by: Peter Robinson <[email protected]>
2017-07-04efi_loader: abort on unsupported relocation type[email protected]
If a relocation type is not supported loading the EFI binary should be aborted. Writing a message only is insufficient. Signed-off-by: Heinrich Schuchardt <[email protected]> [agraf: use a() != b coding style] Signed-off-by: Alexander Graf <[email protected]>
2017-07-04efi_loader: efi_handle_protocol set attributes[email protected]
UEFI spec 2.7 indicates that HandleProtocol can be implemented by calling OpenProtocol with attributes = EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL. Currently we pass attributes = 0 to efi_open_protocol. 0 is not a valid value when calling OpenProtocol. This does not cause any errors yet because our implementation of OpenProtocol is incomplete. We should pass the correct value to enable a fully compliant implementation of OpenProtocol in the future. Signed-off-by: Heinrich Schuchardt <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2017-07-03efi_loader: add static to local functionsMasahiro Yamada
These are locally used in lib/efi_loader/efi_boottime.c Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Bin Meng <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2017-07-03efi_loader: check CreateEvent() parametersJonathan Gray
Add some of the invalid parameter checks described in the UEFI specification for CreateEvent(). This does not include checking the validity of the type and tpl parameters. Signed-off-by: Jonathan Gray <[email protected]> Acked-By: Heinrich Schuchardt <[email protected]> [agraf: fix checkpatch.pl indent warning] Signed-off-by: Alexander Graf <[email protected]>
2017-07-03efi_loader: run CreateEvent() notify function based on flagsJonathan Gray
The UEFI specification states that the tpl, function and context arguments are to be ignored if neither EVT_NOTIFY_WAIT or EVT_NOTIFY_SIGNAL are specified. This matches observed behaviour with an AMI EDK2 based UEFI implementation. Skip calling the notify function if neither flag is present. Signed-off-by: Jonathan Gray <[email protected]> Acked-By: Heinrich Schuchardt <[email protected]> Signed-off-by: Alexander Graf <[email protected]>
2017-06-20bch: Fix build on FreeBSD hostEmmanuel Vadot
endian.h on FreeBSD system exist in sys/ subdirectory. FreeBSD already have a fls function defined in strings.h which is included in string.h if __BSD_VISIBLE is defined, as a check for this. Signed-off-by: Emmanuel Vadot <[email protected]>
2017-06-05bootstage: Provide a default timer functionSimon Glass
If CONFIG_SYS_TIMER_COUNTER is used we can provide a default microsecond timer implementation. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Stop building the old python libfdt moduleSimon Glass
This is no-longer needed, so stop building it. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Rename existing python libfdt moduleSimon Glass
Now that this module has been accepted upstream we should stop using the local U-Boot one. In preparation for this, rename it to indicate it is for legacy use. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Allow swig options to be provided by MakefileSimon Glass
U-Boot needs to provide some swig include directories. Add this feature. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Move header files into lib/libfdtSimon Glass
These header files are actually part of libfdt. Move them there to make it easier to build pylibfdt and easier to merge changes from upstream. Update the license header to use SPDX at the same time. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Correct cast for sandbox in fdtdec_setup_memory_size()Simon Glass
This gives a warning with some native compilers: lib/fdtdec.c:1203:8: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘long unsigned int’ [-Wformat=] Fix it with a cast. Signed-off-by: Simon Glass <[email protected]>
2017-06-02fdt: Add Python bindingsSimon Glass
An early version of this is available upstream. Bring it in as a starting point. This is from dtc upstream commit e56f2b0. Future work will plumb it into dtoc and remove the now-unnecessary local libraries. Signed-off-by: Simon Glass <[email protected]>
2017-06-01string: Add strcspn()Simon Glass
Add an implementation of strcspn() which returns the number of initial characters that do not match any in a rejection list. Signed-off-by: Simon Glass <[email protected]>
2017-06-01string: Add strchrnul()Simon Glass
This functions works like strchr() but returns the end of the string if the character is not found. Add an implementation of this. Signed-off-by: Simon Glass <[email protected]>
2017-06-01cros_ec: Convert to support live treeSimon Glass
Convert this driver to support the live device tree and remove the old fdtdec support. The keyboard is not yet converted. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: core: Add a place to put extra device-tree reading functionsSimon Glass
Some functions deal with structured data rather than simple data types. It makes sense to have these in their own file. For now this just has a function to read a flashmap entry. Move the data types also. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: Add a function to create a 'live' device treeSimon Glass
This function converts the flat device tree into a hierarchical one with C structures and pointers. This is easier to access. Signed-off-by: Simon Glass <[email protected]>
2017-05-22Convert CONFIG_LZMA to KconfigSimon Glass
This converts the following to Kconfig: CONFIG_LZMA Signed-off-by: Simon Glass <[email protected]>
2017-05-22lib: move hash CONFIG options to KconfigTom Rini
Commit 94e3c8c4fd7b ("crypto/fsl - Add progressive hashing support using hardware acceleration.") created entries for CONFIG_SHA1, CONFIG_SHA256, CONFIG_SHA_HW_ACCEL, and CONFIG_SHA_PROG_HW_ACCEL. However, no defconfig has migrated to it. Complete the move by first adding additional logic to various Kconfig files to select this when required and then use the moveconfig tool. In many cases we can select these because they are required to implement other drivers. We also correct how we include the various hashing algorithms in SPL. This commit was generated as follows (after Kconfig additions): [1] tools/moveconfig.py -y SHA1 SHA256 SHA_HW_ACCEL [2] tools/moveconfig.py -y SHA_PROG_HW_ACCEL Note: We cannot move SHA_HW_ACCEL and SHA_PROG_HW_ACCEL simultaneously because there is dependency between them. Cc: Poonam Aggrwal <[email protected]> Cc: Naveen Burmi <[email protected]> Cc: Po Liu <[email protected]> Cc: Shengzhou Liu <[email protected]> Cc: Priyanka Jain <[email protected]> Cc: Shaohui Xie <[email protected]> Cc: Chunhe Lan <[email protected]> Cc: Chander Kashyap <[email protected]> Cc: Steve Rae <[email protected]> Cc: Dirk Eibach <[email protected]> Cc: Feng Li <[email protected]> Cc: Alison Wang <[email protected]> Cc: Sumit Garg <[email protected]> Cc: Mingkai Hu <[email protected]> Cc: York Sun <[email protected]> Cc: Prabhakar Kushwaha <[email protected]> Cc: Jaehoon Chung <[email protected]> Cc: Akshay Saraswat <[email protected]> Cc: Heiko Schocher <[email protected]> Cc: Jagan Teki <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2017-05-12tpm: Fix comparison of unsigned expression warningTom Rini
The function tpm_xfer returns int so make 'err' be int rather than uint32_t so that we can catch an error condition. Reported by clang-3.8. Signed-off-by: Tom Rini <[email protected]>
2017-05-12rsa: Fix build with OpenSSL 1.1.xJelle van der Waa
The rsa_st struct has been made opaque in 1.1.x, add forward compatible code to access the n, e, d members of rsa_struct. EVP_MD_CTX_cleanup has been removed in 1.1.x and EVP_MD_CTX_reset should be called to reinitialise an already created structure.
2017-05-12lib/slre: remove superfluous assignment[email protected]
The value assigned to saved_offset is never used. The problem was indicated by clang scan-build. Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-05-09Allow boards to initialize the DT at runtime.Alex Deymo
In some boards like the Raspberry Pi the initial bootloader will pass a DT to the kernel. When using U-Boot as such kernel, the board code in U-Boot should be able to provide U-Boot with this, already assembled device tree blob. This patch introduces a new config option CONFIG_OF_BOARD to use instead of CONFIG_OF_EMBED or CONFIG_OF_SEPARATE which will initialize the DT from a board-specific funtion instead of bundling one with U-Boot or as a separated file. This allows boards like the Raspberry Pi to reuse the device tree passed from the bootcode.bin and start.elf firmware files, including the run-time selected device tree overlays. Signed-off-by: Alex Deymo <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-05-09string: Use memcpy() within memmove() when we canSimon Glass
A common use of memmove() can be handled by memcpy(). Also memcpy() includes an optimisation for large sizes: it copies a word at a time. So we can get a speed-up by calling memcpy() to handle our move in this case. Update memmove() to call memcpy() if the destination is before the source. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-05-05lib: circbuf: avoid possible null pointer dereference[email protected]
We should not first dereference p and afterwards assert that is was not NULL. Instead do the assert first. The problem was indicated by cppcheck. Signed-off-by: Heinrich Schuchardt <[email protected]>
2017-04-30Convert CONFIG_CMD_AES et al to KconfigSimon Glass
This converts the following to Kconfig: CONFIG_CMD_AES CONFIG_AES Signed-off-by: Simon Glass <[email protected]> [trini: Add select AES to CMD_AES] Signed-off-by: Tom Rini <[email protected]>
2017-04-14Merge branch 'master' of git://git.denx.de/u-boot-socfpgaTom Rini
2017-04-14fdt: Add compatible strings for Arria 10Ley Foon Tan
Add compatible strings for Intel Arria 10 SoCFPGA device. Signed-off-by: Tien Fong Chee <[email protected]> Signed-off-by: Ley Foon Tan <[email protected]>
2017-04-13Merge git://git.denx.de/u-boot-dmTom Rini
Here with some DM changes as well as the long-standing AT91 DM/DT conversion patches which I have picked up via dm.
2017-04-13fdtgrep: Cope with the /aliases node being lastSimon Glass
With skeleton.dtsi being dropped it is more likely that the /aliases node will be last in the device tree. Update fdtgrep to handle this. Signed-off-by: Simon Glass <[email protected]> Tested-by: Masahiro Yamada <[email protected]>
2017-04-13lib: div64: sync with LinuxPeng Fan
Sync with Linux commit ad0376eb1483b ("Merge tag 'edac_for_4.11_2'"). Signed-off-by: Peng Fan <[email protected]> Cc: Tom Rini <[email protected]>
2017-04-13tiny-printf: Add support for %p formatVignesh R
Add support for %p, %pa[p], %pM, %pm and %pI4 formats to tiny-printf. %pM and %pI4 are widely used by SPL networking stack and is required if networking support is desired in SPL. %p, %pa and %pap are mostly used by debug prints and hence supported only when DEBUG is enabled. Before this patch: $ size spl/u-boot-spl text data bss dec hex filename 99325 4899 218584 322808 4ecf8 spl/u-boot-spl After this patch (with CONFIG_SPL_NET_SUPPORT): $ size spl/u-boot-spl text data bss dec hex filename 99666 4899 218584 323149 4ee4d spl/u-boot-spl So, this patch adds ~350 bytes to code size. If CONFIG_SPL_NET_SUPPORT is not enabled, this adds ~25 bytes. If CONFIG_USE_TINY_PRINTF is disabled then: $ size spl/u-boot-spl text data bss dec hex filename 101116 4899 218584 324599 4f3f7 spl/u-boot-spl So, there is still ~1.4K space saved even with support for %pM/%pI4. Compiler used is to build is: arm-linux-gnueabihf-gcc (Linaro GCC 6.2-2016.11) 6.2.1 20161016 Signed-off-by: Vignesh R <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-04-12Rename aes.h to uboot_aes.hStefano Babic
aes.h is a too generic name if this file can be exported and used by a program. Rename it to avoid any conflicts with other files (for example, from openSSL). Signed-off-by: Stefano Babic <[email protected]>
2017-04-10libfdt: fix build with Python 3Stefan Agner
For some reason Python 3 seems to think it does not need to build the library. Using the --force parameter makes sure that the library gets built always. This is especially important since we move the library in the next step of the Makefile, hence forcing a rebuild every time the higher level Makefile triggers a rebuild is required to make sure the library is always there. Signed-off-by: Stefan Agner <[email protected]> Acked-by: Simon Glass <[email protected]>
2017-04-10fdt: Bring in changes from v1.4.4Simon Glass
This a few minor changes down from upstream since the last sync. Signed-off-by: Simon Glass <[email protected]>
2017-04-07cmd: Expose a Kconfig option to enable UBIFS commandsBoris Brezillon
Create a new Kconfig entry to allow CMD_UBIFS selection from Kconfig and add an hidden LZO option that can be selected by CMD_UBIFS. Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Jagan Teki <[email protected]>
2017-04-07mtd: ubi: Select RBTREE option from MTD_UBI Kconfig entryBoris Brezillon
Expose the RBTREE feature through Kconfig and select this option from the MTD_UBI option. Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Jagan Teki <[email protected]> [Rebased on master] Signed-off-by: Jagan Teki <[email protected]>
2017-04-07bch: Allow to build for the hostMaxime Ripard
We will need the bch functions in the tool to generate the SPL images for the Allwinner SoCs. Do the needed adjustments so that we can use it on the host. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-04string: Provide a slimmed-down memset()Simon Glass
Most of the time the optimised memset() is what we want. For extreme situations such as TPL it may be too large. For example on the 'rock' board, using a simple loop saves a useful 48 bytes. With gcc 4.9 and the rodata bug, this patch is enough to reduce the TPL image below the limit. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Heiko Stuebner <[email protected]>
2017-03-26tpm: Add function to load keys via their parent's SHA1 hash[email protected]
If we want to load a key into a TPM, we need to know the designated parent key's handle, so that the TPM is able to insert the key at the correct place in the key hierarchy. However, if we want to load a key whose designated parent key we also previously loaded ourselves, we first need to memorize this parent key's handle (since the handles for the key are chosen at random when they are inserted into the TPM). If we are, however, unable to do so, for example if the parent key is loaded into the TPM during production, and its child key during the actual boot, we must find a different mechanism to identify the parent key. To solve this problem, we add a function that allows U-Boot to load a key into the TPM using their designated parent key's SHA1 hash, and the corresponding auth data. Signed-off-by: Mario Six <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-03-26libfdt: use CONFIG_IS_ENABLED for OF_LIBFDTVignesh R
Use CONFIG_IS_ENABLED() macro to check whether OF_TRANSLATE is enabled, so that code block is compiled irrespective of SPL or U-Boot build and fdt address translation is used. Signed-off-by: Vignesh R <[email protected]>
2017-03-20Kconfig: Don't use RSA_FREESCALE_EXP on IMXGeorge McCollister
The CAAM in IMX parts doesn't support public key hardware acceleration (PKHA), so don't use RSA_FREESCALE_EXP. If you try to use it on IMX (assuming you have the clocks enabled first) you will get back an "Invalid KEY Command" error since PKHA isn't a valid key destination for these parts. Signed-off-by: George McCollister <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-03-17Kconfig: introduce md5sum command selectionAndre Przywara
So far CONFIG_MD5SUM would need to be set by a board's include file. Since the command is really generic, move it over to Kconfig to allow it to be defined by either a board's defconfig, menuconfig or some config snippet merged via mergeconfig.sh. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-03-16Merge git://git.denx.de/u-boot-fsl-qoriqTom Rini
2017-03-14tiny-printf: add static to locally used functionsMasahiro Yamada
These two functions are only used in lib/tiny-printf.c . Signed-off-by: Masahiro Yamada <[email protected]> Tested-by: Andreas Färber <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2017-03-14efi: Add a hook to allow adding memory mappingYork Sun
Instead of adding all memory banks, add a hook so individual SoC/board can has its own implementation. Signed-off-by: York Sun <[email protected]> CC: Alexander Graf <[email protected]> Reviewed-by: Alexander Graf <[email protected]>
2017-02-06x86: Use unsigned long for address in table generationSimon Glass
We should use unsigned long rather than u32 for addresses. Update this so that the table-generation code builds correctly on 64-bit machines. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2017-02-01lib: tpm: Add command to flush resourcesMario Six
This patch adds a function to the TPM library, which allows U-Boot to flush resources, e.g. keys, from the TPM. Signed-off-by: Mario Six <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Stefan Roese <[email protected]>