oweals/u-boot.git
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-net
Tom Rini [Thu, 28 Jan 2016 23:42:10 +0000 (18:42 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-net

8 years agonet: Add bootfile in DHCP Request
Alexandre Messier [Thu, 28 Jan 2016 16:19:02 +0000 (11:19 -0500)]
net: Add bootfile in DHCP Request

Add the bootfile name in the DHCP Request packet, in addition
to it already being sent in the DHCP Discover.

This is needed by some DHCP servers so that the bootfile name is
properly returned by the server to the client in the DHCP Ack, as
expected by U-Boot.

Signed-off-by: Alexandre Messier <amessier@tycoint.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-tegra
Tom Rini [Thu, 28 Jan 2016 20:17:11 +0000 (15:17 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-tegra

8 years agonet: phy: implements probe for Cortina phy
Shaohui Xie [Thu, 28 Jan 2016 07:56:36 +0000 (15:56 +0800)]
net: phy: implements probe for Cortina phy

Cortina phy cannot support soft reset, this commit implements probe
for Cortina PHY to tell phylib to skip phy soft reset by setting
PHY_FLAG_BROKEN_RESET in flags.

Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: introduce a quirk PHY_FLAG_BROKEN_RESET
Shaohui Xie [Thu, 28 Jan 2016 07:55:46 +0000 (15:55 +0800)]
net: phy: introduce a quirk PHY_FLAG_BROKEN_RESET

Current driver always performs a phy soft reset when connecting the phy
device, but soft reset is not always supported by a phy device, so
introduce a quirk PHY_FLAG_BROKEN_RESET to let such a phy device to skip
soft reset. This commit uses 'flags' of phy device structure to store the
quirk.

Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: micrel: fix divisor value for KSZ9031 phy skew
Dinh Nguyen [Wed, 27 Jan 2016 21:46:00 +0000 (15:46 -0600)]
net: phy: micrel: fix divisor value for KSZ9031 phy skew

The picoseconds to register value divisor(ps_to_regval) should be 60 and not
200. Linux has KSZ9031_PS_TO_REG defined to be 60 as well. 60 is the correct
divisor because the 4-bit skew values are defined from 0x0000(-420ps) to
0xffff(480ps), increments of 60.

For example, a DTS skew value of 420, represents 0ps delay, which should be 0x7.
With the previous divisor of 200, it would result in 0x2, which represents a
-300ps delay.

With this patch, ethernet on the SoCFPGA DE0 Atlas is now able to work with
1Gb ethernet.

References:
http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf -> page 26

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: micrel: add documentation for Micrel KSZ90x1 binding
Dinh Nguyen [Wed, 27 Jan 2016 21:45:59 +0000 (15:45 -0600)]
net: phy: micrel: add documentation for Micrel KSZ90x1 binding

Add the DTS documentation for the Micrel KSZ90x1 binding.

The original document was from:
[commit 4b405efbe12de28b26289282b431323d73992381 from the Linux kernel]

This takes the original document and adds a clarification on how the skew
values are represented in the code.

References:

Micrel ksz9021rl/rn Data Sheet, Revision 1.2. Dated 2/13/2014.
http://www.micrel.com/_PDF/Ethernet/datasheets/ksz9021rl-rn_ds.pdf

Micrel ksz9031rnx Data Sheet, Revision 2.1. Dated 11/20/2014.
http://www.micrel.com/_PDF/Ethernet/datasheets/KSZ9031RNX.pdf

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: Use 'autoneg' flag from phydev
Alexandre Messier [Fri, 22 Jan 2016 19:16:56 +0000 (14:16 -0500)]
net: phy: Use 'autoneg' flag from phydev

Use the 'autoneg' flag available in phydev when checking if
autoneg is in use.

The previous implementation was checking directly in the PHY
if autoneg was supported. Some PHYs will report that autoneg
is supported, even when it is disabled. Thus it is not possible
to use that bit to determine if autoneg is currently in use or
not.

Signed-off-by: Alexandre Messier <amessier@tycoint.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: Set ANRESTART in setup_forced
Alexandre Messier [Fri, 22 Jan 2016 19:16:15 +0000 (14:16 -0500)]
net: phy: Set ANRESTART in setup_forced

When configuring a PHY in fixed (forced) link mode, in order for
the changes to be applied, either one of these conditions must
be triggered:
1- PHY is reset
2- Autoneg is restarted
3- PHY transitions from power-down to power-up

Neither of these is currently done, so effectively the fixed link
configuration is not applied in the PHY.

Fix this by setting the Autoneg restart bit.

Signed-off-by: Alexandre Messier <amessier@tycoint.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: micrel: Disable B_CAST on config
Alexandre Messier [Fri, 22 Jan 2016 19:06:33 +0000 (14:06 -0500)]
net: phy: micrel: Disable B_CAST on config

Micrel PHYs KSZ8021/31 and KSZ8081 have a feature where MDIO address 0
is considered as a broadcast address; the PHY will respond even if it
is not its configured (pinstrapped) address. This feature is enabled
by default.

The Linux kernel disables that feature at initialisation, but not
before it probes the MDIO bus. This causes an issue, because a PHY
at address 3 will be discovered at addresses 0 and 3, but will then
only respond at address 3. Because Linux attaches the first PHY it
discovers on 'eth0', it will attach the PHY from address 0, which
will never answer again.

Fix the issue by disabling the broadcast feature in U-Boot, before
Linux is started.

Signed-off-by: Alexandre Messier <amessier@tycoint.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Rename eth.c to eth_lecacy.c
Simon Glass [Sun, 17 Jan 2016 21:52:01 +0000 (14:52 -0700)]
net: Rename eth.c to eth_lecacy.c

Rename this file to make it clear it is for the old networking drivers
and not for use with driver model.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Move driver-model code into its own file
Simon Glass [Sun, 17 Jan 2016 21:52:00 +0000 (14:52 -0700)]
net: Move driver-model code into its own file

Every other uclass is in its own file. Create a new eth-uclass.c file and
move the driver-model code into it, so that networking is consistent.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Move remaining common functions to eth_common.c
Simon Glass [Sun, 17 Jan 2016 21:51:59 +0000 (14:51 -0700)]
net: Move remaining common functions to eth_common.c

Move eth_current_changed(), eth_set_current(), eth_mac_skip() and
eth_get_name() into the common file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Move environment functions to the common file
Simon Glass [Sun, 17 Jan 2016 21:51:58 +0000 (14:51 -0700)]
net: Move environment functions to the common file

Move the functions which set ethernet environment variables to the common
file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Move common init into a new eth_common.c file
Simon Glass [Sun, 17 Jan 2016 21:51:57 +0000 (14:51 -0700)]
net: Move common init into a new eth_common.c file

Only half of the init is actually common. Move that part into a new common
file and call it from driver-model and legacy code. More common functions
will be added in future patches.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: Don't call board/cpu_eth_init() with driver model
Simon Glass [Sun, 17 Jan 2016 21:51:56 +0000 (14:51 -0700)]
net: Don't call board/cpu_eth_init() with driver model

We should avoid weak functions with driver model. Existing boards that use
driver model don't need them, so let's kill them off.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agotegra: Report errors from PCI init
Simon Glass [Sun, 17 Jan 2016 21:51:55 +0000 (14:51 -0700)]
tegra: Report errors from PCI init

This function can fail, so be sure to report any errors that occur.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet/designware: add support of max-speed device tree property
Alexey Brodkin [Wed, 13 Jan 2016 13:59:37 +0000 (16:59 +0300)]
net/designware: add support of max-speed device tree property

This property allows to specify fastest connection mode supported by
the MAC (as opposed to features of the phy).

There are situations when phy may handle faster modes than the
MAC (or even it's particular implementation or even due to CPU being too
slow).

This property is a standard one in Linux kernel these days and some
boards do already use it in their device tree descriptions.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Sonic Zhang <sonic.zhang@analog.com>
cc: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet/designware: do explicit port selection for 1Gb mode
Alexey Brodkin [Wed, 13 Jan 2016 13:59:36 +0000 (16:59 +0300)]
net/designware: do explicit port selection for 1Gb mode

Current implementation only sets "port select" bit for non-1Gb mode.
That works fine if GMAC has just exited reset state but we may as well
change connection mode in runtime. Then we'll need to reprogram GMAC for
that new mode of operation and if previous mode was 10 or 100 Mb and new
one is 1 Gb we'll need to reset port mode bit.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Sonic Zhang <sonic.zhang@analog.com>
cc: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoinclude/net.h: add max_speed member in struct eth_pdata
Alexey Brodkin [Wed, 13 Jan 2016 13:59:35 +0000 (16:59 +0300)]
include/net.h: add max_speed member in struct eth_pdata

This will be used for getting max speed mode of Ethernet interface that
a particular MAC supports from Device Tree blob and later being used for
phy configuration.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodrivers/net/phy: introduce phy_set_supported()
Alexey Brodkin [Wed, 13 Jan 2016 13:59:34 +0000 (16:59 +0300)]
drivers/net/phy: introduce phy_set_supported()

This new function will allow MAC drivers to override supported
capabilities of the phy. It is required when MAC cannot handle all
speeds supported by phy.

For example phy supports up-to 1Gb connections while MAC may only work
in modes up to 100 or even 10 Mbit/sec.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: breakdown PHY_*_FEATURES defines
Florian Fainelli [Wed, 13 Jan 2016 13:59:33 +0000 (16:59 +0300)]
net: phy: breakdown PHY_*_FEATURES defines

Breakdown the PHY_*_FEATURES into per speed defines such that we can
easily re-use them individually.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: genphy: Allow overwriting features
Sascha Hauer [Wed, 13 Jan 2016 13:59:32 +0000 (16:59 +0300)]
net: phy: genphy: Allow overwriting features

of_set_phy_supported allows overwiting hardware capabilities of
a phy with values from the devicetree. This does not work with
the genphy driver though because the genphys config_init function
will overwrite all values adjusted by of_set_phy_supported. Fix
this by initialising the genphy features in the phy_driver struct
and in config_init just limit the features to the ones the hardware
can actually support. The resulting features are a subset of the
devicetree specified features and the hardware features.

This is a copy of the patch from Linux kernel, see
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c242a47238fa2a6a54af8a16e62b54e6e031d4bc

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: ensure Gigabit features are masked off if requested
Florian Fainelli [Wed, 13 Jan 2016 13:59:31 +0000 (16:59 +0300)]
net: phy: ensure Gigabit features are masked off if requested

When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
MAC, the driver will restrict the phydev->supported modes to mask off
Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
set by default in MII_CTRL1000, it will keep advertising these feature,
so by the time we call genphy_config_advert(), the condition on
phydev->supported having the Gigabit features on is false, and we do not
update MII_CTRL1000 with updated values, and we keep advertising Gigabit
features, eventually configuring the PHY for Gigabit whilst the Ethernet
MAC does not support that.

This patches fixes the problem by ensuring that the Gigabit feature bits
are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
PHY, and then, if Gigabit features are supported, setting those and
updating MII_CTRL1000 accordingly.

This is a copy of patch from Linux kernel, see
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5273e3a5ca94fbeb8e07d31203069220d5e682aa

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoarm: ls102xa: Rewrite the logic of ft_fixup_enet_phy_connect_type()
Bin Meng [Tue, 12 Jan 2016 06:41:26 +0000 (22:41 -0800)]
arm: ls102xa: Rewrite the logic of ft_fixup_enet_phy_connect_type()

eth_get_dev_by_index() is an API which is not available in driver
model. Use eth_get_dev_by_name() instead, which can also simplifly
the code logic a little bit.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Use priv->tbiaddr to initialize TBI PHY address
Bin Meng [Tue, 12 Jan 2016 06:41:25 +0000 (22:41 -0800)]
net: tsec: Use priv->tbiaddr to initialize TBI PHY address

Add a new member 'tbiaddr' to tsec_private struct. For non-DM driver,
it is initialized as CONFIG_SYS_TBIPA_VALUE, but for DM driver, we
can get this from device tree. Update the bindings doc as well.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Add driver model ethernet support
Bin Meng [Tue, 12 Jan 2016 06:41:24 +0000 (22:41 -0800)]
net: tsec: Add driver model ethernet support

This adds driver model support to Freescale TSEC ethernet driver.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodoc: dt-bindings: Describe Freescale TSEC ethernet controller
Bin Meng [Tue, 12 Jan 2016 06:41:23 +0000 (22:41 -0800)]
doc: dt-bindings: Describe Freescale TSEC ethernet controller

Adapted from the same file name in the kernel device tree bindings
documentation, to use with U-Boot.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Use tsec_private pointer as the parameter for internal routines
Bin Meng [Tue, 12 Jan 2016 06:41:22 +0000 (22:41 -0800)]
net: tsec: Use tsec_private pointer as the parameter for internal routines

For internal routines like redundant_init(), startup_tsec() and
init_phy(), change to use tsec_private pointer as the parameter.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Adjust orders to avoid forward declaration of tsec_send()
Bin Meng [Tue, 12 Jan 2016 06:41:21 +0000 (22:41 -0800)]
net: tsec: Adjust orders to avoid forward declaration of tsec_send()

Adjust static functions in a proper order so that forward declaration
of tsec_send() can be avoided.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Move rxbd and txbd to struct tsec_private
Bin Meng [Tue, 12 Jan 2016 06:41:20 +0000 (22:41 -0800)]
net: tsec: Move rxbd and txbd to struct tsec_private

rxbd and txbd are declared static with 8 byte alignment requirement,
but they can be put into struct tsec_private as well and are natually
aligned to 8 byte.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: Move rx_idx and tx_idx to struct tsec_private
Bin Meng [Tue, 12 Jan 2016 06:41:19 +0000 (22:41 -0800)]
net: tsec: Move rx_idx and tx_idx to struct tsec_private

At present rx_idx and tx_idx are declared as static variables
in the driver codes. To support multiple interfaces, move it to
struct tsec_private.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: tsec: fsl_mdio: Fix several cosmetic issues
Bin Meng [Tue, 12 Jan 2016 06:41:18 +0000 (22:41 -0800)]
net: tsec: fsl_mdio: Fix several cosmetic issues

Clean up the tsec and fsl_mdio driver codes a little bit, by:
- Fix misuse of tab and space here and there
- Use correct multi-line comment format
- Replace license identifier to GPL-2.0+

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoarm: ls1021atwr: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:17 +0000 (22:41 -0800)]
arm: ls1021atwr: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agopowerpc: p1010rdb: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:16 +0000 (22:41 -0800)]
powerpc: p1010rdb: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agopowerpc: mpc8548cds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:15 +0000 (22:41 -0800)]
powerpc: mpc8548cds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agopowerpc: mpc8572ds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:14 +0000 (22:41 -0800)]
powerpc: mpc8572ds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agopowerpc: c29xpcie: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:13 +0000 (22:41 -0800)]
powerpc: c29xpcie: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agopowerpc: bsc9132qds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET
Bin Meng [Tue, 12 Jan 2016 06:41:12 +0000 (22:41 -0800)]
powerpc: bsc9132qds: Do not wrap pci_eth_init() with CONFIG_TSEC_ENET

