]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
6 years agoARM: rmobile: gen2: Enable ACTLR[0] (Enable invalidates of BTB) to facilitate CVE_201...
Marek Vasut [Sat, 30 Jun 2018 06:07:41 +0000 (08:07 +0200)]
ARM: rmobile: gen2: Enable ACTLR[0] (Enable invalidates of BTB) to facilitate CVE_2017-5715 WA in OS

Enable CVE_2017_5715 mitigation on CPU0 on R-Car H2, M2W, M2N, V2H,
which all contain Cortex-A15 cores. R-Car E2 contains only Cortex-A7
cores and is not affected. Without this enabled, Linux kernel reports:

  CPU0: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable

With this enabled, Linux kernel reports:

  CPU0: Spectre v2: using ICIALLU workaround

NOTE: This by itself does not enable the workaround for other CPUs
      than CPU0 and may require additional kernel patches for the
      other CPUs in SMP configurations.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agomtd: nand: add new enum for storing ECC algorithm
Rafał Miłecki [Tue, 10 Jul 2018 09:48:08 +0000 (11:48 +0200)]
mtd: nand: add new enum for storing ECC algorithm

Our nand_ecc_modes_t is already a bit abused by value NAND_ECC_SOFT_BCH.
This enum should store ECC mode only and putting algorithm details there
is a bad idea. It would result in too many values impossible to support
in a sane way.

To solve this problem let's add a new enum. We'll have to modify all
drivers to set it properly but once it's done it'll be possible to drop
NAND_ECC_SOFT_BCH. That will result in a cleaner design and more
possibilities like setting ECC algorithm for hardware ECC mode.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
[Linux commit: b0fcd8ab7b3c89b5da7fff5224d06ed73e7a33cc]
[Philippe Reynes: adapt code to u-boot]
Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
6 years agoARM: configs: omap3_logic: remove Legacy OMAP3 USB driver
Adam Ford [Fri, 13 Jul 2018 20:27:13 +0000 (15:27 -0500)]
ARM: configs: omap3_logic: remove Legacy OMAP3 USB driver

Only the MUSB driver is currently supported on the omap3_logic
boards.  The driver is using the new-musb and not the legacy
version, so this patch removes the dead code references.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoConvert CONFIG_DA8XX_GPIO to Kconfig
Adam Ford [Tue, 10 Jul 2018 12:01:20 +0000 (07:01 -0500)]
Convert CONFIG_DA8XX_GPIO to Kconfig

This converts the following to Kconfig:
   CONFIG_DA8XX_GPIO

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: DTS: am3517-evm-u-boot: Mark MMC1 with cd-inverted
Adam Ford [Tue, 10 Jul 2018 10:23:37 +0000 (05:23 -0500)]
ARM: DTS: am3517-evm-u-boot: Mark MMC1 with cd-inverted

In order to use the device tree for MMC, the card-detect pin
needs to be inverted.  This patch places this into the
am3517-evm-u-boot.dtsi file to keep the main DTS and DTSI files
clean and in-sync with Linux

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: dts: am3517-evm-uboot: Add reg-shift for UART
Adam Ford [Tue, 10 Jul 2018 10:04:38 +0000 (05:04 -0500)]
ARM: dts: am3517-evm-uboot: Add reg-shift for UART

With the resync of the omap3.dtsi file, the reg-shift was removed
so it breaks the UART.  Adding the reg-shift into the
am3517-evm-u-boot.dtsi keeps the reg-shift for U-Boot, but keeps
the dts/dtsi files clean from Linux.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agodoc: Replace DocBook with sphinx-based docs
Mario Six [Tue, 10 Jul 2018 06:40:17 +0000 (08:40 +0200)]
doc: Replace DocBook with sphinx-based docs

The Linux kernel moved to sphinx-based documentation and got rid of the
DocBook based documentation quite a while ago. Hence, the DocBook
documentation for U-Boot should be converted as well.

To achieve this, import the necessary files from Linux v4.17, and
convert the current DocBook documentation (three files altogether) to
sphinx/reStructuredText.

For now, all old DocBook documentation was merged into a single
handbook, tentatively named "U-Boot Hacker Manual".

For some source files, the documentation style was changed to comply
with kernel-doc; no functional changes were applied.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
6 years agoARM: DTS: Resync Logic PD SOM-LV 37xx devkit with Linux 4.18-RC4
Adam Ford [Tue, 10 Jul 2018 01:18:44 +0000 (20:18 -0500)]
ARM: DTS: Resync Logic PD SOM-LV 37xx devkit with Linux 4.18-RC4

