]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
6 years agoFix README for Khadas VIM board
Loic Devulder [Fri, 13 Jul 2018 09:36:07 +0000 (11:36 +0200)]
Fix README for Khadas VIM board

Explicitly add 'python' call for 'acs_tool.pyc', to avoid failed
execution on some OSes.

Signed-off-by: Loic Devulder <ldevulder@suse.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoconfigs: Update Meson GX configs
Loic Devulder [Tue, 10 Jul 2018 08:01:08 +0000 (10:01 +0200)]
configs: Update Meson GX configs

Enable ADC support on the Khadas VIM board.

Signed-off-by: Loic Devulder <ldevulder@suse.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoARM64: meson: Sync DT with Linux 4.17.5
Loic Devulder [Tue, 10 Jul 2018 08:01:07 +0000 (10:01 +0200)]
ARM64: meson: Sync DT with Linux 4.17.5

Synchronize the Linux Device Tree for Amlogic Meson GX boards from Linux 4.17.5
(Linux commit 54fb3c180d05e9dfda892a93413514e99f0cbb19).

This will enable HDMI_5V for USB Amlogic Meson GXL P212 based boards.

Signed-off-by: Loic Devulder <ldevulder@suse.de>
6 years agotest/py: add test for whitelist of variables while importing environment
Quentin Schulz [Mon, 9 Jul 2018 17:16:30 +0000 (19:16 +0200)]
test/py: add test for whitelist of variables while importing environment

This tests that the importing of an environment with a specified
whitelist works as intended.

If there are variables passed as parameter to the env import command,
those only should be imported in the current environment.

For each variable passed as parameter, if
 - foo is bar in current env and bar2 in exported env, after importing
 exported env, foo shall be bar2,
 - foo does not exist in current env and foo is bar2 in exported env,
 after importing exported env, foo shall be bar2,
 - foo is bar in current env and does not exist in exported env (but is
 passed as parameter), after importing exported env, foo shall be empty
 ONLY if the -d option is passed to env import, otherwise foo shall be
 bar,

Any variable not passed as parameter should be left untouched.

Two other tests are made to test that size cannot be '-' if the checksum
protection is enabled.

Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
6 years agocmd: nvedit: env import can now import only variables passed as parameters
Quentin Schulz [Mon, 9 Jul 2018 17:16:29 +0000 (19:16 +0200)]
cmd: nvedit: env import can now import only variables passed as parameters

While the `env export` can take as parameters variables to be exported,
`env import` does not have such a mechanism of variable selection.

Let's add the ability to add parameters at the end of the command for
variables to be imported.

Every env variable from the env to be imported passed by parameter to
this command will override the value of the variable in the current env.

If a variable exists in the current env but not in the imported env, if
this variable is passed as a parameter to env import, the variable will
be unset ONLY if the -d option is passed to env import, otherwise the
current value of the variable is kept.

If a variable exists in the imported env, the variable in the current
env will be set to the value of the one from the imported env.

All the remaining variables are left untouched.

As the size parameter of env import is positional but optional, let's
add the possibility to use the sentinel '-' for when we don't want to
give the size parameter (when the env is '\0' terminated) but we pass a
list of variables at the end of the command.

env import addr
env import addr -
env import addr size
env import addr - foo1 foo2
env import addr size foo1 foo2

are all valid.

env import -c addr
env import -c addr -
env import -c addr - foo1 foo2

are all invalid because they don't pass the size parameter required for
checking, while the following are valid.

env import addr size
env import addr size foo1 foo2

Nothing's changed for the other parameters or the overall behaviour.

One of its use case could be to load a secure environment from the
signed U-Boot binary and load only a handful of variables from an
other, unsecure, environment without completely losing control of
U-Boot.

Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Tested-by: Alex Kiernan <alex.kiernan@gmail.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
6 years agohashtable: do not recreate whole hash table if vars are passed to himport_r
Quentin Schulz [Mon, 9 Jul 2018 17:16:28 +0000 (19:16 +0200)]
hashtable: do not recreate whole hash table if vars are passed to himport_r

When vars are passed to the himport_r function with H_NOCLEAR flag,
those vars will be overridden in the current environment and if one of
those vars is not in the imported environment, it'll be deleted in the
current environment whatever the flag passed to himport_r.

The H_NOCLEAR flag is used to clear the whole environment whether vars
are passed to the function or not.

This leads to incoherent behaviour. If one passes vars to himport_r
with the H_NOCLEAR flag, if a var in vars is not in the imported env,
that var will be removed from the current env.

If one passes vars to himport_r without the H_NOCLEAR flag, the whole
environment will be removed and vars will be imported from the
environment in RAM.

It makes more sense to keep the variable that is in the current
environment but not in the imported environment if the H_NOCLEAR flag is
set and remove only that variable if the H_NOCLEAR flag is not set.

Let's clear the whole environment only if H_NOCLEAR and vars are not
passed to himport_r.

Let's remove variables that are in the current environment but not in
the imported env only if the H_NOCLEAR flag is not passed.