The call to pci_eth_init() should not be wrapped with CONFIG_TSEC_ENET.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: bootp: Ignore packets whose yiaddr is 0
Peng Fan [Thu, 7 Jan 2016 07:28:23 +0000 (15:28 +0800)]
net: bootp: Ignore packets whose yiaddr is 0

When doing `dhcp`, there is a bad dhcp server in my network
which always reply dhcp request with yiaddr 0, which cause
uboot can not successfully get ipaddr from the good dhcp server.
But the Linux PC can get the ip address even if there is a bad
dhcp server. This patch is to fix that even if there is a bad
dhcp server, uboot can still get ipaddr and tftp work ok.

The way is to ignore the packets from the bad dhcp server by filtering
out the yiaddr whose value is 0.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Wolfgang Denk <wd@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodrivers: net: vsc9953: Add LAG support
Codrin Ciubotariu [Tue, 15 Dec 2015 13:21:06 +0000 (15:21 +0200)]
drivers: net: vsc9953: Add LAG support

You can now configure LAG on VSC9953's ports using the command:
ethsw [port <port_no>] aggr {[help] | show | <lag_group_no>}

A port must belong to a single LAG. By default, a port
belongs to a LAG equal to the port's number.

For each frame, a hash will be calculated based on
Source/Destination MAC addresses, Source/Destination IP(v4/v6)
addresses, Source/Destination ports. This hash will be used to
select a single egress port from LAG. This also assures
that frames from the same flow will always have the
same egress port.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agocommon: cmd_ethsw: Spelling fixes
Codrin Ciubotariu [Tue, 15 Dec 2015 13:21:05 +0000 (15:21 +0200)]
common: cmd_ethsw: Spelling fixes

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodoc: t1040-l2switch: Update README
Codrin Ciubotariu [Tue, 15 Dec 2015 13:21:04 +0000 (15:21 +0200)]
doc: t1040-l2switch: Update README

