platform/kernel/u-boot.git
7 years agoflash: compile common/flash.c iif CONFIG_MTD_NO_FLASH is enabled
Masahiro Yamada [Sat, 11 Feb 2017 13:43:55 +0000 (22:43 +0900)]
flash: compile common/flash.c iif CONFIG_MTD_NO_FLASH is enabled

The whole of common/flash.c is guarded by #if defined() ... #endif.
Move the conditional to common/Makefile.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoflash: complete CONFIG_SYS_NO_FLASH move with renaming
Masahiro Yamada [Sat, 11 Feb 2017 13:43:54 +0000 (22:43 +0900)]
flash: complete CONFIG_SYS_NO_FLASH move with renaming

We repeated partial moves for CONFIG_SYS_NO_FLASH, but this is
not completed. Finish this work by the tool.

During this move, let's rename it to CONFIG_MTD_NOR_FLASH.
Actually, we have more instances of "#ifndef CONFIG_SYS_NO_FLASH"
than those of "#ifdef CONFIG_SYS_NO_FLASH".  Flipping the logic will
make the code more readable.  Besides, negative meaning symbols do
not fit in obj-$(CONFIG_...) style Makefiles.

This commit was created as follows:

[1] Edit "default n" to "default y" in the config entry in
    common/Kconfig.

[2] Run "tools/moveconfig.py -y -r HEAD SYS_NO_FLASH"

[3] Rename the instances in defconfigs by the following:
  find . -path './configs/*_defconfig' | xargs sed -i \
  -e '/CONFIG_SYS_NO_FLASH=y/d' \
  -e 's/# CONFIG_SYS_NO_FLASH is not set/CONFIG_MTD_NOR_FLASH=y/'

[4] Change the conditionals by the following:
  find . -name '*.[ch]' | xargs sed -i \
  -e 's/ifndef CONFIG_SYS_NO_FLASH/ifdef CONFIG_MTD_NOR_FLASH/' \
  -e 's/ifdef CONFIG_SYS_NO_FLASH/ifndef CONFIG_MTD_NOR_FLASH/' \
  -e 's/!defined(CONFIG_SYS_NO_FLASH)/defined(CONFIG_MTD_NOR_FLASH)/' \
  -e 's/defined(CONFIG_SYS_NO_FLASH)/!defined(CONFIG_MTD_NOR_FLASH)/'

