oweals/u-boot.git
8 years agotest/py: detect another "bad pattern" in console output
Stephen Warren [Thu, 28 Jan 2016 06:57:50 +0000 (23:57 -0700)]
test/py: detect another "bad pattern" in console output

Many error situations in U-Boot print the message:
    ### ERROR ### Please RESET the board ###

Add this to the list of bad patterns the test system detects. One
practical advantage of this change is to detect the case where sandbox
is told to use a particular DTB file, and the file cannot be opened.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: check for bad patterns everywhere we wait
Stephen Warren [Thu, 28 Jan 2016 06:57:49 +0000 (23:57 -0700)]
test/py: check for bad patterns everywhere we wait

Currently, bad patterns are only honored when executing a shell command.
Other cases, such as the initial boot-up of U-Boot or when interacting
with command output rather than gathering all output prior to the shell
prompt, do not currently look for bad patterns in console output. This
patch makes sure that bad patterns are honored everywhere.

One benefit of this change is that if U-Boot sandbox fails to start up,
the error message it emits can be caught immediately, rather than relying
on a (long) timeout when waiting for the expected signon message and/or
command prompt.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest.py: calculate bad patterns on change only
Stephen Warren [Thu, 28 Jan 2016 06:57:48 +0000 (23:57 -0700)]
test.py: calculate bad patterns on change only

A future patch will use the bad_patterns array in multiple places. Rather
than duplicating the code to calculate it, or even sharing it in a
function and simply calling it redundantly when nothing has changed, only
re-calculate the list when some change is made to it. This reduces work.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: fix spawn.expect multiple match handling
Stephen Warren [Thu, 28 Jan 2016 06:57:47 +0000 (23:57 -0700)]
test/py: fix spawn.expect multiple match handling

Multiple patterns may be passed to spawn.expect(). The pattern which
matches at the earliest position should be designated as the match. This
aspect works correctly. When multiple patterns match at the same position,
priority should be given the the earliest entry in the list of patterns.
This aspect does not work correctly. This patch fixes it.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/dm: clear unit test failure count each run
Stephen Warren [Thu, 28 Jan 2016 06:57:46 +0000 (23:57 -0700)]
test/dm: clear unit test failure count each run

The ut command prints a test failure count each time it is executed.
This is stored in a global variable which is never reset. Consequently,
the printed failure count accumulates across runs. Fix this by clearing
the counter each time "ut" is invoked.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: Provide custom IDs when parametrizing tests
Stephen Warren [Tue, 26 Jan 2016 22:26:04 +0000 (15:26 -0700)]
test/py: Provide custom IDs when parametrizing tests

When pytest generates the name for parametrized tests, simple parameter
values (ints, strings) get used directly, but more complex values such
as dicts are not handled. This yields test names such as:

    dfu[env__usb_dev_port0-env__dfu_config0]
    dfu[env__usb_dev_port0-env__dfu_config1]

Add some code to extract a custom fixture ID from the fixture values, so
that we end up with meaningful names such as:

    dfu[micro_b-emmc]
    dfu[devport2-ram]

If the boardenv file doesn't define custom names, the code falls back to
the old algorithm.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: Quote consistency
Stephen Warren [Tue, 26 Jan 2016 20:41:31 +0000 (13:41 -0700)]
test/py: Quote consistency

When converting test/py from " to ', I missed a few places (or added a
few inconsistencies later). Fix these.

Note that only quotes in code are converted; double-quotes in comments
and HTML are left as-is, since English and HTML use " not '.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: use " for docstrings
Stephen Warren [Tue, 26 Jan 2016 20:41:30 +0000 (13:41 -0700)]
test/py: use " for docstrings

Python's coding style docs indicate to use " not ' for docstrings.

test/py has other violations of the coding style docs, since the docs
specify a stranger style than I would expect, but nobody has complained
about those yet:-)

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: make net test aware of USB and PCI enumeration
Stephen Warren [Tue, 26 Jan 2016 18:10:14 +0000 (11:10 -0700)]
test/py: make net test aware of USB and PCI enumeration

The existing net test executes a list of commands supplied by boardenv
variable env__net_pre_commands. The idea was that boardenv would know
whether the Ethernet device was attached to USB, PCI, ... and hence was
the best place to put any commands required to probe the device.

However, this approach doesn't scale well when attempting to use a single
boardenv across multiple branches of U-Boot, some of which require "pci
enum" to enumerate PCI and others of which don't, or don't /yet/ simply
because various upstream changes haven't been merged down.

