oweals/u-boot.git
4 years agoimage: android: Fix possible build errors
Sam Protsenko [Fri, 9 Aug 2019 12:31:29 +0000 (15:31 +0300)]
image: android: Fix possible build errors

As android_image.h uses types like u32, we need to include corresponding
headers in place. Otherwise the user will be forced to include those in
C file, or next build error can occur:

    include/android_image.h:32:5: error: unknown type name 'u32'
         u32 kernel_size; /* size in bytes */

Include required headers for data types used. While at it, remove
typedef struct, which is prohibited by kernel coding style, and fix the
comment.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Tue, 15 Oct 2019 01:00:10 +0000 (21:00 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

- vining_fpga updates

4 years agoMerge tag 'u-boot-imx-20191014' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Mon, 14 Oct 2019 17:00:51 +0000 (13:00 -0400)]
Merge tag 'u-boot-imx-20191014' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

u-boot-imx-20191014
-------------------

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

- logicpd pinmux
- i.MX7ULP: imx_ddr_size
- fixes Toradex i.MX6/i.MX7
- pico-imx7d
- tpc70 converted to DM
- New Board: meerkat96
- add HAB version command
- i.MX8 :
       imx8: Jump from alias to OCRAM address at SPL init
       imx8qm/qxp: Set SPL TEXT base to OCRAM base

4 years agoMerge tag 'video-for-2020.01' of https://gitlab.denx.de/u-boot/custodians/u-boot...
Tom Rini [Mon, 14 Oct 2019 11:30:16 +0000 (07:30 -0400)]
Merge tag 'video-for-2020.01' of https://gitlab.denx.de/u-boot/custodians/u-boot-video

- panel bridge support in stm32 ltdc
- DSI host uclass
- sandbox DSI host uclass test driver and DSI host test
- MIPI DSI helpers
- Synopsys Designware MIPI DSI host bridge driver
- STM32 DSI controller driver
- OTM800A and RM68200 panel support
- DSI host updates for stm32f769 and stm32mp1 dtsi files
- splash screen for stm32f769 and stm32mp1 boards
- stm32 defconfig updates for display support

4 years agoMerge tag 'mmc-10-10-2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Mon, 14 Oct 2019 11:28:32 +0000 (07:28 -0400)]
Merge tag 'mmc-10-10-2019' of https://gitlab.denx.de/u-boot/custodians/u-boot-mmc

- Add sdhci driver for Broadcom iProc platform
- Add a driver callback for power-cycle for mmc
- Implement host_power_cycle callback for stm32_sdmmc2
- spl: dm_mmc: Initialize only the required mmc device

4 years agoi2c: imx_lpi2c: add ipg clk
Peng Fan [Wed, 24 Jul 2019 08:54:16 +0000 (08:54 +0000)]
i2c: imx_lpi2c: add ipg clk

The controller needs two clk, per clk and ipg clk,
so let's add ipg clk.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agoimx :hab: Add hab version command
Sjoerd Simons [Tue, 18 Jun 2019 21:08:59 +0000 (23:08 +0200)]
imx :hab: Add hab version command

THe RVT data includes a major and minor version in its header
parameter. Add a new command to print this out.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
4 years agoimx: imx8mm_evk: add board_mmc_get_env_dev
Peng Fan [Wed, 9 Oct 2019 03:08:17 +0000 (03:08 +0000)]
imx: imx8mm_evk: add board_mmc_get_env_dev

Add board_mmc_get_env_dev to correctly return devno for mmc env

Signed-off-by: Peng Fan <peng.fan@nxp.com>
4 years agomx7ulp_evk: Use imx_ddr_size()
Fabio Estevam [Thu, 18 Jul 2019 18:04:25 +0000 (15:04 -0300)]
mx7ulp_evk: Use imx_ddr_size()

Use imx_ddr_size() to retrieve the total DDR size instead
of passing a hardcoded memory size.

imx_ddr_size() calculates the memory size based on the actual
MMDC registers values and is useful to detect misconfigurations,
so switch to this more robust approach.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx: mmdc_size: Allow building it for i.MX7ULP
Fabio Estevam [Thu, 18 Jul 2019 18:04:24 +0000 (15:04 -0300)]
imx: mmdc_size: Allow building it for i.MX7ULP

i.MX7ULP uses the same MMDC controller IP as found on i.MX53
and i.MX6, so build mmdc_size.c for i.MX7ULP as well.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx: mmdc_size: Fix checkpatch warnings
Fabio Estevam [Thu, 18 Jul 2019 18:04:23 +0000 (15:04 -0300)]
imx: mmdc_size: Fix checkpatch warnings

The original imx_ddr_size() implementation had some
issues reported by checkpatch like this:

CHECK: Prefer kernel type 'u32' over 'uint32_t'
#127: FILE: arch/arm/mach-imx/mmdc_size.c:16:
+ uint32_t ctl;

WARNING: Prefer 'unsigned int' to bare use of 'unsigned'
#151: FILE: arch/arm/mach-imx/mmdc_size.c:40:
+ unsigned ctl = readl(&mem->ctl);

Fix all of them.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
4 years agoimx: Place imx_ddr_size() into a separate file
Fabio Estevam [Thu, 18 Jul 2019 18:04:22 +0000 (15:04 -0300)]
imx: Place imx_ddr_size() into a separate file

