summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* board/BuR: drop devicetree loading and lcd setup for linux-targetsHannes Schmelzer2018-07-193-226/+6
| | | | | | | | | | | | | This patch drops the lcd-screen setup, the summary screen and getting mac-addresses based on a previous loaded device-tree for linux targets. Selecting those linux target is simple, since we have only the brppt1. In detail we do: - drop the common lcd-setup code which relys on a fdt_blob - drop the common dtb loading mechanism - drop the now obsolete CONFIG_USE_FDT from board header and whitelist. Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
* test: smem: add basic smem testRamon Fried2018-07-192-0/+28
| | | | | | | Add basic smem sandbox testing. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* drivers: smem: sandboxRamon Fried2018-07-196-0/+63
| | | | | | | Add Sandbox driver for SMEM. mostly stub operations. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* dts: db820c: added smem nodesRamon Fried2018-07-192-0/+20
| | | | | | | Added necessary nodes for Qualcomm smem driver. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* dts: db410c: added smem nodesRamon Fried2018-07-192-0/+21
| | | | | | | Added necessary nodes for Qualcomm smem driver. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* soc: qualcomm: Add Shared Memory Manager driverRamon Fried2018-07-196-0/+951
| | | | | | | | | | | | | | | | | The Shared Memory Manager driver implements an interface for allocating and accessing items in the memory area shared among all of the processors in a Qualcomm platform. Adapted from the Linux driver (4.17) Changes from the original Linux driver: * Removed HW spinlock mechanism, which is irrelevant in U-boot particualar use case, which is just reading from the smem. * Adapted from Linux driver model to U-Boot's. Cc: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* dm: SMEM (Shared memory) uclassRamon Fried2018-07-196-0/+145
| | | | | | | | | | | | | This is a uclass for Shared memory manager drivers. A Shared Memory Manager driver implements an interface for allocating and accessing items in the memory area shared among all of the processors. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
* ARM: qemu-arm: enable RTCHeinrich Schuchardt2018-07-194-0/+14
| | | | | | | | | | | | | | | | | QEMU provides an emulated ARM AMBA PrimeCell PL031 RTC. The patch sets the base address in the board include file according to the definition in hw/arm/virt.c of the QEMU source. It defines the Kconfig option for the existing driver, and enables the RTC driver in qemu_arm64_defconfig and qemu_arm_defconfig as well as the date command. We need an RTC to provide the GetTime() runtime service in the UEFI subsystem. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Tested-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
* riscv: Remove unused _relocate argumentsIvan Gorinov2018-07-191-2/+1
| | | | | | EFI image handle and system table are not used in _relocate(). Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
* arm: Remove unused _relocate argumentsIvan Gorinov2018-07-194-8/+2
| | | | | | EFI image handle and system table are not used in _relocate(). Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
* x86: Remove unused _relocate argumentsIvan Gorinov2018-07-193-7/+2
| | | | | | EFI image handle and system table are not used in _relocate(). Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
* arm/arm64: bitops: fix find_next_zero_bit to be compat with arm64Grygorii Strashko2018-07-191-28/+13
| | | | | | | | Current implementation of find_next_zero_bit() is incompatible with arm64. Hence fix it by using BITS_PER_LONG define instead of constants and use generic ffz() implementation. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
* boards: amlogic: Fix boards READMENeil Armstrong2018-07-195-5/+29
| | | | | | Fix typos and update the supported devices for all Amlogic boards. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
* power: regulator: stpmu1: add power off delayChristophe Kerello2018-07-192-8/+13
| | | | | | | | | This patch adds a delay when regulators are disabled. This delay is set to 5 ms to cover all use cases. The worst use case actually seen is during a SD card power cycle. Signed-off-by: Christophe Kerello <christophe.kerello@st.com> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
* phy: Be able to get phy from PHY providerPatrice Chotard2018-07-191-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of phy are provided from a PHY provider nodes as following: usbphyc: usb-phy@5a006000 { compatible = "st,stm32mp1-usbphyc"; reg = <0x5a006000 0x1000>; clocks = <&rcc_clk USBPHY_K>; resets = <&rcc_rst USBPHY_R>; #address-cells = <1>; #size-cells = <0>; usbphyc_port0: usb-phy@0 { reg = <0>; phy-supply = <&vdd_usb>; vdda1v1-supply = <&reg11>; vdda1v8-supply = <&reg18> #phy-cells = <0>; }; usbphyc_port1: usb-phy@1 { reg = <1>; phy-supply = <&vdd_usb>; vdda1v1-supply = <&reg11>; vdda1v8-supply = <&reg18> #phy-cells = <1>; }; }; and PHY are called as following: usbh_ehci: usbh-ehci@5800d000 { compatible = "generic-ehci"; reg = <0x5800d000 0x1000>; clocks = <&rcc_clk USBH>; resets = <&rcc_rst USBH_R>; interrupts = <GIC_SPI 75 IRQ_TYPE_NONE>; companion = <&usbh_ohci>; phys = <&usbphyc_port0>; phy-names = "usb"; status = "okay"; }; generic_phy_get_by_index() must be updated to first look for PHY phandle as previously and in case of error looks for PHY provider by finding the parent's current node which is the PHY provider. args (ofnode_phandle_args struct) must also be updated by inserting the phy index into the PHY provider as args[0]. Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
* mmc: stm32_sdmmc2: update pwron managementPatrick Delaunay2018-07-191-11/+67
| | | | | | | | | | | | | | Correctly manage the SDMMC reset and card cycle power to fully handle the power cycle added in the MMC uclass and avoid issue with level-shifter with some uSDCARD. 3 states managed in driver: 1/ reset: SDMMC disable, signal HiZ 2/ power-cycle: SDMMC disable, signals drive to 0 3/ power-on: SDMMC enabled Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
* spl: nor: Skip CONFIG_SYS_FDT_BASE if not definedYork Sun2018-07-191-1/+2
| | | | | | If FIT image is used, CONFIG_SYS_FDT_BASE is not needed. Signed-off-by: York Sun <york.sun@nxp.com>
* spl: nor: Add FIT supportYork Sun2018-07-191-2/+40
| | | | | | Add support of loading FIT image from NOR flash. Signed-off-by: York Sun <york.sun@nxp.com>
* boards: amlogic: Add FriendlyElec NanoPi K2 board supportThomas McKahan2018-07-199-0/+252
| | | | | | | | | | | | | | | | This adds platform code for the FriendlyElec NanoPi K2 board based on a Meson GXBB (S905) SoC with the Meson GXBB configuration. This initial submission only supports: - UART - MMC/SDCard - Ethernet - Reset Controller - Clock controller Cc: Yuefei Tan <yftan@friendlyarm.com> Signed-off-by: Thomas McKahan <tonymckahan@gmail.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
* ARM: dts: sync meson-gxbb-nanopi-k2 from Linux 4.17Neil Armstrong2018-07-192-0/+324
| | | | | | Get the meson-gxbb-nanopi-k2.dts file from Linux 4.17. Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
* env: common: accept flags on reset to default envYaniv Levinsky2018-07-1913-38/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | The function set_default_env() sets the hashtable flags for import_r(). Formally set_default_env() doesn't accept flags from its callers. In practice the caller can (un)set the H_INTERACTIVE flag, but it has to be done using the first character of the function's string argument. Other flags like H_FORCE can't be set by the caller. Change the function to accept flags argument. The benefits are: 1. The caller will have to explicitly set the H_INTERACTIVE flag, instead of un-setting it using a special char in a string. 2. Add the ability to propagate flags from the caller to himport(), especially the H_FORCE flag from do_env_default() in nvedit.c that currently gets ignored for "env default -a -f" commands. 3. Flags and messages will not be coupled together. A caller will be able to set flags without passing a string and vice versa. Please note: The propagation of H_FORCE from do_env_default() does not introduce any functional changes, because currently himport_r() is set to destroy the old environment regardless if H_FORCE flag is set or not. More changes are needed to utilize the propagation of H_FORCE. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
* cmd: nvedit: set H_INTERACTIVE in do_env_defaultYaniv Levinsky2018-07-192-2/+2
| | | | | | | | | | | | | The function set_default_vars() in common.c adds H_INTERACTIVE to the h_import() flag, but the function has no way of telling if the command actually was user directed like this flag suggest. The flag should be set by the calling function do_env_default() in nvedit.c instead, where the command is certainty user directed. Move the H_INTERACTIVE flag from set_default_vars() to do_env_default(). Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
* cmd: nvedit: propagate envflag to set_default_varsYaniv Levinsky2018-07-193-4/+5
| | | | | | | | | | | | | | | | | | The env_flag in do_env_default() doesn't get propagated and therefore gets ignored by himport_r(). This breaks to ability to "forcibly" reset variables to their default values using the environment command. Scenario example of the problem: # setenv kernel uImage # setenv .flags kernel:so # env default -f kernel ## Error: Can't overwrite "kernel" himport_r: can't insert "kernel=zImage" into hash table Change the call path so it will pass the flag correctly. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
* cmd: nvedit: rename flags in do_env_defaultYaniv Levinsky2018-07-191-3/+3
| | | | | | | | | | | | | | | | | The naming convention for flags in nvedit.c is: * The hashtable flag (defined in search.h) is named "env_flag" * The command flag argument (defined in command.h) is named "flag" This convention is kept in functions like do_env_print(), do_env_set() and do_env_delete(), but not in do_env_default(). Rename the hashtable flag in do_env_default() from "flag" to "env_flag". Rename the command flag in do_env_default() from "__flag" to "flag". No functional change. Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il> Reviewed-by: Igor Grinberg <grinberg@compulab.co.il>
* cmd: fit_image: Add default property for FIT format scriptsAlex Kiernan2018-07-191-5/+26
| | | | | | | | | When sourcing a FIT format script, if we've not been told the unit name to use, look for a default property at the root of /images to work out which unit we should use. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* test: Add ut_assertnull macroRamon Fried2018-07-191-0/+12
| | | | | | | | Add ut_assertnull macro to include/test/ut.h For testing of functions that returns NULL on errors. Signed-off-by: Ramon Fried <ramon.fried@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* Merge tag 'xilinx-for-v2018.09' of git://git.denx.de/u-boot-microblazeTom Rini2018-07-19122-339/+2229
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xilinx changes for v2018.09 clk: - Fix zynqmp clock driver common: - Handle CMD_RET_USAGE in cmd_process_error - Use return macros in cmd_process_error - Fix duplication of CONFIG_SYS_PROMPT_HUSH_PS2 - Support watchdog in usb_kbd.c - Fix name usage in usb_kbd.c - Support systems with non zero memory start initialized from DT only gpio: - Add support for manual relocation in uclass - zynq - use live tree - zynq - fix match data reading - zynq - setup bank name - xilinx - convert driver to DM microblaze: - Use generic iounmap/ioremap implementations - Redesign reset logic with sysreset features - Use watchdog and gpio over DM - Remove unused macros and fix some checkpatch issues - Fix timer initialization not to be called twice serial: - zynq - Use platdata intead of priv data sysreset: - Add support for manual relocation in uclass - Add gpio-restart driver - Add microblaze soft reset driver watchdog: - Add support for aliases in uclass - Add support for manual relocation in uclass - Convert xilinx driver to DM - cadence - update info in the driver and not stop wdt in probe xilinx: - Enable LED gpio for some targets with gpio-leds DT node - Setup variables via Kconfig zynq: - Add support for watchdog aliases - Add support for mini nand/nor configurations - Wire FPGA initalization in SPL zynqmp: - Enable mass storage for zcu100 - Handle external pmufw files - Add support for secure images - Some Kconfig movements and alignments - Add support for watchdog aliases - Use subcommands style for platform command - Add mmio_read/write platform commands - DT updates - Add support for mini qspi configuration
| * arm: zynq: spl: fix FPGA initializationLuis Araneda2018-07-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | commit 4aba5fb857c1 ("arm: zynq: Rework FPGA initialization") moved FPGA initialization from board_init() to arch_early_init_r(), which is not called as part of the SPL Fix this by calling arch_early_init_r() in the spl_board_init() function, so the FPGA is correctly initialized Signed-off-by: Luis Araneda <luaraneda@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * drivers: fpga: zynqpl: fix compilation with SPLLuis Araneda2018-07-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable the use of function zynq_loadfs when compiling the driver for the SPL, as the following filesystem functions are not found by the linker: - fs_set_blk_dev - fs_read - fs_set_blk_dev - fs_read - fs_read Signed-off-by: Luis Araneda <luaraneda@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * spl: fit: display a message when an FPGA image is loadedLuis Araneda2018-07-191-0/+1
| | | | | | | | | | | | | | | | | | A message should be displayed if an image is loaded to an FPGA, because the hardware might have changed, and the user should be informed Signed-off-by: Luis Araneda <luaraneda@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm64: zynqmp: Setup ENV_SIZE via Kconfig for mini targetsMichal Simek2018-07-198-4/+4
| | | | | | | | | | | | | | Mini targets are using different ENV_SIZE then standard one that's why defconfigs should be updated to simplify config files. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm64: zynqmp: Add QSPI flash mini u-boot configurationSiva Durga Prasad Paladugu2018-07-194-0/+162
| | | | | | | | | | | | | | | | | | | | Add configuration files/dtses for mini u-boot configuration which runs on smaller footprint of internal memory. This configuration has only required qspi flash support and it uses DCC as serial. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm: zynq: Setup ENV_SIZE via KconfigMichal Simek2018-07-194-2/+3
| | | | | | | | | | | | Simplify zynq_cse config by setting up ENV_SIZE via Kconfig. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * env: Added support to save env to spi through KconfigVipul Kumar2018-07-195-19/+29
| | | | | | | | | | | | | | | | This patch added support to enable CONFIG_ENV_SIZE, CONFIG_ENV_OFFSET and CONFIG_ENV_SECT_SIZE through Kconfig for Zynq and Zynqmp. Signed-off-by: Vipul Kumar <vipul.kumar@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm: zynq: Add parallel NOR flash mini u-boot configuration for zynqSiva Durga Prasad Paladugu2018-07-193-0/+135
| | | | | | | | | | | | | | | | | | Add configuration files/dtses for mini u-boot configuration which runs on smaller footprint OCM memory. This configuration only has required parallel nor flash support. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm: zynq: Add Nand flash mini u-boot configuration for zynqSiva Durga Prasad Paladugu2018-07-193-0/+128
| | | | | | | | | | | | | | | | | | Add configuration files/dtses for mini u-boot configuration which runs on smaller footprint of memory. This configuration has only required nand flash support. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm: zynq: Dont define SDRAM_BASE and SDRAM_SIZE in .hSiva Durga Prasad Paladugu2018-07-191-3/+0
| | | | | | | | | | | | | | | | | | Remove the SDRAM_BASE and SDRAM_SIZE as it can now get these details from DT. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
| * lib: fdtdec: Rename routine fdtdec_setup_memory_size()Siva Durga Prasad Paladugu2018-07-1931-38/+40
| | | | | | | | | | | | | | | | | | | | | | This patch renames the routine fdtdec_setup_memory_size() to fdtdec_setup_mem_size_base() as it now fills the mem base as well along with size. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Tom Rini <trini@konsulko.com>
| * lib: fdtdec: Update ram_base to store ram start adddressSiva Durga Prasad Paladugu2018-07-192-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | This patch updates the ram_base to store the start address of the first bank DRAM and the use this ram_base to calculate ram_top properly. This patch fixes the erroneous calculation of ram_top incase of non zero ram start address. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Tom Rini <trini@konsulko.com>
| * microblaze: Remove XILINX_SPI_FLASH_BASEADDR logicMichal Simek2018-07-191-7/+0
| | | | | | | | | | | | | | XILINX_SPI_FLASH_BASEADDR logic has been converted to DM that's why there is no reason to depend on this address anymore. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * watchdog: cadence: Do not stop wdt in probeMichal Simek2018-07-191-2/+0
| | | | | | | | | | | | | | | | Watchdog can be started before probe and u-boot should just take control over it. That's why do not stop watchdog in probe to cover cases where watchdog can expire before probe and start. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm64: zynqmp: Added support of mmio read and write commandsVipul Kumar2018-07-191-1/+47
| | | | | | | | | | | | | | | | | | This patch added support of mmio read and write commands. These commands can be used to read and write registers from the u-boot command line. It can be useful in debugging. Signed-off-by: Vipul Kumar <vipul.kumar@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * xilinx: Enable led support for some boardsMichal Simek2018-07-199-0/+18
| | | | | | | | | | | | | | | | Enable led support for boards which have "gpio-leds" node. And also for microblaze which is converted to DM_GPIO now. Tested on zcu100. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * watchdog: cdns: Add comment for expire_now functionMichal Simek2018-07-191-0/+1
| | | | | | | | | | | | | | | | | | IP itself has no reg/no bit which can be used for this functionality. Add this note to the driver to make sure that none will be asking for that. Current method is to setup 1s timeout and hang() which is done via wdt_expire_now(). Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * microblaze: Do not force saving variables to flashMichal Simek2018-07-191-1/+0
| | | | | | | | | | | | | | There is no reason to save variables to flash only. Select option via Kconfig instead. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * microblaze: Convert generic platform to DM gpioMichal Simek2018-07-198-56/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Converting GPIO to DM requires to do changes in reset subsystem that's why support for Microblaze soft reset via sysreset and GPIO sysreset support was added. These two patches enables enabling GPIO DM. Microblaze soft reset is bind at last reset method. GPIO reset is handled via sysreset with adding this fragment to DT. gpio-restart { compatible = "gpio-restart"; gpios = <&reset_gpio 0 0 0>; /* 3rd cell ACTIVE_HIGH = 0, ACTIVE_LOW = 1 */ }; hard-reset-gpio property is not documented and also handled. Conversion is required. Unfortunately do_reset is required for SPL that's why use only soft microblaze reset for now. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * arm64: xilinx: Setup default number of chipselects for zcu100Michal Simek2018-07-191-0/+2
| | | | | | | | | | | | | | | | There is only one chipselect on each connector. Define it directly in board dts file. There should be an option to use more chipselects via gpios. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * microblaze: Enable watchdog via defconfigMichal Simek2018-07-191-0/+2
| | | | | | | | | | | | DM watchdog should be enabled by default. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * watchdog: Convert Xilinx Axi watchdog driver to driver modelShreenidhi Shedi2018-07-192-26/+93
| | | | | | | | | | | | | | | | Xilinx Axi wdt driver conversion to driver model & Kconfig update for the same. Signed-off-by: Shreenidhi Shedi <yesshedi@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
| * microblaze: Support for watchdog_reset in initShreenidhi Shedi2018-07-191-4/+43
| | | | | | | | | | | | | | | | We should support watchdog reset so that WATCHDOG_RESET will function properly. Signed-off-by: Shreenidhi Shedi <yesshedi@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>