The driver for VSC9953 L2 switch IP supports many features and
the documentation needs to be updated.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodrivers: net: vsc9953: Fix FDB aging time
Codrin Ciubotariu [Tue, 15 Dec 2015 13:21:03 +0000 (15:21 +0200)]
drivers: net: vsc9953: Fix FDB aging time

By default, the aging period is set to 0, so the dynamic
FDB entries are never removed. This patch sets the aging
time to 300 seconds.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agodrivers: net: vsc9953: Fix number of reserved registers
Codrin Ciubotariu [Tue, 15 Dec 2015 13:21:02 +0000 (15:21 +0200)]
drivers: net: vsc9953: Fix number of reserved registers

There are only 21 registers reserved between ana_ana and
ana_pgid register groups.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@freescale.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: do not read configuration register on reset
Stefan Agner [Wed, 9 Dec 2015 19:21:25 +0000 (11:21 -0800)]
net: phy: do not read configuration register on reset

When doing a software reset, the reset flag should be written without
other bits set. Writing the current state will lead to restoring the
state of the PHY (e.g. Powerdown), which is not what is expected from
a software reset.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Michael Welling <mwelling@ieee.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoARM: tegra: rm Jetson TK1 PMIC GPIO programming
Stephen Warren [Mon, 18 Jan 2016 18:23:16 +0000 (11:23 -0700)]
ARM: tegra: rm Jetson TK1 PMIC GPIO programming