Place imx_ddr_size() into a separate file.

The motivation for doing this is to be able to easily reuse
imx_ddr_size() on i.MX7ULP.

Currently imx_ddr_size() is inside arch/arm/mach-imx/cpu.c, which
is not built for i.MX7ULP.

Changing the logic to allow building cpu.c for i.MX7UP would
require adding several ifdef's, leading to a not a very elegant
solution.

To allow better reuse, just place imx_ddr_size() into a common
mmdc_size.c file.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Stefano Babic <sbabic@denx.de>
4 years agostm32mp1: configs: add display devices
Yannick Fertré [Mon, 7 Oct 2019 13:29:15 +0000 (15:29 +0200)]
stm32mp1: configs: add display devices

Add support of panels otm8009A, RM68200 & DSI controller.
Limit resolution to 1280x800.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agostm32mp1: configs: update video
Yannick Fertré [Mon, 7 Oct 2019 13:29:14 +0000 (15:29 +0200)]
stm32mp1: configs: update video

Update video configs to support bitmap 16bpp, 24bpp,
32bpp & RLE8.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoARM: dts: stm32mp1: add dsi host for stm32mp157c-dk2 board
Yannick Fertré [Mon, 7 Oct 2019 13:29:13 +0000 (15:29 +0200)]
ARM: dts: stm32mp1: add dsi host for stm32mp157c-dk2 board

The new class dsi host allows the management of the bridge DPI to DSI.
This bridge is embedded in the chipset mp1 (come from synopsys company).

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoARM: dts: stm32mp1: add dsi host for stm32mp157c-ev1 board
Yannick Fertré [Mon, 7 Oct 2019 13:29:12 +0000 (15:29 +0200)]
ARM: dts: stm32mp1: add dsi host for stm32mp157c-ev1 board

The new class dsi host allows the management of the bridge DPI to DSI.
This bridge is embedded in the chipset mp1 (come from synopsys company).

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoARM: dts: stm32f769: add display for STM32F769 disco board
Yannick Fertré [Mon, 7 Oct 2019 13:29:11 +0000 (15:29 +0200)]
ARM: dts: stm32f769: add display for STM32F769 disco board

Enable the display controller, mipi dsi bridge & panel.
Set panel display timings.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoboard: Add STM32F769 SoC, discovery board support
Yannick Fertré [Mon, 7 Oct 2019 13:29:10 +0000 (15:29 +0200)]
board: Add STM32F769 SoC, discovery board support

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agovideo: add support of panel RM68200
Yannick Fertré [Mon, 7 Oct 2019 13:29:09 +0000 (15:29 +0200)]
video: add support of panel RM68200

Support for Raydium RM68200 720p dsi 2dl video mode panel.
This rm68200 panel driver is based on the Linux Kernel driver from
drivers/gpu/drm/panel/panel-raydium-rm68200.c.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agovideo: add support of panel OTM8009A
Yannick Fertré [Mon, 7 Oct 2019 13:29:08 +0000 (15:29 +0200)]
video: add support of panel OTM8009A

Support for Orise Tech otm8009a 480p dsi 2dl video mode panel.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agovideo: add support of STM32 MIPI DSI controller driver
Yannick Fertré [Mon, 7 Oct 2019 13:29:07 +0000 (15:29 +0200)]
video: add support of STM32 MIPI DSI controller driver

Add the STM32 DSI controller driver that uses the Synopsys DesignWare
MIPI DSI host controller bridge.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agovideo: add MIPI DSI host controller bridge
Yannick Fertré [Mon, 7 Oct 2019 13:29:06 +0000 (15:29 +0200)]
video: add MIPI DSI host controller bridge

Add a Synopsys Designware MIPI DSI host bridge driver, based on the
Rockchip version from rockchip/dw-mipi-dsi.c with phy & bridge APIs.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agodm: Add a dsi host uclass
Yannick Fertré [Mon, 7 Oct 2019 13:29:05 +0000 (15:29 +0200)]
dm: Add a dsi host uclass

Display Serial Interface (DSI) host can usefully be modelled
as their own uclass.
DSI defines a serial bus and a communication protocol
between the host and the device (panel, bridge).

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoconfigs: icorem6: Enable nandbcb command
Shyam Saini [Fri, 14 Jun 2019 07:35:34 +0000 (13:05 +0530)]
configs: icorem6: Enable nandbcb command

This also enables mtd configs which are required by nandbcb command.

This command would be used to configure boot control block(BCB) while
writing spl image on nand device.

Signed-off-by: Shyam Saini <shyam.saini@amarulasolutions.com>
4 years agocolibri_imx7: provide proper node name to pmic_get
Igor Opaniuk [Mon, 22 Jul 2019 09:05:06 +0000 (12:05 +0300)]
colibri_imx7: provide proper node name to pmic_get

Implementation of pmic_get() uses uclass_find_device_by_name(), which
behaviour was changed in 4213609cc7
("drivers: core: use strcmp when find device by name"). Now we have to
supply full node name with unit address.

Fixes boot issue:
U-Boot 2019.07-00788-g0ef6e69a1e-dirty (Jul 19 2019 - 15:27:02 +0300)

