oweals/u-boot.git
6 years agopico-imx7d: Add SPL support
Fabio Estevam [Fri, 29 Jun 2018 18:19:11 +0000 (15:19 -0300)]
pico-imx7d: Add SPL support

Convert pico-imx7d to SPL support.

There are two variants of pico-imx7d SOMs:
- One with 512MB of RAM
- One with 1GB of RAM

The 512MB module contains two Hynix H5TC2G63GFR-PBA.
The 1GB module contains two Hynix H5TC4G63GFR-PBA.

The RAM size is determined in runtime by reading GPIO1_12.

While at it, also add USB Serial Download mode support as it
is very helpful for loading SPL and u-boot.img via imx_usb_loader.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Add fastboot support
Fabio Estevam [Fri, 29 Jun 2018 18:19:10 +0000 (15:19 -0300)]
pico-imx7d: Add fastboot support

fastboot tool is a convenient way to flash the eMMC, so
add support for it.

Examples of usages:

On the pico-imx7d U-Boot prompt:

=> fastboot 0

On the Linux PC connected via USB:

1. Retrieving the U-Boot version

$ sudo fastboot getvar bootloader-version -i 0x0525
bootloader-version: U-Boot 2018.07-rc1-03888-gde846f9
finished. total time: 0.000s

2. Resetting the board

$ sudo fastboot reboot -i 0x0525

(this causes the pico-imx7d to reboot)

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Add default DFU targets
Otavio Salvador [Fri, 29 Jun 2018 18:19:09 +0000 (15:19 -0300)]
pico-imx7d: Add default DFU targets

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Add GPT partitioning support
Otavio Salvador [Fri, 29 Jun 2018 18:19:08 +0000 (15:19 -0300)]
pico-imx7d: Add GPT partitioning support

This allow the use of:

> run setup_emmc

inside of the U-Boot prompt to do the partitioning of the disk.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Fix common distro configuration behavior
Otavio Salvador [Fri, 29 Jun 2018 18:19:07 +0000 (15:19 -0300)]
pico-imx7d: Fix common distro configuration behavior

This sets DISTRO_CONFIG and BOOTCOMMAND, as well as add a `finduuid`
environment helper to allow it to properly work with Yocto Project and
other distributions using extlinux autogenerated configuration files.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Convert to distro config
Fabio Estevam [Fri, 29 Jun 2018 18:19:06 +0000 (15:19 -0300)]
pico-imx7d: Convert to distro config

Instead of keeping a custom environment, use a more generic approach
by switching to disto config.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agoarm, imx6: add alternative PAD_CTL_DSE constants
Mark Jonas [Thu, 28 Jun 2018 13:56:18 +0000 (15:56 +0200)]
arm, imx6: add alternative PAD_CTL_DSE constants

Not all i.MX6 pads use the same drive strength table. So far only the
240 Ohm to 34 Ohm table was available. Because the constants used have
speaking names it can be confusing to use e.g. PAD_CTL_DSE_48ohm when
according to the reference manual 52 Ohm is the correct value. This
patch adds the 260 Ohm to 37 Ohm table.

For example, the IOMUXC_SW_PAD_CTL_PAD_SD2_CLK register (SD-card clock)
uses the added table.

Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
6 years agocolibri_imx7: improve DDR3 timing
Stefan Agner [Tue, 26 Jun 2018 09:10:52 +0000 (11:10 +0200)]
colibri_imx7: improve DDR3 timing

