platform/kernel/u-boot.git
4 years agopart: efi: comment for GPT_HEADER_SIGNATURE_UBOOT
Heinrich Schuchardt [Tue, 24 Dec 2019 07:11:01 +0000 (08:11 +0100)]
part: efi: comment for GPT_HEADER_SIGNATURE_UBOOT

Add a comment indicating that the value of GPT_HEADER_SIGNATURE_UBOOT
equals the ASCII string 'EFI PART'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: clear screen should move cursor to home
Heinrich Schuchardt [Sun, 22 Dec 2019 07:15:55 +0000 (07:15 +0000)]
efi_loader: clear screen should move cursor to home

On a VT100 terminal <ESC>[2J should be enough to both clear the whole
screen and set the cursor to position (1, 1). But the Linux console does
not behave like this. So send an extra <ESC>[H. For reference see the
console_codes(4) man page.

Add a function description.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agotest/py: describe env__efi_loader_helloworld_file
Heinrich Schuchardt [Thu, 19 Dec 2019 12:39:30 +0000 (13:39 +0100)]
test/py: describe env__efi_loader_helloworld_file

Describe the components of environment variable
env__efi_loader_helloworld_file.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: git ignore helloworld_efi.S
Heinrich Schuchardt [Mon, 16 Dec 2019 11:05:58 +0000 (12:05 +0100)]
efi_loader: git ignore helloworld_efi.S

Add *.S to .gitignore.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_selftest: Update .gitignore
Sughosh Ganu [Mon, 16 Dec 2019 06:31:32 +0000 (12:01 +0530)]
efi_selftest: Update .gitignore

Add the following file to .gitignore
 efi_miniapp_file_image_exception.h

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Use efi_miniapp_*.h instead of file enumeration.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: export efi_install_fdt()
Heinrich Schuchardt [Sun, 8 Dec 2019 00:07:01 +0000 (01:07 +0100)]
efi_loader: export efi_install_fdt()

Use a pointer to addressable memory instead of a "physical" address in the
virtual address space of the sandbox to efi_install_fdt().

Export the efi_install_fdt() function.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: carve out efi_run_image()
Heinrich Schuchardt [Sat, 7 Dec 2019 19:51:06 +0000 (20:51 +0100)]
efi_loader: carve out efi_run_image()

Provide public function efi_run_imager() which can be used to run an UEFI
image from memory.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: use hardware device tree by default
Heinrich Schuchardt [Wed, 4 Dec 2019 11:31:12 +0000 (12:31 +0100)]
efi_loader: use hardware device tree by default

If the bootefi command is called without passing the address of a device
tree, the internal device tree is used. For devices with a hardware device
tree it is preferable to used the hardware device tree in this case.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: pass address to efi_install_fdt()
Heinrich Schuchardt [Thu, 28 Nov 2019 05:46:09 +0000 (06:46 +0100)]
efi_loader: pass address to efi_install_fdt()

As part of moving the parsing of command line arguments to do_bootefi()
call efi_install_fdt() with the address of the device tree instead of a
string.

If the address is EFI_FDT_USE_INTERNAL (= 0), the internal device tree
is used.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: adjust file system info
Heinrich Schuchardt [Sun, 8 Dec 2019 09:02:37 +0000 (10:02 +0100)]
efi_loader: adjust file system info

When the GetInfo() method of the EFI_FILE_PROTOCOL is called to retrieve
the file system info we claim that the volume is read only and has no free
space. This leads to failures in programs that check this information
before writing to the volume like SCT's InstallSct.efi.

Currently there is no function to determine these parameters in U-Boot. So
let's return optimistic values:

Return that the volume is writable.

Return the volume size as free space.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoefi_loader: imply USB_KEYBOARD_FN_KEYS
Heinrich Schuchardt [Wed, 4 Dec 2019 21:58:58 +0000 (22:58 +0100)]
efi_loader: imply USB_KEYBOARD_FN_KEYS

UEFI applications like GRUB and SCT assume that function keys are enabled
on the keyboard.

Let EFI_LOADER imply USB_KEYBOARD_FN_KEYS.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoinclude: pe.h: add signature-related definitions
AKASHI Takahiro [Tue, 26 Nov 2019 00:51:05 +0000 (09:51 +0900)]
include: pe.h: add signature-related definitions

The index (IMAGE_DIRECTORY_ENTRY_SECURITY) in a table points to
a region containing authentication information (image's signature)
in PE format.

WIN_CERTIFICATE structure defines an embedded signature format.

Those definitions will be used in my UEFI secure boot patch.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agoconfigs: qemu: enable FIT images on qemu_arm(64)_defconfig
Heinrich Schuchardt [Sun, 29 Dec 2019 11:06:29 +0000 (12:06 +0100)]
configs: qemu: enable FIT images on qemu_arm(64)_defconfig

For testing UEFI FIT images we need FIT image support on QEMU.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agotest/py: Fix broken 'notbuildconfigspec' marker
Cristian Ciocaltea [Tue, 24 Dec 2019 15:19:12 +0000 (17:19 +0200)]
test/py: Fix broken 'notbuildconfigspec' marker

Consider the following test sample:

@pytest.mark.buildconfigspec('fit')
@pytest.mark.notbuildconfigspec('generate_acpi_table')
def test_sample(u_boot_console):

Whatever the argument of the 'notbuildconfigspec' is,
the test ends up being skipped with the message:

('/uboot/test/py/conftest.py', 463,
 'Skipped: .config feature "fit" enabled')

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agobdinfo: show multi_dtb_fit
Heiko Schocher [Sat, 9 Nov 2019 03:56:10 +0000 (04:56 +0100)]
bdinfo: show multi_dtb_fit

if MULTI_DTB_FIT is enabled it is helpful to display
the value of gd->multi_dtb_fit in bdinfo.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agocmd_ut: add a parameter prefix to the function cmd_ut_category
Philippe Reynes [Tue, 17 Dec 2019 18:07:04 +0000 (19:07 +0100)]
cmd_ut: add a parameter prefix to the function cmd_ut_category

There is black magic in the file conftest.py that list
all the test unit. Then, all those test unit are called
in pytest. This call is done with the end of the name
(for example checksum if the full name is bloblist_test_checksum).

The result is that only test for dm are really executed.
by pytest, all others tests are listed but never executed.

This behaviour happens because the dm test unit only check
the end of the name and others tests checks the full name.

To fix this issue, I've added a prefix to the function
cmd_ut_category, and this prefix is removed when looking
for the unit test.

Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agopower: regulator: support off-on-delay-us
Peng Fan [Mon, 4 Nov 2019 09:27:23 +0000 (09:27 +0000)]
power: regulator: support off-on-delay-us

off-on-delay-us has been supported by Linux, so let's use it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoremoteproc: stm32: load resource table from firmware
Fabien Dessenne [Wed, 30 Oct 2019 13:38:33 +0000 (14:38 +0100)]
remoteproc: stm32: load resource table from firmware

Load the optional resource table from the firmware, and write its
address in the dedicated backup register.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: remove copro_state environment variable
Fabien Dessenne [Wed, 30 Oct 2019 13:38:32 +0000 (14:38 +0100)]
stm32mp1: remove copro_state environment variable

Since the coprocessor state is tracked in a backup register, there is
no more need for tracking it in an environment variable : remove it.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoremoteproc: stm32: track the coprocessor state in a backup register
Fabien Dessenne [Wed, 30 Oct 2019 13:38:31 +0000 (14:38 +0100)]
remoteproc: stm32: track the coprocessor state in a backup register

Update the dedicated backup register to track the coprocessor state and
rely on that register to compute the .is_running() value (which expects
a return value of 0 -not 1- if the processor is running).

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: reset coprocessor status at cold boot
Fabien Dessenne [Wed, 30 Oct 2019 13:38:30 +0000 (14:38 +0100)]
stm32mp1: reset coprocessor status at cold boot

Reset ResourceTableAddress and CoprocessorState at cold boot, preserve
these values at standby wakeup.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agostm32mp1: declare backup registers for coprocessor
Fabien Dessenne [Wed, 30 Oct 2019 13:38:29 +0000 (14:38 +0100)]
stm32mp1: declare backup registers for coprocessor

Use the backup register #17 as coprocessor resource table address and
backup register #18 as coprocessor state.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
4 years agoremoteproc: elf_loader: Add elf resource table load support
Fabien Dessenne [Wed, 30 Oct 2019 13:38:28 +0000 (14:38 +0100)]
remoteproc: elf_loader: Add elf resource table load support

Add rproc_elf_load_rsc_table(), which searches for a resource table in
an elf64/elf32 image, and if found, copies it to device memory.
Add also the elf32 and elf64 variants of this API.
Add a test for this.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agospl: fit: Allow the board to tell if more images must be loaded from FIT
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:22 +0000 (16:39 +0200)]
spl: fit: Allow the board to tell if more images must be loaded from FIT

spl_fit_get_image_name() is used to get the names of the images that the
SPL must load from the FIT. It relies on the content of a property present
in the FIT. The list of images is thus statically defined in the FIT.
With this scheme, it quickly becomes hard to manage combinations of more
than a handful of images.
To address this problem, give the board driver code the opportunity to
add to the list of images. The images from the FIT property are loaded
first, and then the board_get_fit_loadable() is called to get more image
names.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodts: Add support for adding DT overlays in u-boot.img
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:21 +0000 (16:39 +0200)]
dts: Add support for adding DT overlays in u-boot.img

If u-boot.img is a FIT image, CONFIG_OF_OVERLAY_LIST can be used to add
DT overlays to u-boot.img.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoinclude: board: provide empty stubs when the BOARD option is not selected
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:20 +0000 (16:39 +0200)]
include: board: provide empty stubs when the BOARD option is not selected