CPU:   Freescale i.MX7D rev1.3 1000 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 41C
Reset cause: POR
DRAM:  512 MiB
initcall sequence 9ffd3a4c failed at call 87803c61 (err=-19)
ERROR Please RESET the board

Fixes: 4213609cc7("drivers: core: use strcmp when find device by name")
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agospl, Makefile: Take external offset into account for fit images
Sjoerd Simons [Tue, 18 Jun 2019 20:13:20 +0000 (22:13 +0200)]
spl, Makefile: Take external offset into account for fit images

When building a FIT image for SPL to load also take into account the
configured external offset. This allows the SPL to load the u-boot FIT
image correctly when configuring SECURE_BOOT on i.mx6 is enabled
(with CONFIG_FIT_EXTERNAL_OFFSET=0x3000).

Note this doesn't allow secure booting; but it does allow an unsigned
SPL/u-boot with secure boot support eanbled to boot on open device.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
4 years agocolibri_imx7: remove legacy sdboot wrapper
Igor Opaniuk [Fri, 11 Oct 2019 09:57:09 +0000 (12:57 +0300)]
colibri_imx7: remove legacy sdboot wrapper

Remove legacy sdboot wrapper as distroboot can be used instead.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agocolibri_imx6: remove legacy sdboot wrapper
Igor Opaniuk [Fri, 11 Oct 2019 09:57:08 +0000 (12:57 +0300)]
colibri_imx6: remove legacy sdboot wrapper

Remove legacy sdboot wrapper as distroboot can be used instead.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agocolibri-imx6ull: remove legacy sdboot wrapper
Igor Opaniuk [Fri, 11 Oct 2019 09:57:07 +0000 (12:57 +0300)]
colibri-imx6ull: remove legacy sdboot wrapper

Remove legacy sdboot wrapper as distroboot can be used instead.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoapalis_imx6: remove legacy sdboot wrapper
Igor Opaniuk [Fri, 11 Oct 2019 09:57:06 +0000 (12:57 +0300)]
apalis_imx6: remove legacy sdboot wrapper

Remove legacy sdboot wrapper as distroboot can be used instead.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
4 years agoimx8qm/qxp: Set SPL TEXT base to OCRAM base
Ye Li [Fri, 12 Jul 2019 09:33:55 +0000 (09:33 +0000)]
imx8qm/qxp: Set SPL TEXT base to OCRAM base

Modify the SPL TEXT base from OCRAM alias to OCRAM base 0x100000, so
we can use full OCRAM not limit to 96KB

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoimx8: Jump from alias to OCRAM address at SPL init
Ye Li [Fri, 12 Jul 2019 09:33:52 +0000 (09:33 +0000)]
imx8: Jump from alias to OCRAM address at SPL init

When running SPL on iMX8, the A core starts at address 0
which is a alias to OCRAM 0x100000.
The alias only map first 96KB of OCRAM, so this require the
SPL size can't beyond 96KB. But when using SPL DM, the size increase
significantly and may exceed 96KB.
So to fix the problem, we will change SPL linker address to OCRAM
address 0x100000. And then jump to the absolute address not the PC relative
address for entering OCRAM.

Signed-off-by: Ye Li <ye.li@nxp.com>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
4 years agoimx: config: Update KP's TPC70 config to support SWUpdate
Lukasz Majewski [Thu, 10 Oct 2019 14:11:30 +0000 (16:11 +0200)]
imx: config: Update KP's TPC70 config to support SWUpdate

This patch updates envs responsible for using USB pendrive as a
SWUpdate based tool for recovery and update.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: Convert TPC70 (imx6q) board to use DM/DTS in SPL and u-boot
Lukasz Majewski [Thu, 10 Oct 2019 14:11:29 +0000 (16:11 +0200)]
imx: tpc70: Convert TPC70 (imx6q) board to use DM/DTS in SPL and u-boot

This patch converts the TPC70 to use driver model and device tree
description in both SPL and u-boot proper.

Notable changes (DM/DTS conversion):

- PINCTRL{_IMX6}
- DM_I2C
- enable 'regulator' and 'pmic' commands
- DM_MMC and BLK (USDHC)
- DM_ETH
- DM WDT (including SYSRESET)

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: dts: Add u-boot specific set of device tree properties for tpc70
Lukasz Majewski [Thu, 10 Oct 2019 14:11:28 +0000 (16:11 +0200)]
imx: dts: Add u-boot specific set of device tree properties for tpc70

This commit adds new file - imx6q-kp-u-boot.dtsi with a set of u-boot
specific properties for imx6q KP device.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: dts: Add TPC70 board (imx6q based) device tree description
Lukasz Majewski [Thu, 10 Oct 2019 14:11:27 +0000 (16:11 +0200)]
imx: tpc70: dts: Add TPC70 board (imx6q based) device tree description

This commit defines the TPC70 imx6q board with device tree description.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: led: Enable LED default state
Lukasz Majewski [Thu, 10 Oct 2019 14:11:26 +0000 (16:11 +0200)]
imx: tpc70: led: Enable LED default state

This change sets the default state of LEDs on TPC70.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: cosmetic: Replace magic numbers when setting ENET clock
Lukasz Majewski [Thu, 10 Oct 2019 14:11:25 +0000 (16:11 +0200)]
imx: tpc70: cosmetic: Replace magic numbers when setting ENET clock

