]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
5 years agoarm: socfpga: remove CONFIG_SYS_BOOTMAPSZ
Simon Goldschmidt [Wed, 9 Jan 2019 19:49:09 +0000 (20:49 +0100)]
arm: socfpga: remove CONFIG_SYS_BOOTMAPSZ

socfpga_common.h defines CONFIG_SYS_BOOTMAPSZ to 64 MiB.

Since having this define overrides the 'bootm_size' env variable for
the whole socfpga platform, let's remove this define from socfpga_common.h
and instead rely on the 'bootm_size' env variable (which is initialized
to 160 MiB in the same file's default env). This gives users the
chance to override it in their own environment.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Series-to: Marek Vasut <marex@denx.de>
Series-to: u-boot@lists.denx.de
Cover-letter:
arm: socfpga: clean up socfpga_common.h
This series cleans up the include/configs/socfpga_common.h file a bit.

It removes some defines that are used nowhere and cleans up some
leftovers after various subsystems have been converted to use DM.
END

5 years agoarm: socfpga: clean up socfpga_common.h
Simon Goldschmidt [Wed, 9 Jan 2019 19:47:52 +0000 (20:47 +0100)]
arm: socfpga: clean up socfpga_common.h

Remove outdated macros and comments (not used any more, outdated due to
DM conversion) from socfpga_common.h.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Series-changes: 3
- changed commit message: s/defines/macros and comments/

Series-changes: 2
- remove even more outdated things

5 years agoarm: socfpga: move vining_fpga to DM_I2C
Simon Goldschmidt [Thu, 28 Mar 2019 21:09:35 +0000 (22:09 +0100)]
arm: socfpga: move vining_fpga to DM_I2C

All socfpga boards except for vining_fpga use DM_I2C. Enable
DM_I2C for this board and set the EEPROM defines via Kconfig
(enabling CONFIG_I2C_EEPROM from MISC).

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Series-changes: 2
- added (this) patch to move socfpga_vining to DM_I2C

5 years agoarm: socfpga: gen5: reduce SPL pre-reloc malloc
Simon Goldschmidt [Tue, 9 Apr 2019 19:02:06 +0000 (21:02 +0200)]
arm: socfpga: gen5: reduce SPL pre-reloc malloc

By enabling debug prints in malloc_simple, we can see that SPL for socfpga
gen5 does by far not need the 8 KiB malloc pool currently allocated for
SPL in pre-reloc phase.

On socfpga_socrates, 1304 bytes are currently used (and this increases by
~200 bytes only for the sdram/reset fixes in socfpga-next).

To prevent wasting precious SRAM space, let's reduce the initial heap used
for SPL to 2 KiB. This is still some hundred bytes more than currently
used. Also, the gen5 SPL enables stack and heap in DDR memory pretty
early. Only the initial uclass/dm parsing, serial console and DDR
initialization is done in the initial heap, so these 2 KiB should be
enough for all boards.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
5 years agoarm: socfpga: imply/default common config options
Simon Goldschmidt [Tue, 9 Apr 2019 19:02:05 +0000 (21:02 +0200)]
arm: socfpga: imply/default common config options

This commit moves common config options used in all socfpga boards
to select/imply in Kconfig. This both cleans up the defconfig files
as well as makes future changes easier.

Options implied/defaulted for all sub-arches:
- SPL, SPL_DM, USE_TINY_PRINTF, NR_DRAM_BANKS

Options implied/defaulted for implied for A10 & gen5:
- FPGA_SOCFPGA, SYS_MALLOC_F_LEN, SYS_TEXT_BASE

Options implied/defaulted for gen5:
- SPL_STACK_R, SPL_SYS_MALLOC_SIMPLE, SPL_STACK_R_ADDR

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
5 years agoarm: socfpga: put initial U-Boot stack into DDR
Simon Goldschmidt [Tue, 9 Apr 2019 19:02:04 +0000 (21:02 +0200)]
arm: socfpga: put initial U-Boot stack into DDR

If SPL post-reloc stage puts the stack into DDR, U-Boot should be able to
do that, too.

The reason to do so is that this way, U-Boot initial stack can be larger
than SPL initial stack. In situations where we want to save the SPL
in SRAM for next boot without reloading, this prevents overwriting the
SPL DTB in SRAM if U-Boot stack usage gets too high.

To achieve this, the malloc definition for a10 is moved up and sligthly
changed to ensure CONFIG_SYS_INIT_RAM_SIZE is the remaining available size.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
5 years agoarm: socfpga: fix comment about SPL memory layout
Simon Goldschmidt [Tue, 9 Apr 2019 19:02:03 +0000 (21:02 +0200)]
arm: socfpga: fix comment about SPL memory layout

The comment about SPL memory layout for socfpga gen5 is outdated: the
initial malloc memory is now at the end of the SRAM, gd is below it
(see board_init_f_alloc_reserve).

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
5 years agoconfigs: socfpga: socrates: enable rtc support
Simon Goldschmidt [Thu, 28 Mar 2019 20:11:51 +0000 (21:11 +0100)]
configs: socfpga: socrates: enable rtc support

This enables DM_RTC and RTC_M41T62 to enable support for the rtc on the
socrates board.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
5 years agoarm: socfpga: socrates: make rtc work
Simon Goldschmidt [Thu, 28 Mar 2019 20:11:50 +0000 (21:11 +0100)]
arm: socfpga: socrates: make rtc work

This patch makes the on-board RTC work on the socfpga_socrates board.
This rtc is present on the board, but it does not work (fails with a
timeout).

This patch adds a weak pull-up on the I2C0-SCL pin connected to the m41t82
RTC on this board. While the SDA line has a pull-up on the pcb, the pull-up
on the SCL line seems to be missing. To work around this, enable the
weak-pull-up feature on this pin.

After applying this patch, the rtc timeout is gone and the 'date' command
can access the rtc chip.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
5 years agortc: m41t62: add compatible for m41t82
Simon Goldschmidt [Thu, 28 Mar 2019 20:11:49 +0000 (21:11 +0100)]
rtc: m41t62: add compatible for m41t82

This adds a compatible string for m41t82. This ensures that this driver
can be used for m41t82 in DM mode, too (asit was usable for this model in
non-DM mode before).

In addition, the HT bit has to be reset during probe, since the m41t82
chip sets it when entering battery standby mode.

This patch ensures this driver works on socfpga_socrates.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
5 years agoi2c: designware: fix reset handling on socfpga gen5
Simon Goldschmidt [Thu, 28 Mar 2019 20:11:48 +0000 (21:11 +0100)]
i2c: designware: fix reset handling on socfpga gen5

Using this driver on socfpga gen5 with DM_I2C enabled leads to a data abort
as the 'i2c' reset property cannot be found (the gen5 dtsi does not provide
reset-names).

The actual bug was to check 'if (&priv->reset_ctl)', which is never false.

While at it, convert the driver to use 'reset_get_bulk' instead of looking
at a specific named reset and also make it release the reset on driver
remove before starting the OS.

Fixes: 622597dee4f6 ("i2c: designware: add reset ctrl to driver")
Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agoRevert "cmd: Kconfig: Do not include EEPROM if DM_I2C is used without DM_I2C_COMPAT"
Simon Goldschmidt [Tue, 26 Mar 2019 12:38:53 +0000 (13:38 +0100)]
Revert "cmd: Kconfig: Do not include EEPROM if DM_I2C is used without DM_I2C_COMPAT"

This reverts commit 65a97e7fcf54feb7c4ebe1aee8a572830af4cf51.

The 'eeprom' command has been converted to work with DM_I2C in a patch
submitted around the same time as this commit:
commit 0c07a9b4078d ("eeprom: Add device model based I2C support to eeprom command")

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agoeeprom: fix DM_I2C support without CONFIG_SYS_I2C_EEPROM_BUS
Simon Goldschmidt [Tue, 26 Mar 2019 12:38:52 +0000 (13:38 +0100)]
eeprom: fix DM_I2C support without CONFIG_SYS_I2C_EEPROM_BUS

The current device model enabled eeprom code only works if
CONFIG_SYS_I2C_EEPROM_BUS is set.

This patch makes it work without that define so that the bus
number passed to 'eeprom_init' is used.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
5 years agosocfpga: add Simon Goldschmidt as co-custodian
Simon Goldschmidt [Thu, 28 Mar 2019 21:27:53 +0000 (22:27 +0100)]
socfpga: add Simon Goldschmidt as co-custodian

This updates MAINTAINERS and git-mailrc to add me as a
co-custodian for socfpga.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Stefan Roese <sr@denx.de>
Acked-by: Marek Vasut <marex@denx.de>
5 years agoMerge branch '2019-04-22-master-imports'
Tom Rini [Wed, 24 Apr 2019 13:04:23 +0000 (09:04 -0400)]
Merge branch '2019-04-22-master-imports'

- Add and enable brcmnand driver on a number of relevant platforms.
  Also add and enable LED drivers on more bcm platforms.
- Various ARMv8 fixes/improvements, including extending PSCI
  functionality.
- fs_loader improvments
- Various FIT/SPL improvements
- PCI bugfixes
- Poplar platform ethernet support
- MediaTek MMC improvements
- Android boot improvements

5 years agoimage: android: fix 'iminfo' typo
Eugeniu Rosca [Mon, 8 Apr 2019 15:35:28 +0000 (17:35 +0200)]
image: android: fix 'iminfo' typo

Fix below CP warning triggered by the 'iminfo' output in another patch:
WARNING: 'addrress' may be misspelled - perhaps 'address'?

Fixes: 4f1318b29c7a20 ("common: image: minimal android image iminfo support")
Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
5 years agoimage: android: allow booting lz4-compressed kernels
Eugeniu Rosca [Mon, 8 Apr 2019 15:35:27 +0000 (17:35 +0200)]
image: android: allow booting lz4-compressed kernels

According to Android image format [1], kernel image resides at 1 page
offset from the boot image address. Grab the magic number from there
and allow U-Boot to handle LZ4-compressed KNL binaries instead of
hardcoding compression type to IH_COMP_NONE. Other compression types,
if needed, can be added later.

Tested on H3ULCB-KF using the image detailed in [2].

[1] Excerpt from include/android_image.h
    +-----------------+
    | boot header     | 1 page
    +-----------------+
    | kernel          | n pages
    +-----------------+
    | ramdisk         | m pages
    +-----------------+
    | second stage    | o pages
    +-----------------+

[2] => iminfo 4c000000
    ## Checking Image at 4c000000 ...
    Android image found
    kernel size:      85b9d1
    kernel address:   48080000
    ramdisk size:     54ddbc
    ramdisk addrress: 4a180000
    second size:      0
    second address:   48000800
    tags address:     48000100
    page size:        800
    os_version:       1200012a (ver: 0.9.0, level: 2018.10)
    name:
    cmdline:          buildvariant=userdebug

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
5 years agotest: env: Enable env unit tests by default
Heinrich Schuchardt [Sun, 7 Apr 2019 15:57:40 +0000 (17:57 +0200)]
test: env: Enable env unit tests by default

If CONFIG_UNIT_TEST is enabled we should enable the individual tests by
default to ensure good test coverage.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 years agoARMv8: PSCI: Fix PSCI_TABLE relocation issue
Lars Povlsen [Thu, 4 Apr 2019 12:38:50 +0000 (14:38 +0200)]
ARMv8: PSCI: Fix PSCI_TABLE relocation issue

This fixes relaction isses with the PSCI_TABLE entries in
the psci_32_table and psci_64_table.

When using 32-bit adress pointers relocation was not being applied to
the tables, causing PSCI handlers to point to the un-relocated code
area. By using 64-bit data relocation is properly applied. The
handlers are thus in the "secure data" area, which is protected by
/memreserve/ in the FDT.

Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com>
5 years agobootm: Simplying cache flush code
Trent Piepho [Wed, 27 Mar 2019 23:50:09 +0000 (23:50 +0000)]
bootm: Simplying cache flush code

The cache flush of the kernel load area needs to be aligned outward to
the DMA cache alignment.  The operations are simpler if we think of this
as aligning the start down, ALIGN_DOWN(load, ARCH_DMA_MINALIGN), and
aligning the end up, ALIGN(load_end, ARCH_DMA_MINALIGN), and then find
the length of the flushed region by subtracting the former from the
latter.

Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Trent Piepho <tpiepho@impinj.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agomalloc: Fix memalign not honoring alignment prior to full malloc init
Andreas Dannenberg [Wed, 27 Mar 2019 18:17:26 +0000 (13:17 -0500)]
malloc: Fix memalign not honoring alignment prior to full malloc init

When using memalign() in a scenario where U-Boot is configured for full
malloc support with simple malloc not explicitly enabled and before the
full malloc support is initialized, a memory block is being allocated
and returned without the alignment parameter getting honored.

Fix this issue by replacing the existing memalign pre-full malloc init
logic with a call to memalign_simple() this way ensuring proper alignment
of the returned memory block.

Fixes: ee038c58d519 ("malloc: Use malloc simple before malloc is fully initialized in memalign()")
Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agospl: spl_nand.c: Add NAND loading message
Stefan Roese [Tue, 26 Mar 2019 12:04:00 +0000 (13:04 +0100)]
spl: spl_nand.c: Add NAND loading message

This patch adds a short message to the SPL NAND loader, which displays
the source and destinations addresses including the size of the
loaded image, like this:

U-Boot SPL 2019.04-rc3-00113-g486efd8aaf (Mar 15 2019 - 14:18:02 +0100)
Trying to boot from NAND
Loading U-Boot from 0x00040000 (size 0x000a0000) to 0x22900000

I find this message quite helpful - hopefully others do so as well.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agoARM: MediaTek: Add support for MT8516 SoC
Fabien Parent [Sun, 24 Mar 2019 15:46:38 +0000 (16:46 +0100)]
ARM: MediaTek: Add support for MT8516 SoC

Add support for MediaTek MT8516 SoC. This include the file
that will initialize the SoC after boot and its device tree.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agopinctrl: add driver for MT8516
Fabien Parent [Sun, 24 Mar 2019 15:46:37 +0000 (16:46 +0100)]
pinctrl: add driver for MT8516

Add Pinctrl driver for MediaTek MT8516 SoC.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Acked-by: Ryder Lee <ryder.lee@mediatek.com>
5 years agoclk: mediatek: add driver for MT8516
Fabien Parent [Sun, 24 Mar 2019 15:46:36 +0000 (16:46 +0100)]
clk: mediatek: add driver for MT8516

Add clock driver for MediaTek MT8516 SoC.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Acked-by: Ryder Lee <ryder.lee@mediatek.com>
[trini: Redo whitespace]
Signed-off-by: Tom Rini <trini@konsulko.com>
5 years agoclk: mediatek: add support for SETCLR_INV and NO_SETCLR flags
Fabien Parent [Sun, 24 Mar 2019 15:46:35 +0000 (16:46 +0100)]
clk: mediatek: add support for SETCLR_INV and NO_SETCLR flags

Add the implementation for the CLK_GATE_SETCLR_INV and
CLK_GATE_NO_SETCLR flags.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Acked-by: Ryder Lee <ryder.lee@mediatek.com>
5 years agommc: mtk-sd: fix configuration option check
Fabien Parent [Sun, 24 Mar 2019 15:46:34 +0000 (16:46 +0100)]
mmc: mtk-sd: fix configuration option check

We either need to use IS_ENABLED(CONFIG_FOO) or CONFIG_IS_ENABLED(FOO).
IS_ENABLE(FOO) will always return false.

This commit fixes the comparison by using the CONFIG_IS_ENABLED(FOO)
syntax.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
5 years agommc: mtk-sd: add support for MT8516
Fabien Parent [Sun, 24 Mar 2019 15:46:33 +0000 (16:46 +0100)]
mmc: mtk-sd: add support for MT8516

Add config for handling MT8516 SoC.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Acked-by: Ryder Lee <ryder.lee@mediatek.com>
5 years agommc: mtk-sd: add source_cg clock support
Fabien Parent [Sun, 24 Mar 2019 15:46:32 +0000 (16:46 +0100)]
mmc: mtk-sd: add source_cg clock support

Some MediaTek SoC need an additional clock "source_cg". Enable
this new clock. We reuse the same clock name as in the kernel.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Acked-by: Ryder Lee <ryder.lee@mediatek.com>
5 years agopoplar: enable Ethernet driver support
Shawn Guo [Wed, 20 Mar 2019 07:32:41 +0000 (15:32 +0800)]
poplar: enable Ethernet driver support

The 'phy' reset of gmac device in kernel device tree is not generic
enough for u-boot to use, so we need to overwrite the 'resets' property
as needed.  With this device tree fixup and poplar_defconfig changes,
Ethernet starts working on Poplar board.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonet: add higmacv300 Ethernet driver for HiSilicon platform
Shawn Guo [Wed, 20 Mar 2019 07:32:40 +0000 (15:32 +0800)]
net: add higmacv300 Ethernet driver for HiSilicon platform

It adds the driver for HIGMACV300 Ethernet controller found on HiSilicon
SoCs like Hi3798CV200.  It's based on a downstream U-Boot driver, but
quite a lot of code gets rewritten and cleaned up to adopt driver model
and PHY API.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agoreset: add reset driver for HiSilicon platform
Shawn Guo [Wed, 20 Mar 2019 07:32:39 +0000 (15:32 +0800)]
reset: add reset driver for HiSilicon platform

It adds a Driver Model compatible reset driver for HiSlicon platform.
The driver implements a custom .of_xlate function, and uses .data field
as reset register offset and .id field as bit shift.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agoreset: add polarity field into struct reset_ctl
Shawn Guo [Wed, 20 Mar 2019 07:32:38 +0000 (15:32 +0800)]
reset: add polarity field into struct reset_ctl

Some reset controllers support different polarities for reset operation,
so let's add a polarity field into struct reset_ctl.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agopci: Scale MAX_PCI_REGIONS based on CONFIG_NR_DRAM_BANKS
Thierry Reding [Fri, 15 Mar 2019 15:32:33 +0000 (16:32 +0100)]
pci: Scale MAX_PCI_REGIONS based on CONFIG_NR_DRAM_BANKS

If a platform defines CONFIG_NR_DRAM_BANKS, each DRAM bank will be added
as a PCI region. The number of MAX_PCI_REGIONS therefore needs to scale
with the number of DRAM banks, otherwise we will end up with too little
space in the hose->regions array to store all system memory regions.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agopci: Add boundary check for hose->regions
Thierry Reding [Fri, 15 Mar 2019 15:32:32 +0000 (16:32 +0100)]
pci: Add boundary check for hose->regions

Make sure that we don't overflow the hose->regions array, otherwise we
would end up overwriting the hose->region_count field and cause mayhem
to ensue. Also print an error message when we'd be overflowing because
it indicates that there aren't enough regions available and the number
needs to be increased.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agoARM: da850evm: Remove legacy MMC code
Adam Ford [Fri, 15 Mar 2019 19:29:20 +0000 (14:29 -0500)]
ARM: da850evm: Remove legacy MMC code

With the migration to DM in SPL and the DT support, the
old legacy code is no longer neaded, so this patch removes it

Signed-off-by: Adam Ford <aford173@gmail.com>
5 years agobcm963158: enable led support
Philippe Reynes [Fri, 22 Mar 2019 16:02:08 +0000 (17:02 +0100)]
bcm963158: enable led support

Enable the led support in the configuration
of the board bcm963158.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm963158: enable led controller
Philippe Reynes [Fri, 22 Mar 2019 16:02:07 +0000 (17:02 +0100)]
dt: bcm963158: enable led controller

Enable the led controller in the device tree
of the board bcm963158.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm63158: add led controller
Philippe Reynes [Fri, 22 Mar 2019 16:02:06 +0000 (17:02 +0100)]
dt: bcm63158: add led controller

Add the led controller in the bcm63158 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoled: bcm6858: allow to use this driver on ARCH_963158
Philippe Reynes [Fri, 22 Mar 2019 16:02:05 +0000 (17:02 +0100)]
led: bcm6858: allow to use this driver on ARCH_963158

Allow the led bcm6858 driver to be used on bcm63158.
They have the same led controller.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm968580xref: enable led support
Philippe Reynes [Fri, 22 Mar 2019 16:02:04 +0000 (17:02 +0100)]
bcm968580xref: enable led support

Enable the led support in the configuration
of the board bcm968580xref.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm968580xref: enable led controller
Philippe Reynes [Fri, 22 Mar 2019 16:02:03 +0000 (17:02 +0100)]
dt: bcm968580xref: enable led controller

Enable the led controller in the device tree
of the board bcm968580xref.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm6858: add led controller
Philippe Reynes [Fri, 22 Mar 2019 16:02:02 +0000 (17:02 +0100)]
dt: bcm6858: add led controller

Add the led controller in the bcm6858 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoled: add initial support for bcm6858
Philippe Reynes [Fri, 22 Mar 2019 16:02:01 +0000 (17:02 +0100)]
led: add initial support for bcm6858

The driver add the support of the led IP on bcm6858.
This led IP can drive up to 32 leds, and can handle
blinking.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
5 years agoarm: arm64 32bit address relocation
Ibai Erkiaga [Fri, 15 Mar 2019 12:18:41 +0000 (12:18 +0000)]
arm: arm64 32bit address relocation

Current relocation code is limited to 21bit PC-relative addressing
which might not be enough for bigger code sizes. The following patch
increases the addressing to 32bit PC-relative. This feature is
specially interesting if U-Boot is build without optimiation (-O0) as
the text section is increased significativelly.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com>
5 years agotravis: Add srecord package
Marek Vasut [Thu, 14 Mar 2019 00:01:24 +0000 (01:01 +0100)]
travis: Add srecord package

At least MIPS Boston currently uses srec_cat tool to fiddle with
srecords. There will be other platforms coming, so install the
tool to prevent build problems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Tom Rini <trini@konsulko.com>
5 years agoAdd target to generate initial environment
Stefano Babic [Wed, 13 Mar 2019 08:46:45 +0000 (09:46 +0100)]
Add target to generate initial environment

The initial environment is linked to the u-boot binary. Modifying the
environment from User Space with the env tools requires that the tools
are always built together with the bootloader to be sure that they
contain the initial environment in case no environment is stored into
persistent storage or when a board boots with just the default
environment. This makes difficult for distros to provide a general
package to access the environment. A simpler way is if the tools are
generic for all boards and a configuration file is given to provide the
initial environment.

The patch just generates the initial environment by extracting it from
the compiled object. This file can then be used for tools in user space
to initialize the environment.

Signed-off-by: Stefano Babic <sbabic@denx.de>
5 years agospl: ymodem: Add support for loading full fitImages
Marek Vasut [Wed, 6 Mar 2019 21:04:31 +0000 (22:04 +0100)]
spl: ymodem: Add support for loading full fitImages

Add support for loading fully featured fitImages over YModem in SPL.
This is useful when various advanced features of full fitImages are
needed in SPL.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
5 years agofit: load all fragments from the extra configurations
Peter Ujfalusi [Wed, 6 Mar 2019 13:52:27 +0000 (15:52 +0200)]
fit: load all fragments from the extra configurations

Currently only the first fdt is loaded from the extra configuration of
FIT image.
If the configuration have multiple fdt, load them all as well.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
5 years agomisc: fs_loader: Replace label with DT phandle
Tien Fong Chee [Tue, 5 Mar 2019 15:29:38 +0000 (23:29 +0800)]
misc: fs_loader: Replace label with DT phandle

In previously label which will be expanded to the node's full path was
used, and now replacing label with most commonly used DT phandle. The
codes were changed accordingly to the use of DT phandle and supporting
multiple instances.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
5 years agoarm: fix hvc call
Ibai Erkiaga [Mon, 25 Feb 2019 10:11:45 +0000 (10:11 +0000)]
arm: fix hvc call

HVC call makes use of 6 mandatory arguments rather than 7 in the same way
as SMC calls. The 7th argument is optional (Client ID) for both HVC and
SMC but is implemented as 16-bit parameter and register R7 or W7. The aim
of this patch is just fix compilation error due to an invalid asm code in
the HVC call so that's why the 7th argument is removed.

The issue does not report any error in a normal build as hvc_call is not
used at all and is optimized by the compiler. Using -O0 triggers the
error so the patch is intended to fix issues on a ongoing effor to build
U-Boot with -O0.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com>
5 years agoSupport boot Android image without address on bootm command
Shawn Guo [Fri, 22 Feb 2019 08:28:06 +0000 (16:28 +0800)]
Support boot Android image without address on bootm command

It works perfectly fine to boot an Android boot.img with bootm command
followed by an explicit address argument that holds the image.  But if
we have boot.img downloaded into default 'loadaddr', and then boot it
using bootm command without the address argument, we will run into
problem, because U-Boot fails to find ramdisk and fdt (second area) in
boot.img.

The current Android image support assumes there is always an address
argument on bootm command.  However just like booting any other images,
'loadaddr' should be used when address argument is missing from bootm
command.  It patches boot_get_ramdisk() and boot_get_fdt() a bit to
support this quite common usage of bootm command for Android image.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 years agocmd: ximg.c: Add support for getting external data address and length
Tien Fong Chee [Tue, 12 Feb 2019 12:49:30 +0000 (20:49 +0800)]
cmd: ximg.c: Add support for getting external data address and length

This function supports getting both data address and length for
existing FIT subimage and FIT external data.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
5 years agoARMv8: Disable fwcall when PSCI is enabled
Ang, Chee Hong [Tue, 12 Feb 2019 08:27:03 +0000 (00:27 -0800)]
ARMv8: Disable fwcall when PSCI is enabled

When PSCI is enabled, we are expecting U-Boot which now act
as EL3 software will handle all the PSCI calls. We won't need
fwcall as no further HVC or SMC are needed.

Signed-off-by: Ang, Chee Hong <chee.hong.ang@intel.com>
5 years agoARMv8: Allow SiP service extensions on top of PSCI code
Chee Hong Ang [Tue, 12 Feb 2019 08:27:02 +0000 (00:27 -0800)]
ARMv8: Allow SiP service extensions on top of PSCI code

Allow PSCI layer to handle any SiP service functions added by
platform vendors. PSCI layer will look for SiP service function
in the SiP function table located in '._secure_svc_tbl_entries'
section if the SMC function identifier is not found in the PSCI
standard functions table. Use DECLARE_SECURE_SVC macro to declare
and add platform specific SiP service function.
This new section '._secure_svc_tbl_entries' is located next to
'._secure.text' section. Refer to arch/arm/cpu/armv8/u-boot.lds.

Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com>
5 years agotest: call hexdump tests via `ut lib`
Heinrich Schuchardt [Mon, 11 Feb 2019 17:29:24 +0000 (18:29 +0100)]
test: call hexdump tests via `ut lib`

The unit tests in test/lib/hexdump.c are not related to the device tree.
So they should be executed via `ut lib` and not via `ut dm`.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
5 years agomisc: fs_loader: Add support for initializing block device
Tien Fong Chee [Thu, 31 Jan 2019 11:34:13 +0000 (19:34 +0800)]
misc: fs_loader: Add support for initializing block device

Firmware loader would encounter problem if the block device is accessed
before initializing it. This patch would adding the support of probing
block device and initializing block before the block device is accessed by
firmware loader.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
5 years agocmd: add exception command
Heinrich Schuchardt [Wed, 26 Dec 2018 16:20:35 +0000 (17:20 +0100)]
cmd: add exception command

The 'exception' command allows to test exception handling.

This implementation supports ARM, x86, RISC-V and the following exceptions:
* 'breakpoint' - prefetch abort exception (ARM 32bit only)
* 'unaligned'  - data abort exception (ARM only)
* 'undefined'  - undefined instruction exception

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 years agobcm963158: add nand support
Philippe Reynes [Fri, 15 Mar 2019 14:14:47 +0000 (15:14 +0100)]
bcm963158: add nand support

Enable the nand support (driver and command)
in the configuration of the board bcm963158.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm963158: enable nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:46 +0000 (15:14 +0100)]
dt: bcm963158: enable nand controller