The PMIC is configured such that its GPIOs have the correct configuration
at power-up, so no programming is required.

In fact, the current programming is actively wrong, since:

(a) the AS3722 driver configures the GPIO to be an output before setting
its output value, which causes a 0v glitch on the output.

(b) the AS3722 driver configures the GPIO to drive a high voltage from its
VSUP_GPIO power source rather than its VDD_GPIO_LV power source, so the pin
drives 5V not 1.8V as desired.

Solve these problems by removing the code which configures the PMIC GPIOs.

Note that this patch was tested directly on top of v2016.01; since then,
commit 96350f729c42 "dm: tegra: net: Convert tegra boards to driver model
for Ethernet" prevents PCIe from being initialized. Alternatively, simply
revert that commit to get PCIe Ethernet working again, then apply this
patch to test.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-x86
Tom Rini [Thu, 28 Jan 2016 15:07:22 +0000 (10:07 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-x86

8 years agox86: Correct spi node alias
Bin Meng [Wed, 27 Jan 2016 08:56:34 +0000 (00:56 -0800)]
x86: Correct spi node alias

With recent changes spi node was moved to a place as a subnode under
pch, so update the alias to refer to its correct place as well.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agox86: config option for loading ACPI table from QEMU
Miao Yan [Wed, 20 Jan 2016 09:57:07 +0000 (01:57 -0800)]
x86: config option for loading ACPI table from QEMU

This patch adds a config option for loading ACPI table from QEMU. When enabled,
U-Boot won't generate ACPI tables, but use those provided by QEMU.

Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: qemu: add the ability to load and link ACPI tables from QEMU
Miao Yan [Wed, 20 Jan 2016 09:57:06 +0000 (01:57 -0800)]
x86: qemu: add the ability to load and link ACPI tables from QEMU

This patch adds the ability to load and link ACPI tables provided by QEMU.
QEMU tells guests how to load and patch ACPI tables through its fw_cfg
interface, by adding a firmware file 'etc/table-loader'. Guests are
supposed to parse this file and execute corresponding QEMU commands.

Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: qemu: setup PM IO base for ACPI in southbridge
Miao Yan [Wed, 20 Jan 2016 09:57:05 +0000 (01:57 -0800)]
x86: qemu: setup PM IO base for ACPI in southbridge

Enable ACPI IO space for piix4 (for pc board) and ich9 (for q35 board)

Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: qemu: re-structure qemu_fwcfg_list_firmware()
Miao Yan [Wed, 20 Jan 2016 09:57:04 +0000 (01:57 -0800)]
x86: qemu: re-structure qemu_fwcfg_list_firmware()

Re-write the logic in qemu_fwcfg_list_firmware(), add a function
qemu_fwcfg_read_firmware_list() to handle reading firmware list.

Signed-off-by: Miao Yan <yanmiaobest@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: baytrail: Add option to disable the internal UART to setup_early_uart()
Stefan Roese [Tue, 19 Jan 2016 13:24:12 +0000 (14:24 +0100)]
x86: baytrail: Add option to disable the internal UART to setup_early_uart()

This patch adds a parameter to the function setup_early_uart() to either
enable or disable the internal BayTrail legacy UART. Since the name
setup_early_uart() does not match its functionality any more, lets
rename it to setup_internal_uart() as well in this patch.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agomisc: Add simple driver to enable the legacy UART on Winbond Super IO chips
Stefan Roese [Tue, 19 Jan 2016 13:05:10 +0000 (14:05 +0100)]
misc: Add simple driver to enable the legacy UART on Winbond Super IO chips

On most x86 boards, the legacy serial ports (io address 0x3f8/0x2f8)
are provided by a superio chip connected to the LPC bus. We must
program the superio chip so that serial ports are available for us.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: x86-common.h: Add generic FS commands
Stefan Roese [Mon, 18 Jan 2016 13:49:57 +0000 (14:49 +0100)]
x86: x86-common.h: Add generic FS commands

This patch adds the generic FS commands (ls, load) to all x86 boards.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Miao Yan <yanmiaobest@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Bin Meng <bmeng.cn@gmail.com>
8 years agox86: baytrail: Add documentation for FSP memory-down values
Stefan Roese [Mon, 18 Jan 2016 10:55:44 +0000 (11:55 +0100)]
x86: baytrail: Add documentation for FSP memory-down values

This patch adds the documentation for the memory-down parameters
of the Intel FSP. To configure a board without SPD DDR DIMM but
with onboard DDR chips. The values are taken from the coreboot
header:

src/soc/intel/fsp_baytrail/chip.h

(git ID da1a70ea from 2016-01-16 as reference).

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Andrew Bradford <andrew.bradford@kodakalaris.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq
Tom Rini [Wed, 27 Jan 2016 20:05:36 +0000 (15:05 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq

8 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Wed, 27 Jan 2016 20:05:12 +0000 (15:05 -0500)]
Merge branch 'master' of git://denx.de/git/u-boot-microblaze

8 years agoarmv8/ls1043aqds: add QSPI boot support
Qianyu Gong [Mon, 25 Jan 2016 07:16:07 +0000 (15:16 +0800)]
armv8/ls1043aqds: add QSPI boot support

Enable the U-Boot Driver Model(DM) to use the Freescale QSPI driver.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: add QSPI support in SD boot
Gong Qianyu [Mon, 25 Jan 2016 07:16:06 +0000 (15:16 +0800)]
armv8/ls1043aqds: add QSPI support in SD boot

QSPI and IFC are pin-multiplexed on LS1043A. So we use
ls1043aqds_sdcard_ifc_defconfig to support IFC in SD boot and
ls1043aqds_sdcard_qspi_defconfig to support QSPI in SD boot.

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: add DSPI support
Gong Qianyu [Mon, 25 Jan 2016 07:16:05 +0000 (15:16 +0800)]
armv8/ls1043aqds: add DSPI support

Enable three DSPI flash memories on board.

Commands:
=> sf probe 1:0
SF: Detected N25Q128A with page size 256 Bytes,
erase size 64 KiB, total 16 MiB
=> sf probe 1:1
SF: Detected SST25WF040B with page size 256 Bytes,
erase size 4 KiB, total 512 KiB
=> sf probe 1:2
SF: Detected EN25S64 with page size 256 Bytes,
erase size 64 KiB, total 8 MiB

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodm: env_sf: fix saveenv() to use driver model
Gong Qianyu [Tue, 26 Jan 2016 07:06:42 +0000 (15:06 +0800)]
dm: env_sf: fix saveenv() to use driver model

It might be missed when converting spi_flash_probe() in cmd_sf.c.

This patch refers to commit fbb099183e3a ("dm: Convert
spi_flash_probe() and 'sf probe' to use driver model").

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agospi: fsl_qspi: Fix qspi_op_rdsr memcpy issue
Gong Qianyu [Tue, 26 Jan 2016 07:06:41 +0000 (15:06 +0800)]
spi: fsl_qspi: Fix qspi_op_rdsr memcpy issue

In current driver, we always copy 4 bytes to the dest memory.
Actually the dest memory may be shorter than 4 bytes.
Add an argument to indicate the dest memory length.
Avoid writing memory outside of the bounds.

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agospi: fsl_qspi: Fix qspi_op_rdid memcpy issue
Gong Qianyu [Tue, 26 Jan 2016 07:06:40 +0000 (15:06 +0800)]
spi: fsl_qspi: Fix qspi_op_rdid memcpy issue

In current driver everytime we memcpy 4 bytes to the dest memory
regardless of the remaining length.
This patch adds checking the remaining length before memcpy.
If the length is shorter than 4 bytes, memcpy the actual length of data
to the dest memory.

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agospi: fsl_qspi: fix compile warning for 64-bit platform
Gong Qianyu [Tue, 26 Jan 2016 07:06:39 +0000 (15:06 +0800)]
spi: fsl_qspi: fix compile warning for 64-bit platform

This patch fixes the following compile warning:
drivers/spi/fsl_qspi.c: In function 'fsl_qspi_probe':
drivers/spi/fsl_qspi.c:937:15:
  warning: cast to pointer from integer of different size
 [-Wint-to-pointer-cast]
  priv->regs = (struct fsl_qspi_regs *)plat->reg_base;
               ^
Just make the cast explicit.

Signed-off-by: Gong Qianyu <Qianyu.Gong@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agommc: fsl_esdhc: set Abort command type for CMD12
Yangbo Lu [Thu, 21 Jan 2016 09:33:19 +0000 (17:33 +0800)]
mmc: fsl_esdhc: set Abort command type for CMD12

According to SD spec, CMD12, CMD52 for writing I/O abort in CCCR need
to be set an Abort command type when they are sent. So, we remove all
chip-specific #ifdefs and make it available for all platforms.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: Add lpuart support
Wenbin Song [Thu, 21 Jan 2016 09:14:55 +0000 (17:14 +0800)]
armv8/ls1043aqds: Add lpuart support

Add lpuart support using the driver model.

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: Spilt off board device tree
Wenbin Song [Thu, 21 Jan 2016 09:14:54 +0000 (17:14 +0800)]
armv8/ls1043aqds: Spilt off board device tree

Move new /chosen node out of the board device tree.

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: Select lpuart pins of various muxes
Shaohui Xie [Thu, 21 Jan 2016 09:14:53 +0000 (17:14 +0800)]
armv8/ls1043aqds: Select lpuart pins of various muxes

Set Board Configuration Register to select the lpuart pins of various
muxes.

Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
Signed-off-by: Mingkai Hu <Mingkai.Hu@freescale.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agommc: fsl_esdhc: increase data transaction timeout to 500ms
Yangbo Lu [Wed, 30 Dec 2015 06:19:30 +0000 (14:19 +0800)]
mmc: fsl_esdhc: increase data transaction timeout to 500ms

The MMC spec says "It is strongly recommended for hosts to implement
more than 500ms timeout value even if the card indicates the 250ms
maximum busy length."  Even the previous value of 300ms is known to
be insufficient for some cards. So, increase the timeout to 500ms.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: fsl-mc: Remove portal id hard-coding
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:03:49 +0000 (15:33 +0530)]
driver: net: fsl-mc: Remove portal id hard-coding

Management Complex firmware 9.0 has fixed the issue of
dprc_destroy_container i.e. the used portal is not return to the
free pool. Which was resulting in error ethernet driver want to
use this portal via either DPL or dynamically in Linux.

Hard-coding of portal id is removed.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: ldpaa: Add debug info of printing DPMAC stats
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:03:37 +0000 (15:33 +0530)]
driver: net: ldpaa: Add debug info of printing DPMAC stats

Add debug information prints to provide DPMAC statistics
 - Number of bytes received
 - Number of received and discard frames
 - Number of bytes transferred
 - Number of frames transferred
 etc.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: ldpaa: Increase num of buffers for a pool
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:03:25 +0000 (15:33 +0530)]
driver: net: ldpaa: Increase num of buffers for a pool

Management Complex FW 9.0 set the hardware depletion to be 20
buffers in order to support multiple pools in DPNI. This requires
driver to fill the pool with at least 21 to be able to receive
frames. So, Increase number of buffers for a pool.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: ldpaa: Report back only error frames for tx
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:03:13 +0000 (15:33 +0530)]
driver: net: ldpaa: Report back only error frames for tx

