platform/kernel/u-boot.git
8 years agoarmv8: ls1043a: load Fman ucode from NAND flash under NAND boot
Qianyu Gong [Fri, 1 Apr 2016 09:52:52 +0000 (17:52 +0800)]
armv8: ls1043a: load Fman ucode from NAND flash under NAND boot

Signed-off-by: Gong Qianyu <Qianyu.Gong@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8/ls1043aqds: modify CONFIG_SYS_MAX_FLASH_BANKS to 1
Wenbin Song [Fri, 1 Apr 2016 09:28:41 +0000 (17:28 +0800)]
armv8/ls1043aqds: modify CONFIG_SYS_MAX_FLASH_BANKS to 1

There is only one flash bank for ls1043aqds.

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarm: ls102xa: Fix order of CSU indexes in ns_access.h
Vincent Siles [Tue, 29 Mar 2016 07:41:16 +0000 (09:41 +0200)]
arm: ls102xa: Fix order of CSU indexes in ns_access.h

This patch aims to fix the order of CSU slave index for the LS1021a
board.

Signed-off-by: Vincent Siles <vincent.siles@provenrun.com>
Reviewed-by: Alison Wang <alison.wang@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8: LSCH2 early and final mmu needs matching NS attribute
Ed Swarthout [Mon, 28 Mar 2016 21:16:01 +0000 (16:16 -0500)]
armv8: LSCH2 early and final mmu needs matching NS attribute

When switching between the early and final mmu tables, the stack will
get corrupted if the Non-Secure attribute is different.  For ls1043a,
this issue is currently masked because flush_dcache_all is called
before the switch when CONFIG_SYS_DPAA_FMAN is defined.

Signed-off-by: Ed Swarthout <Ed.Swarthout@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoarmv8: ls1043aqds: make sure fixed-link property is big endian
Shaohui Xie [Fri, 25 Mar 2016 03:36:51 +0000 (11:36 +0800)]
armv8: ls1043aqds: make sure fixed-link property is big endian

When setting fixed-link property to DTS, the values should be converted
with using cpu_to_fdt32 so that to have correct value on little endian
Soc.

Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodrivers: net: vsc9953: Fix bug when PVID is shown for disabled ports only
Codrin Ciubotariu [Mon, 14 Mar 2016 11:46:50 +0000 (13:46 +0200)]
drivers: net: vsc9953: Fix bug when PVID is shown for disabled ports only

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agodrivers: net: vsc9953: Do not configure disabled ports
Codrin Ciubotariu [Mon, 14 Mar 2016 11:46:52 +0000 (13:46 +0200)]
drivers: net: vsc9953: Do not configure disabled ports

Some SerDes protocols might not enable all l2switch ports. In this case,
these ports should not be configured to perform Rx/Tx operations.
This also fixes an issue when flooded frames were also switched to
disabled ports and frames start to accumulate, consuming memory
and eventually causing head-of-line blocking for other frames.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agofsl: esdhc: consolidate fsl_esdhc_cfg structure
Peng Fan [Tue, 15 Mar 2016 09:57:50 +0000 (17:57 +0800)]
fsl: esdhc: consolidate fsl_esdhc_cfg structure

We can use phys_addr_to for esdhc_base to discard
the #ifdef.

Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Yangbo Lu <yangbo.lu@nxp.com>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agofsl: esdhc: support driver model
Peng Fan [Fri, 25 Mar 2016 06:16:56 +0000 (14:16 +0800)]
fsl: esdhc: support driver model

Support Driver Model for fsl esdhc driver.

1. Introduce a new structure struct fsl_esdhc_priv
2. Refactor fsl_esdhc_initialize which is originally used by board code.
   - Introduce fsl_esdhc_init to be common usage for DM and non-DM
   - Introduce fsl_esdhc_cfg_to_priv to build the bridge for non-DM part.
   - The original API for board code is still there, but we use
     'fsl_esdhc_cfg_to_priv' and 'fsl_esdhc_init' to serve it.
3. All the functions are changed to use 'struct fsl_esdhc_priv', except
   fsl_esdhc_initialize.
4. Since clk driver is not implemented, use mxc_get_clock to geth
   the clk and fill 'priv->sdhc_clk'.

