oweals/u-boot.git
6 years agodts: am33xx: add u-boot, dm-spl to ocp bus
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:27 +0000 (15:41 +0200)]
dts: am33xx: add u-boot, dm-spl to ocp bus

This is needed for having access to the devices below this bus, most
important is uart and boot-device (spi, mmc, ...) in SPL stage.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/brppt1: implement more flexible boot process
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:26 +0000 (15:41 +0200)]
board/BuR/brppt1: implement more flexible boot process

With this commit we do:

- set the bootdelay in all brppt1 defconfigs to 0, this makes
development easier, since we can break into serial console.

- move CONFIG_BOOTCOMMAND from header file to defconfig

- introduce b_mode variable for selecting the final boot-target.
This b_mode represents the boot-switch, which can found on most b&r
targets. On the brppt1 this boot-switch is derived from some gpio and
the bootcounter within the RTC block, making it so possible to force
a boot-target (as example for repair-case).

- refactor the environment for booting new flexible way
primary we want to get some bootscr.img within the mass-storage,
this script then loads everything needed for the boot.
For legacy reason we implement the t30lgcy#x boot targets, booting the
already delivered linux-images.

- make space for the cfgscr within mtdparts on brppt1_nand

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/common: refactor ft_board_setup(...)
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:25 +0000 (15:41 +0200)]
board/BuR/common: refactor ft_board_setup(...)

On other OS, not one provided by B&R, it is not guaranteed that there
are factory-settings within a devicetree. So we must not treat the
absence of them as error.
Further we've the fact that on different version of the device-tree
files there are different namings of the factory-settings, we consider
this with searching for an alternative name.

changing things as following:

- don't treat as error if the bootloader version cannot written into
devicetree.

- since the naming of the factory-settings are different in different
versions of the provided device-tree we search for the alternate name
"/fset"

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/brppt1: drop dead code (CONFIG_SPL_OS_BOOT)
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:24 +0000 (15:41 +0200)]
board/BuR/brppt1: drop dead code (CONFIG_SPL_OS_BOOT)

The falcon mode was never used on this board, there is also no plan to
use it. So drop this dead code.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/common: fix PMIC mpu-pll setup
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:23 +0000 (15:41 +0200)]
board/BuR/common: fix PMIC mpu-pll setup

If a board-code calls the  pmicsetup(u32 mpupll) with a mpupll value
!= 0 it wants to force some frequency with the value provided by mpupll.
Setting up 1 GHz is wrong here.

Nobody did take notice about that yet, since every board calls this
function with zero.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/common: remove interface Label from summary screen
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:22 +0000 (15:41 +0200)]
board/BuR/common: remove interface Label from summary screen

This interface names may vary over different products, to consider this
fact we replace the interface label "IF1" and "IF2" on the summary
screen with some more generic wording "MAC1" and "MAC2".

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/brppt1: drop LCD-support
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:21 +0000 (15:41 +0200)]
board/BuR/brppt1: drop LCD-support

On this linux target long time ago the OS is using DRM driver for
handling video output, the pre initialization of u-boot and the display
summary screen is obsolete. With this patch we drop the LCD-support from
thisd board.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/common: make CONFIG_LCD optional
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:20 +0000 (15:41 +0200)]
board/BuR/common: make CONFIG_LCD optional

Since we're going to drop LCD-support on brppt1 boards, we have to make
this stuff here optional and remove the #error path.

We also move out the ft_board_setup(...) from this #ifdef because
there's no relationship with the LCD-code and on the other hand this is
still needed in future even with LCD-support off.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/common: drop simple-framebuffer setup
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:19 +0000 (15:41 +0200)]
board/BuR/common: drop simple-framebuffer setup

The linux systems running on the brppt1 targets are using modern DRM
drivers since long time ago. Further we are going to drop the LCD
support completely on this board, so the simple-framebuffer setup
becomes obsolete.

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR: drop devicetree loading and lcd setup for linux-targets
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:18 +0000 (15:41 +0200)]
board/BuR: drop devicetree loading and lcd setup for linux-targets

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>
6 years agotest: smem: add basic smem test
Ramon Fried [Sun, 1 Jul 2018 23:58:00 +0000 (02:58 +0300)]
test: smem: add basic smem test