Useful to avoid #ifdef throughout the code that uses the board driver API.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodrivers: board: Add get_fit_loadable()
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:19 +0000 (16:39 +0200)]
drivers: board: Add get_fit_loadable()

This function will be used by the SPL to get the names of images to load
from the FIT. This allows to load different images based on runtime HW
detection.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agodrivers: board: Make the board drivers available in SPL
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:18 +0000 (16:39 +0200)]
drivers: board: Make the board drivers available in SPL

Make the board driver available in the SPL too. The board driver is a way
to provide useful information about the board and that can be useful in
the SPL too.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: constify the output parameter of spl_fit_get_image_name()
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:17 +0000 (16:39 +0200)]
spl: fit: constify the output parameter of spl_fit_get_image_name()

There is no need for it to be non-constant. Making it constant, allows to
return constant string without warning.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agoMakefile.lib: include /__symbols__ in dtb if SPL_LOAD_FIT_APPLY_OVERLAY is enabled
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:16 +0000 (16:39 +0200)]
Makefile.lib: include /__symbols__ in dtb if SPL_LOAD_FIT_APPLY_OVERLAY is enabled

In order to apply an overlay to a DTB. The DTB must have been generated
with the option '-@'.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: be more verbose when an error occurs when applying the overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:15 +0000 (16:39 +0200)]
spl: fit: be more verbose when an error occurs when applying the overlays