Management Complex FW 9.0 puts a new requirement to provide Tx
confirmation and error queue configuration by calling
dpni_set_tx_conf API.

Configure report of only error frames for a tx frame.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: fsl-mc: Prepare extended cfg for DPNI create
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:03:01 +0000 (15:33 +0530)]
driver: net: fsl-mc: Prepare extended cfg for DPNI create

Management Complex FW 9.0 puts a new requirement to prepare extended
parameters which should be provided as input in dpni_create. extended
parameters includes traffic class and IP reassembly configurations.

So prepare extended parameters with default "0" as input for
dpni_create.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: fsl-mc: flib changes for MC FW 9.0.0
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:02:49 +0000 (15:32 +0530)]
driver: net: fsl-mc: flib changes for MC FW 9.0.0

MC firmware version 9.0.0 contains
 - Support of new APIs
 - Update in existing APIs
 - Change in Major and minor version of DPAA2 objects

This patch contains modifications in FLIB files to support new
MC firmware version.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodriver: net: fsl-mc: Add version check for MC objects
Prabhakar Kushwaha [Thu, 24 Dec 2015 10:02:37 +0000 (15:32 +0530)]
driver: net: fsl-mc: Add version check for MC objects

Check and compare version of management  complex's object with
the version supported by Freescale ldpaa2 ethernet driver.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: change error handler for esbc_validate
Aneesh Bansal [Fri, 22 Jan 2016 11:07:28 +0000 (16:37 +0530)]
secure_boot: change error handler for esbc_validate