[5] Modify the following manually
  - Rename the rest of instances
  - Remove the description from README
  - Create the new Kconfig entry in drivers/mtd/Kconfig
  - Remove the old Kconfig entry from common/Kconfig
  - Remove the garbage comments from include/configs/*.h

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoMerge git://git.denx.de/u-boot-samsung
Tom Rini [Sat, 11 Feb 2017 15:38:40 +0000 (10:38 -0500)]
Merge git://git.denx.de/u-boot-samsung

7 years agoMerge git://git.denx.de/u-boot-rockchip
Tom Rini [Sat, 11 Feb 2017 15:38:21 +0000 (10:38 -0500)]
Merge git://git.denx.de/u-boot-rockchip

7 years agoexynos: Drop large alignment for SDRAM parameters
Simon Glass [Wed, 8 Feb 2017 12:43:46 +0000 (05:43 -0700)]
exynos: Drop large alignment for SDRAM parameters

We don't ever search for these so there is no need for a 4KB alignment.
It just wastes space.

Drop this and use the standard 4-byte alignment.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
7 years agoMerge branch 'master' of git://git.denx.de/u-boot-video
Tom Rini [Thu, 9 Feb 2017 19:54:09 +0000 (14:54 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-video

7 years agorockchip: rename miniarm to tinker board
Eddie Cai [Wed, 18 Jan 2017 03:03:54 +0000 (11:03 +0800)]
rockchip: rename miniarm to tinker board

Miniarm is the internal project code. Now it is officially named Tinker board.
So rename it.

Signed-off-by: Eddie Cai <eddie.cai@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: Enable ETH address randomization for the firefly-rk3288
Romain Perier [Tue, 17 Jan 2017 09:32:25 +0000 (10:32 +0100)]
rockchip: Enable ETH address randomization for the firefly-rk3288

This commit enables ethernet MAC address randomization on the
firefly-rk3288. It removes the error at startup 'ethernet@ff290000
address not set'.

Signed-off-by: Romain Perier <romain.perier@collabora.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: firefly: configs: use spl back to brom
Jacob Chen [Tue, 17 Jan 2017 04:19:39 +0000 (12:19 +0800)]
rockchip: firefly: configs: use spl back to brom

Keep it same with other boards otherwise i have to write special script for it..

Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: configs: move env offset to common header
Jacob Chen [Tue, 17 Jan 2017 04:19:38 +0000 (12:19 +0800)]
rockchip: configs: move env offset to common header

To reduce redundant code.

Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: Correct MAINTAINER entry for chromebook_minnie
Simon Glass [Sat, 14 Jan 2017 17:26:08 +0000 (10:26 -0700)]
rockchip: Correct MAINTAINER entry for chromebook_minnie

This is wrong at present, so genboardscfg.py gives the following warnings:

WARNING: no status info for 'chromebook_minnie'
WARNING: no maintainers for 'chromebook_minnie'

Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agorockchip: dts: rk3288: correct sdram setting for miniarm
Jacob Chen [Tue, 15 Nov 2016 04:01:47 +0000 (12:01 +0800)]
rockchip: dts: rk3288: correct sdram setting for miniarm

miniarm board use lpddr3

Signed-off-by: Jacob Chen <jacob2.chen@rock-chips.com>
Acked-by: Simon Glass <sjg@chromium.org>
Added 'rockchip:' prefix to subject:
Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: I84c3679dab2dbd8d01c1ebfd22220946d07c03cd

7 years agoomap_hsmmc.c: Fix build warning on non-omap3
Tom Rini [Thu, 9 Feb 2017 18:41:28 +0000 (13:41 -0500)]
omap_hsmmc.c: Fix build warning on non-omap3

It was incorrect to always include "asm/arch-omap3/mux.h" constantly.
This introduced warnings on non-omap3 where certain values will conflict
between the various families.  Conditionally guard the inclusion in
order to correct the problem.

Fixes: 6aca17c9b7e8 ("drivers: mmc: omap_hsmmc: Fix IO Buffer on OMAP36xx")
Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agoMerge branch 'master' of git://git.denx.de/u-boot-net
Tom Rini [Thu, 9 Feb 2017 16:56:35 +0000 (11:56 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-net

7 years agoMerge branch 'master' of git://git.denx.de/u-boot-mmc
Tom Rini [Thu, 9 Feb 2017 16:56:19 +0000 (11:56 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-mmc

7 years agoomap3_logic: Switch to simple malloco in SPL
Tom Rini [Thu, 9 Feb 2017 16:55:57 +0000 (11:55 -0500)]
omap3_logic: Switch to simple malloco in SPL

To save more space, switch to simple malloc here.

Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agoqemu-x86_64_defconfig: Disable CONFIG_BOARD_EARLY_INIT_F
Tom Rini [Thu, 9 Feb 2017 13:52:18 +0000 (08:52 -0500)]
qemu-x86_64_defconfig: Disable CONFIG_BOARD_EARLY_INIT_F

The qemu-x86* targets do not want to enable this.

Signed-off-by: Tom Rini <trini@konsulko.com>
7 years agommc: init mmc block devices on probe
Fiach Antaw [Wed, 25 Jan 2017 09:00:24 +0000 (19:00 +1000)]
mmc: init mmc block devices on probe

MMC devices accessed exclusively via the driver model were not
being initialized before being exposed as block devices, causing
issues in scenarios where the MMC device is first accessed via the
uclass block interface.

Signed-off-by: Fiach Antaw <fiach.antaw@uqconnect.edu.au>
7 years agodrivers: mmc: omap_hsmmc: Fix IO Buffer on OMAP36xx
Adam Ford [Mon, 6 Feb 2017 17:31:43 +0000 (11:31 -0600)]
drivers: mmc: omap_hsmmc: Fix IO Buffer on OMAP36xx

On the OMAP36xx/37xx the CONTROL_WKUP_CTRL register has
a field (bit 6) named GPIO_IO_PWRDNZ.  If 0, the IO buffers which
are related to GPIO_126, 127 and 129 are disabled. Some boards may
need this for MMC. After the PBIAS is configured, this bit should
be set high to enable these GPIO pins.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agommc: ftsdc021_sdhci: remove the ftsdc021_sdhci.c
Jaehoon Chung [Thu, 2 Feb 2017 10:33:36 +0000 (19:33 +0900)]
mmc: ftsdc021_sdhci: remove the ftsdc021_sdhci.c

ftsdc021_sdhci.c is dead file.
There is no reason to maintain this host controller.
Removes the entire ftsdc021_sdhci.c.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agommc: mmc-uclass: use the fixed devnum with alias node
Jaehoon Chung [Thu, 2 Feb 2017 04:41:14 +0000 (13:41 +0900)]
mmc: mmc-uclass: use the fixed devnum with alias node

If there are alias nodes as "mmc", use the devnum as alias index
number.
This patch is for fixing a problem of Exynos4 series.
Problem is the below thing.

Current legacy mode:
EXYNOS DWMMC: 0, SAMSUNG SDHCI: 1

After using DM:
SAMSUNG SDHCI: 0, EXYNOS DWMMC: 1

Dev index is swapped.
Then u-boot can't find the kernel image..because it is already set to 0 as mmcdev.
If change from legacy to DM, also needs to touch all exynos4 config file.
For using simply, just supporting the fixed devnum with alias node is better than it.

Usage:
alaise {
....
mmc0 = &sdhci2; /* eMMC */
mmc1 = &sdhci1; /* SD */
...
}

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoarm: dts: trats: add the pmic node for using DM
Jaehoon Chung [Thu, 2 Feb 2017 08:04:10 +0000 (17:04 +0900)]
arm: dts: trats: add the pmic node for using DM

To use driver-model adds the pmic node for max8997.
This is used as kernel device-tree in Linux.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agopower: pmic: add the max8997 controller for DM
Jaehoon Chung [Thu, 2 Feb 2017 08:04:09 +0000 (17:04 +0900)]
power: pmic: add the max8997 controller for DM