There are many ways the overlay application can fail.
2 of them are probably the most common:
- the application itself failed. Usually this is comes from an unresolved
  reference
- DTBO not available in FIT (could be because of a typo)

In both case it is good to be more explicit about the error and at least
show which overlay is failing.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Do not fail immediately if an overlay is not available
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:14 +0000 (16:39 +0200)]
spl: fit: Do not fail immediately if an overlay is not available

If one overlay that must be applied cannot be found in the FIT, the current
implementation stops applying the overlays. Let's make it skip only the
failing overlay instead.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: allocate a temporary buffer to load the overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:13 +0000 (16:39 +0200)]
spl: fit: allocate a temporary buffer to load the overlays

If the node describing an overlay does not specify a load address, it will
be loaded at the address previously used.
Fixing it by allocating a temporary buffer that will be used as a
default load address. By default, the size of the buffer is 64kB which
should be plenty for most use cases.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Make room in the FDT before applying overlays
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:12 +0000 (16:39 +0200)]
spl: fit: Make room in the FDT before applying overlays

Make room in the FDT before applying the overlay, otherwise it may fail if
the overlay is big. As the exact added size is not known in advance, just
add the size of the overlay.
Move after the end of the application of the overlays, the resize  of the
FDT for the injection of the details on the loadables.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: Add support for applying DT overlay
Michal Simek [Tue, 22 Oct 2019 14:39:11 +0000 (16:39 +0200)]
spl: fit: Add support for applying DT overlay

doc/uImage.FIT/overlay-fdt-boot.txt is describing how to create FIT
image with DT overlays in it.
Add support for this feature to SPL.

Here is the ZynqMP fragment where dtb points to full DT and dtbo is
overlay which should be applied on the top of dtb.
config {
        description = "ATF with full u-boot overlay";
        firmware = "atf";
        loadables = "uboot";
        fdt = "dtb", "dtbo";
};

The whole feature depends on OF_LIBFDT_OVERLAY which is adding +4kB code
and 0 for platforms which are not enabling this feature.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 years agospl: fit: don't load the firmware twice
Jean-Jacques Hiblot [Tue, 22 Oct 2019 14:39:10 +0000 (16:39 +0200)]
spl: fit: don't load the firmware twice

When u-boot.img is a FIT image generated automatically by mkimage, the
configuration node has the following structure:
conf-1 {
   description = "k3-am654-base-board";
   firmware = "firmware-1";
   loadables = "firmware-1";
   fdt = "fdt-1";
};

The firmware is referenced twice. Once by the 'firmware' property and
once by the 'loadables' property. Currently this result in the firmware
being loaded twice. This is not a big problem but has an impact on the
boot time.
Fixing it by not loading a loadable image if it is also the firmware image.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Andreas Dannenberg <dannenberg@ti.com>
4 years agotools: dumpimage: Fall-though to print usage for help command
Andrew F. Davis [Tue, 17 Sep 2019 21:09:35 +0000 (17:09 -0400)]
tools: dumpimage: Fall-though to print usage for help command

This has the same result but some compilers will warn about this
fall-through if there are statements as part of the label block.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agotools: fit_image: Use fit_image_get_data_and_size for getting offset/size
Andrew F. Davis [Tue, 17 Sep 2019 21:09:34 +0000 (17:09 -0400)]
tools: fit_image: Use fit_image_get_data_and_size for getting offset/size

This is very similar to fit_image_get_data but has the benefit of working
on FIT images with external data unlike fit_image_get_data. This is
useful for extracting sub-images from type of FIT image as this would
previously just silently fail. Add an error message also so if this
still fails it is easier to find out why.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agotools: dumpimage: Provide more feedback on internal errors
Andrew F. Davis [Tue, 17 Sep 2019 21:09:33 +0000 (17:09 -0400)]
tools: dumpimage: Provide more feedback on internal errors