Has been tested on i.MX6UL 14X14 EVK board:
"
=>dm tree
....
 simple_bus  [ + ]    |   `-- aips-bus@02100000
  mmc        [ + ]    |       |-- usdhc@02190000
  mmc        [ + ]    |       |-- usdhc@02194000
....
=> mmc list
FSL_SDHC: 0 (SD)
FSL_SDHC: 1 (SD)
"

Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Yangbo Lu <yangbo.lu@nxp.com>
Cc: Hector Palacios <hector.palacios@digi.com>
Cc: Eric Nelson <eric@nelint.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Simon Glass <sjg@chromium.org>
Tested-By: Eric Nelson <eric@nelint.com>
Reviewed-by: York Sun <york.sun@nxp.com>
8 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Mon, 4 Apr 2016 18:34:09 +0000 (14:34 -0400)]
Merge branch 'master' of git://denx.de/git/u-boot-microblaze

8 years agoARM64: zynqmp: Enable EFI partition support
Michal Simek [Thu, 24 Mar 2016 12:16:29 +0000 (13:16 +0100)]
ARM64: zynqmp: Enable EFI partition support

Enable EFI partition support for ZynqMP.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: zynq_gem: Add SGMII support for zynqMP
Siva Durga Prasad Paladugu [Fri, 25 Mar 2016 07:23:44 +0000 (12:53 +0530)]
net: zynq_gem: Add SGMII support for zynqMP

PCS auto negotaiation bit should be enabled
along with SGMII autonegotation enabled
in phy.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: phy: Add SGMII support for TI phy
Siva Durga Prasad Paladugu [Fri, 25 Mar 2016 07:23:43 +0000 (12:53 +0530)]
net: phy: Add SGMII support for TI phy

Add support of SGMII to TI phy dp838367
Enable the SGMII and PCS settings in phy
control, CFG2 and BIST registers

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: zynq_gem: Return error incase of invalid phy address
Siva Durga Prasad Paladugu [Wed, 30 Mar 2016 06:59:49 +0000 (12:29 +0530)]
net: zynq_gem: Return error incase of invalid phy address

Return error from probe in case of invalid phy address.
This fixes the issue of uboot crash if phy is not detected.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: Add uEnv.txt support
Michal Simek [Fri, 18 Mar 2016 22:43:39 +0000 (23:43 +0100)]
ARM: zynq: Add uEnv.txt support

preboot macro load the uEnv.txt from mmc 0 when bootmode is mmc. uenvcmd is
executed after load of uEnv.txt if it is defined in the uEnv.txt env text
file.

The default importbootenv macro reads the uEnv.txt from mmc.

Additional to this, usb_loadbootenv is added to support loading uEnv.txt
from usb dev 0.

Signed-off-by: Jason Wu <jason.wu.misc@gmail.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: Enable FLASH_BAR for microzed and zybo
Michal Simek [Fri, 18 Mar 2016 17:41:28 +0000 (18:41 +0100)]
ARM: zynq: Enable FLASH_BAR for microzed and zybo

Enable FLASH_BAR for these targets to be in sync with all zynq boards.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoblock: Add support for Ceva sata
Michal Simek [Wed, 30 Sep 2015 15:26:55 +0000 (17:26 +0200)]
block: Add support for Ceva sata

Initial Ceva Sata init code.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM64: zynqmp: Simplify MAINTAINERS file to support more boards
Michal Simek [Fri, 18 Mar 2016 22:45:02 +0000 (23:45 +0100)]
ARM64: zynqmp: Simplify MAINTAINERS file to support more boards

Handle all Xilinx ZynqMP boards with one fragment.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Read RAM information from DT
Michal Simek [Mon, 8 Feb 2016 08:34:53 +0000 (09:34 +0100)]
ARM64: zynqmp: Read RAM information from DT

Read information about memory from DT. This patch simplify life with
synchronization between DT and board files.

dram_init() only needs maximum RAM size below 4GB that's why please sort
banks in memory node.
dram_init_banksize() copies memory setup to bi_dram[].
This will avoid reading information from DT twice.

Memory test start/end were changed to DDR location to let memtest still
compiled.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: Move HUSH enabling from board file to defconfig
Michal Simek [Fri, 18 Mar 2016 17:47:28 +0000 (18:47 +0100)]
ARM64: Move HUSH enabling from board file to defconfig

Simplify board config file.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Select SYS_CONFIG_NAME via Kconfig
Michal Simek [Fri, 18 Mar 2016 17:21:36 +0000 (18:21 +0100)]
ARM64: zynqmp: Select SYS_CONFIG_NAME via Kconfig

This option enable adding new platform suport just by adding defconfig
and DTS file which will target generic configuration for SoC.
Make no sense to extend Kconfig just create a pointer between DTS and
configuration file.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Enable FAT write and EXT4 write for USB too
Michal Simek [Fri, 18 Mar 2016 17:10:21 +0000 (18:10 +0100)]
ARM64: zynqmp: Enable FAT write and EXT4 write for USB too

Enabling writing files to FAT and EXT4 for USB.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Decrease boot delay
Soren Brinkmann [Mon, 1 Feb 2016 22:56:20 +0000 (14:56 -0800)]
ARM64: zynqmp: Decrease boot delay

Synchronize it with zynq platform.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: axi_emac: Report phy-node error message permanently
Michal Simek [Mon, 8 Feb 2016 12:54:05 +0000 (13:54 +0100)]
net: axi_emac: Report phy-node error message permanently

Do not use debug() when printing error message. Use printf instead.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agomicroblaze: Remove !OF_CONTROL code for timer and interrupt
Michal Simek [Mon, 15 Feb 2016 12:44:19 +0000 (13:44 +0100)]
microblaze: Remove !OF_CONTROL code for timer and interrupt

OF_CONTROL is enabled by default that's why this is dead code.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agomicroblaze: Read information about timer/interrupts from DT
Michal Simek [Mon, 15 Feb 2016 11:10:32 +0000 (12:10 +0100)]
microblaze: Read information about timer/interrupts from DT

Read information about timer and interrupts from DT. This is the first
small step to move timer and intc to DM.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: Fix default ps7_init_gpl.c/h for ZYBO
Michal Simek [Thu, 3 Mar 2016 12:25:03 +0000 (13:25 +0100)]
ARM: zynq: Fix default ps7_init_gpl.c/h for ZYBO

There is incorrect setting for USB which didn't work with origin
ps7_init_gpl.X files.
Use default setting for Digilent Zybo projects with HDMI in PL.

Signed-off-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: zybo: Enabling reading MAC address from EEPROM
Michal Simek [Sat, 13 Feb 2016 09:18:50 +0000 (10:18 +0100)]
ARM: zynq: zybo: Enabling reading MAC address from EEPROM

Zybo has on board I2C EEPROM which contains preprogrammed MAC address.

Signed-off-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: gem: Allow to set the MAC from an EEPROM
Joe Hershberger [Tue, 26 Jan 2016 17:57:03 +0000 (11:57 -0600)]
net: gem: Allow to set the MAC from an EEPROM

Provide board specific option how to read MAC address from ROM.
Do it in generic way to be reusable by differnet boards.
If this is not enough board specific functions can be created.

Signed-off-by: Joe Hershberger <joe.hershberger@gmail.com> # driver part
Signed-off-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM: zynq: Enable option to overwrite default variables
Michal Simek [Sat, 13 Feb 2016 10:50:03 +0000 (11:50 +0100)]
ARM: zynq: Enable option to overwrite default variables

Enable overwriting variables out of main config file.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: xilinx_axi: Clear Isolate bit if found during phy setup
Siva Durga Prasad Paladugu [Sun, 21 Feb 2016 10:16:15 +0000 (15:46 +0530)]
net: xilinx_axi: Clear Isolate bit if found during phy setup

In SGMII cases the isolate bit might set after DMA and
ethernet resets and hence check and clear during
setup_phy if it was set.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: xilinx_axi: Use interface type instead of zero
Siva Durga Prasad Paladugu [Sun, 21 Feb 2016 10:16:14 +0000 (15:46 +0530)]
net: xilinx_axi: Use interface type instead of zero

Pass appropriate interface type to phy_connect
instead of zero.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agozynq-common: Enable phy driver for Xilinx PCS/PMA core
Siva Durga Prasad Paladugu [Fri, 5 Feb 2016 07:52:12 +0000 (13:22 +0530)]
zynq-common: Enable phy driver for Xilinx PCS/PMA core

Add support of Xilinx PCS/PMA core phy for Zynq

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agonet: zynq_gem: Add support for SGMII interface
Siva Durga Prasad Paladugu [Fri, 5 Feb 2016 07:52:11 +0000 (13:22 +0530)]
net: zynq_gem: Add support for SGMII interface

Add support of SGMII interface for zynq GEM.
Read xlnx,emio property from DT.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agophy: Add phy driver support for xilinx PCS/PMA core
Siva Durga Prasad Paladugu [Fri, 5 Feb 2016 07:52:10 +0000 (13:22 +0530)]
phy: Add phy driver support for xilinx PCS/PMA core

Add phy driver support for xilinx PCS/PMA core

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoMerge git://www.denx.de/git/u-boot-marvell
Tom Rini [Mon, 4 Apr 2016 17:15:23 +0000 (13:15 -0400)]
Merge git://www.denx.de/git/u-boot-marvell

8 years agocommon: cli: Fix typo CONFIG_CMDINE -> CONFIG_CMDLINE
Stefan Roese [Mon, 4 Apr 2016 14:32:15 +0000 (16:32 +0200)]
common: cli: Fix typo CONFIG_CMDINE -> CONFIG_CMDLINE

Patch f8bb6964 (Drop command-processing code when CONFIG_CMDLINE is
disabled) introduced a small typo. This patch fixes it and unbreaks
all boards again that don't have the Hush parser enabled.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
8 years agoarm: mvebu: Don't enable d-cache on A375
Stefan Roese [Wed, 10 Feb 2016 08:18:46 +0000 (09:18 +0100)]
arm: mvebu: Don't enable d-cache on A375

Armada 375 still has some problems with d-cache enabled in the ethernet
driver (mvpp2). So lets keep the d-cache disabled until this is solved.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
8 years agoarm: mvebu: Add basic support for Armada 375 eval board db-88f6720
Stefan Roese [Fri, 29 Jan 2016 08:14:54 +0000 (09:14 +0100)]
arm: mvebu: Add basic support for Armada 375 eval board db-88f6720

This patch adds basic support for the Marvell A375 eval board. Tested
are the following interfaces:
- I2C
- SPI
- SPI NOR
- Ethernet (mvpp2), port 0 & 1

Currently the A375 SerDes and DDR3 init code is not intergrated. So
the SPL U-Boot is not fully functional.

Right now, this A375 mainline U-Boot can only be used by chainloading
it via the original Marvell U-Boot. This can be done via this
command:

=> tftpboot 00800000 a375/u-boot-dtb.bin;go 00800000

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
8 years agoarm: mvebu: Add basic support for the Marvell Armada 375 SoC
Stefan Roese [Wed, 10 Feb 2016 06:23:00 +0000 (07:23 +0100)]
arm: mvebu: Add basic support for the Marvell Armada 375 SoC

This patch adds basic support for the Armada 375. Please note that
currently the SerDes and DDR3 init code for the A375 is not
included / enabled. This will be done in a later, follow-up patch.

Right now, this A375 mainline U-Boot can only be used by chainloading
it via the original Marvell U-Boot. This can be done via this
command:

=> tftpboot 00800000 a375/u-boot-dtb.bin;go 00800000

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
8 years agodt-bindings: Add include/dt-bindings/phy/phy.h from Linux v4.4
Stefan Roese [Fri, 29 Jan 2016 08:35:37 +0000 (09:35 +0100)]
dt-bindings: Add include/dt-bindings/phy/phy.h from Linux v4.4

This will be needed by the upcoming Marvell Armada 375 dts files.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
8 years agonet: mvpp2.c: Add Marvell mvpp2 network driver for Armada 375
Stefan Roese [Wed, 10 Feb 2016 06:22:10 +0000 (07:22 +0100)]
net: mvpp2.c: Add Marvell mvpp2 network driver for Armada 375

This patch adds support for the mvpp2 ethernet controller which is integrated
in the Marvell Armada 375 SoC. This port is based on the Linux driver (v4.4),
which has been stripped of the in U-Boot unused portions.

Tested on the Marvell Armada 375 eval board db-88f6720.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Acked-by: Joe Hershberger <joe.hershberger@gmail.com>
8 years agospi: kirkwood_spi.c: Add compatible match ID for Armada 375
Stefan Roese [Fri, 29 Jan 2016 09:04:15 +0000 (10:04 +0100)]
spi: kirkwood_spi.c: Add compatible match ID for Armada 375

This enables this driver for the Marvell Armada 375 SoC.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
Reviwer-by: Jagan Teki <jteki@openedev.com>
8 years agonet: phy: Realtek RTL8211B/C PHY ID fix
Karsten Merker [Mon, 21 Mar 2016 19:29:07 +0000 (20:29 +0100)]
net: phy: Realtek RTL8211B/C PHY ID fix

The RTL8211B_driver structure in drivers/net/phy/realtek.c contains a
wrong PHY ID (0x1cc910 instead of 0x1cc912) in the uid field.

The lowest four bits of the PHY ID encode the chip revision (B+C/D/E/F)
of the RTL8211 and the code originally applied a mask of 0xfffff0 to
the PHY ID, so that matching the PHY ID to the appropriate driver code
was only done on the chip type (RTL8211), but not on a specific
revision.

After introduction of support for the RTL8211E, which needed another
startup function than the older chip revisions, commit
42205047674d7fc9e0aa747273fbc7dcfbac3183 changed the mask to 0xffffff
to make the chip revision relevant for the match, but didn't provide
the now-relevant lower bits of the uid field for the RTL8211B/C.

Fix this by setting the full PHY ID in the RTL8211B_driver uid field.

Fixes: 42205047674d ("net/phy: realtek: Fix the PHY ID mask to ensure the correct Realtek PHY is detected")
Signed-off-by: Karsten Merker <merker@debian.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoMAINTAINERS: Update Scott Wood's email address
Scott Wood [Fri, 1 Apr 2016 23:49:57 +0000 (18:49 -0500)]
MAINTAINERS: Update Scott Wood's email address

Freescale is now NXP.  I still work there, but I won't be using their
mail system for U-Boot development.

Signed-off-by: Scott Wood <oss@buserror.net>
8 years agosata: use block layer for sata command
Eric Nelson [Sun, 27 Mar 2016 19:00:15 +0000 (12:00 -0700)]
sata: use block layer for sata command

Call blk_dread, blk_dwrite, blk_derase to ensure that the block cache is
used if enabled and to remove build breakage when CONFIG_BLK is enabled.

Signed-off-by: Eric Nelson <eric@nelint.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agommc: use block layer in mmc command
Eric Nelson [Sun, 27 Mar 2016 19:00:14 +0000 (12:00 -0700)]
mmc: use block layer in mmc command

Call blk_dread, blk_dwrite, blk_derase to ensure that the block cache is
used if enabled and to remove build breakage when CONFIG_BLK is enabled.

Signed-off-by: Eric Nelson <eric@nelint.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodrivers: block: add block device cache
Eric Nelson [Mon, 28 Mar 2016 17:05:44 +0000 (10:05 -0700)]
drivers: block: add block device cache

Add a block device cache to speed up repeated reads of block devices by
various filesystems.

This small amount of cache can dramatically speed up filesystem
operations by skipping repeated reads of common areas of a block
device (typically directory structures).

This has shown to have some benefit on FAT filesystem operations of
loading a kernel and RAM disk, but more dramatic benefits on ext4
filesystems when the kernel and/or RAM disk are spread across
multiple extent header structures as described in commit fc0fc50.

The cache is implemented through a minimal list (block_cache) maintained
in most-recently-used order and count of the current number of entries
(cache_count). It uses a maximum block count setting to prevent copies
of large block reads and an upper bound on the number of cached areas.

The maximum number of entries in the cache defaults to 32 and the maximum
number of blocks per cache entry has a default of 2, which has shown to
produce the best results on testing of ext4 and FAT filesystems.

The 'blkcache' command (enabled through CONFIG_CMD_BLOCK_CACHE) allows
changing these values and can be used to tune for a particular filesystem
layout.

Signed-off-by: Eric Nelson <eric@nelint.com>
8 years agoAdd myself as Snapdragon and SPMI maintainer
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:34 +0000 (23:12 +0200)]
Add myself as Snapdragon and SPMI maintainer

- Update MAINTAINERS
- Update git-mailrc

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoboard: Add Qualcomm Dragonboard 410C support
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:33 +0000 (23:12 +0200)]
board: Add Qualcomm Dragonboard 410C support

This commit add support for 96Boards Dragonboard410C.
It is board based on APQ8016 Qualcomm SoC, complying with
96boards specification.
Features (present out of the box):
- 4x Cortex A53 (ARMv8)
- 2x USB Host port
- 1x USB Device port
- 4x LEDs
- 1x HDMI connector
- 1x uSD connector
- 3x buttons (Power, Vol+, Vol-/Reset)
- WIFI, Bluetooth with integrated antenna
- 8GiB eMMC

U-Boot boots chained with fastboot in 64-bit mode.
For detailed build instructions see readme.txt in board directory.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoarm: Add support for Qualcomm Snapdragon family
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:32 +0000 (23:12 +0200)]
arm: Add support for Qualcomm Snapdragon family

First supported chip is APQ8016 (that is compatible with MSM8916).
Drivers in SoC code:
- Reset controller (PSHOLD)
- Clock controller (very simple clock configuration for MMC and UART)

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agogpio: Add support for Qualcomm PM8916 gpios
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:31 +0000 (23:12 +0200)]
gpio: Add support for Qualcomm PM8916 gpios

This driver supports GPIOs present on PM8916 PMIC.
There are 2 device drivers inside:
- GPIO driver (4 "generic" GPIOs)
- Keypad driver that presents itself as GPIO with 2 inputs (power and reset)

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agopmic: Add support for Qualcomm PM8916 PMIC
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:30 +0000 (23:12 +0200)]
pmic: Add support for Qualcomm PM8916 PMIC

This PMIC is connected on SPMI bus so needs SPMI support enabled.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agodrivers: spmi: Add support for Qualcomm SPMI bus driver
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:29 +0000 (23:12 +0200)]
drivers: spmi: Add support for Qualcomm SPMI bus driver

Support SPMI arbiter on Qualcomm Snapdragon devices.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agospmi: Add sandbox test driver
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:28 +0000 (23:12 +0200)]
spmi: Add sandbox test driver

This patch adds emulated spmi bus controller with part of
pm8916 pmic on it to sandbox and tests validating SPMI uclass.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agodrivers: Add SPMI bus uclass
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:27 +0000 (23:12 +0200)]
drivers: Add SPMI bus uclass

Qualcom processors use proprietary bus to talk with PMIC devices -
SPMI (System Power Management Interface).
On wiring level it is similar to I2C, but on protocol level, it's
multi-master and has simple autodetection capabilities.
This commit adds simple uclass that provides bus read/write interface.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoehci: Add support for Qualcomm EHCI
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:26 +0000 (23:12 +0200)]
ehci: Add support for Qualcomm EHCI

This driver is able to reconfigure OTG controller into HOST mode.
Board can add board-specific initialization as board_prepare_usb().
It requires USB_ULPI_VIEWPORT enabled in board configuration.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoehci-ci.h: drop generic USBCMD fields
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:25 +0000 (23:12 +0200)]
ehci-ci.h: drop generic USBCMD fields

Use definitions from ehci.h instead.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agousb: ehci-ci: Add missing registers.
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:24 +0000 (23:12 +0200)]
usb: ehci-ci: Add missing registers.

Some registers of usb_ehci were marked as reserved.
This may be true for some variants of Chipidea USB core, but they have
meaning on other devices.

The following registers were added:
sbusstatus/sbusmode: AHB-related registers
genconfig*: Auxiluary IP core configuration registers.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agousb: Rename ehci-fsl.h to ehci-ci.h
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:23 +0000 (23:12 +0200)]
usb: Rename ehci-fsl.h to ehci-ci.h

Most of ehci-fsl header describe USB controller
designed by Chipidea and used by various SoC vendors.

This patch renames it to a generic header: ehci-ci.h
Contents of file are not changed (so it contains several
references to freescale SoCs).

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoeth: asix88179: Print packet length properly
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:22 +0000 (23:12 +0200)]
eth: asix88179: Print packet length properly

Debug printf used '%u' to print size_t variable.
This caused warnings on 64-bit machines.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agousb: ulpi: Fix compile warning in read/write on 64-bit machines.
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:21 +0000 (23:12 +0200)]
usb: ulpi: Fix compile warning in read/write on 64-bit machines.

ulpi_read and ulpi_write are used to read/write registers via ULPI bus.
Code generates compilation warnings on 64-bit machines where pointer
is cast to u32.

This patch drops all but last 8 bits of register address.
It is possible, because addresses on ULPI bus are 6- or 8-bit.

It is not possible (according to ULPI 1.1 spec) to have more
than 8-bit addressing.

This patch should not cause regressions as all calls to
ulpi_read/write use either structure pointer (@ address 0) or integer
offsets cast to pointer - addresses requested are way below 8-bit range.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
8 years agousb: ulpi: Fix viewport_addr type
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:20 +0000 (23:12 +0200)]
usb: ulpi: Fix viewport_addr type

viewport_addr is address of memory mapped ULPI viewport.
It is used only as argument to readl/writel later
causing compile warnings on 64-bit devices.

This fix changes its type to match pointer size.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
8 years agoMigrate CONFIG_ULPI* to Kconfig
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:19 +0000 (23:12 +0200)]
Migrate CONFIG_ULPI* to Kconfig

Move CONFIG_USB_ULPI* from headers to defconfigs for boards that use it.
Also - add CONFIG_USB where necesarry - all boards use it,
but some are not defining it explicitly.

Affected boards:
colibri_t20, harmony, mcx, mt_ventoux, twister,
zynq_(picozed, zc702, zc706, zed, zybo)

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agousb: ulpi: Add Kconfig options for ULPI
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:18 +0000 (23:12 +0200)]
usb: ulpi: Add Kconfig options for ULPI

The following options can be now enabled via defconfig:
- CONFIG_USB_ULPI
- CONFIG_USB_ULPI_VIEWPORT
- CONFIG_USB_ULPI_VIEWPORT_OMAP

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Marek Vasut <marex@denx.de>
8 years agoehci-hcd: Add init_after_reset
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:17 +0000 (23:12 +0200)]
ehci-hcd: Add init_after_reset

Some host controllers need addidional initialization after ehci_reset()
In non-dm implementation it is possible to use CONFIG_EHCI_HCD_INIT_AFTER_RESET.
This patch adds similar option to ehci drivers using dm.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agommc: Add support for Qualcomm SDHCI controller
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:16 +0000 (23:12 +0200)]
mmc: Add support for Qualcomm SDHCI controller

Add support for SD/eMMC controller present on some Qualcomm Snapdragon
devices. This controller implements SDHCI 2.0 interface but requires
vendor-specific initialization.
Driver works in PIO mode as ADMA is not supported by U-Boot (yet).

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agogpio: Add support for Qualcomm gpio controller
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:15 +0000 (23:12 +0200)]
gpio: Add support for Qualcomm gpio controller

Add support for gpio controllers on Qualcomm Snapdragon devices.
This devices are usually called Top Level Mode Multiplexing in
Qualcomm documentation.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoserial: Add support for Qualcomm serial port
Mateusz Kulikowski [Thu, 31 Mar 2016 21:12:14 +0000 (23:12 +0200)]
serial: Add support for Qualcomm serial port

This driver works in "new" Data Mover UART mode, so
will be compatible with modern Qualcomm chips only.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
8 years agoboard: ti: DRA7: Add DP83867 TI phy for rev c
Dan Murphy [Wed, 30 Mar 2016 17:58:37 +0000 (12:58 -0500)]
board: ti: DRA7: Add DP83867 TI phy for rev c

Enable the TI DP83867 Giga bit phy on the
dra7 rev c board.  The rx and tx internal
delays are need for this board so the usage
of RGMII_ID is required.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoefi_loader: Always allocate the highest available address
Alexander Graf [Wed, 30 Mar 2016 14:38:29 +0000 (16:38 +0200)]
efi_loader: Always allocate the highest available address

Some EFI applications (grub2) expect that an allocation always returns
the highest available memory address for the given size.

Without this, we may run into situations where the initrd gets allocated
at a lower address than the kernel.

This patch fixes booting in such situations for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
8 years agosniper: Change vendor name from lge to lg, matching devicetree vendor prefix
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:27 +0000 (14:16 +0200)]
sniper: Change vendor name from lge to lg, matching devicetree vendor prefix

This moves the sniper board from the lge to lg, in order to match the devicetree
vendor prefix already defined in the kernel.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agokc1: Proper reboot mode and boot reason validation
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:26 +0000 (14:16 +0200)]
kc1: Proper reboot mode and boot reason validation

With the previous implementation, rebooting without registering a recognized
reboot mode would end up with U-Boot checking for a valid power-on reason, which
might result in the device turning off (e.g. with no USB cable attached and no
buttons pressed).

Since this approach is not viable (breaks reboot in most cases), the validity of
the reboot reason is checked (in turn, by checking that a warm reset happened,
as there is no magic) to detect a reboot and the 'o' char is recognized to
indicate that power-off is required. Still, that might be overridden by the
detection of usual power-on reasons, on purpose.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agosniper: Proper reboot mode and boot reason validation
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:25 +0000 (14:16 +0200)]
sniper: Proper reboot mode and boot reason validation

With the previous implementation, rebooting without registering a recognized
reboot mode (despite registering the magic) would end up with U-Boot checking
for a valid power-on reason, which might result in the device turning off (e.g.
with no USB cable attached and no buttons pressed).

This was designed to catch reboots that are actually intended to be power-off,
something that old Android kernels do, instead of properly turning the device
off using the TWL4030.

However, since this approach is not viable (breaks reboot in most cases), the
validity of the reboot mode magic is checked to detect a reboot and the 'o' char
is recognized to indicate that power-off is required. Still, that might be
overridden by the detection of usual power-on reasons, on purpose.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agokc1: Add some sysboot and devicetree-related environment variables
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:24 +0000 (14:16 +0200)]
kc1: Add some sysboot and devicetree-related environment variables

This adds some environment variables for sysboot and devicetree.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agokc1: Select libfdt to allow running devicetree-based kernels
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:23 +0000 (14:16 +0200)]
kc1: Select libfdt to allow running devicetree-based kernels

Selecting CONFIG_OF_LIBFDT allows running recent mainline kernels.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agokc1: Include explicit serial baudrate on bootargs
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:22 +0000 (14:16 +0200)]
kc1: Include explicit serial baudrate on bootargs

This makes the baudrate for the kernel command line explicit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agosniper: Include explicit serial baudrate on bootargs
Paul Kocialkowski [Tue, 29 Mar 2016 12:16:21 +0000 (14:16 +0200)]
sniper: Include explicit serial baudrate on bootargs

This makes the baudrate for the kernel command line explicit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
8 years agoarm64: booti: add missing unmap_sysmem()
Masahiro Yamada [Tue, 29 Mar 2016 10:51:57 +0000 (19:51 +0900)]
arm64: booti: add missing unmap_sysmem()

Make sure to call unmap_sysmem() for address allocated by map_sysmem()
before leaving the function; however this patch gives no impact on
the behavior because map_sysmem()/unmap_sysmem() does nothing except
on Sandbox.  Sandbox never runs this code because "booti" is a command
for booting ARM64 kernel image.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoconfigs: ti_armv7_keystone2: make SYS_TEXT_BASE configurable at build time
Vitaly Andrianov [Mon, 28 Mar 2016 19:15:59 +0000 (15:15 -0400)]
configs: ti_armv7_keystone2: make SYS_TEXT_BASE configurable at build time

U-boot for general purpose KS2 devices is loaded to the beginning of the
internal memory (0x0c000000). Secure devices uses this memory and
CONFIG_SYS_TEXT_BASE has to be different for those devices.

This commit make this configurable at build time by giving
CONFIG_SYS_TEXT_BASE as a command line definition to make command.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
8 years agoarm: spl: Align default board_init_f comment with code
Andreas Dannenberg [Mon, 28 Mar 2016 18:58:03 +0000 (13:58 -0500)]
arm: spl: Align default board_init_f comment with code

The default board_init_f() implementation performs a call to
board_init_r() as the last step of the sequence. Fix the comment
for this function to reflect the actual execution flow.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
8 years agopost: Remove references to scrapped "netta" board.
Robert P. J. Day [Mon, 28 Mar 2016 13:20:40 +0000 (09:20 -0400)]
post: Remove references to scrapped "netta" board.

Given that README.scrapyard shows scrapping of netta boards:

netta2           powerpc     mpc8xx         c51c1c9a    2014-07-07
netta            powerpc     mpc8xx         c51c1c9a    2014-07-07

delete netta example from POST tests.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
8 years agocommon: env_sf: Add exclamation mark
Peng Fan [Mon, 28 Mar 2016 09:26:27 +0000 (17:26 +0800)]
common: env_sf: Add exclamation mark

Add exclamation mark to the errmsg, when error and set_default_env.

Signed-off-by: Peng Fan <van.freenix@gmail.com>
Cc: Mario Schuknecht <mario.schuknecht@dresearch-fe.de>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Jagan Teki <jteki@openedev.com>
Cc: Ravi Babu <ravibabu@ti.com>
Cc: York Sun <york.sun@nxp.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agojffs2: Fix set but not used warning
Tom Rini [Sun, 27 Mar 2016 18:48:36 +0000 (14:48 -0400)]
jffs2: Fix set but not used warning

We only use 'ofs' in jffs2_sum_scan_sumnode when debugging as it's part
of a dbg_summary call.  Mark this as __maybe_unused.

Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agolib/physmem.c: Switch to __weak for arch_phys_memset
Tom Rini [Sun, 27 Mar 2016 18:06:11 +0000 (14:06 -0400)]
lib/physmem.c: Switch to __weak for arch_phys_memset

We normally use __weak rather than calling it out directly as an alias.
Update this function to the normal method.

Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agopost: Delete unnecessary bitmask of POST_MANUAL from POST_ALWAYS
Robert P. J. Day [Sun, 27 Mar 2016 14:18:55 +0000 (10:18 -0400)]
post: Delete unnecessary bitmask of POST_MANUAL from POST_ALWAYS

Since POST_ALWAYS is defined as:

#define POST_ALWAYS             (POST_NORMAL    | \
                                 POST_SLOWTEST  | \
                                 POST_MANUAL    | \
                                 POST_POWERON   )

there is no need to redundantly bitmask it with POST_MANUAL.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
8 years agopost: Remove reference to deleted "lwmon" board from Makefile
Robert P. J. Day [Sun, 27 Mar 2016 12:39:15 +0000 (08:39 -0400)]
post: Remove reference to deleted "lwmon" board from Makefile

POST support for sample lwmon board was removed in commit e5d3078622.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>B
8 years agoCommon: SPL: spl_nand: Fixed debug correct NAND ECC type.
Ahmed Samir Khalil [Fri, 25 Mar 2016 12:13:17 +0000 (13:13 +0100)]
Common: SPL: spl_nand: Fixed debug correct NAND ECC type.

In case of #define DEBUG 1 (fordebugging SPL). A bug in
spl_nand_load_image() will be triggered, because it prints
using hw ecc regardless of soft ecc configurations and
initializations.

Signed-off-by: Ahmed Samir <engkhalil86@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agorpi: BCM2837 and Raspberry Pi 3 32-bit support
Stephen Warren [Fri, 25 Mar 2016 04:15:20 +0000 (22:15 -0600)]
rpi: BCM2837 and Raspberry Pi 3 32-bit support

The Raspberry Pi 3 contains a BCM2837 SoC. The BCM2837 is a BCM2836 with
the CPU complex swapped out for a quad-core ARMv8. This can operate in 32-
or 64-bit mode. 32-bit mode is the current default selected by the
VideoCore firmware on the Raspberry Pi 3. This patch adds a 32-bit port of
U-Boot for the Raspberry Pi 3.

>From U-Boot's perspective, the only delta between the RPi 2 and RPi 3 is a
change in usage of the SoC UARTs. On all previous Pis, the PL011 was the
only UART in use. The Raspberry Pi 3 adds a Bluetooth module which uses a
UART to connect to the SoC. By default, the PL011 is used for this purpose
since it has larger FIFOs than the other "mini" UART. However, this can
be configured via the VideoCore firmware's config.txt file. This patch
hard-codes use of the mini UART in the RPi 3 port. If your system uses the
PL011 UART for the console even on the RPi 3, please use the RPi 2 U-Boot
port instead. A future change might determine which UART to use at
run-time, thus allowing the RPi 2 and RPi 3 (32-bit) ports to be squashed
together.

The mini UART has some limitations. One externally visible issue in the
BCM2837 integration is that the UART divides the SoC's "core clock" to
generate the baud rate. The core clock is typically variable, and under
control of the VideoCore firmware for thermal management reasons. If the
VC FW does modify the core clock rate, UART communication will be
corrupted since the baud rate will vary from the expected value. This was
not an issue for the PL011 UART, since it is fed by a fixed 3MHz clock. To
work around this, the VideoCore firmware can be told not to modify the SoC
core clock. However, the only way this can happen and be thermally safe is
to limit the core clock to a low/minimum frequency. This leaves
performance on the table for use-cases that don't care about a UART
console. Consequently, use of the mini UART console must be explicitly
requested by entering the following line into config.txt:

    enable_uart=1

A recent version of the VC firmware is required to ensure that the mini
UART is fully and correctly initialized by the VC FW; at least
firmware.git 046effa13ebc "firmware: arm_loader: emmc clock depends on
core clock See: https://github.com/raspberrypi/firmware/issues/572".

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: bcm2835: expand Kconfig target descriptions
Stephen Warren [Fri, 25 Mar 2016 04:15:19 +0000 (22:15 -0600)]
ARM: bcm2835: expand Kconfig target descriptions

This adds an explanation of which Raspberry Pi models each target option
supports.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agorpi: add Raspberry Pi 3 board ID
Stephen Warren [Fri, 25 Mar 2016 04:15:18 +0000 (22:15 -0600)]
rpi: add Raspberry Pi 3 board ID

This allows U-Boot to known the name of the board.

The existing rpi_2_defconfig can operate correctly on the Raspberry Pi 3
in 32-bit mode /if/ you have configured the firmware to use the PL011 UART
as the console UART (the default is the mini UART). This requires two
things:
a) config.txt should contain dtoverlay=pi3-miniuart-bt
b) You should run the following to tell the VC FW to process DT when
booting, and copy u-boot.bin.img (rather than u-boot.bin) to the SD card
as the kernel image:

   path/to/kernel/scripts/mkknlimg --dtok u-boot.bin u-boot.bin.img

This works as of firmware.git commit 046effa13ebc "firmware: arm_loader:
emmc clock depends on core clock See:
https://github.com/raspberrypi/firmware/issues/572".

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agorpi: use constant "unknown board" DT filename
Stephen Warren [Fri, 25 Mar 2016 04:15:17 +0000 (22:15 -0600)]
rpi: use constant "unknown board" DT filename

To simplify support for new SoCs, just use a constant filename
for the unknown case. In practice this case shouldn't be hit anyway, so
the filename isn't relevant, and certainly doesn't need to differentiate
between SoCs. If a user has an as-yet-unknown board, they can override
this value in the environment anyway.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: bcm2835: move CONFIG_BCM283* to Kconfig
Stephen Warren [Fri, 25 Mar 2016 04:15:16 +0000 (22:15 -0600)]
ARM: bcm2835: move CONFIG_BCM283* to Kconfig

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodoc: clarify openssl-based key and certificate generation process
Andreas Dannenberg [Wed, 23 Mar 2016 23:24:10 +0000 (18:24 -0500)]
doc: clarify openssl-based key and certificate generation process

Add some basic clarification that the dev.key file generated by OpenSSL
contains both the public and private key, and further highlight that
the certificate generated here contains the public key only.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
8 years agodoc: fix file extension for flattened image tree blob
Andreas Dannenberg [Wed, 23 Mar 2016 22:44:17 +0000 (17:44 -0500)]
doc: fix file extension for flattened image tree blob

Different sections in the document suggest flattened image tree blob
files have a file name extension of .itb. Fix the list of file extensions
to reflect that.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
8 years agoREADME: Specify the full path for README.displaying-bmps
Fabio Estevam [Wed, 23 Mar 2016 15:46:12 +0000 (12:46 -0300)]
README: Specify the full path for README.displaying-bmps

It is clearer to specify the full path to access the
doc/README.displaying-bmps file.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
8 years agoARM: keystone2: Add missing privilege ID settings
Nishanth Menon [Wed, 23 Mar 2016 15:14:19 +0000 (10:14 -0500)]
ARM: keystone2: Add missing privilege ID settings

Add missing Privilege ID settings for KS2 SoCs.

Based on:
K2H/K: Table 6-7. Privilege ID Settings from SPRS866E (Nov 2013)
  http://www.ti.com/lit/ds/symlink/66ak2h14.pdf (page 99)
K2L: Table 7-7. Privilege ID Settings from SPRS930 (April 2015)
  http://www.ti.com/lit/ds/symlink/66ak2l06.pdf (page 71)
K2E: Table 7-7. Privilege ID Settings from SPRS865D (Mar 2015)
  http://www.ti.com/lit/ds/symlink/66ak2e05.pdf (page 75)
K2G: Table 3-16. PrivIDs from SPRUHY8 (Jan 2016)
  http://www.ti.com/lit/ug/spruhy8/spruhy8.pdf (page 238)

Overall mapping:
-------+-----------+-----------+-----------+---------
PrivID | KS2H/K    | K2L       | K2E       | K2G
-------+-----------+-----------+-----------+---------
0      | C66x 0    | C66x 0    | C66x 0    | C66x 0
1      | C66x 1    | C66x 1    | Reserved  | ARM
2      | C66x 2    | C66x 2    | Reserved  | ICSS0
3      | C66x 3    | C66x 3    | Reserved  | ICSS1
4      | C66x 4    | Reserved  | Reserved  | NETCP
5      | C66x 5    | Reserved  | Reserved  | CPIE
6      | C66x 6    | Reserved  | Reserved  | USB
7      | C66x 7    | Reserved  | Reserved  | Reserved
8      | ARM       | ARM       | ARM       | MLB
9      | NetCP     | NetCP     | NetCP     | PMMC
10     | QM_PDSP   | QM_PDSP   | QM_PDSP   | DSS
11     | PCIe_0    | PCIe_0    | PCIe_0    | MMC
12     | DEBUG/DAP | DEBUG/DAP | DEBUG/DAP | DEBUG/DAP
13     | Reserved  | Reserved  | PCIe_1    | Reserved
14     | HyperLink | PCIe_1    | HyperLink | Reserved
15     | Reserved  | Reserved  | TSIP      | Reserved
-------+-----------+-----------+-----------+---------

NOTE: Few of these might have default configurations, however,
since most are software configurable, it is better to explicitly
configure the system to have a known default state.

Without programming these, we end up seeing lack of coherency on certain
peripherals resulting in inexplicable failures (such as USB peripheral's
DMA data not appearing on ARM etc and weird workarounds being done by
drivers including cache flushes which tend to have system wide
performance impact).

By marking these segments as shared, we also ensure SoC wide coherency
is enabled.

Reported-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: keystone2: Refactor MSMC macros to avoid #ifdeffery
Nishanth Menon [Wed, 23 Mar 2016 15:14:18 +0000 (10:14 -0500)]
ARM: keystone2: Refactor MSMC macros to avoid #ifdeffery

MSMC segment Privilege ID is not consistent accross the keystone2 SoCs.
As the first step to ensure complete SoC wide coherency setup, lets
refactor the macros to remove the #if-deffery around the code which
obfuscates which IDs are actually enabled for which SoC.

As a result of this change the PCIe configuration is moved after the
msmc configuration is complete, but that should ideally have no
functional impact.

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agosmsc95xx: fix operation on 64-bit systems
Stephen Warren [Wed, 23 Mar 2016 04:28:16 +0000 (22:28 -0600)]
smsc95xx: fix operation on 64-bit systems

smsc95xx_read_reg() should calculate sizeof(*data) not sizeof(data) since
data is a pointer, and the value pointed at is being transferred over USB,
not the value of the pointer. This fixes operation of the driver in 64-bit
builds, such as the Raspberry Pi 3.

Reported-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
8 years agoDrop command-processing code when CONFIG_CMDLINE is disabled
Simon Glass [Sat, 19 Mar 2016 08:18:38 +0000 (02:18 -0600)]
Drop command-processing code when CONFIG_CMDLINE is disabled

Command parsing and processing code is not needed when the command line is
disabled. Remove this code in that case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>