In case of error while executing esbc_validate command, SNVS
transition and issue of reset is required only for secure-boot.
If boot mode is non-secure, this is not required.

Similarly, esbc_halt command which puts the core in Spin Loop
is applicable only for Secure Boot.

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: enable chain of trust for PowerPC platforms
Aneesh Bansal [Fri, 22 Jan 2016 11:07:27 +0000 (16:37 +0530)]
secure_boot: enable chain of trust for PowerPC platforms

Chain of Trust is enabled for PowerPC platforms for Secure Boot.
CONFIG_BOARD_LATE_INIT is defined.
In board_late_init(), fsl_setenv_chain_of_trust() is called which
will perform the following:
- If boot mode is non-secure, return (No Change)
- If boot mode is secure, set the following environmet variables:
   bootdelay = 0 (To disable Boot Prompt)
   bootcmd = CONFIG_CHAIN_BOOT_CMD (Validate and execute Boot script)

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: enable chain of trust for ARM platforms
Aneesh Bansal [Fri, 22 Jan 2016 11:07:26 +0000 (16:37 +0530)]
secure_boot: enable chain of trust for ARM platforms

Chain of Trust is enabled for ARM platforms (LS1021 and LS1043).
In board_late_init(), fsl_setenv_chain_of_trust() is called which
will perform the following:
- If boot mode is non-secure, return (No Change)
- If boot mode is secure, set the following environmet variables:
   bootdelay = 0 (To disable Boot Prompt)
   bootcmd = CONFIG_CHAIN_BOOT_CMD (Validate and execute Boot script)

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: create function to determine boot mode
Aneesh Bansal [Fri, 22 Jan 2016 11:07:25 +0000 (16:37 +0530)]
secure_boot: create function to determine boot mode