The dumpimage utility errors out in a number of places without providing
sufficient feedback to allow the user to easily determine what has gone
wrong. Add additional error messages to make the cause of the failure
more obvious.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoboard: amlogic: select PWRSEQ for all amlogic platform
Anand Moon [Thu, 26 Dec 2019 11:33:53 +0000 (11:33 +0000)]
board: amlogic: select PWRSEQ for all amlogic platform

commit a10388dc6982 ("mmc: meson-gx: add support for mmc-pwrseq-emmc")
introduce CONFIG_PWRSEQ for power sequence for eMMC module on
amlogic platform, so enable this to all amlogic boards.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
4 years agoconfigs: meson64: enable GIC support for G12A/G12B
Anand Moon [Thu, 26 Dec 2019 11:33:52 +0000 (11:33 +0000)]
configs: meson64: enable GIC support for G12A/G12B

Enable GIC support for G12A/G12B platform.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
4 years agoboards: amlogic: add Khadas VIM3L support
Christian Hewitt [Wed, 11 Dec 2019 09:20:54 +0000 (13:20 +0400)]
boards: amlogic: add Khadas VIM3L support

Khadas VIM3L uses the same board layout as VIM3, but with an S905D3 chip
instead of A311D. Board config is derived from khadas-vim3_defconfig and
sei610_defconfig. README is based on README.khadas-vim3; the difference
is that VIM3L uses FIP files from the g12a folder in vendor sources not
the g12b folder.

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
[narmstrong: added vim3l readme into w400 MAINTAINERS]

4 years agoMerge tag 'u-boot-imx-20200107' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Tue, 7 Jan 2020 13:45:43 +0000 (08:45 -0500)]
Merge tag 'u-boot-imx-20200107' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

New for 2020.04
---------------

- New boards
Embedded Artists COM board
Xea Board
- Switch to DM:
Aristainetos boards
Toradex colibri (DM_ETH)
iCubox
GE bx50v3
mx7dsabre (DM_ETH)
cx9020
- New features:
Bootaux with elf files
Default SYS_THUMB_BUILD for i.MX6/7
- Fixes:
DHCOM i.MX6 PDK
Engicam
i.MX8M tools (imx8m_image)

Travis: https://travis-ci.org/sbabic/u-boot-imx/builds/633679664

4 years agoMerge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u...
Tom Rini [Tue, 7 Jan 2020 13:44:56 +0000 (08:44 -0500)]
Merge tag 'u-boot-atmel-2020.04-a' of https://gitlab.denx.de/u-boot/custodians/u-boot-atmel

First set of u-boot-atmel features for 2020.04 cycle

This feature set is a patch series from Tudor Ambarus which includes
parsing of the spi flash SFDP parser for SST flashes, and using those
tables to retrieve unique saved per device MAC address. This is then
used as base mac address on the SAMA5D2 Wireless SOM EK board.

4 years agoddr: socfpga: Enable ARM64 Non-Secure SDRAM ECC Access
Thor Thayer [Fri, 6 Dec 2019 19:47:32 +0000 (13:47 -0600)]
ddr: socfpga: Enable ARM64 Non-Secure SDRAM ECC Access

The ECC registers in the SDRAM HMC Adapter should always
be accessible (both when ECC is enabled and disabled).
Currently, the registers are accessible only when ECC is enabled.

The ECC Enabled bit is used to determine the status of
ECC by later OSes so always allow access.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agoarm: socfpga: stratix10: Enable SMMU access
Thor Thayer [Fri, 6 Dec 2019 19:47:31 +0000 (13:47 -0600)]
arm: socfpga: stratix10: Enable SMMU access

Enable TCU access through the Stratix10 CCU so that the
SMMU can access the SDRAM.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
4 years agoconfigs: socfpga: fix building Stratix10 and Agilex
Simon Goldschmidt [Thu, 12 Dec 2019 11:29:52 +0000 (12:29 +0100)]
configs: socfpga: fix building Stratix10 and Agilex

This fixes a merge error that accidentally left CONFIG_MTD_DEVICE
active by removing it from the config file.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Enable Agilex SoC build
Ley Foon Tan [Wed, 27 Nov 2019 07:55:32 +0000 (15:55 +0800)]
arm: socfpga: agilex: Enable Agilex SoC build

Add build support for Agilex SoC.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoconfigs: socfpga: Move Stratix10 and Agilex common CONFIGs
Ley Foon Tan [Wed, 27 Nov 2019 07:55:31 +0000 (15:55 +0800)]
configs: socfpga: Move Stratix10 and Agilex common CONFIGs

Move Stratix10 and Agilex common CONFIGs to socfpga_soc64_common.h.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: dts: agilex: Add base dtsi and devkit dts
Ley Foon Tan [Wed, 27 Nov 2019 07:55:30 +0000 (15:55 +0800)]
arm: dts: agilex: Add base dtsi and devkit dts

Add device tree files for Agilex SoC platform.

socfpga_agilex-u-boot.dtsi and socfpga_agilex_socdk-u-boot.dts contains
Uboot specific DT properties.

