summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* arm: imx: add HAB authentication of image to SPL bootSven Ebenfeld2017-01-025-59/+110
| | | | | | | | | | | | | | | | | | | | | When using HAB as secure boot mechanism on Wandboard, the chain of trust breaks immediately after the SPL. As this is not checking the authenticity of the loaded image before jumping to it. The HAB status output will not be implemented in SPL as it adds a lot of strings that are only required in debug cases. With those it exceeds the maximum size of the available OCRAM (69 KiB). The SPL MISC driver support must be enabled, so that the driver can use OTP fuse to check if HAB is enabled. Cc: sbabic@denx.de v2-Changes: None Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com> Reviewed-by: George McCollister <george.mccollister@gmail.com> Tested-by: George McCollister <george.mccollister@gmail.com>
* arm: imx: remove bmode , hdmidet and dek commands from SPLSven Ebenfeld2017-01-022-1/+3
| | | | | | | | | | | | | | | | | | | These files are blowing up the SPL and should not be required there as the SPL delivers no command console. Because building fails for mx27 and mx31 machines with SPL build, we remove the linker flag for them from the Makefile. Nothing is built for them to be linked in that directory. Cc: sbabic@denx.de v2 Changes: - Remove mx27 and mx31 from Makefile during SPL build as nothing is built for them in that directory. And removing the commands with the libs-y directive lead to linker failures. e.g. "armv5te-ld.bfd: cannot find arch/arm/imx-common/built-in.o: No such file or directory)" Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com> Reviewed-by: George McCollister <george.mccollister@gmail.com> Tested-by: George McCollister <george.mccollister@gmail.com>
* udoo_neo: Remove USDHC3 entryFabio Estevam2017-01-021-2/+1
| | | | | | | | Commit c94981efa20cc58 ("udoo_neo: Remove USDHC3 support") removed the SDHC3 support, but missed to remove the entry from the usdhc_cfg structure, so just remove it. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
* mmc: move MMC_SDHCI_IO_ACCESSORS to KconfigMasahiro Yamada2016-12-292-1/+8
| | | | | | | | | | This is a user-unconfigurable option that is selected by the drivers that need to overwrite SDHCI IO memory accessors. (BCM2835 SDHCI seems the only driver that needs to do so.) Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
* mmc: move some SDHCI related options to KconfigMasahiro Yamada2016-12-2954-31/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While I moved the options, I also renamed them so that they are all prefixed with MMC_SDHCI_. This commit was created in the following steps. [1] Rename with the following command find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \ -type f -print | xargs sed -i -e ' s/CONFIG_MMC_SDMA/CONFIG_MMC_SDHCI_SDMA/g s/CONFIG_BCM2835_SDHCI/CONFIG_MMC_SDHCI_BCM2835/g s/CONFIG_KONA_SDHCI/CONFIG_MMC_SDHCI_KONA/g s/CONFIG_MV_SDHCI/CONFIG_MMC_SDHCI_MV/g s/CONFIG_S5P_SDHCI/CONFIG_MMC_SDHCI_S5P/g s/CONFIG_SPEAR_SDHCI/CONFIG_MMC_SDHCI_SPEAR/g ' [2] create the Kconfig entries in drivers/mmc/Kconfig [3] Move the options by the following command tools/moveconfig.py -y MMC_SDHCI_SDMA MMC_SDHCI_BCM2835 \ MMC_SDHCI_KONA MMC_SDHCI_MV MMC_SDHCI_S5P MMC_SDHCI_SPEAR [4] Sort drivers/mmc/Makefile for readability Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
* mmc: move CONFIG_SDHCI to Kconfig, renaming to CONFIG_MMC_SDHCIMasahiro Yamada2016-12-2976-21/+72
| | | | | | | | | | | | | | | | | | | | | | | Move CONFIG_SDHCI to Kconfig and rename it to CONFIG_MMC_SDHCI. My motivation for the rename is, ultimately, to make all the MMC options prefixed with MMC_ and SDHCI options with MMC_SDHCI_, like Linux. This commit was created as follows: [1] Rename the config option with the following command: find . -name .git -prune -o ! -path ./scripts/config_whitelist.txt \ -type f -print | xargs sed -i -e 's/CONFIG_SDHCI/CONFIG_MMC_SDHCI/g' [2] create the entry for MMC_SDHCI in drivers/mmc/Kconfig [3] run "tools/moveconfig.py -y MMC_SDHCI" [4] add "depends on MMC_SDHCI" to existing SDHCI driver entries Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
* mmc: make MMC driver entries dependent on MMCMasahiro Yamada2016-12-298-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, CONFIG_MMC is not related to any other options by "depends on" or "select". One of big advantages of using Kconfig is automatic dependency tracking, but the current state is lacking it. As the first step, make the existing MMC driver entries depend on MMC. This commit was created by the following steps: [1] Run the following script: --------------------8<-------------------- rm -f tmp.txt for d in $(find . -path './configs/*_defconfig') do if grep -q -e 'CONFIG_MSM_SDHCI=y' $d || grep -q -e 'CONFIG_ATMEL_SDHCI=y' $d || grep -q -e 'CONFIG_ROCKCHIP_DWMMC=y' $d || grep -q -e 'CONFIG_SH_SDHI=y' $d || grep -q -e 'CONFIG_PIC32_SDHCI=y' $d || grep -q -e 'CONFIG_ZYNQ_SDHCI=y' $d || grep -q -e 'CONFIG_ROCKCHIP_SDHCI=y' $d || grep -q -e 'CONFIG_MMC_UNIPHIER=y' $d || grep -q -e 'CONFIG_SANDBOX_MMC=y' $d then echo CONFIG_MMC=y >> $d echo ${d#./configs/} >> tmp.txt fi done tools/moveconfig.py -y -s -d tmp.txt rm tmp.txt --------------------8<-------------------- [2] surround MMC driver entries with "if MMC" and "endif" Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
* mmc: complete unfinished move of CONFIG_MMCMasahiro Yamada2016-12-29558-202/+382
| | | | | | | | | | | | | | | | | | | | | | | | Commit 7a777f6d6f35 ("mmc: Add generic Kconfig option") created a Kconfig entry for this option without any actual moves, then commit 44c798799f66 ("sunxi: Use Kconfig CONFIG_MMC") moved instances only for SUNXI. We generally do not like such partial moves. This kind of work is automated by tools/moveconfig.py, so it is pretty easy to complete this move. I am adding "default ARM || PPC || SANDBOX" (suggested by Tom). This shortens the configs and will ease new board porting. This commit was created as follows: [1] Edit Kconfig (remove the "depends on", add the "default", copy the prompt and help message from Linux) [2] Run 'tools/moveconfig.py -y -s -r HEAD MMC' Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
* Sync defconfig files by savedefconfigMasahiro Yamada2016-12-29166-447/+310
| | | | | | | | Generated by "tools/moveconfig -s". This will make config moves easier. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
* imx: mx6sllevk: add MAINTAINERS filePeng Fan2016-12-271-0/+7
| | | | | | | add MAINTAINERS files Signed-off-by: Peng Fan <peng.fan@nxp.com> Cc: Stefano Babic <sbabic@denx.de>
* board: samsung: update the MAINTAINERS fileJaehoon Chung2016-12-275-5/+5
| | | | | | Update the maintainer from Przemyslaw and Lukasz to me. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
* cmd: net: fix function name in commentBaruch Siach2016-12-271-1/+1
| | | | | | | | | In commit 7044c6bb6 (net: cosmetic: Clean up DHCP variables and functions) BootpCopyNetParams() was renamed to store_net_params(). Update the reference in comment. Cc: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
* fs/ext4: Initialize group descriptor size for revision level 0 filesystemsStefan Brüns2016-12-271-0/+1
| | | | | | | | | | | genext2fs creates revision level 0 filesystems, which are not readable by u-boot due to the initialized group descriptor size field. f798b1dda1c5de818b806189e523d1b75db7e72d Reported-by: Kever Yang <kever.yang@rock-chips.com> Reported-by: FrostyBytes@protonmail.com Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Tested-by: Kever Yang <kever.yang@rock-chips.com>
* disk: Fixed capacity messageJean-Jacques Hiblot2016-12-271-2/+2
| | | | | | | | | | With capacities getting bigger, we can see see messages with negative numbers like "Capacity: 1907729.0 MB = 1863.0 GB (-387938128 x 512)". Here the printed LBA is -387938128 when it should have been 3907029168. To fix this, use the right format when displaying the unsigned integers. Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Reported-by: Yan Liu <yan-liu@ti.com>
* Update Maintainer and Author's email addressAjay Bhargav2016-12-2713-13/+13
| | | | | | | | I am not longer using my old email address "ajay.bhargav@einfochips.com". For U-Boot development email address is now updated to contact@8051projects.net Signed-off-by: Ajay Bhargav <contact@8051projects.net>
* tools: mkimage: Call fclose in error pathMichal Simek2016-12-272-4/+12
| | | | | | | | | | | This patch is fixing missing fclose() calls in error patch introduced by: "tools: mkimage: Use fstat instead of stat to avoid malicious hacks" (sha1: ebe0f53f48e8f9ecc823e533a85b05c13638c350) Reported-by: Coverity (CID: 155064, 155065) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* README: remove description about CONFIG_USE_ARCH_MEMCPY/SETMasahiro Yamada2016-12-271-6/+0
| | | | | | | | | These options are now described in the Kconfig help. We do not want to maintain duplicated documentation. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Tom Rini <trini@konsulko.com>
* ARM: revive CONFIG_USE_ARCH_MEMCPY/MEMSET for UniPhier and TegraMasahiro Yamada2016-12-272-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit be72591bcd64 ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to Kconfig") is misconversion. The original logic in include/configs/uniphier.h was as follows: #if !defined(CONFIG_SPL_BUILD) && !defined(CONFIG_ARM64) #define CONFIG_USE_ARCH_MEMSET #define CONFIG_USE_ARCH_MEMCPY #endif This means those configs were enabled when building U-Boot proper, but disabled when building SPL. Likewise for Tegra. Now "depends on !SPL" prevents any boards with SPL support from reaching these options. This changed the behavior for UniPhier and Tegra SoC family. Please notice these two options only control the U-Boot proper build. As you see arch/arm/Makefile, ARM-specific memset/memcpy are never compiled for SPL. So, __HAVE_ARCH_MEMCPY/MEMSET should not set for SPL. Fixes: be72591bcd64 ("Kconfig: Move USE_ARCH_MEMCPY/MEMSET to Kconfig") Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
* MAINTAINERS, git-mailrc: update the Power maintainerJaehoon Chung2016-12-272-2/+7
| | | | | | | | Przemyslaw didn't maintain the PMIC anymore. Update the pmic maintainer from Przeymyslaw to me. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* fs/fat: simplify get_fatent for FAT12Stefan Brüns2016-12-271-29/+5
| | | | | | | Instead of shuffling bits from two adjacent 16 bit words, use one 16 bit word with the appropriate byte offset in the buffer. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
* fs/fat: merge readwrite get_fatent_value() with readonly get_fatent()Stefan Brüns2016-12-272-116/+27
| | | | | | | | | | | | | get_fatent_value(...) flushes changed FAT entries to disk when fetching the next FAT blocks, in every other aspect it is identical to get_fatent(...). Provide a stub implementation for flush_dirty_fat_buffer if CONFIG_FAT_WRITE is not set. Calling flush_dirty_fat_buffer during read only operation is fine as it checks if any buffers needs flushing. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
* fs/fat: Avoid corruption of sectors following the FATStefan Brüns2016-12-272-10/+13
| | | | | | | | The FAT is read/flushed in segments of 6 (FATBUFBLOCKS) disk sectors. The last segment may be less than 6 sectors, cap the length. Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
* cmd/Kconfig: Fix typo in CMD_MEMORY help textFabio Estevam2016-12-271-2/+2
| | | | | | | Fix "Memory" and "initialize" typos in the CMD_MEMORY help text. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Tom Rini <trini@konsulko.com>
* fat: fatwrite: fix the command for FAT12Philipp Skadorov2016-12-271-8/+53
| | | | | | | | | | | | | | | | | | | The u-boot command fatwrite empties FAT clusters from the beginning till the end of the file. Specifically for FAT12 it fails to detect the end of the file and goes beyond the file bounds thus corrupting the file system. Additionally, FAT entry chaining-up into a file is not implemented for FAT12. The users normally workaround this by re-formatting the partition as FAT16/FAT32, like here: https://github.com/FEDEVEL/openrex-uboot-v2015.10/issues/1 The patch fixes the bounds of a file and FAT12 entries chaining into a file, including EOF markup. Signed-off-by: Philipp Skadorov <philipp.skadorov@savoirfairelinux.com>
* relocate-rela: use compiler.h endian macrosJonathan Gray2016-12-271-37/+4
| | | | | | | | | | Use the endian macros from u-boot's compiler.h instead of duplicating the definitions. This also avoids a build error on OpenBSD by removing swap64 which collides with a system definition in endian.h pulled in by inttypes.h. Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
* timer: Support clocks via phandleZakharov Vlad2016-12-271-3/+14
| | | | | | | | | | | | | Earlier timer driver needed a clock-frequency property in compatible device-tree nodes. Another way is to reference a clock via a phandle. So now timer_pre_probe tries to get clock by reference through device tree. In case it is impossible to get clock device through the reference, clock-frequency property of the timer node is read to provide backward compatibility. Signed-off-by: Vlad Zakharov <vzakhar@synopsys.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* regulator: fixed: Add support to handle enable-active-high DT propertyVignesh R2016-12-272-1/+10
| | | | | | | | | Add support to handle enable-active-high DT property. This property is used to drive the gpio controlling fixed regulator as active high when claiming gpio line. Signed-off-by: Vignesh R <vigneshr@ti.com> Acked-by: Simon Glass <sjg@chromium.org>
* binman: Remove hard-coded file name for x86 CMC/FSP/VGABin Meng2016-12-263-9/+0
| | | | | | | | Now that we have added file names from Kconfig in x86 u-boot.dtsi, update binman to avoid using hard-coded names. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: Add file names from Kconfig in CMC/FSP/VGA nodes in u-boot.dtsiBin Meng2016-12-261-0/+3
| | | | | | | | Since we already have a bunch of Kconfig options for CMC/FSP/VGA file names, add these from Kconfig in the corresponding dts nodes. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* x86: quark: Fix build error for quark-based boardsBin Meng2016-12-261-0/+17
| | | | | | | | | With the conversion to use binman to build x86 boards, Intel Galileo board does not build anymore due to missing ucode entry. In fact ucode is not needed for quark-based boards. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* Merge branch 'master' of git://git.denx.de/u-boot-sunxiTom Rini2016-12-232-0/+45
|\
| * sunxi: fix SID read on H3Icenowy Zheng2016-12-202-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | H3 SID controller has some bug, which makes the initial SID value at SUNXI_SID_BASE wrong when boot. Change the SID retrieve code to call the SID Controller directly on H3, which can get the correct value, and also fix the SID value at SUNXI_SID_BASE, so that it can be used by further operations. Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Reviewed-by: Jagan Teki <jagan@openedev.com>
* | Merge branch 'master' of git://git.denx.de/u-boot-spiTom Rini2016-12-2315-744/+2
|\ \
| * | spi: Zap armada100_spi.c and envJagan Teki2016-12-215-218/+1
| | | | | | | | | | | | | | | | | | | | | | | | armada100_spi.c and related env is zapping becuase of "no DM conversion". Cc: Ajay Bhargav <ajay.bhargav@einfochips.com> Signed-off-by: Jagan Teki <jagan@openedev.com>
| * | spi: Zap mpc52xx_spi.c, config and related codeJagan Teki2016-12-2112-526/+1
| |/ | | | | | | | | | | | | | | | | armada100_spi.c, related config options and related codes are zapping becuase of "no DM conversion". Cc: Werner Pfister <Pfister_Werner@intercontrol.de> Signed-off-by: Jagan Teki <jagan@openedev.com> Reviewed-by: Tom Rini <trini@konsulko.com>
* | Merge branch 'master' of git://git.denx.de/u-boot-samsungTom Rini2016-12-235-0/+237
|\ \
| * | configs: enable the DM_PMIC and DM_I2C_GPIO for max8998 pmicJaehoon Chung2016-12-221-0/+3
| | | | | | | | | | | | | | | | | | | | | Enable the DM_PMIC and DM_I2C_GPIO for using max8998 pmic. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
| * | arm: dts: s5pc1xx-goni: add the pmic node for using DMJaehoon Chung2016-12-221-0/+165
| | | | | | | | | | | | | | | | | | | | | | | | To use driver-model adds the pmic node for max8998. This is used as kerel device-tree in Linux. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
| * | power: pmic: add the max8998 controller for DMJaehoon Chung2016-12-223-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add the max8998 controller for Driver model. Samsung S5P series are using max8998 pmic controller. In future, it should be supported the regulator framework. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
* | | mmc: Extend dependencies for zynq sdhciMichal Simek2016-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | There is hard dependency on BLK and DM_MMC which is also used by ATMEL and ROCKCHIP. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* | | mmc: spear: remove the entire spear_sdhci.c fileJaehoon Chung2016-12-222-28/+0
|/ / | | | | | | | | | | | | | | | | Remove the entire spear_sdhci.c file. There is no use case. This is dead codes. Also there is no place to call "spear_sdhci_init()" anywhere. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Tom Rini <trini@konsulko.com>
* | arm64: mvebu: Fix A8K memory mapping and add documentationKonstantin Porotchkin2016-12-212-13/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the MMU mapping for A8K device family: - Separate A7K and A8K memory mappings - Fix memory regions by including IO mapping for all 3 PCIe interfaces existing on each connected CP110 controller Add A8K memory mapping documentation with all regions configured by Marvell ATF. Change-Id: I9c930569b1853900f5fba2d5db319b092cc7a2a6 Signed-off-by: Konstantin Porotchkin <kostap@marvell.com> Signed-off-by: Stefan Roese <sr@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Nadav Haklai <nadavh@marvell.com> Cc: Neta Zur Hershkovits <neta@marvell.com> Cc: Omri Itach <omrii@marvell.com> Cc: Igal Liberman <igall@marvell.com> Cc: Haim Boot <hayim@marvell.com> Cc: Hanna Hawa <hannah@marvell.com>
* | Merge git://git.denx.de/u-boot-mpc85xxTom Rini2016-12-201-25/+36
|\ \
| * | powerpc: Retain compatible property for L2 cacheChris Packham2016-12-201-25/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | When setting the compatible property for the L2 cache ensure that we follow the documented binding by setting both "<chip>-l2-cache-controller" and "cache" as values. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: York Sun <york.sun@nxp.com>
* | | Merge branch 'master' of git://www.denx.de/git/u-boot-microblazeTom Rini2016-12-2033-263/+346
|\ \ \
| * | | ARM64: zynqmp: Replace board specific with generic memory bank decodingNathan Rossi2016-12-201-109/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dram_init and dram_init_banksize functions were using a board specific implementation for decoding the memory banks from the fdt. This board specific implementation uses a static variable 'tmp' which makes these functions unsafe for execution from within the board_init_f context. This change makes the dram_init* functions use a generic implementation of decoding and populating memory bank and size data. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Fixes: 8d59d7f63b ("ARM64: zynqmp: Read RAM information from DT") Cc: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * | | ARM: zynq: Replace board specific with generic memory bank decodingNathan Rossi2016-12-201-109/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dram_init and dram_init_banksize functions were using a board specific implementation for decoding the memory banks from the fdt. This board specific implementation uses a static variable 'tmp' which makes these functions unsafe for execution from within the board_init_f context. This unsafe use of a static variable was causing a specific bug when using the zynq_zybo configuration, U-Boot would generate the following error during image load. This was caused due to dram_init overwriting the relocations for the 'image' variable within the do_bootm function. Out of coincidence the un-initialized memory has a compression type which is the same as the value for the relocation type R_ARM_RELATIVE. Uncompressing Invalid Image ... Unimplemented compression type 23 It should be noted that this is just one way the issue could surface, other cases my not be observed in normal boot flow. Depending on the size of various sections, and location of relocations within __rel_dyn and the compiler/linker the outcome of this bug can differ greatly. This change makes the dram_init* functions use a generic implementation of decoding and populating memory bank and size data. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Fixes: 758f29d0f8 ("ARM: zynq: Support systems with more memory banks") Cc: Michal Simek <monstr@monstr.eu> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * | | fdt: add memory bank decoding functions for board setupNathan Rossi2016-12-202-0/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add two functions for use by board implementations to decode the memory banks of the /memory node so as to populate the global data with ram_size and board info for memory banks. The fdtdec_setup_memory_size() function decodes the first memory bank and sets up the gd->ram_size with the size of the memory bank. This function should be called from the boards dram_init(). The fdtdec_setup_memory_banksize() function decode the memory banks (up to the CONFIG_NR_DRAM_BANKS) and populates the base address and size into the gd->bd->bi_dram array of banks. This function should be called from the boards dram_init_banksize(). Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Cc: Simon Glass <sjg@chromium.org> Cc: Michal Simek <monstr@monstr.eu> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * | | ARM64: zynqmp: Add one empty line between license and nodesMichal Simek2016-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Sync with Linux kernel. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * | | ARM64: zynqmp: Add missing SPL dependency for boot.bin generationMichal Simek2016-12-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | boot.bin file is generated only when SPL is selected. Reflect this depency in Kconfig. Signed-off-by: Michal Simek <michal.simek@xilinx.com>