This is a cosmetic change, just to use proper define instead
of magic numbers.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: Add board_boot_order() to distinguish between eMMC and SD boot
Lukasz Majewski [Thu, 10 Oct 2019 14:11:24 +0000 (16:11 +0200)]
imx: tpc70: Add board_boot_order() to distinguish between eMMC and SD boot

The TPC70 can boot from SD card (debug/development) and eMMC (production).
The board_boot_order() function provides a run time check for the device
from which one wants to boot (it is selected by GPIO pins setup).

Moreover, a fallback to SD card is provided if the detection is not
possible or working properly.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: config: Update TPC70 config to support eMMC's boot0 SPL update
Lukasz Majewski [Thu, 10 Oct 2019 14:11:23 +0000 (16:11 +0200)]
imx: tpc70: config: Update TPC70 config to support eMMC's boot0 SPL update

The TPC70 can boot from eMMC's boot0. This patch allows it to update
this HW partition's SPL.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoimx: tpc70: config: Add script commands to update u-boot and OE's wic
Lukasz Majewski [Thu, 10 Oct 2019 14:11:22 +0000 (16:11 +0200)]
imx: tpc70: config: Add script commands to update u-boot and OE's wic

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agopico-imx7d: Support distro boot for FIT image case
Jun Nie [Tue, 16 Jul 2019 07:42:57 +0000 (15:42 +0800)]
pico-imx7d: Support distro boot for FIT image case

Support distro boot for pico imx7d in FIT image case.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
Tested-by: Joris Offouga <offougajoris@gmail.com>
4 years agopico-imx7d: add config to enable CAAM
Jun Nie [Tue, 16 Jul 2019 07:42:56 +0000 (15:42 +0800)]
pico-imx7d: add config to enable CAAM

Add config to enable CAAM so that hardware random number generator
works.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
4 years agoARM: imx6q_logic: Remove legacy pinmuxing code from board file.
Adam Ford [Wed, 9 Oct 2019 17:53:57 +0000 (12:53 -0500)]
ARM: imx6q_logic: Remove legacy pinmuxing code from board file.

With the OCRAM expanded to 256KB and the SPL_PINCTRL enabled with
-u-boot.dtsi entries to include the pinmuxing in SPL, the manual
code setting up the pinmux can go away.

This patch removes the legacy pinmuxing code from the board file.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoARM: imx6q_logic: Enable Pin muxing in SPL
Adam Ford [Wed, 9 Oct 2019 17:53:56 +0000 (12:53 -0500)]
ARM: imx6q_logic: Enable Pin muxing in SPL

With the 256KB of OCRAM available to SPL now, there should be
enough room to enable the pinmuxing in SPL from the device tree.

This patch enables SPL_PINCTRL et al and adds the serial and
usdhc pin mux references to the -u-boot.dtsi file so the pins can be
configured from the device tree.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoARM: imx6q_logic: Enable 256KB OCRAM
Adam Ford [Wed, 9 Oct 2019 17:53:55 +0000 (12:53 -0500)]
ARM: imx6q_logic: Enable 256KB OCRAM

Since this board config only supports, the i.MX6D/i.MX6Q configurations,
256K of on-chip RAM is available which increases the space available
to SPL to help further reduce board code and further enable device tree
functions.

This patch enables 256K of RAM.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 years agoboard: tbs2910: Convert eth to driver model
Soeren Moch [Thu, 10 Oct 2019 22:59:50 +0000 (00:59 +0200)]
board: tbs2910: Convert eth to driver model

So we can remove lots of legacy config code.

Signed-off-by: Soeren Moch <smoch@web.de>
4 years agoboard: tbs2910: Convert pci to driver model
Soeren Moch [Thu, 10 Oct 2019 22:59:49 +0000 (00:59 +0200)]
board: tbs2910: Convert pci to driver model

So we can get rid of legacy pci config code.

PCI_PNP is not required for this board, remove it to reduce the size of the
u-boot binary.

DM_PCI does not start the host controller automatically anymore. Do so
in preboot instead.

Signed-off-by: Soeren Moch <smoch@web.de>
4 years agoARM: dts: imx6q-tbs2910: Sync devicetree with kernel 5.3
Soeren Moch [Thu, 10 Oct 2019 22:59:48 +0000 (00:59 +0200)]
ARM: dts: imx6q-tbs2910: Sync devicetree with kernel 5.3

Signed-off-by: Soeren Moch <smoch@web.de>
4 years agomx6: mx6sabre common: Use more conventional spelling of fdtfile
Sjoerd Simons [Thu, 20 Jun 2019 20:34:35 +0000 (22:34 +0200)]
mx6: mx6sabre common: Use more conventional spelling of fdtfile

Both the distro boot configuration as well as the general pxe support
standardized on fdtfile as the variable to hold the dtb filename.
Adjust to follow that such that e.g. "pxe boot" will just work.

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
4 years agoAdd i.MX7D based Meerkat96 board support
Shawn Guo [Sun, 7 Jul 2019 12:59:55 +0000 (20:59 +0800)]
Add i.MX7D based Meerkat96 board support

The Meerkat96 board, based on the NXP i.MX7D SoC, is a member of
96Boards community and complies with all Consumer Edition board
specifications.