socfpga_agilex.dtsi and socfpga_agilex_socdk.dts are from Linux
(kernel/git/dinguyen/linux.git, commit 6f0bf971bacacc)

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Add SPL for Agilex SoC
Ley Foon Tan [Wed, 27 Nov 2019 07:55:29 +0000 (15:55 +0800)]
arm: socfpga: agilex: Add SPL for Agilex SoC

Add SPL support for Agilex SoC.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoboard: intel: agilex: Add socdk board support for Intel Agilex SoC
Ley Foon Tan [Wed, 27 Nov 2019 07:55:28 +0000 (15:55 +0800)]
board: intel: agilex: Add socdk board support for Intel Agilex SoC

Add socdk board support for Intel Agilex SoC

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoddr: altera: agilex: Add SDRAM driver for Agilex
Ley Foon Tan [Wed, 27 Nov 2019 07:55:27 +0000 (15:55 +0800)]
ddr: altera: agilex: Add SDRAM driver for Agilex

Add SDRAM driver for Agilex SoC.

Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoddr: altera: Restructure Stratix 10 SDRAM driver
Ley Foon Tan [Wed, 27 Nov 2019 07:55:26 +0000 (15:55 +0800)]
ddr: altera: Restructure Stratix 10 SDRAM driver

Restructure Stratix 10 SDRAM driver. Move common code to separate
file, in preparation to support SDRAM driver for Agilex.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: agilex: Add clock handoff offset for Agilex
Ley Foon Tan [Wed, 27 Nov 2019 07:55:25 +0000 (15:55 +0800)]
arm: agilex: Add clock handoff offset for Agilex

Add clock handoff offset for Agilex. Remove S10 prefix to avoid confusion.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agocache: Add Arteris Ncore cache coherent unit driver
Ley Foon Tan [Wed, 27 Nov 2019 07:55:24 +0000 (15:55 +0800)]
cache: Add Arteris Ncore cache coherent unit driver

Add Cache Coherency Unit (CCU) driver.
CCU is to ensures consistency of shared data between multi masters
in the system.

Driver initializes CCU's directories and coherency agent
interfaces in CCU IP.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Add clock wrapper functions
Ley Foon Tan [Wed, 27 Nov 2019 07:55:23 +0000 (15:55 +0800)]
arm: socfpga: agilex: Add clock wrapper functions

Add clock wrapper functions call to clock DM functions to get clock
frequency and used in cm_print_clock_quick_summary().

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoclk: agilex: Add clock driver for Agilex
Ley Foon Tan [Wed, 27 Nov 2019 07:55:22 +0000 (15:55 +0800)]
clk: agilex: Add clock driver for Agilex

Add clock manager driver for Agilex. Provides clock initialization
and get_rate functions.

agilex-clock.h is from Linux commit ID cd2e1ad12247.

Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com>
Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Fix CLKMGR_INTOSC_HZ to 400MHz
Ley Foon Tan [Wed, 27 Nov 2019 07:55:21 +0000 (15:55 +0800)]
arm: socfpga: Fix CLKMGR_INTOSC_HZ to 400MHz

CLKMGR_INTOSC_HZ should be 400MHz, instead of 460MHz.
Removed also unused macros CLKMGR_EOSC1_HZ and CLKMGR_FPGA_CLK_HZ.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Move Stratix10 and Agilex clock manager common code
Ley Foon Tan [Wed, 27 Nov 2019 07:55:20 +0000 (15:55 +0800)]
arm: socfpga: Move Stratix10 and Agilex clock manager common code

Move Stratix10 and Agilex clock manager common code to new header file.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Add system manager support
Ley Foon Tan [Wed, 27 Nov 2019 07:55:19 +0000 (15:55 +0800)]
arm: socfpga: agilex: Add system manager support

Add system manager support for Agilex.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Move Stratix10 and Agilex system manager common code
Ley Foon Tan [Wed, 27 Nov 2019 07:55:18 +0000 (15:55 +0800)]
arm: socfpga: Move Stratix10 and Agilex system manager common code

Move Stratix10 and Agilex system manager common code to
system_manager_soc64.h. Changed macros to use SYSMGR_SOC64_*.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Add reset manager support
Ley Foon Tan [Wed, 27 Nov 2019 07:55:17 +0000 (15:55 +0800)]
arm: socfpga: agilex: Add reset manager support

Add reset manager support for Agilex.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Move Stratix10 and Agilex reset manager common code
Ley Foon Tan [Wed, 27 Nov 2019 07:55:16 +0000 (15:55 +0800)]
arm: socfpga: Move Stratix10 and Agilex reset manager common code

Move Stratix10 and Agilex reset manager common code to
reset_manager_soc64.h. Changed macros to RSTMGR_SOC64_*.

Remove unused RSTMGR_XXX defines.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Move firewall code to firewall file
Ley Foon Tan [Wed, 27 Nov 2019 07:55:15 +0000 (15:55 +0800)]
arm: socfpga: Move firewall code to firewall file

