summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
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]>
2017-01-28disk: convert CONFIG_ISO_PARTITION to KconfigPatrick Delaunay
Signed-off-by: Patrick Delaunay <[email protected]> Signed-off-by: Patrick Delaunay <[email protected]>
2017-01-14mkimage: Add support for signing with pkcs11George McCollister
Add support for signing with the pkcs11 engine. This allows FIT images to be signed with keys securely stored on a smartcard, hardware security module, etc without exposing the keys. Support for other engines can be added in the future by modifying rsa_engine_get_pub_key() and rsa_engine_get_priv_key() to construct correct key_id strings. Signed-off-by: George McCollister <[email protected]>
2017-01-14lib: net_utils: enforce '.' as octet separator in string_to_ipChris Packham
Ensure '.' is used to separate octets. If another character is seen reject the string outright and return 0.0.0.0. Signed-off-by: Chris Packham <[email protected]>
2017-01-14lib: net_utils: make string_to_ip stricterChris Packham
Previously values greater than 255 were implicitly truncated. Add some stricter checking to reject addresses with components >255. With the input "1234192.168.1.1" the old behaviour would truncate the address to 192.168.1.1. New behaviour rejects the string outright and returns 0.0.0.0, which for the purposes of IP addresses can be considered an error. Signed-off-by: Chris Packham <[email protected]>
2017-01-14delay: collect {m, n, u}delay declarations to include/linux/delay.hMasahiro Yamada
Currently, mdelay() and udelay() are declared in include/common.h, while ndelay() in include/linux/compat.h. It would be nice to collect them into include/linux/delay.h like Linux. While we are here, fix the ndelay() implementation; I used the DIV_ROUND_UP() instead of (x)/1000 because it must wait *longer* than the given period of time. Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-01-13libfdt: Correct fdt handling of overlays without fixups and base trees ↵David Gibson
without symbols The fdt_overlay_apply() function purports to support the edge cases where an overlay has no fixups to be applied, or a base tree which has no symbols (the latter can only work if the former is also true). However it gets it wrong in a couple of small ways: * In the no fixups case, it doesn't fail immediately, but will attempt fdt_for_each_property_offset() giving -FDT_ERR_NOTFOUND as the node offset, which will fail. Instead it should succeed immediately, since there's nothing to do. * In the case of no symbols, it again doesn't fail immediately. However if there is an actual fixup it will fail with an unexpected error, because -FDT_ERR_NOTFOUND is passed to fdt_getprop() when attempting to look up the symbols. We should instead return -FDT_ERR_NOTFOUND directly. Both of these errors lead to the code returning misleading error codes in failing cases. [ DTC commit: 7d8ef6e1db9794f72805a0855f4f7f12fadd03d3 ] Signed-off-by: David Gibson <[email protected]> Signed-off-by: Stefan Agner <[email protected]> Acked-by: Simon Glass <[email protected]>
2017-01-10Merge branch 'master' of git://git.denx.de/u-boot-sunxiTom Rini
2017-01-09lib: gitignore *.elf and *.so generated by efi_loaderLadislav Michl
Signed-off-by: Ladislav Michl <[email protected]>
2017-01-04SPL: tiny-printf: ignore "-" modifierAndre Przywara
tiny-printf does not know about the "-" modifier, which aligns numbers. This is used by some SPL code, but as it's purely cosmetical, we just ignore this modifier here to avoid changing correct printf strings. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-01-04SPL: tiny-printf: add "l" modifierAndre Przywara
tiny-printf does not know about the "l" modifier so far, which breaks the crash dump on AArch64, because it uses %lx to print the registers. Add an easy way of handling longs correctly. Using a relatively decent compiler (GCC 5.3.0) this does _not_ increase the code size of tiny-printf.o for 32-bit builds (where long and int are actually the same), actually it looses three (ARM Thumb2) instructions from the actual SPL (numbers for orangepi_plus_defconfig): text data bss dec hex filename 758 0 0 758 2f6 spl/lib/tiny-printf.o before 18839 488 232 19559 4c67 spl/u-boot-spl before 758 0 0 758 2f6 spl/lib/tiny-printf.o after 18833 488 232 19553 4c61 spl/u-boot-spl after This adds some substantial amount of code to a 64-bit build, though: (taken after a later commit, which enables the ARM64 SPL build for sunxi) text data bss dec hex filename 1542 0 0 1542 606 spl/lib/tiny-printf.o before 25830 392 360 26582 67d6 spl/u-boot-spl before 1758 0 0 1758 6de spl/lib/tiny-printf.o after 26040 392 360 26792 68a8 spl/u-boot-spl after Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>