https://www.novtech.com/products/meerkat96.html
https://www.96boards.org/product/imx7-96/

The initial supported/tested devices include:
 - Debug serial
 - SD
 - USB Host (with Ethernet)

With these support, it's good enough for loading Linux Kernel from SD or
Ethernet over USB.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
4 years agoARM: dts: import meerkat96 board support
Shawn Guo [Sun, 7 Jul 2019 12:59:54 +0000 (20:59 +0800)]
ARM: dts: import meerkat96 board support

It imports device tree source of meerkat96 board from Linux Kernel.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
4 years agovideo: add support of MIPI DSI interface
Yannick Fertré [Mon, 7 Oct 2019 13:29:04 +0000 (15:29 +0200)]
video: add support of MIPI DSI interface

Mipi_display.c contains a set of dsi helpers.
This file is a copy of file drm_mipi_dsi.c (linux kernel).

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agoinclude: Add new DCS commands in the enum list
Yannick Fertré [Mon, 7 Oct 2019 13:29:03 +0000 (15:29 +0200)]
include: Add new DCS commands in the enum list

Adding new DCS commands which are specified in the
DCS 1.3 spec related to CABC.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agovideo: stm32: stm32_ltdc: add bridge to display controller
Yannick Fertré [Mon, 7 Oct 2019 13:29:02 +0000 (15:29 +0200)]
video: stm32: stm32_ltdc: add bridge to display controller

Manage a bridge insert between the display controller & a panel.

Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
4 years agotravis: Exclude MIPS from the bcm job
Tom Rini [Sun, 13 Oct 2019 15:21:56 +0000 (11:21 -0400)]
travis: Exclude MIPS from the bcm job

We don't need to pull in anything from the MIPS job so exclude that from
the new bcm job and make it clear it's building only ARM.

Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoMerge https://gitlab.denx.de/u-boot/custodians/u-boot-x86
Tom Rini [Sat, 12 Oct 2019 14:52:48 +0000 (10:52 -0400)]
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86

- Remember the device being emulated for Sandbox PCI
- Update Kconfig options for FSP 1.0
- Drop RESET_BASE and RESET_SEG_SIZE that are no longer used

4 years agoMerge branch '2019-10-11-master-imports'
Tom Rini [Sat, 12 Oct 2019 14:10:59 +0000 (10:10 -0400)]
Merge branch '2019-10-11-master-imports'

- Assorted cleanups
- FAT bugfixes
- mediatek platform updates

4 years agoMerge branch '2019-10-11-ti-imports'
Tom Rini [Sat, 12 Oct 2019 14:09:13 +0000 (10:09 -0400)]
Merge branch '2019-10-11-ti-imports'

- Various improvements to dra7xx, keystone 3, am65x SoCs
- Platform updates
- remoteproc improvements

4 years agocmd: itest: add support for .q size specifier
Marek Szyprowski [Wed, 2 Oct 2019 10:24:46 +0000 (12:24 +0200)]
cmd: itest: add support for .q size specifier

Add support for quad (64bits) memory access specifier.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Lukasz Majewski <lukma@denx.de>
4 years agofs: fat: get_contents() always returns -1 for errors
Heinrich Schuchardt [Thu, 12 Sep 2019 17:19:30 +0000 (19:19 +0200)]
fs: fat: get_contents() always returns -1 for errors

If out of memory, return -1 and not -ENOMEM from get_contents().

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agofs: fat: treat invalid FAT clusters as errors
Heinrich Schuchardt [Thu, 12 Sep 2019 17:19:29 +0000 (19:19 +0200)]
fs: fat: treat invalid FAT clusters as errors

When hitting an invalid FAT cluster while reading a file always print an
error message and return an error code.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agosandbox: Remove sandbox_noblk build
Tom Rini [Fri, 11 Oct 2019 20:28:47 +0000 (16:28 -0400)]
sandbox: Remove sandbox_noblk build

At this point, all drivers that do not use CONFIG_BLK are past their
migration deadlines, so remove this config as it's no longer helpful and
hinders enhancing block drivers.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agospl: Introduce SPL_DM_SPI Kconfig define
Lukasz Majewski [Mon, 9 Sep 2019 10:06:46 +0000 (12:06 +0200)]
spl: Introduce SPL_DM_SPI Kconfig define

This define indicates if DM_SPI shall be supported in SPL. This allows
proper operation of DM converted SPI drivers in SPL, which use
#if !CONFIG_IS_ENABLED(DM_SPI) to also support not yet DM/DTS converted
boards.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoarm64: print instructions leading to exception
Heinrich Schuchardt [Thu, 12 Sep 2019 17:09:26 +0000 (19:09 +0200)]
arm64: print instructions leading to exception

If an exception occurs in a loaded image and the relocation offset is
unknown, it is helpful to know the instructions pointed to by the
program counter. This patch adds the missing output.

A possible output is:
    Code: 910c4021 aa1303e0 f9400662 d63f0040 (e7f7defb)

The parentheses indicate the instruction causing the exception.

The output can be disassembled using scripts/decodecode:

echo 'Code: 90000360 9100b800 94002782 17ffff8f (e7f7defb)' | \
  ARCH=arm64 scripts/decodecode