This patch updates the test to require that the boardenv state which HW
features are required for Ethernet to work, and lets the test itself map
that knowledge to the set of commands to execute. Since this mapping is
part of the test script, which is part of the U-Boot code/branch, this
approach is more scalable. It also feels cleaner, since again boardenv
is only providing data, rather than test logic.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agodistro bootcmd: enumerate PCI before network operations
Stephen Warren [Tue, 26 Jan 2016 18:10:13 +0000 (11:10 -0700)]
distro bootcmd: enumerate PCI before network operations

The PCI bus must be enumerated before PCI devices, such as Ethernet
devices, are known to U-Boot. Enhance the distro boot commands to perform
PCI enumeration when needed.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agodistro bootcmd: make net boot only optionally start USB
Stephen Warren [Tue, 26 Jan 2016 18:10:12 +0000 (11:10 -0700)]
distro bootcmd: make net boot only optionally start USB

Currently, the distro boot commands always enumerate USB devices before
performing network operations. However, depending on the board and end-
user configuration, network devices may not be attached to USB, and so
enumerating USB may not be necessary. Enhance the scripts to make this
step optional, so that the user can decrease boot time if they don't
need USB.

This change is performed by moving the "usb start" invocation into a
standalone variable. If the user desires, they can replace that
variable's value with some no-op command such as "true" instead.

Booting from a USB storage device always needs to enumerate USB devices,
so this action is still hard-coded.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoImplement "pci enum" command for CONFIG_DM_PCI
Stephen Warren [Tue, 26 Jan 2016 18:10:11 +0000 (11:10 -0700)]
Implement "pci enum" command for CONFIG_DM_PCI

With CONFIG_DM_PCI enabled, PCI buses are not enumerated at boot, as they
are without that config option enabled. No command exists to enumerate the
PCI buses. Hence, unless some board-specific code causes PCI enumeration,
PCI-based Ethernet devices are not detected, and network access is not
available.

This patch implements "pci enum" in the CONFIG_DM_PCI case, thus giving a
mechanism whereby PCI can be enumerated.

do_pci()'s handling of case 'e' is moved into a single location before the
dev variable is assigned, in order to skip calculation of dev. The enum
sub-command doesn't need the dev value, and skipping its calculation
avoids an irrelevant error being printed.

Using a command to initialize PCI like this has a disadvantage relative to
enumerating PCI at boot. In particular, Ethernet devices are not probed
during PCI enumeration, but only when used. This defers setting variables
such as ethact, ethaddr, etc. until the first network-related command is
executed. Hopefully this will not cause further issues. Perhaps in the
long term, we need a "net start/enum" command too?

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agotest/py: dfu: error out if USB device already exists
Stephen Warren [Tue, 26 Jan 2016 17:59:43 +0000 (10:59 -0700)]
test/py: dfu: error out if USB device already exists

The DFU test requests U-Boot configure its USB controller in device mode,
then waits for the host machine to enumerate the USB device and create a
device node for it. However, this wait can be fooled if the USB device
node already exists before the test starts, e.g. if some previous software
stack already configured the USB controller into device mode and never
de-configured it. This "previous software stack" could even be another
test/py test, if U-Boot's own USB teardown does not operate correctly. If
this happens, dfu-util may be run before U-Boot is ready to serve DFU
commands, which may cause false test failures.

Enhance the dfu test to fail if the device node exists before it is
expected to.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoARM: tegra: shut down USB device controller at boot
Stephen Warren [Tue, 26 Jan 2016 17:59:42 +0000 (10:59 -0700)]
ARM: tegra: shut down USB device controller at boot

When loading U-Boot into RAM over USB protocols using tools such as
tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
mode controller is initialized and enumerated by the host PC running
the tool. Unfortunately, these tools do not shut down the USB
controller before executing the downloaded code, and so the host PC
does not "de-enumerate" the USB device. This patch implements optional
code to shut down the USB controller when U-Boot boots to avoid leaving
a stale USB device present.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: make crash detection more robust
Stephen Warren [Mon, 25 Jan 2016 22:07:58 +0000 (15:07 -0700)]
test/py: make crash detection more robust

test/py contains logic to detect the target crashing and rebooting by
searching the console output for a U-Boot signon message, which will
presumably be emitted when the system boots after the crash/reset.

Currently, this logic only searches for the exact signon message that
was printed by the U-Boot version under test, upon the assumption that
binary is written into flash, and hence will be the version booted after
any reset. However, this is not a valid assumption; some test setups
download the U-Boot-under-test into RAM and boot it from there, and in
such a scenario an arbitrary U-Boot version may be located in flash and
hence run after any reset.