Move firewall related code to new firewall.c, to share
code in Stratix 10 and Agilex.

SDMMC will transfer data to OCRAM in SPL. So, enable privilege for SDMMC
to allow DMA transfer to OCRAM.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: agilex: Add base address for Intel Agilex SoC
Ley Foon Tan [Wed, 27 Nov 2019 07:55:14 +0000 (15:55 +0800)]
arm: socfpga: agilex: Add base address for Intel Agilex SoC

Add base address for Intel Agilex SoC.

Reuse base_addr_s10.h for Agilex, only one base address is
different from S10.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Convert clock manager from struct to defines
Ley Foon Tan [Fri, 8 Nov 2019 02:38:21 +0000 (10:38 +0800)]
arm: socfpga: Convert clock manager from struct to defines

Convert clock manager for Gen5, Arria 10 and Stratix 10 from struct
to defines.

Change to get clock manager base address from DT node instead of using
#define.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Convert system manager from struct to defines
Ley Foon Tan [Fri, 8 Nov 2019 02:38:20 +0000 (10:38 +0800)]
arm: socfpga: Convert system manager from struct to defines

Convert system manager for Gen5, Arria 10 and Stratix 10 from struct
to defines.

Change to get system manager base address from DT node instead of
using #define.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: socfpga: Convert reset manager from struct to defines
Ley Foon Tan [Fri, 8 Nov 2019 02:38:19 +0000 (10:38 +0800)]
arm: socfpga: Convert reset manager from struct to defines

Convert reset manager for Gen5, Arria 10 and Stratix 10 from struct
to defines.

Change to get reset manager base address from DT node instead of using
#define.

spl_early_init() initializes the DT setup. So, move spl_early_init() to
beginning of function and before get base address from DT.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agoarm: dts: socfpga: Add u-boot, dm-pre-reloc for sysmgr and clkmgr nodes
Ley Foon Tan [Fri, 8 Nov 2019 02:38:18 +0000 (10:38 +0800)]
arm: dts: socfpga: Add u-boot, dm-pre-reloc for sysmgr and clkmgr nodes

Add u-boot,dm-pre-reloc for sysmgr and clkmgr nodes to use it in SPL.
In preparation to get base address from DT.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agospl: Allow cache drivers to be used in SPL
Ley Foon Tan [Fri, 11 Oct 2019 05:48:33 +0000 (13:48 +0800)]
spl: Allow cache drivers to be used in SPL

Add an option for building cache drivers in SPL.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
4 years agox86: edison: Enable DFU timeout
Andy Shevchenko [Wed, 27 Nov 2019 16:12:16 +0000 (18:12 +0200)]
x86: edison: Enable DFU timeout

The stock U-Boot on Intel Edison has timeout parameter for DFU command.
Enable it here to be compatible with the original U-Boot configuration.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 years agodfu: Add optional timeout parameter
Andy Shevchenko [Wed, 27 Nov 2019 16:12:15 +0000 (18:12 +0200)]
dfu: Add optional timeout parameter

When the `dfu` command is called from the U-Boot environment,
it now accepts an optional parameter that specifies a timeout (in seconds).
If a DFU connection is not made within that time the `dfu` command exits
(as it would if Ctrl+C was pressed). If the timeout is left empty or being
zero the `dfu` command behaves as it does now.

This is useful for allowing U-Boot to check to see if anything wants to
upload new firmware before continuing to boot.

The patch is based on the commit
https://github.com/01org/edison-u-boot/commit/5e966ccc3c65c18c9783741fa04e0c45e021780c
by Sebastien Colleur, which has been heavily reworked due to U-Boot changes
in the past.

Signed-off-by: Brad Campbell <bradjc5@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
4 years agodfu: Refactor do_dfu() to handle optional argument
Andy Shevchenko [Wed, 27 Nov 2019 16:12:14 +0000 (18:12 +0200)]
dfu: Refactor do_dfu() to handle optional argument

In the future we may utilize optional argument in 'dfu' command line.
As a preparation for this, refactor do_dfu().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Lukasz Majewski <lukma@denx.de>
4 years agodfu: Drop unused prototype of dfu_trigger_reset()
Andy Shevchenko [Wed, 27 Nov 2019 16:12:13 +0000 (18:12 +0200)]
dfu: Drop unused prototype of dfu_trigger_reset()

