project/bcm63xx/u-boot.git
5 years agodistro_bootcmd: add NVME support
Heinrich Schuchardt [Fri, 21 Dec 2018 01:18:16 +0000 (02:18 +0100)]
distro_bootcmd: add NVME support

Some boards support NVME drives. We should be able to use them as boot
devices.

NVME access requires running 'nvme scan'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agotest: tests for u16_strdup() and u16_strcpy()
Heinrich Schuchardt [Fri, 14 Dec 2018 21:00:37 +0000 (22:00 +0100)]
test: tests for u16_strdup() and u16_strcpy()

Provide unit tests for u16_strdup() and u16_strcpy().

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agolib: add u16_strcpy/strdup functions
Akashi, Takahiro [Fri, 14 Dec 2018 10:10:38 +0000 (19:10 +0900)]
lib: add u16_strcpy/strdup functions

Add u16_strcpy() and u16_strdup(). The latter function will be
used later in implementing efi HII database protocol.

Signed-off-by: Akashi Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agoefi_loader: struct efi_configuration_table
Heinrich Schuchardt [Mon, 17 Dec 2018 23:06:05 +0000 (00:06 +0100)]
efi_loader: struct efi_configuration_table

Commit 393fccdf6c73 ("efi_loader: efi_guid_t must be 64-bit aligned")
has changed the alignment of efi_guid_t. This changed the size of
struct efi_configuration_table on 32-bit systems form 20 to 24 bytes. As
an array of this type is pointed to by the system table this breaks
compatibility with existing versions of GRUB and Linux. Let's get back the
original size by using the attribute __packed.

Fixes: 393fccdf6c73 ("efi_loader: efi_guid_t must be 64-bit aligned")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agoefi_loader: efi_guid_t must be 64-bit aligned
Heinrich Schuchardt [Sun, 16 Dec 2018 10:16:03 +0000 (11:16 +0100)]
efi_loader: efi_guid_t must be 64-bit aligned

The UEFI Specification Version 2.7 Errata A defines:

"EFI_GUID
128-bit buffer containing a unique identifier value.
Unless otherwise specified, aligned on a 64-bit boundary."

Before this patch efi_guid_t was 8-bit aligned.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agotest/py: use default load address for tftp
Heinrich Schuchardt [Sat, 26 Jan 2019 14:25:12 +0000 (15:25 +0100)]
test/py: use default load address for tftp

On x86_64 the size of the file u-boot loaded by the tftp test has grown in
size such that when loading the file to 0x200000 it overwrites a memory
area reserved for PCI.

If no load address is specified for tftp do not use the ram base address
(or if zero 0x200000) but the default address.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 years agoMerge git://git.denx.de/u-boot-x86
Tom Rini [Tue, 12 Feb 2019 12:16:46 +0000 (07:16 -0500)]
Merge git://git.denx.de/u-boot-x86

- Edison switch to CONFIG_OF_SEPARATE.
- Tangier initial ACPI support for PMIC device.
- TSC timer driver update to support native calibration.
- Fixes to 64-bit U-Boot proper.

5 years agox86: tangier: Add initial ACPI support for PMIC device
Andy Shevchenko [Tue, 5 Feb 2019 11:06:57 +0000 (13:06 +0200)]
x86: tangier: Add initial ACPI support for PMIC device

Basin Cove PMIC is connected to I2C0 bus which is hidden from the OS
and access is going via SCU device, enumerated via PCI.

For now, we add just a minimum support of PMIC device to allow enabling,
e.g. USB OTG, in the OS.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
5 years agox86: Use the existing GDT in the ROM for 64-bit U-Boot proper
Bin Meng [Thu, 31 Jan 2019 16:22:14 +0000 (08:22 -0800)]
x86: Use the existing GDT in the ROM for 64-bit U-Boot proper

It is unnecessary to use a RAM version GDT for 64-bit U-Boot proper.
In fact we can just use the ROM version directly, which not only
eliminates the risk of being overwritten by application, but also
removes the complexity of patching the cpu_call64().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agox86: Don't copy the cpu_call64() function to a hardcoded address
Bin Meng [Thu, 31 Jan 2019 16:22:13 +0000 (08:22 -0800)]
x86: Don't copy the cpu_call64() function to a hardcoded address

Before jumping to 64-bit U-Boot proper, SPL copies the cpu_call64()
function to a hardcoded address 0x3000000. This can have potential
conflicts with application usage. Switch the destination address
to be allocated from the heap to avoid such risk.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agox86: Change 4-level page table base address to low memory
Bin Meng [Thu, 31 Jan 2019 16:22:12 +0000 (08:22 -0800)]
x86: Change 4-level page table base address to low memory

At present the 4-level page table base address for 64-bit U-Boot
proper is assigned an address that conflicts with CONFIG_LOADADDR.
Change it to an address within the low memory range instead.

Fixes crashes seen when 'dhcp' on QEMU x86_64 with
"-net nic -net user,tftp=.,bootfile=u-boot".

Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agox86: tsc: Add support for native calibration of TSC freq
Bernhard Messerklinger [Mon, 7 Jan 2019 11:14:40 +0000 (12:14 +0100)]
x86: tsc: Add support for native calibration of TSC freq

Add native tsc calibration function. Calibrate the tsc timer the same
way as linux does in arch/x86/kernel/tsc.c.

Fixes booting for Apollo Lake processors.

Signed-off-by: Bernhard Messerklinger <bernhard.messerklinger@br-automation.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
5 years agodoc: Fix CONFIG_OF_SEPARATE description
Andy Shevchenko [Tue, 8 Jan 2019 14:17:42 +0000 (16:17 +0200)]
doc: Fix CONFIG_OF_SEPARATE description

CONFIG_OF_SEPARATE description is not in align with actual code in Makefile and
thus has misleading instructions and explanation.