Fix the reset detection logic to match any U-Boot signon message. This
prevents false negatives.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agodm: Remove device_probe_child()
Simon Glass [Mon, 25 Jan 2016 21:58:42 +0000 (14:58 -0700)]
dm: Remove device_probe_child()

This function is not used as the use case for it did not eventuate. Remove
it to avoid confusion.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
8 years agotest/py: add a networking test
Stephen Warren [Thu, 21 Jan 2016 23:05:31 +0000 (16:05 -0700)]
test/py: add a networking test

This tests:
- dhcp (if indicated by boardenv file).
- Static IP network setup (if provided by boardenv file).
- Ping.
- TFTP get.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: move find_ram_base() into u_boot_utils
Stephen Warren [Thu, 21 Jan 2016 23:05:30 +0000 (16:05 -0700)]
test/py: move find_ram_base() into u_boot_utils

find_ram_base() is a shared utility function, not a core part of the
U-Boot console interaction.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: add DFU test
Stephen Warren [Fri, 22 Jan 2016 19:30:14 +0000 (12:30 -0700)]
test/py: add DFU test

Add a test of DFU functionality to the Python test suite. The test
starts DFU in U-Boot, waits for USB device enumeration on the host,
executes dfu-util multiple times to test various transfer sizes, many
of which trigger USB driver edge cases, and finally aborts the DFU
command in U-Boot.

This test mirrors the functionality previously available via the shell
scripts in test/dfu, and hence those are removed too.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: ums: add filesystem-based testing
Stephen Warren [Fri, 22 Jan 2016 19:30:13 +0000 (12:30 -0700)]
test/py: ums: add filesystem-based testing

Enhance the UMS test to optionally mount a partition and read/write a file
to it, validating that the content written and read back are identical.

This enhancement is backwards-compatible; old boardenv contents that don't
define the new configuration data will cause the test code to perform as
before.

test/ums/ is deleted since the Python test now performs the same testing
that it did.

The code is also re-written to make use of the recently added utility
module, and split it up into nested functions so the overall logic of
the test process can be followed more easily without the details
cluttering the code.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: add various utility code
Stephen Warren [Fri, 22 Jan 2016 19:30:12 +0000 (12:30 -0700)]
test/py: add various utility code

Add various common utility functions. These will be used by a forthcoming
re-written UMS test, and a brand-new DFU test.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: optionally ignore errors from shell commands
Stephen Warren [Fri, 22 Jan 2016 19:30:11 +0000 (12:30 -0700)]
test/py: optionally ignore errors from shell commands

Sometimes it's useful to run shell commands and ignore any errors. One
example might be cleanup logic; if a test-case experiences an error, the
cleanup logic might experience an error too, and we don't want that error
to mask the original error, so we want to ignore the subsequent error.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: log when tests send CTRL-C
Stephen Warren [Fri, 22 Jan 2016 19:30:10 +0000 (12:30 -0700)]
test/py: log when tests send CTRL-C

Write a note to the log file when a test sends CTRL-C to U-Boot. This
makes it easier to follow what's happening in the logs, especially since
U-Boot doesn't echo the character back to its output, so there's no other
signal of what's going on.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: drain console log at the end of any failed test
Stephen Warren [Fri, 22 Jan 2016 19:30:09 +0000 (12:30 -0700)]
test/py: drain console log at the end of any failed test

Tests may fail for a number of reasons, and in particular for reasons
other than a timeout waiting for U-Boot to print expected data. If the
last operation that a failed test performs is not waiting for U-Boot to
print something, then any trailing output from U-Boot during that test's
operation will not be logged as part of that test, but rather either
along with the next test, or even thrown away, potentiall hiding clues
re: the test failure reason.

Solve this by explicitly draining (and hence logging) the U-Boot output
in the case of failed tests.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: move U-Boot respawn trigger to the test core
Stephen Warren [Fri, 22 Jan 2016 19:30:08 +0000 (12:30 -0700)]
test/py: move U-Boot respawn trigger to the test core

Prior to this change, U-Boot was lazilly (re-)spawned if/when a test
attempted to interact with it, and no active connection existed. This
approach was simple, yet had the disadvantage that U-Boot might be
spawned in the middle of a test function, e.g. after the test had already
performed actions such as creating data files, etc. In that case, this
could cause the log to contain the sequence (1) some test logs, (2)
U-Boot's boot process, (3) the rest of that test's logs. This isn't
optimally readable. This issue will affect the upcoming DFU and enhanced
UMS tests.