After the commit 1cc03c5c53c0 ("dfu: Provide means to find difference between
dfu-util -e and -R") the dangling ptototype appeared. Remove it here.

Fixes: 1cc03c5c53c0 ("dfu: Provide means to find difference between dfu-util -e and -R")
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Lukasz Majewski <lukma@denx.de>
4 years agoARM: dts: Import Khadas VIM3L DT from Linux 5.5-rc1
Christian Hewitt [Wed, 11 Dec 2019 09:20:53 +0000 (13:20 +0400)]
ARM: dts: Import Khadas VIM3L DT from Linux 5.5-rc1

Import the Khadas VIM3L device-tree from [1]

[1] e42617b825f8 ("Linux 5.5-rc1")

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
4 years agovideo: meson: Drop unnecessary header includes
Simon Glass [Sun, 27 Oct 2019 15:54:03 +0000 (09:54 -0600)]
video: meson: Drop unnecessary header includes

These files should not be included in meson header files. Drop them and
tidy up the affected C files.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
4 years agoARM: mxs: spl_boot.c: make early_delay more robust
Rasmus Villemoes [Tue, 10 Sep 2019 08:32:01 +0000 (08:32 +0000)]
ARM: mxs: spl_boot.c: make early_delay more robust

It's true that booting normally doesn't take long enough for the
register to roll (which actually happens in a little over an hour, not
just a few seconds). However, the counter starts at power-on, and if
the board is held in reset to be booted over USB, one actually risks
hitting wrap-around during boot, which can both result in too short
delays (if the "st += delay" calculation makes st small) and
theoretically also unbound delays (if st ends up being UINT_MAX and
one just misses sampling digctl_microseconds at that point).

It doesn't take more code to DTRT, and once bitten, twice shy.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoARM: dts: imx6qdl-icore-1.5: Remove duplicate phy reset methods
Michael Trimarchi [Mon, 30 Dec 2019 12:04:08 +0000 (17:34 +0530)]
ARM: dts: imx6qdl-icore-1.5: Remove duplicate phy reset methods

Engicam i.CoreM6 1.5 Quad/Dual MIPI dtsi is reusing fec node
from Engicam i.CoreM6 dtsi but have sampe copy of phy-reset-gpio
and phy-mode properties.

So, drop this phy reset methods from imx6qdl-icore-1.5 dsti file.

Cc: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL
Jagan Teki [Mon, 30 Dec 2019 12:04:07 +0000 (17:34 +0530)]
ARM: dts: imx6q-icore-mipi: Use 1.5 version of i.Core MX6DL

The EDIMM STARTER KIT i.Core 1.5 MIPI Evaluation is based on
the 1.5 version of the i.Core MX6 cpu module. The 1.5 version
differs from the original one for a few details, including the
ethernet PHY interface clock provider.

With this commit, the ethernet interface works properly:
SMSC LAN8710/LAN8720 2188000.ethernet-1:00: attached PHY driver

While before using the 1.5 version, ethernet failed to startup
do to un-clocked PHY interface:
fec 2188000.ethernet eth0: could not attach to PHY

Similar fix has merged for i.Core MX6Q but missed to update for DL.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoARM: dts: icorem6: Sync engicam device trees from v5.4
Jagan Teki [Mon, 30 Dec 2019 12:04:06 +0000 (17:34 +0530)]
ARM: dts: icorem6: Sync engicam device trees from v5.4

Sync Engicam device tree file from v5.4 linux-next.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoconfigs: imx6-engicam: Drop fec phy address and mode
Michael Trimarchi [Mon, 30 Dec 2019 12:04:04 +0000 (17:34 +0530)]
configs: imx6-engicam: Drop fec phy address and mode

Now all the fec related phy properties are now accessible
via dts. So drop the explicit config items from common
config file, imx6-engicam.h

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoboard: engicam: Fix the ethernet clock initialization
Michael Trimarchi [Mon, 30 Dec 2019 12:04:03 +0000 (17:34 +0530)]
board: engicam: Fix the ethernet clock initialization

According to the SOM and reference board the clock
can be taken from the external pin or provided from
ENET_REF_CLK. Add a new function that make the proper
set according the board type.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoboard: engicam: Cleanup fdt file and board mapping
Michael Trimarchi [Mon, 30 Dec 2019 12:04:02 +0000 (17:34 +0530)]
board: engicam: Cleanup fdt file and board mapping

Make easy to map fdt file to board in order to use
this information later to apply specific change to
specific board combination.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
4 years agoarm: mxs: be more careful when enabling gpmi_clk
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:11 +0000 (09:17 +0000)]
arm: mxs: be more careful when enabling gpmi_clk

The data sheet says that the DIV field cannot change while the CLKGATE
bit is set or modified. So do it a little more carefully, by first
clearing the bit, waiting for that to appear, then setting the DIV
field.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoarm: mxs: fix comments in arch_cpu_init to match the code
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:10 +0000 (09:17 +0000)]
arm: mxs: fix comments in arch_cpu_init to match the code

The comment says to clear the bypass bit, but in fact it sets it, thus
selecting ref_xtal. And the next line of code does not set the divider
to 12, but to (the reset value of) 1.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoarm: mxs: fix register definitions for clkctrl_gpmi and clkctrl_sspX
Rasmus Villemoes [Thu, 12 Sep 2019 09:17:09 +0000 (09:17 +0000)]
arm: mxs: fix register definitions for clkctrl_gpmi and clkctrl_sspX

I tried clearing a bit by writing to hw_clkctrl_gpmi_clr, then
busy-waiting for it to actually clear. My board hung. The data sheet
agrees, these registers do not have _set, _clr, _tog, so fix up the
definitions. git grep -E 'clkctrl_(gpmi|ssp[0-9])_' says that nobody
uses those non-existing ops registers.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoimx8mm_evk: Adjust the environment for booting a mainline kernel
Fabio Estevam [Mon, 16 Dec 2019 19:09:22 +0000 (16:09 -0300)]
imx8mm_evk: Adjust the environment for booting a mainline kernel