Enable the nand controller in the device tree
of the board bcm963158.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm63158: add nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:45 +0000 (15:14 +0100)]
dt: bcm63158: add nand controller

Add the nand controller in the bcm63158 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm968580xref: add nand support
Philippe Reynes [Fri, 15 Mar 2019 14:14:44 +0000 (15:14 +0100)]
bcm968580xref: add nand support

Enable the nand support (driver and command)
in the configuration of the board bcm968580xref.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm968580xref: enable nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:43 +0000 (15:14 +0100)]
dt: bcm968580xref: enable nand controller

Enable the nand controller in the device tree
of the board bcm968580xref.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm6858: add nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:42 +0000 (15:14 +0100)]
dt: bcm6858: add nand controller

Add the nand controller in the bcm6858 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agobcm968380gerg: add nand support
Philippe Reynes [Fri, 15 Mar 2019 14:14:41 +0000 (15:14 +0100)]
bcm968380gerg: add nand support

Enable the nand support (driver and command)
in the configuration of the board bcm96838gerg.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm968380gerg: enable nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:40 +0000 (15:14 +0100)]
dt: bcm968380gerg: enable nand controller

Enable the nand controller in the device tree
of the board bcm96838gerg.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodt: bcm6838: add nand controller
Philippe Reynes [Fri, 15 Mar 2019 14:14:39 +0000 (15:14 +0100)]
dt: bcm6838: add nand controller