Add basic smem sandbox testing.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodrivers: smem: sandbox
Ramon Fried [Sun, 1 Jul 2018 23:57:59 +0000 (02:57 +0300)]
drivers: smem: sandbox

Add Sandbox driver for SMEM. mostly stub operations.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodts: db820c: added smem nodes
Ramon Fried [Sun, 1 Jul 2018 23:57:58 +0000 (02:57 +0300)]
dts: db820c: added smem nodes

Added necessary nodes for Qualcomm smem driver.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodts: db410c: added smem nodes
Ramon Fried [Sun, 1 Jul 2018 23:57:57 +0000 (02:57 +0300)]
dts: db410c: added smem nodes

Added necessary nodes for Qualcomm smem driver.

Signed-off-by: Ramon Fried <ramon.fried@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agosoc: qualcomm: Add Shared Memory Manager driver
Ramon Fried [Sun, 1 Jul 2018 23:57:56 +0000 (02:57 +0300)]
soc: qualcomm: Add Shared Memory Manager driver

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>
6 years agodm: SMEM (Shared memory) uclass
Ramon Fried [Sun, 1 Jul 2018 23:57:55 +0000 (02:57 +0300)]
dm: SMEM (Shared memory) uclass

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>
6 years agoARM: qemu-arm: enable RTC
Heinrich Schuchardt [Thu, 28 Jun 2018 22:34:16 +0000 (00:34 +0200)]
ARM: qemu-arm: enable RTC

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>
6 years agoriscv: Remove unused _relocate arguments
Ivan Gorinov [Thu, 28 Jun 2018 21:50:17 +0000 (14:50 -0700)]
riscv: Remove unused _relocate arguments

EFI image handle and system table are not used in _relocate().

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
6 years agoarm: Remove unused _relocate arguments
Ivan Gorinov [Thu, 28 Jun 2018 21:50:04 +0000 (14:50 -0700)]
arm: Remove unused _relocate arguments

EFI image handle and system table are not used in _relocate().

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
6 years agox86: Remove unused _relocate arguments
Ivan Gorinov [Thu, 28 Jun 2018 21:49:46 +0000 (14:49 -0700)]
x86: Remove unused _relocate arguments

EFI image handle and system table are not used in _relocate().

Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com>
6 years agoarm/arm64: bitops: fix find_next_zero_bit to be compat with arm64
Grygorii Strashko [Thu, 28 Jun 2018 19:25:52 +0000 (14:25 -0500)]
arm/arm64: bitops: fix find_next_zero_bit to be compat with arm64

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>
6 years agoboards: amlogic: Fix boards README
Neil Armstrong [Wed, 27 Jun 2018 15:19:02 +0000 (17:19 +0200)]
boards: amlogic: Fix boards README

Fix typos and update the supported devices for all Amlogic boards.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agopower: regulator: stpmu1: add power off delay
Christophe Kerello [Wed, 27 Jun 2018 09:59:47 +0000 (11:59 +0200)]
power: regulator: stpmu1: add power off delay

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>
6 years agophy: Be able to get phy from PHY provider
Patrice Chotard [Wed, 27 Jun 2018 09:55:42 +0000 (11:55 +0200)]
phy: Be able to get phy from PHY provider

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>
6 years agommc: stm32_sdmmc2: update pwron management
Patrick Delaunay [Wed, 27 Jun 2018 08:15:33 +0000 (10:15 +0200)]
mmc: stm32_sdmmc2: update pwron management

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>
6 years agospl: nor: Skip CONFIG_SYS_FDT_BASE if not defined
York Sun [Tue, 26 Jun 2018 17:10:04 +0000 (10:10 -0700)]
spl: nor: Skip CONFIG_SYS_FDT_BASE if not defined

If FIT image is used, CONFIG_SYS_FDT_BASE is not needed.