Suggested-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
6 years agotest/py: remove hacks for non-zero RAM base address in tests
Quentin Schulz [Mon, 9 Jul 2018 17:16:27 +0000 (19:16 +0200)]
test/py: remove hacks for non-zero RAM base address in tests

Some functions have different behaviour when the given address is 0
(assumed to be NULL by the function).

find_ram_base() does not return 0 anymore so it's safe to remove those
offsets.

Suggested-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
6 years agotest/py: return a RAM address different from 0 as it can be interpreted as NULL
Quentin Schulz [Mon, 9 Jul 2018 17:16:26 +0000 (19:16 +0200)]
test/py: return a RAM address different from 0 as it can be interpreted as NULL

Some functions test that the given address is not NULL (0) and fail or
have a different behaviour if that's the case (e.g. hexport_r).

Let's make the RAM base address to be not zero by setting it to 2MiB if
that's the case.

2MiB is chosen because it represents the size of an ARM LPAE/v8 section.

Suggested-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
6 years agoenv: add the same prefix to error messages to make it detectable by tests
Quentin Schulz [Mon, 9 Jul 2018 17:16:25 +0000 (19:16 +0200)]
env: add the same prefix to error messages to make it detectable by tests

The error message should start with `## Error: ` so that it's easily
detectable by tests without needing to have a complex regexp for
matching all possible error message patterns.

Let's add the `## Error: ` prefix to the error messages since it's the
one already in use.

Suggested-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Quentin Schulz <quentin.schulz@bootlin.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
6 years agostm32mp1: clk: support digital bypass
Patrick Delaunay [Mon, 16 Jul 2018 08:41:46 +0000 (10:41 +0200)]
stm32mp1: clk: support digital bypass

HSE and LSE bypass shall support both analog and digital signals.
This patch add a way to select digital bypas case in the device tree
and set the associated bit DIGBYP in RCC_BDCR and RCC_OCEN register
during clock tree initialization.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: clk: add ADC clock gating
Patrick Delaunay [Mon, 16 Jul 2018 08:41:45 +0000 (10:41 +0200)]
stm32mp1: clk: add ADC clock gating

Add ADC clock gating, that may be used by STM32 ADC.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: clk: update Ethernet clock gating
Patrick Delaunay [Mon, 16 Jul 2018 08:41:44 +0000 (10:41 +0200)]
stm32mp1: clk: update Ethernet clock gating

Alignment with kernel clock driver

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: clk: add LDTC and DSI clock support
Patrick Delaunay [Mon, 16 Jul 2018 08:41:43 +0000 (10:41 +0200)]
stm32mp1: clk: add LDTC and DSI clock support

This patch add clk_enable/clk_disable/clk_get_rate support for
- DSI_PX
- LTDC_PX
- DSI_K (only get rate)

These clocks are needed for LTDC and DSI drivers with latest device tree.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: clk: add common function pll_get_fvco
Patrick Delaunay [Mon, 16 Jul 2018 08:41:42 +0000 (10:41 +0200)]
stm32mp1: clk: add common function pll_get_fvco

the function compute the VCO PLL freq, used in
- stm32mp1_read_pll_freq()
- pll_set_rate()

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
# Conflicts:
# drivers/clk/clk_stm32mp1.c

6 years agostm32mp1: clk: define RCC_PLLNCFGR2_SHIFT macro
Patrick Delaunay [Mon, 16 Jul 2018 08:41:41 +0000 (10:41 +0200)]
stm32mp1: clk: define RCC_PLLNCFGR2_SHIFT macro

This patch define RCC_PLLNCFGR2_SHIFT to reuse it in
the pll function for set rate.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Vikas Manocha <vikas.manocha@st.com>
6 years agostm32mp1: clock tree update
Patrick Delaunay [Mon, 9 Jul 2018 13:17:24 +0000 (15:17 +0200)]
stm32mp1: clock tree update

Configure clock tree for all the devices.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: activate FIXED regulator
Patrick Delaunay [Mon, 9 Jul 2018 13:17:23 +0000 (15:17 +0200)]
stm32mp1: activate FIXED regulator

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: add support for stm32mp157c-ev1 board
Patrick Delaunay [Mon, 9 Jul 2018 13:17:22 +0000 (15:17 +0200)]
stm32mp1: add support for stm32mp157c-ev1 board

Add support of stm32mp157c-ev1, the evaluation board with pmic stpmu1
(ev1 = mother board + daughter ed1) with device tree.
EV1 is the selected board by default in basic defconfig.

PS: CONFIG_PINCTRL_FULL activation avoid to increase
    SYS_MALLOC_F_LEN (Early malloc usage: 2034)

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agostm32mp1: activate MISC support in SPL
Patrick Delaunay [Mon, 9 Jul 2018 13:17:21 +0000 (15:17 +0200)]
stm32mp1: activate MISC support in SPL

needed for RCC MISC driver and sysreset with syscon
in SPL

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agomisc: stm32: Add STM32MP1 support
Patrick Delaunay [Mon, 9 Jul 2018 13:17:20 +0000 (15:17 +0200)]
misc: stm32: Add STM32MP1 support

