oweals/u-boot.git
6 years agoMerge branch 'master' of git://git.denx.de/u-boot-net
Tom Rini [Thu, 11 Oct 2018 19:28:32 +0000 (15:28 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-net

6 years agodriver: net: fsl-mc: Add support of multiple phys for dpmac
Pankaj Bansal [Wed, 10 Oct 2018 08:38:34 +0000 (14:08 +0530)]
driver: net: fsl-mc: Add support of multiple phys for dpmac

Till now we have had cases where we had one phy device per dpmac.
Now, with the upcoming products (LX2160AQDS), we have cases, where there
are sometimes two phy devices for one dpmac. One phy for TX lanes and
one phy for RX lanes. to handle such cases, add the support for multiple
phys in ethernet driver. The ethernet link is up if all the phy devices
connected to one dpmac report link up. also the link capabilities are
limited by the weakest phy device.

i.e. say if there are two phys for one dpmac. one operates at 10G without
autoneg and other operate at 1G with autoneg. Then the ethernet interface
will operate at 1G without autoneg.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agodriver: net: fsl-mc: initialize dpmac irrespective of phy
Pankaj Bansal [Wed, 10 Oct 2018 08:38:33 +0000 (14:08 +0530)]
driver: net: fsl-mc: initialize dpmac irrespective of phy

The dpmac initalization should not depend on phy.
As the phy is not necessary to be present for dpmac to function.
Therefore, remove dpmac initialization dependency from phy.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agodriver: net: fsl-mc: Modify the dpmac link detection method
Pankaj Bansal [Wed, 10 Oct 2018 08:38:32 +0000 (14:08 +0530)]
driver: net: fsl-mc: Modify the dpmac link detection method

when there is no phy present for a dpmac, a dummy phy device is created.
when we move to multiple phy method, we need to create as many dummy phy
devices.

Change this method so that we don't need to create dummy phy devices.
We always report linkup if no phy is present.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agodriver: net: fsl-mc: fix error handing in init_phy
Pankaj Bansal [Wed, 10 Oct 2018 08:38:31 +0000 (14:08 +0530)]
driver: net: fsl-mc: fix error handing in init_phy

if an error occurs during init_phy, we should free the phydev structure
which has been allocated by phy_connect.

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agodriver: net: fsl-mc: remove unused strcture elements
Pankaj Bansal [Wed, 10 Oct 2018 08:38:30 +0000 (14:08 +0530)]
driver: net: fsl-mc: remove unused strcture elements

The phydev structure is present in both ldpaa_eth_priv and
wriop_dpmac_info. the phydev in wriop_dpmac_info is not being used

As the phydev is created based on phy_addr and bus members of
wriop_dpmac_info, it is appropriate to keep phydev in wriop_dpmac_info.

Also phy_regs is not being used, therefore remove it

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoMerge tag 'dm-9oct18' of git://git.denx.de/u-boot-dm
Tom Rini [Wed, 10 Oct 2018 17:35:17 +0000 (13:35 -0400)]
Merge tag 'dm-9oct18' of git://git.denx.de/u-boot-dm

Test improvements to tidy up output and drop duplicate tests
Sandbox SPL/TPL support
Various dm-related improvements

6 years agoMerge branch 'master' of git://git.denx.de/u-boot-sh
Tom Rini [Wed, 10 Oct 2018 17:35:14 +0000 (13:35 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-sh

6 years agoarm: remove duplicated prototypes in u-boot.arm.h
Patrick Delaunay [Fri, 5 Oct 2018 09:33:53 +0000 (11:33 +0200)]
arm: remove duplicated prototypes in u-boot.arm.h

Remove the function prototypes duplicated between u-boot.arm.h
and init.h/common.h

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agoarm: remove prototype for get_timer_masked
Patrick Delaunay [Fri, 5 Oct 2018 09:33:52 +0000 (11:33 +0200)]
arm: remove prototype for get_timer_masked

The interruption support had be removed for ARM architecture and
the function get_timer_masked() is no more used except in some
the timer.c files.

This patch clean each timer.c which implement this function and
remove the associated prototype in u-boot-arm.h

For timer.c, I don't verify if the weak version of get_timer
(in lib/time.c) can be used

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agoarm: remove prototype for udelay_masked
Patrick Delaunay [Fri, 5 Oct 2018 09:33:51 +0000 (11:33 +0200)]
arm: remove prototype for udelay_masked

The interruption support had be removed for ARM architecture and
the function udelay_masked() is no more used except in some timer.c
files  and have the same content than udelay() or __udelay().

This patch update each timer.c implementing this function and
remove the associated prototype in u-boot-arm.h.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agoarm: remove prototype for reset_timer_masked
Patrick Delaunay [Fri, 5 Oct 2018 09:33:50 +0000 (11:33 +0200)]
arm: remove prototype for reset_timer_masked

Remove prototype for function only used in one file

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agoarm: remove prototype for arch_interrupt_init
Patrick Delaunay [Fri, 5 Oct 2018 09:33:49 +0000 (11:33 +0200)]
arm: remove prototype for arch_interrupt_init

Remove prototype for no more existing function

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
6 years agobootm: Add board specific OS preboot hook
Marek Vasut [Thu, 4 Oct 2018 19:16:31 +0000 (21:16 +0200)]
bootm: Add board specific OS preboot hook

Add board-specific hook which is executed before the code hands over
control to the OS. This lets the board perform some last-minute clean
ups.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
6 years agoarm: K3: am654: Add support for getting boot mode
Andrew F. Davis [Wed, 3 Oct 2018 15:03:23 +0000 (10:03 -0500)]
arm: K3: am654: Add support for getting boot mode

Read the boot mode register to find the boot mode. Only use eMMC boot0
mode when the mode is eMMC boot (called BOOT_DEVICE_MMC1 currently due
to current conflating of boot mode and boot device), and not iff the
boot device is MMC port 0.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agoarm: K3: am654: Choose MMC boot device based on boot port
Andrew F. Davis [Wed, 3 Oct 2018 15:03:22 +0000 (10:03 -0500)]
arm: K3: am654: Choose MMC boot device based on boot port

For most devices the boot mode maps directly to the boot
device. For MMC this is not the case as we have two MMC
boot modes and two MMC boot devices (ports). Check the
boot port to determine which MMC device was our boot
device. Make this change for both primary and secondary
boot modes.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
6 years agogpio: da8xx: Push generic defines of gpio.h out of mach-davinci
Keerthy [Wed, 3 Oct 2018 12:25:14 +0000 (17:55 +0530)]
gpio: da8xx: Push generic defines of gpio.h out of mach-davinci

Push generic defines of gpio.h out of mach-davinci to drivers/gpio
now that non-davinci architectures are beginning to use this IP.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
[trini: Fix calimain build]
Signed-off-by: Tom Rini <trini@konsulko.com>
6 years agogpio: da8xx: Add k2g compatible
Keerthy [Wed, 3 Oct 2018 12:25:13 +0000 (17:55 +0530)]
gpio: da8xx: Add k2g compatible

Add k2g compatible so that k3 SoCs can be supported

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 years agoboard: ks2: move uinitrd fixup logic inside ft_board_setup_ex
Nicholas Faustini [Wed, 3 Oct 2018 10:58:49 +0000 (12:58 +0200)]
board: ks2: move uinitrd fixup logic inside ft_board_setup_ex

The uinitrd fixup logic should be executed after the FDT /chosen
node has been properly populated by fdt_initrd()

Signed-off-by: Nicholas Faustini <nicholas.faustini@azcomtech.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 years agofdt: add call to ft_board_setup_ex() for ks2 boards
Nicholas Faustini [Wed, 3 Oct 2018 10:58:48 +0000 (12:58 +0200)]
fdt: add call to ft_board_setup_ex() for ks2 boards

When updating the board FDT, some of the operations
are performed by ft_board_setup_ex() and should be
executed also by the fdt command.

Signed-off-by: Nicholas Faustini <nicholas.faustini@azcomtech.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
6 years agoARM: meson: Add Khadas VIM2 board support
Loic Devulder [Wed, 3 Oct 2018 10:02:07 +0000 (12:02 +0200)]
ARM: meson: Add Khadas VIM2 board support

This adds platform code for the Khadas VIM2 board based on a
Meson GXM (S912) SoC with the Meson GXM configuration.

This initial submission supports UART, MMC/SDCard and Ethernet.
USB is partially supported.

All the code is from Neil Armstrong! I just rebased the code, do
some cleanup and tested on my board.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Loic Devulder <ldevulder@suse.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoARM: meson: Add Khadas VIM2 board DT
Loic Devulder [Wed, 3 Oct 2018 10:02:06 +0000 (12:02 +0200)]
ARM: meson: Add Khadas VIM2 board DT

This adds Device Tree for the Khadas VIM2 board.

The meson-gxm-khadas-vim2.dts is synchronized from Linux 4.18.10.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Loic Devulder <ldevulder@suse.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
6 years agoARM: dts: stm32mp1: Add usbotg_hs regulator for stm32mp157c-ev1
Patrice Chotard [Wed, 3 Oct 2018 07:38:38 +0000 (09:38 +0200)]
ARM: dts: stm32mp1: Add usbotg_hs regulator for stm32mp157c-ev1

Add usbotg_hs regulator to allow to use the USB mass-storage
feature on OTG usb port.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
6 years agodriver: net: fsl-mc: modify the label name
Pankaj Bansal [Wed, 10 Oct 2018 08:38:29 +0000 (14:08 +0530)]
driver: net: fsl-mc: modify the label name

The goto label name is misspelled it should be DPMAC not DPAMC

Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: Consolidate UDP header functions
Duncan Hare [Sun, 24 Jun 2018 22:40:41 +0000 (15:40 -0700)]
net: Consolidate UDP header functions

Make it possible to add TCP versions of the same, while reusing
IP portions. This patch should not change any behavior.

Signed-off-by: Duncan Hare <DH@Synoia.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: Don't overwrite waiting packets with asynchronous replies
Joe Hershberger [Wed, 26 Sep 2018 21:49:02 +0000 (16:49 -0500)]
net: Don't overwrite waiting packets with asynchronous replies

Peter originally sent a fix, but it breaks a number of other things.
This addresses the original reported issue in a different way.

That report was:

> U-Boot has 1 common buffer to send Ethernet frames, pointed to by
> net_tx_packet.  When sending to an IP address without knowing the MAC
> address, U-Boot makes an ARP request (using the arp_tx_packet buffer)
> to find out the MAC address of the IP addressr. When a matching ARP
> reply is received, U-Boot continues sending the frame stored in the
> net_tx_packet buffer.
>
> However, in the mean time, if U-Boot needs to send out any network
> packets (e.g. replying ping packets or ARP requests for its own IP
> address etc.), it will use the net_tx_packet buffer to prepare the
> new packet. Thus this buffer is no longer the original packet meant
> to be transmitted after the ARP reply. The original packet will be
> lost.

This instead uses the ARP tx buffer to send async replies in the case
where we are actively waiting for an ARP reply.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Tran Tien Dat <peter.trantiendat@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
6 years agotest: eth: Add a test for the target being pinged
Joe Hershberger [Wed, 26 Sep 2018 21:49:01 +0000 (16:49 -0500)]
test: eth: Add a test for the target being pinged

The target will respond to pings while doing other network handling.
Make sure that the response happens and is correct.

This currently corrupts the ongoing operation of the device if it
happens to be awaiting an ARP reply of its own to whatever serverip it
is attempting to communicate with. In the test, add an expectation that
the user operation (ping, in this case) will fail. A later patch will
address this problem.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agotest: eth: Add a test for ARP requests
Joe Hershberger [Wed, 26 Sep 2018 21:49:00 +0000 (16:49 -0500)]
test: eth: Add a test for ARP requests

This tests that ARP requests made to this target's IP address are
responded-to by the target when it is doing other networking operations.

This currently corrupts the ongoing operation of the device if it
happens to be awaiting an ARP reply of its own to whatever serverip it
is attempting to communicate with. In the test, add an expectation that
the user operation (ping, in this case) will fail. A later patch will
address this problem.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Add a priv ptr for tests to use
Joe Hershberger [Wed, 26 Sep 2018 21:48:59 +0000 (16:48 -0500)]
net: sandbox: Add a priv ptr for tests to use

Tests need to be able to pass their "unit test state" to the handlers
where asserts are evaluated. Add a function that allows the tests to set
this private data on the sandbox eth device.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: Add an accessor to know if waiting for ARP
Joe Hershberger [Wed, 26 Sep 2018 21:48:58 +0000 (16:48 -0500)]
net: Add an accessor to know if waiting for ARP

This single-sources the state of the ARP.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Allow fake eth to handle more than 1 packet response
Joe Hershberger [Wed, 26 Sep 2018 21:48:57 +0000 (16:48 -0500)]
net: sandbox: Allow fake eth to handle more than 1 packet response

Use up to the max allocated receive buffers so as to be able to test
more complex situations.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Share the priv structure with tests
Joe Hershberger [Wed, 26 Sep 2018 21:48:56 +0000 (16:48 -0500)]
net: sandbox: Share the priv structure with tests

If tests want to implement tx handlers, they will likely need access to
the details in the priv structure.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Make the fake eth driver response configurable
Joe Hershberger [Wed, 26 Sep 2018 21:48:55 +0000 (16:48 -0500)]
net: sandbox: Make the fake eth driver response configurable

Make the send handler registerable so tests can check for different
things.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Refactor sandbox send function
Joe Hershberger [Wed, 26 Sep 2018 21:48:54 +0000 (16:48 -0500)]
net: sandbox: Refactor sandbox send function

Make the behavior of the send function reusable.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agonet: sandbox: Move disabled flag into priv struct
Joe Hershberger [Wed, 26 Sep 2018 21:48:53 +0000 (16:48 -0500)]
net: sandbox: Move disabled flag into priv struct

Store the per-device data with the device.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agophy: Add 25G_AUI, XLAUI, CAUI2, CAUI4 related macros
Priyanka Jain [Mon, 27 Aug 2018 09:45:19 +0000 (15:15 +0530)]
phy: Add 25G_AUI, XLAUI, CAUI2, CAUI4 related macros

NXP SoCs like LX2160A can support new ethernet modes
which are 25G_AUI(25G), XLAUI(40G), CAUI2(50G)
and CAUI4(100G)
Add corresponding macros definitions in phy_interface.h

Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: phy: ti: Add binding for the CLK_OUT pin muxing
Janine Hagemann [Tue, 28 Aug 2018 06:25:39 +0000 (08:25 +0200)]
net: phy: ti: Add binding for the CLK_OUT pin muxing

The DP83867 has a muxing option for the CLK_OUT pin. It is possible
to set CLK_OUT for different channels.
Create a binding to select a specific clock for CLK_OUT pin.

Based on commit 9708fb630d19 ("net: phy: dp83867: Add binding for
the CLK_OUT pin muxing option") of mainline linux kernel.

Signed-off-by: Janine Hagemann <j.hagemann@phytec.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: phy: ti: Recover from "port mirroring" N/A MODE4
Janine Hagemann [Tue, 28 Aug 2018 06:25:38 +0000 (08:25 +0200)]
net: phy: ti: Recover from "port mirroring" N/A MODE4

The DP83867 when not properly bootstrapped - especially with LED_0 pin -
can enter N/A MODE4 for "port mirroring" feature.

To provide normal operation of the PHY, one needs not only to explicitly
disable the port mirroring feature, but as well stop some IC internal
testing (which disables RGMII communication).

To do that the STRAP_STS1 (0x006E) register must be read and RESERVED bit
11 examined. When it is set, the another RESERVED bit (11) at PHYCR
(0x0010) register must be clear to disable testing mode and enable RGMII
communication.

Thorough explanation of the problem can be found at following e2e thread:
"DP83867IR: Problem with RESERVED bits in PHY Control Register (PHYCR) -
Linux driver"

https://e2e.ti.com/support/interface/ethernet/f/903/p/571313/2096954#2096954

Based on commit ac6e058b75be ("net: phy: dp83867: Recover from "port mirroring"
N/A MODE4") of mainline linux kernel.

Signed-off-by: Janine Hagemann <j.hagemann@phytec.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Lukasz Majewski <lukma@denx.de>
6 years agonet: phy: ti: Add lane swapping support in the DP83867 TI's PHY driver
Janine Hagemann [Tue, 28 Aug 2018 06:25:37 +0000 (08:25 +0200)]
net: phy: ti: Add lane swapping support in the DP83867 TI's PHY driver

This patch adds support for enabling or disabling the lane swapping
(called "port mirroring" in PHY's CFG4 register) feature of the DP83867
TI's PHY device.

One use case is when bootstrap configuration enables this feature (because
of e.g. LED_0 wrong wiring) so then one needs to disable it in software
(at u-boot/Linux).

Based on commit fc6d39c39581 ("net: phy: dp83867: Add lane swapping
support in the DP83867 TI's PHY driver") of mainline linux kernel.

Signed-off-by: Janine Hagemann <j.hagemann@phytec.de>
Acked-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agolinux/if_ether.h: Add VLAN related macros
Bin Meng [Tue, 31 Jul 2018 09:55:23 +0000 (02:55 -0700)]
linux/if_ether.h: Add VLAN related macros

There are VLAN related macros defined in include/linux/if_vlan.h
in Linux kernel, as well as some kernel useful structures and inline
functions. Instead of a complete import from kernel, let's add these
VLAN macros to U-Boot's include/linux/if_ether.h.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet.h: Include linux/if_ether.h to avoid duplication
Bin Meng [Tue, 31 Jul 2018 09:55:22 +0000 (02:55 -0700)]
net.h: Include linux/if_ether.h to avoid duplication

There are plenty of existing drivers that have macros like ETH_ALEN
defined in their own source files. Now that we imported the kernel's
if_ether.h to U-Boot we can reduce some duplication.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agolinux/if_ether.h: Initial import from Linux kernel v4.17
Bin Meng [Tue, 31 Jul 2018 09:55:21 +0000 (02:55 -0700)]
linux/if_ether.h: Initial import from Linux kernel v4.17

This imports include/uapi/linux/if_ether.h from Linux kernel v4.17.
It can be very helpful When porting Linux ethernet driver to U-Boot.

Note it is not exactly the same as the kernel one, as checkpatch
issues are fixed.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agonet: pch_gbe: Make probe/remove static
Bin Meng [Sun, 29 Jul 2018 07:11:22 +0000 (00:11 -0700)]
net: pch_gbe: Make probe/remove static

These two routines are internal to pch_gbe driver.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agolinux/compat.h: Add netdev_### log macros
Bin Meng [Thu, 26 Jul 2018 10:15:58 +0000 (03:15 -0700)]
linux/compat.h: Add netdev_### log macros

Currently there are two ethernet drivers (mvneta.c and mvpp2.c) that
has netdev_### (eg: netdev_dbg) log macros defined in its own driver
file. This adds these log macros in a common place linux/compat.h.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agolinux/mdio.h: Sync with Linux kernel v4.17
Bin Meng [Thu, 26 Jul 2018 09:39:40 +0000 (02:39 -0700)]
linux/mdio.h: Sync with Linux kernel v4.17

This syncs U-Boot's include/linux/mdio.h with Linux kernel v4.17
include/uapi/linux/mdio.h.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agolinux/mii.h: Sync with Linux kernel v4.17
Bin Meng [Thu, 26 Jul 2018 09:39:39 +0000 (02:39 -0700)]
linux/mii.h: Sync with Linux kernel v4.17

This syncs U-Boot's include/linux/mii.h with Linux kernel v4.17
include/uapi/linux/mii.h.

While we are here, this also fixes some style issues.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
6 years agoARM: dts: rmobile: Reinstate missing CPLD on ULCB
Marek Vasut [Tue, 9 Oct 2018 11:13:13 +0000 (13:13 +0200)]
ARM: dts: rmobile: Reinstate missing CPLD on ULCB

The CPLD is used to reset the ULCB and it was removed
during DT sync with Linux 4.17. Reinstate it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6 years agommc: tmio: Limit DMA to 32bit on R-Car Gen3
Marek Vasut [Tue, 2 Oct 2018 22:46:24 +0000 (00:46 +0200)]
mmc: tmio: Limit DMA to 32bit on R-Car Gen3

The internal DMAC on Gen3 is 32bit only, limit the DMA address
range to 32bit.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agommc: tmio: Pass full address to tmio_sd_addr_is_dmaable()
Marek Vasut [Tue, 2 Oct 2018 22:44:37 +0000 (00:44 +0200)]
mmc: tmio: Pass full address to tmio_sd_addr_is_dmaable()

Pass the entire source data pointer to tmio_sd_addr_is_dmaable()
so we don't have to apply casts throughout the code.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agodtoc: Fix the value of SetInt()
Simon Glass [Mon, 1 Oct 2018 18:22:49 +0000 (12:22 -0600)]
dtoc: Fix the value of SetInt()

This does not set the correct value at present. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agovideo: Tidy up a few comments in video.o
Simon Glass [Mon, 1 Oct 2018 18:22:48 +0000 (12:22 -0600)]
video: Tidy up a few comments in video.o

Add a little more information to one comment and update the guard comment
to be more accurate.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
6 years agovideo: at91: Adjust vidconsole_position_cursor() to use char pos
Simon Glass [Mon, 1 Oct 2018 18:22:47 +0000 (12:22 -0600)]
video: at91: Adjust vidconsole_position_cursor() to use char pos

At present this function uses pixels but it seems more useful for it to
position in terms of characters on the screen. This also matches the
comment to the function. Update this.

Unfortunately there is one user of this function (at91). Have a crack at
fixing this, since I cannot test it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
6 years agosysreset: Add a way to find the last reset
Simon Glass [Mon, 1 Oct 2018 18:22:46 +0000 (12:22 -0600)]
sysreset: Add a way to find the last reset

We have a method to return the last reset as a string for humans, but not
a method that allows it to be used programmatically. Add a new method that
returns the last reset as an enum.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosysreset: Tidy up a few comments and logging
Simon Glass [Mon, 1 Oct 2018 18:22:45 +0000 (12:22 -0600)]
sysreset: Tidy up a few comments and logging

Some comments are incorrect or missing pieces. Fix these and use logging
to print the error.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agopci: Add a little more debugging to pci_rom
Simon Glass [Mon, 1 Oct 2018 18:22:44 +0000 (12:22 -0600)]
pci: Add a little more debugging to pci_rom

Add some logging on failure.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agofdt: Allow C++ comments in link scripts and DT files
Simon Glass [Mon, 1 Oct 2018 18:22:43 +0000 (12:22 -0600)]
fdt: Allow C++ comments in link scripts and DT files

At present // in a device-tree file or link script causes a warning. But
this is used in the standard license header. Update the compiler flags to
use C99, which permits this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoctags: Minor changes to fix ctags output
Simon Glass [Mon, 1 Oct 2018 18:22:42 +0000 (12:22 -0600)]
ctags: Minor changes to fix ctags output

At present ctags emits lines with unmatched quotes which means that the
output file is invalid. This is with exuberant-ctags version 5.9~svn201103
but I also see it with plain ctags. I am not sure that it is a bug though.

Make a few minor changes in the source code to fix this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agopanel: Expand the backlight support
Simon Glass [Mon, 1 Oct 2018 18:22:41 +0000 (12:22 -0600)]
panel: Expand the backlight support

At present the panel can be turned on but not off, and the brightness
cannot be controlled at run-time. Add a new API function to both the panel
and backlight uclasses to handle this. Enhance the PWM backlight driver
to deal with custom levels properly and allow the backlight to be turned
on and off.

Update the test to cover thes new features.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotest: panel: Add a test for the panel uclass
Simon Glass [Mon, 1 Oct 2018 18:22:40 +0000 (12:22 -0600)]
test: panel: Add a test for the panel uclass

At present this uclass has no tests. Add a simple one which checks the PWM
configuration, regulator and GPIO.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agocros_ec: Add support for v3 messages on LPC
Simon Glass [Mon, 1 Oct 2018 18:22:39 +0000 (12:22 -0600)]
cros_ec: Add support for v3 messages on LPC

At present version 3 messages are only supported on SPI. Add support for
using LPC as well, as used on samus.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agocros_ec: Update cros_ec_read_hash() to specify the image
Simon Glass [Mon, 1 Oct 2018 18:22:38 +0000 (12:22 -0600)]
cros_ec: Update cros_ec_read_hash() to specify the image

Allow selection of which EC image to hash.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agox86: Update mtrr functions to allow leaving cache alone
Simon Glass [Mon, 1 Oct 2018 18:22:37 +0000 (12:22 -0600)]
x86: Update mtrr functions to allow leaving cache alone

At present the mtrr functions disable the cache before making changes and
enable it again afterwards. This is fine in U-Boot, but does not work if
running in CAR (such as we are in SPL).

Update the functions so that the caller can request that caches be left
alone.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
6 years agocros: Update ec_commands to latest version
Simon Glass [Mon, 1 Oct 2018 18:22:36 +0000 (12:22 -0600)]
cros: Update ec_commands to latest version

This file has changed quite a bit in the last 5 years as the capabilities
of the ECs have grown. Sync it up with the copy in coreboot commit
b9141f2215.

The only change is the addition of EC_VBNV_BLOCK_SIZE_V2. This is needed
because U-Boot uses the new v2 vboot API and this is not currently fully
supported by Chromium OS firmware.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoRename GPT_HEADER_SIGNATURE to avoid conflict
Simon Glass [Mon, 1 Oct 2018 18:22:35 +0000 (12:22 -0600)]
Rename GPT_HEADER_SIGNATURE to avoid conflict

The current name conflicts with the Chrome OS verified boot library, which
prevents it being built. That library uses a string whereas U-Boot uses a
64-bit hex value. Rename this in U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoAdd a header file for strings
Simon Glass [Mon, 1 Oct 2018 18:22:34 +0000 (12:22 -0600)]
Add a header file for strings

Add a string.h header for libraries that expect this to be available, now
that U-Boot's version has moved to include/linux.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agolog: Add comments to the rest of the log categories
Simon Glass [Mon, 1 Oct 2018 18:22:32 +0000 (12:22 -0600)]
log: Add comments to the rest of the log categories

At present some of the log categories are missing comments. Add them.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agobinman: Move to three-digit test-file numbers
Simon Glass [Mon, 1 Oct 2018 18:22:30 +0000 (12:22 -0600)]
binman: Move to three-digit test-file numbers

We now have 99 tests. Before adding any more, rename everything to three
digits. This helps to preserve the ordering of tests and makes it easier
to find things.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotpm: Add a few new commands for v1
Simon Glass [Mon, 1 Oct 2018 18:22:29 +0000 (12:22 -0600)]
tpm: Add a few new commands for v1

These are needed for the 2018 version of Chromium OS vboot. Add an
implementation for TPM v1, with v2 to come later.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotpm: Tidy up logging in tpm-common.c
Simon Glass [Mon, 1 Oct 2018 18:22:28 +0000 (12:22 -0600)]
tpm: Tidy up logging in tpm-common.c

At present this file uses logging but it should use the new macros. Update
it and add a log message for an error.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotpm: Use livetree and allow children
Simon Glass [Mon, 1 Oct 2018 18:22:27 +0000 (12:22 -0600)]
tpm: Use livetree and allow children

Adjust the TPM drivers to use livetree (only one does not). Also,
sometimes TPMs can have child devices if they provide a service to the
system (such as storing secure data), so permit that.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agovideo: Adjust video_clear() to return an error
Simon Glass [Mon, 1 Oct 2018 18:22:26 +0000 (12:22 -0600)]
video: Adjust video_clear() to return an error

All driver-model operation should return an error code. Adjust this
function to do so also.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
6 years agofdt: Remove fdtdec_decode_region() function
Simon Glass [Mon, 1 Oct 2018 18:22:25 +0000 (12:22 -0600)]
fdt: Remove fdtdec_decode_region() function

This function is not used in U-Boot now. Remove it along with its 'memory'
version.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: spi: Add logging of some return values
Simon Glass [Mon, 1 Oct 2018 18:22:24 +0000 (12:22 -0600)]
dm: spi: Add logging of some return values

When SPI flash operations fail it is helpful to be able to see the error
codes and where they are generated. Add logging to capture this
information for read operations.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agocros: Adjust board_get_cros_ec_dev() to return a udevice
Simon Glass [Mon, 1 Oct 2018 18:22:23 +0000 (12:22 -0600)]
cros: Adjust board_get_cros_ec_dev() to return a udevice

Rather than returning what is effectively an internal data structure,
return the cros EC device itself.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agocros: Update cros_ec code to use struct udevice
Simon Glass [Mon, 1 Oct 2018 18:22:22 +0000 (12:22 -0600)]
cros: Update cros_ec code to use struct udevice

At present we pass around a private pointer to specify the cros_ec device.
With driver model it makes more sense to pass the device. Update the code
to do this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agofdt: Allow libfdt in TPL
Simon Glass [Mon, 1 Oct 2018 18:22:21 +0000 (12:22 -0600)]
fdt: Allow libfdt in TPL

In some cases (e.g. sandbox with verified boot) it is useful to support
libfdt in TPL. Update the Kconfig to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoserial: Allow serial to be absent in TPL
Simon Glass [Mon, 1 Oct 2018 18:22:20 +0000 (12:22 -0600)]
serial: Allow serial to be absent in TPL

At present this option applies to SPL, but it should be available in TPL
also, and separately. Change to using CONFIG_IS_ENABLED(), add a new
Kconfig option and fix up hang().

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agotpm: Add support for SPL and TPL
Simon Glass [Mon, 1 Oct 2018 18:22:19 +0000 (12:22 -0600)]
tpm: Add support for SPL and TPL

At present the tpm can only be used in U-Boot proper. Updated it to work
in SPL and TPL also.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agofdt: Allow indicating a node is for U-Boot proper only
Simon Glass [Mon, 1 Oct 2018 18:22:18 +0000 (12:22 -0600)]
fdt: Allow indicating a node is for U-Boot proper only

At present it is not possible to specify that a node should be used before
relocation (in U-Boot proper) without it also ending up in SPL and TPL
device trees. Add a new "u-boot,dm-pre-proper" boolean property for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodoc: Update docs for device tree in SPL, TPL
Simon Glass [Mon, 1 Oct 2018 18:22:17 +0000 (12:22 -0600)]
doc: Update docs for device tree in SPL, TPL

Make a few small updates to indicate that device tree can be used in SPL
and TPL.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agofdt: Document the fact that dtc is now built
Simon Glass [Mon, 1 Oct 2018 18:22:16 +0000 (12:22 -0600)]
fdt: Document the fact that dtc is now built

This documentation is out of date now that U-Boot builds dtc
automatically. Update it.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agortc: Allow use of RTC in SPL and TPL
Simon Glass [Mon, 1 Oct 2018 18:22:15 +0000 (12:22 -0600)]
rtc: Allow use of RTC in SPL and TPL

Add Kconfig options so that the RTC can be used in SPL and TPL. This is
helpful for accessing the contents of CMOS RAM, for example.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoKconfig: Convert CONFIG_RTC_MC146818 to Kconfig
Simon Glass [Mon, 1 Oct 2018 18:22:14 +0000 (12:22 -0600)]
Kconfig: Convert CONFIG_RTC_MC146818 to Kconfig

Move this option to Kconfig and tidy up the two boards which use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoblk: Support block drivers in TPL
Simon Glass [Mon, 1 Oct 2018 18:22:13 +0000 (12:22 -0600)]
blk: Support block drivers in TPL

At present it is not possible to enable/disable block drivers in TPL. This
is needed to provide sandbox support. Add a Kconfig option and adjust the
Makefile.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoMakefile: Add a warning if SPL/TPL cannot be built
Simon Glass [Mon, 1 Oct 2018 18:22:11 +0000 (12:22 -0600)]
Makefile: Add a warning if SPL/TPL cannot be built

At present the build fails in strange ways if CONFIG_SPL is defined by
CONFIG_SUPPORT_SPL is not. Add a warning for this case as it can be very
confusing to debug.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agospl: input: Allow input in SPL and TPL
Simon Glass [Mon, 1 Oct 2018 18:22:10 +0000 (12:22 -0600)]
spl: input: Allow input in SPL and TPL

In some cases it is necessary to read the keyboard in early phases of
U-Boot. Update the config to allow this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosf: Avoid allocating memory on every read operation
Simon Glass [Mon, 1 Oct 2018 18:22:09 +0000 (12:22 -0600)]
sf: Avoid allocating memory on every read operation

At present spi_flash_cmd_read_ops() allocates and frees a few bytes of
memory every time it is called. It is faster to use the stack for this
and this is now supported by the minimum GCC version required by U-Boot.

Remove the allocation and use a variable-sized array instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Update ofnode to read binman-style flash entry
Simon Glass [Mon, 1 Oct 2018 18:22:08 +0000 (12:22 -0600)]
dm: core: Update ofnode to read binman-style flash entry

At present ofnode_read_fmap_entry() reads a flash map entry in a format
which is not supported by binman. To allow use to use binman-format
descriptions, update this function.

Also add a simple test.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Add a function to find the first inactive child
Simon Glass [Mon, 1 Oct 2018 18:22:07 +0000 (12:22 -0600)]
dm: core: Add a function to find the first inactive child

Some devices have children and want to press an existing inactive child
into service when needed. Add a function to help with this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Update some functions to use const
Simon Glass [Mon, 1 Oct 2018 18:22:06 +0000 (12:22 -0600)]
dm: core: Update some functions to use const

Quite a few functions do not actually modify the device that is passed in.
Update the function signatures to reflect that.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: core: Alloc uclass-private data to be cache-aligned
Simon Glass [Mon, 1 Oct 2018 18:22:05 +0000 (12:22 -0600)]
dm: core: Alloc uclass-private data to be cache-aligned

There is no reason why this feature should not be supported for uclass-
private data. Update the code accordingly.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: Restore blocking I/O on exit
Simon Glass [Mon, 1 Oct 2018 17:55:20 +0000 (11:55 -0600)]
sandbox: Restore blocking I/O on exit

At present sandbox sets non-blocking I/O as soon as any input is read
from the terminal. However it does not restore the previous state on
exit. Fix this and drop the old os_read_no_block() function.

This means that we always enable blocking I/O in sandbox (if input is a
terminal) whereas previously it would only happen on the first call to
tstc() or getc(). However, the difference is likely not important.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agodm: spi: Clean up detection of sandbox SPI emulator
Simon Glass [Mon, 1 Oct 2018 17:55:19 +0000 (11:55 -0600)]
dm: spi: Clean up detection of sandbox SPI emulator

Now that we don't have to deal with the command-line flag we can simplify
the code for detecting the emulator. Remove the lookup based on the SPI
specification, relying just on the device tree to locate the emulator.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: tpm: Enhance to support the latest Chromium OS
Simon Glass [Mon, 1 Oct 2018 17:55:18 +0000 (11:55 -0600)]
sandbox: tpm: Enhance to support the latest Chromium OS

This driver was originally written against Chromium OS circa 2012. A few
new features have been added. Enhance the TPM driver to match. This mostly
includes a few new messages and properly modelling whether a particular
'space' is present or not.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: tpm: Tidy up enums and return values
Simon Glass [Mon, 1 Oct 2018 17:55:17 +0000 (11:55 -0600)]
sandbox: tpm: Tidy up enums and return values

Use an enum for command values instead of open-coding them. This removes
the need for comments. Also make sure the driver returns proper error
numbers instead of -1.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agoserial: sandbox: Allow serial output without device tree
Simon Glass [Mon, 1 Oct 2018 17:55:16 +0000 (11:55 -0600)]
serial: sandbox: Allow serial output without device tree

At present sandbox assumes that device-tree control is active, but this
may not be the case in SPL or TPL. Add some conditions to handle this.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: Add a debug UART
Simon Glass [Mon, 1 Oct 2018 17:55:15 +0000 (11:55 -0600)]
sandbox: Add a debug UART

Add support for the debug UART so that sandbox provides build testing for
this feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: video: Speed up video output
Simon Glass [Mon, 1 Oct 2018 17:55:14 +0000 (11:55 -0600)]
sandbox: video: Speed up video output

At present there are many situations where sandbox syncs the display to
the SDL frame buffer. This is a very expensive operation but is only
needed every now and then. Update video_sync() so that we can specify
whether this operation is really needed.

At present this flag is not used on other architectures. It could also
be used for reducing writeback-cache flushes but the benefit of that would
need to be investigated.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
6 years agosandbox: spi: Add more logging
Simon Glass [Mon, 1 Oct 2018 17:55:13 +0000 (11:55 -0600)]
sandbox: spi: Add more logging

Add logging to aid debugging features in these drivers. Also drop some
code in sandbox_spi_xfer() which is not used.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 years agosandbox: Remove the old memory file later
Simon Glass [Mon, 1 Oct 2018 17:55:12 +0000 (11:55 -0600)]
sandbox: Remove the old memory file later

When debugging sandbox it is sometimes annoying that the memory file is
deleted early on. If sandbox later crashes or we quit (using the
debugger), it is not possible to run it again with the same state since
the memory file is gone.

Remove the old memory file when sandbox exits, instead. Also add debugging
showing the memory filename.

Signed-off-by: Simon Glass <sjg@chromium.org>