There have been some significant changes to the DM37 SOM-LV device
tree.  This patch re-syncs it with Linux.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: DTS: Resync LogicPD-Torpedo-37xx-devkit with Linux 4.18-RC4
Adam Ford [Tue, 10 Jul 2018 01:18:14 +0000 (20:18 -0500)]
ARM: DTS: Resync LogicPD-Torpedo-37xx-devkit with Linux 4.18-RC4

There have been some refactoring of the DTS files for the Logic PD
DM37 Torpedo.  This patch re-sync's the DTS files with Linux

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: dts: Resync OMAP3 and omap36xx with Linux 4.18-RC4
Adam Ford [Tue, 10 Jul 2018 01:14:25 +0000 (20:14 -0500)]
ARM: dts: Resync OMAP3 and omap36xx with Linux 4.18-RC4

There have been several minor changes to the OMAP3.dtsi, so this
patch re-syncs it with Linux.  An addition include/dt-binding was
also brought with it.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: DTS: Resync am3517-evm.dts with Linux 4.18-rc4
Adam Ford [Tue, 10 Jul 2018 00:52:48 +0000 (19:52 -0500)]
ARM: DTS: Resync am3517-evm.dts with Linux 4.18-rc4

Several changes have been made to the AM3517-evm and the underlying
am3517.dtsi file.  This patch re-sync's the DTS and DTSI files with
Linux.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agom68k: m5253evbe: Remove this board
Tom Rini [Mon, 9 Jul 2018 14:44:51 +0000 (10:44 -0400)]
m68k: m5253evbe: Remove this board

The m5253evbe board has been marked as orphan since June of 2014 and
should have been dropped a while ago.  Do so now.

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agospi: stm32_qspi: rework mode management
Christophe Kerello [Mon, 9 Jul 2018 13:32:38 +0000 (15:32 +0200)]
spi: stm32_qspi: rework mode management

This patch solves quad read issue with Macronix/Micron spi nor.

Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agospi: stm32_qspi: assign functional operation mode in _stm32_qspi_gen_ccr
Christophe Kerello [Mon, 9 Jul 2018 13:32:37 +0000 (15:32 +0200)]
spi: stm32_qspi: assign functional operation mode in _stm32_qspi_gen_ccr

This patch assigns the functional operation mode in _stm32_qspi_gen_ccr
function.

Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agobios_emulator: remove assignment without effect
Heinrich Schuchardt [Sun, 18 Mar 2018 10:01:23 +0000 (11:01 +0100)]
bios_emulator: remove assignment without effect