Following next kernel rcc bindings, we must use a MFD
RCC driver which is able to bind both clock and reset
drivers.

We can reuse and adapt RCC MFD driver already available
for MCU SoCs (F4/F7/H7).

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agodts: import stm32mp1 device tree from linux kernel
Patrick Delaunay [Mon, 9 Jul 2018 13:17:19 +0000 (15:17 +0200)]
dts: import stm32mp1 device tree from linux kernel

This patch rebase the stm32mp1 device tree source from
linux kernel v4.18-rc1.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agosysreset: syscon: update regmap access to syscon
Patrick Delaunay [Mon, 9 Jul 2018 12:59:29 +0000 (14:59 +0200)]
sysreset: syscon: update regmap access to syscon

Use new API syscon_node_to_regmap in sysreset_syscon driver
for compatible "syscon-reboot"; that's avoid the need of explicit
syscon binding for "regmap" handle.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agodrivers: rtc: correct week day for mc146818
Heinrich Schuchardt [Sat, 7 Jul 2018 22:07:26 +0000 (00:07 +0200)]
drivers: rtc: correct week day for mc146818

For qemu-x86 the date command produces wrong days of the week:
Date: 2018-07-06 (Saturday)    Time: 18:02:03
Date: 2018-07-07 (unknown day)    Time: 21:02:06

According to a comment in the Linux driver the mc146818 only updates the
day of the week if the register value is non-zero.

Sunday is 1, saturday is 7 unlike in U-Boot (see data sheet
https://www.nxp.com/docs/en/data-sheet/MC146818.pdf).

So let's use our library function to determine the day of the week.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 years agobootmenu: Extend BOOTDELAY help text
Alex Kiernan [Thu, 5 Jul 2018 12:38:16 +0000 (12:38 +0000)]
bootmenu: Extend BOOTDELAY help text

Extend BOOTDELAY help text to cover its additional usage within the
bootmenu command.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
6 years agoenv: Include bootdelay in environment if negative
Alex Kiernan [Thu, 5 Jul 2018 12:38:15 +0000 (12:38 +0000)]
env: Include bootdelay in environment if negative

The test for (CONFIG_BOOTDELAY >= 0) has been in U-Boot since the
beginning, but the meaning of it has changed over time. Allow the
default to be set for any value, including -ve ones. This allows
(for example) CONFIG_ENV_IS_NOWHERE to have values for bootdelay in
its compiled in environment.

The only thing this changes is where the default for bootdelay can be
fetched from; before this change you get a compiled in default, after
you'll pull it from the default value in the environment, but both values
will be the same. Also if there's a value set in the environment then
that will take precedence (as before).

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
6 years agofs: btrfs: Fix wrong comparison in logical to physical mapping
Marek BehĂșn [Wed, 4 Jul 2018 18:23:01 +0000 (20:23 +0200)]
fs: btrfs: Fix wrong comparison in logical to physical mapping

The comparison
  logical > item->logical + item->length
in btrfs_map_logical_to_physical is wrong and should be instead
  logical >= item->logical + item->length
For example, if
  item->logical = 4096
  item->length = 4096
and we are looking for logical = 8192, it is not part of item (item is
[4096, 8191]). But the comparison is false and we think we have found
the correct item, although we should be searing in the right subtree.

This fixes some bugs I encountered.

Signed-off-by: Marek Behun <marek.behun@nic.cz>
6 years agospl: Make the spl_nand_load_image static
Michael Trimarchi [Wed, 4 Jul 2018 13:53:37 +0000 (15:53 +0200)]
spl: Make the spl_nand_load_image static

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
6 years agospl: mmc: Skip RAW mode ARGS sectors if not defined
York Sun [Tue, 26 Jun 2018 16:44:39 +0000 (09:44 -0700)]
spl: mmc: Skip RAW mode ARGS sectors if not defined

RAW mode ARGS sector doesn't have to be used for all falcon boot. Skip
loading ARGS sectors if not defined.

Signed-off-by: York Sun <york.sun@nxp.com>
6 years agodrivers: rtc: resolve year 2038 problem in rtc_to_tm
Heinrich Schuchardt [Sat, 7 Jul 2018 21:39:11 +0000 (23:39 +0200)]
drivers: rtc: resolve year 2038 problem in rtc_to_tm

Our implementation of rtc_to_tm() cannot handle dates of more than
0x7fffffff seconds after 1970-01-01.

Adopt the Linux kernel implementation.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 years agoboard/BuR/brppt1: add makerule for generating production files
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:29 +0000 (15:41 +0200)]
board/BuR/brppt1: add makerule for generating production files

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
6 years agoboard/BuR/brppt1: convert brppt1 boards to driver model
Hannes Schmelzer [Fri, 6 Jul 2018 13:41:28 +0000 (15:41 +0200)]
board/BuR/brppt1: convert brppt1 boards to driver model

- add a devicetree for each variant (mmc, spi, nand)
- drop unneeded code from board and bur/common
- drop unneeded stuff from config header files
- minor adaptions to be compliant with driver model (requesting gpio,..)
- harmonize the commandset over all brppt1 targets

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
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>