Signed-off-by: York Sun <york.sun@nxp.com>
6 years agospl: nor: Add FIT support
York Sun [Tue, 26 Jun 2018 17:10:03 +0000 (10:10 -0700)]
spl: nor: Add FIT support

Add support of loading FIT image from NOR flash.

Signed-off-by: York Sun <york.sun@nxp.com>
6 years agoboards: amlogic: Add FriendlyElec NanoPi K2 board support
Thomas McKahan [Mon, 25 Jun 2018 14:50:17 +0000 (16:50 +0200)]
boards: amlogic: Add FriendlyElec NanoPi K2 board support

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>
6 years agoARM: dts: sync meson-gxbb-nanopi-k2 from Linux 4.17
Neil Armstrong [Mon, 25 Jun 2018 14:50:16 +0000 (16:50 +0200)]
ARM: dts: sync meson-gxbb-nanopi-k2 from Linux 4.17

Get the meson-gxbb-nanopi-k2.dts file from Linux 4.17.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoenv: common: accept flags on reset to default env
Yaniv Levinsky [Sun, 24 Jun 2018 16:16:57 +0000 (19:16 +0300)]
env: common: accept flags on reset to default env

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>
6 years agocmd: nvedit: set H_INTERACTIVE in do_env_default
Yaniv Levinsky [Sun, 24 Jun 2018 16:16:56 +0000 (19:16 +0300)]
cmd: nvedit: set H_INTERACTIVE in do_env_default

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>
6 years agocmd: nvedit: propagate envflag to set_default_vars
Yaniv Levinsky [Sun, 24 Jun 2018 16:16:55 +0000 (19:16 +0300)]
cmd: nvedit: propagate envflag to set_default_vars

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>
6 years agocmd: nvedit: rename flags in do_env_default
Yaniv Levinsky [Sun, 24 Jun 2018 16:16:54 +0000 (19:16 +0300)]
cmd: nvedit: rename flags in do_env_default

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>
6 years agocmd: fit_image: Add default property for FIT format scripts
Alex Kiernan [Fri, 22 Jun 2018 14:58:02 +0000 (14:58 +0000)]
cmd: fit_image: Add default property for FIT format scripts

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>
6 years agotest: Add ut_assertnull macro
Ramon Fried [Thu, 21 Jun 2018 14:47:16 +0000 (17:47 +0300)]
test: Add ut_assertnull macro

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>
6 years agoMerge tag 'xilinx-for-v2018.09' of git://git.denx.de/u-boot-microblaze
Tom Rini [Thu, 19 Jul 2018 15:48:33 +0000 (11:48 -0400)]
Merge tag 'xilinx-for-v2018.09' of git://git.denx.de/u-boot-microblaze

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

6 years agoarm: zynq: spl: fix FPGA initialization
Luis Araneda [Thu, 19 Jul 2018 07:10:18 +0000 (03:10 -0400)]
arm: zynq: spl: fix FPGA initialization

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>
6 years agodrivers: fpga: zynqpl: fix compilation with SPL
Luis Araneda [Thu, 19 Jul 2018 07:10:17 +0000 (03:10 -0400)]
drivers: fpga: zynqpl: fix compilation with SPL

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>
6 years agospl: fit: display a message when an FPGA image is loaded
Luis Araneda [Thu, 19 Jul 2018 07:10:16 +0000 (03:10 -0400)]
spl: fit: display a message when an FPGA image is loaded

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>
6 years agoarm64: zynqmp: Setup ENV_SIZE via Kconfig for mini targets
Michal Simek [Wed, 18 Jul 2018 11:07:59 +0000 (13:07 +0200)]
arm64: zynqmp: Setup ENV_SIZE via Kconfig for mini targets

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>
6 years agoarm64: zynqmp: Add QSPI flash mini u-boot configuration
Siva Durga Prasad Paladugu [Wed, 18 Jul 2018 11:01:38 +0000 (16:31 +0530)]
arm64: zynqmp: Add QSPI flash mini u-boot configuration

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>
6 years agoarm: zynq: Setup ENV_SIZE via Kconfig
Michal Simek [Wed, 18 Jul 2018 10:59:14 +0000 (12:59 +0200)]
arm: zynq: Setup ENV_SIZE via Kconfig

