Andrew F. Davis [Fri, 27 Jan 2017 16:39:19 +0000 (10:39 -0600)]
spl: Remove overwrite of relocated malloc limit
spl_init on some boards is called after stack and heap relocation, on
some platforms spl_relocate_stack_gd is called to handle setting the
limit to its value CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN when simple
SPL malloc is enabled during relocation. spl_init should then not
re-assign the old pre-relocation limit when this is defined.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
aspeed: Board init functions and common configs for ast2500 based boards
Add configuration file with parameters that are very likely to be shared by
all ast2500-based boards.
Add ast2500-board.c file with the init code that is very likely to be
shared by all ast2500-based boards. Reviewed-by: Simon Glass <sjg@chromium.org>
aspeed: Add basic ast2500-specific drivers and configuration
Clock Driver
This driver is ast2500-specific and is not compatible with earlier
versions of this chip. The differences are not that big, but they are
in somewhat random places, so making it compatible with ast2400 is not
worth the effort at the moment.
SDRAM MC driver
The driver is very ast2500-specific and is completely incompatible
with previous versions of the chip.
The memory controller is very poorly documented by Aspeed in the
datasheet, with any mention of the whole range of registers missing. The
initialization procedure has been basically taken from Aspeed SDK, where
it is implemented in assembly. Here it is rewritten in C, with very limited
understanding of what exactly it is doing. Reviewed-by: Simon Glass <sjg@chromium.org>
Add support for Watchdog Timer, which is compatible with AST2400 and
AST2500 watchdogs. There is no uclass for Watchdog yet, so the driver
does not follow the driver model. It also uses fixed clock, so no clock
driver is needed.
Add support for timer for Aspeed ast2400/ast2500 devices.
The driver actually controls several devices, but because all devices
share the same Control Register, it is somewhat difficult to completely
decouple them. Since only one timer is needed at the moment, this should
be OK. The timer uses fixed clock, so does not rely on a clock driver.
Add sysreset driver, which uses watchdog timer to do resets and particular
watchdog device to use is hardcoded (0) Reviewed-by: Simon Glass <sjg@chromium.org>
Tom Rini [Thu, 26 Jan 2017 01:42:38 +0000 (20:42 -0500)]
arm: Note vendor-required status of certain MACH_TYPE values
In the cases of some boards, a MACH_TYPE number is used which is either
not registered upstream or worse (for functionality) is re-using the
number of a different (or reference) platform instead. Make sure we
have a comment in these cases.
Cc: Albert ARIBAUD <albert.aribaud@3adev.fr> Cc: Walter Schweizer <swwa@users.sourceforge.net> Cc: Stefan Roese <sr@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Stefan Roese <sr@denx.de>
Tom Rini [Thu, 26 Jan 2017 01:42:36 +0000 (20:42 -0500)]
arm: Clean up MACH_TYPE_xxx usage after re-sync of mach-types
With the latest mach-types values we have many instances where we no
longer need to define a value and a few cases where the name (but not
value) have changed slightly.
This is not a strict revert as it is easier to fix
board/atmark-techno/armadillo-800eva/armadillo-800eva.c to now the
correct name (same value) than to revert that change too.
Patrick Delaunay [Fri, 27 Jan 2017 10:00:42 +0000 (11:00 +0100)]
cmd, disk: convert CONFIG_PARTITION_UUIDS, CMD_PART and CMD_GPT
We convert CONFIG_PARTITION_UUIDS to Kconfig first. But in order to cleanly
update all of the config files we must also update CMD_PART and CMD_GPT to also
be in Kconfig in order to avoid complex logic elsewhere to update all of the
config files.
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay73@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com>
Tang Yuantian [Fri, 20 Jan 2017 09:12:48 +0000 (17:12 +0800)]
armv8: ls1046a: added usb nodes in dts
The LS1046A processor has three integrated USB 3.0 controllers
(USB1, USB2, and USB3) that allow direct connection to the USB
ports with appropriate protection circuitry and power supplies.
USB1 and USB2 ports are powered by a NX5P2190UK device, which
supplies 5v power at up to 1.2 A. The power enable and
power-fault-detect pins are connected to the LS1046A processor
via CPLD for individual port management.
Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
Tang Yuantian [Fri, 20 Jan 2017 09:12:14 +0000 (17:12 +0800)]
armv8: ls1046aqds: added usb feature support
The LS1046AQDS processor has three integrated USB 3.0 controllers
(USB1, USB2, and USB3) that allow direct connection to the USB
ports with appropriate protection circuitry and power supplies.
USB1 and USB2 ports are powered by a NX5P2190UK device, which
supplies 5v power at up to 1.2 A. The power enable and
power-fault-detect pins are connected to the LS1046A processor
via CPLD for individual port management.
Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
Breno Lima [Tue, 10 Jan 2017 18:32:38 +0000 (16:32 -0200)]
udoo_neo: Add fdt_addr_r environment variable
According to doc/README.distro:
"fdt_addr_r:
Mandatory. The location in RAM where the DTB will be loaded or copied to when
processing the fdtdir/devicetreedir or fdt/devicetree options in
extlinux.conf."
So add the fdt_addr_r environment variable.
Suggested-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Breno Lima <breno.lima@nxp.com>
Stefan Agner [Tue, 27 Dec 2016 16:01:42 +0000 (17:01 +0100)]
imx_common: check for bmode Serial Downloader
Before commit 81c4eccb55cc ("imx: mx6: fix USB bmode to use
reserved value") a non-reserved value has been used to trigger
Serial Downloader using bmode, which translated to a GPR9 value
of 0x10. However, on some boards the non-reserved value lead to
unreliable bmode command. With the above mentioned commit, U-boot
switched to use [7:4] b0001, which translates to GPR9 0x10 for
Serial Downloader mode. Check for the new value and classify it
as Serial Downloader mode.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com> CC: Stefano Babic <sbabic@denx.de> CC: Tim Harvey <tharvey@gateworks.com> CC: Fabio Estevam <Fabio.Estevam@freescale.com> CC: Eric Nelson <eric.nelson@boundarydevices.com>
Gary Bisson [Thu, 12 Jan 2017 11:18:44 +0000 (12:18 +0100)]
imx: nitrogen6x: fix USB host initialization
USB Host scanning has been broken since v2016.05.
This is due to all the USB changes that happened between v2016.03
and v2016.05, especially: 2ef117fe4f usb: Remove 200 ms delay in usb_hub_port_connect_change() a22a264ec3 usb: Change power-on / scanning timeout handling
So we need to increase the init delay to 2s using the usb_pgood_delay
environment variable.
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
Fabio Estevam [Thu, 5 Jan 2017 23:33:08 +0000 (21:33 -0200)]
README: mxc_hab: Adapt the CONFIG_SECURE_BOOT text to Kconfig
Commit 6e1f4d2652e79 ("arm: imx-common: add SECURE_BOOT option to
Kconfig") moved the CONFIG_SECURE_BOOT option to Kconfig, so update
the mxc_hab README file to reflect that.
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
Fabio Estevam [Thu, 15 Dec 2016 18:00:11 +0000 (16:00 -0200)]
mx6qsabreauto: Pass the correct parallel NOR width
On mx6qsabreauto the parallel NOR width is 16 bits, so pass configure
CONFIG_SYS_FLASH_CFI_WIDTH correctly so that the CFI driver does not
use 8 bits by default.
Martin Kaiser [Mon, 2 Jan 2017 21:24:17 +0000 (22:24 +0100)]
tools: imximage: refactor header length calculations for imximage v1
We can use the same header length calculations for both imximage v1 and
v2. This addresses TODO comments about imximage v1 in the current code.
With this patch applied, *header_size_ptr in imximage_set_header() will
have the correct value for both imximage v1 and v2. This is necessary
for people wanting to add proprietary data behind the created imximage.
Signed-off-by: Martin Kaiser <martin@kaiser.cx> Cc: sbabic@denx.de
Ladislav Michl [Thu, 19 Jan 2017 10:45:35 +0000 (11:45 +0100)]
cmd: ubi: allow '-' to specify maximum volume size
Currently maximum volume size can be specified only if no other
arguments are used. Use '-' placeholder as volume size to allow
maximum volume size to be specified together with volume id and
type.
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Stefan Roese [Fri, 9 Dec 2016 14:03:28 +0000 (15:03 +0100)]
mmc: Add Marvell Xenon SDHCI controller driver
This driver implementes platform specific code for the Xenon SDHCI
controller which is integrated in the Marvell MVEBU Armada 37xx and
Armada 7k / 8K SoCs.
History:
This driver is ported from the Marvell U-Boot version 2015.01 which is
written by Victor Gu <xigu@marvell.com> with minor changes ported from
the Linux driver which is written by Ziji Hu <huziji@marvell.com>.
Stefan Roese [Mon, 12 Dec 2016 07:24:56 +0000 (08:24 +0100)]
mmc: sdhci: Add support for optional controller specific set_ios_post()
Some SDHCI drivers might need to do some special controller configuration
after the common clock set_ios() function has been called (speed / width
configuration). This patch adds a call to the newly created function
set_ios_port() when its configured in the host driver.
This will be used by the Xenon SDHCI controller driver used on the
Marvell Armada 3700 and 7k/8k ARM64 SoCs.
Signed-off-by: Stefan Roese <sr@denx.de> Cc: Jaehoon Chung <jh80.chung@samsung.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Stefan Roese [Mon, 12 Dec 2016 07:34:42 +0000 (08:34 +0100)]
mmc: sdhci: Clear SDHCI_CLOCK_CONTROL before configuring the new value
This patch completely clears the SDHCI_CLOCK_CONTROL register before the
new value is configured instead of just clearing the 2 bits
SDHCI_CLOCK_CARD_EN and SDHCI_CLOCK_INT_EN. Without this change, some
clock configurations will lead to the "Internal clock never stabilised."
error message on the Xenon SDHCI controller used on the Marvell Armada
3700 and 7k/8k ARM64 SoCs.
The Linux SDHCI core driver also writes 0 to this register before
the new value is configured. So this patch simplifies the driver a bit
and brings the U-Boot driver more in-line with the Linux one.
Tony O'Brien [Fri, 6 Jan 2017 04:29:45 +0000 (17:29 +1300)]
powerpc: Enable flush and invalidate dcache by range for MPC85xx
Commit ac337168a unified functions to flush and invalidate dcache by
range. These two functions were no-ops for SoCs other than 4xx and
MPC86xx. Adding these functions seemed to be correct but introduced
issues in some drivers when the dcache was flushed. While the root
cause was under investigation, these functions were disabled in
Commit cb1629f91a for affected SoCs, including the MPC85xx, to make
the various drivers work.
On the T208x USB stopped working after v2016.07 was pulled. After
re-enabling the dcache functions for the MPC85xx it started working
again. The USB and DPPA Ethernet drivers have been seen as
operational after this change but other drivers cannot be tested.
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Signed-off-by: Tony O'Brien <tony.obrien@alliedtelesis.co.nz> Cc: Marek Vasut <marex@denx.de> Cc: York Sun <york.sun@nxp.com> Reviewed-by: York Sun <york.sun>
Tony O'Brien [Thu, 1 Dec 2016 20:22:34 +0000 (09:22 +1300)]
mpc85xx: pcie: Implement workaround for Erratum A007815
The read-only-write-enable bit is set by default and must be cleared
to prevent overwriting read-only registers. This should be done
immediately after resetting the PCI Express controller.
Reviewed-by: Hamish Martin <hamish.martin@alliedtelesis.co.nz> Signed-off-by: Tony O'Brien <tony.obrien@alliedtelesis.co.nz>
[York S: Move SYS_FSL_ERRATUM_A007815 to Kconfig] Reviewed-by: York Sun <york.sun@nxp.com>
Darwin Dingel [Mon, 24 Oct 2016 20:48:01 +0000 (09:48 +1300)]
powerpc: mpc85xx: Implemente workaround for CPU erratum A-007907
Core hang occurs when using L1 stashes. Workaround is to disable L1
stashes so software uses L2 cache for stashes instead.
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Signed-off-by: Darwin Dingel <darwin.dingel@alliedtelesis.co.nz> Cc: York Sun <york.sun@nxp.com>
[York S: Move SYS_FSL_ERRATUM_A007907 to Kconfig] Reviewed-by: York Sun <york.sun@nxp.com>
Tom Rini [Mon, 23 Jan 2017 22:40:22 +0000 (17:40 -0500)]
travis-ci: Add swig and libpython-dev to the package list
As part of 1905c8fc711a we introduced failures depending on if swig and
libpython-dev are installed or not. To provide coverage for this are of
code in the future ensure we have these packages installed.
Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Heiko Schocher <hs@denx.de>
Andrew F. Davis [Mon, 23 Jan 2017 17:34:37 +0000 (11:34 -0600)]
mach-omap2: Cleanup secure boot media generation
Currently all secure media types of SPL are generated for all platforms,
all platforms do not need all types, only generate the media types valid
for each platform.
Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Tested-by: Lokesh Vutla <lokeshvutla@ti.com>
Tom Rini [Mon, 23 Jan 2017 00:43:11 +0000 (19:43 -0500)]
Kconfig: Migrate BOARD_LATE_INIT to a select
This option should not really be user selectable. Note that on PowerPC
we currently only need BOARD_LATE_INIT when CHAIN_OF_TRUST is enabled so be
conditional on that.
Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com> (for UniPhier)
Tuomas Tynkkynen [Sun, 22 Jan 2017 23:34:39 +0000 (01:34 +0200)]
rpi: Fix device tree path on ARM64
The directory structure of device tree files produced by the kernel's
'make dtbs_install' is different on ARM64, the RPi3 device tree file is
in a 'broadcom' subdirectory there.
Signed-off-by: Tuomas Tynkkynen <tuomas@tuxera.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Jagan Teki [Tue, 10 Jan 2017 10:18:43 +0000 (11:18 +0100)]
mmc: Print error code for mmc_complete_init failure
Print the error code for non-zero (failure case) instead
of making debug statement without any condition, this
usually gives proper clue in failure condition.
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency
The sdhci controller assumes that the base clock frequency is fully supported by
the peripheral and doesn't support hardware limitations. The Linux kernel
distinguishes between base clock (max_clk) of the host controller and maximum
frequency (f_max) of the card interface. Use the same differentiation and allow
the platform to constrain the peripheral interface.
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Masahiro Yamada [Sat, 21 Jan 2017 09:05:28 +0000 (18:05 +0900)]
ARM: dts: uniphier: compile only DT files that make sense
All the UniPhier DT files are compiled if CONFIG_ARCH_UNIPHIER
is enabled, but not all of them actually work. For example, when
U-Boot is compiled for ARM 32 bit, 64 bit DT files are also built,
and vice versa. Compile only the combination that makes sense.
Masahiro Yamada [Sat, 21 Jan 2017 09:05:27 +0000 (18:05 +0900)]
ARM: uniphier: add macro to generate SoC data look-up function
There are similar functions that look up SoC data by the SoC ID.
The new macro UNIPHIER_DEFINE_SOCDATA_FUNC will be helpful to
avoid the code duplication.
Masahiro Yamada [Sat, 21 Jan 2017 09:05:26 +0000 (18:05 +0900)]
ARM: uniphier: simplify SoC ID get function
Currently, uniphier_get_soc_type() converts the SoC ID (this is
read from the revision register) to an enum symbol to use it for SoC
identification. Come to think of it, there is no need for the
conversion in the first place. Using the SoC ID from the register
as-is a straightforward way.
Masahiro Yamada [Sat, 21 Jan 2017 09:05:25 +0000 (18:05 +0900)]
ARM: uniphier: replace <common.h> with <linux/delay.h> where possible
The <common.h> includes too many headers. Actually, these files
needed to include it for udelay() declaration. Now we can replace
it with <linux/delay.h> thanks to commit 5bc516ed661a ("delay:
collect {m, n, u}delay declarations to include/linux/delay.h").
Masahiro Yamada [Sat, 21 Jan 2017 09:05:24 +0000 (18:05 +0900)]
ARM: uniphier: replace <linux/err.h> with <linux/errno.h>
These files only need error number macros. Actually, IS_ERR(),
PTR_ERR(), ERR_PTR(), etc. are not useful for U-Boot. Avoid
unnecessary header includes.
Masahiro Yamada [Sat, 21 Jan 2017 09:05:23 +0000 (18:05 +0900)]
ARM: uniphier: add uniphier_v8_defconfig
This defconfig does not support SPL. If you use this, the basic
SoC initialization must be done in firmware that runs before U-Boot.
(Generally, ARM Trusted Firmware is expected to do this job).
Masahiro Yamada [Sat, 21 Jan 2017 09:05:22 +0000 (18:05 +0900)]
ARM: uniphier: make SPL optional for ARVv8 SoCs
We may want to run different firmware before running U-Boot. For
example, ARM Trusted Firmware runs before U-Boot, making U-Boot
a non-secure world boot loader. In this case, the SoC might be
initialized there, which enables us to skip SPL entirely.
This commit removes "select SPL" to make it configurable. This
also enables the Multi SoC support for the UniPhier ARMv8 SoCs.
(CONFIG_ARCH_UNIPHIER_V8_MULTI) Thanks to the driver model and
Device Tree, the U-Boot proper part is now written in a generic way.
The board/SoC parameters reside in DT. The Multi SoC support
increases the memory footprint a bit, but the U-Boot proper does
not have strict memory constraint. This will mitigate the per-SoC
(sometimes per-board) defconfig burden.
Uri Mashiach [Thu, 19 Jan 2017 08:51:45 +0000 (10:51 +0200)]
status_led: Kconfig migration
Move all of the status LED feature to drivers/led/Kconfig.
The LED status definitions were moved from the board configuration
files to the defconfig files.
TBD: Move all of the definitions in the include/status_led.h to the
relevant board's defconfig files.
Tested boards: CL-SOM-AM57x, CM-T335
Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
Tom Rini [Sat, 21 Jan 2017 00:55:53 +0000 (19:55 -0500)]
mx6saberesd_spl: Correct falcon mode addition
When falcon mode support was added, it was right around when SPL_OS_BOOT
was migrated to Kconfig. So first we must move the enablement to the
defconfig file. Next, it turned off EXT support rather than add the
information to allow for falcon mode from EXT. Add this information so
that the board compiles after 5d28b930f237.
Emmanuel Vadot [Thu, 19 Jan 2017 09:23:56 +0000 (10:23 +0100)]
bootm: qnx: Disable data cache before booting QNX image
Instead of disabling the data cache in the bootelf command, disabling
it in the do_bootm_qnxelf function.
Some ELF binary might want the cache enabled.
Lokesh Vutla [Tue, 17 Jan 2017 03:22:58 +0000 (08:52 +0530)]
ARM: OMAP4: Fix compiler warning
Latest gcc 6.2 compiler is throwing the below warning for omap4_panda_defconfig
arch/arm/mach-omap2/omap4/hw_data.c:136:3: warning: 'abe_dpll_params_sysclk_196608khz' defined but not used [-Wunused-const-variable=]
abe_dpll_params_sysclk_196608khz[NUM_SYS_CLKS] = {
Fix this by guarding it with CONFIG_SYS_OMAP_ABE_SYSCK
Reported-by: Dan Murphy <dmurphy@ti.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Emmanuel Vadot [Mon, 16 Jan 2017 07:14:46 +0000 (08:14 +0100)]
binman: add tools directory to the python path
The built _libfdt.so is placed in the /tools dir and need to say here
as it contains relative paths.
Add the directory to the python path so binman can use this module.