Add the max8997 controller for Driver model.
Exynos4210 is using max8997 pmic controller.
(pmic_max8997.c should be deprecated.)

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Thu, 9 Feb 2017 03:04:32 +0000 (22:04 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

7 years agonet: phy: MSCC Add Support for VSC8530-VSC8531-VSC8540-VSC8541
John Haechten [Fri, 9 Dec 2016 22:15:17 +0000 (22:15 +0000)]
net: phy: MSCC Add Support for VSC8530-VSC8531-VSC8540-VSC8541

Signed-off-by: John Haechten <john.haechten@microsemi.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agoMerge git://git.denx.de/u-boot-dm
Tom Rini [Wed, 8 Feb 2017 21:24:44 +0000 (16:24 -0500)]
Merge git://git.denx.de/u-boot-dm

7 years agoGPIO: Correct doc typo "confguration" -> "configuration"
Robert P. J. Day [Mon, 6 Feb 2017 12:11:41 +0000 (07:11 -0500)]
GPIO: Correct doc typo "confguration" -> "configuration"

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
7 years agoRemove unused symbol CONGIG_CMD_STORAGE from board configs
Lars Poeschel [Mon, 6 Feb 2017 11:30:19 +0000 (12:30 +0100)]
Remove unused symbol CONGIG_CMD_STORAGE from board configs

Albeit it's a typo, neither CONGIG_CMD_STORAGE nor CONFIG_CMD_STORAGE
are used anywhere, so remove the define from the board configs.

Signed-off-by: Lars Poeschel <poeschel@lemonage.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agocmd: move CONFIG_CMD_UNZIP and CONFIG_CMD_ZIP to Kconfig
Masahiro Yamada [Sun, 5 Feb 2017 01:42:56 +0000 (10:42 +0900)]
cmd: move CONFIG_CMD_UNZIP and CONFIG_CMD_ZIP to Kconfig

CONFIG_CMD_ZIP is not defined by any board.  I am moving
CONFIG_CMD_UNZIP to defconfig files except UniPhier SoC family.

I am the maintainer of UniPhier platform, so I know "select CMD_UNZIP"
is better for this platform.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Stefan Roese <sr@denx.de>
Acked-by: Ryan Harkin <ryan.harkin@linaro.org>
Tested-by: Ryan Harkin <ryan.harkin@linaro.org>
7 years agoarm64: fix comment in relocate_64.S
Masahiro Yamada [Sat, 4 Feb 2017 03:30:06 +0000 (12:30 +0900)]
arm64: fix comment in relocate_64.S

There are two typos in the comment "invalide i-cache is enabled".
We can fix it by
  invalide -> invalidate
  is       -> if

Or, if we want to match the comment to the code, we can say
"skip invalidating i-cache if disabled".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agokeystone2: Rename local CONFIG_ symbol
Phil Edworthy [Fri, 3 Feb 2017 12:31:46 +0000 (12:31 +0000)]
keystone2: Rename local CONFIG_ symbol

CONFIG_SPL_STACK_SIZE is not a config option, so rename it.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
7 years agoregulator: palmas: Fix smps6 - smps9 indices
Keerthy [Fri, 3 Feb 2017 11:34:08 +0000 (17:04 +0530)]
regulator: palmas: Fix smps6 - smps9 indices

The array indices used currently are dispalaced by 1 for
SMPS6 through SMPS10 in the respective places of voltage and ctrl
arrays hence fix the same as to assign the right voltage and ctrl
registers.

Signed-off-by: Keerthy <j-keerthy@ti.com>
7 years agopwm: remove unneeded ifdef CONFIG_DM_PWM ... endif
Masahiro Yamada [Thu, 2 Feb 2017 07:04:11 +0000 (16:04 +0900)]
pwm: remove unneeded ifdef CONFIG_DM_PWM ... endif

Both CONFIG_PWM_TEGRA and CONFIG_PWM_EXYNOS depend on CONFIG_DM_PWM,
i.e. they are already guarded by Kconfig correctly.  Remove unneeded
ifdef CONFIG_DM_PWM ... endif.

While we are here, let's tidy up alignment and sort the lines
alphabetically in Makefile.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agocommon: env_sf: Use CONFIG_SF_DEFAULT_xxx as the default value for CONFIG_ENV_SPI_xxx
Jean-Jacques Hiblot [Wed, 1 Feb 2017 13:51:47 +0000 (14:51 +0100)]
common: env_sf: Use CONFIG_SF_DEFAULT_xxx as the default value for CONFIG_ENV_SPI_xxx

The default values for the configuration defines CONFIG_ENV_SPI_xxx are
arbitrary values. It makes more sense to set them to the values used by
the sf command.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agopcm052: fix DDR initialization sequence
Albert ARIBAUD \(3ADEV\) [Wed, 1 Feb 2017 13:46:00 +0000 (14:46 +0100)]
pcm052: fix DDR initialization sequence

The sequence erroneously launched the DDR controller
initialization before the pad muxing was done, causing
DRAM size computation to hang.

Configuring the pads first then launching DDR controller
initialization prevents the DRAM hanging.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
7 years agodrivers: net: cpsw: Fix reading of mac address for am43 SoCs
Lokesh Vutla [Wed, 1 Feb 2017 03:50:49 +0000 (09:20 +0530)]
drivers: net: cpsw: Fix reading of mac address for am43 SoCs

cpsw driver tries to get macid for am43xx SoCs using the compatible
ti,am4372. But not all variants of am43x uses this complatible like
epos evm uses ti,am438x. So use a generic compatible ti,am43 to get
macid for all am43 based platforms.

Tested-by: Aparna Balasubramanian <aparnab@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agocmd: bootm: fix build when CONFIG_CMD_IMLS_NAND
Grygorii Strashko [Tue, 31 Jan 2017 21:37:03 +0000 (15:37 -0600)]
cmd: bootm: fix build when CONFIG_CMD_IMLS_NAND

Now when CONFIG_CMD_IMLS_NAND is enabled the u-boot build will fail,
because nand_read_skip_bad() function has been changed to accept more
parameters, hence fix it.

 CC      cmd/bootm.o
cmd/bootm.c: In function 'nand_imls_legacyimage':
cmd/bootm.c:390:8: error: too few arguments to function 'nand_read_skip_bad'
  ret = nand_read_skip_bad(mtd, off, &len, imgdata);
        ^
In file included from cmd/bootm.c:18:0:
include/nand.h:101:5: note: declared here
 int nand_read_skip_bad(struct mtd_info *mtd, loff_t offset, size_t *length,
     ^
 LD      drivers/block/built-in.o

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agocheckpatch: Port spelling to checkpatch
Dan Murphy [Tue, 31 Jan 2017 20:15:53 +0000 (14:15 -0600)]
checkpatch: Port spelling to checkpatch

Pick commit 66b47b4a9dad0 checkpatch: look for common misspellings
from the Linux kernel for spelling check from Kees Cook

In addition pulled in additional changes
commit ebfd7d6237531 checkpatch: add optional --codespell dictionary to find more typos
from the Linux kernel for codespell from Joe Perches

commit f1a63678554f8 checkpatch: remove local from codespell path
from the Linux kernel for dictionary path from Maxim Uvarov

Signed-off-by: Dan Murphy <dmurphy@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agoapi: Convert to Kconfig
Emmanuel Vadot [Tue, 31 Jan 2017 11:17:05 +0000 (12:17 +0100)]
api: Convert to Kconfig

Now that we have a Kconfig for the API, convert the two boards that
are using this to Kconfig and remove CONFIG_API from the whitelist.

Signed-off-by: Emmanuel Vadot <manu@bidouilliste.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agokconfig: Add API kconfig file
Emmanuel Vadot [Tue, 31 Jan 2017 11:17:04 +0000 (12:17 +0100)]
kconfig: Add API kconfig file

Add kconfig file to enable API support

Signed-off-by: Emmanuel Vadot <manu@bidouilliste.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agokbuild: beautify the log of config whitelist check
Masahiro Yamada [Tue, 31 Jan 2017 11:11:33 +0000 (20:11 +0900)]
kbuild: beautify the log of config whitelist check

Use the kbuild style log.

Prior to this commit:

./scripts/check-config.sh u-boot.cfg \
./scripts/config_whitelist.txt . 1>&2

With this commit:

  CFGCHK  u-boot.cfg

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoARM: dts: k2*: Rename the k2* files to keystone-k2* files
Lokesh Vutla [Tue, 31 Jan 2017 04:02:57 +0000 (09:32 +0530)]
ARM: dts: k2*: Rename the k2* files to keystone-k2* files

As reported in [1], rename the k2* dts files to keystone-* files
this will force consistency throughout.

Script for the same (and hand modified for Makefile and config
files):
for i in arch/arm/dts/k2*
do
b=`basename $i`;
git mv $i arch/arm/dts/keystone-$b;
sed -i -e "s/$b/keystone-$b/g" arch/arm/dts/*[si]
done

This is similar to linux kernel commit 5edafc29829bc ("ARM: dts: k2*: Rename
the k2* files to keystone-k2* files")

[1] http://marc.info/?l=linux-arm-kernel&m=145637407804754&w=2

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 years agoaspeed: ast2500: Fix H-PLL and M-PLL clock rate calculation
maxims@google.com [Mon, 30 Jan 2017 19:35:04 +0000 (11:35 -0800)]
aspeed: ast2500: Fix H-PLL and M-PLL clock rate calculation

Fix H-PLL and M-PLL rate calculation in ast2500 clock driver.
Without this fix, valid setting can lead to division by zero
when requesting the rate of H-PLL or M-PLL clocks.

Signed-off-by: Maxim Sloyko <maxims@google.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agocmd: gpt: backup boot code before writing MBR
Vincent Tinelli [Mon, 30 Jan 2017 12:46:07 +0000 (15:46 +0300)]
cmd: gpt: backup boot code before writing MBR

On some cases the first 440 bytes of MBR are used to keep an additional
information for ROM boot loader. 'gpt write' command doesn't preserve
that area and makes boot code gone.

Preserve boot code area when run 'gpt write' command.

Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com>
Signed-off-by: Brennan Ashton <brn@deako.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agocmd: rework "license" command
Masahiro Yamada [Mon, 30 Jan 2017 02:12:08 +0000 (11:12 +0900)]
cmd: rework "license" command

The previous commit ("add a new command to show .config contents")
improves the basic infrastructure of "embed a compressed file into
the U-Boot image, and print it by a command".  The same pattern for
the "license" command.

This commit reworks the command to improve the following:

[1] Improve log style

Kbuild style log

  GZIP    cmd/license_data.gz
  CHK     cmd/license_data_gz.h
  UPD     cmd/license_data_gz.h
  CHK     cmd/license_data_size.h
  UPD     cmd/license_data_size.h

instead of the bare Make log:

cat ./Licenses/gpl-2.0.txt | gzip -9 -c | \
tools/bin2header license_gzip > ./include/license.h

[2] Collect related code into the "cmd" directory

Prior to this commit, the license.h was created by tools/Makefile,
placed under the "include" directory, included from cmd/license.c,
and deleted by the top-level Makefile.  It is not a good idea to
scatter related code.

[3] Drop the fixed-malloc size LICENSE_MAX

Just allocate the minimum required size of buffer because we know
the size of the original gpl-2.0.txt.

[4] Fix more issues

Terminate the buffer with zero to prevent puts() from over-running.
Add "static" to do_license.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agocmd: add a new command "config" to show .config contents
Masahiro Yamada [Mon, 30 Jan 2017 02:12:07 +0000 (11:12 +0900)]
cmd: add a new command "config" to show .config contents

This feature is inspired by /proc/config.gz of Linux.  In Linux,
if CONFIG_IKCONFIG is enabled, the ".config" file contents are
embedded in the kernel image.  If CONFIG_IKCONFIG_PROC is also
enabled, the ".config" contents are exposed to /proc/config.gz.
Users can do "zcat /proc/config.gz" to check which config options
are enabled on the running kernel image.

The idea is almost the same here; if CONFIG_CMD_CONFIG is enabled,
the ".config" contents are compressed and saved in the U-Boot image,
then printed by the new command "config".

The usage is quite simple.  Enable CONFIG_CMD_CONFIG, then run
 > config
from the command line interface.  The ".config" contents will be
printed on the console.

This feature increases the U-Boot image size by about 4KB (this is
mostly due to the gzip-compressed .config file).  By default, it is
enabled only for Sandbox because we do not care about the memory
footprint on it.  Of course, this feature is architecture agnostic,
so you can enable it on any board if the image size increase is
acceptable for you.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoscripts: import bin2c.c from Linux 4.10-rc6
Masahiro Yamada [Mon, 30 Jan 2017 02:12:06 +0000 (11:12 +0900)]
scripts: import bin2c.c from Linux 4.10-rc6

Import scripts/basic/bin2c.c of Linux.

In Linux Kernel, this file was moved to scripts/basic directory by
commit 8370edea81e3 ("bin2c: move bin2c in scripts/basic").

In U-Boot, we do not need to follow that commit.  Just put it in the
original directory "scripts".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoarm64: use store with auto-increment
Masahiro Yamada [Fri, 27 Jan 2017 07:15:30 +0000 (16:15 +0900)]
arm64: use store with auto-increment

Save one instruction.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agoarm64: use xzr to zero-out the bss section
Masahiro Yamada [Fri, 27 Jan 2017 07:15:29 +0000 (16:15 +0900)]
arm64: use xzr to zero-out the bss section

AArch64 has a zero register (xzr).  Use it instead of x2.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agopatman: Handle non-ascii characters in names
Chris Packham [Tue, 7 Feb 2017 07:11:00 +0000 (20:11 +1300)]
patman: Handle non-ascii characters in names

When gathering addresses for the Cc list patman would encounter a
UnicodeDecodeError due to non-ascii characters in the author name.
Address this by explicitly using utf-8 when building the Cc list.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
7 years agobuildman: Allow showing the list of boards with -n
Simon Glass [Mon, 23 Jan 2017 12:38:56 +0000 (05:38 -0700)]
buildman: Allow showing the list of boards with -n

As well as showing the number of boards, allow showing the actual list of
boards that would be built, if -v is provided.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agocros_ec: i2c: Add support for version 3 of the EC protocol
Moritz Fischer [Fri, 20 Jan 2017 20:35:03 +0000 (12:35 -0800)]
cros_ec: i2c: Add support for version 3 of the EC protocol

Add support for version 3 of the ec protocol. It basically works by
stitching some additional header in front (special command code),
and having a result and packet_length stitched on for the reply.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot@lists.denx.de
Acked-by: Simon Glass <sjg@chromium.org>
Tested on snow:
Tested-by: Simon Glass <sjg@chromium.org>
7 years agosimple-bus: enable support for of-platdata
Kever Yang [Wed, 18 Jan 2017 12:25:44 +0000 (20:25 +0800)]
simple-bus: enable support for of-platdata

Just do nothing in post_bind if of-platdata enabled,
for there is no dm_scan_fdt_dev().

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Fixed subject line typo:
Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodm: core: Replace of_offset with accessor
Simon Glass [Tue, 17 Jan 2017 23:52:55 +0000 (16:52 -0700)]
dm: core: Replace of_offset with accessor

At present devices use a simple integer offset to record the device tree
node associated with the device. In preparation for supporting a live
device tree, which uses a node pointer instead, refactor existing code to
access this field through an inline function.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agopatman: Format checkpatch messages for IDE throwback
Simon Glass [Tue, 17 Jan 2017 23:52:23 +0000 (16:52 -0700)]
patman: Format checkpatch messages for IDE throwback

It is convenient to be able to deal with checkpatch warnings in the same
way as build warnings. Tools such as emacs and kate can quickly locate
the source file and line automatically.

To achieve this, adjust the format to match the C compiler, and output to
stderr.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agodtoc: Replace dot with underscore to avoid compiler errors
Simon Glass [Mon, 16 Jan 2017 04:09:08 +0000 (21:09 -0700)]
dtoc: Replace dot with underscore to avoid compiler errors

If there is a '.' in a compatible string, then dtoc will produce a struct
with a name containing a '.'. This won't work, so replace it with '_'.

Also add a suitable test to the sandbox device tree to catch this.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agocros_ec: i2c: Group i2c write / read into single transaction
Moritz Fischer [Thu, 12 Jan 2017 17:47:30 +0000 (09:47 -0800)]
cros_ec: i2c: Group i2c write / read into single transaction

Replace dm_i2c_write() / dm_i2c_read() with transaction using
struct i2c_msg[2] in order to allow for i2c controller to detect
write/read cycle to emit a repeated start condition.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: u-boot@lists.denx.de
Acked-by: Simon Glass <sjg@chromium.org>
Tested on snow:
Tested-by: Simon Glass <sjg@chromium.org>
7 years agocommon: fdt_support: Remove check for mtdparts in fdt_fixup_mtdparts
Ladislav Michl [Mon, 9 Jan 2017 10:17:27 +0000 (11:17 +0100)]
common: fdt_support: Remove check for mtdparts in fdt_fixup_mtdparts

fdt_fixup_mtdparts currently does nothing when partition info is
runtime-generated or compiled-in defaults are used.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Fix nits in commit message:
Signed-off-by: Simon Glass <sjg@chromium.org>
7 years agoarm: socfpga: set the mpuclk divider in the Altera group register
Dinh Nguyen [Tue, 31 Jan 2017 18:33:08 +0000 (12:33 -0600)]
arm: socfpga: set the mpuclk divider in the Altera group register

The mpuclk register in the Altera group of the clock manager
divides the mpu_clk that is generated from the C0 output of the main
pll.

Without this patch, the default value of the register is 1, so the mpuclk
will always get divided by 2 if the correct value is not set. For example,
on the Arria5 socdk board, the MPU clock is only 525 MHz, and it should be
1.05 GHz.

Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
7 years agodrivers: net: Provide Kconfig menu for PHYLIB
Alex [Tue, 7 Feb 2017 03:17:34 +0000 (19:17 -0800)]
drivers: net: Provide Kconfig menu for PHYLIB

Provide the necessary Kconfig symbols so that PHYLIB support may be
enabled in Kconfig, as opposed to needing to #define these symbols in
C source headers.

BITBANGMII and MV88E6352_SWITCH are left out of the PHYLIB submenu as
they don't seem to explicitly depend on it (i.e. they do not use the
phy_driver class).

Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: Improve the Marvell 151x constants
Joe Hershberger [Fri, 9 Dec 2016 17:54:39 +0000 (11:54 -0600)]
net: phy: Improve the Marvell 151x constants

Use some constants for the phy configuration instead of so many magic
numbers.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: fec_mxc: Fix corruption of device tree blob
Daniel Strnad [Thu, 2 Feb 2017 11:11:40 +0000 (12:11 +0100)]
net: fec_mxc: Fix corruption of device tree blob

Modifying content of dev->name leads to the device tree corruption
because it points to the node name located there.

Signed-off-by: Daniel Strnad <strnadda@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: designware: Fix for use with current Linux device tree for Meson GX
Heiner Kallweit [Fri, 27 Jan 2017 20:25:59 +0000 (21:25 +0100)]
net: designware: Fix for use with current Linux device tree for Meson GX

In Uboot for Meson GX the compatible string in meson-gxbb.dtsi so far is:
compatible = "amlogic,meson6-dwmac", "snps,dwmac";

On Linux in the same dt file it's
compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";

To avoid breaking ethernet with the next DT synch from Linux to U-Boot
(planned as prerequisite for adding Meson GX MMC driver to U-Boot) add
"amlogic,meson-gx-dwmac" to the compatibility list in the designware
driver.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: dp83867: Add support for MAC impedance configuration
Mugunthan V N [Tue, 24 Jan 2017 17:15:40 +0000 (11:15 -0600)]
net: phy: dp83867: Add support for MAC impedance configuration

Add support for programmable MAC impedance configuration and
fix typo in DT impedance parameters names.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Tested-by: Lokesh Vutla <lokeshvutla@ti.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: vitesse: Fix cis8204 RGMII_ID code
Phil Edworthy [Mon, 12 Dec 2016 15:27:12 +0000 (15:27 +0000)]
net: phy: vitesse: Fix cis8204 RGMII_ID code

Commit 79e86ccb3786c8b20004db3fa10a70049456f580 "vitesse: remove duplicated
argument to ||" correctly removed a redundant check.

However, I believe that the original code was simply wrong, and should have
been checking against RGMII_ID.

To fix this and avoid similar problems in the future, use the
phy_interface_is_rgmii helper function.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: Marvell: Use phy_interface_is_rgmii helper function
Phil Edworthy [Mon, 12 Dec 2016 12:54:15 +0000 (12:54 +0000)]
net: phy: Marvell: Use phy_interface_is_rgmii helper function

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: Add support for Marvell M88E1512
Phil Edworthy [Mon, 12 Dec 2016 12:54:14 +0000 (12:54 +0000)]
net: phy: Add support for Marvell M88E1512

This device also works with the 88E1518 code, so we just adjust
the UID mask accordingly.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: Fix mask so that we can identify Marvell 88E1518
Phil Edworthy [Mon, 12 Dec 2016 12:54:13 +0000 (12:54 +0000)]
net: phy: Fix mask so that we can identify Marvell 88E1518

The mask for the 88E1510 meant that the 88E1518 code would never be
used.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: phy: ti: Fix dp83867 RGMII_TXID interface path
Phil Edworthy [Fri, 9 Dec 2016 10:46:02 +0000 (10:46 +0000)]
net: phy: ti: Fix dp83867 RGMII_TXID interface path

There is code that is specifically for RGMII_TXID interface, but this
will never get used because the code checks that the RGMII interface
is RGMII_ID to RGMII_RXID; RGMII_TXID is after this.

To fix this and avoid similar problems in the future, use the
phy_interface_is_rgmii helper function.

Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agotools: Add tool to add crc8 to a mac address
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:32 +0000 (16:30 +0100)]
tools: Add tool to add crc8 to a mac address

This patch adds a little tool that takes a generic MAC address and
generates a CRC byte for it. The output is the full MAC address without
any separators, ready written into an EEPROM.

Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agotools: Allow crc8 to be used
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:31 +0000 (16:30 +0100)]
tools: Allow crc8 to be used

This patch enables crc8 to be used from within the tools directory using
u-boot/crc.h.

Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
7 years agonet: core: cosmetic: A MAC address is not limited to SROM
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:23 +0000 (16:30 +0100)]
net: core: cosmetic: A MAC address is not limited to SROM

Currently, we print that the MAC from the SROM does not match. It can be
many forms of ROM, so lets drop the S.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: cosmetic: Define ethernet name length
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:21 +0000 (16:30 +0100)]
net: cosmetic: Define ethernet name length

There are various places where the ethernet device name is defined to
several different sizes. Lets add a define and start using it.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: cosmetic: Make the MAC address string less magical
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:20 +0000 (16:30 +0100)]
net: cosmetic: Make the MAC address string less magical

In u-boot printf has been extended with the %pM formatter to allow
printing of MAC addresses. However buffers that want to store a MAC
address cannot safely get the size. Add a define for this case so the
string of a MAC address can be reliably obtained.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: cosmetic: Do not use magic values for ARP_HLEN
oliver@schinagl.nl [Fri, 25 Nov 2016 15:30:19 +0000 (16:30 +0100)]
net: cosmetic: Do not use magic values for ARP_HLEN

Commit 674bb249825a ("net: cosmetic: Replace magic numbers in arp.c with
constants") introduced a nice define to replace the magic value 6 for
the ethernet hardware address. Replace more hardcoded instances of 6
which really reference the ARP_HLEN (iow the MAC/Hardware/Ethernet
address).

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: macb: Remove redundant #ifdef CONFIG_DM_ETH
Wenyou Yang [Wed, 2 Nov 2016 02:06:57 +0000 (10:06 +0800)]
net: macb: Remove redundant #ifdef CONFIG_DM_ETH

Remove the redundant #ifdef CONFIG_DM_ETH/#endif.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: macb: Add the clock support
Wenyou Yang [Wed, 2 Nov 2016 02:06:56 +0000 (10:06 +0800)]
net: macb: Add the clock support

Due to introducing the at91 clock driver, add the clock support.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
7 years agonet: Kconfig: Add CONFIG_MACB option
Wenyou Yang [Wed, 2 Nov 2016 02:06:55 +0000 (10:06 +0800)]
net: Kconfig: Add CONFIG_MACB option

Add CONFIG_MACB option in KConfig to be used to select the Cadence
MACB Ethernet driver.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
7 years agox86: make LOAD_FROM_32_BIT visible for platforms
Andy Shevchenko [Sun, 5 Feb 2017 13:52:00 +0000 (16:52 +0300)]
x86: make LOAD_FROM_32_BIT visible for platforms

This option is useful not only for development, but for the platforms
where U-Boot is run from custom ROM bootloader. For example, Intel
Edison is that board.

Make this option visible that platforms can select it if needed.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: qemu: Add a config for 64-bit U-Boot
Bin Meng [Wed, 18 Jan 2017 11:33:04 +0000 (03:33 -0800)]
x86: qemu: Add a config for 64-bit U-Boot

Add a new board config which uses 64-bit U-Boot. Supported features
are the same as the other 64-bit board (Google Chromebook Link).
It is a start for us to test 64-bit U-Boot easily without the need
to access a real hardware.

Note CONFIG_SPL_ENV_SUPPORT is required for QEMU 64-bit as without
this the SPL build fails at the end. This is just a workaround as
CONFIG_SPL_ENV_SUPPORT is not needed at all.

common/built-in.o:(.data.env_htab+0xc): undefined reference to 'env_flags_validate'
lib/built-in.o: In function `hsearch_r':
lib/hashtable.c:380: undefined reference to 'env_callback_init'
lib/hashtable.c:382: undefined reference to 'env_flags_init'
make[1]: *** [spl/u-boot-spl] Error 1

Except those SPL options required by 64-bit, compared to 32-bit
config, the following options are different:

- CONFIG_SYS_MALLOC_F_LEN has to be increased to 0x1000 for SPL.
- CONFIG_DEBUG_UART has to be included due to the weird issue.
  See TODO comments in arch/x86/cpu/x86_64/cpu.c:arch_setup_gd().
  Once this issue gets fixed, debug uart can be optional.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Add build options for SPL
Bin Meng [Wed, 18 Jan 2017 11:33:03 +0000 (03:33 -0800)]
x86: qemu: Add build options for SPL

If SPL is used we want to use the generic SPL framework and boot
from SPI via a board-specific means. Add these options to the
board config file.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Add a text base for 64-bit U-Boot
Bin Meng [Wed, 18 Jan 2017 11:33:02 +0000 (03:33 -0800)]
x86: qemu: Add a text base for 64-bit U-Boot

Set up the 64-bit U-Boot text base if building for that target.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agotools: binman: Handle optional microcode case in SPL image
Bin Meng [Wed, 18 Jan 2017 11:33:00 +0000 (03:33 -0800)]
tools: binman: Handle optional microcode case in SPL image

On platforms which do not require microcode in SPL, handle such
case like U-Boot proper.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agotools: binman: Call correct init for Entry_u_boot_spl_with_ucode_ptr
Bin Meng [Wed, 18 Jan 2017 11:32:59 +0000 (03:32 -0800)]
tools: binman: Call correct init for Entry_u_boot_spl_with_ucode_ptr

u_boot_spl_with_ucode_ptr is derived from u_boot_with_ucode_ptr,
hence it should call its parent's init.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Mark ucode as optional for SPL in u-boot.dtsi
Bin Meng [Wed, 18 Jan 2017 11:32:58 +0000 (03:32 -0800)]
x86: qemu: Mark ucode as optional for SPL in u-boot.dtsi

QEMU does not need ucode and this is indicated in u-boot.dtsi
for U-Boot proper. Now add the same for SPL.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Set up device tree for SPL
Bin Meng [Wed, 18 Jan 2017 11:32:57 +0000 (03:32 -0800)]
x86: qemu: Set up device tree for SPL

Add the correct pre-relocation tag so that the required device tree
nodes are present in the SPL device tree.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Fix compiler warnings for 64-bit
Bin Meng [Wed, 18 Jan 2017 11:32:56 +0000 (03:32 -0800)]
x86: qemu: Fix compiler warnings for 64-bit

This fixes compiler warnings for QEMU in 64-bit.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Hide arch_cpu_init() and print_cpuinfo() for U-Boot proper
Bin Meng [Wed, 18 Jan 2017 11:32:55 +0000 (03:32 -0800)]
x86: qemu: Hide arch_cpu_init() and print_cpuinfo() for U-Boot proper

arch_cpu_init() and print_cpuinfo() should be only available in SPL
build.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: Compile irq.c for 64-bit
Bin Meng [Wed, 18 Jan 2017 11:32:54 +0000 (03:32 -0800)]
x86: Compile irq.c for 64-bit

There is no reason not to compile irq.c for 64-bit.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: spl: Add weak arch_cpu_init_dm()
Bin Meng [Wed, 18 Jan 2017 11:32:53 +0000 (03:32 -0800)]
x86: spl: Add weak arch_cpu_init_dm()

arch_cpu_init_dm() might not be implemented by every platform.
Implement a weak version for SPL.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: Wrap print_ch() with config option
Bin Meng [Wed, 18 Jan 2017 11:32:52 +0000 (03:32 -0800)]
x86: Wrap print_ch() with config option

print_ch() should not be used if DEBUG_UART is off.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: qemu: Add missing DECLARE_GLOBAL_DATA_PTR in e820.c
Bin Meng [Wed, 18 Jan 2017 11:32:51 +0000 (03:32 -0800)]
x86: qemu: Add missing DECLARE_GLOBAL_DATA_PTR in e820.c

DECLARE_GLOBAL_DATA_PTR is missing which causes 64-bit build error.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 years agox86: link: Add a config for 64-bit U-Boot
Simon Glass [Mon, 16 Jan 2017 14:04:27 +0000 (07:04 -0700)]
x86: link: Add a config for 64-bit U-Boot

Add a new board config which uses 64-bit U-Boot. This is not fully
functional but is it a start. Missing features:

- SDRAM sizing
- Booting linux
- EFI support
- SCSI device init
(and others)

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: Update compile/link flags to support 64-bit U-Boot
Simon Glass [Mon, 16 Jan 2017 14:04:26 +0000 (07:04 -0700)]
x86: Update compile/link flags to support 64-bit U-Boot

Update config.mk settings to support both 32-bit and 64-bit U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: link: Add build options for SPL
Simon Glass [Mon, 16 Jan 2017 14:04:25 +0000 (07:04 -0700)]
x86: link: Add build options for SPL

If SPL is used we want to use the generic SPL framework and boot from SPI
via a board-specific means. Add these options to the board config file.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: link: Set up device tree for SPL
Simon Glass [Mon, 16 Jan 2017 14:04:24 +0000 (07:04 -0700)]
x86: link: Set up device tree for SPL

Add the correct pre-relocation tag so that the required device tree nodes
are present in the SPL device tree.

On x86 it doesn't make a lot of sense to have a separate SPL device tree.
Since everything is in the same ROM we might as well just use the main
device tree in both SPL and U-Boot proper. But we haven't implemented that,
so this is a good first step.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: link: Add SPL declarations to the binman image
Simon Glass [Mon, 16 Jan 2017 14:04:23 +0000 (07:04 -0700)]
x86: link: Add SPL declarations to the binman image

When building for 64-bit we need to put an SPL binary into the image. Update
the binman image description to reflect this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: link: Add a text base for 64-bit U-Boot
Simon Glass [Mon, 16 Jan 2017 14:04:22 +0000 (07:04 -0700)]
x86: link: Add a text base for 64-bit U-Boot

Set up the 64-bit U-Boot text base if building for that target.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: Add a dummy setjmp implementation for x86_64
Simon Glass [Mon, 16 Jan 2017 14:04:21 +0000 (07:04 -0700)]
x86: Add a dummy setjmp implementation for x86_64

We don't have the code for this yet. Add a dummy version for now, so that
EFI builds correctly.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
7 years agox86: Move setjmp to the i386 directory
Simon Glass [Mon, 16 Jan 2017 14:04:20 +0000 (07:04 -0700)]
x86: Move setjmp to the i386 directory

This code is only used in 32-bit mode. Move it so that it does not get
built with 64-bit U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>