Code: 90000360 9100b800 94002782 17ffff8f (e7f7defb)
All code
========
   0:   90000360    adrp    x0, 0x6c000
   4:   9100b800    add     x0, x0, #0x2e
   8:   94002782    bl      0x9e10
   c:   17ffff8f    b       0xfffffffffffffe48
  10:*  e7f7defb    .inst   0xe7f7defb ; undefined <-- trapping instruction

Code starting with the faulting instruction
===========================================
   0:   e7f7defb    .inst   0xe7f7defb ; undefined

We already have implemented the same for armv7.

For testing command 'exception undefined' can be used.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
4 years agocmd: avoid decimal conversion
T Karthik Reddy [Wed, 11 Sep 2019 13:39:53 +0000 (15:39 +0200)]
cmd: avoid decimal conversion

This patch uses auto instead of decimal in simple_strtoul().

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
4 years agoARM: asm/io.h: remove redundant #if !defined(readb) block
Rasmus Villemoes [Tue, 10 Sep 2019 08:51:54 +0000 (08:51 +0000)]
ARM: asm/io.h: remove redundant #if !defined(readb) block

readb is unconditionally defined earlier in io.h, so there's no point
checking whether it's undefined.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agoARM: asm/io.h: kill off confusing #ifdef __mem_pci block
Rasmus Villemoes [Tue, 10 Sep 2019 08:51:53 +0000 (08:51 +0000)]
ARM: asm/io.h: kill off confusing #ifdef __mem_pci block

No ARM board seems to define __mem_pci - and if it did, one would get tons of

  ./arch/arm/include/asm/io.h:307:0: warning: "readl" redefined

warnings, because readl and friends are unconditionally defined
earlier in io.h. Moreover, the redefinitions lack the memory barriers
that the first definitions have. So I'm guessing this is practically
dead code.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4 years agospl: mmc: Add option to set eMMC HW boot partition
Mans Rullgard [Tue, 3 Sep 2019 14:16:50 +0000 (16:16 +0200)]
spl: mmc: Add option to set eMMC HW boot partition

This change allows setting pre-defined eMMC boot partition for SPL eMMC
booting. It is necessary in the case when one wants to boot (through falcon
boot) from eMMC after loading SPL from other memory (like SPI-NOR).

Signed-off-by: Mans Rullgard <mans@mansr.com>
[lukma: Edit the commit message]
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Andreas Dannenberg <dannenberg@ti.com>
4 years agospl: mmc: Fix indentation in spl_mmc.c file
Mans Rullgard [Tue, 3 Sep 2019 14:17:17 +0000 (16:17 +0200)]
spl: mmc: Fix indentation in spl_mmc.c file

This fixes a wrongly indented block of code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
[lukma: Make the commit message more verbose]
Signed-off-by: Lukasz Majewski <lukma@denx.de>
4 years agoarm: dra7xx: Hang on any failure during IOdelay recalibration
Lokesh Vutla [Tue, 1 Oct 2019 05:11:01 +0000 (10:41 +0530)]
arm: dra7xx: Hang on any failure during IOdelay recalibration

If there is any failure during IOdelay recalibration sequence, IOs are
not guaranteed to behave as expected. So hang on any failure during the
sequence.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: dra7xx: Fix error path in iodelay recalibration
Lokesh Vutla [Tue, 1 Oct 2019 05:11:00 +0000 (10:41 +0530)]
arm: dra7xx: Fix error path in iodelay recalibration

When an error is reported in __recalibrate_iodelay_start(), de-isolation
of IO doesn't happen. Because of this, undefined behaviour is observed
on many peripherals without any error. So make sure io is out of isolation
at the end of iodelay recalibration.

Reported-by: Richard Woodruff <r-woodruff2@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agotao3530: Fix usage of mmc rescan
Jarkko Nikula [Mon, 30 Sep 2019 17:42:21 +0000 (20:42 +0300)]
tao3530: Fix usage of mmc rescan

Currently "bootcmd" does not work as intended but instead prints MMC usage
information and goes directly to "nandboot".

Follow what the commit 669681104daa ("configs: Fix usage of mmc rescan")
does for other boards prior to support for TechNexion TAO3530 SoM was
added.

Signed-off-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
4 years agoconfigs: am43xx_evm: Enable USB support
Lokesh Vutla [Mon, 30 Sep 2019 12:54:06 +0000 (18:24 +0530)]
configs: am43xx_evm: Enable USB support

spl_dm_init is failing as usb to be probed with the following error:
"omap_dwc3@483c0000: ret=-2"
Enable usb to make spl boot on am43xx devices

Reported-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: dts: k3-j721e-common-proc-board: Mark main_uart0 as shared device
Lokesh Vutla [Sun, 29 Sep 2019 12:07:58 +0000 (17:37 +0530)]
arm: dts: k3-j721e-common-proc-board: Mark main_uart0 as shared device

Main uart0 is used as debug console by both R5SPL and A72 bootloader and
Linux. So mark it as shared device so that power-domain request is
successful by both cores.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoboard: ti: am335x-ice: Configure the CDCE913 clock synthesizer
Tero Kristo [Fri, 27 Sep 2019 16:14:29 +0000 (19:14 +0300)]
board: ti: am335x-ice: Configure the CDCE913 clock synthesizer

