oweals/u-boot.git
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-uniphier
Tom Rini [Fri, 1 Jul 2016 21:43:06 +0000 (17:43 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-uniphier

8 years agommc: increase MMC SDHCI read status timeout
Steve Rae [Wed, 29 Jun 2016 20:42:01 +0000 (13:42 -0700)]
mmc: increase MMC SDHCI read status timeout

Otherwise,  ocassionally see errors like this:
  Flashing sparse image at offset 2078720
  Flashing Sparse Image
  sdhci_send_command: Timeout for status update!
  mmc fail to send stop cmd
  write_sparse_image: Write failed, block #2181088 [0]

This does not affect the actual writing speed, which is controlled by
the default value:
  CONFIG_SDHCI_CMD_DEFAULT_TIMEOUT

It only increases the retries when reading:
  SDHCI_INT_STATUS
to avoid the timeout error.

Signed-off-by: Steve Rae <steve.rae@raedomain.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
8 years agoti_omap5_common: Find right dtb file for DRA72-RevC Evm
Lokesh Vutla [Wed, 29 Jun 2016 09:20:41 +0000 (14:50 +0530)]
ti_omap5_common: Find right dtb file for DRA72-RevC Evm

DRA72-Evm revC uses dra72-evm-revc.dtb. Update the same in env vatiables.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
8 years agoautoboot: move bootdelay >= 0 check to abortboot()
Masahiro Yamada [Mon, 27 Jun 2016 07:23:04 +0000 (16:23 +0900)]
autoboot: move bootdelay >= 0 check to abortboot()

Move the bootdelay >= 0 check to the caller, which simplifies
the callees.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agoautoboot: move CONFIG_SILENT_CONSOLE handling
Masahiro Yamada [Mon, 27 Jun 2016 07:23:03 +0000 (16:23 +0900)]
autoboot: move CONFIG_SILENT_CONSOLE handling

Factor out the same code from the callees to the caller.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agoautoboot: rename abortboot_{keyed, normal} to __abortboot
Masahiro Yamada [Mon, 27 Jun 2016 07:23:02 +0000 (16:23 +0900)]
autoboot: rename abortboot_{keyed, normal} to __abortboot

Because abortboot_keyed() and abortboot_normal() are not compiled
at the same time, we can rename both of them to __abortboot().
This allows to drop #ifdef from the caller.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agoautoboot: remove CONFIG_ZERO_BOOTDELAY_CHECK
Masahiro Yamada [Mon, 27 Jun 2016 07:23:01 +0000 (16:23 +0900)]
autoboot: remove CONFIG_ZERO_BOOTDELAY_CHECK

As the help message of CONFIG_BOOTDELAY says, CONFIG_BOOTDELAY=-2
means the autoboot with no delay, with no abort check even if
CONFIG_ZERO_BOOTDELAY_CHECK is defined.

To sum up, the autoboot behaves as follows:

 [1] CONFIG_BOOTDELAY=0 && CONFIG_ZERO_BOOTDELAY_CHECK=y
    autoboot with no delay, but you can abort it by key input

 [2] CONFIG_BOOTDELAY=0 && CONFIG_ZERO_BOOTDELAY_CHECK=n
    autoboot with no delay, with no check for abort

 [3] CONFIG_BOOTDELAY=-1
    disable autoboot

 [4] CONFIG_BOOTDELAY=-2
    autoboot with no delay, with no check for abort

As you notice, [2] and [4] come to the same result, which means we
do not need CONFIG_ZERO_BOOTDELAY_CHECK.  We can control all the
cases only by CONFIG_BOOTDELAY, like this:

 [1] CONFIG_BOOTDELAY=0
    autoboot with no delay, but you can abort it by key input

 [2] CONFIG_BOOTDELAY=-1
    disable autoboot

 [3] CONFIG_BOOTDELAY=-2
    autoboot with no delay, with no check for abort

This commit converts the logic as follow:
  CONFIG_BOOTDELAY=0 && CONFIG_ZERO_BOOTDELAY_CHECK=n
    --> CONFIG_BOOTDELAY=-2

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Christian Riesch <christian.riesch@omicronenergy.com>
Acked-by: Hannes Schmelzer <hannes.schmelzer@br-automation.com>
8 years agodoc: bootdelay: drop explanation about CONFIG_BOOTDELAY from README
Masahiro Yamada [Mon, 27 Jun 2016 07:23:00 +0000 (16:23 +0900)]
doc: bootdelay: drop explanation about CONFIG_BOOTDELAY from README

The same information now exists in common/Kconfig.  Do not duplicate
documentation from the point of view of maintainability.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agoARM: socfpga: move CONFIG_BOOTDELAY to Kconfig for IS1 board
Masahiro Yamada [Mon, 27 Jun 2016 07:22:59 +0000 (16:22 +0900)]
ARM: socfpga: move CONFIG_BOOTDELAY to Kconfig for IS1 board

This recently added board missed the tree-wide migration of
CONFIG_BOOTDELAY.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Pavel Machek <pavel@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoARM: AM437x: Align HS device variant defconfig filename
Andreas Dannenberg [Wed, 22 Jun 2016 22:10:26 +0000 (17:10 -0500)]
ARM: AM437x: Align HS device variant defconfig filename

Align the name of the defconfig file for high-security (HS) device variants
from the AM43xx family of SoCs with the corresponding name used for the
general purpose devices. This allows for easier cross-association of those
files and also provides room to grow from an HS device part number
perspective.

Furthermore, update and cleanup associated MAINTAINERS file.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Cc: Madan Srinivas <madans@ti.com>
8 years agodriver: qspi: correct QSPI disable CS reset value
Praneeth Bajjuri [Tue, 21 Jun 2016 08:35:36 +0000 (14:05 +0530)]
driver: qspi: correct QSPI disable CS reset value

Correcting QSPI disable/unselect CS reset value.
CTRL_CORE_CONTROL_IO_2: QSPI_MEMMAPPED_CS[10:8]

This is not causing any issue, but its better
to untouch the reserved bits.

Praneeth Bajjuri <praneeth@ti.com>
Signed-off-by: Ravi Babu <ravibabu@ti.com>
8 years agoARM: uniphier: add external IRQ setup code
Masahiro Yamada [Wed, 29 Jun 2016 10:39:03 +0000 (19:39 +0900)]
ARM: uniphier: add external IRQ setup code

I will carry this work-around until it is cared in the kernel.
This looks up the AIDET node and sets up a register to handle
active low interrupt signals.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: dts: uniphier: add AIDET nodes
Masahiro Yamada [Wed, 29 Jun 2016 10:39:02 +0000 (19:39 +0900)]
ARM: dts: uniphier: add AIDET nodes

The AIDET (ARM Interrupt Detector Add-on Circuit) is a kind of
syscon block related with the interrupt controller.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: add Ethernet pin-mux settings
Masahiro Yamada [Wed, 29 Jun 2016 10:39:01 +0000 (19:39 +0900)]
pinctrl: uniphier: add Ethernet pin-mux settings

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: avoid building unneeded pin-mux tables for SPL
Masahiro Yamada [Wed, 29 Jun 2016 10:39:00 +0000 (19:39 +0900)]
pinctrl: uniphier: avoid building unneeded pin-mux tables for SPL

SPL does not use all of the devices, so we can save some memory
footprint.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: support pin configuration for dedicated pins
Masahiro Yamada [Wed, 29 Jun 2016 10:38:59 +0000 (19:38 +0900)]
pinctrl: uniphier: support pin configuration for dedicated pins

PH1-LD4 and PH1-sLD8 SoCs have pins that support pin configuration
(pin biasing, drive strength control), but not pin-muxing.

Allow to fill the mux value table with -1 for those pins; pins with
mux value -1 will be skipped in the pin-mux set function.  The mux
value type should be changed from "unsigned" to "int" in order to
accommodate -1 as a special case.

[ Linux commit: 363c90e743b50a432a91a211dd8b078d9df446e9 ]

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: split pinctrl driver for PH1-LD11 and PH1-LD20
Masahiro Yamada [Wed, 29 Jun 2016 10:38:58 +0000 (19:38 +0900)]
pinctrl: uniphier: split pinctrl driver for PH1-LD11 and PH1-LD20

PH1-LD11 and PH1-LD20 have much pin controlling in common, so I
added a single driver shared between them in the initial commit.

However, the Ethernet pin-mux settings I am going to add are
different with each other, and they may diverge more as the
progress of development.  Split it into two dedicated drivers.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: allow to have pinctrl node under syscon node
Masahiro Yamada [Wed, 29 Jun 2016 10:38:57 +0000 (19:38 +0900)]
pinctrl: uniphier: allow to have pinctrl node under syscon node

Currently, the UniPhier pinctrl driver itself is a syscon, but it
turned out much more reasonable to make it a child node of a syscon
because our syscon node consists of a bunch of system configuration
registers, not only pinctrl, but also phy, and misc registers.
It is difficult to split the node.  This commit allows to migrate to
the new DT structure.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: dts: uniphier: sync Device Trees with upstream Linux
Masahiro Yamada [Wed, 29 Jun 2016 10:38:56 +0000 (19:38 +0900)]
ARM: dts: uniphier: sync Device Trees with upstream Linux

I periodically sync Device Trees for better maintainability.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: remove unneeded pin group nand_cs1
Masahiro Yamada [Wed, 29 Jun 2016 10:38:55 +0000 (19:38 +0900)]
pinctrl: uniphier: remove unneeded pin group nand_cs1

This SoC does not support NAND CS1.  This place-holder is no longer
necessary.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: fix NAND pin-mux setting for PH1-LD11/LD20
Masahiro Yamada [Wed, 29 Jun 2016 10:38:54 +0000 (19:38 +0900)]
pinctrl: uniphier: fix NAND pin-mux setting for PH1-LD11/LD20

My mistake in the initial support patch.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agopinctrl: uniphier: remove wrong pin-mux functions for ProXstream2
Masahiro Yamada [Wed, 29 Jun 2016 10:38:53 +0000 (19:38 +0900)]
pinctrl: uniphier: remove wrong pin-mux functions for ProXstream2

These are pin group names, not function names.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: fix typo "talbe"
Masahiro Yamada [Fri, 24 Jun 2016 02:51:38 +0000 (11:51 +0900)]
ARM: uniphier: fix typo "talbe"

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agox86: coreboot: Remove the dummy pch driver
Bin Meng [Wed, 22 Jun 2016 09:30:03 +0000 (02:30 -0700)]
x86: coreboot: Remove the dummy pch driver

There is a dummy pch driver in the coreboot directory. This causes
drivers of its children fail to function due to empty ops. Remove
the whole file since it is no longer needed.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoMerge git://git.denx.de/u-boot-fsl-qoriq
Tom Rini [Tue, 28 Jun 2016 19:59:05 +0000 (15:59 -0400)]
Merge git://git.denx.de/u-boot-fsl-qoriq

8 years agoconfigs: Re-sync after boot menu changes
Tom Rini [Tue, 28 Jun 2016 02:40:17 +0000 (22:40 -0400)]
configs: Re-sync after boot menu changes

Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agoarmv8: dts: fsl: Remove cpu nodes from Layerscape DTSIs
Abhimanyu Saini [Tue, 14 Jun 2016 07:48:31 +0000 (13:18 +0530)]
armv8: dts: fsl: Remove cpu nodes from Layerscape DTSIs

Currently layescape SoCs are not using cpu nodes. So removing
them in favour of compatibly with  similar SoCs that
have different cores like LS2080A and LS2088A.

This has been tested on LS2080AQDS, LS1043ARDB, LS1012ARDB.

Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Abhimanyu Saini <abhimanyu.saini@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8: fsl-layerscape: Append "A" in SoC name for ARM based SoCs
Prabhakar Kushwaha [Fri, 24 Jun 2016 08:18:13 +0000 (13:48 +0530)]
armv8: fsl-layerscape: Append "A" in SoC name for ARM based SoCs

Freescale ARMv8 SoC name ends with "A" to represent ARM SoCs.
like LS2080A, LS1043A, LS1012A.

So append "A" to SoC names.

Signed-off-by: Pratiyush Mohan Srivastava <pratiyush.srivastava@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agommc: fsl: introduce wp_enable
Peng Fan [Wed, 15 Jun 2016 02:53:02 +0000 (10:53 +0800)]
mmc: fsl: introduce wp_enable

Introudce wp_enable. To check WPSPL, wp_enable needs to be set
to 1 in board code.

Take i.MX6UL for example, for some boards, they do not use WP singal,
so they does not configure USDHC1_WP_SELECT_INPUT, and its default
value is 0(GPIO1_IO02). However GPIO1_IO02 is muxed for i2c usage and
SION bit set. So USDHC controller can always get wp signal and WPSPL
shows write protect and blocks driver continuing. This is not what
we want to see, so add wp_enable, and if set to 0, just omit the
WPSPL checking and this does not effect normal working of usdhc
controller.

If wp-gpios is provided in dts, wp_enable is set to 1, otherwise 0.

Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agofsl_esdhc: Update clock enable bits for USDHC
Ye Li [Wed, 15 Jun 2016 02:53:01 +0000 (10:53 +0800)]
fsl_esdhc: Update clock enable bits for USDHC

The USDHC moves the 4 clock bits CARD_CLK_SOFT_EN, IPG_PERCLK_SOFT_EN,
HCLK_SOFT_EN, and IPG_CLK_SOFT_EN from sysctl register to vendorspec
register. The driver uses RSTA to replace the clock gate off
operation. But this is not a good solution because:
1. when using RSTA, we should wait this bit to clear by itself. This is not
   implemeneted in the code.
2. After RSTA is set, it is recommended that the Host Driver reset the
   external card and reinitialize it.

So in this patch, we change to use the vendorspec registers for these bits
operation.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agommc: fsl: reset to normal boot mode when eMMC fast boot
Peng Fan [Wed, 15 Jun 2016 02:53:00 +0000 (10:53 +0800)]
mmc: fsl: reset to normal boot mode when eMMC fast boot

When booting in eMMC fast boot, MMC host does not exit from
boot mode after bootrom loading image. So the first command
'CMD0' sent in uboot will pull down the CMD line to low and
cause errors.

This patch cleans the MMC boot register in "mmc_init" to put the
MMC host back to normal mode.

Also clear DLL_CTRL delay line settings at USDHC initialization
to eliminate the pre-settings from boot rom.

Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Tested-by: Fabio Estevam <fabio.estevam@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8: ls1043aqds: print FPGA info early for QSPI boot
Qianyu Gong [Mon, 13 Jun 2016 03:20:32 +0000 (11:20 +0800)]
armv8: ls1043aqds: print FPGA info early for QSPI boot

Now I2C is initialized early enough to access FPGA so it supports to
show board info as early as other boot methods.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8: ls1043aqds: use configurable clock
Qianyu Gong [Mon, 13 Jun 2016 03:20:31 +0000 (11:20 +0800)]
armv8: ls1043aqds: use configurable clock

Get the clocks from FPGA through I2C, if IFC is disabled.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agocommon: add new boot media kconfig entry
Peng Fan [Fri, 17 Jun 2016 09:39:51 +0000 (17:39 +0800)]
common: add new boot media kconfig entry

Add CONFIG_{SD|NAND|ONENAND|SPI|QSPI|SATA}_BOOT kconfig entries.

SoCs supports loading U-Boot from different medias to DRAM, such as
i.MX6/7 supports loading U-Boot to DRAM from sd/emmc/nand/qspi/spi/sata
and etc. For i.MX, imximage will generate different IVT headers according
to boot medias.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Heiko Schocher <hs@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Christophe Ricard <christophe-h.ricard@st.com>
Cc: Nikita Kiryanov <nikita@compulab.co.il>
Cc: Francois Retief <fgretief@spaceteq.co.za>
Cc: Tom Rini <trini@konsulko.com>
8 years agoKconfig: make NOR_BOOT a common option
Peng Fan [Fri, 17 Jun 2016 09:39:50 +0000 (17:39 +0800)]
Kconfig: make NOR_BOOT a common option

Not only am335x supports booting from NOR, i.MX6 SoCs also
supports booting from NOR. Make NOR_BOOT a common
option to let different SoCs share it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Heiko Schocher <hs@denx.de>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Christophe Ricard <christophe-h.ricard@st.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Francois Retief <fgretief@spaceteq.co.za>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agomaintainers: new email address
Steve Rae [Mon, 27 Jun 2016 23:11:32 +0000 (16:11 -0700)]
maintainers: new email address

Update the email address for the boards that I maintain.

Signed-off-by: Steve Rae <steve.rae@raedomain.com>
8 years agofastboot: sparse: improve CHUNK_TYPE_FILL write performance
Steve Rae [Tue, 7 Jun 2016 18:19:39 +0000 (11:19 -0700)]
fastboot: sparse: improve CHUNK_TYPE_FILL write performance

- increase the size of the fill buffer
- testing has shown a 10x improvement when the sparse image
  has large CHUNK_TYPE_FILL chunks

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agofastboot: sparse: implement reserve()
Steve Rae [Tue, 7 Jun 2016 18:19:38 +0000 (11:19 -0700)]
fastboot: sparse: implement reserve()

In order to process the CHUNK_TYPE_DONT_CARE properly, there is
a requirement to be able to 'reserve' a specified number of blocks
in the storage media. Because of the special handling of "bad blocks"
in NAND devices, this is implemented in a storage abstraction function.

Signed-off-by: Steve Rae <srae@broadcom.com>
Reviewed-by: Maxime Ripard <maxime.ripard@free-electrons.com>
8 years agofastboot: sparse: resync common/image-sparse.c (part 2)
Steve Rae [Tue, 7 Jun 2016 18:19:37 +0000 (11:19 -0700)]
fastboot: sparse: resync common/image-sparse.c (part 2)

- update fastboot_okay() and fastboot_fail()

This file originally came from upstream code.

While retaining the storage abstraction feature, this is the second
set of the changes required to resync with the
  cmd_flash_mmc_sparse_img()
in the file
  aboot.c
from
  https://us.codeaurora.org/cgit/quic/la/kernel/lk/plain/app/aboot/aboot.c?h=LE.BR.1.2.1

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agofastboot: sparse: resync common/image-sparse.c (part 1)
Steve Rae [Tue, 7 Jun 2016 18:19:36 +0000 (11:19 -0700)]
fastboot: sparse: resync common/image-sparse.c (part 1)

This file originally came from upstream code.

While retaining the storage abstraction feature, this is the first
set of the changes required to resync with the
  cmd_flash_mmc_sparse_img()
in the file
  aboot.c
from
  https://us.codeaurora.org/cgit/quic/la/kernel/lk/plain/app/aboot/aboot.c?h=LE.BR.1.2.1

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agofastboot: sparse: remove session-id logic
Steve Rae [Tue, 7 Jun 2016 18:19:35 +0000 (11:19 -0700)]
fastboot: sparse: remove session-id logic

This "session-id" alogrithm is not required, and currently corrupts
the stored image whenever more the one "session" is required.

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-samsung
Tom Rini [Mon, 27 Jun 2016 15:31:23 +0000 (11:31 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-samsung

8 years agommc: dw_mmc: fix the wrong AND operation
Jaehoon Chung [Fri, 13 May 2016 14:37:44 +0000 (23:37 +0900)]
mmc: dw_mmc: fix the wrong AND operation

These condition checking are wrong.
Original Author's intention might be "&" instead of "&&".
It can know whether receive or transmit data request with
BIT[4]/BIT[5] of RINTSTS register.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
8 years agoarm: at91: taurus/axm: add DM and DTS support
Heiko Schocher [Wed, 25 May 2016 05:23:48 +0000 (07:23 +0200)]
arm: at91: taurus/axm: add DM and DTS support

add DM and DTS support for the at91 based siemens
boards.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
[rebased on current ToT]
Signed-off-by: Andreas Bießmann <andreas@biessmann.org>
8 years agoarm: at91: smartweb: add DM and DTS support
Heiko Schocher [Wed, 25 May 2016 05:23:47 +0000 (07:23 +0200)]
arm: at91: smartweb: add DM and DTS support

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
[rebased on current ToT]
Signed-off-by: Andreas Bießmann <andreas@biessmann.org>
8 years agoarm: at91: dts: Bring in dts files for AT91SAM9G20 and SAM9260
Heiko Schocher [Wed, 25 May 2016 05:23:46 +0000 (07:23 +0200)]
arm: at91: dts: Bring in dts files for AT91SAM9G20 and SAM9260

Add this files from Linux v4.6-rc5

66b8a424d: [workqueue: fix ghost PENDING flag while doing MQ IO]

Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Andreas Bießmann <andreas@biessmann.org>
8 years agocorvus DTS / DM support
Heiko Schocher [Wed, 25 May 2016 05:23:45 +0000 (07:23 +0200)]
corvus DTS / DM support

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
[rebase on current ToT, don't delete gurnard DTB creation]
Signed-off-by: Andreas Bießmann <andreas@biessmann.org>
8 years agoarm: at91: add CONFIG_AT91SAM9M10G45
Heiko Schocher [Wed, 25 May 2016 05:23:44 +0000 (07:23 +0200)]
arm: at91: add CONFIG_AT91SAM9M10G45

add support for CONFIG_AT91SAM9M10G45.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
8 years agoARM: at91: Don't invoke spl_boot_device() twice
Marek Vasut [Sat, 14 May 2016 21:42:28 +0000 (23:42 +0200)]
ARM: at91: Don't invoke spl_boot_device() twice

Since the spl_boot_mode() is now passed the boot device to boot from,
make use of it instead of inquiring for the boot device again. This
allows board_boot_order() to function correctly.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Andreas Bießmann <andreas.devel@googlemail.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
8 years agocommon: Pass the boot device into spl_boot_mode()
Marek Vasut [Sat, 14 May 2016 21:42:07 +0000 (23:42 +0200)]
common: Pass the boot device into spl_boot_mode()

The SPL code already knows which boot device it calls the spl_boot_mode()
on, so pass that information into the function. This allows the code of
spl_boot_mode() avoid invoking spl_boot_device() again, but it also lets
board_boot_order() correctly alter the behavior of the boot process.

The later one is important, since in certain cases, it is desired that
spl_boot_device() return value be overriden using board_boot_order().

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Andreas Bießmann <andreas.devel@googlemail.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
[add newly introduced zynq variant]
Signed-aff-by: Andreas Bießmann <andreas@biessmann.org>
8 years agokbuild: avoid race between dtbs and dt/dt.dtb targets
Masahiro Yamada [Thu, 23 Jun 2016 04:53:46 +0000 (13:53 +0900)]
kbuild: avoid race between dtbs and dt/dt.dtb targets

If the final targets depend on both "dtbs" and "dts/dt.dtb",
and -j option is given to the command line, multiple threads
descend into the dts/ directory, which causes build error.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Andreas Dannenberg <dannenberg@ti.com>
8 years agoefi_loader: Fix typo in distro script
Alexander Graf [Wed, 22 Jun 2016 23:15:38 +0000 (01:15 +0200)]
efi_loader: Fix typo in distro script

The distro script is supposed to use the internal fdt as fallback if we
find no viable other option. However, we're missing a space key to actually
make that work.

Add the space, so we can successfully load an EFI blob even when there is
no device tree provided on the target device.

Signed-off-by: Alexander Graf <agraf@suse.de>
8 years agoboard/BuR: rename kwb board to brxre1
Hannes Schmelzer [Wed, 22 Jun 2016 10:36:14 +0000 (12:36 +0200)]
board/BuR: rename kwb board to brxre1

Rename B&R kwb board to brxre1

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoboard/BuR: rename tseries board to brppt1
Hannes Schmelzer [Wed, 22 Jun 2016 10:36:13 +0000 (12:36 +0200)]
board/BuR: rename tseries board to brppt1

Rename B&R tseries board to brppt1

Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoarm: bcm235xx: update clock framework
Steve Rae [Tue, 21 Jun 2016 23:43:07 +0000 (16:43 -0700)]
arm: bcm235xx: update clock framework

The handling of the "usage counter" is incorrect, and the clock should
only be disabled when transitioning from 1 to 0.

Reported-by: Chris Brand <chris.brand@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agoarm: bcm235xx: fix kps ccu
Chris Brand [Tue, 21 Jun 2016 23:43:06 +0000 (16:43 -0700)]
arm: bcm235xx: fix kps ccu

The Kona Peripheral Slave CCU has 4 policy mask registers, not 8.

Signed-off-by: Chris Brand <chris.brand@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agoarm: bcm235xx: implement the boot0 hook code
Steve Rae [Tue, 21 Jun 2016 23:43:05 +0000 (16:43 -0700)]
arm: bcm235xx: implement the boot0 hook code

Choose the Kconfig boot0 hook option and implement the required code.

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agoarm: bcm235xx: choose 8-bit phy bus width
Steve Rae [Tue, 21 Jun 2016 23:43:04 +0000 (16:43 -0700)]
arm: bcm235xx: choose 8-bit phy bus width

The Kona PHY supports an 8-bit wide UTMI interface,
therefore, choose this Kconfig setting.

Signed-off-by: Steve Rae <srae@broadcom.com>
8 years agoclk: sandbox: don't check clk ID against 0
Stephen Warren [Tue, 21 Jun 2016 19:32:07 +0000 (13:32 -0600)]
clk: sandbox: don't check clk ID against 0

clk->id is unsigned, so it can't be < 0. Remove the check for that.

FWIW, this issue was introduced when the clock API converted e.g.
clk_get_rate()'s clock ID parameter from an int to an unsigned long
(with a struct clk), without removing this check.

Fixes: 135aa9500264 ("clk: convert API to match reset/mailbox style")
Reported-by: Coverity Scan
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agocommon: Fix support for environment file in EXT4
Andrej Rosano [Tue, 21 Jun 2016 15:54:25 +0000 (17:54 +0200)]
common: Fix support for environment file in EXT4

Signed-off-by: Andrej Rosano <andrej@inversepath.com>
8 years agoARM: armv7: refactor Makefile slightly
Masahiro Yamada [Tue, 21 Jun 2016 12:30:09 +0000 (21:30 +0900)]
ARM: armv7: refactor Makefile slightly

Use Kbuild standard style where possible.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agohush: complete renaming CONFIG_SYS_HUSH_PARSER to CONFIG_HUSH_PARSER
Masahiro Yamada [Mon, 20 Jun 2016 17:11:19 +0000 (02:11 +0900)]
hush: complete renaming CONFIG_SYS_HUSH_PARSER to CONFIG_HUSH_PARSER

There is no more define of CONFIG_SYS_HUSH_PARSER.  Rename some
remaining references and drop the backward compatible Kconfig entry.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoMove CONFIG_SYS_HUSH_PARSER to Kconfig for last 4 boards
Masahiro Yamada [Mon, 20 Jun 2016 17:11:18 +0000 (02:11 +0900)]
Move CONFIG_SYS_HUSH_PARSER to Kconfig for last 4 boards

I still see some defines of this config in board headers.  Move them
to defconfigs (+ renaming to CONFIG_HUSH_PARSER) to complete this
migration.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agomtd: nand: Drop a blank line in nand_wait()
Andre Renaud [Mon, 20 Jun 2016 01:25:25 +0000 (19:25 -0600)]
mtd: nand: Drop a blank line in nand_wait()

This empty line should not be there. Remove it.
Signed-off-by: Andre Renaud <andre@designa-electronics.com>
Reviewed-by: Andreas Bießmann <andreas@biessmann.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
8 years agoARM: move #ifdef to match the error handling code
Masahiro Yamada [Fri, 17 Jun 2016 12:51:48 +0000 (21:51 +0900)]
ARM: move #ifdef to match the error handling code

Match the #ifdef ... #endif and the code,

   ret = do_something();
   if (ret)
           return ret;

This will make it easier to add more #ifdef'ed code.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoarm64: optimize smp_kick_all_cpus
Masahiro Yamada [Fri, 17 Jun 2016 09:32:47 +0000 (18:32 +0900)]
arm64: optimize smp_kick_all_cpus

gic_kick_secondary_cpus can directly return to the caller of
smp_kick_all_cpus.  We do not have to use x29 register here.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agolib/lzo: bugfix when input data is not compressed
Joris Lijssens [Fri, 17 Jun 2016 08:46:58 +0000 (10:46 +0200)]
lib/lzo: bugfix when input data is not compressed

When the input data is not compressed at all,
lzo1x_decompress_safe will fail, so call memcpy()
instead.

Signed-off-by: Joris Lijssens <joris.lijssens@gmail.com>
8 years agoenv: avoid build error for boards without CONFIG_SYS_{CPU, BOARD}
Masahiro Yamada [Fri, 17 Jun 2016 05:24:07 +0000 (14:24 +0900)]
env: avoid build error for boards without CONFIG_SYS_{CPU, BOARD}

If CONFIG_ENV_VARS_UBOOT_CONFIG is enabled (it is by distro), this
code causes build error for boards without CONFIG_SYS_{CPU,_BOARD}.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoRespect SOURCE_DATE_EPOCH when building FIT images.
Vagrant Cascadian [Thu, 16 Jun 2016 19:28:40 +0000 (12:28 -0700)]
Respect SOURCE_DATE_EPOCH when building FIT images.

Embedding timestamps in FIT images results in unreproducible builds
for targets that generate a fit image, such as dra7xx_evm.

This patch uses the SOURCE_DATE_EPOCH environment variable, when set,
to use specified value for the date.

Thanks to HW42 for debugging the issue and providing the patch:

  https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160606/005722.html

For more information about reproducible builds and the
SOURCE_DATE_EPOCH specification:

  https://reproducible-builds.org/specs/source-date-epoch/
  https://reproducible-builds.org/

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoUse C locale when setting CC_VERSION_STRING and LD_VERSION_STRING.
Vagrant Cascadian [Sun, 12 Jun 2016 13:07:07 +0000 (06:07 -0700)]
Use C locale when setting CC_VERSION_STRING and LD_VERSION_STRING.

The output reported may be locale-dependent, which results in
unreproducible builds.

  $ LANG=C ld --version | head -n 1
    GNU ld (GNU Binutils for Debian) 2.26

  $ LANG=it_CH.UTF-8 ld --version | head -n 1
    ld di GNU (GNU Binutils for Debian) 2.26

Forcing LC_ALL=C ensures the output is consistant regardless of the
build environment.

Thanks to HW42 for debugging the issue:

  https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160606/005722.html

For more information about reproducible builds:

  https://reproducible-builds.org/

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoboard: amlogic: Rename folder for Amlogic boards
Carlo Caione [Fri, 10 Jun 2016 18:18:23 +0000 (20:18 +0200)]
board: amlogic: Rename folder for Amlogic boards

s/hardkernel/amlogic/ to have a single place for all the amlogic-based
boards.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Carlo Caione <carlo@endlessm.com>
Acked-by: Beniamino Galvani <b.galvani@gmail.com>
8 years agoconfigs: gxbb: Introduce a common config header file
Carlo Caione [Fri, 10 Jun 2016 18:18:22 +0000 (20:18 +0200)]
configs: gxbb: Introduce a common config header file

Introduce a meson-gxbb-common.h header file and derive the
configuration for Hardkernel Odroid-C2 board from that.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Carlo Caione <carlo@endlessm.com>
Acked-by: Beniamino Galvani <b.galvani@gmail.com>
8 years agocommon: image: minimal android image iminfo support
Michael Trimarchi [Fri, 10 Jun 2016 17:54:37 +0000 (19:54 +0200)]
common: image: minimal android image iminfo support

We already support iminfo for other images. The idea
of this patch is start to have a minimal support for
android image format. We still need to print id[] array

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agomkimage: fit: spl: Add an optional static offset for external data
Teddy Reed [Fri, 10 Jun 2016 02:38:02 +0000 (19:38 -0700)]
mkimage: fit: spl: Add an optional static offset for external data

When building a FIT with external data (-E), U-Boot proper may require
absolute positioning for executing the external firmware. To acheive this
use the (-p) switch, which will replace the amended 'data-offset' with
'data-position' indicating the absolute position of external data.

It is considered an error if the requested absolute position overlaps with the
initial data required for the compact FIT.

Signed-off-by: Teddy Reed <teddy.reed@gmail.com>
8 years agocmd: bootefi: cosmetic
Sergey Kubushyn [Tue, 7 Jun 2016 18:14:31 +0000 (11:14 -0700)]
cmd: bootefi: cosmetic

Short help (description) in bootefi command has a trailing "\n" that
breaks the "help" command output (empty line after "bootefi").

Nothing important, doesn't affect anything but better be fixed in the
upcoming release.

Still working on i.MX6 and their siblings NAND U-Boot update -- it
works here but not ready for a submission yet. Anyway it is for the
next cycle, not going to go into this release because it is too big
and may affect something else.

Also have some thoughts about fastboot (using multiple devices) but
this will go into separate email with RFC.

Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
8 years agoomap3: bugfix in timer on rollover
Daniel Gorsulowski [Mon, 6 Jun 2016 07:40:11 +0000 (09:40 +0200)]
omap3: bugfix in timer on rollover

Signed-off-by: Daniel Gorsulowski <daniel.gorsulowski@esd.eu>
8 years agoarmv8: ls1043aqds: fix to get boot device info from FPGA
Qianyu Gong [Mon, 13 Jun 2016 03:20:30 +0000 (11:20 +0800)]
armv8: ls1043aqds: fix to get boot device info from FPGA

The LBMAP switches on the board will tell which boot device is used.
Only QSPI boot is supported if the boot device is IFCCard.

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/fsl_lsch2: Correct the cores frequency initialization
Hou Zhiqiang [Sun, 12 Jun 2016 06:42:04 +0000 (14:42 +0800)]
armv8/fsl_lsch2: Correct the cores frequency initialization

The register CLKCNCSR controls the frequency of all cores in the same
cluster.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-uniphier
Tom Rini [Wed, 22 Jun 2016 00:43:21 +0000 (20:43 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-uniphier

8 years agotools: moveconfig: show suspicious boards with possible misconversion
Masahiro Yamada [Wed, 15 Jun 2016 05:33:54 +0000 (14:33 +0900)]
tools: moveconfig: show suspicious boards with possible misconversion

There are some cases where config options are moved, but they are
ripped off at the final savedefconfig stage:

  - The moved option is not user-configurable, for example, due to
    a missing prompt in the Kconfig entry

  - The config was not defined in the original config header despite
    the Kconfig specifies it as non-bool type

  - The config define in the header contains reference to another
    macro, for example:
        #define CONFIG_CONS_INDEX     (CONFIG_SYS_LPC32XX_UART - 2)
    The current moveconfig does not support recursive macro expansion.

In these cases, the conversion is very likely to be an unexpected
result.  That is why I decided to display the log in yellow color
in commit 5da4f857beac ("tools: moveconfig: report when CONFIGs are
removed by savedefconfig").

It would be nice to display the list of suspicious boards when the
tool finishes processing.  It is highly recommended to check the
defconfigs once again when this message is displayed.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agotools: moveconfig: simplify show_failed_boards() and show more info
Masahiro Yamada [Wed, 15 Jun 2016 05:33:53 +0000 (14:33 +0900)]
tools: moveconfig: simplify show_failed_boards() and show more info

Since commit 1d085568b3de ("tools: moveconfig: display log atomically
in more readable format"), the function color_text() is clever enough
to exclude LF from escape sequences.  Exploit it for removing the
"for" loops from Slots.show_failed_boards().

Also, display "(the list has been saved in moveconfig.failed)" if
there are failed boards.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agotools: moveconfig: simplify source tree switching
Masahiro Yamada [Wed, 15 Jun 2016 05:33:52 +0000 (14:33 +0900)]
tools: moveconfig: simplify source tree switching

The subprocess.Popen() does not change the child process's working
directory if cwd=None is given.  Let's exploit this fact to refactor
the source directory handling.

We no longer have to pass "-C <reference_src_dir>" to the sub-process
because self.current_src_dir tracks the source tree against which we
want to run defconfig/autoconf.

The flag self.use_git_ref is not necessary either because we can know
the current state by checking whether the self.current_src_dir is a
valid string or None.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agotools: moveconfig: change class WorkDir to class ReferenceSource
Masahiro Yamada [Wed, 15 Jun 2016 05:33:51 +0000 (14:33 +0900)]
tools: moveconfig: change class WorkDir to class ReferenceSource

The class WorkDir can be used in a very generic way, but currently
it is only used for containing a reference source directory.

This commit changes it for a more dedicated use.  The move_config
function can be more readable by enclosing the git-clone and git-
checkout in the class constructor.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agotools: moveconfig: fix needless move for config with default 1
Masahiro Yamada [Wed, 15 Jun 2016 05:33:50 +0000 (14:33 +0900)]
tools: moveconfig: fix needless move for config with default 1

When moving an integer type option with default value 1, the tool
moves configs with the same value as the default (, and then removed
by the later savedefconfig).  This is a needless operation.

The KconfigParser.parse_one_config() should compare the config after
the "=y -> =1" fixup.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoNFS: Add error message when U-Boot NFS version (V2) is not supported by NFS server
Guillaume GARDET [Mon, 6 Jun 2016 13:11:45 +0000 (15:11 +0200)]
NFS: Add error message when U-Boot NFS version (V2) is not supported by NFS server

Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Cc: joe.hershberger@ni.com
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: phy: marvell: Do not reset 88e1310 after autoneg
Nathan Rossi [Fri, 3 Jun 2016 13:16:17 +0000 (23:16 +1000)]
net: phy: marvell: Do not reset 88e1310 after autoneg

Commit a058052c "net: phy: do not read configuration register on reset",
changes the behaviour of the phy_reset function such that the state of
the BMCR register is not preserved during reset.

Change the config function for the m88e1310 so that it does not do a
reset after configuring auto-negotiation.

Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Stefan Roese <sr@denx.de>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agonet: phy: micrel: add support for KSZ886x switches in MIIM mode
Alexey Firago [Thu, 26 May 2016 13:28:44 +0000 (16:28 +0300)]
net: phy: micrel: add support for KSZ886x switches in MIIM mode

This patch adds a phy driver for the Micrel KSZ886x switches.

Similarly to the KSZ8895, SoC MAC is directly connected to the switch
MAC on the switch CPU port, so the link to the switch is always up.

KSZ886x switches can be used in the following configuration modes:
- Unmanaged mode with config stored in external EEPROM
- Managed mode over SPI
- Managed mode over I2C
- Managed mode over mdio/mdc (aka MIIM or SMI)

This patch supports only unmanaged and MIIM modes.

Based on Micrel KSZ886x driver from Linux kernel and
Micrel KSZ8895 driver from U-Boot.

Verified with the KSZ8863MLL.

Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agonet: rtl8169: fix switching between adapters
Stephen Warren [Tue, 26 Apr 2016 21:29:00 +0000 (15:29 -0600)]
net: rtl8169: fix switching between adapters

The rtl8169 driver uses a global variable to store the register address
of the adapter being operated upon. This is updated to point at the
correct adapter when sending or receiving a packet, or shutting down the
adapter, but not when initializing the adapter. Consequently, switching
between different adapters within the same U-Boot runtime does not work
correctly since the driver programs the wrong registers during
rtl8169_eth_start() -> rtl8169_common_start() -> rtl8169_hw_start().

Note that since rtl8169_eth_stop() does set the global variable, the
second consecutive attempt to use the "new" adapter did work even before
this patch, because each time network usage is shut down, the network
core calls stop, which sets the variable so that the next start does
actually initialize the hardware, and the adapter works.

Equally, rtl8169_eth_probe() calls rtl_init() which sets the global, so
if using only a single device, or if picking the "right" device (based on
probe order) when multiple devices are present, ioaddr will already be set
correctly from the get-go, so the issue does not occur.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoKconfig: Add a new DISTRO_DEFAULTS Kconfig option
Hans de Goede [Mon, 20 Jun 2016 21:16:28 +0000 (23:16 +0200)]
Kconfig: Add a new DISTRO_DEFAULTS Kconfig option

DISTRO_DEFAULTS is intended to mirror / replace
include/config_distro_defaults.h.

The intend is for boards which include this file to select this from
their Kconfig files and when moving setting to Kconfig which are #define-ed
in config_distro_defaults.h to select this from DISTRO_DEFAULTS so that
boards which have selected DISTRO_DEFAULTS will keep the same configuration
as before without needing any defconfig file changes.

The initial list of selected things matches all settings recently removed
from config_distro_defaults.h because they have been converted to Kconfig,
with the exception of CMD_ELF and CMD_NET, which have a default of y, if
the default of these ever changes they should be selected by DISTRO_DEFAULTS
too.

For testing and example purposes this commit also converts ARCH_SUNXI
to use DISTRO_DEFAULT instead of selecting everything it needs itself.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add PSCI implementation in C
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:34 +0000 (10:54 +0800)]
sunxi: Add PSCI implementation in C

To make the PSCI backend more maintainable and easier to port to newer
SoCs, rewrite the current PSCI implementation in C.

Some inline assembly bits are required to access coprocessor registers.
PSCI stack setup is the only part left completely in assembly. In theory
this part could be split out of psci_arch_init into a separate common
function, and psci_arch_init could be completely in C.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add base address for GIC
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:33 +0000 (10:54 +0800)]
sunxi: Add base address for GIC

Instead of hardcoding the GIC addresses in the PSCI implementation,
provide a base address in the cpu header.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add CPUCFG debug lock and sun7i cpu power controls
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:32 +0000 (10:54 +0800)]
sunxi: Add CPUCFG debug lock and sun7i cpu power controls

CPUCFG has an unlisted debug control register, which is used to disable
external debug access.

Also, sun7i secondary core power controls are in CPUCFG, as there's no
separate PRCM block.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Group cpu core related controls together
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:31 +0000 (10:54 +0800)]
sunxi: Group cpu core related controls together

Instead of listing individual registers for controls to each processor
core, list them as an array of registers. This makes accessing controls
by core index easier.

Also rename "cpucfg_sun6i.h" (which was unused anyway) to the more generic
"cpucfg.h", and add packed attribute to struct sunxi_cpucfg.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add missing linux/types.h header for cpucfg_sun6i.h
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:30 +0000 (10:54 +0800)]
sunxi: Add missing linux/types.h header for cpucfg_sun6i.h

cpucfg_sun6i.h includes a register definition for the CPUCFG register
block. The types used are u32 and u8, which are defined in linux/types.h.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add packed attribute to struct sunxi_prcm_reg
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:29 +0000 (10:54 +0800)]
sunxi: Add packed attribute to struct sunxi_prcm_reg

struct sunxi_prcm_reg is a representation of the PRCM registers. Add
the packed attribute to prevent the compiler from doing funny things.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Make CPUCFG_BASE macro names the same across families
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:28 +0000 (10:54 +0800)]
sunxi: Make CPUCFG_BASE macro names the same across families

Use SUNXI_CPUCFG_BASE across all families. This makes writing common
PSCI code easier.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agoARM: allocate extra space for PSCI stack in secure section during link phase
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:27 +0000 (10:54 +0800)]
ARM: allocate extra space for PSCI stack in secure section during link phase

The PSCI implementation expects at most 2 pages worth of space reserved
at the end of the secure section for its stacks. If PSCI is relocated to
secure SRAM, then everything is fine. If no secure SRAM is available,
and PSCI remains in main memory, the reserved memory space doesn't cover
the space used by the stack.

If one accesses PSCI after Linux has fully booted, the memory that should
have been reserved for the PSCI stacks may have been used by the kernel
or userspace, and would be corrupted. Observed after effects include the
system hanging or telinit core dumping when trying to reboot. It seems
the init process gets hit the most on my test bed.

This fix allocates the space used by the PSCI stacks in the secure
section by skipping pages in the linker script, but only when there is
no secure SRAM, to avoid bloating the binary.

This fix is only a stop gap. It would be better to rework the stack
allocation mechanism, maybe with proper usage of CONFIG_ macros and an
explicit symbol.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agoARM: PSCI: export common PSCI function declarations for C code
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:26 +0000 (10:54 +0800)]
ARM: PSCI: export common PSCI function declarations for C code

Some common PSCI functions are written in assembly, but it should be
possible to use them from C code.

Add function declarations for C code to consume.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agoARM: PSCI: save and restore clobbered registers in v7_flush_dcache_all
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:25 +0000 (10:54 +0800)]
ARM: PSCI: save and restore clobbered registers in v7_flush_dcache_all

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
8 years agoARM: PSCI: use only r0 and r3 in psci_get_cpu_stack_top()
Chen-Yu Tsai [Tue, 7 Jun 2016 02:54:24 +0000 (10:54 +0800)]
ARM: PSCI: use only r0 and r3 in psci_get_cpu_stack_top()

For psci_get_cpu_stack_top() to be usable in C code, it must adhere to
the ARM calling conventions. Since it could be called when the stack
is still unavailable, and the entry code to linux also expects r1 and
r2 to remain unchanged, stick to r0 and r3.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>