A function is created to detrmine if the boot mode is secure
or non-secure for differnt SoC's.

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: split the secure boot functionality in two parts
Aneesh Bansal [Fri, 22 Jan 2016 11:07:24 +0000 (16:37 +0530)]
secure_boot: split the secure boot functionality in two parts

There are two phases in Secure Boot
1. ISBC: In BootROM, validate the BootLoader (U-Boot).
2. ESBC: In U-Boot, continuing the Chain of Trust by
         validating and booting LINUX.

For ESBC phase, there is no difference in SoC's based on ARM or
PowerPC cores.

But the exit conditions after ISBC phase i.e. entry conditions for
U-Boot are different for ARM and PowerPC.
PowerPC:

If Secure Boot is executed, a separate U-Boot target is required
which must be compiled with a diffrent Text Base as compared to
Non-Secure Boot. There are some LAW and TLB settings which are
required specifically for Secure Boot scenario.

ARM:
ARM based SoC's have a fixed memory map and exit conditions from
BootROM are same irrespective of boot mode (Secure or Non-Secure).

Thus the current Secure Boot functionlity has been split into
two parts:
CONFIG_CHAIN_OF_TRUST
This will have the following functionality as part of U-Boot:
1. Enable commands like esbc_validate, esbc_halt
2. Change the environment settings based on bootmode, determined
   at run time:
     - If bootmode is non-secure, no change
     - If bootmode is secure, set the following:
         - bootdelay = 0 (Don't give boot prompt)
         - bootcmd = Validate and execute the bootscript.

CONFIG_SECURE_BOOT
This is defined only for creating a different compile time target
for secure boot.

Traditionally, both these functionalities were defined under
CONFIG_SECURE_BOOT. This patch is aimed at removing the requirement
for a separate Secure Boot target for ARM based SoC's.
CONFIG_CHAIN_OF_TRUST will be defined and boot mode will be
determine at run time.

Another Security Requirement for running CHAIN_OF_TRUST is that
U-Boot environemnt must not be picked from flash/external memory.
This cannot be done based on bootmode at run time in current U-Boot
architecture. Once this dependency is resolved, no separate
SECURE_BOOT target will be required for ARM based SoC's.

Currently, the only code under CONFIG_SECURE_BOOT for ARM SoC's is
defining CONFIG_ENV_IS_NOWHERE

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: include/configs: move definition of CONFIG_CMD_BLOB
Aneesh Bansal [Fri, 22 Jan 2016 11:07:23 +0000 (16:37 +0530)]
secure_boot: include/configs: move definition of CONFIG_CMD_BLOB

CONFIG_CMD_BLOB must be defined in case of Secure Boot. It was
earlier defined in all config files. The definition has been
moved to a common file which is included by all configs.

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agosecure_boot: include/configs: make secure boot header file uniform
Aneesh Bansal [Fri, 22 Jan 2016 11:07:22 +0000 (16:37 +0530)]
secure_boot: include/configs: make secure boot header file uniform

The file fsl_secure_boot.h must be included in config file for
Secure Boot. This is not required to be protected by any macro.
CONFIG_FSL_CAAM must be defined and CONFIG_CMD_HASH should be
turned on.

The above was missing in some config files and all files have been
made uniform in this respect.

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Acked-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoppc: xilinx-ppc440-generic: Wire LL_TEMAC driver
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 12:47:45 +0000 (13:47 +0100)]
ppc: xilinx-ppc440-generic: Wire LL_TEMAC driver

