Simon Glass [Mon, 30 Dec 2019 04:19:25 +0000 (21:19 -0700)]
dm: test: Add a test driver for devres
Add a driver which does devres allocations so that we can write tests for
devres.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:24 +0000 (21:19 -0700)]
dm: devres: Convert to use logging
At present when CONFIG_DEBUG_DEVRES is enabled, U-Boot prints log messages
to the console with every devres allocation/free event. This causes most
tests to fail since the console output is not as expected.
In particular this prevents us from adding a device to sandbox which uses
devres in its bind method.
Move devres over to use U-Boot's logging feature instead, and add a new
category for devres.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:23 +0000 (21:19 -0700)]
test: Add functions to find the amount of allocated memory
The malloc() implementations provides a way of finding out the approximate
amount of memory that is allocated. Add helper functions to make it easier
to access this and see changes over time. This is useful for tests that
want to check if memory has been allocated or freed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:22 +0000 (21:19 -0700)]
dm: devres: Create a new devres header file
At present these functions are lumped in with the core device functions.
They have their own #ifdef to control their availability, so it seems
better to split them out.
Move them into their own header file.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:21 +0000 (21:19 -0700)]
dm: core: Add a new flag to track platform data
We want to avoid allocating platform data twice. This could happen if
device_probe() is called after device_ofdata_to_platdata() for the same
device.
Add a flag to track whether device_ofdata_to_platdata() has been called on
a device. Check the flag to make sure it doesn't happen twice, and clear
the flag when the data is freed.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:20 +0000 (21:19 -0700)]
dm: core: Export a new function to read platdata
Add a new internal function, device_ofdata_to_platdata() to handle
allocating private space associated with each device and reading the
platform data from the device tree.
Call this new function from device_probe().
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:19 +0000 (21:19 -0700)]
dm: core: Add a comment for DM_FLAG_OF_PLATDATA
This flag is missing a comment. Add one.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:18 +0000 (21:19 -0700)]
dm: core: Allocate parent data separate from probing parent
At present the parent is probed before the child's ofdata_to_platdata()
method is called. Adjust the logic slightly so that probing parents is
not done until afterwards.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:17 +0000 (21:19 -0700)]
dm: core: Move ofdata_to_platdata() call earlier
This method is supposed to extract platform data from the device tree. It
should be done before the device itself is probed. Move it earlier in the
device_probe() function.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:16 +0000 (21:19 -0700)]
dm: core: Don't clear active flag twice when probe() fails
Remove this duplicated code, since the 'fail' label does this immediately.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:15 +0000 (21:19 -0700)]
aspeed: ast2500: Read clock ofdata in the correct method
At present the clock driver reads its ofdata in the probe() method. This
is not correct although it is often harmless.
However in this case it causes a problem, something like this:
- ast_get_scu() is called (from somewhere) to get the SCI address
- this probes the clock
- first sets up ofdata (which does nothing at present)
- DM marks clock device as active
- DM calls pinctrl
- pinctrl probes and calls ast_get_scu() in ast2500_pinctrl_probe()
- ast_get_scu() probes the clock, but sees it already marked as
probed
- ast_get_scu() accesses the clock's private data, with scu as NULL
- DM calls clock probe function ast2500_clk_probe() which reads scu
By putting the read of scu into the correct method, scu is read as part of
ofdata setup, and everything is OK.
Note: This problem did not matter until now since DM always probed all
parents before reading a child's ofdata. The fact that pinctrl is a child
of clock seems to trigger this strange bug.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Simon Glass [Mon, 30 Dec 2019 04:19:14 +0000 (21:19 -0700)]
pci: Print a warning if the bus is accessed before probing
It is not possible to access a device on a PCI bus that has not yet been
probed, since the bus number is not known. Add a warning to catch this
error.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:13 +0000 (21:19 -0700)]
x86: apl: Avoid accessing the PCI bus before it is probed
The PCI bus is not actually probed by the time the ofdata_to_platdata()
method is called since that happens in the uclass's post_probe() method.
Update the PMC and P2SB drivers to access the bus in its probe() method.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:12 +0000 (21:19 -0700)]
usb: Drop use of BUG_ON() and WARN_ON()
These macros use __FILE__ which inserts the full path of the object file
into U-Boot, thus increasing file size. Drop these usages.
An older version of this patch was submitted here:
http://patchwork.ozlabs.org/patch/
1205784/
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:11 +0000 (21:19 -0700)]
dm: core: Use assert_noisy() in devres
Use this macros instead of the linux ones, as the output is smaller.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 30 Dec 2019 04:19:10 +0000 (21:19 -0700)]
common: Add a noisy assert()
Some U-Boot code uses BUG_ON() and WARN_ON() macros. These use __FILE__
which can include quite a large path, depending on how U-Boot is built.
The existing assert() is only checked if DEBUG is enabled. Add a new one
which is always checked, and prints a (smaller) error in that case.
Signed-off-by: Simon Glass <sjg@chromium.org>
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
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Igor Opaniuk [Mon, 4 Nov 2019 10:12:00 +0000 (11:12 +0100)]
colibri_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>
Igor Opaniuk [Mon, 4 Nov 2019 10:11:59 +0000 (11:11 +0100)]
ARM: dts: imx6_colibri: 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>
Igor Opaniuk [Mon, 4 Nov 2019 11:56:53 +0000 (12:56 +0100)]
MAINTAINERS: change colibri_imx6/imx6ull/t30/vf maintainers
Take over maintainership for colibri_imx6/imx6ull/t30/vf modules.
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Stefan Agner <stefan.agner@toradex.com>
Igor Opaniuk [Mon, 4 Nov 2019 11:56:52 +0000 (12:56 +0100)]
MAINTAINERS: change apalis_imx6/colibri_imx6 maintainers
Take over maintainership for apalis_imx6 and colibri_imx6 modules.
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
Joris Offouga [Sun, 8 Dec 2019 17:02:28 +0000 (18:02 +0100)]
mx7dsabre: Remove warning about DM_SPI_FLASH
This defconfig doesn't need it.
Signed-off-by: Joris Offouga <offougajoris@gmail.com>
Joris Offouga [Sun, 8 Dec 2019 17:02:31 +0000 (18:02 +0100)]
mx7dsabre: Convert to distroboot support
Signed-off-by: Joris Offouga <offougajoris@gmail.com>
Joris Offouga [Sun, 8 Dec 2019 17:02:30 +0000 (18:02 +0100)]
mx7dsabre: Enable DM_ETH
Also sync device tree with v5.5-rc1
Signed-off-by: Joris Offouga <offougajoris@gmail.com>
Fabio Estevam [Mon, 9 Dec 2019 13:43:03 +0000 (10:43 -0300)]
mx7ulp: Add support for Embedded Artists COM board
The Embedded Artists COM board is based on NXP i.MX7ULP.
It has a
BD70528 PMIC from Rohm with discrete DCDC powering option and
improved current observability (compared to the existing NXP i.MX7ULP EVK).
Add the initial support for the board.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Igor Opaniuk [Mon, 9 Dec 2019 10:33:32 +0000 (12:33 +0200)]
colibri_vf: add update_uboot wrapper
Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.
Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-nand.imx
> run update_uboot
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Igor Opaniuk [Mon, 9 Dec 2019 10:33:31 +0000 (12:33 +0200)]
colibri-imx6ull: add update_uboot wrapper
Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.
Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-nand.imx
> run update_uboot
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Igor Opaniuk [Mon, 9 Dec 2019 10:33:30 +0000 (12:33 +0200)]
colibri_imx6: add update_uboot wrapper
Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.
> tftpboot ${loadaddr} ${board_name}/u-boot.img
> run update_uboot
> tftpboot ${loadaddr} ${board_name}/SPL
> run update_spl
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Igor Opaniuk [Mon, 9 Dec 2019 10:33:29 +0000 (12:33 +0200)]
apalis_imx6: add update_uboot wrapper
Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.
Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot.img
> run update_uboot
> tftpboot ${loadaddr} ${board_name}/SPL
> run update_spl
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Igor Opaniuk [Mon, 9 Dec 2019 10:33:28 +0000 (12:33 +0200)]
colibri_imx7: add update_uboot wrapper
Add universal update_uboot wrapper that helps to update
U-Boot image on internal storage.
Usage example:
> tftpboot ${loadaddr} ${board_name}/u-boot-dtb.imx
> run update_uboot
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:43 +0000 (07:40 +0200)]
imx: cx9020: use distro boot
We switch from custom boot commands relying on uEnv.txt to distro boot.
This removes the automatic fpga bitstream loading in favor of loading
bitstreams via custom bootscripts (boot.scr) or after booting the
kernel.
Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:42 +0000 (07:40 +0200)]
imx: cx9020: enable vidconsole by default
Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:41 +0000 (07:40 +0200)]
imx: cx9020: migrate cx9020 to CONFIG_DM_USB
Note: gpio7_8 was never used for usb power regulator so we remove it here
Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
Steffen Dirkwinkel [Wed, 23 Oct 2019 05:40:40 +0000 (07:40 +0200)]
imx: cx9020: migrate cx9020 to CONFIG_DM_ETH
Acked-by: Patrick Bruenn <p.bruenn@beckhoff.com>
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
Parthiban Nallathambi [Mon, 4 Nov 2019 18:50:07 +0000 (19:50 +0100)]
imx: sync with kernel device tree for Phycore SoM
Sync the Linux Kernel 5.4-rc6 device tree for Phytec Phycore
SoM and Segin board based on imx6UL and imx6ULL.
Changes includes Phytec naming convention for the devicetree files.
Signed-off-by: Parthiban Nallathambi <parthitce@gmail.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
Igor Opaniuk [Thu, 28 Nov 2019 13:56:20 +0000 (15:56 +0200)]
mach-imx: bootaux: add dcache flushing before enabling M4
This patch fixes the issue with broken bootaux command,
when M4 binary is loaded and data cache isn't flushed
before M4 core is enabled.
Reproducing:
> tftpboot ${loadaddr} ${board_name}/hello_world.bin
> cp.b ${loadaddr} 0x7F8000 $filesize
> bootaux 0x7F8000
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Igor Opaniuk [Thu, 28 Nov 2019 13:56:19 +0000 (15:56 +0200)]
mach-imx: bootaux: print stack pointer and reset vector
1. Change information printed about loaded M4 binary, print the stack
pointer and reset vector addressed.
2. Add sanity check for the address provided as param.
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Marek Vasut [Tue, 26 Nov 2019 08:33:29 +0000 (09:33 +0100)]
pci: imx: Add iMX6SX compatible
The driver works fine with iMX6SX, add the missing compatible string.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Suniel Mahesh [Wed, 27 Nov 2019 10:47:48 +0000 (16:17 +0530)]
arm: imx6: cm_fx6: Enable DM SPI and SPI_FLASH, fix SPL build errors
Enable driver model for SPI and SPI_FLASH to remove the following
compile warning on CM-FX6 SOM:
===================== WARNING ======================
This board does not use CONFIG_DM_SPI_FLASH. Please update
the board to use CONFIG_SPI_FLASH before the v2019.07 release.
====================================================
This change introduced SPL build error as shown:
In file included from include/common.h:47:0,
from drivers/mtd/spi/sf_probe.c:10:
drivers/mtd/spi/sf_probe.c: In function 'spi_flash_std_probe':
drivers/mtd/spi/sf_probe.c:149:54: error: dereferencing pointer to incomplete type 'struct dm_spi_slave_platdata'
scripts/Makefile.build:278: recipe for target 'spl/drivers/mtd/spi/sf_probe.o' failed
make[3]: *** [spl/drivers/mtd/spi/sf_probe.o] Error 1
scripts/Makefile.build:432: recipe for target 'spl/drivers/mtd/spi' failed
make[2]: *** [spl/drivers/mtd/spi] Error 2
Disabling DM for SPI support(SPI and SF) in SPL resolves the issue.
Target was compile tested, build was clean.
Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Suniel Mahesh [Wed, 20 Nov 2019 09:55:01 +0000 (15:25 +0530)]
board: cm_fx6: Enable CONFIG_DM_ETH
Enable CONFIG_DM_ETH to remove compile warning on CM-FX6
SOM based target:
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release.
====================================================
Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Suniel Mahesh [Wed, 20 Nov 2019 09:55:00 +0000 (15:25 +0530)]
board: cm_fx6: Enable DM support for video, fix build error
Enable driver model for Video to remove the following
compile warning on CM-FX6 SOM based target:
===================== WARNING ======================
This board does not use CONFIG_DM_VIDEO Please update
the board to use CONFIG_DM_VIDEO before the v2019.07 release.
====================================================
This change introduced build error as shown:
LD u-boot
drivers/built-in.o: In function ipu_displays_init'
arm-linux-ld.bfd: BFD (GNU Binutils) 2.29.1 assertion fail elf32-arm.c:9509
Makefile:1621: recipe for target 'u-boot' failed
make: *** [u-boot] Error 1
The DM converted video driver calls ipu_displays_init
in its probe, which inturn calls relevant board_video_skip.
Defining ipu_displays_init in the board file fixes build error.
Target was compile tested, build was clean.
Signed-off-by: Suniel Mahesh <sunil.m@techveda.org>
Marek Vasut [Tue, 26 Nov 2019 08:34:52 +0000 (09:34 +0100)]
ARM: mx6: ddr: Add support for iMX6SX
This patch adds support for iMX6SX MMDC into the DDR calibration
code. The only difference between MX6DQ and MX6SX is that the SX
has 2 SDQS registers, while the DQ has 8.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
Marek Vasut [Tue, 26 Nov 2019 08:34:51 +0000 (09:34 +0100)]
ARM: mx6: ddr: Configure all SDQS pullups using loop
Instead of explicitly setting up each SDQS register, use a loop.
No functional change.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
Marek Vasut [Tue, 26 Nov 2019 08:34:50 +0000 (09:34 +0100)]
ARM: mx6: ddr: Factor out SDQS configuration code
Pull out the code turning SDQS pullups on and off into a separate
function, since it is replicated in two places in the code and it
is the single place in the entire function which is SoC dependent.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
Marek Vasut [Tue, 26 Nov 2019 08:34:49 +0000 (09:34 +0100)]
ARM: mx6: ddr: Make debug prints work with tiny printf
The %08X format returns just zeroes with tiny printf, which is
horribly confusing, especially when debugging DRAM calibration
problems. Change the format to %08x (with lowercase x), which
behaves correctly with either implementation of printf in SPL.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Eric Nelson <eric@nelint.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Eric Nelson <eric@nelint.com>
Claudius Heine [Fri, 29 Nov 2019 07:59:03 +0000 (08:59 +0100)]
ARM: imx6: DHCOM i.MX6 PDK: Enable sysreset driver and wdt command
The SPL does not have DM enabled and therefor still needs to use the
hardware watchdog interface provided by the imx-watchdog driver.
Fixes: broken reset command after
f2929d11a639 ("watchdog: imx: Use
immediate reset bits for expire_now")
Signed-off-by: Claudius Heine <ch@denx.de>
Claudius Heine [Fri, 29 Nov 2019 07:59:02 +0000 (08:59 +0100)]
ARM: dts: dh-imx6: add u-boot specific wdt-reboot node
The wdt-reboot node is needed for the sysreset_watchdog driver to
register a watchdog as a reset handler in case 'CONFIG_SYSRESET' is
enabled.
Signed-off-by: Claudius Heine <ch@denx.de>
Baruch Siach [Sun, 10 Nov 2019 12:38:07 +0000 (14:38 +0200)]
mx6cuboxi: enable OF_CONTROL with DM_MMC and DM_USB
Make first step in DT/DM migration. Enable OF_CONTROL only for the main
U-Boot image for now.
Remove mmc_init_main() because board_mmc_init() is not called when
DM_MMC is enabled.
DM_MMC requires DM_GPIO for card-detect to work. That in turn makes gpio
request mandatory. Add code to request/free gpios in platform code.
MMC devices are now numbered according to DT. The SD card is 1, and eMMC
is 2. Account for that in board_mmc_get_env_dev(), BOOT_TARGET_DEVICES,
and has_emmc().
DM_MMC requires BLK. However, the (BLK && !DM_USB) combination disables
USB_STORAGE. Enable DM_USB to preserve USB functionality. Add also
DM_REGULATORS for the USB power controller. This allows us to drop
board_ehci_hcd_init() and setup_usb().
Runtime selection of DT is necessary because of the i.MX6QD vs i.MX6SDL
incompatibility. DT selection does not rely on GPIOs, since DM_GPIO
depends on DT. Instead, we take one "fully featured" DT of each variant.
That should be enough to boot from both SD card and eMMC.
Since we don't select the exact DT, override the generic
show_board_info() that shows the selected DT 'model' field.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Baruch Siach [Sun, 10 Nov 2019 12:38:06 +0000 (14:38 +0200)]
arm: dts: hummingboard: add cubox/hummingboard DT (part 2 of 2)
These DT files are copied from kernel v5.3 with no changes.
This is part 2 of 2 commits. Included are DT files for SOM rev 1.5, and
Hummingboard2 Gate/Edge.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Baruch Siach [Sun, 10 Nov 2019 12:38:05 +0000 (14:38 +0200)]
arm: dts: hummingboard: add cubox/hummingboard DT (part 1 of 2)
These DT files are copied from kernel v5.3 with no changes.
This is part 1 of 2 commits. Included are DT files for the original
Cubox-i and Hummingboard Base/Pro.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Baruch Siach [Sun, 10 Nov 2019 12:38:04 +0000 (14:38 +0200)]
dt-bindings: add imx-audmux macro definitions
Import fsl-imx-audmux.h from Linux as of v5.4-rc6. The header is
unchanged since v4.18.
That would make it easier to import DT files that depend on imx-audmux
definitions from the kernel tree.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Robert Beckett [Tue, 12 Nov 2019 19:15:20 +0000 (19:15 +0000)]
board: ge: mx53ppd: use imx wdt
Enable DM imx WDT
Enable SYSRESET_WATCHDOG to maintain WDT based reset ability
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Robert Beckett [Tue, 12 Nov 2019 19:15:19 +0000 (19:15 +0000)]
board: ge: bx50v3: use imx wdt
Enable DM imx WDT
Enable SYSRESET_WATCHDOG to maintain WDT based reset ability
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Ian Ray [Tue, 12 Nov 2019 19:15:18 +0000 (19:15 +0000)]
board: ge: pass rtc_status via device tree
Pass rtc_status via the device tree, instead of on kernel command line.
Additionally, the 2038 mitigation is reported, if applied successfully.
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Denis Zalevskiy [Tue, 12 Nov 2019 19:15:17 +0000 (19:15 +0000)]
board: ge: bx50v3: Enable DM for PCI and ethernet
DM for PCI pulls DM for ethernet that also needs other changes described
below to build u-boot and keep existing functionality - ability to update
MAC addresses of FEC ethernet adapter and I210 adapter connected to the
Marvell switch.
- fec_mxc driver with DM needs PHYLIB;
- configuration items are moved from ge_bx50v3.h to ge_bx50v3_defconfig;
- FEC is marked as eth0 because it is always present, so indices changed:
I210 are still probed in the same order;
- board_eth_init() was used by legacy ethernet, setup for enet iomux and
pcie is moved to the board_late_init();
- pci_init() is called from the board_late_init() to initiate PCI bus
probing, so I210 devices are propagated to the device tree;
Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com>
[Describe PHY reset in device tree]
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Denis Zalevskiy [Tue, 12 Nov 2019 19:15:16 +0000 (19:15 +0000)]
configs: ppd: DM for USB and regulators PPD
DM should be used for USB since 2019.07, it also requires DM for
regulators.
Signed-off-by: Denis Zalevskiy <denis.zalevskiy@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Ian Ray [Tue, 12 Nov 2019 19:15:15 +0000 (19:15 +0000)]
board: ge: bx50v3: Fix message output to video console
Use vidconsole for output to the LCD, now that DM_VIDEO is used. Write
white text on a black background, like before migrating to DM_VIDEO.
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Ian Ray [Tue, 12 Nov 2019 19:15:14 +0000 (19:15 +0000)]
board: ge: bx50v3: Fix run-time warning
Fix GPIO reservation warning on code paths that do not need LVDS power.
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Ian Ray [Tue, 12 Nov 2019 19:15:13 +0000 (19:15 +0000)]
configs: bx50v3: Fix boot hang with video
Fixes commit:
0b09f7b15052bb419e318e38da453be46e5a13e5, which converted
to DM_VIDEO, but requires more memory.
[Inspired by
9002e735e71754a90adbb9676c0ffb1964dbc288]
Signed-off-by: Ian Ray <ian.ray@ge.com>
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Robert Beckett [Tue, 12 Nov 2019 19:15:12 +0000 (19:15 +0000)]
board: ge: ppd: sync device tree from Linux
Copy device tree from linux for PPD.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Robert Beckett [Tue, 12 Nov 2019 19:15:11 +0000 (19:15 +0000)]
board: ge: bx50v3: sync devicetrees from Linux
Copy device trees from linux, keeping them as separate files for
each board to ease future sync.
Update board code to use generic bx50v3 dt initially, then select
the specific dt based on board detection.
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
Lukasz Majewski [Sun, 8 Dec 2019 21:06:56 +0000 (22:06 +0100)]
imx: Add support for i.MX28 based XEA board
This patch introduces support for i.MX28 based XEA board.
This board supports DM/DTS in U-Boot proper as well as DM aware drivers
in SPL (u-boot.sb) by using OF_PLATDATA.
More detailed information regarding usage of it can be found in
./board/liebherr/xea/README file.
U-Boot SPL
2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)
Trying to boot from MMC1
MMC0: Command 8 timeout (status 0xf0344020)
mmc_load_image_raw_sector: mmc block read error
U-Boot
2019.10-rc1-00233-g6aa549f05c (Aug 12 2019 - 09:23:36 +0200)
CPU: Freescale i.MX28 rev1.2 at 454 MHz
BOOT: SSP SPI #3, master, 3V3 NOR
Model: Liebherr (LWE) XEA i.MX28 Board
DRAM: 128 MiB
MMC: MXS MMC: 0
Loading Environment from SPI Flash... SF: Detected n25q128a13 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
OK
In: serial
Out: serial
Err: serial
Net:
Warning: ethernet@
800f0000 (eth0) using random MAC address - ce:e1:9e:46:f3:a2
eth0: ethernet@
800f0000
Hit any key to stop autoboot: 0
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:32 +0000 (11:23 +0100)]
imx6: aristainetos: add support for rev C board
add support for revision C boards. This board has
no longer a NAND.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:31 +0000 (11:23 +0100)]
imx6: aristainetos: add aristainetos 2b csl
add aristainetso board version CSL.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:30 +0000 (11:23 +0100)]
imx6: aristainetos: readd aristainetos 2b board
readd aristainetos 2b board.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:29 +0000 (11:23 +0100)]
imx6: aristainetos: enable HAB boot
enable IMX_HAB on aristianetos board
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:28 +0000 (11:23 +0100)]
imx6: aristainetos: cleanup default Environment
sync defaut Envoronment with customer changes.
Unfortunately they are not changeable, as already
board is in production mode.
Get rid of the big bootcommand and set bootcommand
through Kconfig option.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:27 +0000 (11:23 +0100)]
imx6: aristainetos: WDT DM conversion enable WDT reset
enable config symbols:
CONFIG_SYSRESET
CONFIG_SYSRESET_WATCHDOG
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:26 +0000 (11:23 +0100)]
imx6: aristainetos: cleanup bootmode settings
on the aristainetos there are some jumpers for
changing behaviour setting up Environment. Clean
this up.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:25 +0000 (11:23 +0100)]
imx6: aristainetos: add version variable
add VERSION_VARIABLE
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:24 +0000 (11:23 +0100)]
imx6: aristainetos: add AUTOBOOT_KEYED
add stop autobooting via SHA256 encrypted password.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:23 +0000 (11:23 +0100)]
imx6: aristainetos: add i2c eeprom support
add support for i2c eeprom and add parsing "Rescue"
or "DefEnv" at offset 0x1ff0.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:22 +0000 (11:23 +0100)]
imx6: aristainetos: get rid of CONFIG_BOARDNAME
CONFIG_BOARDNAME is not longer needed, as we use
the model information from DTS.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:21 +0000 (11:23 +0100)]
imx6: aristainetos: convert to DM_PWM/DM_BACKLIGHT
use DM_PWM and DM_BLACKLIGHT support and remove
board code.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:20 +0000 (11:23 +0100)]
imx6: aristainetos: add DM_I2C support
enable DM_I2C in defconfig and remove i2c specific
board code.
Signed-off-by: Heiko Schocher <hs@denx.de>
Heiko Schocher [Sun, 1 Dec 2019 10:23:19 +0000 (11:23 +0100)]
imx6: aristainetos: add DM_VIDEO support
add DM_VIDEO support and remove now unneeded board
code. As we show a bmp logo on boot, call now
bmp_display() from board code and do not use
cfb_console anymore.
Signed-off-by: Heiko Schocher <hs@denx.de>