Adjust the environment for booting a mainline kernel by default.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomach-imx: nandbcb: improve cmd help
Igor Opaniuk [Mon, 16 Dec 2019 12:06:44 +0000 (14:06 +0200)]
mach-imx: nandbcb: improve cmd help

Add info about supported i.MX7, improve details the usage of
bcbonly subcommand.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agomx6slevk: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:28 +0000 (14:59 -0300)]
mx6slevk: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomx6sllevk: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:27 +0000 (14:59 -0300)]
mx6sllevk: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agomx7dsabresd: Fix the pmic_get() parameter in the DM case
Fabio Estevam [Fri, 20 Dec 2019 17:59:26 +0000 (14:59 -0300)]
mx7dsabresd: Fix the pmic_get() parameter in the DM case

When pmic_get() is used with DM the first parameter must be
the complete node name plus the unit address, so fix it
accordingly.

Reported-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoddr: imx8m: Return error values from LPDDR4 training
Frieder Schrempf [Wed, 11 Dec 2019 10:01:19 +0000 (10:01 +0000)]
ddr: imx8m: Return error values from LPDDR4 training

In cases when the same SPL should run on boards with i.MX8MM, that
differ in DDR configuration, it is necessary to try different
parameters and check if the training done by the firmware suceeds or
not.

Therefore we return the DDR training/initialization success to the
upper layer in order to be able to retry with different settings if
necessary.

Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agotools: imx8m_image: Change source path for DDR firmware to build dir
Frieder Schrempf [Wed, 11 Dec 2019 10:06:06 +0000 (10:06 +0000)]
tools: imx8m_image: Change source path for DDR firmware to build dir

The DDR firmware binaries are not part of the U-Boot source code, so
we should look for them in the build directory, where they need to be
copied to before building U-Boot.

The ATF binary is already fetched from the build directory, but the
README files for the i.MX8M EVKs claim that it needs to be copied to
the source directory (which is still true for in-tree builds, but not
in general). Therefore we also fix the READMEs to use the build
directory as the correct location for all additional binary files.

Sined-off-by: Frieder Schrempf <frieder.schrempf@kontron.de>
4 years agoarm: imx: Default to SYS_THUMB_BUILD for i.MX6/7
Tom Rini [Tue, 3 Dec 2019 14:28:03 +0000 (09:28 -0500)]
arm: imx: Default to SYS_THUMB_BUILD for i.MX6/7

In the case of i.MX6 and i.MX7 family SoCs it is safe (from an errata
point of view) to use thumb2 by default to save space.

Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agomach-imx: bootaux: elf firmware support
Igor Opaniuk [Mon, 30 Dec 2019 11:56:44 +0000 (13:56 +0200)]
mach-imx: bootaux: elf firmware support

Currently imx-specific bootaux command doesn't support ELF format
firmware for Cortex-M4 core.

This patches introduces a PoC implementation of handling elf firmware
(load_elf_image_phdr() was copy-pasted from elf.c just for PoC).
ELF64 binaries isn't supported yet.

This has the advantage that the user does not need to know to which
address the binary has been linked to. However, in order to handle
and load the elf sections to the right address, we need to translate the
Cortex-M4 core memory addresses to primary/host CPU memory
addresses (Cortex A7/A9 cores).

This allows to boot firmwares from any location with just using
bootaux, e.g.:
> tftp ${loadaddr} hello_world.elf && bootaux ${loadaddr}

Similar translation table can be found in the Linux remoteproc
driver [1].

[1] https://elixir.bootlin.com/linux/latest/source/drivers/remoteproc/imx_rproc.c

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agocolibri_imx7: migrate to DM_ETH
Igor Opaniuk [Mon, 4 Nov 2019 10:12:04 +0000 (11:12 +0100)]
colibri_imx7: migrate to DM_ETH

Migrate to DM_ETH and remove hardcoded pinmux configuration.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx7: imx7_colibri: introduce fec node
Igor Opaniuk [Mon, 4 Nov 2019 10:12:03 +0000 (11:12 +0100)]
ARM: dts: imx7: imx7_colibri: introduce fec node

Sync DTS with the mainline Linux and introduce fec node and
regulator configuration for rn5t567 PMU.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoapalis_imx6: migrate to DM_ETH
Igor Opaniuk [Mon, 4 Nov 2019 10:12:02 +0000 (11:12 +0100)]
apalis_imx6: migrate to DM_ETH

Migrate to DM_ETH and remove hardcoded pinmux configuration.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoARM: dts: imx6_apalis: introduce fec node
Igor Opaniuk [Mon, 4 Nov 2019 10:12:01 +0000 (11:12 +0100)]
ARM: dts: imx6_apalis: introduce fec node

Sync DTS with the mainline Linux and introduce fec node.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>