This change converts u_boot_console to be a function-scoped fixture, so
that pytest attempts to re-create the object for each test invocation.
This allows the fixture factory function to ensure that U-Boot is spawned
prior to every test. In practice, the same object is returned each time
so there is essentially no additional overhead due to this change.

This allows us to remove:

- The explicit ensure_spawned() call from test_sleep, since the core now
ensures that the spawn happens before the test code is executed.

- The laxy calls to ensure_spawned() in the u_boot_console_*
implementations.

The one downside is that test_env's "state_ttest_env" fixture must be
converted to a function-scoped fixture too, since a module-scoped fixture
cannot use a function-scoped fixture. To avoid overhead, we use the same
trick of returning the same object each time.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotest/py: fix timeout to be absolute
Stephen Warren [Fri, 22 Jan 2016 19:30:07 +0000 (12:30 -0700)]
test/py: fix timeout to be absolute

Currently, Spawn.expect() imposes its timeout solely upon receipt of new
data, not on its overall operation. In theory, this could cause the
timeout not to fire if U-Boot continually generated output that did not
match the expected patterns.

Fix the code to additionally impose a timeout on overall operation, which
is the intended mode of operation.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agotpm: st33zp24: Add tpm st33zp24 spi support
Christophe Ricard [Thu, 21 Jan 2016 22:27:14 +0000 (23:27 +0100)]
tpm: st33zp24: Add tpm st33zp24 spi support

Add support for TPM ST33ZP24 spi.

The ST33ZP24 does have a spi interface.
The transport protocol is proprietary.

For spi we are relying only on DM_SPI.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
8 years agotpm: st33zp24: Add tpm st33zp24 support with i2c
Christophe Ricard [Thu, 21 Jan 2016 22:27:13 +0000 (23:27 +0100)]
tpm: st33zp24: Add tpm st33zp24 support with i2c

Add support for TPM ST33ZP24 family with i2c.

For i2c we are relying only on DM_I2C.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
8 years agotpm: Rename tpm_tis_infineon.h to tpm_tis.h and move infineon specific stuff in tpm_i...
Christophe Ricard [Thu, 21 Jan 2016 22:27:12 +0000 (23:27 +0100)]
tpm: Rename tpm_tis_infineon.h to tpm_tis.h and move infineon specific stuff in tpm_infineon.c

I2C protocol is not standardize for TPM 1.2.
TIS prococol is define by the Trusted Computing Group and potentially
available on several TPMs.

tpm_tis_infineon.h header is not generic enough.

Rename tpm_tis_infineon.h to tpm_tis.h and move infineon specific
defines/variables to tpm_tis_infineon.c

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
8 years agotpm: tpm_tis_lpc: fix typo
Christophe Ricard [Thu, 21 Jan 2016 22:19:14 +0000 (23:19 +0100)]
tpm: tpm_tis_lpc: fix typo

TPM_TIS_LPC is connected to the LPC bus, not I2C.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
8 years agotpm: Fix fault in case CONFIG_DM_TPM is set without any TPM
Christophe Ricard [Thu, 21 Jan 2016 22:19:13 +0000 (23:19 +0100)]
tpm: Fix fault in case CONFIG_DM_TPM is set without any TPM

In case CONFIG_DM_TPM was set without any TPM chipset configured a fault
was generated (NULL pointer access).

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
8 years agoMerge branch 'master' of git://git.denx.de/u-boot-tegra
Tom Rini [Thu, 28 Jan 2016 20:17:11 +0000 (15:17 -0500)]
Merge branch 'master' of git://git.denx.de/u-boot-tegra

8 years agoARM: tegra: rm Jetson TK1 PMIC GPIO programming
Stephen Warren [Mon, 18 Jan 2016 18:23:16 +0000 (11:23 -0700)]
ARM: tegra: rm Jetson TK1 PMIC GPIO programming

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

src/soc/intel/fsp_baytrail/chip.h

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

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

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

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

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

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

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

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

Enable three DSPI flash memories on board.

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

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

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

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

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

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

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

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

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

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

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

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

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

Add lpuart support using the driver model.

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

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

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

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

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

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

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

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

Hard-coding of portal id is removed.

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

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

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

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

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

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

Configure report of only error frames for a tx frame.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fix also CamelCase to make checkpatch happy

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

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

Fix also CamelCase to make checkpatch happy

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

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

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

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

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

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

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

Bootargs will be taken from DTS files.

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

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

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

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

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

Get right speed/duplex via mii info.

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

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