AM335x-ICE boards contain the CDCE913 clock synthesizer, and their
reset crystal capacitance load value of 10pF is wrong leading into
lost packets in certain networking tests. Add DT data for this
device, and probe it from the board file to program the crystal
capacitance load value to 0pF to avoid any problems.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoboard: ti: am43xx-idk: Configure the CDCE913 clock synthesizer
Tero Kristo [Fri, 27 Sep 2019 16:14:28 +0000 (19:14 +0300)]
board: ti: am43xx-idk: Configure the CDCE913 clock synthesizer

AM43xx-IDK boards contain the CDCE913 clock synthesizer, and their
reset crystal capacitance load value of 10pF is wrong leading into
lost packets in certain networking tests. Add DT data for this
device, and probe it from the board file to program the crystal
capacitance load value to 0pF to avoid any problems.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoboard: ti: am57xx-idk: Configure the CDCE913 clock synthesizer
Tero Kristo [Fri, 27 Sep 2019 16:14:27 +0000 (19:14 +0300)]
board: ti: am57xx-idk: Configure the CDCE913 clock synthesizer

AM57xx-IDK boards contain the CDCE913 clock synthesizer, and their
reset crystal capacitance load value of 10pF is wrong leading into
lost packets in certain networking tests. Add DT data for this
device, and probe it from the board file to program the crystal
capacitance load value to 0pF to avoid any problems.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoclk: cdce9xx: add support for cdce9xx clock synthesizer
Tero Kristo [Fri, 27 Sep 2019 16:14:26 +0000 (19:14 +0300)]
clk: cdce9xx: add support for cdce9xx clock synthesizer

Add support for CDCE913/925/937/949 family of devices. These are modular
PLL-based low cost, high performance, programmable clock synthesizers,
multipliers and dividers. They generate up to 9 output clocks from a
single input frequency. The initial version of the driver does not
support programming of the PLLs, and thus they run in the bypass mode
only. The code is loosely based on the linux kernel cdce9xx driver.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
4 years agoarm: k3: Use driver_name to get ti_sci handle
Lokesh Vutla [Fri, 27 Sep 2019 08:02:15 +0000 (13:32 +0530)]
arm: k3: Use driver_name to get ti_sci handle

Use the driver name to get ti_sci handle rather than relying
on just the FIRMWARE uclass.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoconfigs: am65x_evm_a53: Enable DISPLAY_CPUINFO
Lokesh Vutla [Fri, 27 Sep 2019 08:02:14 +0000 (13:32 +0530)]
configs: am65x_evm_a53: Enable DISPLAY_CPUINFO

Enable CONFIG_DISPLAY_CPUINFO so that cpuinfo is printed during boot.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoconfigs: j721e_evm_a72: Enable DISPLAY_CPUINFO
Lokesh Vutla [Fri, 27 Sep 2019 08:02:13 +0000 (13:32 +0530)]
configs: j721e_evm_a72: Enable DISPLAY_CPUINFO

Enable CONFIG_DISPLAY_CPUINFO so that cpuinfo is printed during boot.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoboard: am65x: Print board name and version during boot
Lokesh Vutla [Fri, 27 Sep 2019 08:02:12 +0000 (13:32 +0530)]
board: am65x: Print board name and version during boot

Print the board name and ver along with the DT Model.
While at it print the ver for all the detected daughter cards.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: k3: Add support for printing CPUINFO
Lokesh Vutla [Fri, 27 Sep 2019 08:02:11 +0000 (13:32 +0530)]
arm: k3: Add support for printing CPUINFO

Add support for printing CPU info for all K3 devices.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoconfigs: j721e_evm_a72: Disable PSCI_RESET
Lokesh Vutla [Wed, 25 Sep 2019 09:08:13 +0000 (14:38 +0530)]
configs: j721e_evm_a72: Disable PSCI_RESET

J721E uses TISCI protocol to reset the device and does not
support PSCI reset. So disable PSCI reset.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoconfigs: am65x_evm_a53: Disable PSCI_RESET
Lokesh Vutla [Wed, 25 Sep 2019 09:08:05 +0000 (14:38 +0530)]
configs: am65x_evm_a53: Disable PSCI_RESET

AM65x uses TISCI protocol to reset the device and does not
support PSCI reset. So disable PSCI reset.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agommc: am654_sdhci: Drop a redundant power_domain_on in probe
Lokesh Vutla [Tue, 24 Sep 2019 07:47:16 +0000 (13:17 +0530)]
mmc: am654_sdhci: Drop a redundant power_domain_on in probe

Power-domain is enabled by default in device_probe. am654 mmc driver
is enabling power-domain again in probe. As the second call is
redundant, drop power_domain_on from probe.

Tested-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
4 years agoconfigs: ti: Use addr_fit for run_fit environment variable
Andrew F. Davis [Tue, 17 Sep 2019 19:40:25 +0000 (15:40 -0400)]
configs: ti: Use addr_fit for run_fit environment variable

When running 'run_fit' the FIT file should have been loaded at
'addr_fit', although at this point they should be the same
use this variable instead of 'loadaddr'.

