summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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 <george.mccollister@gmail.com>
2017-01-14ti: am335x: mmc: Set CONFIG_SYS_MMC_MAX_DEVICEEmmanuel Vadot
Set CONFIG_SYS_MMC_MAX_DEVICE to 2 for am335x SoC. This define is needed in the API code. Signed-off-by: Emmanuel Vadot <manu@bidouilliste.com>
2017-01-14ARM: omap3_logic: Use DEFAULT_LINUX_BOOT_ENV from ti_armv7_commonAdam Ford
Since we're including ti_armv7_common, let's pull in DEFAULT_LINUX_BOOT_ENV and remove unnecessary duplicative definitions. This patch also renames a few environmental variables to match what is inside ti_armv7_common. This should help future-proof any subsequent memory or memory location changes. Signed-off-by: Adam Ford <aford173@gmail.com>
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 <judge.packham@gmail.com>
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 <judge.packham@gmail.com>
2017-01-14Kconfig: Refactoring of top-level Kconfig fileRobert P. J. Day
Some refactoring of the top-level Kconfig file which includes: * using "if" to remove numerous identical dependency tests * reordering config entries to group related ones * spelling and grammar fixes There should be no functional changes, only aesthetic ones. Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2017-01-14armv8: release slave cores from CPU_RELEASE_ADDROded Gabbay
When using ARMv8 with ARMV8_SPIN_TABLE=y, we want the slave cores to wait on spin_table_cpu_release_addr, until the Linux kernel will "wake" them by writing to that location. The address of spin_table_cpu_release_addr is transferred to the kernel using the device tree that is updated by spin_table_update_dt(). However, if we also use SPL, then the slave cores are stuck at CPU_RELEASE_ADDR instead and as a result, never wake up. This patch releases the slave cores by writing spl_image->entry_point to CPU_RELEASE_ADDR location before the end of the SPL code (at jump_to_image_no_args()). That way, the slave cores will start to execute the u-boot and will get to the spin-table code and wait on the correct address (spin_table_cpu_release_addr). Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-01-14iopoll: import include/linux/iopoll.h from Linux 4.9Masahiro Yamada
This was imported from Linux 4.9 and adjusted for U-Boot. - Replace the license block with SPDX - Drop all *_atomic variants, which make no sense for U-Boot - Remove the sleep_us argument, which makes no sense for U-Boot Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-01-14time: import time_after, time_before and friends from LinuxMasahiro Yamada
It is not safe to compare timer values directly. On 32-bit systems, for example, timer_get_us() wraps around every 72 min. (2 ^ 32 / 1000000 =~ 4295 sec =~ 72 min). Depending on the get_ticks() implementation, it may wrap more frequently. The 72 min might be possible on the use of U-Boot. Let's borrow time_after, time_before, and friends to solve the wrap-around problem. These macros were copied from include/linux/jiffies.h of Linux 4.9. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-01-14typecheck: import include/linux/typecheck.h from Linux 4.9Masahiro Yamada
Copied from Linux 4.9. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-01-14time: move timer APIs to include/time.hMasahiro Yamada
The include/common.h is a collection of unrelated declarations, macros, etc. It is horrible to include such a cluttered header just for some timer functions. Split out timer functions into include/time.h. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
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 <yamada.masahiro@socionext.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-01-14armv8: fix #if around spin-table code in start.SOded Gabbay
Using CONFIG_IS_ENABLED() doesn't work in SPL. This patch replaces the only occurrence of CONFIG_IS_ENABLED() in start.S to a regular #if defined(). It also adds "&& !defined(CONFIG_SPL_BUILD)" to that #if statement because the spin-table code can't currently work in SPL, and the spin-table file isn't even compiled in SPL. Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
2017-01-14spl: move RAM boot support in separate fileStefan Agner
Add a new top-level config option so support booting an image stored in RAM. This allows to move the RAM boot support into a sparate file and having a single condition to compile that file. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2017-01-14Convert CONFIG_SPL_RAM_DEVICE to defconfigStefan Agner
This converts the following to Kconfig: CONFIG_SPL_RAM_DEVICE Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2017-01-14arm: omap-common: add secure ROM signature verify index for AM33xxAndrew F. Davis
On AM33xx devices the secure ROM uses a different call index for signature verification, the function and arguments are the same. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-01-14ti_armv7_common: env: Use FIT image configs by defaultAndrew F. Davis
This allows us to specify a FIT configuration that will automatically use the correct images from the FIT blob. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-01-14MAINTAINERS: Add maintainer for TI security related filesAndrew F. Davis
Changes involving High-Security boards should be CC'd for additional assessment of the security implications. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-01-14cmd: sata: fix init command return valueGary Bisson
Since commit aa6ab905b2, sata_initialize returns -1 if init_sata or scan_sata fails. But this return value becomes the do_sata return value which is equivalent to CMD_RET_USAGE. In case one issues 'sata init' and that the hardware fails to initialize, there's no need to display the command usage. Instead the command shoud just return the CMD_RET_FAILURE value. Fixes: aa6ab905b2 (sata: fix sata command can not being executed bug) Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com> Reviewed-by: Eric Nelson <eric@nelint.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-01-14Kconfig: CONFIG_OF_PLATDATA doesn't really existTom Rini
There is no CONFIG_OF_PLATDATA, only CONFIG_SPL_OF_PLATDATA, so rename the two references to CONFIG_OF_PLATDATA to CONFIG_SPL_OF_PLATDATA. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-01-14arm: Re-sync asm/mach-types.h with Linux Kernel v4.9Tom Rini
This re-syncs the MACH_TYPE_xxx values from the Linux Kernel v4.9 release. In addition this removes all of the machine_arch_type and machine_is_xxx logic that is unused in U-Boot. This removal removes a large number of otherwise unused CONFIG values from the list to be converted. Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Tom Rini <trini@konsulko.com> Tested-by: Adam Ford <aford173@gmail.com>
2017-01-14arm: Remove unregister MACH_TYPE_xxx usesTom Rini
Before we can sync with the latest mach-types.h file from the Linux Kernel we need to remove some instances of MACH_TYPE_xxx from our sources. As these values have been removed from the canonical upstream source we should not be using them either, so drop. Cc: Tom Warren <twarren@nvidia.com> Cc: Lucas Stach <dev@lynxeye.de> Cc: Luka Perkov <luka@openwrt.org> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Heiko Schocher <hs@denx.de> Cc: Thomas Weber <weber@corscience.de> Cc: Lucile Quirion <lucile.quirion@savoirfairelinux.com> Cc: Matthias Weisser <weisserm@arcor.de> Cc: Suriyan Ramasami <suriyan.r@gmail.com> Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> Cc: Bo Shen <voice.shen@atmel.com> Cc: Nick Thompson <nick.thompson@gefanuc.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Erik van Luijk <evanluijk@interact.nl> Cc: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2017-01-14omap3_igep00x0: Rework MACH_TYPE and status LED logic slightlyTom Rini
The MACH_TYPE for IGEP0032 was never officially used and has been removed from upstream, so we must not use it. In order to remove this we need to rework the status LED logic. Cc: Enric Balletbo i Serra <eballetbo@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com>
2017-01-14omap3_logic: Rework MACH_TYPE and fdtfile logicTom Rini
The MACH_TYPE values for the omap37xx based platforms are no longer officially valid, so we must not set and pass them. In order to not reference them but still be able to set the default fdtfile based on the board detection logic we need to combine the two steps into one. Cc: Adam Ford <aford173@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Adam Ford <aford173@gmail.com>
2017-01-14Merge git://git.denx.de/u-boot-fdtTom Rini
2017-01-14cmd/fdt: Make fdt get value endian-safe for single-cell propertiesAndreas Färber
On a Raspberry Pi 2 disagreements on cell endianness can be observed: U-Boot> fdt print /soc/gpio@7e200000 phandle phandle = <0x0000000d> U-Boot> fdt get value myvar /soc/gpio@7e200000 phandle; printenv myvar myvar=0x0D000000 Fix this by always treating the pointer as BE and converting it in fdt_value_setenv(), like its counterpart fdt_parse_prop() already does. Consistently use fdt32_t, fdt32_to_cpu() and cpu_to_fdt32(). Fixes: bc80295 ("fdt: Add get commands to fdt") Cc: Joe Hershberger <joe.hershberger@ni.com> Cc: Gerald Van Baren <gvb@unssw.com> Signed-off-by: Andreas Färber <afaerber@suse.de> Acked-by: Simon Glass <sjg@chromium.org>
2017-01-14cmd: fdt: Print error message when fdt application failsStefan Agner
There are lots of reason why a FDT application might fail, the error code might give an indication. Let the error code translate in a error string so users can try to understand what went wrong. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Simon Glass <sjg@chromium.org>
2017-01-14libfdt: 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 <david@gibson.dropbear.id.au> Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Simon Glass <sjg@chromium.org>
2017-01-13Merge branch 'master' of http://git.denx.de/u-boot-mmcTom Rini
2017-01-13mmc: sunxi: revive depends on UART0_PORT_FMasahiro Yamada
Commit f401e907fcbc ("ARM: sunxi: remove bare default for CONFIG_MMC") dropped "depends on UART0_PORT_F", but it is still needed. Revive it as a prerequisite of CONFIG_MMC_SUNXI. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2017-01-13mmc: pic32_sdhci: rename {pci->pic}32_sdhci_get_cdMasahiro Yamada
I suspect this is a typo. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-01-13mmc: sdhci: fix NULL pointer access when host->ops is not setMasahiro Yamada
Until recently, sdhci_ops was used only for overriding IO accessors. (so, host->ops was not set by any drivers except bcm2835_sdhci.c) Now, we have more optional callbacks, get_cd, set_control_reg, and set_clock. However, the code if (host->ops->get_cd) host->ops->get_cd(host); ... expects host->ops is set for all drivers. Commit 5e96217f0434 ("mmc: pic32_sdhci: move the code to pic32_sdhci.c") and commit 62226b68631b ("mmc: sdhci: move the callback function into sdhci_ops") added sdhci_ops for pic32_sdhci.c and s5p_sdhci.c, but the other drivers still do not (need not) set host->ops because all callbacks in sdhci_ops are optional. host->ops must be checked to avoid the system crash caused by NULL pointer access. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2017-01-13Merge git://git.denx.de/u-boot-rockchipTom Rini
2017-01-12cmd: mem: Use memcpy for 'cp' commandFabio Estevam
Simplify the 'cp' command implementation by using the memcpy() function, which brings the additional benefit of performance gain for those who have CONFIG_USE_ARCH_MEMCPY selected. Tested on a mx6qsabreauto board where a 5x gain in performance is seen when reading 10MB from the parallel NOR memory. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
2017-01-12rockchip: Drop Ethernet from the TODOSjoerd Simons
Now that ethernet support works, it can be dropped from the rockchip TODO Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2017-01-12rockchip: Enable ETH address randomization for the rock2Romain Perier
This commit enables ethernet MAC address randomization on the rock2. It removes the error at startup 'ethernet@ff290000 address not set'. Signed-off-by: Romain Perier <romain.perier@collabora.com>
2017-01-12rockchip: Add PXE and DHCP to the default boot targetsSjoerd Simons
Now that at least on the firefly board we have network support, enable PXE and DHCP boot targets by default. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12Enable DISTRO_DEFAULTS for Rockchip platformsRomain Perier
This enables suitable commands needed for booting general purpose Linux distribution. This is required for example if we want to use PXE or DHCP as default boot targets, symbols no longer enabled by config_distro_defaults.h . Signed-off-by: Romain Perier <romain.perier@collabora.com>
2017-01-12rockchip: evb-rk3339: Enable DHCPSimon Glass
This is the only RK3399 device without DHCP. Enable it so that we can use a common BOOT_TARGET_DEVICES setting. It is likely useful to be able to use USB networking, at least. Full networking can be enabled when a suitable platform needs it. Signed-off-by: Simon Glass <sjg@chromium.org>
2017-01-12rockchip: Enable networking support on rock2 and fireflySjoerd Simons
Enable the various configuration option required to get the ethernet interface up and running on Radxa Rock2 and Firefly. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Romain Perier <romain.perier@collabora.com> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12net: gmac_rockchip: Add Rockchip GMAC driverSjoerd Simons
Add a new driver for the GMAC ethernet interface present in Rockchip RK3288 SOCs. This driver subclasses the generic design-ware driver to add the glue needed specifically for Rockchip. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Romain Perier <romain.perier@collabora.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12net: designware: Export the operation functionsSimon Glass
Export all functions so that drivers can use them, or not, as the need arises. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Romain Perier <romain.perier@collabora.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12net: designware: Split the link init into a separate functionSimon Glass
With rockchip we need to make adjustments after the link speed is set but before enabling received/transmit. In preparation for this, split these two pieces into separate functions. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Romain Perier <romain.perier@collabora.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12net: designware: Adjust dw_adjust_link() to return an errorSimon Glass
This function can fail, so return the error if there is one. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Romain Perier <romain.perier@collabora.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12net: designware: Export various functions/struct to allow subclassingSjoerd Simons
To allow other DM drivers to subclass the designware driver various functions and structures need to be exported. Export these. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Signed-off-by: Romain Perier <romain.perier@collabora.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
2017-01-12rockchip: video: fix mpixelclock in rockchip HDMINickey Yang Nickey Yang
Correct mpixelclock errors in rockchip_phy_config[] and rockchip_mpll_cfg[]. Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-01-12rockchip: rk3288: set isp/vop qos priority levelNickey Yang Nickey Yang
Isp-camera preview image will be broken when dual screen display mode. This patch set isp/vop qos level higher to solve this problem. We have verified this patch on rk3288-miniarm board. Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2017-01-12arm64: rk3399: update rockchip_get_cru APIKever Yang
rk3399 has two clock-controller: cru and pmucru, update the rockchip_get_crui() API, and rockchip_get_clk() do not used for other module. Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
2017-01-12dts: arm64: rk3399: add max-frequency for sdhciKever Yang
Add 'max-frequency' for sdhci node for clock init. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2017-01-12mmc: rockchip_sdhci: add clock init for mmcKever Yang
Init the clock rate to max-frequency from dts with clock driver api. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>