summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* microblaze: Delete Xilinx watchdog related macrosShreenidhi Shedi2018-07-192-14/+0
| | | | | | | | These macros are not required anymore. These will be taken from configuration file. Signed-off-by: Shreenidhi Shedi <yesshedi@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Cosmetic changes in Microblaze related filesShreenidhi Shedi2018-07-193-44/+60
| | | | | Signed-off-by: Shreenidhi Shedi <yesshedi@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Changed zynqmp command to handle subcommands with ↵Vipul Kumar2018-07-191-30/+35
| | | | | | | | | | U_BOOT_CMD_MKENT This patch changed zynqmp command to handle subcommands with U_BOOT_CMD_MKENT. Signed-off-by: Vipul Kumar <vipul.kumar@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* gpio: xilinx: Convert driver to DMMichal Simek2018-07-191-1/+264
| | | | | | | | | | | | | This patch is enabling GPIO_DM support to have an option to use this driver together with zynq gpio driver. !DM part is kept there till Microblaze is cleanup which will be done hopefully soon. Just a note: There is no reason to initialize uc-priv->name because it is completely unused. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* sysreset: Add support for Microblaze soft reset jumpMichal Simek2018-07-193-0/+37
| | | | | | | | | | | | | | | | | | Microblaze is storing reset vector at address 0x0. It means soft reset can be done by just jumping to this address. This code was in platform code but sysreset interface is providing enough capabilities to have more options how to reset the system. It can go from gpio reset through watchdog reset till soft reset. The driver has not compatible string because this is cpu specific and DM core is not able to detect compatible string in DT root that's why this driver will be instantiated from platform code by calling device_bind_driver(gd->dm_root, "mb_soft_reset", "reset_soft", NULL); It should be bind as the last reset method to ensure that hw reset is called before this. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* sysreset: Add support for gpio-restartMichal Simek2018-07-194-0/+69
| | | | | | | | | | | | | | | | | | | | The Linux kernel has binding for gpio-restart node. This patch is adding basic support without supporting any optional properties. This driver was tested on Microblaze system where gpio is connected to SoC reset logic. Output value is handled via gpios cells values. In gpio_reboot_request() set_value is writing 1 because dm_gpio_set_value() is capable to changing it when it is ACTIVE_LOW. ... if (desc->flags & GPIOD_ACTIVE_LOW) value = !value; ... Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* arm: zynq: Try to enable the first watchdog via aliasesMichal Simek2018-07-191-5/+9
| | | | | | | | | | | | | | | | | | | | | The same change as was done for zynqmp with this description: Add support for enabling the first watchdog pointed via aliases. DT fragment: aliases { ... watchdog0= &watchdog0; watchdog1 = &watchdog_lpd; ... }; <zynqmp example removed> Till this patch the first watchdog found in DT was used and started which is not enabling all possible configuration based on user request. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Try to enable the first watchdog via aliasesMichal Simek2018-07-191-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for enabling the first watchdog pointed via aliases. DT fragment: aliases { ... watchdog0 = &watchdog0; watchdog1 = &watchdog_lpd; ... }; dm tree fragment for above configuration with patch applied: ZynqMP> dm tree Class index Probed Driver Name ----------------------------------------- ... watchdog 0 [ ] cdns_wdt | |-- watchdog@ff150000 watchdog 1 [ + ] cdns_wdt | `-- watchdog@fd4d0000 ... dm uclass fragment: ZynqMP> dm uclass ... uclass 75: watchdog 0 watchdog@ff150000 @ 7df02f40, seq -1, (req 1) 1 * watchdog@fd4d0000 @ 7df02ff0, seq 0, (req 0) ... It is visible that index 1 is IP with seq 0 which means that FPD watchdog (@fd4d0000) is in DT below LPD watchdog (@ff150000). Till this patch the first watchdog found in DT was used and started which is not enabling all possible configuration based on user request. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* gpio: zynq: Setup bank_name to dev->nameMichal Simek2018-07-191-0/+2
| | | | | | | | There should be proper bank name setup to distinguish between different gpio drivers. Use dev->name for it. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* microblaze: Do not call timer init that earlyMichal Simek2018-07-191-0/+4
| | | | | | | | | | Timer needs to be converted to DM but as of now it can't be called so early because intc controller is not ready. Call it later in board_r.c. Before this patch timer_init is called twice which is wrong. The patch is blocking initialization before relocation. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* gpio: zynq: Read of mach data in platdata with dev_get_driver_dataMichal Simek2018-07-191-27/+2
| | | | | | | Remove bogus zynq_gpio_getplat_data() and read driver data directly. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* gpio: dm: Support manual relocation for gpioMichal Simek2018-07-191-0/+35
| | | | | | | | | Relocate gpio ops as was done by: "dm: Add support for all targets which requires MANUAL_RELOC" (sha1: 484fdf5ba058b07be5ca82763aa2b72063540ef3) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* sysreset: dm: Support manual relocation for sysresetMichal Simek2018-07-191-0/+16
| | | | | | | | | Relocate sysreset ops as was done by: "dm: Add support for all targets which requires MANUAL_RELOC" (sha1: 484fdf5ba058b07be5ca82763aa2b72063540ef3) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* gpio: zynq: Fix typo in one error messageMichal Simek2018-07-191-1/+1
| | | | | | Just fix error message. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Remove unused XILINX_BOARD_NAME macroMichal Simek2018-07-191-2/+0
| | | | | | This macro is not used anywhere that's why remove it. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Sync defconfigs in connection to DEFINE_TCM_OCM_MMAPMichal Simek2018-07-1917-17/+0
| | | | | | | | CONFIG_MP was added to Kconfig with enabling CONFIG_DEFINE_TCM_OCM_MMAP=y for zynqmp boards. This option is enabled by default that's why it shouldn't be in defconfig. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* watchdog: dm: Support manual relocation for watchdogsMichal Simek2018-07-191-0/+23
| | | | | | | | | Relocate watchdog ops as was done by: "dm: Add support for all targets which requires MANUAL_RELOC" (sha1: 484fdf5ba058b07be5ca82763aa2b72063540ef3) Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* watchdog: dm: Change uclass name to watchdog and enable DM_UC_FLAG_SEQ_ALIASMichal Simek2018-07-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | uclass name is used by dev_read_alias_seq which return seq number when aliases are used. Code fragment: 168 int dev_read_alias_seq(struct udevice *dev, int *devnump) 169 { 170 ofnode node = dev_ofnode(dev); 171 const char *uc_name = dev->uclass->uc_drv->name; 172 int ret; 173 174 if (ofnode_is_np(node)) { 175 ret = of_alias_get_id(ofnode_to_np(node), uc_name); Also this patch enables DM_UC_FLAG_SEQ_ALIAS to be in sync with Linux which is also using watchdog name for watchdog aliases. drivers/watchdog/watchdog_core.c:215: ret = of_alias_get_id(wdd->parent->of_node, "watchdog"); Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* arm64: zcu100: Enable USB host ether and ASIX via defconfigMichal Simek2018-07-192-3/+2
| | | | | | There is no reason to keep these configs in platform config file. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Guard do_reset by CONFIG_SYSRESETMichal Simek2018-07-191-0/+2
| | | | | | | sysreset uclass have own do_reset function which should be used instead of board/platform specific. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Use default implementation from include/linux/io.hMichal Simek2018-07-191-3/+0
| | | | | | | There is no reason not to use default ioremap/iounmap io functions. The patch remove Microblaze macros. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* xilinx: zynq: Add support to secure imagesSiva Durga Prasad Paladugu2018-07-1912-0/+834
| | | | | | | | | | | | | | | | This patch basically adds two new commands for loadig secure images. 1. zynq rsa adds support to load secure image which can be both authenticated or encrypted or both authenticated and encrypted image in xilinx bootimage(BOOT.bin) format. 2. zynq aes command adds support to decrypt and load encrypted image back to DDR as per destination address. The image has to be encrypted using xilinx bootgen tool and to get only the encrypted image from tool use -split option while invoking bootgen. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* serial: zynq: Use platdata for storing static data instead of privMichal Simek2018-07-191-16/+16
| | | | | | | | | | | | | | | | | | | Explanation from Simon Glass "Private data is created when the device is probed and freed when the device is removed. Platform data is created when the device is bound, and survives probe/remove cycles. Strictly speaking, platform data should be used to hold the decoded device tree properties. Private data should be used for run-time things the device needs to keep track of." Based on description the driver needs to be switch to use platdata instead of priv. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* usb_kdb: Get stdio_dev directly from sdev pointerMichal Simek2018-07-191-2/+2
| | | | | | | Driver supports only one instance of usb keyboard. Remove the first dependency on generic usbkbd DEVNAME. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* usb_kbd: Add support for watchdogMichal Simek2018-07-191-1/+4
| | | | | | | There is need to service watchdog in while loop or system will be restarted when idlying. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* clk: zynqmp: Fixed the same if/else part error reported by coverityVipul Kumar2018-07-191-2/+4
| | | | | | | | This patch fixed the same if/else part error by adding the required source select on the basis of is_pre_src check. Signed-off-by: Vipul Kumar <vipul.kumar@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm/arm64: zynq/zynqmp: pass the PS init file as a kconfig variableLuca Ceresoli2018-07-194-2/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | U-Boot needs to link ps7_init_gpl.c on Zynq or psu_init_gpl.c on ZynqMP (PS init for short). The current logic to locate this file for both platforms is: 1. if a board-specific file exists in board/xilinx/zynq[mp]/$(CONFIG_DEFAULT_DEVICE_TREE)/ps?_init_gpl.c then use it 2. otherwise use board/xilinx/zynq/ps?_init_gpl.c In the latter case the file does not exist in the U-Boot sources and must be copied in the source tree from the outside before starting the build. This is typical when it is generated from Xilinx tools while developing a custom hardware. However making sure that a board-specific file is _not_ found (and used) requires some trickery such as removing or overwriting all PS init files (e.g.: the current meta-xilinx yocto layer). This generates a few problems: * if the source tree is shared among different out-of-tree builds, they will pollute (and potentially corrupt) each other * the source tree cannot be read-only * any buildsystem must add a command to copy the PS init file binary * overwriting or deleting files in the source tree is ugly as hell Simplify usage by allowing to pass the path to the desired PS init file in kconfig variable XILINX_PS_INIT_FILE. It can be an absolute path or relative to $(srctree). If the variable is set, the user-specified file will always be used without being copied around. If the the variable is left empty, for backward compatibility fall back to the old behaviour. Since the issue is the same for Zynq and ZynqMP, add one kconfig variable in a common place and use it for both. Also use the new kconfig help text to document all the ways to give U-Boot the PS init file. Build-tested with all combinations of: - platform: zynq or zynqmp - PS init file: from XILINX_PS_INIT_FILE (absolute, relative path, non-existing), in-tree board-specific, in board/xilinx/zynq[mp]/ - building in-tree, in subdir, in other directory Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Michal Simek <michal.simek@xilinx.com> Cc: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* hush: Remove default CONFIG_SYS_PROMPT_HUSH_PS2 setting from board filesMichal Simek2018-07-194-5/+0
| | | | | | | | | | | | There is no reason to define default option for this macro which is already done in common/cli_hush.c. 86 #ifndef CONFIG_SYS_PROMPT_HUSH_PS2 87 #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " 88 #endif Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: York Sun <york.sun@nxp.com>
* common: command: Handle USAGE failure separatelyMichal Simek2018-07-192-1/+6
| | | | | | | | | | | | | | | | | | | | | | command_ret_t enum contains 3 return values but only two are handled now. Extend cmd_process_error() and handle CMD_RET_USAGE separately. These commands are affected by this change. cmd/demo.c cmd/efi.c cmd/gpio.c cmd/qfw.c cmd/x86/fsp.c test/dm/cmd_dm.c And scripts shouldn't be affected because return value is not 0. But every command implementation can choose what it is correct to pass. I would expect that RET_USAGE is called when parameters are not correctly passed (have incorrect value, missing parameters) and RET_FAILURE when correct parameters are passed but command fails. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromum.org>
* common: command: Use command_ret_t enum values instead of valuesMichal Simek2018-07-191-2/+2
| | | | | | | Use enum command_ret_t types in cmd_process_error(). Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromum.org>