Signed-off-by: Andrew F. Davis <afd@ti.com>
4 years agoam335x, guardian: adapt guardian board to DM
Moses Christopher [Tue, 17 Sep 2019 14:25:38 +0000 (14:25 +0000)]
am335x, guardian: adapt guardian board to DM

  - update partition table - remove env partitions
  - dts: add new interfaces (uart2, extra gpio-key)
         remove unneeded entries
         update nand timings for performance improvement
  - defconfig: adapt configurations to suit DM
               remove unneeded configs
  - am335x_guardian.h: remove mmc boot

Signed-off-by: Moses Christopher <BollavarapuMoses.Christopher@in.bosch.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoam335x, guardian: update guardian board
Moses Christopher [Tue, 17 Sep 2019 14:25:37 +0000 (14:25 +0000)]
am335x, guardian: update guardian board

  - add BOARD_LATE_INIT function calls in board.c
  - add swi_status detection in board.c
  - mux: add guardian interfaces to single pinmux structure
  - am33xx, kconfig: add BOARD_LATE_INIT for GUARDIAN board

Signed-off-by: Moses Christopher <BollavarapuMoses.Christopher@in.bosch.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agocmd: ti: ddr3: Move the print statement after test
Krunal Bhargav [Mon, 16 Sep 2019 08:17:19 +0000 (13:47 +0530)]
cmd: ti: ddr3: Move the print statement after test

If the ECC is enabled over the entire memory region, we need to ensure
the printf/put calls do not modify the stack after ECC is disabled.
Moved the printf/put statements after ECC is enabled.

Signed-off-by: Krunal Bhargav <k-bhargav@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: omap: emif-common: Fix memory priming for ECC
Krunal Bhargav [Mon, 16 Sep 2019 08:17:18 +0000 (13:47 +0530)]
arm: omap: emif-common: Fix memory priming for ECC

Before the priming begins, we need to disable RMW (Read Modify Write)
and disable ECC verification for read accesses. By default, the EMIF
tool enables RMW and read accesses in the EMIF_ECC_CTRL_REG.

Signed-off-by: Krunal Bhargav <k-bhargav@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: omap: emif-common: Disable interleaving
Krunal Bhargav [Mon, 16 Sep 2019 08:17:17 +0000 (13:47 +0530)]
arm: omap: emif-common: Disable interleaving

If ECC is enabled, we need to ensure interleaving is disabled for higher
address space.

Signed-off-by: Krunal Bhargav <k-bhargav@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agocmd: ti: ddr3: Fix ecc address calculation
Lokesh Vutla [Mon, 16 Sep 2019 08:17:16 +0000 (13:47 +0530)]
cmd: ti: ddr3: Fix ecc address calculation

ecc_address_range registers contains the start address and end address
of the DDR address space. But the ddr cmd driver is assuming the register
contains the start address and size of the DDR address space. Because
of this some valid ecc addresses are errored out as invalid address.
Fix this calculation.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoarm: omap: emif-common: Fix ecc address calculation
Lokesh Vutla [Mon, 16 Sep 2019 08:17:15 +0000 (13:47 +0530)]
arm: omap: emif-common: Fix ecc address calculation

ecc_address_range registers contains the start address and end address
of the DDR address space. But the ddr driver is assuming the register
contains the start address and size of the DDR address space. Because
of this the ecc enabling is failing for the 2nd range of ecc addresses.
Fix this calculation.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
4 years agoregulator: fixed: Modify enable-active-high behavior
Patrice Chotard [Mon, 26 Aug 2019 11:50:31 +0000 (13:50 +0200)]
regulator: fixed: Modify enable-active-high behavior

Regulator should not be enabled at probe time if regulator-boot-on
property is not in the dt node.

"enable-active-high" property is only used to indicate the GPIO
polarity.

See kernel documentation :
 - Documentation/devicetree/bindings/regulator/fixed-regulator.yaml
 - Documentation/devicetree/bindings/regulator/gpio-regulator.yaml

Signed-off-by: Christophe Kerello <christophe.kerello@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
4 years agoata: ahci: Don't forget to clear upper address regs.
Oleksandr Rybalko [Thu, 22 Aug 2019 10:26:56 +0000 (12:26 +0200)]
ata: ahci: Don't forget to clear upper address regs.

In 32bits mode upper bits need to be set to 0, otherwise controller will
try to DMA into not existing memory and stops with error.

Tested-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Oleksandr Rybalko <ray@ddteam.net>
4 years agoahci-pci: ASM1061 report wrong class, but support AHCI.
Oleksandr Rybalko [Thu, 22 Aug 2019 10:26:55 +0000 (12:26 +0200)]
ahci-pci: ASM1061 report wrong class, but support AHCI.

Tested-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Signed-off-by: Oleksandr Rybalko <ray@ddteam.net>
4 years agodt-bindings: phy: add a document for MediaTek tphy
Ryder Lee [Thu, 22 Aug 2019 10:26:54 +0000 (12:26 +0200)]
dt-bindings: phy: add a document for MediaTek tphy

This adds a document for tphy which supports physical layer
functionality for a number of controllers on MediaTek SoCs,
such as, USB2.0, USB3.0, PCIe, and SATA.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
4 years agodt-bindings: pcie: add a document for MT7623 PCIe controller
Ryder Lee [Thu, 22 Aug 2019 10:26:53 +0000 (12:26 +0200)]
dt-bindings: pcie: add a document for MT7623 PCIe controller

This adds a document for MT7623 PCIe controller.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>