Make it aligned with the actual code.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agox86: edison: Switch to CONFIG_OF_SEPARATE
Andy Shevchenko [Tue, 8 Jan 2019 14:17:43 +0000 (16:17 +0200)]
x86: edison: Switch to CONFIG_OF_SEPARATE

There is no need for Intel Edison to have CONFIG_OF_EMBED to be enabled.
Replace it with CONFIG_OF_SEPARATE.

There is no functional change since u-boot.bin always contains DTB
either embedded or attached.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Ferry Toth <ftoth@exalondelft.nl>
5 years agoMerge branch 'master' of git://git.denx.de/u-boot-i2c
Tom Rini [Mon, 11 Feb 2019 16:15:34 +0000 (11:15 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-i2c

- DM I2C improvements

5 years agoMerge git://git.denx.de/u-boot-marvell
Tom Rini [Mon, 11 Feb 2019 15:35:52 +0000 (10:35 -0500)]
Merge git://git.denx.de/u-boot-marvell

- Fix BUILD_TARGET for ARCH_MVEBU from Baruch
- Fix MVEBU PCIe reset issues from Baruch
- Increase DDR stability on x530 from Chris

5 years agoARM: mvebu: x530: use MV_DDR_FREQ_SAR
Chris Packham [Mon, 11 Feb 2019 01:19:56 +0000 (14:19 +1300)]
ARM: mvebu: x530: use MV_DDR_FREQ_SAR

MV_DDR_FREQ_SAR lets the DDR frequency be determined by hardware
strapping. This also has the side effect of running the DDR clock in
synchronous mode with the CPU core clock rather than from an independent
PLL. We've seen this improve reliability in operation across a number of
boards and temperature ranges.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
5 years agoKconfig: fix BUILD_TARGET for ARCH_MVEBU
Baruch Siach [Thu, 7 Feb 2019 11:21:16 +0000 (13:21 +0200)]
Kconfig: fix BUILD_TARGET for ARCH_MVEBU

Commit dc146ca11187 ("Kconfig: Migrate CONFIG_BUILD_TARGET") made the
mvebu default build target depend on CONFIG_SPL_BUILD. Unfortunately,
there is no such Kconfig symbol. Use the CONFIG_SPL symbol instead to
fix that.

Cc: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Stefan Roese <sr@denx.de>
5 years agoarm: mvebu: cf gt-8k: dts: add PCIe slot reset support
Baruch Siach [Sun, 3 Feb 2019 13:15:40 +0000 (15:15 +0200)]
arm: mvebu: cf gt-8k: dts: add PCIe slot reset support

Describe the mini-PCIe slot gpio reset signal. This enables PCIe devices
on Clearfog GT-8K.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
5 years agopcie: designware: mvebu: fix reset release polarity
Baruch Siach [Sun, 3 Feb 2019 13:15:39 +0000 (15:15 +0200)]
pcie: designware: mvebu: fix reset release polarity

The dm_gpio_set_value() routine sets signal logical level, with
GPIO_ACTIVE_LOW/HIGH value taken into account. Reset active value is 1
(asserted), while reset inactive value is 0 (de-asserted). Fix the reset
toggle code to set the correct reset logic value.

Reported-by: Sven Auhagen <sven.auhagen@voleatech.de>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
5 years agoarm: mvebu: mcbin: dts: fix PCIe reset polarity
Baruch Siach [Sun, 3 Feb 2019 13:15:38 +0000 (15:15 +0200)]
arm: mvebu: mcbin: dts: fix PCIe reset polarity

The PCIe slot PERST signal is active low. Fix the gpio signal
description in the dts.

This happened to work because the pcie_dw_mvebu driver sets the reset
gpio level to 1 (high) to release the reset. The following commit will
fix that.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Stefan Roese <sr@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
5 years agoi2c: mux: Generate longer i2c mux name
Michal Simek [Thu, 31 Jan 2019 15:31:03 +0000 (16:31 +0100)]
i2c: mux: Generate longer i2c mux name

For !DM case busses are listed as
ZynqMP> i2c bus
Bus 0: zynq_0
Bus 1: zynq_0->PCA9544A@0x75:0
Bus 2: zynq_0->PCA9544A@0x75:1
Bus 3: zynq_0->PCA9544A@0x75:2
Bus 4: zynq_1
Bus 5: zynq_1->PCA9548@0x74:0
Bus 6: zynq_1->PCA9548@0x74:1
Bus 7: zynq_1->PCA9548@0x74:2
Bus 8: zynq_1->PCA9548@0x74:3
Bus 9: zynq_1->PCA9548@0x74:4
Bus 10: zynq_1->PCA9548@0x75:0
Bus 11: zynq_1->PCA9548@0x75:1
Bus 12: zynq_1->PCA9548@0x75:2
Bus 13: zynq_1->PCA9548@0x75:3
Bus 14: zynq_1->PCA9548@0x75:4
Bus 15: zynq_1->PCA9548@0x75:5
Bus 16: zynq_1->PCA9548@0x75:6
Bus 17: zynq_1->PCA9548@0x75:7

where is exactly describing i2c bus topology.
By moving to DM case i2c mux buses are using names from DT and because
i2c-muxes describing sub busses with the same names like i2c@0, etc it
is hard to identify which bus is where.
Linux is adding topology information to i2c-mux busses to identify them
better.
This patch is doing the same and composing bus name with topology
information.

When patch is applied with topology information on zcu102-revA.
ZynqMP> i2c bus
Bus 0: i2c@ff020000
   20: gpio@20, offset len 1, flags 0
   21: gpio@21, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 2: i2c@ff020000->i2c-mux@75->i2c@0
Bus 3: i2c@ff020000->i2c-mux@75->i2c@1
Bus 4: i2c@ff020000->i2c-mux@75->i2c@2
Bus 1: i2c@ff030000  (active 1)
   74: i2c-mux@74, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 5: i2c@ff030000->i2c-mux@74->i2c@0  (active 5)
   54: eeprom@54, offset len 1, flags 0
Bus 6: i2c@ff030000->i2c-mux@74->i2c@1
Bus 7: i2c@ff030000->i2c-mux@74->i2c@2
Bus 8: i2c@ff030000->i2c-mux@74->i2c@3
Bus 9: i2c@ff030000->i2c-mux@74->i2c@4
Bus 10: i2c@ff030000->i2c-mux@75->i2c@0
Bus 11: i2c@ff030000->i2c-mux@75->i2c@1
Bus 12: i2c@ff030000->i2c-mux@75->i2c@2
Bus 13: i2c@ff030000->i2c-mux@75->i2c@3
Bus 14: i2c@ff030000->i2c-mux@75->i2c@4
Bus 15: i2c@ff030000->i2c-mux@75->i2c@5
Bus 16: i2c@ff030000->i2c-mux@75->i2c@6
Bus 17: i2c@ff030000->i2c-mux@75->i2c@7

Behavior before the patch is applied.
ZynqMP> i2c bus
Bus 0: i2c@ff020000
   20: gpio@20, offset len 1, flags 0
   21: gpio@21, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 2: i2c@0
Bus 3: i2c@1
Bus 4: i2c@2
Bus 1: i2c@ff030000  (active 1)
   74: i2c-mux@74, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 5: i2c@0  (active 5)
   54: eeprom@54, offset len 1, flags 0
Bus 6: i2c@1
Bus 7: i2c@2
Bus 8: i2c@3
Bus 9: i2c@4
Bus 10: i2c@0
Bus 11: i2c@1
Bus 12: i2c@2
Bus 13: i2c@3
Bus 14: i2c@4
Bus 15: i2c@5
Bus 16: i2c@6
Bus 17: i2c@7

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agoi2c: Fill req_seq in i2c_post_bind()
Michal Simek [Thu, 31 Jan 2019 15:31:02 +0000 (16:31 +0100)]
i2c: Fill req_seq in i2c_post_bind()

For i2c controllers which are missing alias in DT there is no req_seq
setup. This function is setting up proper ID based on highest found
alias ID.

On zcu102 this is the behavior when patch is applied.
ZynqMP> i2c bus
Bus 0: i2c@ff020000
   20: gpio@20, offset len 1, flags 0
   21: gpio@21, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 2: i2c@0
Bus 3: i2c@1
Bus 4: i2c@2
Bus 1: i2c@ff030000  (active 1)
   74: i2c-mux@74, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus 5: i2c@0  (active 5)
   54: eeprom@54, offset len 1, flags 0
Bus 6: i2c@1
Bus 7: i2c@2
Bus 8: i2c@3
Bus 9: i2c@4
Bus 10: i2c@0
Bus 11: i2c@1
Bus 12: i2c@2
Bus 13: i2c@3
Bus 14: i2c@4
Bus 15: i2c@5
Bus 16: i2c@6
Bus 17: i2c@7

Before this patch applied (controllers have -1 ID)
ZynqMP> i2c bus
Bus 0: i2c@ff020000
   20: gpio@20, offset len 1, flags 0
   21: gpio@21, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus -1: i2c@0
Bus -1: i2c@1
Bus -1: i2c@2
Bus 1: i2c@ff030000  (active 1)
   74: i2c-mux@74, offset len 1, flags 0
   75: i2c-mux@75, offset len 1, flags 0
Bus -1: i2c@0  (active 0)
   54: eeprom@54, offset len 1, flags 0
Bus -1: i2c@1
Bus -1: i2c@2
Bus -1: i2c@3
Bus -1: i2c@4
Bus -1: i2c@0
Bus -1: i2c@1
Bus -1: i2c@2
Bus -1: i2c@3
Bus -1: i2c@4
Bus -1: i2c@5
Bus -1: i2c@6
Bus -1: i2c@7

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agoi2c: dm: Record maximum id of devices before probing devices
Michal Simek [Thu, 31 Jan 2019 15:31:01 +0000 (16:31 +0100)]
i2c: dm: Record maximum id of devices before probing devices

There is a need to find out the first free i2c ID which can be used for
i2s buses (including i2c buses connected to i2c mux). Do it early in
init and share this variable with other i2c classes for uniq bus
identification.

add from hs:
fix build problem in i2c-uclass.c for omap devices

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agoMerge branch 'master' of git://git.denx.de/u-boot-sh
Tom Rini [Sun, 10 Feb 2019 13:11:53 +0000 (08:11 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-sh

- SD/MMC fixes and ext4 memory leak fix

5 years agoMerge tag 'dm-pull-10feb19' of git://git.denx.de/u-boot-dm
Tom Rini [Sun, 10 Feb 2019 13:11:32 +0000 (08:11 -0500)]
Merge tag 'dm-pull-10feb19' of git://git.denx.de/u-boot-dm

Samsung sound patches (applied for Samsung maintainer)
Common sound support
buildman environment support
of-platdata documentation improvements

5 years agoMerge branch '2019-02-08-master-imports'
Tom Rini [Sun, 10 Feb 2019 13:04:53 +0000 (08:04 -0500)]
Merge branch '2019-02-08-master-imports'

- bcm6345 watchdog, bcm63158/bcm963158 initial support.
- Various TI platform resyncs and improvements.
- FDT support in Android-format images.
- stm32mp1 improvements.

5 years agosound: Allow audio codecs to be used by other SoCs
Simon Glass [Thu, 27 Dec 2018 20:24:39 +0000 (13:24 -0700)]
sound: Allow audio codecs to be used by other SoCs

At present there is still some samsung-specific code in the audio codecs.
Remove it so that these can be used by other SoCs.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agosound: i2s: Tidy up a few comments
Simon Glass [Thu, 27 Dec 2018 20:24:38 +0000 (13:24 -0700)]
sound: i2s: Tidy up a few comments

Fix a struct typo and drop a comment (and function prototype) which is not
actually used.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agosound: samsung: Fix 'regiter' typo
Simon Glass [Thu, 27 Dec 2018 20:24:37 +0000 (13:24 -0700)]
sound: samsung: Fix 'regiter' typo

Fix a typo that appears many times in this file.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agomisc: Allow child devices
Simon Glass [Thu, 27 Dec 2018 20:24:36 +0000 (13:24 -0700)]
misc: Allow child devices

Allow misc devices to have children, so that we can use this uclass for
cases where a child device (e.g. I2S) needs to access a misc driver for
transferring data.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agobuildman: fix typo
Chris Packham [Fri, 18 Jan 2019 07:40:29 +0000 (20:40 +1300)]
buildman: fix typo

Fix a typo in the error message from CheckOutputDir().

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agoof-platdata: improve documentation
Simon Goldschmidt [Wed, 16 Jan 2019 19:40:18 +0000 (20:40 +0100)]
of-platdata: improve documentation

Improve some things in the documentation of OF_PLATDATA that I found
while porting socfgpa_gen5 to it.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agobuildman: Write the environment out to an 'env' file
Simon Glass [Mon, 7 Jan 2019 23:44:23 +0000 (16:44 -0700)]
buildman: Write the environment out to an 'env' file

Sometimes it is useful to see the environment that was used to build
U-Boot. Write this out to a file in the build directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agommc: omap_hsmmc: Use regulator_set_enable_if_allowed for enabling regulator
Lokesh Vutla [Fri, 11 Jan 2019 09:45:52 +0000 (15:15 +0530)]
mmc: omap_hsmmc: Use regulator_set_enable_if_allowed for enabling regulator

Use regulator_set_enable_if_allowed() api instead of regulator_set_enable()
while enabling io regulators. This way the driver doesn't see an error
when disabling an always-on regulator and when enabling is not supported.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agopower: regulator: Introduce regulator_set_enable_if_allowed api
Lokesh Vutla [Fri, 11 Jan 2019 09:45:51 +0000 (15:15 +0530)]
power: regulator: Introduce regulator_set_enable_if_allowed api

regulator_set_enable() api throws an error in the following three cases:
- when requested to disable an always-on regulator
- when set_enable() ops not provided by regulator driver
- when enabling is actually failed.(Error returned by the regulator driver)

Sometimes consumer drivers doesn't want to track the first two scenarios
and just need to worry about the case where enabling is actually failed.
But it is also a good practice to have an error value returned in the
first two cases.

So introduce an api regulator_set_enable_if_allowed() which ignores the
first two error cases and returns an error as given by regulator driver.
Consumer drivers can use this api need not worry about the first two
error conditions.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agoRevert "power: regulator: Return success on attempt to disable an always-on regulator"
Lokesh Vutla [Fri, 11 Jan 2019 09:45:50 +0000 (15:15 +0530)]
Revert "power: regulator: Return success on attempt to disable an always-on regulator"

This reverts commit e17e0ceb83538c015a50b965547f2f4d38f81c5d.

It is advised to return an error when trying to disable an always-on
regulator and let the consumer driver handle the error if needed.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agofdt: tegra: Drop COMPAT_AMS_AS3722
Simon Glass [Sat, 12 Jan 2019 01:37:15 +0000 (18:37 -0700)]
fdt: tegra: Drop COMPAT_AMS_AS3722

This is no-longer used. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agofdt: samsung: Drop unused fdt_compat_id values
Simon Glass [Sat, 12 Jan 2019 01:37:14 +0000 (18:37 -0700)]
fdt: samsung: Drop unused fdt_compat_id values

This enum still exists but we can shrink it a little based on recent
driver-model conversions with samsung. Update it to remove unused items.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agosamsung: mmc: Drop old MMC init code
Simon Glass [Sat, 12 Jan 2019 01:37:13 +0000 (18:37 -0700)]
samsung: mmc: Drop old MMC init code

Now that these boards use driver model we can drop the old code. At
present s5p_mmc_init() is still used by goni and smdkv310 so cannot be
removed unless we remove those boards.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
5 years agosamsung: Drop board_enable_audio_codec()
Simon Glass [Sat, 12 Jan 2019 01:37:12 +0000 (18:37 -0700)]
samsung: Drop board_enable_audio_codec()

This function is not needed now since the audio codecs have been converted
to proper drivers. The codec-enable GPIO is handled there.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
5 years agospring: Update flashmap details
Simon Glass [Sat, 12 Jan 2019 01:37:11 +0000 (18:37 -0700)]
spring: Update flashmap details

Update the flashmap so that this board can be started over USB A-A. It
is slightly different from snow.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agospring: Update sound to use max98088 codec
Simon Glass [Sat, 12 Jan 2019 01:37:10 +0000 (18:37 -0700)]
spring: Update sound to use max98088 codec

Update the spring settings to use this codec, which is what it actually
shipped with.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agosound: Add a driver for max98088
Simon Glass [Sat, 12 Jan 2019 01:37:09 +0000 (18:37 -0700)]
sound: Add a driver for max98088

This chip is used by spring. Add a driver for it and update the
samsung_sound driver to pick it up.

Signed-off-by: Simon Glass <sjg@chromium.org>
5 years agoexynos: Convert to use CONFIG_BLK
Simon Glass [Sat, 12 Jan 2019 01:37:08 +0000 (18:37 -0700)]
exynos: Convert to use CONFIG_BLK

Move all exynos boards over to use CONFIG_BLK.

This converts s5p_goni also, but adding dummy functions for pinmux and
peripheral ID. This will not function correctly, but gives the maintainer
more time to convert the board if desired.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
5 years agoexynos: Drop duplicate 'model' line
Simon Glass [Sat, 12 Jan 2019 01:37:07 +0000 (18:37 -0700)]
exynos: Drop duplicate 'model' line

At present the model is shown twice, once in the generic code and once
in the exynos code. Drop the latter.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
5 years agoConvert CONFIG_BOARD_TYPES to Kconfig
Simon Glass [Sat, 12 Jan 2019 01:37:06 +0000 (18:37 -0700)]
Convert CONFIG_BOARD_TYPES to Kconfig

This converts the following to Kconfig:
   CONFIG_BOARD_TYPES

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
5 years agoarm: mach-k3: common: Clean up ATF image startup function
Andreas Dannenberg [Mon, 4 Feb 2019 18:58:47 +0000 (12:58 -0600)]
arm: mach-k3: common: Clean up ATF image startup function

Perform some cosmetic cleanup of the ATF image startup function, namely
fixing a spelling mistake, capitalization of a few words, spacing, as
well aligning how errors are printed and as using panic() for cases that
were using a combination of printf() + hang().

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agobcm968580xref: switch to CONFIG_OF_SEPARATE
Philippe Reynes [Mon, 4 Feb 2019 14:14:18 +0000 (15:14 +0100)]
bcm968580xref: switch to CONFIG_OF_SEPARATE

The option OF_EMBED is deprecated,
so we switch to CONFIG_OF_SEPARATE

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm968580: rename to bcm968580xref
Philippe Reynes [Mon, 4 Feb 2019 14:14:17 +0000 (15:14 +0100)]
bcm968580: rename to bcm968580xref

The name of the board is bcm968580xref,
so rename the config to bcm968580xref too.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoarmv7R: K3: am654: Fix order of debug elements in x509 template
Andrew F. Davis [Fri, 1 Feb 2019 21:04:58 +0000 (15:04 -0600)]
armv7R: K3: am654: Fix order of debug elements in x509 template

The first element in the debug section is expected to be debugUID.
ROM will not parse this correctly when out of order, fix this here.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agoam65x_evm: Allow bootm to load larger kernels
Andrew F. Davis [Fri, 1 Feb 2019 21:04:57 +0000 (15:04 -0600)]
am65x_evm: Allow bootm to load larger kernels

Bootm will fail to load kernels over 8MB, this is not enough
for our 64bit kernel images. Increase this to 64MB.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agoconfigs: am65x_evm_r5: Enable GPT support
Andrew F. Davis [Fri, 1 Feb 2019 21:04:56 +0000 (15:04 -0600)]
configs: am65x_evm_r5: Enable GPT support

The second loader stages may be stored on GPT partitions,
enable support for this here.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agocmd: sata: add null pointer check for dev
Marcel Ziswiler [Fri, 1 Feb 2019 15:01:08 +0000 (16:01 +0100)]
cmd: sata: add null pointer check for dev

Calling sata_scan() with a null pointer probably won't make much sense.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agodm: device: fail uclass_find_first_device() if list_empty
Marcel Ziswiler [Fri, 1 Feb 2019 15:01:07 +0000 (16:01 +0100)]
dm: device: fail uclass_find_first_device() if list_empty

While uclass_find_device() fails with -ENODEV in case of list_empty
strangely uclass_find_first_device() returns 0.

Fix uclass_find_first_device() to also fail with -ENODEV instead.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agobcm963158: enable watchdog and reboot with watchdog
Philippe Reynes [Thu, 31 Jan 2019 17:57:39 +0000 (18:57 +0100)]
bcm963158: enable watchdog and reboot with watchdog

Enable watchdog and reboot with watchdog in the configuration.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm63158: add watchdog
Philippe Reynes [Thu, 31 Jan 2019 17:57:38 +0000 (18:57 +0100)]
dt: bcm63158: add watchdog

This commit add watchdog and sysreset watchdog
in the bcm63158 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agowatchdog: bcm6345: allow to use this driver on arm bcm63158
Philippe Reynes [Thu, 31 Jan 2019 17:57:37 +0000 (18:57 +0100)]
watchdog: bcm6345: allow to use this driver on arm bcm63158

This IP is also used on some arm SoC, so we allow to
use it on arm bcm63158 too.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm963158: add initial support
Philippe Reynes [Thu, 31 Jan 2019 17:57:36 +0000 (18:57 +0100)]
bcm963158: add initial support

This add the initial support of the broadcom reference
board bcm963158 with a bcm63158 SoC.

This board has 1 GB of ram, 512 MB of flash (nand),
2 usb port, 1 uart, 4 ethernet ports (LAN), 1 ethernet port (WAN).

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm63158: add initial support
Philippe Reynes [Thu, 31 Jan 2019 17:57:35 +0000 (18:57 +0100)]
bcm63158: add initial support

This add the initial support of the broadcom bcm63158 SoC family,
only the cpu, dram and uart are supported.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoinitcall: Move to inline function
Alexander Graf [Thu, 31 Jan 2019 15:06:23 +0000 (16:06 +0100)]
initcall: Move to inline function

The board_r init function was complaining that we are looping through
an array, calling all our tiny init stubs sequentially via indirect
function calls (which can't be speculated, so they are slow).

The solution to that is pretty easy though. All we need to do is inline
the function that loops through the functions and the compiler will
automatically convert almost all indirect calls into direct inlined code.

With this patch, the overall code size drops (by 40 bytes on riscv64)
and boot time should become measurably faster for every target.

Signed-off-by: Alexander Graf <agraf@suse.de>
5 years agoboard/BuR/brppt1: drop DM_I2C_COMPAT
Hannes Schmelzer [Thu, 31 Jan 2019 08:24:45 +0000 (09:24 +0100)]
board/BuR/brppt1: drop DM_I2C_COMPAT

The TPS62517 PMIC driver has been partially converted to DM, so the
legacy I2C access layer isn't needed anymore.

Signed-off-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
5 years agommc: omap_hsmmc: Workaround errata regarding SDR104/HS200 tuning failures (i929)
Faiz Abbas [Wed, 30 Jan 2019 12:38:42 +0000 (18:08 +0530)]
mmc: omap_hsmmc: Workaround errata regarding SDR104/HS200 tuning failures (i929)

Errata i929 in certain OMAP5/DRA7XX/AM57XX silicon revisions
(SPRZ426D - November 2014 - Revised February 2018 [1]) mentions
unexpected tuning pattern errors. A small failure band may be present
in the tuning range which may be missed by the current algorithm.
Furthermore, the failure bands vary with temperature leading to
different optimum tuning values for different temperatures.

As suggested in the related Application Report (SPRACA9B - October 2017
- Revised July 2018 [2]), tuning should be done in two stages.
In stage 1, assign the optimum ratio in the maximum pass window for the
current temperature. In stage 2, if the chosen value is close to the
small failure band, move away from it in the appropriate direction.

References:
[1] http://www.ti.com/lit/pdf/sprz426
[2] http://www.ti.com/lit/pdf/SPRACA9

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
5 years agoclk: stm32mp1: correctly handle Clock Spreading Generator
Patrick Delaunay [Wed, 30 Jan 2019 12:07:06 +0000 (13:07 +0100)]
clk: stm32mp1: correctly handle Clock Spreading Generator

To activate the csg option, the driver need to set the bit2
of PLLNCR register = SSCG_CTRL: Spread Spectrum Clock Generator
of PLLn enable.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agodts: stm32mp1: clock tree update
Patrick Delaunay [Wed, 30 Jan 2019 12:07:05 +0000 (13:07 +0100)]
dts: stm32mp1: clock tree update

- Add st,digbypass on clk_hse node (needed for board rev.C)
- MLAHB/AHB max frequency increased from 200 to 209MHz, with:
  - PLL3P set to 208.8MHz for MCU sub-system
  - PLL3Q set to 24.57MHz for 48kHz SAI/SPI2S
  - PLL3R set to 11.29MHz for 44.1kHz SAI/SPI2S
  - PLL4P set to 99MHz for SDMMC and SPDIFRX
  - PLL4Q set to 74.25MHz for EVAL board

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agoclk: stm32mp1: add debug information
Patrick Delaunay [Wed, 30 Jan 2019 12:07:04 +0000 (13:07 +0100)]
clk: stm32mp1: add debug information

Add support of clk dump command and
display information during probe (under CONFIG_DISPLAY_CPUINFO).

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agoclk: stm32mp1: recalculate counter when switching freq
Patrick Delaunay [Wed, 30 Jan 2019 12:07:03 +0000 (13:07 +0100)]
clk: stm32mp1: recalculate counter when switching freq

Because stgen is initialized with HSI clock, we need to
recalculate the counter when changing frequency.

Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agoclk: stm32mp1: correct access to RCC_OCENSETR/RCC_OCENCLRR
Patrick Delaunay [Wed, 30 Jan 2019 12:07:02 +0000 (13:07 +0100)]
clk: stm32mp1: correct access to RCC_OCENSETR/RCC_OCENCLRR

Remove unnecessary setbits on set/clear registers.
Avoid to deactivate HSI with HSE.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agoclk: stm32mp1: add IPCC clock
Patrick Delaunay [Wed, 30 Jan 2019 12:07:01 +0000 (13:07 +0100)]
clk: stm32mp1: add IPCC clock

Add support for enable/disable of IPCC clock using AHB3 registers

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agoclk: stm32mp1: no more get ck_usbo_48m in device tree
Patrick Delaunay [Wed, 30 Jan 2019 12:07:00 +0000 (13:07 +0100)]
clk: stm32mp1: no more get ck_usbo_48m in device tree

Remove support of ck_usbo_48m clock node in device tree,
but force 48MHz frequency to prepare alignment
with kernel device tree.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agodrivers: serial: dm: Enable DM_FLAG_PRE_RELOC in SBSA pl011 uart driver
Vabhav Sharma [Wed, 30 Jan 2019 11:24:00 +0000 (11:24 +0000)]
drivers: serial: dm: Enable DM_FLAG_PRE_RELOC in SBSA pl011 uart driver

The DM_FLAG_PRE_RELOC shall be enabled in SBSA PL011 uart driver
as this driver is used in NXP based SoCs

It is necessary to have Serial console running before relocation

The !CONFIG_IS_ENABLED(OF_CONTROL) [*] check is set as "workaround"
for DM problem : 4687919684e

This flag is set if board does not support device-tree and using
platform data, In DM Model either of device tree or platform data
can be used to fetch device configuration

It is possible to use SBSA UART with CONFIG_DM_SERIAL but witout
corresponding device tree description (OF_CONTROL)

Other board/SoCs have this flag set unconditionally

Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
5 years agohashtable: fix environment variable corruption
Roman Kapl [Wed, 30 Jan 2019 10:39:54 +0000 (11:39 +0100)]
hashtable: fix environment variable corruption

Only first previously deleted entry was recognized, leading hsearch_r
to think that there was no previously deleted entry. It then conluded
that a free entry was found, even if there were no free entries and it
overwrote a random entry.

This patch makes sure all deleted or free entries are always found and
also introduces constants for the 0 and -1 numbers. Unit tests to excersise a
simple hash table usage and catch the corruption were added.

To trash your environment, simply run this loop:

setenv i 0
while true; do
    setenv v_$i $i
    setenv v_$i
    setexpr i $i + 1
done

Signed-off-by: Roman Kapl <rka@sysgo.com>
5 years agomoveconfig: add a second pass for empty #if/#endif blocks
Chris Packham [Wed, 30 Jan 2019 07:23:16 +0000 (20:23 +1300)]
moveconfig: add a second pass for empty #if/#endif blocks

Moveconfig already attempts to remove empty #if/#endif blocks when there
is a matching CONFIG_ being moved. Add a second pass which covers files
without a match.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
5 years agoomap3_cairo: remove empty #ifdef/#endif block
Chris Packham [Wed, 30 Jan 2019 07:19:28 +0000 (20:19 +1300)]
omap3_cairo: remove empty #ifdef/#endif block

The content between these guards was removed in commit 9baa2bce2890
("Removed unused references to CONFIG_SERIALx"). Remove the now
empty #ifdef/#endif block and the accompanying comment.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
5 years agotest: provide unit test for memory functions
Heinrich Schuchardt [Wed, 30 Jan 2019 06:53:31 +0000 (07:53 +0100)]
test: provide unit test for memory functions

Memory functions may have architecture specific implementations. These
should be tested.

Provide unit tests for memset(), memcpy(), memmove().

Provide a 'ut lib' sub-command to execute the tests.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agodoc: ti-secure: Add ULO info for AM57xx/DRA7xx secure devices from TI
Andrew F. Davis [Mon, 28 Jan 2019 17:43:26 +0000 (11:43 -0600)]
doc: ti-secure: Add ULO info for AM57xx/DRA7xx secure devices from TI

Booting from UART and USB on HS devices is now supported for this
platform. Update documentation for the same.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agodefconfigs: Add config for AM57xx High Security EVM with USB/UART Boot support
Andrew F. Davis [Mon, 28 Jan 2019 17:43:25 +0000 (11:43 -0600)]
defconfigs: Add config for AM57xx High Security EVM with USB/UART Boot support

Add a new defconfig file for the AM57xx High Security EVM. This config
is specific for the case of USB/UART booting.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agodefconfigs: Add config for DRA7xx High Security EVM with USB Boot support
Andrew F. Davis [Mon, 28 Jan 2019 17:43:24 +0000 (11:43 -0600)]
defconfigs: Add config for DRA7xx High Security EVM with USB Boot support

Add a new defconfig file for the DRA7xx High Security EVM. This config
is specific for the case of USB booting.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agodefconfigs: am57xx_hs_evm: Sync HS and non-HS defconfigs
Andrew F. Davis [Mon, 28 Jan 2019 17:43:23 +0000 (11:43 -0600)]
defconfigs: am57xx_hs_evm: Sync HS and non-HS defconfigs

Additions have been made to the non-HS defconfig without the same
being made to the HS defconfig, sync them.

Signed-off-by: Andrew F. Davis <afd@ti.com>
5 years agodefconfigs: dra7xx_hs_evm: Sync HS and non-HS defconfigs
Andrew F. Davis [Mon, 28 Jan 2019 17:43:22 +0000 (11:43 -0600)]
defconfigs: dra7xx_hs_evm: Sync HS and non-HS defconfigs

Additions have been made to the non-HS defconfig without the same
being made to the HS defconfig, sync them.

Signed-off-by: Andrew F. Davis <afd@ti.com>
5 years agobcm968580: enable watchdog and reboot with watchdog
Philippe Reynes [Mon, 28 Jan 2019 14:37:32 +0000 (15:37 +0100)]
bcm968580: enable watchdog and reboot with watchdog

Enable watchdog and reboot with watchdog in the configuration.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm968380gerg: enable watchdog and reboot with watchdog
Philippe Reynes [Mon, 28 Jan 2019 14:37:31 +0000 (15:37 +0100)]
bcm968380gerg: enable watchdog and reboot with watchdog

Enable watchdog and reboot with watchdog in the configuration.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm6858: add watchdog
Philippe Reynes [Mon, 28 Jan 2019 14:37:30 +0000 (15:37 +0100)]
dt: bcm6858: add watchdog

This commit add watchdog and sysreset watchdog
in the bcm6858 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm6838: add watchdog
Philippe Reynes [Mon, 28 Jan 2019 14:37:29 +0000 (15:37 +0100)]
dt: bcm6838: add watchdog

This commit add watchdog and sysreset watchdog
in the bcm6838 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agowatchdog: bcm6345: allow to use this driver on arm bcm6858
Philippe Reynes [Mon, 28 Jan 2019 14:37:28 +0000 (15:37 +0100)]
watchdog: bcm6345: allow to use this driver on arm bcm6858

This IP is also used on some arm SoC, so we allow to
use it on arm bcm6858 too.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agowatchdog: bcm6345: switch to raw I/O functions
Philippe Reynes [Mon, 28 Jan 2019 14:37:27 +0000 (15:37 +0100)]
watchdog: bcm6345: switch to raw I/O functions

This driver is used on several big endian mips board.
So we could use raw I/O function instead of forcing
big endian access.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
5 years agofs: ext4: Unmount FS in do_fs_type()
Marek Vasut [Wed, 6 Feb 2019 12:19:29 +0000 (13:19 +0100)]
fs: ext4: Unmount FS in do_fs_type()

Unlike other generic FS accessors, fs_get_info() does not call fs_close()
at the end of it's operation. Thus, using fs_get_info() in do_fs_type()
without calling fs_close() causes potential memory leak by creating new
filesystem structures on each call of do_fs_type().

The test case to trigger this problem is as follows. It is required to
have ext4 filesystem on the first partition of the SDMMC device, since
ext4 requires stateful mount and causes memory allocation.
=> while true ; do mmc rescan ; fstype mmc 1 ; done
Eventually, the mounting of ext4 will fail due to malloc failures
and the filesystem will not be correctly detected.

This patch fixes the problem by adding the missing fs_close().

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
5 years agommc: Do not poll using CMD13 when changing timing
Marek Vasut [Wed, 6 Feb 2019 10:34:27 +0000 (11:34 +0100)]
mmc: Do not poll using CMD13 when changing timing

When using CMD6 to switch eMMC card timing from HS200/HS400 to HS/legacy,
do not poll for the completion status using CMD13, but rather wait 50mS.

Once the card receives the CMD6 and starts executing it, the bus is in
undefined state until both the card finishes executing the command and
until the controller switches the bus to matching timing configuration.
During this time, it is not possible to transport any commands or data
across the bus, which includes the CMD13.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
5 years agommc: tmio: renesas: Add 1uS delay after DMA completion on older IPs
Marek Vasut [Fri, 11 Jan 2019 22:38:07 +0000 (23:38 +0100)]
mmc: tmio: renesas: Add 1uS delay after DMA completion on older IPs

The internal DMAC asserts DMA transfer end bit too early on older
version of the TMIO IPs which use bit 17 for DTRAEND. Add 1uS
delay after the completion of DMA transfer and before invalidating
the cache to let the DMAC fully complete the transfer. Otherwise,
it could happen that the last few bytes of a transferred data are
not available.

A test case to trigger this behavior is the following command, ran
on the U-Boot command line, with Sandisk 16 GiB UHS-I card inserted
into SDHI slot 0 and with first partition being of type FAT:
=> while true ; do mmc rescan ; fstype mmc 0:1 ; done

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agommc: tmio: Make DMA transfer end bit configurable
Marek Vasut [Fri, 11 Jan 2019 22:45:54 +0000 (23:45 +0100)]
mmc: tmio: Make DMA transfer end bit configurable

Different versions of the SDHI core use either bit 17 or bit 20 for the
DTRAEND indication, which can differ even between SoC revisions. Make
the DTRAEND bit position part of the driver private data, so that the
probe function can set this accordingly. Set this to 20 on Socionext
SoCs and either 17 or 20 on Renesas SoCs, depending on the SoC.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agofdt: support booting with dtb in Android image
Shawn Guo [Tue, 15 Jan 2019 14:26:37 +0000 (22:26 +0800)]
fdt: support booting with dtb in Android image

Some platforms choose to store device tree blob in Android image second
area.  Let's try to look for dtb from there when booting an Android
image, and use it for booting if found.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
5 years agodm: core: Add tests for dev_read_alias_highest_id()
Michal Simek [Thu, 31 Jan 2019 15:31:00 +0000 (16:31 +0100)]
dm: core: Add tests for dev_read_alias_highest_id()

It is checking the highest alias ID for eth, gpio, pci, i2c and error
code on non existing alias.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agodm: core: Introduce dev_read_alias_highest_id()
Michal Simek [Thu, 31 Jan 2019 15:30:59 +0000 (16:30 +0100)]
dm: core: Introduce dev_read_alias_highest_id()

It is wrapper for calling of_alias_get_highest_id() when live tree is
enabled and fdtdec_get_alias_highest_id() if not.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agofdt: Introduce fdtdec_get_alias_highest_id()
Michal Simek [Thu, 31 Jan 2019 15:30:58 +0000 (16:30 +0100)]
fdt: Introduce fdtdec_get_alias_highest_id()

Find out the highest alias ID used for certain subsystem.
This call will be used for alocating IDs for i2c buses which are not
described in DT.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agodm: core: Add of_alias_get_highest_id()
Michal Simek [Thu, 31 Jan 2019 15:30:57 +0000 (16:30 +0100)]
dm: core: Add of_alias_get_highest_id()

The same functionality was added to Linux for i2c bus registration with this
commit message:

"
of: base: add function to get highest id of an alias stem

I2C supports adding adapters using either a dynamic or fixed id. The
latter is provided by aliases in the DT case. To prevent id collisions
of those two types, install this function which gives us the highest
fixed id, so we can then let the dynamically created ones come after
this highest number.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
"

Add it also to U-Boot for DM I2C support.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agoPrepare v2019.04-rc1
Tom Rini [Fri, 8 Feb 2019 02:32:19 +0000 (21:32 -0500)]
Prepare v2019.04-rc1

Signed-off-by: Tom Rini <trini@konsulko.com>
5 years agoconfigs: Resync with savedefconfig
Tom Rini [Thu, 7 Feb 2019 19:53:03 +0000 (14:53 -0500)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
5 years agoMerge branch 'master' of git://git.denx.de/u-boot-spi
Tom Rini [Thu, 7 Feb 2019 19:48:56 +0000 (14:48 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-spi

- SPI-NOR support

5 years agoMAINTAINERS: Add an entry for SPI NOR
Vignesh R [Tue, 5 Feb 2019 05:59:29 +0000 (11:29 +0530)]
MAINTAINERS: Add an entry for SPI NOR

Add myself as co-maintainer for U-Boot SPI NOR subsystem.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
[jagan: drop mtd/spi file from SPI entry]
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
5 years agoconfigs: Don't use SPI_FLASH_BAR as default
Vignesh R [Tue, 5 Feb 2019 05:59:28 +0000 (11:29 +0530)]
configs: Don't use SPI_FLASH_BAR as default

Now that new SPI NOR layer uses stateless 4 byte opcodes by default,
don't enable SPI_FLASH_BAR. For SPI controllers that cannot support
4-byte addressing, (stm32_qspi.c, fsl_qspi.c, mtk_qspi.c, ich.c,
renesas_rpc_spi.c) add an imply clause to enable SPI_FLASH_BAR so as to
not break functionality.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Tested-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Tested-by: Stefan Roese <sr@denx.de>
Tested-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> #zynq-microzed