summaryrefslogtreecommitdiff
path: root/board/xilinx
Commit message (Collapse)AuthorAgeFilesLines
* arm64: xilinx: Never touch DDR if system has no DDRMichal Simek2020-04-061-1/+5
| | | | | | | If DDR is not mapped do not touch it. Default XILINX_OF_BOARD_DTB_ADDR is pointing to DDR. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Reorder parameters for zynqmp_mmio_write()Michal Simek2020-04-061-1/+1
| | | | | | | Parameter order is not correct based on zynqmp_mmio_write() declaration. Fixes: be52372ff1bb ("arm64: zynqmp: Use zynqmp_mmio_read/write functions") Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Move timeout for clock propagation below psu_initMichal Simek2020-04-061-0/+3
| | | | | | | | Delay required for clock propagation is tighly coupled with initialization done in psu_init(). That's why call it also for u-boot proper with CONFIG_ZYNQMP_PSU_INIT_ENABLED enabled. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add support for debug uart also for U-Boot properMichal Simek2020-04-061-3/+12
| | | | | | | | | board_early_init_f() is the right location where debug uart can be configurated (after MIO initialization). The patch is taking this call from SPL to also make it available for U-Boot proper. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp Add support for zcu111 revAMichal Simek2020-04-061-0/+978
| | | | | | Add low level configuration for zcu111 for easier SPL run. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp Add support for zcu102 rev1.1Michal Simek2020-04-061-0/+1042
| | | | | | | rev1.1 has different DDR sodimm module that's why it requires different DDR configuration. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Check firmware node when driver is enabledMichal Simek2020-04-061-0/+2
| | | | | | | ZynqMP mini configurations works without PMU firmware that's why there is no reason to enable the driver and check if it was probed properly. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Print multiboot register value in EL3Michal Simek2020-04-061-0/+14
| | | | | | | Multi boot register can be used for using different boot images and design better boot strategy. Let EL3 SPL or U-Boot to read it and print it. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* ARM: zynq: Rename defconfig to be align with ZynqMP and VersalMichal Simek2020-02-281-0/+1
| | | | | | Just cosmetic change before real switch. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm: xilinx: Fill DEVICE_TREE directly in MakefilesMichal Simek2020-02-282-0/+10
| | | | | | | | DEVICE_TREE variable is not exported from dts/Makefile that's why it is necessary to setup directly before use. Fixes: 312f2c5b14fa ("arm: xilinx: Use device tree which can be passed on cmd line") Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm: zynq: zybo z7: fix MIO init issueMilan Obuch2020-02-281-2/+2
| | | | | | | | | | | | | | | | The board has two push button connected to MIO pins 50 and 51, which have a pull-down resistor and are connected to 1.8V when pressed. These two pins are wrongly initialized with internal pull-up enabled so they are reported as 1 all the time with no change when pressed. Disable the internal pull-up to fix the issue. Signed-off-by: Milan Obuch <u-boot@dino.sk> Signed-off-by: Luis Araneda <luaraneda@gmail.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* dm: core: Rename ofnode_get_chosen_prop()Simon Glass2020-02-051-1/+1
| | | | | | | | | | | | | This function is actually intended to read a string rather than a property. All of its current callers use it that way. Also there is no way to return the length of the property from this function. Rename it to better indicate its purpose, using ofnode_read as the prefix since this matches most other functions. Also add some tests which are missing for these functions. Signed-off-by: Simon Glass <sjg@chromium.org>
* common: Move reset_cpu() to the CPU headerSimon Glass2020-01-171-0/+1
| | | | | | Move this function out of common.h and into a relevant header file. Signed-off-by: Simon Glass <sjg@chromium.org>
* ARM: zynq: Add jtag distro boot supportT Karthik Reddy2020-01-141-1/+1
| | | | | | | | This patch adds new jtag distro boot command to look for bootscript file in DDR and execute it first incase of jtag bootmode. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm: xilinx: Use device tree which can be passed on cmd lineMichal Simek2020-01-142-2/+2
| | | | | | | | | DEVICE_TREE variable has been added by commit 6ab6b2afa091 ("dts: re-write dts/Makefile more simply with Kbuild") where DT can be specified on command line. If it is not then CONFIG_DEFAULT_DEVICE_TREE is used to ensure backward compatibility. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Fix symlinks to SC psu_init* filesMichal Simek2020-01-145-0/+2
| | | | | | | Names have to match device tree file names. Also add missing one. Fixes: 50d92833477e ("arm64: zynqmp: Sync names for SC with Versal") Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm: zynq: Remove low level UART settingMichal Simek2020-01-1414-1018/+0
| | | | | | | There is no reason to do serial initializationin low level code. Uart driver does it already based on DT. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Remove low level UART settingMichal Simek2020-01-1415-104/+0
| | | | | | | There is no reason to do serial initialization. Uart driver does it already based on DT. Good effect is that it is clear which interface is console. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Do not assing MIO34 that early on zcu100Michal Simek2020-01-141-1/+6
| | | | | | | | | | | | MIO34 is connected to POWER_KILL signal. When MIO configuration is done in psu_init() and this pin is assigned to PMU but PMU configuration is not loaded yet. PMU gpio output is high that means board is powered off immediately. The patch is fixing this sequence that MIO34 stays assing to ps gpio IP. PMU config is loaded in SPL and then pin assigned to PMU through psu_post_config_data(). Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add support for OF_SEPARATE with board DTBMichal Simek2020-01-142-7/+24
| | | | | | | | | | | | | OF_BOARD and OF_SEPARATE can use board specific board_fdt_blob_setup(). OF_BOARD option is mostly used for picking up DTB from certain location. OF_SEPARATE option is used when DTB is appended after u-boot binary. This board specific function is aligned with current version in lib/fdtdec.c with checking CONFIG_XILINX_OF_BOARD_DTB_ADDR address first. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Rename fw_dtb variable to fdt_blobMichal Simek2020-01-141-4/+4
| | | | | | | The reason for this change is just get in sync with board_fdt_blob_setup() available at lib/fdtdec.c. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* board: xilinx: Add support for user configurable boot script offsetT Karthik Reddy2020-01-144-0/+15
| | | | | | | | | | | | | | | Currently "script_offset_f" env variable is hardcoded, this variable specifies from which offset of the flash boot.scr should be read/write. As flashes are of different sizes having a fixed offset makes it difficult to load other images into the flash which may overwrite the boot script or cannot utilize the full memory. This current fix creates a new config "CONFIG_BOOT_SCRIPT_OFFSET" which holds the offset address, overwrites the "script_offset_f" variable. Also removed existing variable with default values, as the default values are held by CONFIG_BOOT_SCRIPT_OFFSET Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Fix emmc boot mode boot_target sequenceT Karthik Reddy2020-01-141-2/+11
| | | | | | | | | | | Emmc boot devcie is mounted to mmc@ff160000 controller on zynqmp. Detect mmc alias at run time for setting up proper boot_targets sequence instead of setting boot_targets manually. Removed setting "modeboot" variable as it not longer need as we switched to distro boot. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: Fix emmc boot mode boot_target issueT Karthik Reddy2020-01-141-1/+8
| | | | | | | | | | | Emmc boot devcie is mounted to sdhci@f1050000 controller on versal, while in emmc boot mode, boot tragets are set to mmc0. So removed mmc0 and using the dev seq number from the sdhci@f1050000 controller. Dev seq number is setup based on DT aliases that's why needs to be setup at run time. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* common: Move some board functions out of common.hSimon Glass2019-12-024-0/+4
| | | | | | | A number of board function belong in init.h with the others. Move them. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* common: Move some cache and MMU functions out of common.hSimon Glass2019-12-021-0/+1
| | | | | | | | | | | | These functions belong in cpu_func.h. Another option would be cache.h but that code uses driver model and we have not moved these cache functions to use driver model. Since they are CPU-related it seems reasonable to put them here. Move them over. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* common: Move some SMP functions out of common.hSimon Glass2019-12-021-0/+1
| | | | | | | These functions belong in cpu_func.h so move them over. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* common: Move get_ticks() function out of common.hSimon Glass2019-12-021-0/+1
| | | | | | | This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
* ARM: zynq: Remove unused board_early_init_f()Michal Simek2019-10-241-7/+0
| | | | | | | | | board_early_init_f added by commit e6cc3b25d721 ("arm: zynq: Wire watchdog internals") is no longer needed that's why remove it also with Kconfig enabling. Fixes: ccd063e9812a ("watchdog: Move watchdog_dev to data section (BSS may not be cleared)") Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Convert invoke_smc() to xilinx_pm_request()Michal Simek2019-10-241-2/+2
| | | | | | | Remove macros which use PM_SIP_SVC offset and convert invoke_smc() to xilinx_pm_request() which do calculation with PM_SIP_SVC already. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: xilinx: Enable generic of_board_dtbIbai Erkiaga2019-10-082-3/+4
| | | | | | | | | Modify the configuration naming to be generic to xilinx rather than specific to Versal. The offset value is different for Zynq and ZynqMP to avoid overlapping with FSBL. Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: Move common board dtb searchIbai Erkiaga2019-10-083-0/+22
| | | | | | | | Move the exisiting function of getting board dtb from versal to a common Xilinx folder. Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: probe firmware driverIbai Erkiaga2019-10-081-12/+6
| | | | | | | | | Probe ZynqMP firmware driver on the board initialization phase and ensure that firmware is in place to continue execution. The probing is done on board_init so it can be used for both SPL and U-Boot proper. Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: use firmware driver to get versionIbai Erkiaga2019-10-081-1/+1
| | | | | | | Use the new function from firmware version to get the firmware version. Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* firmware: zynqmp: create firmware headerIbai Erkiaga2019-10-082-0/+2
| | | | | | | | | New firmware header to place firmware specific macro and function declarations. The patch also moves the macros defining PM operations as well as some helper macros. Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Remove additional headersMichal Simek2019-10-081-7/+0
| | | | | | | | There were several changes in past in this file without removing headers (watchdog cleanup, soft reset, etc). That's why remove additional useless headers. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Setup initrd_high and fdt_high at run timeMichal Simek2019-10-081-0/+19
| | | | | | | | | | | Setup initrd_high and fdt_high to be placed in lowmem space for kernel to be able to reach it. Values are setup at run time to ensure that the same setting can be used on different memory setup. Do this setting only when variables are not Similar run time detection was done for Zynqmp and Versal. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* microblaze: Remove unused variable ram_baseMichal Simek2019-10-081-2/+0
| | | | | | This variable is completely unused that's why remove it. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add a2197 memory board revAMichal Simek2019-10-081-0/+1
| | | | | | Similar to processor board but i2c structure is completely different. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add System Controller for a2197-g/pMichal Simek2019-10-082-0/+2
| | | | | | | | | | | | | | | | | | | | | | | Similar SCs but different wiring. - dc_i2c is connected to X-PRC cards that's why label is required to have an option to hook up some devices. - Exactly identify i2c devices on x-prc boards. In case of missing i2c connection devices won't be accessible. - USB 0 should be device mode with super speed. - USB 1 should be host mode. - Fix i2c mux reset pin entry - commented, not verified. - Fix i2c1 eeprom compatible string - it is an ST 128Kbit device. Need to use atmel fallback. - Fix si570 I2C slave address and add corresponding part numbers. - Enable AMS for system monitoring. - phy reset property should be commented because it will throw a warning dump when called from context that can sleep. No support for phys property (zynqmp phy driver) with SGMII. Add is-internal-pcspma property required by uboot. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Harini Katakam <harini.katakam@xilinx.com>
* arm64: zynqmp: Add generic a2197 system controller configMichal Simek2019-10-081-0/+1171
| | | | | | Add generic configuration for a2197-p/-m/-g boards. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* ARM: zynq: Specify MMC controller number for boot sequenceMichal Simek2019-10-081-1/+1
| | | | | | | | | Xilinx Zynq SoC has two sdhci controllers but boot is only possible from the first one. That's why there is a need to specify controller number. mmc1 is supposed to be secondary boot device and should be also listed in distribution boot. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add idcodes for new RFSoC silicons ZU48DR and ZU49DRSiva Durga Prasad Paladugu2019-10-081-0/+8
| | | | | | | | Add zu48dr and zu49dr to the list of zynqmp devices. The zu48dr and zu49dr are the new RFSoC silicons with id values of 0x7b and 0x7e. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Add new jtag distro boot commandSiva Durga Prasad Paladugu2019-10-081-1/+1
| | | | | | | | This patch adds new jtag distro boot command to look for bootscript file in DDR and execute it first incase of jtag bootmode. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: Add new dfu usb distro boot commandT Karthik Reddy2019-10-081-0/+4
| | | | | | | This patch adds new dfu usb distro boot command to look for bootscript from dfu-util and runs it. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
* arm64: versal: Add new jtag distro boot commandSiva Durga Prasad Paladugu2019-10-081-1/+1
| | | | | | | | | | This patch adds new jtag distro boot command to look for bootscript file in DDR and execute it first incase of jtag bootmode. This patch also updates scriptaddr to 512MB as there is high of script corruption incase of bigger kernel image. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: Enable memory mapping via DTMichal Simek2019-10-081-1/+8
| | | | | | | Code reads DT and setup MMU table based on memory node. This will ensure that only DT needs to be changed. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: zynqmp: Set initrd_high to as high as possibleT Karthik Reddy2019-10-081-0/+6
| | | | | | | | | | This patch is setting up the initrd_high to as high as possible by leaving max stack size for u-boot so that bigger rootfs can also be loaded by u-boot for booting kernel. Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com> Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: Set initrd_high to as high as possibleSiva Durga Prasad Paladugu2019-10-081-0/+6
| | | | | | | | | This patch is setting up the initrd_high to as high as possible by leaving max stack size for u-boot so that bigger rootfs can also be loaded by u-boot for booting kernel. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
* arm64: versal: fpga: Add PL bit stream load supportSiva Durga Prasad Paladugu2019-10-081-0/+10
| | | | | | | | | This patch adds PL bitstream load support for Versal platform. The PL bitstream is loaded by making an SMC to ATF which in turn communicates with platform firmware which configures and loads PL bitstream on to PL. Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>