Simplify zynq_cse config by setting up ENV_SIZE via Kconfig.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoenv: Added support to save env to spi through Kconfig
Vipul Kumar [Tue, 17 Jul 2018 13:30:34 +0000 (19:00 +0530)]
env: Added support to save env to spi through Kconfig

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>
6 years agoarm: zynq: Add parallel NOR flash mini u-boot configuration for zynq
Siva Durga Prasad Paladugu [Mon, 16 Jul 2018 10:27:02 +0000 (15:57 +0530)]
arm: zynq: Add parallel NOR flash mini u-boot configuration for zynq

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>
6 years agoarm: zynq: Add Nand flash mini u-boot configuration for zynq
Siva Durga Prasad Paladugu [Mon, 16 Jul 2018 10:27:01 +0000 (15:57 +0530)]
arm: zynq: Add Nand flash mini u-boot configuration for zynq

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>
6 years agoarm: zynq: Dont define SDRAM_BASE and SDRAM_SIZE in .h
Siva Durga Prasad Paladugu [Mon, 16 Jul 2018 10:27:00 +0000 (15:57 +0530)]
arm: zynq: Dont define SDRAM_BASE and SDRAM_SIZE in .h

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>
6 years agolib: fdtdec: Rename routine fdtdec_setup_memory_size()
Siva Durga Prasad Paladugu [Mon, 16 Jul 2018 10:26:11 +0000 (15:56 +0530)]
lib: fdtdec: Rename routine fdtdec_setup_memory_size()

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>
6 years agolib: fdtdec: Update ram_base to store ram start adddress
Siva Durga Prasad Paladugu [Mon, 16 Jul 2018 10:26:10 +0000 (15:56 +0530)]
lib: fdtdec: Update ram_base to store ram start adddress

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>
6 years agomicroblaze: Remove XILINX_SPI_FLASH_BASEADDR logic
Michal Simek [Tue, 17 Jul 2018 12:49:33 +0000 (14:49 +0200)]
microblaze: Remove XILINX_SPI_FLASH_BASEADDR logic

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>
6 years agowatchdog: cadence: Do not stop wdt in probe
Michal Simek [Tue, 17 Jul 2018 11:17:39 +0000 (13:17 +0200)]
watchdog: cadence: Do not stop wdt in probe

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>
6 years agoarm64: zynqmp: Added support of mmio read and write commands
Vipul Kumar [Mon, 16 Jul 2018 12:34:22 +0000 (18:04 +0530)]
arm64: zynqmp: Added support of mmio read and write commands

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>
6 years agoxilinx: Enable led support for some boards
Michal Simek [Mon, 16 Jul 2018 12:12:43 +0000 (14:12 +0200)]
xilinx: Enable led support for some boards

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>
6 years agowatchdog: cdns: Add comment for expire_now function
Michal Simek [Mon, 16 Jul 2018 11:34:55 +0000 (13:34 +0200)]
watchdog: cdns: Add comment for expire_now function

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>
6 years agomicroblaze: Do not force saving variables to flash
Michal Simek [Mon, 16 Jul 2018 11:37:28 +0000 (13:37 +0200)]
microblaze: Do not force saving variables to flash

There is no reason to save variables to flash only.
Select option via Kconfig instead.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agomicroblaze: Convert generic platform to DM gpio
Michal Simek [Fri, 13 Jul 2018 06:26:28 +0000 (08:26 +0200)]
microblaze: Convert generic platform to DM gpio

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>
6 years agoarm64: xilinx: Setup default number of chipselects for zcu100
Michal Simek [Thu, 31 May 2018 07:50:10 +0000 (09:50 +0200)]
arm64: xilinx: Setup default number of chipselects for zcu100

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>
6 years agomicroblaze: Enable watchdog via defconfig
Michal Simek [Mon, 16 Jul 2018 11:03:21 +0000 (13:03 +0200)]
microblaze: Enable watchdog via defconfig