This makes sure that all Colibri iMX7 modules work with the
same timing. The changes are:
- Disable ODT on read (JEDEC standard JESD79-3F says in chapter
  5.2.3 ODT during Reads: "As the DDR3 SDRAM can not terminate
  and drive at the same time, RTT must be disabled at least half
  a clock cycle..." and also MX7D SABRESD is disabling it)
  This alone fixed memory issues for two Colibri iMX7 1GB modules
  which showed issues before
- Make sure tRFC(min) is at least 260ns
- Make sure tRC is >50.625ns
- tRP needs to be >13.125ns, we can lower from 18.75ns to 15ns
- tFAW is not relevant, leave at reset

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
6 years agocolibri_imx7: add compatible string used in vanilla Linux
Stefan Agner [Tue, 26 Jun 2018 09:10:51 +0000 (11:10 +0200)]
colibri_imx7: add compatible string used in vanilla Linux

Device trees from vanilla Linux do not specify a i.MX 7 specific
compatible string. Make sure to set partitions also when booting
upstream Linux.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agomx6cuboxi: Move the default environment for all devices
Jon Nettleton [Mon, 25 Jun 2018 10:39:03 +0000 (13:39 +0300)]
mx6cuboxi: Move the default environment for all devices

Previously we had stored the environment right after the
u-boot.img on the disk.  I never liked this because with dtbs
being included and such the image could grow in size.  Instead
we move the environment to be negatively offset from the 1MB
mark.  Almost all our images start at 4MB's, and most standard
images start at 1MB, and all our storage devices are a minimum
1MB.  Therefore we can store env there for all classes of devices
and have plenty of space in case u-boot.img needs to grow.

Signed-off-by: Jon Nettleton <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: mx7: psci: implement MIGRATE_INFO_TYPE
Stefan Agner [Sun, 24 Jun 2018 19:09:58 +0000 (21:09 +0200)]
imx: mx7: psci: implement MIGRATE_INFO_TYPE

Implement MIGRATE_INFO_TYPE. This informs Linux that no migration
for the trusted operating system is necessary:
  [    0.000000] psci: Trusted OS migration not required

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoimx: mx7: psci: support CPU0 on/off
Stefan Agner [Sun, 24 Jun 2018 19:09:57 +0000 (21:09 +0200)]
imx: mx7: psci: support CPU0 on/off

So far psci_cpu_(on|off) only worked for CPU1. Allow to control
CPU0 too. This allows to run the Linux PSCI checker successfully:
  [    2.213447] psci_checker: PSCI checker started using 2 CPUs
  [    2.219107] psci_checker: Starting hotplug tests
  [    2.223859] psci_checker: Trying to turn off and on again all CPUs
  [    2.267191] IRQ21 no longer affine to CPU0
  [    2.293266] Retrying again to check for CPU kill
  [    2.302269] CPU0 killed.
  [    2.311648] psci_checker: Trying to turn off and on again group 0 (CPUs 0-1)
  [    2.354354] IRQ21 no longer affine to CPU0
  [    2.383222] Retrying again to check for CPU kill
  [    2.392148] CPU0 killed.
  [    2.398063] psci_checker: Hotplug tests passed OK
  [    2.402910] psci_checker: Starting suspend tests (10 cycles per state)
  [    2.410019] psci_checker: cpuidle not available on CPU 0, ignoring
  [    2.416452] psci_checker: cpuidle not available on CPU 1, ignoring
  [    2.422757] psci_checker: Could not start suspend tests on any CPU
  [    2.429370] psci_checker: PSCI checker completed

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoimx: mx7: psci: provide complete PSCI 1.0 implementation
Stefan Agner [Sun, 24 Jun 2018 19:09:56 +0000 (21:09 +0200)]
imx: mx7: psci: provide complete PSCI 1.0 implementation

PSCI 1.0 require PSCI_VERSION, PSCI_FEATURES, AFFINITY_INFO and
CPU_SUSPEND to be implemented. Commit 0ec3d98f7692 ("mx7_common:
use psci 1.0 instead of 0.1") marked the i.MX 7 implementation to
be PSCI 1.0 compliant but failed to implement those functions.
Especially the missing PSCI version callback was noticeable when
booting Linux:

  [    0.000000] psci: probing for conduit method from DT.
  [    0.000000] psci: PSCIv65535.65535 detected in firmware.
  [    0.000000] psci: Using standard PSCI v0.2 function IDs
  [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
  [    0.000000] psci: SMC Calling Convention v1.0

This patch provides a minimal implementation thereof. With this
patch applied Linux detects PSCI 1.0:

  [    0.000000] psci: probing for conduit method from DT.
  [    0.000000] psci: PSCIv1.0 detected in firmware.
  [    0.000000] psci: Using standard PSCI v0.2 function IDs
  [    0.000000] psci: MIGRATE_INFO_TYPE not supported.
  [    0.000000] psci: SMC Calling Convention v1.0

Fixes: 0ec3d98f7692 ("mx7_common: use psci 1.0 instead of 0.1")
Suggested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoimx: mx7: psci: use C code exclusively
Stefan Agner [Sun, 24 Jun 2018 19:09:55 +0000 (21:09 +0200)]
imx: mx7: psci: use C code exclusively

There is no need for assembly in the platform specific part of
the PSCI implementation.

Note that this does not make it a complete PSCI 1.0 implementation
yet but aids to do so in upcoming patches.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoARM: PSCI: initialize stack pointer on secondary CPUs
Stefan Agner [Sun, 24 Jun 2018 19:09:54 +0000 (21:09 +0200)]
ARM: PSCI: initialize stack pointer on secondary CPUs

A proper stack is required to safely use C code in psci_arch_cpu_entry.

Fixes: 486daaa618e1 ("arm: psci: add a weak function psci_arch_cpu_entry")
Cc: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Patrick DELAUNAY <Patrick.delaunay@st.com>
Tested-by: Patrick DELAUNAY <Patrick.delaunay@st.com>
6 years agoarm: imx7d: cl-som-imx7: sf: support all SF types
Uri Mashiach [Sun, 24 Jun 2018 09:13:10 +0000 (12:13 +0300)]
arm: imx7d: cl-som-imx7: sf: support all SF types

Enable the support for all SPI flash types.

Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Signed-off-by: Yaniv Levinsky <yaniv.levinsky@compulab.co.il>
6 years agoi.MX6: engicam: gpr_init can be called only for some architecture
Michael Trimarchi [Sat, 23 Jun 2018 14:10:07 +0000 (16:10 +0200)]
i.MX6: engicam: gpr_init can be called only for some architecture

Fix an invalid usage of the gpr_init function for the imx6ul
architecture

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Jagan Teki <jagan@amarulasolutions.com>
6 years agoimx: imx6: Add comment to gpr_init function
Michael Trimarchi [Sat, 23 Jun 2018 14:10:06 +0000 (16:10 +0200)]
imx: imx6: Add comment to gpr_init function

This function can be used only for some of the nxp SoC. Make
it explicit in the comment. This adjust a bit commit
3aa4b703b483f165dd ("imx: imx6: Move gpr_init() function to soc.c")

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Jagan Teki <jagan@amarulasolutions.com>
6 years agomx7: Remove BMODE support
Fabio Estevam [Fri, 22 Jun 2018 16:54:55 +0000 (13:54 -0300)]
mx7: Remove BMODE support

i.MX7 does not support BMODE due to the erratum e10574 ("Watchdog:
A watchdog timeout or software trigger will not reset the SOC"), so
remove its support.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agoimx: mx6: Fix implementantion reset_misc
Michael Trimarchi [Wed, 20 Jun 2018 21:27:54 +0000 (23:27 +0200)]
imx: mx6: Fix implementantion reset_misc

lcdif_power_down should not be included in spl build to avoid build
failure introduced by commit eb111bb31d882877e75e6b8083808dcaf6493b92

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
6 years agoeth: dm: fec: Add gpio phy reset binding
Michael Trimarchi [Sun, 17 Jun 2018 13:22:39 +0000 (15:22 +0200)]
eth: dm: fec: Add gpio phy reset binding

Add the missing gpio phy reset binding to the gpio and
reset time configuration

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agomx6cuboxi: Add emmc device tree suffix
Jon Nettleton [Mon, 11 Jun 2018 12:26:23 +0000 (15:26 +0300)]
mx6cuboxi: Add emmc device tree suffix

Mainline and now the SolidRun 4.9 nxp based tree use the new
reorganization of device-tree files that separate out the emmc
into its own dtb.  u-boot will now look for -emmc in the device
tree name if one is detected.

Signed-off-by: Jon Nettleton <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agomx6cuboxi: Use mmc_get_op_cond() to check for an eMMC
Jon Nettleton [Mon, 11 Jun 2018 12:26:22 +0000 (15:26 +0300)]
mx6cuboxi: Use mmc_get_op_cond() to check for an eMMC

Previously we had just made broad assumptions with which of our
boards had an eMMC or not even though this is a manufacturing time
assembly option.  This takes the guessing away and actually checks for
the existence of an eMMC and sets up the has_emmc environment variable.

Signed-off-by: Jon Nettleton <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agomx6cuboxi: drop CONFIG_SYS_FSL_USDHC_NUM
Baruch Siach [Mon, 11 Jun 2018 12:26:21 +0000 (15:26 +0300)]
mx6cuboxi: drop CONFIG_SYS_FSL_USDHC_NUM

This macro is not used.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agomx6cuboxi: Add support for eMMC booting
Jon Nettleton [Mon, 11 Jun 2018 12:26:20 +0000 (15:26 +0300)]
mx6cuboxi: Add support for eMMC booting

The HB2 boards as well as rev 1.5 soms support eMMC
booting as well as SDHC.  Add the infrastructure to support
booting these devices.

Signed-off-by: Jon Nettleton <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agommc: break out get_op_cond code to its own function
Jon Nettleton [Mon, 11 Jun 2018 12:26:19 +0000 (15:26 +0300)]
mmc: break out get_op_cond code to its own function

This code is useful for testing the existance of devices that
do not have card detect capabilities.  This breaks out the core
functionality and leaves the actual init logic and error reporting
in mmc_start_init().

Signed-off-by: Jon Nettleton <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefano Babic <sbabic@denx.de>
6 years agommc: drop mention of IN_PROGRESS status
Baruch Siach [Mon, 11 Jun 2018 12:26:18 +0000 (15:26 +0300)]
mmc: drop mention of IN_PROGRESS status

The IN_PROGRESS macro has been removed in commit bd47c13583f (mmc: Fix
splitting device initialization). Remove it from the mmc_start_init()
function description.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
6 years agoboard: toradex: add Colibri iMX6ULL support
Stefan Agner [Wed, 30 May 2018 17:01:48 +0000 (19:01 +0200)]
board: toradex: add Colibri iMX6ULL support

Add support for the Colibri iMX6ULL module which comes with
on-board raw NAND.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoboard: toradex: add new and upcoming SKUs
Stefan Agner [Wed, 30 May 2018 17:01:47 +0000 (19:01 +0200)]
board: toradex: add new and upcoming SKUs

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoARM: dts: imx6ull: use same compatible string as Linux is using
Stefan Agner [Wed, 30 May 2018 17:01:46 +0000 (19:01 +0200)]
ARM: dts: imx6ull: use same compatible string as Linux is using

The GPMI NAND IP seems to be the same as used in i.MX 6Quad. Use
the fsl,imx6q-gpmi-nand compatible string like Linux devices trees
are.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agoimx: add macro to detect whether USB has been initialized
Stefan Agner [Wed, 30 May 2018 17:01:45 +0000 (19:01 +0200)]
imx: add macro to detect whether USB has been initialized

This macro allows to detect whether the boot ROM initialized USB
already (serial downloader). This is helpful to reliably detect
if the system has been recovered via USB serial downloader.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
6 years agomtd: nand: mxs_nand: add device tree support for i.MX 6
Stefan Agner [Wed, 30 May 2018 17:01:44 +0000 (19:01 +0200)]
mtd: nand: mxs_nand: add device tree support for i.MX 6

Support i.MX 6 NAND GPMI driver data from device tree.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
6 years agobootcount: flush after storing the bootcounter
Stefano Babic [Thu, 22 Feb 2018 11:30:41 +0000 (12:30 +0100)]
bootcount: flush after storing the bootcounter

If the bootcounter address is in a cached memory,
a flush of dcache must occur after updateing the bootcounter.

Issue found on i.MX6 where bootcounter is put into the internal
(cached) IRAM.

Signed-off-by: Stefano Babic <sbabic@denx.de>
6 years agoenv: Simplify Makefile using $(SPL_TPL_)
York Sun [Tue, 26 Jun 2018 17:03:22 +0000 (10:03 -0700)]
env: Simplify Makefile using $(SPL_TPL_)

Add Kconfig options SPL_ENV_* and TPL_ENV_* and simplify Makefile.
This allows SPL/TPL image has different environment setting from
full feature U-Boot.

Signed-off-by: York Sun <york.sun@nxp.com>
6 years agoenv: typo in description of ENV_IS_IN_REMOTE
Heinrich Schuchardt [Sat, 17 Mar 2018 22:53:11 +0000 (22:53 +0000)]
env: typo in description of ENV_IS_IN_REMOTE

%s/remove/remote/

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-rockchip
Tom Rini [Sat, 21 Jul 2018 02:35:49 +0000 (22:35 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-rockchip

6 years agorockchip: utilize CONFIG_DEFAULT_FDT_FILE
Klaus Goger [Fri, 25 May 2018 21:45:05 +0000 (23:45 +0200)]
rockchip: utilize CONFIG_DEFAULT_FDT_FILE

Currently the fdtfile environment variable is set to
CONFIG_DEFAULT_DEVICE_TREE which is іnternally used as U-Boot devicetree
source. The OS can use a different filename and Kconfig gives us the
ability to select a default devicetree via CONFIG_DEFAULT_FDT_FILE.
This also gives user configuring U-Boot via menuconfig the behaviour
someone would expect.

Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com>
Tested-By: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: veyron: Set vcc33_sd regulator value
Carlo Caione [Mon, 11 Jun 2018 19:00:50 +0000 (20:00 +0100)]
rockchip: veyron: Set vcc33_sd regulator value

On the veyron board the vcc33_sd regulator is used as vmmc-supply for
the SD card. This regulator is powered in the MMC core during power on
but its value is never actually set.

In the veyron platform the reset value for the LDO output is 1.8V while
the standard (min and max) value for this regulator defined in the DTS
is 3.3V. When the MMC core enable the regulator without setting its
value, the output is automatically set to 1.8V instead of 3.3V.

With this patch we preemptively set the value to 3.3V.

Signed-off-by: Carlo Caione <carlo@endlessm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agork3288: Disable JTAG function from sdmmc0 IO
Carlo Caione [Mon, 11 Jun 2018 19:00:49 +0000 (20:00 +0100)]
rk3288: Disable JTAG function from sdmmc0 IO

The GRF_SOC_CON0.grf_force_jtag bit is automatically set at boot and it
is preventing the SDMMC to work correctly. Disable the JTAG function on
the assumption that a working SD has higher priority over JTAG.

Signed-off-by: Carlo Caione <carlo@endlessm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agork3288: veyron: Init boot-on regulators
Carlo Caione [Mon, 11 Jun 2018 19:00:48 +0000 (20:00 +0100)]
rk3288: veyron: Init boot-on regulators

Use regulators_enable_boot_on() to init all the regulators with
regulator-boot-on property.

Signed-off-by: Carlo Caione <carlo@endlessm.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: board: lion-rk3368: increase phy autonegotiation timeout
Jakob Unterwurzacher [Wed, 6 Jun 2018 10:19:03 +0000 (12:19 +0200)]
rockchip: board: lion-rk3368: increase phy autonegotiation timeout

The first dhcp command consistently fails with a timeout when
the lion-rk3368 board is connected to a Zyxel GS1100-24E
Gigabit Ethernet switch:

  ethernet@ff290000 Waiting for PHY auto negotiation to complete......... TIMEOUT !

Increasing PHY_ANEG_TIMEOUT from the default 4000 to 8000 makes the
first dhcp command work reliably.

Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: rk3399: spl: add missing \n to output
Heinrich Schuchardt [Sun, 3 Jun 2018 19:10:13 +0000 (21:10 +0200)]
rockchip: rk3399: spl: add missing \n to output

Without the patch SPL (in case of an error) creates an output like:

U-Boot SPL board initMissing DTB

The patch adds the missing line feed. So now we get:

U-Boot SPL board init
Missing DTB

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: doc: clarify usage of CONFIG_SPL_ROCKCHIP_BACK_TO_BROM
Heinrich Schuchardt [Sun, 3 Jun 2018 18:41:29 +0000 (20:41 +0200)]
rockchip: doc: clarify usage of CONFIG_SPL_ROCKCHIP_BACK_TO_BROM

Change the description relating to CONFIG_SPL_ROCKCHIP_BACK_TO_BROM to
clarify that both RK3288 and RK3036 use

CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: evb-rk3399: correct README for board bring up
Heinrich Schuchardt [Sun, 3 Jun 2018 14:50:20 +0000 (16:50 +0200)]
rockchip: evb-rk3399: correct README for board bring up

%s/rkflashtool/rkdeveloptool/

We are using rkdeveloptool not rkflashtool.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
6 years agorockchip: rk3399: change boot_target based on u-boot, spl-boot-device
Klaus Goger [Thu, 24 May 2018 15:15:53 +0000 (17:15 +0200)]
rockchip: rk3399: change boot_target based on u-boot, spl-boot-device

The order distroboot searches for a boot.scr is fixed at compile time.
To make BIOS_DISABLE work as expected and boot from mmc1 instead of
mmc0 if enabled, we need to change the environment at runtime.
Especially as commit: 482cf22333 ("rockchip: rk3399-puma: add boot-on
regulator to override BIOS_DISABLE") enables the eMMC in U-Boot even
if BIOS_DISABLE is active.

Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com>
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: rk3399: inject 'u-boot, spl-boot-device' for next-stage
Philipp Tomsich [Thu, 24 May 2018 15:15:52 +0000 (17:15 +0200)]
rockchip: rk3399: inject 'u-boot, spl-boot-device' for next-stage

This implements the new 'spl_perform_fixups' hook for RK3399-based
boards and injects the /chosen/u-boot,spl-boot-device with an ofpath
corresponding to the boot device used.

The intended usage is for the full U-Boot stage to evaluate this in
scripts and then adapt its boot-order when using distro-boot.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com>
6 years agospl: document 'chosen/u-boot, spl-boot-device'
Philipp Tomsich [Thu, 24 May 2018 15:15:51 +0000 (17:15 +0200)]
spl: document 'chosen/u-boot, spl-boot-device'

To let the full U-Boot know where it was booted from (i.e. which of
the entries in /chosen/u-boot,spl-boot-order' contained a valid
image), we define (and document) /chosen/u-boot,spl-boot-device as the
property that could/should automatically be injected by SPL.

This commit only contains a documentation change, which documents the
new property and the intended usage.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com>
6 years agospl: record boot_device into spl_image and call spl_perform_fixups
Philipp Tomsich [Thu, 24 May 2018 15:15:50 +0000 (17:15 +0200)]
spl: record boot_device into spl_image and call spl_perform_fixups

On some boards, we want to give the board/architecture-specific code a
chance to look at where the next image has been loaded from and
perform fixups before starting the next image.  This is of particular
importance, when we probe multiple devices for bootable payloads and
boot the first one found.

This change adds the following:
 - we record the boot_device used into the spl_image structure
 - we provide an extension-point for boards/architectures that can
   perform late fixups depending on a fully populated spl_image
   structure (i.e. we'll know the final boot_device and have info
   on the image type and operating system to be booted).

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Klaus Goger <klaus.goger@theobroma-systems.com>
6 years agosmartweb: use SPL_TINY_MEMSET
Philipp Tomsich [Fri, 20 Jul 2018 15:10:28 +0000 (17:10 +0200)]
smartweb: use SPL_TINY_MEMSET

The SPL code for smartweb is close to its limit and adding a few extra
instructions to SPL will cause it to overrun its sram allotement (thus
causing build failures).  To allow adding the 'spl_perform_fixups'
extension point to SPL, we'll enable SPL_TINY_MEMSET for smartweb.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Series-cc: trini

6 years agorockchip: rk3188: add rk_board_late_init() hook
Alexander Kochetkov [Mon, 26 Feb 2018 12:37:42 +0000 (15:37 +0300)]
rockchip: rk3188: add rk_board_late_init() hook

All other rockchip boards have rk_board_late_init() hook,
so add it to rk3188 boards also.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agorockchip: i2c: enable i2c controller for rk3066 and rk3188
Alexander Kochetkov [Mon, 26 Feb 2018 17:42:54 +0000 (20:42 +0300)]
rockchip: i2c: enable i2c controller for rk3066 and rk3188

rk3066 and rk3188 has two I2C controller implementations.
Current I2C driver wan't work with legacy implementation.
Switching between controllers is performed using a bit inside
GFR_SOC_CON1 register. The bit setting is performed by pinctrl
driver. The patch ask pinctrl to do settings.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
[fix warnings by including the rk3228 variant in the compatible-list]:
Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6 years agoMerge git://git.denx.de/u-boot-x86
Tom Rini [Fri, 20 Jul 2018 23:31:30 +0000 (19:31 -0400)]
Merge git://git.denx.de/u-boot-x86

6 years agoboard/imgtec/boston: Add new defconfigs to the MAINTAINERS list
Tom Rini [Fri, 20 Jul 2018 13:01:07 +0000 (09:01 -0400)]
board/imgtec/boston: Add new defconfigs to the MAINTAINERS list

Signed-off-by: Tom Rini <trini@konsulko.com>
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 agox86: acpi: Prevent acpi_table.h from being included more than once
Bin Meng [Thu, 19 Jul 2018 04:42:17 +0000 (21:42 -0700)]
x86: acpi: Prevent acpi_table.h from being included more than once

The wrapper #ifndef is currently missing in acpi_table.h. Add it to
prevent it from being included multiple times.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agox86: acpi: Don't touch ACPI hardware in write_acpi_tables()
Bin Meng [Thu, 19 Jul 2018 04:42:16 +0000 (21:42 -0700)]
x86: acpi: Don't touch ACPI hardware in write_acpi_tables()

write_acpi_tables() currently touches ACPI hardware to switch to
ACPI mode at the end. Move such operation out of this function,
so that it only does what the function name tells us.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
6 years agox86: acpi: Move APIs unrelated to ACPI tables generation to a separate library
Bin Meng [Thu, 19 Jul 2018 04:42:15 +0000 (21:42 -0700)]
x86: acpi: Move APIs unrelated to ACPI tables generation to a separate library

acpi_find_fadt(), acpi_find_wakeup_vector() and enter_acpi_mode()
are something unrelated to ACPI tables generation. Move these to
a separate library.

This also fixes several style issues reported by checkpatch in the
original codes.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
6 years agox86: Switch to use DM sysreset driver
Bin Meng [Thu, 19 Jul 2018 10:07:33 +0000 (03:07 -0700)]
x86: Switch to use DM sysreset driver

This converts all x86 boards over to DM sysreset.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
6 years agox86: fsp: Eliminate the reset_cpu() call
Bin Meng [Thu, 19 Jul 2018 10:07:32 +0000 (03:07 -0700)]
x86: fsp: Eliminate the reset_cpu() call

In preparation for the reset driver conversion, eliminate the
reset_cpu() call in the FSP init path as it's too early for the
reset driver to work.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodm: sysreset: Add a standard message when doing reset
Bin Meng [Thu, 19 Jul 2018 10:07:31 +0000 (03:07 -0700)]
dm: sysreset: Add a standard message when doing reset

It's good to print a message when doing reset.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agox86: tangier: Add a sysreset driver
Bin Meng [Thu, 19 Jul 2018 10:07:30 +0000 (03:07 -0700)]
x86: tangier: Add a sysreset driver

This adds a reset driver for tangier processor.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
6 years agoefi: app: Add a sysreset driver
Bin Meng [Thu, 19 Jul 2018 10:07:29 +0000 (03:07 -0700)]
efi: app: Add a sysreset driver

This adds the DM sysreset driver for EFI application support.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agodm: sysreset: x86: Add a sysreset driver
Bin Meng [Tue, 3 Jul 2018 09:48:40 +0000 (02:48 -0700)]
dm: sysreset: x86: Add a sysreset driver

This adds a generic reset driver for x86 processor.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agox86: quark: acpi: Add full reset bit to the reset register value in FADT
Bin Meng [Tue, 3 Jul 2018 09:48:39 +0000 (02:48 -0700)]
x86: quark: acpi: Add full reset bit to the reset register value in FADT

This adds full reset bit in the reset register value in the ACPI FADT
table, so that kernel can do a thorough reboot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
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>