Assigning a parameter which is not used afterwards has not effect.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-imx
Tom Rini [Mon, 23 Jul 2018 14:51:13 +0000 (10:51 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-imx

trini: Update colibri-imx6ull to use Kconfig for mtdparts related
options.

Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agoconfigs: imx6q_logic: Cleanup ramdiskaddr and fdtaddr
Adam Ford [Fri, 20 Jul 2018 13:25:53 +0000 (08:25 -0500)]
configs: imx6q_logic: Cleanup ramdiskaddr and fdtaddr

There are already definitions for ramdisk_addr_r and fdt_addr_r, so
having a duplicate copy called ramdiskaddr and fdtaddr is confusing.
This patch converts any references to ramdisk_addr_r and fdt_addr_r
and removes the duplicates.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agomx25: fix the offset between the USB ports' registers
Martin Kaiser [Mon, 16 Jul 2018 20:11:57 +0000 (22:11 +0200)]
mx25: fix the offset between the USB ports' registers

The USBOH module on imx25 chips contains two USB controllers which are
called USB OTG Controller and USB Host Controller. Each one has its EHCI
root hub. The OTG Controller's EHCI registers start at offset 0, the Host
Controller's registers start at offset 0x400.

We set CONFIG_MXC_USB_PORT=0 to select the OTG Controller and 1 for the
Host Controller. Therefore, IMX_USB_PORT_OFFSET must be 0x400. Using
this setting, the Host Controller starts working on my imx25 board.

Please note that the imx25 reference manual claims that the Host
Controller's registers start at 0x200. This is not correct. The Linux
Kernel uses the correct offset 0x400 in imx25.dtsi.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
6 years agotools/imximage: get HAB information from header
Holger Dengler [Fri, 6 Jul 2018 14:10:00 +0000 (16:10 +0200)]
tools/imximage: get HAB information from header

Signing parts of a u-boot imximage for image verification in High
Assurance Boot (HAB) in a post-build process, requires some
information from the imximage header. Currently, this information is
only provided during the image build, which makes the transfer of this
information to the post-build process harder than necessary.

The i.MX HAB information (start and length) can be calculated either
by using information from the image-configuration file, or from the
information in the flash header of the imximage.
The advantage of using information from flash header is, that they are
not only available during image creation, but also available if
existing images are processed.

Example:
$ tools/mkimage -l u-boot.imx
Image Type:   Freescale IMX Boot Image
Image Ver:    2 (i.MX53/6/7 compatible)
Mode:         DCD
Data Size:    483328 Bytes = 472.00 KiB = 0.46 MiB
Load Address: 877ff420
Entry Point:  87800000
HAB Blocks:   0x877ff400 0x00000000 0x00071c00
DCD Blocks:   0x00910000 0x0000002c 0x00000208

Signed-off-by: Holger Dengler <dengler@linutronix.de>
Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
6 years agoARM: dh_imx6: enable GigaDevice, Macronix, and Winbond SPI Flash support in Kconfig
Ludwig Zenz [Fri, 6 Jul 2018 09:26:03 +0000 (11:26 +0200)]
ARM: dh_imx6: enable GigaDevice, Macronix, and Winbond SPI Flash support in Kconfig

In preparation for delivery bottlenecks, enable support for GigaDevice, Macronix, and Winbond nor flash chips.

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
6 years agoimx: i.mx6q: imx6q_logic: Migrate to SPL and enable SDP
Adam Ford [Fri, 6 Jul 2018 01:58:24 +0000 (20:58 -0500)]
imx: i.mx6q: imx6q_logic: Migrate to SPL and enable SDP

Since the vast majority of i.MX6 boards are migrating to SPL,
this patch converts im6q_logic to SPL and enables the SDP for
loading SPL and u-boot.img over USB.  The Falcon mode only
supports NAND flash as of now due to limited space/RAM, but
all i.MX6D/Q SOM's from Logic PD have internal NAND from which
to boot.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoARM: imx6: DHCOM i.MX6 PDK: ddr init for 32bit bus and 4GBit chips
Ludwig Zenz [Thu, 5 Jul 2018 07:23:48 +0000 (09:23 +0200)]
ARM: imx6: DHCOM i.MX6 PDK: ddr init for 32bit bus and 4GBit chips

Support 1GIB + 2GIB DDR3 with 64bit bus width and 512MIB + 1GIB with 32bit bus width

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
6 years agoARM: imx6: configure ddrcode pins in spl DHCOM i.MX6 PDK
Ludwig Zenz [Thu, 5 Jul 2018 07:23:47 +0000 (09:23 +0200)]
ARM: imx6: configure ddrcode pins in spl DHCOM i.MX6 PDK

Preperation for conditional DDR3 initialization based on GPIO codes.

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
6 years agoRevert "ARM: imx6: Disable DDR DRAM calibration DHCOM i.MX6 PDK"
Ludwig Zenz [Thu, 5 Jul 2018 07:23:46 +0000 (09:23 +0200)]
Revert "ARM: imx6: Disable DDR DRAM calibration DHCOM i.MX6 PDK"

This reverts commit a637fe6f27fd4c19ef9f43a5f871c244581422ac.

The DDR DRAM calibration was enhanced by write leveling correction code.
It can be used with T-topology now.

Signed-off-by: Ludwig Zenz <lzenz@dh-electronics.de>
6 years agopico-imx7d: Add new pico-pi config
Otavio Salvador [Fri, 29 Jun 2018 18:19:21 +0000 (15:19 -0300)]
pico-imx7d: Add new pico-pi config

The new config skips the boot menu which asks which board is in
use. This is useful to allow direct booting of image without user
iteration.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: README: Drop old instructions about secure mode
Otavio Salvador [Fri, 29 Jun 2018 18:19:20 +0000 (15:19 -0300)]
pico-imx7d: README: Drop old instructions about secure mode

Our default config already has the secure mode supported, so the
manual step is not required anymore.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: README: Use dfu-util to flash U-Boot
Otavio Salvador [Fri, 29 Jun 2018 18:19:19 +0000 (15:19 -0300)]
pico-imx7d: README: Use dfu-util to flash U-Boot

The DFU allows a more user friendly use as the details where the
bootloader is installed are abstracted.

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

This enables the "bootaux" command so a firmware can be loaded inside
the M4 MCU.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Allow default fdtfile to be overridden by defconfig
Otavio Salvador [Fri, 29 Jun 2018 18:19:17 +0000 (15:19 -0300)]
pico-imx7d: Allow default fdtfile to be overridden by defconfig

This allow the addition of extra default configurations for each
baseboard, removing the boot menu when user boots for the first time.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Do not override addrmap5
Fabio Estevam [Fri, 29 Jun 2018 18:19:16 +0000 (15:19 -0300)]
pico-imx7d: Do not override addrmap5

The addrmap5 value is the same for the 512MB and 1GB variants,
so there is no need to override it.

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

Currently the CAAM driver fails to be probed:

caam 30900000.caam: Entropy delay = 3200
caam 30900000.caam: failed to acquire DECO 0
caam 30900000.caam: failed to instantiate RNG

CAAM needs to be initialized in secure world, so enable
CONFIG_ARMV7_BOOT_SEC_DEFAULT to allow the driver to
probe successfully.

Tested with kernel mainline version 4.17.2.

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

Falcon mode boots the kernel directly from SPL, without loading
the full U-Boot.

As pico-imx7d does not have a GPIO for selecting Falcon versus
normal mode, enter in Falcon mode when the customer selects
the CONFIG_SPL_OS_BOOT option in menuconfig.

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

Currently the baseboards do not offer a way to autodetect which one is
in use, so we ask the user if no value has been set.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
6 years agopico-imx7d: Add support for update SPL using DFU
Fabio Berton [Fri, 29 Jun 2018 18:19:12 +0000 (15:19 -0300)]
pico-imx7d: Add support for update SPL using DFU

Add spl entry on dfu_alt_info to be able to update U-Boot with SPL
for pico imx7d board.

Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
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 agoConvert CONFIG_MTD_PARTITIONS et al to Kconfig
Adam Ford [Sun, 8 Jul 2018 03:18:22 +0000 (22:18 -0500)]
Convert CONFIG_MTD_PARTITIONS et al to Kconfig

This converts the following to Kconfig:
   CONFIG_MTD_PARTITIONS
   CONFIG_MTD_DEVICE

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoconfigs: Convert CONFIG_USE_NAND to CONFIG_NAND
Adam Ford [Tue, 10 Jul 2018 11:47:33 +0000 (06:47 -0500)]
configs: Convert CONFIG_USE_NAND to CONFIG_NAND

The DA850-EVM and OMAPL138_LCDK both use checks for CONFIG_USE_NAND.
This patch changes these checks to CONFIG_NAND which is already defined
in Kconfig.  Since the OMAPL138_LCDK already had CONFIG_NAND defined in its
defconfig, it can be deleted from configs/omapl138_lcdk.h.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoconfigs: Make NAND_BOOT and ONENAND_BOOT imply NAND
Adam Ford [Sun, 8 Jul 2018 12:28:10 +0000 (07:28 -0500)]
configs: Make NAND_BOOT and ONENAND_BOOT imply NAND

Some boards indicate support from booting NAND or
ONENAND booting, but don't enable the CONFIG_NAND.  This
makes those boards imply NAND which will make
enabling other flags that are dependent on CONFIG_NAND
possible and easier to migrate.

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoConvert CONFIG_NAND_DAVINCI to Kconfig
Adam Ford [Sun, 8 Jul 2018 11:43:36 +0000 (06:43 -0500)]
Convert CONFIG_NAND_DAVINCI to Kconfig

This converts the following to Kconfig:
   CONFIG_NAND_DAVINCI

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoConvert CONFIG_NAND_ATMEL to Kconfig
Adam Ford [Sun, 8 Jul 2018 13:11:07 +0000 (08:11 -0500)]
Convert CONFIG_NAND_ATMEL to Kconfig

This converts the following to Kconfig:
   CONFIG_NAND_ATMEL

Signed-off-by: Adam Ford <aford173@gmail.com>
6 years agoConvert CONFIG_NAND_LPC32XX_SLC to Kconfig
Adam Ford [Sun, 8 Jul 2018 11:18:48 +0000 (06:18 -0500)]
Convert CONFIG_NAND_LPC32XX_SLC to Kconfig

This converts the following to Kconfig:
   CONFIG_NAND_LPC32XX_SLC

Signed-off-by: Adam Ford <aford173@gmail.com>
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>