DM watchdog should be enabled by default.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agowatchdog: Convert Xilinx Axi watchdog driver to driver model
Shreenidhi Shedi [Sat, 14 Jul 2018 20:35:41 +0000 (02:05 +0530)]
watchdog: Convert Xilinx Axi watchdog driver to driver model

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>
6 years agomicroblaze: Support for watchdog_reset in init
Shreenidhi Shedi [Sat, 14 Jul 2018 20:35:40 +0000 (02:05 +0530)]
microblaze: Support for watchdog_reset in init

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>
6 years agomicroblaze: Delete Xilinx watchdog related macros
Shreenidhi Shedi [Sat, 14 Jul 2018 20:35:39 +0000 (02:05 +0530)]
microblaze: Delete Xilinx watchdog related macros

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>
6 years agomicroblaze: Cosmetic changes in Microblaze related files
Shreenidhi Shedi [Sat, 14 Jul 2018 21:04:35 +0000 (02:34 +0530)]
microblaze: Cosmetic changes in Microblaze related files

Signed-off-by: Shreenidhi Shedi <yesshedi@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Changed zynqmp command to handle subcommands with U_BOOT_CMD_MKENT
Vipul Kumar [Wed, 11 Jul 2018 09:48:28 +0000 (15:18 +0530)]
arm64: zynqmp: Changed zynqmp command to handle subcommands with 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>
6 years agogpio: xilinx: Convert driver to DM
Michal Simek [Thu, 12 Jul 2018 14:05:46 +0000 (16:05 +0200)]
gpio: xilinx: Convert driver to DM

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>
6 years agosysreset: Add support for Microblaze soft reset jump
Michal Simek [Fri, 13 Jul 2018 15:00:13 +0000 (17:00 +0200)]
sysreset: Add support for Microblaze soft reset jump

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>
6 years agosysreset: Add support for gpio-restart
Michal Simek [Fri, 13 Jul 2018 09:04:56 +0000 (11:04 +0200)]
sysreset: Add support for gpio-restart

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>
6 years agoarm: zynq: Try to enable the first watchdog via aliases
Michal Simek [Wed, 11 Jul 2018 06:35:22 +0000 (08:35 +0200)]
arm: zynq: Try to enable the first watchdog via aliases

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>
6 years agoarm64: zynqmp: Try to enable the first watchdog via aliases
Michal Simek [Wed, 11 Jul 2018 06:30:07 +0000 (08:30 +0200)]
arm64: zynqmp: Try to enable the first watchdog via aliases

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>
6 years agogpio: zynq: Setup bank_name to dev->name
Michal Simek [Thu, 21 Jun 2018 11:58:56 +0000 (13:58 +0200)]
gpio: zynq: Setup bank_name to dev->name

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>
6 years agomicroblaze: Do not call timer init that early
Michal Simek [Wed, 11 Jul 2018 12:08:26 +0000 (14:08 +0200)]
microblaze: Do not call timer init that early

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>
6 years agogpio: zynq: Read of mach data in platdata with dev_get_driver_data
Michal Simek [Thu, 12 Jul 2018 08:58:04 +0000 (10:58 +0200)]
gpio: zynq: Read of mach data in platdata with dev_get_driver_data

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>
6 years agogpio: dm: Support manual relocation for gpio
Michal Simek [Thu, 12 Jul 2018 10:42:27 +0000 (12:42 +0200)]
gpio: dm: Support manual relocation for gpio

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>
6 years agosysreset: dm: Support manual relocation for sysreset
Michal Simek [Thu, 12 Jul 2018 08:36:07 +0000 (10:36 +0200)]
sysreset: dm: Support manual relocation for sysreset

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>
6 years agogpio: zynq: Fix typo in one error message
Michal Simek [Thu, 12 Jul 2018 10:30:34 +0000 (12:30 +0200)]
gpio: zynq: Fix typo in one error message

Just fix error message.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agomicroblaze: Remove unused XILINX_BOARD_NAME macro
Michal Simek [Thu, 12 Jul 2018 06:46:11 +0000 (08:46 +0200)]
microblaze: Remove unused XILINX_BOARD_NAME macro