Add the nand controller in the bcm6838 device tree.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodrivers: nand: brcmnand: add an option to read the write-protect from device tree
Philippe Reynes [Fri, 15 Mar 2019 14:14:38 +0000 (15:14 +0100)]
drivers: nand: brcmnand: add an option to read the write-protect from device tree

The option write-protect may only change on the kernel command line,
we add a property in the device tree to be more flexible.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodrivers: nand: brcmnand: add parameter parameter-page-big-endian
Philippe Reynes [Fri, 15 Mar 2019 14:14:37 +0000 (15:14 +0100)]
drivers: nand: brcmnand: add parameter parameter-page-big-endian

The parameter page isn't always in big endian, so we add
an option to choose the endiannes of the parameter page.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agodrivers: nand: brcmnand: add initial support
Philippe Reynes [Fri, 15 Mar 2019 14:14:36 +0000 (15:14 +0100)]
drivers: nand: brcmnand: add initial support

The driver brcmnand come from linux kernel 4.18.
Only SoC bcm6838 and bcm6858 are supported.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agocompat linux: import completion from linux 4.18
Philippe Reynes [Fri, 15 Mar 2019 14:14:35 +0000 (15:14 +0100)]
compat linux: import completion from linux 4.18

This patch port the file include/linux/completion.h
from linux 4.18 to u-boot. It define the structure
but all the function are stubbed.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoinclude: linux: io: define devm_ioremap on board with ioremap
Philippe Reynes [Fri, 15 Mar 2019 14:14:34 +0000 (15:14 +0100)]
include: linux: io: define devm_ioremap on board with ioremap