If the xparameters file contains a LL_TEMAC definition compile its
driver and the net commands.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: xilinx_ll_temac: Fix string overflow
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:24 +0000 (11:24 +0100)]
net: xilinx_ll_temac: Fix string overflow

Size of this snprintf "lltemac.%lx" is bigger than 16 characters.
Replacing it with "ll_tem.%lx"

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoppc: xilinx_ppc440_generic: Remove uncalled functions
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:23 +0000 (11:24 +0100)]
ppc: xilinx_ppc440_generic: Remove uncalled functions

board_pre_init was not called because CONFIG_BOARD_EARLY_INIT_F was not
set. Remove unused function.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoppc: xilinx_ppc405_generic: Remove uncalled functions
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:22 +0000 (11:24 +0100)]
ppc: xilinx_ppc405_generic: Remove uncalled functions

board_pre_init was not called because CONFIG_BOARD_EARLY_INIT_F was not
set. Remove unused function.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoppc: xilinx_ppc440_generic: Remove weak attributes
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:21 +0000 (11:24 +0100)]
ppc: xilinx_ppc440_generic: Remove weak attributes

Now that the specific boards have been removed there is no need to
maintain the weak functions.

Fix also CamelCase to make checkpatch happy

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoppc: xilinx_ppc405_generic: Remove weak attributes
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:20 +0000 (11:24 +0100)]
ppc: xilinx_ppc405_generic: Remove weak attributes

Now that the specific boards have been removed there is no need to
maintain the weak functions.

Fix also CamelCase to make checkpatch happy

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoppc: xilinx-ppc4xx: Port to DM serial
Ricardo Ribalda Delgado [Tue, 26 Jan 2016 10:24:19 +0000 (11:24 +0100)]
ppc: xilinx-ppc4xx: Port to DM serial

xilinx_uartlite has been ported to DM, this patch makes the
xilinx-ppc405-generic and the xilinx-ppc440-generic boards use the new
DM driver.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: zynqmp: Line up checkboard message
Michal Simek [Mon, 25 Jan 2016 10:04:21 +0000 (11:04 +0100)]
ARM: zynq: zynqmp: Line up checkboard message

Use space instead of tab in checkboard print to aligned
it with others boards.

Reported-by: David Glessner <david.glessner@rockwellcollins.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Moritz Fischer <moritz.fischer@ettus.com>
8 years agoARM64: zynqmp: Define auto negotiation timeout
Siva Durga Prasad Paladugu [Tue, 5 Jan 2016 09:51:46 +0000 (15:21 +0530)]
ARM64: zynqmp: Define auto negotiation timeout

Define auto negotiation timeout as 20secs
the default 4secs might not be sufficient
always and hence defined for worst case.
It is observed that autoneg takes moretime
if connected to outside network and hence
increase it to 20secs.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Do not setup bootargs
Michal Simek [Thu, 14 Jan 2016 12:44:29 +0000 (13:44 +0100)]
ARM64: zynqmp: Do not setup bootargs

Bootargs will be taken from DTS files.

Signed-off-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Dont use shortcut for setenv
Siva Durga Prasad Paladugu [Fri, 11 Sep 2015 06:27:25 +0000 (11:57 +0530)]
ARM64: zynqmp: Dont use shortcut for setenv

Dont use shortcut command for setenv as
it wont work now due introduction of new
command setexpr.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Modify the autoboot commands
Siva Durga Prasad Paladugu [Mon, 7 Sep 2015 05:33:47 +0000 (11:03 +0530)]
ARM64: zynqmp: Modify the autoboot commands

Modify DFU commands to use latest kernel offsets and sizes
as per modified partitions in the linux device tree.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Include GbE speed/duplex detection
Michal Simek [Thu, 24 Sep 2015 18:12:29 +0000 (20:12 +0200)]
ARM64: zynqmp: Include GbE speed/duplex detection

Get right speed/duplex via mii info.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Enable NATSEMI phys
Michal Simek [Wed, 23 Sep 2015 17:35:31 +0000 (19:35 +0200)]
ARM64: zynqmp: Enable NATSEMI phys

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Allow overwrite identification string
Michal Simek [Fri, 28 Aug 2015 11:34:37 +0000 (13:34 +0200)]
ARM64: zynqmp: Allow overwrite identification string

Keep default option there but allow overwrite it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>