This macro is not used anywhere that's why remove it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoarm64: zynqmp: Sync defconfigs in connection to DEFINE_TCM_OCM_MMAP
Michal Simek [Thu, 12 Jul 2018 05:50:59 +0000 (07:50 +0200)]
arm64: zynqmp: Sync defconfigs in connection to DEFINE_TCM_OCM_MMAP

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>
6 years agowatchdog: dm: Support manual relocation for watchdogs
Michal Simek [Wed, 11 Jul 2018 13:42:25 +0000 (15:42 +0200)]
watchdog: dm: Support manual relocation for watchdogs

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>
6 years agowatchdog: dm: Change uclass name to watchdog and enable DM_UC_FLAG_SEQ_ALIAS
Michal Simek [Wed, 11 Jul 2018 06:24:43 +0000 (08:24 +0200)]
watchdog: dm: Change uclass name to watchdog and enable DM_UC_FLAG_SEQ_ALIAS

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>
6 years agoarm64: zcu100: Enable USB host ether and ASIX via defconfig
Michal Simek [Wed, 27 Jun 2018 13:54:18 +0000 (15:54 +0200)]
arm64: zcu100: Enable USB host ether and ASIX via defconfig

There is no reason to keep these configs in platform config file.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agomicroblaze: Guard do_reset by CONFIG_SYSRESET
Michal Simek [Thu, 28 Jun 2018 08:30:05 +0000 (10:30 +0200)]
microblaze: Guard do_reset by CONFIG_SYSRESET

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>
6 years agomicroblaze: Use default implementation from include/linux/io.h
Michal Simek [Thu, 28 Jun 2018 08:41:56 +0000 (10:41 +0200)]
microblaze: Use default implementation from include/linux/io.h

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>
6 years agoxilinx: zynq: Add support to secure images
Siva Durga Prasad Paladugu [Tue, 26 Jun 2018 09:32:19 +0000 (15:02 +0530)]
xilinx: zynq: Add support to secure images

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>
6 years agoserial: zynq: Use platdata for storing static data instead of priv
Michal Simek [Thu, 14 Jun 2018 08:32:27 +0000 (10:32 +0200)]
serial: zynq: Use platdata for storing static data instead of priv

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>
6 years agousb_kdb: Get stdio_dev directly from sdev pointer
Michal Simek [Wed, 27 Jun 2018 12:35:07 +0000 (14:35 +0200)]
usb_kdb: Get stdio_dev directly from sdev pointer

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>
6 years agousb_kbd: Add support for watchdog
Michal Simek [Wed, 27 Jun 2018 12:16:54 +0000 (14:16 +0200)]
usb_kbd: Add support for watchdog

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>
6 years agoclk: zynqmp: Fixed the same if/else part error reported by coverity
Vipul Kumar [Wed, 27 Jun 2018 05:14:45 +0000 (10:44 +0530)]
clk: zynqmp: Fixed the same if/else part error reported by coverity

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>
6 years agoarm/arm64: zynq/zynqmp: pass the PS init file as a kconfig variable
Luca Ceresoli [Fri, 22 Jun 2018 10:40:16 +0000 (12:40 +0200)]
arm/arm64: zynq/zynqmp: pass the PS init file as a kconfig variable

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>
6 years agohush: Remove default CONFIG_SYS_PROMPT_HUSH_PS2 setting from board files
Michal Simek [Fri, 22 Jun 2018 06:10:41 +0000 (08:10 +0200)]
hush: Remove default CONFIG_SYS_PROMPT_HUSH_PS2 setting from board files

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>
6 years agocommon: command: Handle USAGE failure separately
Michal Simek [Thu, 21 Jun 2018 12:49:26 +0000 (14:49 +0200)]
common: command: Handle USAGE failure separately

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>
6 years agocommon: command: Use command_ret_t enum values instead of values
Michal Simek [Mon, 4 Jun 2018 11:29:49 +0000 (13:29 +0200)]
common: command: Use command_ret_t enum values instead of values

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>
6 years agoarm64: zynqmp: Enable usb mass storage command and functionality
Michal Simek [Thu, 21 Jun 2018 12:40:09 +0000 (14:40 +0200)]
arm64: zynqmp: Enable usb mass storage command and functionality