The macro devm_ioremap is only defined for configuration
that doesn't have ioremap. But this macro may also be
defined on configuration with ioremap.
This patch remove the condition for the macro devm_ioremap,
so it's always defined.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoarm: asm: io.h: define readX_relaxed and writeX_relaxed
Philippe Reynes [Fri, 15 Mar 2019 14:14:33 +0000 (15:14 +0100)]
arm: asm: io.h: define readX_relaxed and writeX_relaxed

This patch port the function readX_relaxed and
writeX_relaxed from kernel 4.18.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agomtd: nand: provide several helpers to do common NAND operations
Boris Brezillon [Fri, 15 Mar 2019 14:14:32 +0000 (15:14 +0100)]
mtd: nand: provide several helpers to do common NAND operations

Linux commit 97d90da8a88 ("mtd: nand: provide several helpers
to do common NAND operations")

This is part of the process of removing direct calls to ->cmdfunc()
outside of the core in order to introduce a better interface to execute
NAND operations.

Here we provide several helpers and make use of them to remove all
direct calls to ->cmdfunc(). This way, we can easily modify those
helpers to make use of the new ->exec_op() interface when available.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
[miquel.raynal@free-electrons.com: rebased and fixed some conflicts]
Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>
[Philippe Reynes: adapt code to u-boot and only keep new function]

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agomtd: nand: import nand_hw_control_init()
Marc Gonzalez [Fri, 15 Mar 2019 14:14:31 +0000 (15:14 +0100)]
mtd: nand: import nand_hw_control_init()

Linux commit d45bc58dd3b ("mtd: nand: import nand_hw_control_init()")

The code to initialize a struct nand_hw_control is duplicated across
several drivers. Factorize it using an inline function.

Signed-off-by: Marc Gonzalez <marc_gonzalez@sigmadesigns.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
[Philippe Reynes: adapt code to u-boot and only keep new function]

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agomtd: add get/set of_node/flash_node helpers
Brian Norris [Fri, 15 Mar 2019 14:14:30 +0000 (15:14 +0100)]
mtd: add get/set of_node/flash_node helpers

Linux commit 28b8b26b308 ("mtd: add get/set of_node/flash_node helpers")

We are going to begin using the mtd->dev.of_node field for MTD device
nodes, so let's add helpers for it. Also, we'll be making some
conversions on spi_nor (and nand_chip eventually) too, so get that ready
with their own helpers.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
[Philippe Reynes: only add function nand_set_flash_node and
nand_get_flash_node because others were already backported]

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
5 years agoMerge tag 'u-boot-atmel-2019.07-b' of git://git.denx.de/u-boot-atmel
Tom Rini [Mon, 22 Apr 2019 14:28:21 +0000 (10:28 -0400)]
Merge tag 'u-boot-atmel-2019.07-b' of git://git.denx.de/u-boot-atmel

Second set of u-boot-atmel features and fixes for 2019.07 cycle

5 years agoat91: corvus_defconfig: get rid of build warnings
Heiko Schocher [Mon, 15 Apr 2019 11:53:19 +0000 (13:53 +0200)]
at91: corvus_defconfig: get rid of build warnings

fix CONFIG_OF_EMBED and add CONFIG_DM_USB
build warnings.

Signed-off-by: Heiko Schocher <hs@denx.de>
5 years agoMerge branch 'master' of git://git.denx.de/u-boot-usb
Tom Rini [Sun, 21 Apr 2019 23:00:04 +0000 (19:00 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-usb

- Various fastboot, dwc2/stm32 updates

5 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Sun, 21 Apr 2019 22:59:30 +0000 (18:59 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

- Various stratix10, gen5 updates

5 years agousb: dwc2: fix gadget disconnect
Fabrice Gasnier [Wed, 17 Apr 2019 14:46:13 +0000 (16:46 +0200)]
usb: dwc2: fix gadget disconnect

This fixes a disconnect issue detected with fastboot command, when using
dwc2 driver.
- On u-boot side:
uboot>$ fastboot 0
- On USB host PC side, few seconds after
PC>$ fastboot reboot # Get stuck, uboot target never reboots

By enabling DEBUG_ISR logs, the bus suspend interrupt is seen before the
PC command has been issued. When the USB bus suspend occurs, there's a HACK
that disables the fastboot (composite driver). Here is the call stack
upon USB bus suspend:
- dwc2_handle_usb_suspend_intr()
  - dev->driver->disconnect()
    - composite_disconnect()
      - reset_config()
        - f->disable()
          - fastboot_disable()
            - usb_ep_disable(f_fb->out_ep);
            - usb_ep_disable(f_fb->in_ep);
            .. other disable calls.

When the resume interrupt happens, everything has been disabled, then
nothing happens. fastboot command gets stuck on HOST side.

Remove original HACK, that disconnects the composite driver upon
USB bus suspend. Implement disconnect detection instead:
- check GINTSTS OTG interrupt
- read GOTGINT register
- check GOTGINT, SesEndDet bit (e.g. session end)
This is inspired by what is implemented currently in Linux dwc2 driver.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
Reviewed-by: Marek Vasut <marex@denx.de>
5 years agousb: reload watchdog during ums command
Patrick Delaunay [Thu, 18 Apr 2019 15:18:39 +0000 (17:18 +0200)]
usb: reload watchdog during ums command

Reload the watchdog in the mass storage command ums
to avoid reboot during the usb waiting loop
when the host doesn't send any request.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agofastboot: add support for 'getvar platform'
Eugeniu Rosca [Tue, 9 Apr 2019 19:11:40 +0000 (21:11 +0200)]
fastboot: add support for 'getvar platform'

Our R-Car3 Android userspace relies on the output of 'fastboot
getvar platform' and U-Boot currently is not able to handle it:

host $> fastboot getvar platform
getvar:platform FAILED (remote: Variable not implemented)
finished. total time: 0.001s

We either have the option of adding 'fastboot.platform' variable
to the default/saved environment as a workaround or add proper
'fastboot getvar platform' support in U-Boot via this patch.
In the latter case, other platforms can benefit from it too.

Note that R-Car3 already exports 'platform' environment variable via
v2019.01 commit 00e4b57e9e71c3 ("ARM: rmobile: Set environment variable
containing CPU type").

Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
5 years agofastboot: Replace literal 32 with PART_NAME_LEN
Alex Kiernan [Tue, 9 Apr 2019 05:30:05 +0000 (05:30 +0000)]
fastboot: Replace literal 32 with PART_NAME_LEN

Where we have to compute partition names, rather than using a hardcoded
32 for the partition name length, replace with PART_NAME_LEN.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Reviewed-by: Eugeniu Rosca <rosca.eugeniu@gmail.com>
5 years agostm32mp1: add stusb1600 support for DK1 and DK2 board
Patrick Delaunay [Fri, 29 Mar 2019 14:42:24 +0000 (15:42 +0100)]
stm32mp1: add stusb1600 support for DK1 and DK2 board

The DK1 and DK2 boards use the USB Type-C controller STUSB1600.
This patch updates:
- the device tree to add the I2C node in the DT
- the board stm32mp1 to probe this I2C device and use this controller
  to check cable detection.
- the DWC2 driver to support a new dt property
  "u-boot,force-b-session-valid" which forces B session and
  device mode; it is a workaround because the VBUS sensing and
  ID detection isn't available with stusb1600.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agostm32mp1: migrate USBOTG device to driver model
Patrick Delaunay [Fri, 29 Mar 2019 14:42:23 +0000 (15:42 +0100)]
stm32mp1: migrate USBOTG device to driver model

Use the DWC2 device driver with DM_USB_GADGET support and
cleanup the USB support in STM32MP1 board.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agostm32mp1: remove CONFIG_USB_DWC2, HOST support for USBO
Patrick Delaunay [Fri, 29 Mar 2019 14:42:22 +0000 (15:42 +0100)]
stm32mp1: remove CONFIG_USB_DWC2, HOST support for USBO

Remove the HOST support for STM32MP1 USBO device = OTG DWC2.
The current DWC2 driver have no dynamic detection of device,
So it is dangerous to have start 3V3 when PC is
connected to the micro USB connector.

=> it is preferable to have only DEVICE support
   CONFIG_USB_GADGET_DWC2_OTG for OTG port

See DWC3 driver for clean dual role support...

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agousb: dwc2: add support for STM32MP1
Patrick Delaunay [Fri, 29 Mar 2019 14:42:21 +0000 (15:42 +0100)]
usb: dwc2: add support for STM32MP1

Add compatible "st,stm32mp1-hsotg" and associated driver data to manage
the usb33d-supply and the ST specific register for VBus sensing.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
# Conflicts:
# drivers/usb/gadget/dwc2_udc_otg.c
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2_udc_otg: Add tx_fifo_sz array support
Patrice Chotard [Fri, 29 Mar 2019 14:42:20 +0000 (15:42 +0100)]
usb: dwc2_udc_otg: Add tx_fifo_sz array support

All TX fifo size can be different, add tx_fifo_sz_array[]
into dwc2_plat_otg_data to be able to set them.

tx_fifo_sz_array[] is 17 Bytes long and can contains max 16
tx fifo size (synopsys IP supports max 16 IN endpoints).
First entry of tx_fifo_sz_array[] is the number of valid
fifo size the array contains.

In case of tx_fifo_sz_array[] doesn't contains the same
number of element than max hardware endpoint, display
a warning message.

Compatibility with board which doesn't use tx_fifo_sz_array[]
(Rockchip rk322x/rk3128/rv1108/rk3288/rk3036) is kept.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2_udc_otg: Read MAX_HW_ENDPOINT from HWCFG4 register
Patrick Delaunay [Fri, 29 Mar 2019 14:42:19 +0000 (15:42 +0100)]
usb: dwc2_udc_otg: Read MAX_HW_ENDPOINT from HWCFG4 register

Some DWC2 ip variant doesn't use 16 hardware endpoint as hardcoded
in the driver. Bits INEps [29:26] of HWCFG4 register allows to get
this information.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2: Add function for session B check
Patrick Delaunay [Fri, 29 Mar 2019 14:42:18 +0000 (15:42 +0100)]
usb: dwc2: Add function for session B check

Add a new function to check the session B validity, to be use to check
cable connection.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2: Add force-b-session-valid support
Patrick Delaunay [Fri, 29 Mar 2019 14:42:17 +0000 (15:42 +0100)]
usb: dwc2: Add force-b-session-valid support

Handle "force-b-session-valid" property from DT.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2: force reset assert before to probe the driver
Patrick Delaunay [Fri, 29 Mar 2019 14:42:16 +0000 (15:42 +0100)]
usb: dwc2: force reset assert before to probe the driver

Reset the hardware to be sure of the device state.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2: convert driver to DM_USB_GADGET
Patrick Delaunay [Fri, 29 Mar 2019 14:42:15 +0000 (15:42 +0100)]
usb: dwc2: convert driver to DM_USB_GADGET

Minimal conversion to driver model by using the uclass
UCLASS_USB_GADGET_GENERIC based on:
- reset uclass
- clock uclass
- generic uclass.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agousb: dwc2: remove unused variable regs_otg
Patrick Delaunay [Fri, 29 Mar 2019 14:42:14 +0000 (15:42 +0100)]
usb: dwc2: remove unused variable regs_otg

Remove the global regs_otg variable.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
5 years agophy: usbphyc: increase PLL wait timeout
Patrick Delaunay [Fri, 29 Mar 2019 14:42:13 +0000 (15:42 +0100)]
phy: usbphyc: increase PLL wait timeout

wait 200us to solve USB init issue on device mode
(ums and stm32prog commands)

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agophy: usbphyc: move vdda1v1 and vdda1v8 in phy_init
Patrick Delaunay [Fri, 29 Mar 2019 14:42:12 +0000 (15:42 +0100)]
phy: usbphyc: move vdda1v1 and vdda1v8 in phy_init

vdda1v1 and vdda1v8 are used by the PLL.
Both need to be enabled before starting the PLL.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agophy: usbphyc: Binding update of vdda supply
Patrick Delaunay [Fri, 29 Mar 2019 14:42:11 +0000 (15:42 +0100)]
phy: usbphyc: Binding update of vdda supply

Move supply vdda1v1 and vdda1v8 in usbphyc node and
no more in port

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agophy: usbphyc: update xlate with DT binding
Patrick Delaunay [Fri, 29 Mar 2019 14:42:10 +0000 (15:42 +0100)]
phy: usbphyc: update xlate with DT binding

Parameter added for port 1, for example:

&usbh_ehci {
phys = <&usbphyc_port0>;
phy-names = "usb";
vbus-supply = <&vbus_sw>;
status = "okay";
};

&usbotg_hs {
pinctrl-names = "default";
pinctrl-0 = <&usbotg_hs_pins_a>;
phys = <&usbphyc_port1 0>;
phy-names = "usb2-phy";
status = "okay";
};

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
5 years agophy: usbphyc: remove unused variable index
Patrick Delaunay [Fri, 29 Mar 2019 14:42:09 +0000 (15:42 +0100)]
phy: usbphyc: remove unused variable index

Remove unused field index in struct stm32_usbphyc_phy.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>