Keep default option there but allow overwrite it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Setup correct COUNTER_FREQUENCY for silicon
Michal Simek [Thu, 5 Nov 2015 07:32:14 +0000 (08:32 +0100)]
ARM64: zynqmp: Setup correct COUNTER_FREQUENCY for silicon

When U-Boot runs from EL3 system timer is setup based on this macro.
Software default freq for silicon is 100MHz but enable opton to rewrite
it. Emulation platform is using 4MHz.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Move memory setup to board file
Michal Simek [Mon, 5 Oct 2015 09:02:33 +0000 (11:02 +0200)]
ARM64: zynqmp: Move memory setup to board file

Setup memory size for ep108 in ep108 config file.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Enable advance memory test by default
Michal Simek [Thu, 15 Oct 2015 12:34:28 +0000 (14:34 +0200)]
ARM64: zynqmp: Enable advance memory test by default

Temp space in at the beginning of OCM.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Remove unneeded timer_init function
Michal Simek [Wed, 13 Jan 2016 11:47:04 +0000 (12:47 +0100)]
ARM64: zynqmp: Remove unneeded timer_init function

Empty weak function is used instead.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Fix bootmode SD_MODE1
Michal Simek [Fri, 6 Nov 2015 09:22:37 +0000 (10:22 +0100)]
ARM64: zynqmp: Fix bootmode SD_MODE1

When only sdhci1 IP is enabled and SD_MODE1 bootmode is selected
U-Boot using sdboot1 variable which refers to mmc dev 1.
But this device doesn't exist because only one controller is available.

This patch fix logic around sdboot mode with using sdbootdev internal
variable.

Reported-by: Chris Kohn <ckohn@xilinx.com>
Acked-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Differentiate EMMC boot mode
Michal Simek [Mon, 5 Oct 2015 13:59:38 +0000 (15:59 +0200)]
ARM64: zynqmp: Differentiate EMMC boot mode

Show also EMMC bootmode if selected. There is difference compare to SD
bootmode. Use the same bootcommand till better boot command is created.

Reported-by: Sai Pavan Boddu <saipava@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Show information about bootmode
Michal Simek [Sun, 20 Sep 2015 15:20:42 +0000 (17:20 +0200)]
ARM64: zynqmp: Show information about bootmode

Showing information about bootmode is very useful to make sure
that correct bootmode is selected.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Add support for SD1 boot mode
Michal Simek [Mon, 5 Oct 2015 08:51:12 +0000 (10:51 +0200)]
ARM64: zynqmp: Add support for SD1 boot mode

SD1 boot mode is using different bootmode values.
Add support for this mode used on DC1.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Modify the SD and QSPI bootmode values
Siva Durga Prasad Paladugu [Fri, 13 Mar 2015 05:40:26 +0000 (11:10 +0530)]
ARM64: zynqmp: Modify the SD and QSPI bootmode values

Modify the SD bootmode value to 0x3 as per latest
spec. Also add new boot mode QSPI 32 bit boot mode

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: DT: Fix UART compatible string
Soren Brinkmann [Wed, 4 Nov 2015 19:18:09 +0000 (11:18 -0800)]
ARM64: zynqmp: DT: Fix UART compatible string

ZynqMP has r1p12 not r1p8. r1p12 contains break detection support.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Correct the watchdog timer interrupt number
Punnaiah Choudary Kalluri [Wed, 4 Nov 2015 07:04:17 +0000 (12:34 +0530)]
ARM64: zynqmp: Correct the watchdog timer interrupt number

Corrected the watchdog timer interrupt number.
Origin value was for CSUPMU watchdog.

Signed-off-by: Punnaiah Choudary Kalluri <punnaia@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Fix coding style in phy node
Michal Simek [Thu, 14 Jan 2016 12:11:51 +0000 (13:11 +0100)]
ARM64: zynqmp: Fix coding style in phy node

Trivial fix.

Signed-off-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Add initial support for the first silicon
Michal Simek [Thu, 20 Aug 2015 12:01:39 +0000 (14:01 +0200)]
ARM64: zynqmp: Add initial support for the first silicon

Add basic configuration for the first silicon.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
8 years agoARM64: zynqmp: Use the same U-Boot version with/without ATF
Michal Simek [Thu, 5 Nov 2015 07:34:35 +0000 (08:34 +0100)]
ARM64: zynqmp: Use the same U-Boot version with/without ATF

Remove SECURE_IOU option which is not needed. U-Boot itself can detect
which EL level it is on and based on that use do platform setup.
It also simplify usage because one Kconfig entry is gone.

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