Enable ums command for zcu100 to enable mass storage gadget.
Tested with ums 0 mmc 0 (for SD) and ums 0 usb 0 (for USB flashdisk).

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agogpio: zynq: Use live-tree function
Michal Simek [Thu, 21 Jun 2018 07:21:35 +0000 (09:21 +0200)]
gpio: zynq: Use live-tree function

Use live-tree function.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-sunxi
Tom Rini [Tue, 17 Jul 2018 18:28:47 +0000 (14:28 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-sunxi

6 years agosunxi: Enable eMMC on Libre Computer Board ALL-H3-CC boards
Chen-Yu Tsai [Sat, 14 Jul 2018 13:55:45 +0000 (21:55 +0800)]
sunxi: Enable eMMC on Libre Computer Board ALL-H3-CC boards

The Libretech ALL-H3-CC has a high density connector for attaching
an eMMC module. The module form factor and connection is specific
to Libretech, and has provisions for split vmmc/vqmmc (core and I/O)
voltage supplies, but this board does not wire the vqmmc side. The
H2+/H3/H5 SoCs do not support alternate I/O voltages for eMMC either.
Only 3.3V is supported. A specific module that ties vqmmc to vmmc,
with both at 3.3V, must be used.

Given that a) eMMC is not designed to be hotplugged, b) power is
always provided on the pins, and c) MMC controllers can deal with
missing cards, we can enable this by default. If a module is attached
it will be picked up by the system.

The device tree change was also submitted to the Linux Kernel and
has already been queued up for 4.19.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-spi
Tom Rini [Mon, 16 Jul 2018 13:13:45 +0000 (09:13 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-spi

6 years agosf: add paired dev info for winbond w25q16jv
Ludwig Zenz [Thu, 5 Jul 2018 07:27:47 +0000 (09:27 +0200)]
sf: add paired dev info for winbond w25q16jv

This commit adds paired dev info for winbond w25q16jv
(tested w25q16jvssiq with a i.mx6 board)

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agosf: add Macronix mx25l1633e entry
Ludwig Zenz [Thu, 5 Jul 2018 07:27:46 +0000 (09:27 +0200)]
sf: add Macronix mx25l1633e entry

Add support for the Macronix mx25l1633e nor flash. (Tested on a imx6 board)

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agosf: add Gigadevice gd25q16c entry
Ludwig Zenz [Thu, 5 Jul 2018 07:27:45 +0000 (09:27 +0200)]
sf: add Gigadevice gd25q16c entry

Add support for the Gigadevice gd25q16c nor flash. (Tested on a imx6 board)

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agospi_flash: add a bunch of winbond flashes to id-table
Hannes Schmelzer [Tue, 26 Jun 2018 21:14:07 +0000 (23:14 +0200)]
spi_flash: add a bunch of winbond flashes to id-table

This commit adds the following flashes to the id-table

- W25Q16JV
- W25Q32JV
- W25Q64JV
- W25Q128JV
- W25Q256JV

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agozynqmp: zcu102: Add qspi driver support for ZynqMP zcu102 boards
Siva Durga Prasad Paladugu [Wed, 4 Jul 2018 12:01:24 +0000 (17:31 +0530)]
zynqmp: zcu102: Add qspi driver support for ZynqMP zcu102 boards

This patch adds qspi driver support for all ZynqMP ZCU102
boards.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
6 years agospi: zynqmp_gqspi: Add support for ZynqMP qspi driver
Siva Durga Prasad Paladugu [Wed, 4 Jul 2018 12:01:23 +0000 (17:31 +0530)]
spi: zynqmp_gqspi: Add support for ZynqMP qspi driver

This patch adds qspi driver support for ZynqMP SoC. This
driver is responsible for communicating with qspi flash
devices.

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
[jagan: removed GQSPI_MIO_NUM_ macros]
Reviewed-by: Jagan Teki <jagan@openedev.com>