summaryrefslogtreecommitdiff
path: root/recipes-bsp
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2019-07-09 22:22:01 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2019-07-10 19:47:15 +0200
commitddcdce6443b4926840265ad39139d8e485ab579e (patch)
treeb7235af4372b522dec00ca3a295b1ecb635f9ea4 /recipes-bsp
parente605d184fa537450ab496f9d304740696499fef7 (diff)
u-boot-toradex: update to 2019.07
Update to a 2019.07 based U-Boot. Use the openembedded master recipes for u-boot_2019.07 as a base. This makes the u-boot recipe in recipes-bsp/u-boot-mainline/ obsolete, delete it. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'recipes-bsp')
-rw-r--r--recipes-bsp/u-boot-mainline/README4
-rw-r--r--recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-fix-set_emmcargs-wrapper.patch31
-rw-r--r--recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-increase-phy-autoneg-timeout.patch38
-rw-r--r--recipes-bsp/u-boot-mainline/files/0001-imx8-cpu-fix-warning-for-cpu_imx_get_temp.patch58
-rw-r--r--recipes-bsp/u-boot-mainline/files/0001-usb-limit-USB_MAX_XFER_BLK-to-256.patch67
-rw-r--r--recipes-bsp/u-boot-mainline/files/0001-video-mxsfb-fix-mxsfb-fbdev-binding-issues.patch137
-rw-r--r--recipes-bsp/u-boot-mainline/files/0002-ARM-dts-colibri_imx7-Fix-lcdif-node-definition.patch79
-rw-r--r--recipes-bsp/u-boot-mainline/files/0002-misc-imx8-add-sc_misc_get_temp.patch80
-rw-r--r--recipes-bsp/u-boot-mainline/files/0002-video-fsl_dcu_fb-refactor-init-functions.patch288
-rw-r--r--recipes-bsp/u-boot-mainline/files/0003-configs-colibri_imx7-enable-DM_VIDEO.patch27
-rw-r--r--recipes-bsp/u-boot-mainline/files/0003-thermal-add-i.MX8-thermal-driver.patch257
-rw-r--r--recipes-bsp/u-boot-mainline/files/0003-video-fsl_dcu_fb-add-DM_VIDEO-support.patch229
-rw-r--r--recipes-bsp/u-boot-mainline/files/0004-ARM-dts-colibri_vf-Add-dcu0-node.patch68
-rw-r--r--recipes-bsp/u-boot-mainline/files/0004-colibri-imx6ull-support-building-with-DM_VIDEO-y.patch44
-rw-r--r--recipes-bsp/u-boot-mainline/files/0004-imx-imx8dx-qxp-enable-thermal.patch103
-rw-r--r--recipes-bsp/u-boot-mainline/files/0005-ARM-dts-colibri-imx6ull-extend-lcdif-node.patch68
-rw-r--r--recipes-bsp/u-boot-mainline/files/0005-colibri_vf-enable-DM_VIDEO.patch28
-rw-r--r--recipes-bsp/u-boot-mainline/files/0005-misc-imx8-add-sc_rm_set_master_sid.patch63
-rw-r--r--recipes-bsp/u-boot-mainline/files/0006-MLK-14938-8-imx8-Add-SMMU-setup-to-Soc-codes.patch117
-rw-r--r--recipes-bsp/u-boot-mainline/files/0006-colibri-apalis-tegra-drop-DFU-support.patch104
-rw-r--r--recipes-bsp/u-boot-mainline/files/0006-configs-colibri-imx6ull-switch-to-DM_VIDEO.patch27
-rw-r--r--recipes-bsp/u-boot-mainline/files/0007-apalis-imx8-enable-smmu-setup.patch25
-rw-r--r--recipes-bsp/u-boot-mainline/files/0007-colibri-apalis-imx-drop-DFU-support.patch92
-rw-r--r--recipes-bsp/u-boot-mainline/files/0008-MLK-16087-imx8qm-qxp-Disable-kernel-FDT-nodes-for-th.patch154
-rw-r--r--recipes-bsp/u-boot-mainline/files/0009-MLK-16560-1-imx8-Configure-sids-based-on-iommu-prope.patch120
-rw-r--r--recipes-bsp/u-boot-mainline/files/0010-apalis-imx8-enable-of_system_setup.patch25
-rw-r--r--recipes-bsp/u-boot-mainline/files/0011-MLK-17205-1-video-imx-hdp-Adding-support-for-HDP-fir.patch2560
-rw-r--r--recipes-bsp/u-boot-mainline/files/0012-MLK-17205-2-video-imx-hdp-Adding-HDP-firmware-loadin.patch37
-rw-r--r--recipes-bsp/u-boot-mainline/files/0013-MLK-17205-3-video-imx-hdp-Adding-configs-for-HDP-fir.patch54
-rw-r--r--recipes-bsp/u-boot-mainline/files/0014-apalis-imx8-enable-hdp-firmware-loading.patch65
-rw-r--r--recipes-bsp/u-boot-mainline/files/colibri-imx7-emmc/fw_env.config15
-rw-r--r--recipes-bsp/u-boot-mainline/files/mx8/fw_env.config17
-rw-r--r--recipes-bsp/u-boot-mainline/files/video_mxsfb_fix_mxsfb_fbdev_binding_issues.mbox1140
-rw-r--r--recipes-bsp/u-boot-mainline/u-boot-common.inc52
-rw-r--r--recipes-bsp/u-boot-mainline/u-boot-fw-utils_2019.07plus.bb34
-rw-r--r--recipes-bsp/u-boot-mainline/u-boot-tools_2019.07plus.bb67
-rw-r--r--recipes-bsp/u-boot-mainline/u-boot_2019.07plus.bb5
-rw-r--r--recipes-bsp/u-boot/files/colibri-imx6ull/fw_env.config (renamed from recipes-bsp/u-boot-mainline/files/colibri-imx6ull/fw_env.config)0
-rw-r--r--recipes-bsp/u-boot/files/colibri-imx7/fw_env.config (renamed from recipes-bsp/u-boot-mainline/files/colibri-imx7/fw_env.config)0
-rw-r--r--recipes-bsp/u-boot/files/mx6/fw_env.config (renamed from recipes-bsp/u-boot-mainline/files/mx6/fw_env.config)0
-rw-r--r--recipes-bsp/u-boot/files/vf/fw_env.config (renamed from recipes-bsp/u-boot-mainline/files/fw_env.config)16
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex-common.inc25
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bbappend31
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex-fw-utils_2019.07.bb72
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex_2016.11.bbappend11
-rw-r--r--recipes-bsp/u-boot/u-boot-toradex_2019.07.bb (renamed from recipes-bsp/u-boot-mainline/u-boot_%.bbappend)6
-rw-r--r--recipes-bsp/u-boot/u-boot.inc (renamed from recipes-bsp/u-boot-mainline/u-boot.inc)0
47 files changed, 105 insertions, 6435 deletions
diff --git a/recipes-bsp/u-boot-mainline/README b/recipes-bsp/u-boot-mainline/README
deleted file mode 100644
index fc9f335..0000000
--- a/recipes-bsp/u-boot-mainline/README
+++ /dev/null
@@ -1,4 +0,0 @@
-Pulled from oe master @ ea527e5008c28c410806cd0a2e8513ff6dcac450
-
-Then change to U-Boot master and add our pending patches.
-http://git.denx.de/?p=u-boot.git;a=commit;h=b4ee6daad7a2604ca9466b2ba48de86cc27d381f
diff --git a/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-fix-set_emmcargs-wrapper.patch b/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-fix-set_emmcargs-wrapper.patch
deleted file mode 100644
index b76ee1e..0000000
--- a/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-fix-set_emmcargs-wrapper.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 117a380d31d697cb831a620f92800d215fa52ee3 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Tue, 25 Jun 2019 14:48:06 +0300
-Subject: [PATCH] apalis_imx6: fix set_emmcargs wrapper
-
-Fix set_emmcargs wrapper, which prepares proper bootargs for booting
-from eMMC.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- include/configs/apalis_imx6.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
-index 246d618442..df4296df2a 100644
---- a/include/configs/apalis_imx6.h
-+++ b/include/configs/apalis_imx6.h
-@@ -122,8 +122,8 @@
- "imx6q-apalis-cam-eval.dtb fat 0 1"
-
- #define EMMC_BOOTCMD \
-- "set_emmcargs emmcargs ip=off root=PARTUUID=${uuid} ro,noatime " \
-- "rootfstype=ext4 rootwait\0" \
-+ "set_emmcargs=setenv emmcargs ip=off root=PARTUUID=${uuid} " \
-+ "ro,noatime rootfstype=ext4 rootwait\0" \
- "emmcboot=run setup; run emmcfinduuid; run set_emmcargs; " \
- "setenv bootargs ${defargs} ${emmcargs} ${setupargs} " \
- "${vidargs}; echo Booting from internal eMMC chip...; " \
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-increase-phy-autoneg-timeout.patch b/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-increase-phy-autoneg-timeout.patch
deleted file mode 100644
index db149f1..0000000
--- a/recipes-bsp/u-boot-mainline/files/0001-apalis_imx6-increase-phy-autoneg-timeout.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4bb2dccd69eaf8e25dd200f9a6deb883631db5c1 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 24 Jun 2019 11:39:14 +0300
-Subject: [PATCH v2] apalis_imx6: increase phy autoneg timeout
-
-Default value (4000ms) of PHY_ANEG_TIMEOUT for Micrel KSZ9031 contoller
-isn't sufficient to finish auto-negotiation, which sometimes leads to
-timeout errors:
-
-Apalis iMX6 # dhcp
-FEC Waiting for PHY auto negotiation to complete......... TIMEOUT !
-
-Increase the auto-negotiation time-out to 15000ms.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
-
-v2:
-- Based on empirical results from Philippe Schenker, increased timeout
- value to 15s, just to be on the safe side
-
- include/configs/apalis_imx6.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/configs/apalis_imx6.h b/include/configs/apalis_imx6.h
-index 4b0a3fb26b..df31cf6fe7 100644
---- a/include/configs/apalis_imx6.h
-+++ b/include/configs/apalis_imx6.h
-@@ -58,6 +58,7 @@
- #define IMX_FEC_BASE ENET_BASE_ADDR
- #define CONFIG_FEC_XCV_TYPE RGMII
- #define CONFIG_ETHPRIME "FEC"
-+#define PHY_ANEG_TIMEOUT 15000 /* PHY needs longer aneg time */
- #define CONFIG_FEC_MXC_PHYADDR 6
- #define CONFIG_TFTP_TSIZE
-
---
-2.17.1
diff --git a/recipes-bsp/u-boot-mainline/files/0001-imx8-cpu-fix-warning-for-cpu_imx_get_temp.patch b/recipes-bsp/u-boot-mainline/files/0001-imx8-cpu-fix-warning-for-cpu_imx_get_temp.patch
deleted file mode 100644
index ee07aa8..0000000
--- a/recipes-bsp/u-boot-mainline/files/0001-imx8-cpu-fix-warning-for-cpu_imx_get_temp.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From ffa531adf16d6de2362cc95f5776bc4667dab94f Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 13 May 2019 17:56:55 +0300
-Subject: [PATCH 1/7] imx8: cpu: fix warning for cpu_imx_get_temp
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-cpu_imx_get_temp() definition is wrapped with a ifdef macro, which leads
-to warnings if CONFIG_IMX_SCU_THERMAL isn't defined and there are still
-references to this function, as, for example, in cpu_imx_get_desc().
-Drop ifdef as linker will automatically remove the function
-in case CONFIG_IMX_SCU_THERMAL is not enabled.
-
-Fix warning:
-arch/arm/mach-imx/imx8/cpu.c: In function ‘cpu_imx_get_desc’:
-arch/arm/mach-imx/imx8/cpu.c:612:40: warning: implicit declaration of
-function ‘cpu_imx_get_temp’; did you mean ‘cpu_imx_get_desc’?
-[-Wimplicit-function-declaration]
- ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
- ^~~~~~~~~~~~~~~~
- cpu_imx_get_desc
- cpu_imx_get_desc
-
-Fixes: 82467cb217 ("imx8: cpu: get temperature when print cpu desc")
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/mach-imx/imx8/cpu.c | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
-index 4eb15de93e..d30ffcde3a 100644
---- a/arch/arm/mach-imx/imx8/cpu.c
-+++ b/arch/arm/mach-imx/imx8/cpu.c
-@@ -815,7 +815,6 @@ const char *get_core_name(void)
- return "?";
- }
-
--#if IS_ENABLED(CONFIG_IMX_SCU_THERMAL)
- static int cpu_imx_get_temp(void)
- {
- struct udevice *thermal_dev;
-@@ -834,12 +833,6 @@ static int cpu_imx_get_temp(void)
-
- return cpu_tmp;
- }
--#else
--static int cpu_imx_get_temp(void)
--{
-- return 0;
--}
--#endif
-
- int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
- {
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0001-usb-limit-USB_MAX_XFER_BLK-to-256.patch b/recipes-bsp/u-boot-mainline/files/0001-usb-limit-USB_MAX_XFER_BLK-to-256.patch
deleted file mode 100644
index 8ba235b..0000000
--- a/recipes-bsp/u-boot-mainline/files/0001-usb-limit-USB_MAX_XFER_BLK-to-256.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 0af97bbc0f71f00f63d2ef94ec54ade62f927cba Mon Sep 17 00:00:00 2001
-From: Peng Fan <peng.fan@nxp.com>
-Date: Mon, 6 Jun 2016 13:53:43 +0800
-Subject: [PATCH 01/15] usb: limit USB_MAX_XFER_BLK to 256
-
-For Some USB mass storage devices, such as:
-"
- - Kingston DataTraveler 2.0 001D7D06CF09B04199C7B3EA
- - Class: (from Interface) Mass Storage
- - PacketSize: 64 Configurations: 1
- - Vendor: 0x0930 Product 0x6545 Version 1.16
-"
-When `usb read 0x80000000 0 0x2000`, we met
-"EHCI timed out on TD - token=0x80008d80".
-
-The devices does not support scsi VPD page, we are not able
-to get the maximum transfer length for READ(10)/WRITE(10).
-
-So we limit this to 256 blocks as READ(6).
-
-Signed-off-by: Peng Fan <peng.fan@nxp.com>
-Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-(cherry picked from commit df0052575b2bc9d66ae73584768e1a457ed5d914)
-
-Series-to: u-boot@lists.denx.de
-
-Series-prefix: RFC
-
-Series-version: 3
-
-Series-changes: 2
-- Fixed spelling in comment as suggested by Igor.
-
-Series-changes: 3
-- Drop the reference to the NXP internal MLK-xxx tracking number as
- suggested by Peng.
-
-Commit-notes:
-This comes from NXP's downstream and has proven to tremendously improve
-the situation with those odd USB mass storage aka memory sticks. This is
-why I post it here asking whether or not this may be something
-benefiting more people. Any feedback and suggestions are welcome.
-END
----
- common/usb_storage.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/common/usb_storage.c b/common/usb_storage.c
-index 8c889bb1a6..4e284645f5 100644
---- a/common/usb_storage.c
-+++ b/common/usb_storage.c
-@@ -949,7 +949,11 @@ static void usb_stor_set_max_xfer_blk(struct usb_device *udev,
- * there is enough free heap space left, but the SCSI READ(10) and
- * WRITE(10) commands are limited to 65535 blocks.
- */
-- blk = USHRT_MAX;
-+ /*
-+ * Some USB mass storage devices have issues, limiting this to 256
-+ * fixes this.
-+ */
-+ blk = 256;
- #else
- blk = 20;
- #endif
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0001-video-mxsfb-fix-mxsfb-fbdev-binding-issues.patch b/recipes-bsp/u-boot-mainline/files/0001-video-mxsfb-fix-mxsfb-fbdev-binding-issues.patch
deleted file mode 100644
index 2d69e46..0000000
--- a/recipes-bsp/u-boot-mainline/files/0001-video-mxsfb-fix-mxsfb-fbdev-binding-issues.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From a2f8aefaddc33c83518b5abbca334a8e1c235ef9 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:05 +0300
-Subject: [PATCH 1/6] video: mxsfb: fix mxsfb fbdev binding issues
-
-Add support for display and bits-per-pixel properties.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- drivers/video/mxsfb.c | 74 ++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 62 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
-index f02ba20138..6c9a7c05e8 100644
---- a/drivers/video/mxsfb.c
-+++ b/drivers/video/mxsfb.c
-@@ -271,6 +271,42 @@ dealloc_fb:
- }
- #else /* ifndef CONFIG_DM_VIDEO */
-
-+static int mxs_of_get_timings(struct udevice *dev,
-+ struct display_timing *timings,
-+ u32 *bpp)
-+{
-+ int ret = 0;
-+ u32 display_phandle;
-+ ofnode display_node;
-+
-+ ret = ofnode_read_u32(dev_ofnode(dev), "display", &display_phandle);
-+ if (ret) {
-+ dev_err(dev, "required display property isn't provided\n");
-+ return -EINVAL;
-+ }
-+
-+ display_node = ofnode_get_by_phandle(display_phandle);
-+ if (!ofnode_valid(display_node)) {
-+ dev_err(dev, "failed to find display subnode\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = ofnode_read_u32(display_node, "bits-per-pixel", bpp);
-+ if (ret) {
-+ dev_err(dev,
-+ "required bits-per-pixel property isn't provided\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = ofnode_decode_display_timing(display_node, 0, timings);
-+ if (ret) {
-+ dev_err(dev, "failed to get any display timings\n");
-+ return -EINVAL;
-+ }
-+
-+ return ret;
-+}
-+
- static int mxs_video_probe(struct udevice *dev)
- {
- struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
-@@ -278,18 +314,16 @@ static int mxs_video_probe(struct udevice *dev)
-
- struct ctfb_res_modes mode;
- struct display_timing timings;
-- int bpp = -1;
-+ u32 bpp = 0;
- u32 fb_start, fb_end;
- int ret;
-
- debug("%s() plat: base 0x%lx, size 0x%x\n",
- __func__, plat->base, plat->size);
-
-- ret = ofnode_decode_display_timing(dev_ofnode(dev), 0, &timings);
-- if (ret) {
-- dev_err(dev, "failed to get any display timings\n");
-- return -EINVAL;
-- }
-+ ret = mxs_of_get_timings(dev, &timings, &bpp);
-+ if (ret)
-+ return ret;
-
- mode.xres = timings.hactive.typ;
- mode.yres = timings.vactive.typ;
-@@ -301,13 +335,12 @@ static int mxs_video_probe(struct udevice *dev)
- mode.vsync_len = timings.vsync_len.typ;
- mode.pixclock = HZ2PS(timings.pixelclock.typ);
-
-- bpp = BITS_PP;
--
- ret = mxs_probe_common(&mode, bpp, plat->base);
- if (ret)
- return ret;
-
- switch (bpp) {
-+ case 32:
- case 24:
- case 18:
- uc_priv->bpix = VIDEO_BPP32;
-@@ -341,15 +374,32 @@ static int mxs_video_bind(struct udevice *dev)
- {
- struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
- struct display_timing timings;
-+ u32 bpp = 0;
-+ u32 bytes_pp = 0;
- int ret;
-
-- ret = ofnode_decode_display_timing(dev_ofnode(dev), 0, &timings);
-- if (ret) {
-- dev_err(dev, "failed to get any display timings\n");
-+ ret = mxs_of_get_timings(dev, &timings, &bpp);
-+ if (ret)
-+ return ret;
-+
-+ switch (bpp) {
-+ case 32:
-+ case 24:
-+ case 18:
-+ bytes_pp = 4;
-+ break;
-+ case 16:
-+ bytes_pp = 2;
-+ break;
-+ case 8:
-+ bytes_pp = 1;
-+ break;
-+ default:
-+ dev_err(dev, "invalid bpp specified (bpp = %i)\n", bpp);
- return -EINVAL;
- }
-
-- plat->size = timings.hactive.typ * timings.vactive.typ * BYTES_PP;
-+ plat->size = timings.hactive.typ * timings.vactive.typ * bytes_pp;
-
- return 0;
- }
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0002-ARM-dts-colibri_imx7-Fix-lcdif-node-definition.patch b/recipes-bsp/u-boot-mainline/files/0002-ARM-dts-colibri_imx7-Fix-lcdif-node-definition.patch
deleted file mode 100644
index e291876..0000000
--- a/recipes-bsp/u-boot-mainline/files/0002-ARM-dts-colibri_imx7-Fix-lcdif-node-definition.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 88d87b1ac2b5f8a1aecc339f92a9fca57d366bcc Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:06 +0300
-Subject: [PATCH 2/6] ARM: dts: colibri_imx7: Fix lcdif node definition
-
-Fix lcdif DT node and make it conform to the structure defined in the
-Linux devicetree bindings [1]. Currently there is support only for
-old style lcdif node definitions.
-
-[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/display/mxsfb.txt
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/dts/imx7-colibri.dtsi | 47 +++++++++++++++++++++++-------------------
- 1 file changed, 26 insertions(+), 21 deletions(-)
-
-diff --git a/arch/arm/dts/imx7-colibri.dtsi b/arch/arm/dts/imx7-colibri.dtsi
-index 81717c233d..308e0b2a63 100644
---- a/arch/arm/dts/imx7-colibri.dtsi
-+++ b/arch/arm/dts/imx7-colibri.dtsi
-@@ -113,29 +113,34 @@
- };
-
- &lcdif {
-- u-boot,dm-pre-reloc;
- status = "okay";
-+ display = <&display0>;
-+ u-boot,dm-pre-reloc;
-
-- display-timings {
-- native-mode = <&timing_vga>;
--
-- /* Standard VGA timing */
-- timing_vga: 640x480 {
-- u-boot,dm-pre-reloc;
-- clock-frequency = <25175000>;
-- hactive = <640>;
-- vactive = <480>;
-- hback-porch = <48>;
-- hfront-porch = <16>;
-- vback-porch = <33>;
-- vfront-porch = <10>;
-- hsync-len = <96>;
-- vsync-len = <2>;
--
-- de-active = <1>;
-- hsync-active = <0>;
-- vsync-active = <0>;
-- pixelclk-active = <0>;
-+ display0: display0 {
-+ bits-per-pixel = <18>;
-+ bus-width = <24>;
-+ status = "okay";
-+
-+ display-timings {
-+ native-mode = <&timing_vga>;
-+ timing_vga: 640x480 {
-+ u-boot,dm-pre-reloc;
-+ clock-frequency = <25175000>;
-+ hactive = <640>;
-+ vactive = <480>;
-+ hback-porch = <48>;
-+ hfront-porch = <16>;
-+ vback-porch = <33>;
-+ vfront-porch = <10>;
-+ hsync-len = <96>;
-+ vsync-len = <2>;
-+
-+ de-active = <1>;
-+ hsync-active = <0>;
-+ vsync-active = <0>;
-+ pixelclk-active = <0>;
-+ };
- };
- };
- };
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0002-misc-imx8-add-sc_misc_get_temp.patch b/recipes-bsp/u-boot-mainline/files/0002-misc-imx8-add-sc_misc_get_temp.patch
deleted file mode 100644
index da7e19d..0000000
--- a/recipes-bsp/u-boot-mainline/files/0002-misc-imx8-add-sc_misc_get_temp.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d8ee868c17170e39d36e61fb0bb77def1786724b Mon Sep 17 00:00:00 2001
-From: Peng Fan <peng.fan@nxp.com>
-Date: Sun, 5 May 2019 13:23:51 +0000
-Subject: [PATCH 02/15] misc: imx8: add sc_misc_get_temp
-
-Add sc_misc_get_temp to support get temperature
-
-Signed-off-by: Peng Fan <peng.fan@nxp.com>
----
- arch/arm/include/asm/arch-imx8/sci/sci.h | 2 ++
- arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h | 1 +
- drivers/misc/imx8/scu_api.c | 28 +++++++++++++++++++++++
- 3 files changed, 31 insertions(+)
-
-diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h
-index 97377697f0..901b90d705 100644
---- a/arch/arm/include/asm/arch-imx8/sci/sci.h
-+++ b/arch/arm/include/asm/arch-imx8/sci/sci.h
-@@ -72,6 +72,8 @@ void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev);
- void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status);
- void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit);
- int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val);
-+int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
-+ s16 *celsius, s8 *tenths);
-
- /* RM API */
- sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr);
-diff --git a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
-index 5d17b553d7..3629eb68d7 100644
---- a/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
-+++ b/arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
-@@ -26,5 +26,6 @@
- #define SC_MISC_REL_CONTAINER 2U /* Release container */
-
- typedef u8 sc_misc_boot_status_t;
-+typedef u8 sc_misc_temp_t;
-
- #endif /* SC_MISC_API_H */
-diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c
-index d9c4d5d784..031bc0048b 100644
---- a/drivers/misc/imx8/scu_api.c
-+++ b/drivers/misc/imx8/scu_api.c
-@@ -273,6 +273,34 @@ int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val)
- return 0;
- }
-
-+int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp,
-+ s16 *celsius, s8 *tenths)
-+{
-+ struct udevice *dev = gd->arch.scu_dev;
-+ int size = sizeof(struct sc_rpc_msg_s);
-+ struct sc_rpc_msg_s msg;
-+ int ret;
-+
-+ RPC_VER(&msg) = SC_RPC_VERSION;
-+ RPC_SVC(&msg) = (u8)SC_RPC_SVC_MISC;
-+ RPC_FUNC(&msg) = (u8)MISC_FUNC_GET_TEMP;
-+ RPC_U16(&msg, 0U) = (u16)resource;
-+ RPC_U8(&msg, 2U) = (u8)temp;
-+ RPC_SIZE(&msg) = 2U;
-+
-+ ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size);
-+ if (ret < 0)
-+ return ret;
-+
-+ if (celsius)
-+ *celsius = RPC_I16(&msg, 0U);
-+
-+ if (tenths)
-+ *tenths = RPC_I8(&msg, 2U);
-+
-+ return 0;
-+}
-+
- /* RM */
- sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr)
- {
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0002-video-fsl_dcu_fb-refactor-init-functions.patch b/recipes-bsp/u-boot-mainline/files/0002-video-fsl_dcu_fb-refactor-init-functions.patch
deleted file mode 100644
index c9ff05e..0000000
--- a/recipes-bsp/u-boot-mainline/files/0002-video-fsl_dcu_fb-refactor-init-functions.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-From 8882f63a9c5d15e54587fa3ab791759584049098 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 10 Jun 2019 14:47:49 +0300
-Subject: [PATCH 2/7] video: fsl_dcu_fb: refactor init functions
-
-Move dcu-related code to fsl_dcu_probe_common, keep in video_hw_init()
-only legacy video stack (filling GraphicPanel struct etc.).
-
-Add wrappers for all init functions, that will let to provide
-struct fb_info as an additional param (needed for further moving it from
-the global scope to driver private data struct in DM converted driver).
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- board/freescale/ls1021aqds/dcu.c | 6 ++-
- board/toradex/colibri_vf/dcu.c | 6 ++-
- drivers/video/fsl_dcu_fb.c | 107 ++++++++++++++++++++++-----------------
- include/fsl_dcu_fb.h | 12 +++--
- 4 files changed, 77 insertions(+), 54 deletions(-)
-
-diff --git a/board/freescale/ls1021aqds/dcu.c b/board/freescale/ls1021aqds/dcu.c
-index 14855ea1d9..c4eac5e302 100644
---- a/board/freescale/ls1021aqds/dcu.c
-+++ b/board/freescale/ls1021aqds/dcu.c
-@@ -39,7 +39,9 @@ unsigned int dcu_set_pixel_clock(unsigned int pixclock)
- return div;
- }
-
--int platform_dcu_init(unsigned int xres, unsigned int yres,
-+int platform_dcu_init(struct fb_info *fbinfo,
-+ unsigned int xres,
-+ unsigned int yres,
- const char *port,
- struct fb_videomode *dcu_fb_videomode)
- {
-@@ -85,7 +87,7 @@ int platform_dcu_init(unsigned int xres, unsigned int yres,
- printf("DCU: Switching to %s monitor @ %ux%u\n", name, xres, yres);
-
- pixel_format = 32;
-- fsl_dcu_init(xres, yres, pixel_format);
-+ fsl_dcu_init(fbinfo, xres, yres, pixel_format);
-
- return 0;
- }
-diff --git a/board/toradex/colibri_vf/dcu.c b/board/toradex/colibri_vf/dcu.c
-index c36e90cd22..c688ed79ff 100644
---- a/board/toradex/colibri_vf/dcu.c
-+++ b/board/toradex/colibri_vf/dcu.c
-@@ -26,11 +26,13 @@ unsigned int dcu_set_pixel_clock(unsigned int pixclock)
- return div;
- }
-
--int platform_dcu_init(unsigned int xres, unsigned int yres,
-+int platform_dcu_init(struct fb_info *fbinfo,
-+ unsigned int xres,
-+ unsigned int yres,
- const char *port,
- struct fb_videomode *dcu_fb_videomode)
- {
-- fsl_dcu_init(xres, yres, 32);
-+ fsl_dcu_init(fbinfo, xres, yres, 32);
-
- return 0;
- }
-diff --git a/drivers/video/fsl_dcu_fb.c b/drivers/video/fsl_dcu_fb.c
-index 9f6e7f83b0..f789ec597d 100644
---- a/drivers/video/fsl_dcu_fb.c
-+++ b/drivers/video/fsl_dcu_fb.c
-@@ -1,6 +1,7 @@
- // SPDX-License-Identifier: GPL-2.0+
- /*
- * Copyright 2014 Freescale Semiconductor, Inc.
-+ * Copyright 2019 Toradex AG
- *
- * FSL DCU Framebuffer driver
- */
-@@ -240,20 +241,22 @@ static void reset_total_layers(void)
- }
- }
-
--static int layer_ctrldesc_init(int index, u32 pixel_format)
-+static int layer_ctrldesc_init(struct fb_info fbinfo,
-+ int index, u32 pixel_format)
- {
- struct dcu_reg *regs = (struct dcu_reg *)CONFIG_SYS_DCU_ADDR;
- unsigned int bpp = BPP_24_RGB888;
-
- dcu_write32(&regs->ctrldescl[index][0],
-- DCU_CTRLDESCLN_1_HEIGHT(info.var.yres) |
-- DCU_CTRLDESCLN_1_WIDTH(info.var.xres));
-+ DCU_CTRLDESCLN_1_HEIGHT(fbinfo.var.yres) |
-+ DCU_CTRLDESCLN_1_WIDTH(fbinfo.var.xres));
-
- dcu_write32(&regs->ctrldescl[index][1],
- DCU_CTRLDESCLN_2_POSY(0) |
- DCU_CTRLDESCLN_2_POSX(0));
-
-- dcu_write32(&regs->ctrldescl[index][2], (unsigned int)info.screen_base);
-+ dcu_write32(&regs->ctrldescl[index][2],
-+ (unsigned int)fbinfo.screen_base);
-
- switch (pixel_format) {
- case 16:
-@@ -294,42 +297,42 @@ static int layer_ctrldesc_init(int index, u32 pixel_format)
- return 0;
- }
-
--int fsl_dcu_init(unsigned int xres, unsigned int yres,
-- unsigned int pixel_format)
-+int fsl_dcu_init(struct fb_info *fbinfo, unsigned int xres,
-+ unsigned int yres, unsigned int pixel_format)
- {
- struct dcu_reg *regs = (struct dcu_reg *)CONFIG_SYS_DCU_ADDR;
- unsigned int div, mode;
-
-- info.screen_size =
-- info.var.xres * info.var.yres * (info.var.bits_per_pixel / 8);
-+ fbinfo->screen_size = fbinfo->var.xres * fbinfo->var.yres *
-+ (fbinfo->var.bits_per_pixel / 8);
-
-- if (info.screen_size > CONFIG_VIDEO_FSL_DCU_MAX_FB_SIZE_MB) {
-- info.screen_size = 0;
-+ if (fbinfo->screen_size > CONFIG_VIDEO_FSL_DCU_MAX_FB_SIZE_MB) {
-+ fbinfo->screen_size = 0;
- return -ENOMEM;
- }
-
- /* Reserve framebuffer at the end of memory */
- gd->fb_base = gd->bd->bi_dram[0].start +
-- gd->bd->bi_dram[0].size - info.screen_size;
-- info.screen_base = (char *)gd->fb_base;
-+ gd->bd->bi_dram[0].size - fbinfo->screen_size;
-+ fbinfo->screen_base = (char *)gd->fb_base;
-
-- memset(info.screen_base, 0, info.screen_size);
-+ memset(fbinfo->screen_base, 0, fbinfo->screen_size);
-
- reset_total_layers();
-
- dcu_write32(&regs->disp_size,
-- DCU_DISP_SIZE_DELTA_Y(info.var.yres) |
-- DCU_DISP_SIZE_DELTA_X(info.var.xres / 16));
-+ DCU_DISP_SIZE_DELTA_Y(fbinfo->var.yres) |
-+ DCU_DISP_SIZE_DELTA_X(fbinfo->var.xres / 16));
-
- dcu_write32(&regs->hsyn_para,
-- DCU_HSYN_PARA_BP(info.var.left_margin) |
-- DCU_HSYN_PARA_PW(info.var.hsync_len) |
-- DCU_HSYN_PARA_FP(info.var.right_margin));
-+ DCU_HSYN_PARA_BP(fbinfo->var.left_margin) |
-+ DCU_HSYN_PARA_PW(fbinfo->var.hsync_len) |
-+ DCU_HSYN_PARA_FP(fbinfo->var.right_margin));
-
- dcu_write32(&regs->vsyn_para,
-- DCU_VSYN_PARA_BP(info.var.upper_margin) |
-- DCU_VSYN_PARA_PW(info.var.vsync_len) |
-- DCU_VSYN_PARA_FP(info.var.lower_margin));
-+ DCU_VSYN_PARA_BP(fbinfo->var.upper_margin) |
-+ DCU_VSYN_PARA_PW(fbinfo->var.vsync_len) |
-+ DCU_VSYN_PARA_FP(fbinfo->var.lower_margin));
-
- dcu_write32(&regs->synpol,
- DCU_SYN_POL_INV_PXCK_FALL |
-@@ -352,9 +355,9 @@ int fsl_dcu_init(unsigned int xres, unsigned int yres,
- mode = dcu_read32(&regs->mode);
- dcu_write32(&regs->mode, mode | DCU_MODE_NORMAL);
-
-- layer_ctrldesc_init(0, pixel_format);
-+ layer_ctrldesc_init(*fbinfo, 0, pixel_format);
-
-- div = dcu_set_pixel_clock(info.var.pixclock);
-+ div = dcu_set_pixel_clock(fbinfo->var.pixclock);
- dcu_write32(&regs->div_ratio, (div - 1));
-
- dcu_write32(&regs->update_mode, DCU_UPDATE_MODE_READREG);
-@@ -367,24 +370,26 @@ ulong board_get_usable_ram_top(ulong total_size)
- return gd->ram_top - CONFIG_VIDEO_FSL_DCU_MAX_FB_SIZE_MB;
- }
-
--void *video_hw_init(void)
-+int fsl_probe_common(struct fb_info *fbinfo, unsigned int *win_x,
-+ unsigned int *win_y)
- {
-- static GraphicDevice ctfb;
- const char *options;
- unsigned int depth = 0, freq = 0;
-+
- struct fb_videomode *fsl_dcu_mode_db = &fsl_dcu_mode_480_272;
-
-- if (!video_get_video_mode(&ctfb.winSizeX, &ctfb.winSizeY, &depth, &freq,
-+ if (!video_get_video_mode(win_x, win_y, &depth, &freq,
- &options))
-- return NULL;
-+ return -EINVAL;
-
- /* Find the monitor port, which is a required option */
- if (!options)
-- return NULL;
-+ return -EINVAL;
-+
- if (strncmp(options, "monitor=", 8) != 0)
-- return NULL;
-+ return -EINVAL;
-
-- switch (RESOLUTION(ctfb.winSizeX, ctfb.winSizeY)) {
-+ switch (RESOLUTION(*win_x, *win_y)) {
- case RESOLUTION(480, 272):
- fsl_dcu_mode_db = &fsl_dcu_mode_480_272;
- break;
-@@ -402,25 +407,33 @@ void *video_hw_init(void)
- break;
- default:
- printf("unsupported resolution %ux%u\n",
-- ctfb.winSizeX, ctfb.winSizeY);
-+ *win_x, *win_y);
- }
-
-- info.var.xres = fsl_dcu_mode_db->xres;
-- info.var.yres = fsl_dcu_mode_db->yres;
-- info.var.bits_per_pixel = 32;
-- info.var.pixclock = fsl_dcu_mode_db->pixclock;
-- info.var.left_margin = fsl_dcu_mode_db->left_margin;
-- info.var.right_margin = fsl_dcu_mode_db->right_margin;
-- info.var.upper_margin = fsl_dcu_mode_db->upper_margin;
-- info.var.lower_margin = fsl_dcu_mode_db->lower_margin;
-- info.var.hsync_len = fsl_dcu_mode_db->hsync_len;
-- info.var.vsync_len = fsl_dcu_mode_db->vsync_len;
-- info.var.sync = fsl_dcu_mode_db->sync;
-- info.var.vmode = fsl_dcu_mode_db->vmode;
-- info.fix.line_length = info.var.xres * info.var.bits_per_pixel / 8;
--
-- if (platform_dcu_init(ctfb.winSizeX, ctfb.winSizeY,
-- options + 8, fsl_dcu_mode_db) < 0)
-+ fbinfo->var.xres = fsl_dcu_mode_db->xres;
-+ fbinfo->var.yres = fsl_dcu_mode_db->yres;
-+ fbinfo->var.bits_per_pixel = 32;
-+ fbinfo->var.pixclock = fsl_dcu_mode_db->pixclock;
-+ fbinfo->var.left_margin = fsl_dcu_mode_db->left_margin;
-+ fbinfo->var.right_margin = fsl_dcu_mode_db->right_margin;
-+ fbinfo->var.upper_margin = fsl_dcu_mode_db->upper_margin;
-+ fbinfo->var.lower_margin = fsl_dcu_mode_db->lower_margin;
-+ fbinfo->var.hsync_len = fsl_dcu_mode_db->hsync_len;
-+ fbinfo->var.vsync_len = fsl_dcu_mode_db->vsync_len;
-+ fbinfo->var.sync = fsl_dcu_mode_db->sync;
-+ fbinfo->var.vmode = fsl_dcu_mode_db->vmode;
-+ fbinfo->fix.line_length = fbinfo->var.xres *
-+ fbinfo->var.bits_per_pixel / 8;
-+
-+ return platform_dcu_init(fbinfo, *win_x, *win_y,
-+ options + 8, fsl_dcu_mode_db);
-+}
-+
-+void *video_hw_init(void)
-+{
-+ static GraphicDevice ctfb;
-+
-+ if (fsl_probe_common(&info, &ctfb.winSizeX, &ctfb.winSizeY) < 0)
- return NULL;
-
- ctfb.frameAdrs = (unsigned int)info.screen_base;
-diff --git a/include/fsl_dcu_fb.h b/include/fsl_dcu_fb.h
-index 2dd5f54c3e..7a5347a924 100644
---- a/include/fsl_dcu_fb.h
-+++ b/include/fsl_dcu_fb.h
-@@ -6,11 +6,17 @@
- */
- #include <linux/fb.h>
-
--int fsl_dcu_init(unsigned int xres, unsigned int yres,
-+int fsl_dcu_init(struct fb_info *fbinfo,
-+ unsigned int xres,
-+ unsigned int yres,
- unsigned int pixel_format);
-+
- int fsl_dcu_fixedfb_setup(void *blob);
-
- /* Prototypes for external board-specific functions */
--int platform_dcu_init(unsigned int xres, unsigned int yres,
-- const char *port, struct fb_videomode *dcu_fb_videomode);
-+int platform_dcu_init(struct fb_info *fbinfo,
-+ unsigned int xres,
-+ unsigned int yres,
-+ const char *port,
-+ struct fb_videomode *dcu_fb_videomode);
- unsigned int dcu_set_pixel_clock(unsigned int pixclock);
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0003-configs-colibri_imx7-enable-DM_VIDEO.patch b/recipes-bsp/u-boot-mainline/files/0003-configs-colibri_imx7-enable-DM_VIDEO.patch
deleted file mode 100644
index 740e4c6..0000000
--- a/recipes-bsp/u-boot-mainline/files/0003-configs-colibri_imx7-enable-DM_VIDEO.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b566fdf72a80849ef0e98fc743b8222f21d0688c Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:07 +0300
-Subject: [PATCH 3/6] configs: colibri_imx7: enable DM_VIDEO
-
-Enable DM_VIDEO support for Colibri iMX7 NAND version.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/colibri_imx7_defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
-index 5b0d091569..686ff235d8 100644
---- a/configs/colibri_imx7_defconfig
-+++ b/configs/colibri_imx7_defconfig
-@@ -73,6 +73,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
- CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
- CONFIG_CI_UDC=y
- CONFIG_USB_GADGET_DOWNLOAD=y
--CONFIG_VIDEO=y
-+CONFIG_DM_VIDEO=y
- CONFIG_OF_LIBFDT_OVERLAY=y
- CONFIG_FDT_FIXUP_PARTITIONS=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0003-thermal-add-i.MX8-thermal-driver.patch b/recipes-bsp/u-boot-mainline/files/0003-thermal-add-i.MX8-thermal-driver.patch
deleted file mode 100644
index 93c7bbd..0000000
--- a/recipes-bsp/u-boot-mainline/files/0003-thermal-add-i.MX8-thermal-driver.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-From 9151a1401de39c05cbad1270517c31c41bfb576b Mon Sep 17 00:00:00 2001
-From: Peng Fan <peng.fan@nxp.com>
-Date: Sun, 5 May 2019 13:23:54 +0000
-Subject: [PATCH 03/15] thermal: add i.MX8 thermal driver
-
-Add i.MX8 thermal driver to support get temperature from SCU.
-
-Signed-off-by: Peng Fan <peng.fan@nxp.com>
----
- drivers/thermal/Kconfig | 9 ++
- drivers/thermal/Makefile | 1 +
- drivers/thermal/imx_scu_thermal.c | 203 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 213 insertions(+)
- create mode 100644 drivers/thermal/imx_scu_thermal.c
-
-diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
-index a71b9be5fb..bdf8dc6fef 100644
---- a/drivers/thermal/Kconfig
-+++ b/drivers/thermal/Kconfig
-@@ -17,6 +17,15 @@ config IMX_THERMAL
- cpufreq is used as the cooling device to throttle CPUs when the
- passive trip is crossed.
-
-+config IMX_SCU_THERMAL
-+ bool "Temperature sensor driver for NXP i.MX8"
-+ depends on ARCH_IMX8
-+ help
-+ Support for Temperature sensors on NXP i.MX8.
-+ It supports one critical trip point and one passive trip point. The
-+ boot is hold to the cool device to throttle CPUs when the passive
-+ trip is crossed
-+
- config TI_DRA7_THERMAL
- bool "Temperature sensor driver for TI dra7xx SOCs"
- help
-diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
-index cc75e387e4..ef2929d180 100644
---- a/drivers/thermal/Makefile
-+++ b/drivers/thermal/Makefile
-@@ -5,4 +5,5 @@
-
- obj-$(CONFIG_DM_THERMAL) += thermal-uclass.o
- obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o
-+obj-$(CONFIG_IMX_SCU_THERMAL) += imx_scu_thermal.o
- obj-$(CONFIG_TI_DRA7_THERMAL) += ti-bandgap.o
-diff --git a/drivers/thermal/imx_scu_thermal.c b/drivers/thermal/imx_scu_thermal.c
-new file mode 100644
-index 0000000000..7e17377b69
---- /dev/null
-+++ b/drivers/thermal/imx_scu_thermal.c
-@@ -0,0 +1,203 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright 2019 NXP
-+ */
-+
-+#include <config.h>
-+#include <common.h>
-+#include <dm.h>
-+#include <errno.h>
-+#include <thermal.h>
-+#include <dm/device-internal.h>
-+#include <dm/device.h>
-+#include <asm/arch/sci/sci.h>
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+struct imx_sc_thermal_plat {
-+ int critical;
-+ int alert;
-+ int polling_delay;
-+ int id;
-+ bool zone_node;
-+};
-+
-+static int read_temperature(struct udevice *dev, int *temp)
-+{
-+ s16 celsius;
-+ s8 tenths;
-+ int ret;
-+
-+ sc_rsrc_t *sensor_rsrc = (sc_rsrc_t *)dev_get_driver_data(dev);
-+
-+ struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
-+
-+ if (!temp)
-+ return -EINVAL;
-+
-+ ret = sc_misc_get_temp(-1, sensor_rsrc[pdata->id], SC_C_TEMP,
-+ &celsius, &tenths);
-+ if (ret) {
-+ printf("Error: get temperature failed! (error = %d)\n", ret);
-+ return ret;
-+ }
-+
-+ *temp = celsius * 1000 + tenths * 100;
-+
-+ return 0;
-+}
-+
-+int imx_sc_thermal_get_temp(struct udevice *dev, int *temp)
-+{
-+ struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
-+ int cpu_temp = 0;
-+ int ret;
-+
-+ ret = read_temperature(dev, &cpu_temp);
-+ if (ret)
-+ return ret;
-+
-+ while (cpu_temp >= pdata->alert) {
-+ printf("CPU Temperature (%dC) has beyond alert (%dC), close to critical (%dC)",
-+ cpu_temp, pdata->alert, pdata->critical);
-+ puts(" waiting...\n");
-+ mdelay(pdata->polling_delay);
-+ ret = read_temperature(dev, &cpu_temp);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ *temp = cpu_temp / 1000;
-+
-+ return 0;
-+}
-+
-+static const struct dm_thermal_ops imx_sc_thermal_ops = {
-+ .get_temp = imx_sc_thermal_get_temp,
-+};
-+
-+static int imx_sc_thermal_probe(struct udevice *dev)
-+{
-+ debug("%s dev name %s\n", __func__, dev->name);
-+ return 0;
-+}
-+
-+static int imx_sc_thermal_bind(struct udevice *dev)
-+{
-+ struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
-+ int reg, ret;
-+ int offset;
-+ const char *name;
-+ const void *prop;
-+
-+ debug("%s dev name %s\n", __func__, dev->name);
-+
-+ prop = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "compatible",
-+ NULL);
-+ if (!prop)
-+ return 0;
-+
-+ pdata->zone_node = 1;
-+
-+ reg = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "tsens-num", 0);
-+ if (reg == 0) {
-+ printf("%s: no temp sensor number provided!\n", __func__);
-+ return -EINVAL;
-+ }
-+
-+ offset = fdt_subnode_offset(gd->fdt_blob, 0, "thermal-zones");
-+ fdt_for_each_subnode(offset, gd->fdt_blob, offset) {
-+ /* Bind the subnode to this driver */
-+ name = fdt_get_name(gd->fdt_blob, offset, NULL);
-+
-+ ret = device_bind_with_driver_data(dev, dev->driver, name,
-+ dev->driver_data,
-+ offset_to_ofnode(offset),
-+ NULL);
-+ if (ret)
-+ printf("Error binding driver '%s': %d\n",
-+ dev->driver->name, ret);
-+ }
-+ return 0;
-+}
-+
-+static int imx_sc_thermal_ofdata_to_platdata(struct udevice *dev)
-+{
-+ struct imx_sc_thermal_plat *pdata = dev_get_platdata(dev);
-+ struct fdtdec_phandle_args args;
-+ const char *type;
-+ int ret;
-+ int trips_np;
-+
-+ debug("%s dev name %s\n", __func__, dev->name);
-+
-+ if (pdata->zone_node)
-+ return 0;
-+
-+ ret = fdtdec_parse_phandle_with_args(gd->fdt_blob, dev_of_offset(dev),
-+ "thermal-sensors",
-+ "#thermal-sensor-cells",
-+ 0, 0, &args);
-+ if (ret)
-+ return ret;
-+
-+ if (args.node != dev_of_offset(dev->parent))
-+ return -EFAULT;
-+
-+ if (args.args_count >= 1)
-+ pdata->id = args.args[0];
-+ else
-+ pdata->id = 0;
-+
-+ debug("args.args_count %d, id %d\n", args.args_count, pdata->id);
-+
-+ pdata->polling_delay = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
-+ "polling-delay", 1000);
-+
-+ trips_np = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(dev),
-+ "trips");
-+ fdt_for_each_subnode(trips_np, gd->fdt_blob, trips_np) {
-+ type = fdt_getprop(gd->fdt_blob, trips_np, "type", NULL);
-+ if (type) {
-+ if (strcmp(type, "critical") == 0) {
-+ pdata->critical = fdtdec_get_int(gd->fdt_blob,
-+ trips_np,
-+ "temperature",
-+ 85);
-+ } else if (strcmp(type, "passive") == 0) {
-+ pdata->alert = fdtdec_get_int(gd->fdt_blob,
-+ trips_np,
-+ "temperature",
-+ 80);
-+ }
-+ }
-+ }
-+
-+ debug("id %d polling_delay %d, critical %d, alert %d\n", pdata->id,
-+ pdata->polling_delay, pdata->critical, pdata->alert);
-+
-+ return 0;
-+}
-+
-+static const sc_rsrc_t imx8qxp_sensor_rsrc[] = {
-+ SC_R_SYSTEM, SC_R_DRC_0, SC_R_PMIC_0,
-+ SC_R_PMIC_1, SC_R_PMIC_2,
-+};
-+
-+static const struct udevice_id imx_sc_thermal_ids[] = {
-+ { .compatible = "nxp,imx8qxp-sc-tsens", .data =
-+ (ulong)&imx8qxp_sensor_rsrc, },
-+ { }
-+};
-+
-+U_BOOT_DRIVER(imx_sc_thermal) = {
-+ .name = "imx_sc_thermal",
-+ .id = UCLASS_THERMAL,
-+ .ops = &imx_sc_thermal_ops,
-+ .of_match = imx_sc_thermal_ids,
-+ .bind = imx_sc_thermal_bind,
-+ .probe = imx_sc_thermal_probe,
-+ .ofdata_to_platdata = imx_sc_thermal_ofdata_to_platdata,
-+ .platdata_auto_alloc_size = sizeof(struct imx_sc_thermal_plat),
-+ .flags = DM_FLAG_PRE_RELOC,
-+};
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0003-video-fsl_dcu_fb-add-DM_VIDEO-support.patch b/recipes-bsp/u-boot-mainline/files/0003-video-fsl_dcu_fb-add-DM_VIDEO-support.patch
deleted file mode 100644
index 200bd27..0000000
--- a/recipes-bsp/u-boot-mainline/files/0003-video-fsl_dcu_fb-add-DM_VIDEO-support.patch
+++ /dev/null
@@ -1,229 +0,0 @@
-From da8fee6e8e96c0737d842f6a3f988670ca35bb83 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 10 Jun 2019 14:47:50 +0300
-Subject: [PATCH 3/7] video: fsl_dcu_fb: add DM_VIDEO support
-
-Extend the driver to build with DM_VIDEO enabled. DTS files
-must additionally include 'u-boot,dm-pre-reloc' property in
-soc and child nodes to enable driver binding to fsl_dcu_fb device.
-
-Currently display timings aren't obtained from DT.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- board/toradex/colibri_vf/colibri_vf.c | 4 +-
- drivers/video/Kconfig | 2 +-
- drivers/video/fsl_dcu_fb.c | 112 ++++++++++++++++++++++++++++------
- 3 files changed, 97 insertions(+), 21 deletions(-)
-
-diff --git a/board/toradex/colibri_vf/colibri_vf.c b/board/toradex/colibri_vf/colibri_vf.c
-index 9d63fbf3bd..dad754b31f 100644
---- a/board/toradex/colibri_vf/colibri_vf.c
-+++ b/board/toradex/colibri_vf/colibri_vf.c
-@@ -430,7 +430,9 @@ int checkboard(void)
- #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
- int ft_board_setup(void *blob, bd_t *bd)
- {
-+#ifndef CONFIG_DM_VIDEO
- int ret = 0;
-+#endif
- #ifdef CONFIG_FDT_FIXUP_PARTITIONS
- static const struct node_info nodes[] = {
- { "fsl,vf610-nfc", MTD_DEV_TYPE_NAND, }, /* NAND flash */
-@@ -440,7 +442,7 @@ int ft_board_setup(void *blob, bd_t *bd)
- puts(" Updating MTD partitions...\n");
- fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes));
- #endif
--#ifdef CONFIG_VIDEO_FSL_DCU_FB
-+#if defined(CONFIG_VIDEO_FSL_DCU_FB) && !defined(CONFIG_DM_VIDEO)
- ret = fsl_dcu_fixedfb_setup(blob);
- if (ret)
- return ret;
-diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index a40df01500..f6f00c2830 100644
---- a/drivers/video/Kconfig
-+++ b/drivers/video/Kconfig
-@@ -484,7 +484,7 @@ config VIDEO_IVYBRIDGE_IGD
-
- config VIDEO_FSL_DCU_FB
- bool "Enable Freescale Display Control Unit"
-- depends on VIDEO
-+ depends on VIDEO || DM_VIDEO
- help
- This enables support for Freescale Display Control Unit (DCU4)
- module found on Freescale Vybrid and QorIQ family of SoCs.
-diff --git a/drivers/video/fsl_dcu_fb.c b/drivers/video/fsl_dcu_fb.c
-index f789ec597d..add64b85b5 100644
---- a/drivers/video/fsl_dcu_fb.c
-+++ b/drivers/video/fsl_dcu_fb.c
-@@ -8,10 +8,12 @@
-
- #include <asm/io.h>
- #include <common.h>
-+#include <dm.h>
- #include <fdt_support.h>
- #include <fsl_dcu_fb.h>
- #include <linux/fb.h>
- #include <malloc.h>
-+#include <video.h>
- #include <video_fb.h>
- #include "videomodes.h"
-
-@@ -219,8 +221,6 @@ struct dcu_reg {
- u32 ctrldescl[DCU_LAYER_MAX_NUM][16];
- };
-
--static struct fb_info info;
--
- static void reset_total_layers(void)
- {
- struct dcu_reg *regs = (struct dcu_reg *)CONFIG_SYS_DCU_ADDR;
-@@ -302,7 +302,11 @@ int fsl_dcu_init(struct fb_info *fbinfo, unsigned int xres,
- {
- struct dcu_reg *regs = (struct dcu_reg *)CONFIG_SYS_DCU_ADDR;
- unsigned int div, mode;
--
-+/*
-+ * When DM_VIDEO is enabled reservation of framebuffer is done
-+ * in advance during bind() call.
-+ */
-+#if !CONFIG_IS_ENABLED(DM_VIDEO)
- fbinfo->screen_size = fbinfo->var.xres * fbinfo->var.yres *
- (fbinfo->var.bits_per_pixel / 8);
-
-@@ -310,13 +314,13 @@ int fsl_dcu_init(struct fb_info *fbinfo, unsigned int xres,
- fbinfo->screen_size = 0;
- return -ENOMEM;
- }
--
- /* Reserve framebuffer at the end of memory */
- gd->fb_base = gd->bd->bi_dram[0].start +
- gd->bd->bi_dram[0].size - fbinfo->screen_size;
- fbinfo->screen_base = (char *)gd->fb_base;
-
- memset(fbinfo->screen_base, 0, fbinfo->screen_size);
-+#endif
-
- reset_total_layers();
-
-@@ -429,6 +433,32 @@ int fsl_probe_common(struct fb_info *fbinfo, unsigned int *win_x,
- options + 8, fsl_dcu_mode_db);
- }
-
-+#ifndef CONFIG_DM_VIDEO
-+static struct fb_info info;
-+
-+#if defined(CONFIG_OF_BOARD_SETUP)
-+int fsl_dcu_fixedfb_setup(void *blob)
-+{
-+ u64 start, size;
-+ int ret;
-+
-+ start = gd->bd->bi_dram[0].start;
-+ size = gd->bd->bi_dram[0].size - info.screen_size;
-+
-+ /*
-+ * Align size on section size (1 MiB).
-+ */
-+ size &= 0xfff00000;
-+ ret = fdt_fixup_memory_banks(blob, &start, &size, 1);
-+ if (ret) {
-+ eprintf("Cannot setup fb: Error reserving memory\n");
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+#endif
-+
- void *video_hw_init(void)
- {
- static GraphicDevice ctfb;
-@@ -448,25 +478,69 @@ void *video_hw_init(void)
- return &ctfb;
- }
-
--#if defined(CONFIG_OF_BOARD_SETUP)
--int fsl_dcu_fixedfb_setup(void *blob)
-+#else /* ifndef CONFIG_DM_VIDEO */
-+
-+static int fsl_dcu_video_probe(struct udevice *dev)
- {
-- u64 start, size;
-- int ret;
-+ struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
-+ struct video_priv *uc_priv = dev_get_uclass_priv(dev);
-+ struct fb_info fbinfo = { 0 };
-+ unsigned int win_x;
-+ unsigned int win_y;
-+ u32 fb_start, fb_end;
-+ int ret = 0;
-+
-+ fb_start = plat->base & ~(MMU_SECTION_SIZE - 1);
-+ fb_end = plat->base + plat->size;
-+ fb_end = ALIGN(fb_end, 1 << MMU_SECTION_SHIFT);
-+
-+ fbinfo.screen_base = (char *)fb_start;
-+ fbinfo.screen_size = plat->size;
-+
-+ ret = fsl_probe_common(&fbinfo, &win_x, &win_y);
-+ if (ret < 0)
-+ return ret;
-
-- start = gd->bd->bi_dram[0].start;
-- size = gd->bd->bi_dram[0].size - info.screen_size;
-+ uc_priv->bpix = VIDEO_BPP32;
-+ uc_priv->xsize = win_x;
-+ uc_priv->ysize = win_y;
-
-- /*
-- * Align size on section size (1 MiB).
-- */
-- size &= 0xfff00000;
-- ret = fdt_fixup_memory_banks(blob, &start, &size, 1);
-- if (ret) {
-- eprintf("Cannot setup fb: Error reserving memory\n");
-+ /* Enable dcache for the frame buffer */
-+ mmu_set_region_dcache_behaviour(fb_start, fb_end - fb_start,
-+ DCACHE_WRITEBACK);
-+ video_set_flush_dcache(dev, true);
-+ return ret;
-+}
-+
-+static int fsl_dcu_video_bind(struct udevice *dev)
-+{
-+ struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
-+ unsigned int win_x;
-+ unsigned int win_y;
-+ unsigned int depth = 0, freq = 0;
-+ const char *options;
-+ int ret = 0;
-+
-+ ret = video_get_video_mode(&win_x, &win_y, &depth, &freq, &options);
-+ if (ret < 0)
- return ret;
-- }
-+
-+ plat->size = win_x * win_y * 32;
-
- return 0;
- }
--#endif
-+
-+static const struct udevice_id fsl_dcu_video_ids[] = {
-+ { .compatible = "fsl,vf610-dcu" },
-+ { /* sentinel */ }
-+};
-+
-+U_BOOT_DRIVER(fsl_dcu_video) = {
-+ .name = "fsl_dcu_video",
-+ .id = UCLASS_VIDEO,
-+ .of_match = fsl_dcu_video_ids,
-+ .bind = fsl_dcu_video_bind,
-+ .probe = fsl_dcu_video_probe,
-+ .flags = DM_FLAG_PRE_RELOC,
-+};
-+#endif /* ifndef CONFIG_DM_VIDEO */
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0004-ARM-dts-colibri_vf-Add-dcu0-node.patch b/recipes-bsp/u-boot-mainline/files/0004-ARM-dts-colibri_vf-Add-dcu0-node.patch
deleted file mode 100644
index 493f562..0000000
--- a/recipes-bsp/u-boot-mainline/files/0004-ARM-dts-colibri_vf-Add-dcu0-node.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From e3a6bd1f14d6115c8c4a690dce9f7756f3c0dbda Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 10 Jun 2019 14:47:51 +0300
-Subject: [PATCH 4/7] ARM: dts: colibri_vf: Add dcu0 node
-
-Add dumb node for NXP Display Control Unit0(DCU), which permits DM_ENABLED
-converted driver to be probed. Currently no display timings are provided
-in this node.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/dts/vf-colibri-u-boot.dtsi | 4 ++++
- arch/arm/dts/vf-colibri.dtsi | 5 +++++
- arch/arm/dts/vf.dtsi | 6 ++++++
- 3 files changed, 15 insertions(+)
-
-diff --git a/arch/arm/dts/vf-colibri-u-boot.dtsi b/arch/arm/dts/vf-colibri-u-boot.dtsi
-index db86739805..2294ee9551 100644
---- a/arch/arm/dts/vf-colibri-u-boot.dtsi
-+++ b/arch/arm/dts/vf-colibri-u-boot.dtsi
-@@ -21,3 +21,7 @@
- &uart0 {
- u-boot,dm-pre-reloc;
- };
-+
-+&dcu0 {
-+ u-boot,dm-pre-reloc;
-+};
-diff --git a/arch/arm/dts/vf-colibri.dtsi b/arch/arm/dts/vf-colibri.dtsi
-index 91ca4e4ddd..9de4b28e87 100644
---- a/arch/arm/dts/vf-colibri.dtsi
-+++ b/arch/arm/dts/vf-colibri.dtsi
-@@ -14,6 +14,7 @@
-
- aliases {
- usb0 = &ehci0; /* required for ums */
-+ display1 = &dcu0;
- };
-
- reg_usbh_vbus: regulator-usbh-vbus {
-@@ -241,3 +242,7 @@
- pinctrl-0 = <&pinctrl_uart0>;
- status = "okay";
- };
-+
-+&dcu0 {
-+ status = "okay";
-+};
-diff --git a/arch/arm/dts/vf.dtsi b/arch/arm/dts/vf.dtsi
-index 5e3b2c5b9d..5f69d0fd6e 100644
---- a/arch/arm/dts/vf.dtsi
-+++ b/arch/arm/dts/vf.dtsi
-@@ -145,6 +145,12 @@
- #gpio-cells = <2>;
- };
-
-+ dcu0: dcu@40058000 {
-+ compatible = "fsl,vf610-dcu";
-+ reg = <0x40058000 0x1200>;
-+ status = "disabled";
-+ };
-+
- ehci0: ehci@40034000 {
- compatible = "fsl,vf610-usb";
- reg = <0x40034000 0x800>;
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0004-colibri-imx6ull-support-building-with-DM_VIDEO-y.patch b/recipes-bsp/u-boot-mainline/files/0004-colibri-imx6ull-support-building-with-DM_VIDEO-y.patch
deleted file mode 100644
index c3014fa..0000000
--- a/recipes-bsp/u-boot-mainline/files/0004-colibri-imx6ull-support-building-with-DM_VIDEO-y.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 501c39b579c901989d6ef6f4463bb5ea1572fa09 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:08 +0300
-Subject: [PATCH 4/6] colibri-imx6ull: support building with DM_VIDEO=y
-
-1. This fixes linking issues when building with DM_VIDEO enabled mxsfb
-driver.
-2. Provide proper defines for both VIDEO=y and DM_VIDEO=y.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/mach-imx/mx6/soc.c | 2 +-
- include/configs/colibri-imx6ull.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-imx/mx6/soc.c b/arch/arm/mach-imx/mx6/soc.c
-index e80f1d484b..86a9eeba0c 100644
---- a/arch/arm/mach-imx/mx6/soc.c
-+++ b/arch/arm/mach-imx/mx6/soc.c
-@@ -549,7 +549,7 @@ const struct boot_mode soc_boot_modes[] = {
- void reset_misc(void)
- {
- #ifndef CONFIG_SPL_BUILD
--#ifdef CONFIG_VIDEO_MXS
-+#if defined(CONFIG_VIDEO_MXS) && !defined(CONFIG_DM_VIDEO)
- lcdif_power_down();
- #endif
- #endif
-diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
-index b221e118fa..37bd78ea2e 100644
---- a/include/configs/colibri-imx6ull.h
-+++ b/include/configs/colibri-imx6ull.h
-@@ -172,7 +172,7 @@
- #define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
- #define DFU_DEFAULT_POLL_TIMEOUT 300
-
--#ifdef CONFIG_VIDEO
-+#if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
- #define CONFIG_VIDEO_MXS
- #define MXS_LCDIF_BASE MX6UL_LCDIF1_BASE_ADDR
- #define CONFIG_VIDEO_LOGO
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0004-imx-imx8dx-qxp-enable-thermal.patch b/recipes-bsp/u-boot-mainline/files/0004-imx-imx8dx-qxp-enable-thermal.patch
deleted file mode 100644
index 0b6e4f2..0000000
--- a/recipes-bsp/u-boot-mainline/files/0004-imx-imx8dx-qxp-enable-thermal.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From cdd878eee2db385e97ffa4dd11d9dce77e44c615 Mon Sep 17 00:00:00 2001
-From: Peng Fan <peng.fan@nxp.com>
-Date: Sun, 5 May 2019 13:24:00 +0000
-Subject: [PATCH 04/15] imx: imx8dx/qxp: enable thermal
-
-Add thermal dts node
-Enable thermal in defconfig
-
-Signed-off-by: Peng Fan <peng.fan@nxp.com>
----
- arch/arm/dts/fsl-imx8dx.dtsi | 56 +++++++++++++++++++++++++++++++++++++++++++
- configs/imx8qxp_mek_defconfig | 2 ++
- 2 files changed, 58 insertions(+)
-
-diff --git a/arch/arm/dts/fsl-imx8dx.dtsi b/arch/arm/dts/fsl-imx8dx.dtsi
-index 715abb413d..4fc87a9fc8 100644
---- a/arch/arm/dts/fsl-imx8dx.dtsi
-+++ b/arch/arm/dts/fsl-imx8dx.dtsi
-@@ -11,6 +11,7 @@
- #include <dt-bindings/input/input.h>
- #include <dt-bindings/pinctrl/pads-imx8qxp.h>
- #include <dt-bindings/gpio/gpio.h>
-+#include <dt-bindings/thermal/thermal.h>
-
- / {
- model = "Freescale i.MX8DX";
-@@ -543,6 +544,61 @@
- power-domains = <&pd_conn_enet1>;
- status = "disabled";
- };
-+
-+ tsens: thermal-sensor {
-+ compatible = "nxp,imx8qxp-sc-tsens";
-+ /* number of the temp sensor on the chip */
-+ tsens-num = <2>;
-+ #thermal-sensor-cells = <1>;
-+ };
-+
-+ thermal_zones: thermal-zones {
-+ /* cpu thermal */
-+ cpu-thermal0 {
-+ polling-delay-passive = <250>;
-+ polling-delay = <2000>;
-+ /*the slope and offset of the temp sensor */
-+ thermal-sensors = <&tsens 0>;
-+ trips {
-+ cpu_alert0: trip0 {
-+ temperature = <107000>;
-+ hysteresis = <2000>;
-+ type = "passive";
-+ };
-+ cpu_crit0: trip1 {
-+ temperature = <127000>;
-+ hysteresis = <2000>;
-+ type = "critical";
-+ };
-+ };
-+ cooling-maps {
-+ map0 {
-+ trip = <&cpu_alert0>;
-+ cooling-device =
-+ <&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-+ };
-+ };
-+ };
-+
-+ drc-thermal0 {
-+ polling-delay-passive = <250>;
-+ polling-delay = <2000>;
-+ thermal-sensors = <&tsens 1>;
-+ status = "disabled";
-+ trips {
-+ drc_alert0: trip0 {
-+ temperature = <107000>;
-+ hysteresis = <2000>;
-+ type = "passive";
-+ };
-+ drc_crit0: trip1 {
-+ temperature = <127000>;
-+ hysteresis = <2000>;
-+ type = "critical";
-+ };
-+ };
-+ };
-+ };
- };
-
- &A35_0 {
-diff --git a/configs/imx8qxp_mek_defconfig b/configs/imx8qxp_mek_defconfig
-index d735d34b8b..076f9acd6c 100644
---- a/configs/imx8qxp_mek_defconfig
-+++ b/configs/imx8qxp_mek_defconfig
-@@ -77,5 +77,7 @@ CONFIG_DM_REGULATOR_GPIO=y
- CONFIG_SPL_DM_REGULATOR_GPIO=y
- CONFIG_DM_SERIAL=y
- CONFIG_FSL_LPUART=y
-+CONFIG_DM_THERMAL=y
-+CONFIG_IMX_SCU_THERMAL=y
- CONFIG_SPL_TINY_MEMSET=y
- # CONFIG_EFI_LOADER is not set
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0005-ARM-dts-colibri-imx6ull-extend-lcdif-node.patch b/recipes-bsp/u-boot-mainline/files/0005-ARM-dts-colibri-imx6ull-extend-lcdif-node.patch
deleted file mode 100644
index 79c4a2a..0000000
--- a/recipes-bsp/u-boot-mainline/files/0005-ARM-dts-colibri-imx6ull-extend-lcdif-node.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From ad78bd90ece3ddf909d243c77b6e2ebd2c8e9a40 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:09 +0300
-Subject: [PATCH 5/6] ARM: dts: colibri-imx6ull: extend lcdif node
-
-Provide proper display timings for lcdif node, used by mxsfb DM_VIDEO
-enabled framebuffer driver.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/dts/imx6ull-colibri.dts | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
-diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
-index 6c847ab792..262205ac5e 100644
---- a/arch/arm/dts/imx6ull-colibri.dts
-+++ b/arch/arm/dts/imx6ull-colibri.dts
-@@ -12,8 +12,10 @@
- compatible = "toradex,colibri-imx6ull", "fsl,imx6ull";
-
- aliases {
-+ u-boot,dm-pre-reloc;
- mmc0 = &usdhc1;
- usb0 = &usbotg1; /* required for ums */
-+ display0 = &lcdif;
- };
-
- chosen {
-@@ -156,6 +158,36 @@
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcdif_dat
- &pinctrl_lcdif_ctrl>;
-+ status = "okay";
-+ display = <&display0>;
-+ u-boot,dm-pre-reloc;
-+
-+ display0: display0 {
-+ bits-per-pixel = <18>;
-+ bus-width = <24>;
-+ status = "okay";
-+
-+ display-timings {
-+ native-mode = <&timing_vga>;
-+ timing_vga: 640x480 {
-+ u-boot,dm-pre-reloc;
-+ clock-frequency = <25175000>;
-+ hactive = <640>;
-+ vactive = <480>;
-+ hback-porch = <48>;
-+ hfront-porch = <16>;
-+ vback-porch = <33>;
-+ vfront-porch = <10>;
-+ hsync-len = <96>;
-+ vsync-len = <2>;
-+
-+ de-active = <1>;
-+ hsync-active = <0>;
-+ vsync-active = <0>;
-+ pixelclk-active = <0>;
-+ };
-+ };
-+ };
- };
-
- /* PWM <A> */
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0005-colibri_vf-enable-DM_VIDEO.patch b/recipes-bsp/u-boot-mainline/files/0005-colibri_vf-enable-DM_VIDEO.patch
deleted file mode 100644
index 5a31cc6..0000000
--- a/recipes-bsp/u-boot-mainline/files/0005-colibri_vf-enable-DM_VIDEO.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 71ae7689ce50b0b66ead1f7ec28f99e78381b31d Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Mon, 10 Jun 2019 14:47:52 +0300
-Subject: [PATCH 5/7] colibri_vf: enable DM_VIDEO
-
-Enable DM_VIDEO for Colibri VF.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/colibri_vf_defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
-index 75498fddb3..2b66d09901 100644
---- a/configs/colibri_vf_defconfig
-+++ b/configs/colibri_vf_defconfig
-@@ -89,7 +89,7 @@ CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
- CONFIG_CI_UDC=y
- CONFIG_USB_GADGET_DOWNLOAD=y
- CONFIG_VIDEO_FSL_DCU_FB=y
--CONFIG_VIDEO=y
-+CONFIG_DM_VIDEO=y
- CONFIG_SYS_CONSOLE_FG_COL=0x00
- CONFIG_OF_LIBFDT_OVERLAY=y
- CONFIG_FDT_FIXUP_PARTITIONS=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0005-misc-imx8-add-sc_rm_set_master_sid.patch b/recipes-bsp/u-boot-mainline/files/0005-misc-imx8-add-sc_rm_set_master_sid.patch
deleted file mode 100644
index 7edd837..0000000
--- a/recipes-bsp/u-boot-mainline/files/0005-misc-imx8-add-sc_rm_set_master_sid.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 611fb0b83ccf05b05d9dfce6722349a182f60890 Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Thu, 30 May 2019 16:57:19 +0300
-Subject: [PATCH 05/15] misc: imx8: add sc_rm_set_master_sid
-
-Add sc_rm_set_master_sid to support setting stream IDs.
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
- arch/arm/include/asm/arch-imx8/sci/sci.h | 2 ++
- drivers/misc/imx8/scu_api.c | 26 ++++++++++++++++++++++++++
- 2 files changed, 28 insertions(+)
-
-diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h
-index 901b90d705..d24993690b 100644
---- a/arch/arm/include/asm/arch-imx8/sci/sci.h
-+++ b/arch/arm/include/asm/arch-imx8/sci/sci.h
-@@ -80,6 +80,8 @@ sc_bool_t sc_rm_is_memreg_owned(sc_ipc_t ipc, sc_rm_mr_t mr);
- int sc_rm_get_memreg_info(sc_ipc_t ipc, sc_rm_mr_t mr, sc_faddr_t *addr_start,
- sc_faddr_t *addr_end);
- sc_bool_t sc_rm_is_resource_owned(sc_ipc_t ipc, sc_rsrc_t resource);
-+sc_err_t sc_rm_set_master_sid(sc_ipc_t ipc, sc_rsrc_t resource,
-+ sc_rm_sid_t sid);
-
- /* PAD API */
- int sc_pad_set(sc_ipc_t ipc, sc_pad_t pad, u32 val);
-diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c
-index 031bc0048b..f2abae3f34 100644
---- a/drivers/misc/imx8/scu_api.c
-+++ b/drivers/misc/imx8/scu_api.c
-@@ -393,3 +393,29 @@ sc_bool_t sc_rm_is_resource_owned(sc_ipc_t ipc, sc_rsrc_t resource)
-
- return !!result;
- }
-+
-+sc_err_t sc_rm_set_master_sid(sc_ipc_t ipc, sc_rsrc_t resource, sc_rm_sid_t sid)
-+{
-+ struct udevice *dev = gd->arch.scu_dev;
-+ int size = sizeof(struct sc_rpc_msg_s);
-+ struct sc_rpc_msg_s msg;
-+ int ret;
-+ u8 result;
-+
-+ if (!dev)
-+ hang();
-+
-+ RPC_VER(&msg) = SC_RPC_VERSION;
-+ RPC_SVC(&msg) = (u8)SC_RPC_SVC_RM;
-+ RPC_FUNC(&msg) = (u8)RM_FUNC_SET_MASTER_SID;
-+ RPC_U16(&msg, 0U) = (u16)resource;
-+ RPC_U16(&msg, 2U) = (u16)sid;
-+ RPC_SIZE(&msg) = 2U;
-+
-+ ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size);
-+ if (ret)
-+ printf("%s: res:%d res:%d\n", __func__, resource,
-+ RPC_R8(&msg));
-+ result = RPC_R8(&msg);
-+ return (sc_err_t) result;
-+}
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0006-MLK-14938-8-imx8-Add-SMMU-setup-to-Soc-codes.patch b/recipes-bsp/u-boot-mainline/files/0006-MLK-14938-8-imx8-Add-SMMU-setup-to-Soc-codes.patch
deleted file mode 100644
index d365185..0000000
--- a/recipes-bsp/u-boot-mainline/files/0006-MLK-14938-8-imx8-Add-SMMU-setup-to-Soc-codes.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 70ff91215f9969dfa9f8640b36ef4695d5b2d3f9 Mon Sep 17 00:00:00 2001
-From: Ye Li <ye.li@nxp.com>
-Date: Wed, 17 May 2017 02:19:25 -0500
-Subject: [PATCH 06/15] MLK-14938-8 imx8: Add SMMU setup to Soc codes
-
-We setup SMMU in arch_preboot_os to avoid breaking u-boot driver.
-Add a kconfig entry CONFIG_IMX_SMMU to enable it.
-So far, the USDHC0-USDHC1 and FEC0-FEC1 are added into sid.
-
-Signed-off-by: Peng Fan <peng.fan@nxp.com>
-Signed-off-by: Ye Li <ye.li@nxp.com>
-(cherry picked from downstream commit 7da6345919ee59a26cf65b4bc29072eea2fc0909)
-(cherry picked from downstream commit 45308e7da90f342c2de7fbec1f8c5b8bd3f1b8e5)
----
- arch/arm/include/asm/arch-imx8/sid.h | 14 ++++++++++++
- arch/arm/mach-imx/imx8/Kconfig | 5 +++++
- arch/arm/mach-imx/imx8/cpu.c | 41 ++++++++++++++++++++++++++++++++++++
- 3 files changed, 60 insertions(+)
- create mode 100644 arch/arm/include/asm/arch-imx8/sid.h
-
-diff --git a/arch/arm/include/asm/arch-imx8/sid.h b/arch/arm/include/asm/arch-imx8/sid.h
-new file mode 100644
-index 0000000000..2250efa06b
---- /dev/null
-+++ b/arch/arm/include/asm/arch-imx8/sid.h
-@@ -0,0 +1,14 @@
-+/*
-+ * Copyright 2017 NXP
-+ *
-+ * SPDX-License-Identifier: GPL-2.0+
-+ */
-+#include <asm/arch/sci/sci.h>
-+
-+struct smmu_sid {
-+ sc_rsrc_t rsrc;
-+ sc_rm_sid_t sid;
-+ char dev_name[32];
-+};
-+
-+sc_err_t imx8_config_smmu_sid(struct smmu_sid *dev_sids, int size);
-diff --git a/arch/arm/mach-imx/imx8/Kconfig b/arch/arm/mach-imx/imx8/Kconfig
-index bbe323d5ca..d577b0f077 100644
---- a/arch/arm/mach-imx/imx8/Kconfig
-+++ b/arch/arm/mach-imx/imx8/Kconfig
-@@ -1,5 +1,10 @@
- if ARCH_IMX8
-
-+config IMX_SMMU
-+ bool "Enable SMMU on i.MX8"
-+ help
-+ Enable the SMMU for peripherals on i.MX8
-+
- config IMX8
- bool
-
-diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
-index f2fa262ac8..72404d9eb6 100644
---- a/arch/arm/mach-imx/imx8/cpu.c
-+++ b/arch/arm/mach-imx/imx8/cpu.c
-@@ -13,6 +13,7 @@
- #include <errno.h>
- #include <thermal.h>
- #include <asm/arch/sci/sci.h>
-+#include <asm/arch/sid.h>
- #include <asm/arch/sys_proto.h>
- #include <asm/arch-imx/cpu.h>
- #include <asm/armv8/cpu.h>
-@@ -513,6 +514,46 @@ err:
- printf("%s: fuse %d, err: %d\n", __func__, word[i], ret);
- }
-
-+#ifdef CONFIG_IMX_SMMU
-+struct smmu_sid dev_sids[] = {
-+ { SC_R_SDHC_0, 0x11, "SDHC0" },
-+ { SC_R_SDHC_1, 0x11, "SDHC1" },
-+ { SC_R_SDHC_2, 0x11, "SDHC2" },
-+ { SC_R_ENET_0, 0x12, "FEC0" },
-+ { SC_R_ENET_1, 0x12, "FEC1" },
-+};
-+
-+sc_err_t imx8_config_smmu_sid(struct smmu_sid *dev_sids, int size)
-+{
-+ int i;
-+ sc_err_t sciErr = SC_ERR_NONE;
-+
-+ if ((dev_sids == NULL) || (size <= 0))
-+ return SC_ERR_NONE;
-+
-+ for (i = 0; i < size; i++) {
-+ sciErr = sc_rm_set_master_sid(-1,
-+ dev_sids[i].rsrc,
-+ dev_sids[i].sid);
-+ if (sciErr != SC_ERR_NONE) {
-+ printf("set master sid error\n");
-+ return sciErr;
-+ }
-+ }
-+
-+ return SC_ERR_NONE;
-+}
-+#endif
-+
-+void arch_preboot_os(void)
-+{
-+#ifdef CONFIG_IMX_SMMU
-+ sc_pm_set_resource_power_mode(-1, SC_R_SMMU, SC_PM_PW_MODE_ON);
-+
-+ imx8_config_smmu_sid(dev_sids, ARRAY_SIZE(dev_sids));
-+#endif
-+}
-+
- u32 get_cpu_rev(void)
- {
- u32 id = 0, rev = 0;
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0006-colibri-apalis-tegra-drop-DFU-support.patch b/recipes-bsp/u-boot-mainline/files/0006-colibri-apalis-tegra-drop-DFU-support.patch
deleted file mode 100644
index f8393ce..0000000
--- a/recipes-bsp/u-boot-mainline/files/0006-colibri-apalis-tegra-drop-DFU-support.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 677dcd06d90aeccfec92fd50f77494f983ad9676 Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Fri, 14 Jun 2019 10:59:10 +0300
-Subject: [PATCH 6/7] colibri/apalis tegra: drop DFU support
-
-We never really added a sensible DFU configuration for platforms
-based on eMMC. Most of the things one might want to do can also be done
-with UMS or fastboot, so drop the DFU configuration.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/apalis-tk1_defconfig | 3 ---
- configs/apalis_t30_defconfig | 3 ---
- configs/colibri_t20_defconfig | 3 ---
- configs/colibri_t30_defconfig | 3 ---
- 4 files changed, 12 deletions(-)
-
-diff --git a/configs/apalis-tk1_defconfig b/configs/apalis-tk1_defconfig
-index 41f3aff149..25f926dda3 100644
---- a/configs/apalis-tk1_defconfig
-+++ b/configs/apalis-tk1_defconfig
-@@ -17,7 +17,6 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
- CONFIG_SPL_TEXT_BASE=0x80108000
- CONFIG_SYS_PROMPT="Apalis TK1 # "
- # CONFIG_CMD_IMI is not set
--CONFIG_CMD_DFU=y
- # CONFIG_CMD_FLASH is not set
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_I2C=y
-@@ -34,8 +33,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra124-apalis"
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
- CONFIG_SPL_DM=y
--CONFIG_DFU_MMC=y
--CONFIG_DFU_RAM=y
- CONFIG_SYS_I2C_TEGRA=y
- CONFIG_SUPPORT_EMMC_BOOT=y
- CONFIG_TEGRA124_MMC_DISABLE_EXT_LOOPBACK=y
-diff --git a/configs/apalis_t30_defconfig b/configs/apalis_t30_defconfig
-index cf4d14434d..75b5a1dca3 100644
---- a/configs/apalis_t30_defconfig
-+++ b/configs/apalis_t30_defconfig
-@@ -14,7 +14,6 @@ CONFIG_ARCH_MISC_INIT=y
- CONFIG_SPL_TEXT_BASE=0x80108000
- CONFIG_SYS_PROMPT="Apalis T30 # "
- # CONFIG_CMD_IMI is not set
--CONFIG_CMD_DFU=y
- # CONFIG_CMD_FLASH is not set
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_I2C=y
-@@ -31,8 +30,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra30-apalis"
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
- CONFIG_SPL_DM=y
--CONFIG_DFU_MMC=y
--CONFIG_DFU_RAM=y
- CONFIG_SYS_I2C_TEGRA=y
- CONFIG_E1000=y
- CONFIG_PCI=y
-diff --git a/configs/colibri_t20_defconfig b/configs/colibri_t20_defconfig
-index d6a20ca642..569dda251b 100644
---- a/configs/colibri_t20_defconfig
-+++ b/configs/colibri_t20_defconfig
-@@ -13,7 +13,6 @@ CONFIG_ARCH_MISC_INIT=y
- CONFIG_SPL_TEXT_BASE=0x00108000
- CONFIG_SYS_PROMPT="Colibri T20 # "
- # CONFIG_CMD_IMI is not set
--CONFIG_CMD_DFU=y
- # CONFIG_CMD_FLASH is not set
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_I2C=y
-@@ -39,8 +38,6 @@ CONFIG_ENV_IS_IN_NAND=y
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=1536
- CONFIG_SPL_DM=y
--CONFIG_DFU_MMC=y
--CONFIG_DFU_RAM=y
- CONFIG_SYS_I2C_TEGRA=y
- CONFIG_MTD=y
- CONFIG_MTD_UBI_FASTMAP=y
-diff --git a/configs/colibri_t30_defconfig b/configs/colibri_t30_defconfig
-index 769f6f3c9e..1e2268a105 100644
---- a/configs/colibri_t30_defconfig
-+++ b/configs/colibri_t30_defconfig
-@@ -14,7 +14,6 @@ CONFIG_ARCH_MISC_INIT=y
- CONFIG_SPL_TEXT_BASE=0x80108000
- CONFIG_SYS_PROMPT="Colibri T30 # "
- # CONFIG_CMD_IMI is not set
--CONFIG_CMD_DFU=y
- # CONFIG_CMD_FLASH is not set
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_I2C=y
-@@ -30,8 +29,6 @@ CONFIG_DEFAULT_DEVICE_TREE="tegra30-colibri"
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
- CONFIG_SPL_DM=y
--CONFIG_DFU_MMC=y
--CONFIG_DFU_RAM=y
- CONFIG_SYS_I2C_TEGRA=y
- CONFIG_SYS_NS16550=y
- CONFIG_USB=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0006-configs-colibri-imx6ull-switch-to-DM_VIDEO.patch b/recipes-bsp/u-boot-mainline/files/0006-configs-colibri-imx6ull-switch-to-DM_VIDEO.patch
deleted file mode 100644
index b082215..0000000
--- a/recipes-bsp/u-boot-mainline/files/0006-configs-colibri-imx6ull-switch-to-DM_VIDEO.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 80dde745c0f0a382e7e6b71ba24bef35b81e5eec Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Wed, 19 Jun 2019 11:47:10 +0300
-Subject: [PATCH 6/6] configs: colibri-imx6ull: switch to DM_VIDEO
-
-Use CONFIG_DM_VIDEO=y by default for Colibri iMX6ULL.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/colibri-imx6ull_defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
-index 8f09f1b3d6..bb9d6b5707 100644
---- a/configs/colibri-imx6ull_defconfig
-+++ b/configs/colibri-imx6ull_defconfig
-@@ -77,6 +77,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
- CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
- CONFIG_CI_UDC=y
- CONFIG_USB_GADGET_DOWNLOAD=y
--CONFIG_VIDEO=y
-+CONFIG_DM_VIDEO=y
- CONFIG_OF_LIBFDT_OVERLAY=y
- CONFIG_FDT_FIXUP_PARTITIONS=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0007-apalis-imx8-enable-smmu-setup.patch b/recipes-bsp/u-boot-mainline/files/0007-apalis-imx8-enable-smmu-setup.patch
deleted file mode 100644
index 400cf48..0000000
--- a/recipes-bsp/u-boot-mainline/files/0007-apalis-imx8-enable-smmu-setup.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 18d42de50e1787b533b6d35894d853ac51f977bc Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Thu, 30 May 2019 17:00:06 +0300
-Subject: [PATCH 07/15] apalis-imx8: enable smmu setup
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
- configs/apalis-imx8qm_defconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configs/apalis-imx8qm_defconfig b/configs/apalis-imx8qm_defconfig
-index f3dbaf0101..5e6b89ad9d 100644
---- a/configs/apalis-imx8qm_defconfig
-+++ b/configs/apalis-imx8qm_defconfig
-@@ -2,6 +2,7 @@ CONFIG_ARM=y
- CONFIG_ARCH_IMX8=y
- CONFIG_SYS_TEXT_BASE=0x80020000
- CONFIG_SYS_MALLOC_F_LEN=0x4000
-+CONFIG_IMX_SMMU=y
- CONFIG_TARGET_APALIS_IMX8=y
- CONFIG_NR_DRAM_BANKS=3
- CONFIG_DISTRO_DEFAULTS=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0007-colibri-apalis-imx-drop-DFU-support.patch b/recipes-bsp/u-boot-mainline/files/0007-colibri-apalis-imx-drop-DFU-support.patch
deleted file mode 100644
index 78a9984..0000000
--- a/recipes-bsp/u-boot-mainline/files/0007-colibri-apalis-imx-drop-DFU-support.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 21b2944415831281eb0c2d18bf265de5feff7aed Mon Sep 17 00:00:00 2001
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-Date: Fri, 14 Jun 2019 10:59:11 +0300
-Subject: [PATCH 7/7] colibri/apalis imx: drop DFU support
-
-We never really added a sensible DFU configuration for platforms
-based on eMMC. Most of the things one might want to do can also be done
-with UMS or fastboot, so drop the DFU configuration.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/apalis_imx6_defconfig | 2 --
- configs/colibri-imx6ull_defconfig | 1 -
- configs/colibri_imx6_defconfig | 2 --
- configs/colibri_imx7_emmc_defconfig | 2 --
- 4 files changed, 7 deletions(-)
-
-diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
-index 6f36f7b82e..dcf6c100dc 100644
---- a/configs/apalis_imx6_defconfig
-+++ b/configs/apalis_imx6_defconfig
-@@ -38,7 +38,6 @@ CONFIG_CMD_ASKENV=y
- CONFIG_CRC32_VERIFY=y
- CONFIG_CMD_MEMTEST=y
- CONFIG_SYS_ALT_MEMTEST=y
--CONFIG_CMD_DFU=y
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_GPT=y
- CONFIG_CMD_I2C=y
-@@ -57,7 +56,6 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=4096
- CONFIG_DWC_AHSATA=y
--CONFIG_DFU_MMC=y
- CONFIG_DM_GPIO=y
- CONFIG_DM_I2C=y
- CONFIG_DM_MMC=y
-diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
-index 5c89439f7b..e3a95ee16f 100644
---- a/configs/colibri-imx6ull_defconfig
-+++ b/configs/colibri-imx6ull_defconfig
-@@ -48,7 +48,6 @@ CONFIG_ENV_IS_IN_NAND=y
- CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
--CONFIG_DFU_MMC=y
- CONFIG_DFU_NAND=y
- CONFIG_DM_GPIO=y
- CONFIG_DM_I2C=y
-diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig
-index a60d6951c9..f3df827e16 100644
---- a/configs/colibri_imx6_defconfig
-+++ b/configs/colibri_imx6_defconfig
-@@ -37,7 +37,6 @@ CONFIG_CMD_ASKENV=y
- CONFIG_CRC32_VERIFY=y
- CONFIG_CMD_MEMTEST=y
- CONFIG_SYS_ALT_MEMTEST=y
--CONFIG_CMD_DFU=y
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_GPT=y
- CONFIG_CMD_I2C=y
-@@ -56,7 +55,6 @@ CONFIG_ENV_IS_IN_MMC=y
- CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
--CONFIG_DFU_MMC=y
- CONFIG_DM_GPIO=y
- CONFIG_DM_I2C=y
- CONFIG_DM_MMC=y
-diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig
-index 89f43e5fb9..a430d43e17 100644
---- a/configs/colibri_imx7_emmc_defconfig
-+++ b/configs/colibri_imx7_emmc_defconfig
-@@ -25,7 +25,6 @@ CONFIG_SYS_PROMPT="Colibri iMX7 # "
- CONFIG_CMD_ASKENV=y
- CONFIG_CRC32_VERIFY=y
- CONFIG_CMD_MEMTEST=y
--CONFIG_CMD_DFU=y
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_GPT=y
- # CONFIG_RANDOM_UUID is not set
-@@ -44,7 +43,6 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
- CONFIG_IP_DEFRAG=y
- CONFIG_TFTP_BLOCKSIZE=16352
- CONFIG_FSL_CAAM=y
--CONFIG_DFU_MMC=y
- CONFIG_DM_GPIO=y
- CONFIG_DM_I2C=y
- CONFIG_DM_MMC=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0008-MLK-16087-imx8qm-qxp-Disable-kernel-FDT-nodes-for-th.patch b/recipes-bsp/u-boot-mainline/files/0008-MLK-16087-imx8qm-qxp-Disable-kernel-FDT-nodes-for-th.patch
deleted file mode 100644
index 919a777..0000000
--- a/recipes-bsp/u-boot-mainline/files/0008-MLK-16087-imx8qm-qxp-Disable-kernel-FDT-nodes-for-th.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From db6acd1b9a0c4ee3819c5546d033be4710233084 Mon Sep 17 00:00:00 2001
-From: Ye Li <ye.li@nxp.com>
-Date: Mon, 16 Apr 2018 00:05:24 -0700
-Subject: [PATCH 08/15] MLK-16087 imx8qm/qxp: Disable kernel FDT nodes for the
- resources are not owned
-
-Before starting the kernel, need to check if the enabled nodes (resources) in FDT
-are owned by current partition. If it is not owned, need to disable it because A core
-can't access it.
-We use the node's power-domain property to get the PD node which has the SCFW resource
-id in its reg property. Then we can check it with SCFW.
-
-Signed-off-by: Ye Li <ye.li@nxp.com>
-(cherry picked from downstream commit 358372674b29685788a4007b0944ab03b7fafc13)
----
- arch/arm/mach-imx/imx8/cpu.c | 115 +++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 115 insertions(+)
-
-diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
-index 72404d9eb6..7f2dd2166b 100644
---- a/arch/arm/mach-imx/imx8/cpu.c
-+++ b/arch/arm/mach-imx/imx8/cpu.c
-@@ -11,6 +11,8 @@
- #include <dm/lists.h>
- #include <dm/uclass.h>
- #include <errno.h>
-+#include <fdt_support.h>
-+#include <fdtdec.h>
- #include <thermal.h>
- #include <asm/arch/sci/sci.h>
- #include <asm/arch/sid.h>
-@@ -193,6 +195,119 @@ int mmc_get_env_dev(void)
- }
- #endif
-
-+#ifdef CONFIG_OF_SYSTEM_SETUP
-+static bool check_owned_resource(sc_rsrc_t rsrc_id)
-+{
-+ sc_ipc_t ipcHndl = 0;
-+ bool owned;
-+
-+ ipcHndl = -1;
-+
-+ owned = sc_rm_is_resource_owned(ipcHndl, rsrc_id);
-+
-+ return owned;
-+}
-+
-+static int disable_fdt_node(void *blob, int nodeoffset)
-+{
-+ int rc, ret;
-+ const char *status = "disabled";
-+
-+ do {
-+ rc = fdt_setprop(blob, nodeoffset, "status", status, strlen(status) + 1);
-+ if (rc) {
-+ if (rc == -FDT_ERR_NOSPACE) {
-+ ret = fdt_increase_size(blob, 512);
-+ if (ret)
-+ return ret;
-+ }
-+ }
-+ } while (rc == -FDT_ERR_NOSPACE);
-+
-+ return rc;
-+}
-+
-+static void update_fdt_with_owned_resources(void *blob)
-+{
-+ /* Traverses the fdt nodes,
-+ * check its power domain and use the resource id in the power domain
-+ * for checking whether it is owned by current partition
-+ */
-+
-+ int offset = 0, next_off, addr;
-+ int depth, next_depth;
-+ unsigned int rsrc_id;
-+ const fdt32_t *php;
-+ const char *name;
-+ int rc;
-+
-+ for (offset = fdt_next_node(blob, offset, &depth); offset > 0;
-+ offset = fdt_next_node(blob, offset, &depth)) {
-+
-+ debug("Node name: %s, depth %d\n", fdt_get_name(blob, offset, NULL), depth);
-+
-+ if (!fdtdec_get_is_enabled(blob, offset)) {
-+ debug(" - ignoring disabled device\n");
-+ continue;
-+ }
-+
-+ if (!fdt_node_check_compatible(blob, offset, "nxp,imx8-pd")) {
-+ /* Skip to next depth=1 node*/
-+ next_off = offset;
-+ next_depth = depth;
-+ do {
-+ offset = next_off;
-+ depth = next_depth;
-+ next_off = fdt_next_node(blob, offset, &next_depth);
-+ if (next_off < 0 || next_depth < 1)
-+ break;
-+
-+ debug("PD name: %s, offset %d, depth %d\n",
-+ fdt_get_name(blob, next_off, NULL), next_off, next_depth);
-+ } while (next_depth > 1);
-+
-+ continue;
-+ }
-+
-+ php = fdt_getprop(blob, offset, "power-domains", NULL);
-+ if (!php) {
-+ debug(" - ignoring no power-domains\n");
-+ } else {
-+ addr = fdt_node_offset_by_phandle(blob, fdt32_to_cpu(*php));
-+ rsrc_id = fdtdec_get_uint(blob, addr, "reg", 0);
-+
-+ if (rsrc_id == SC_R_LAST) {
-+ name = fdt_get_name(blob, offset, NULL);
-+ printf("%s's power domain use SC_R_LAST\n", name);
-+ continue;
-+ }
-+
-+ debug("power-domains phandle 0x%x, addr 0x%x, resource id %u\n",
-+ fdt32_to_cpu(*php), addr, rsrc_id);
-+
-+ if (!check_owned_resource(rsrc_id)) {
-+
-+ /* If the resource is not owned, disable it in FDT */
-+ rc = disable_fdt_node(blob, offset);
-+ if (!rc)
-+ printf("Disable %s, resource id %u, pd phandle 0x%x\n",
-+ fdt_get_name(blob, offset, NULL), rsrc_id, fdt32_to_cpu(*php));
-+ else
-+ printf("Unable to disable %s, err=%s\n",
-+ fdt_get_name(blob, offset, NULL), fdt_strerror(rc));
-+ }
-+ }
-+ }
-+}
-+
-+int ft_system_setup(void *blob, bd_t *bd)
-+{
-+ update_fdt_with_owned_resources(blob);
-+
-+ return 0;
-+}
-+#endif
-+
- #define MEMSTART_ALIGNMENT SZ_2M /* Align the memory start with 2MB */
-
- static int get_owned_memreg(sc_rm_mr_t mr, sc_faddr_t *addr_start,
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0009-MLK-16560-1-imx8-Configure-sids-based-on-iommu-prope.patch b/recipes-bsp/u-boot-mainline/files/0009-MLK-16560-1-imx8-Configure-sids-based-on-iommu-prope.patch
deleted file mode 100644
index 94a54cc..0000000
--- a/recipes-bsp/u-boot-mainline/files/0009-MLK-16560-1-imx8-Configure-sids-based-on-iommu-prope.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From dd44f99dc42905f17bc72832b9b2de391441e78b Mon Sep 17 00:00:00 2001
-From: Ye Li <ye.li@nxp.com>
-Date: Mon, 16 Apr 2018 00:27:31 -0700
-Subject: [PATCH 09/15] MLK-16560-1: imx8: Configure sids based on iommu
- properties in dtb
-
-Use streamids specified in dtb because they need to match anyway. This
-removes the need to rebuild uboot for stream id assignments.
-
-Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
-Reviewed-by: Ye Li <ye.li@nxp.com>
-Acked-by: Peng Fan <peng.fan@nxp.com>
-(cherry picked from downstream commit 3caa05e6dc973b8710642f27f834bf022fbb65b4)
----
- arch/arm/mach-imx/imx8/cpu.c | 85 ++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 85 insertions(+)
-
-diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
-index 7f2dd2166b..4eb15de93e 100644
---- a/arch/arm/mach-imx/imx8/cpu.c
-+++ b/arch/arm/mach-imx/imx8/cpu.c
-@@ -299,10 +299,95 @@ static void update_fdt_with_owned_resources(void *blob)
- }
- }
- }
-+#endif
-+
-+#ifdef CONFIG_IMX_SMMU
-+static int get_srsc_from_fdt_node_power_domain(void *blob, int device_offset)
-+{
-+ const fdt32_t *prop;
-+ int pdnode_offset;
-+
-+ prop = fdt_getprop(blob, device_offset, "power-domains", NULL);
-+ if (!prop) {
-+ debug("node %s has no power-domains\n",
-+ fdt_get_name(blob, device_offset, NULL));
-+ return -ENOENT;
-+ }
-+
-+ pdnode_offset = fdt_node_offset_by_phandle(blob, fdt32_to_cpu(*prop));
-+ if (pdnode_offset < 0) {
-+ pr_err("failed to fetch node %s power-domain",
-+ fdt_get_name(blob, device_offset, NULL));
-+ return pdnode_offset;
-+ }
-+
-+ return fdtdec_get_uint(blob, pdnode_offset, "reg", -ENOENT);
-+}
-+
-+static int config_smmu_resource_sid(int rsrc, int sid)
-+{
-+ sc_err_t err;
-+
-+ err = sc_rm_set_master_sid(-1, rsrc, sid);
-+ debug("set_master_sid rsrc=%d sid=0x%x err=%d\n", rsrc, sid, err);
-+ if (err != SC_ERR_NONE) {
-+ pr_err("fail set_master_sid rsrc=%d sid=0x%x err=%d", rsrc, sid, err);
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int config_smmu_fdt_device_sid(void *blob, int device_offset, int sid)
-+{
-+ int rsrc;
-+ const char *name = fdt_get_name(blob, device_offset, NULL);
-
-+ rsrc = get_srsc_from_fdt_node_power_domain(blob, device_offset);
-+ debug("configure node %s sid 0x%x rsrc=%d\n", name, sid, rsrc);
-+ if (rsrc < 0) {
-+ debug("failed to determine SC_R_* for node %s\n", name);
-+ return rsrc;
-+ }
-+
-+ return config_smmu_resource_sid(rsrc, sid);
-+}
-+
-+/* assign master sid based on iommu properties in fdt */
-+static int config_smmu_fdt(void *blob)
-+{
-+ int offset, proplen;
-+ const fdt32_t *prop;
-+ const char *name;
-+
-+ offset = 0;
-+ while ((offset = fdt_next_node(blob, offset, NULL)) > 0)
-+ {
-+ name = fdt_get_name(blob, offset, NULL);
-+ prop = fdt_getprop(blob, offset, "iommus", &proplen);
-+ if (!prop)
-+ continue;
-+ debug("node %s iommus proplen %d\n", name, proplen);
-+
-+ if (proplen == 12) {
-+ int sid = fdt32_to_cpu(prop[1]);
-+ config_smmu_fdt_device_sid(blob, offset, sid);
-+ } else if (proplen != 4) {
-+ debug("node %s ignore unexpected iommus proplen=%d\n", name, proplen);
-+ }
-+ }
-+
-+ return 0;
-+}
-+#endif
-+
-+#ifdef CONFIG_OF_SYSTEM_SETUP
- int ft_system_setup(void *blob, bd_t *bd)
- {
- update_fdt_with_owned_resources(blob);
-+#ifdef CONFIG_IMX_SMMU
-+ config_smmu_fdt(blob);
-+#endif
-
- return 0;
- }
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0010-apalis-imx8-enable-of_system_setup.patch b/recipes-bsp/u-boot-mainline/files/0010-apalis-imx8-enable-of_system_setup.patch
deleted file mode 100644
index 755fea9..0000000
--- a/recipes-bsp/u-boot-mainline/files/0010-apalis-imx8-enable-of_system_setup.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f028b7765dab1855cc26bca88c19feac7196358f Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Thu, 30 May 2019 18:55:05 +0300
-Subject: [PATCH 10/15] apalis-imx8: enable of_system_setup
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
- configs/apalis-imx8qm_defconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configs/apalis-imx8qm_defconfig b/configs/apalis-imx8qm_defconfig
-index 5e6b89ad9d..d7dfc4a27b 100644
---- a/configs/apalis-imx8qm_defconfig
-+++ b/configs/apalis-imx8qm_defconfig
-@@ -7,6 +7,7 @@ CONFIG_TARGET_APALIS_IMX8=y
- CONFIG_NR_DRAM_BANKS=3
- CONFIG_DISTRO_DEFAULTS=y
- CONFIG_FIT=y
-+CONFIG_OF_SYSTEM_SETUP=y
- CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/apalis-imx8/apalis-imx8qm-imximage.cfg"
- CONFIG_LOG=y
- CONFIG_VERSION_VARIABLE=y
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0011-MLK-17205-1-video-imx-hdp-Adding-support-for-HDP-fir.patch b/recipes-bsp/u-boot-mainline/files/0011-MLK-17205-1-video-imx-hdp-Adding-support-for-HDP-fir.patch
deleted file mode 100644
index 956ebe5..0000000
--- a/recipes-bsp/u-boot-mainline/files/0011-MLK-17205-1-video-imx-hdp-Adding-support-for-HDP-fir.patch
+++ /dev/null
@@ -1,2560 +0,0 @@
-From 94ed34cb71d660718acae960328c510f71fbf3dc Mon Sep 17 00:00:00 2001
-From: Oliver Brown <oliver.brown@nxp.com>
-Date: Wed, 13 Dec 2017 17:09:14 -0600
-Subject: [PATCH 11/15] MLK-17205-1 video: imx: hdp: Adding support for HDP
- firmware loading
-
-This adds a command to load the HDP firmware and supporting libraries.
-
-Signed-off-by: Oliver Brown <oliver.brown@nxp.com>
-(cherry picked from downstream commit 94c9c7022c5b6cffb74bb2e34336cffc2790d0d8)
-(cherry picked from downstream commit 21edff320e763585ebc6ab2d997c994561b69292)
----
- drivers/video/Makefile | 3 +
- drivers/video/imx/Makefile | 1 +
- drivers/video/imx/hdp/API_General.c | 477 ++++++++++++++++++++++++++++++++
- drivers/video/imx/hdp/API_General.h | 302 ++++++++++++++++++++
- drivers/video/imx/hdp/Makefile | 1 +
- drivers/video/imx/hdp/address.h | 109 ++++++++
- drivers/video/imx/hdp/apb_cfg.h | 185 +++++++++++++
- drivers/video/imx/hdp/externs.h | 81 ++++++
- drivers/video/imx/hdp/general_handler.h | 162 +++++++++++
- drivers/video/imx/hdp/opcodes.h | 115 ++++++++
- drivers/video/imx/hdp/test_base_sw.c | 181 ++++++++++++
- drivers/video/imx/hdp/util.c | 329 ++++++++++++++++++++++
- drivers/video/imx/hdp/util.h | 278 +++++++++++++++++++
- drivers/video/imx/hdp_load.c | 107 +++++++
- drivers/video/imx/scfw_utils.h | 90 ++++++
- 15 files changed, 2421 insertions(+)
- create mode 100644 drivers/video/imx/hdp/API_General.c
- create mode 100644 drivers/video/imx/hdp/API_General.h
- create mode 100644 drivers/video/imx/hdp/Makefile
- create mode 100644 drivers/video/imx/hdp/address.h
- create mode 100644 drivers/video/imx/hdp/apb_cfg.h
- create mode 100644 drivers/video/imx/hdp/externs.h
- create mode 100644 drivers/video/imx/hdp/general_handler.h
- create mode 100644 drivers/video/imx/hdp/opcodes.h
- create mode 100644 drivers/video/imx/hdp/test_base_sw.c
- create mode 100644 drivers/video/imx/hdp/util.c
- create mode 100644 drivers/video/imx/hdp/util.h
- create mode 100644 drivers/video/imx/hdp_load.c
- create mode 100644 drivers/video/imx/scfw_utils.h
-
-diff --git a/drivers/video/Makefile b/drivers/video/Makefile
-index 349a207035..fdc57c71da 100644
---- a/drivers/video/Makefile
-+++ b/drivers/video/Makefile
-@@ -65,3 +65,6 @@ obj-$(CONFIG_VIDEO_VESA) += vesa.o
-
- obj-y += bridge/
- obj-y += sunxi/
-+
-+UBOOTINCLUDE += -I$(srctree)/drivers/video/imx/hdp
-+obj-$(CONFIG_VIDEO_IMX_HDP_LOAD) += imx/hdp_load.o imx/hdp/
-diff --git a/drivers/video/imx/Makefile b/drivers/video/imx/Makefile
-index 179ea651fe..0f9d85f917 100644
---- a/drivers/video/imx/Makefile
-+++ b/drivers/video/imx/Makefile
-@@ -4,3 +4,4 @@
- # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-
- obj-y += mxc_ipuv3_fb.o ipu_common.o ipu_disp.o
-+obj-$(CONFIG_VIDEO_IMX_HDP_LOAD) += hdp_load.o hdp/
-diff --git a/drivers/video/imx/hdp/API_General.c b/drivers/video/imx/hdp/API_General.c
-new file mode 100644
-index 0000000000..83458d7fae
---- /dev/null
-+++ b/drivers/video/imx/hdp/API_General.c
-@@ -0,0 +1,477 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * API_General.c
-+ *
-+ ******************************************************************************
-+ */
-+
-+#include "API_General.h"
-+#include "util.h"
-+#ifndef __UBOOT__
-+#include <string.h>
-+#endif
-+#include "address.h"
-+#include "apb_cfg.h"
-+#include "opcodes.h"
-+#include "general_handler.h"
-+#include "externs.h"
-+#ifndef __UBOOT__
-+#include <stdio.h>
-+#endif
-+
-+extern state_struct state;
-+
-+void cdn_api_init(void)
-+{
-+ memset(&state, 0, sizeof(state_struct));
-+}
-+
-+CDN_API_STATUS cdn_api_loadfirmware(unsigned char *imem, int imemsize,
-+ unsigned char *dmem, int dmemsize)
-+{
-+ int i;
-+ for (i = 0; i < imemsize; i += 4)
-+ if (cdn_apb_write(ADDR_IMEM + i,
-+ (unsigned int)imem[i] << 0 |
-+ (unsigned int)imem[i + 1] << 8 |
-+ (unsigned int)imem[i + 2] << 16 |
-+ (unsigned int)imem[i + 3] << 24))
-+ return CDN_ERR;
-+ for (i = 0; i < dmemsize; i += 4)
-+ if (cdn_apb_write(ADDR_DMEM + i,
-+ (unsigned int)dmem[i] << 0 |
-+ (unsigned int)dmem[i + 1] << 8 |
-+ (unsigned int)dmem[i + 2] << 16 |
-+ (unsigned int)dmem[i + 3] << 24))
-+ return CDN_ERR;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_test_echo(unsigned int val,
-+ CDN_BUS_TYPE bus_type)
-+{
-+ CDN_API_STATUS ret;
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+ state.bus_type = bus_type;
-+ state.rxenable = 1;
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL, GENERAL_TEST_ECHO,
-+ 1, 4, val);
-+ return CDN_STARTED;
-+ }
-+ if (state.txenable && !internal_mbox_tx_process().txend)
-+ return CDN_BSY;
-+ if (state.rxenable && !internal_mbox_rx_process().rxend)
-+ return CDN_BSY;
-+ ret = internal_test_rx_head(MB_MODULE_ID_GENERAL, GENERAL_TEST_ECHO);
-+ if (ret != CDN_OK) {
-+ state.running = 0;
-+ return ret;
-+ }
-+ state.running = 0;
-+ if (val != internal_betoi(state.rxbuffer + INTERNAL_CMD_HEAD_SIZE, 4))
-+ return CDN_ERR;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_test_echo_blocking(unsigned int val,
-+ CDN_BUS_TYPE bus_type)
-+{
-+ internal_block_function(cdn_api_general_test_echo(val, bus_type));
-+}
-+
-+CDN_API_STATUS cdn_api_general_test_echo_ext(uint8_t const *msg, uint8_t *resp,
-+ uint16_t num_bytes,
-+ CDN_BUS_TYPE bus_type)
-+{
-+ CDN_API_STATUS ret;
-+
-+ if (!msg || !resp)
-+ return CDN_ERR;
-+
-+ if ((num_bytes > GENERAL_TEST_ECHO_MAX_PAYLOAD) ||
-+ (num_bytes < GENERAL_TEST_ECHO_MIN_PAYLOAD))
-+ return CDN_ERR;
-+
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+
-+ state.bus_type = bus_type;
-+ state.rxenable = 1;
-+
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL, GENERAL_TEST_ECHO,
-+ 1, -num_bytes, msg);
-+
-+ return CDN_STARTED;
-+ }
-+
-+ if (state.txenable && !internal_mbox_tx_process().txend)
-+ return CDN_BSY;
-+
-+ if (state.rxenable && !internal_mbox_rx_process().rxend)
-+ return CDN_BSY;
-+
-+ ret = internal_test_rx_head(MB_MODULE_ID_GENERAL, GENERAL_TEST_ECHO);
-+
-+ if (ret != CDN_OK) {
-+ state.running = 0;
-+ return ret;
-+ }
-+
-+ state.running = 0;
-+
-+ memcpy(resp, state.rxbuffer + INTERNAL_CMD_HEAD_SIZE, num_bytes);
-+
-+ if (memcmp(msg, resp, num_bytes) != 0)
-+ return CDN_ERR;
-+
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_test_echo_ext_blocking(uint8_t const *msg,
-+ uint8_t *resp,
-+ uint16_t num_bytes,
-+ CDN_BUS_TYPE bus_type)
-+{
-+ internal_block_function(cdn_api_general_test_echo_ext
-+ (msg, resp, num_bytes, bus_type)
-+ );
-+}
-+
-+CDN_API_STATUS cdn_api_general_getcurversion(unsigned short *ver,
-+ unsigned short *verlib)
-+{
-+ unsigned int vh, vl, vlh, vll;
-+ if (cdn_apb_read(VER_L << 2, &vl))
-+ return CDN_ERR;
-+ if (cdn_apb_read(VER_H << 2, &vh))
-+ return CDN_ERR;
-+ if (cdn_apb_read(VER_LIB_L_ADDR << 2, &vll))
-+ return CDN_ERR;
-+ if (cdn_apb_read(VER_LIB_H_ADDR << 2, &vlh))
-+ return CDN_ERR;
-+ *ver = F_VER_MSB_RD(vh) << 8 | F_VER_LSB_RD(vl);
-+ *verlib = F_SW_LIB_VER_H_RD(vlh) << 8 | F_SW_LIB_VER_L_RD(vll);
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_get_event(uint32_t *events)
-+{
-+ uint32_t evt[4] = { 0 };
-+
-+ if (!events) {
-+ printf("events pointer is NULL!\n");
-+ return CDN_ERR;
-+ }
-+
-+ if (cdn_apb_read(SW_EVENTS0 << 2, &evt[0]) ||
-+ cdn_apb_read(SW_EVENTS1 << 2, &evt[1]) ||
-+ cdn_apb_read(SW_EVENTS2 << 2, &evt[2]) ||
-+ cdn_apb_read(SW_EVENTS3 << 2, &evt[3])) {
-+ printf("Failed to read events registers.\n");
-+ return CDN_ERR;
-+ }
-+
-+ *events = (evt[0] & 0xFF)
-+ | ((evt[1] & 0xFF) << 8)
-+ | ((evt[2] & 0xFF) << 16)
-+ | ((evt[3] & 0xFF) << 24);
-+
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_get_debug_reg_val(uint16_t *val)
-+{
-+ uint32_t dbg[2] = { 0 };
-+
-+ if (!val) {
-+ printf("val pointer is NULL!\n");
-+ return CDN_ERR;
-+ }
-+
-+ if (cdn_apb_read(SW_DEBUG_L << 2, &dbg[0]) ||
-+ cdn_apb_read(SW_DEBUG_H << 2, &dbg[1])) {
-+ printf("Failed to read debug registers.\n");
-+ return CDN_ERR;
-+ }
-+
-+ *val = (uint16_t) ((dbg[0] & 0xFF) | ((dbg[1] & 0xFF) << 8));
-+
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_checkalive(void)
-+{
-+ static unsigned int alive;
-+ unsigned int newalive;
-+ if (cdn_apb_read(KEEP_ALIVE << 2, &newalive))
-+ return CDN_ERR;
-+ if (alive == newalive)
-+ return CDN_BSY;
-+ alive = newalive;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_checkalive_blocking(void)
-+{
-+ internal_block_function(cdn_api_checkalive());
-+}
-+
-+CDN_API_STATUS cdn_api_maincontrol(unsigned char mode, unsigned char *resp)
-+{
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ state.rxenable = 1;
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL,
-+ GENERAL_MAIN_CONTROL, 1, 1, mode);
-+ return CDN_STARTED;
-+ }
-+ INTERNAL_PROCESS_MESSAGES;
-+ internal_opcode_ok_or_return(MB_MODULE_ID_GENERAL,
-+ GENERAL_MAIN_CONTROL_RESP);
-+ internal_readmsg(1, 1, resp);
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_maincontrol_blocking(unsigned char mode,
-+ unsigned char *resp)
-+{
-+ internal_block_function(cdn_api_maincontrol(mode, resp));
-+}
-+
-+CDN_API_STATUS cdn_api_apbconf(uint8_t dpcd_bus_sel, uint8_t dpcd_bus_lock,
-+ uint8_t hdcp_bus_sel, uint8_t hdcp_bus_lock,
-+ uint8_t capb_bus_sel, uint8_t capb_bus_lock,
-+ uint8_t *dpcd_resp, uint8_t *hdcp_resp,
-+ uint8_t *capb_resp)
-+{
-+ uint8_t resp;
-+ uint8_t set = 0;
-+
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ state.rxenable = 1;
-+
-+ set |= (dpcd_bus_sel)
-+ ? (1 << GENERAL_BUS_SETTINGS_DPCD_BUS_BIT)
-+ : 0;
-+ set |= (dpcd_bus_lock)
-+ ? (1 << GENERAL_BUS_SETTINGS_DPCD_BUS_LOCK_BIT)
-+ : 0;
-+ set |= (hdcp_bus_sel)
-+ ? (1 << GENERAL_BUS_SETTINGS_HDCP_BUS_BIT)
-+ : 0;
-+ set |= (hdcp_bus_lock)
-+ ? (1 << GENERAL_BUS_SETTINGS_HDCP_BUS_LOCK_BIT)
-+ : 0;
-+ set |= (capb_bus_sel)
-+ ? (1 << GENERAL_BUS_SETTINGS_CAPB_OWNER_BIT)
-+ : 0;
-+ set |= (capb_bus_lock)
-+ ? (1 << GENERAL_BUS_SETTINGS_CAPB_OWNER_LOCK_BIT)
-+ : 0;
-+
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL,
-+ GENERAL_BUS_SETTINGS, 1, 1, set);
-+
-+ return CDN_STARTED;
-+ }
-+
-+ INTERNAL_PROCESS_MESSAGES;
-+ internal_opcode_ok_or_return(MB_MODULE_ID_GENERAL,
-+ GENERAL_BUS_SETTINGS_RESP);
-+
-+ /* Read one one-byte response */
-+ internal_readmsg(1, 1, &resp);
-+
-+ *dpcd_resp =
-+ (resp & (1 << GENERAL_BUS_SETTINGS_RESP_DPCD_BUS_BIT)) ? 1 : 0;
-+ *hdcp_resp =
-+ (resp & (1 << GENERAL_BUS_SETTINGS_RESP_HDCP_BUS_BIT)) ? 1 : 0;
-+ *capb_resp =
-+ (resp & (1 << GENERAL_BUS_SETTINGS_RESP_CAPB_OWNER_BIT)) ? 1 : 0;
-+
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_apbconf_blocking(uint8_t dpcd_bus_sel,
-+ uint8_t dpcd_bus_lock,
-+ uint8_t hdcp_bus_sel,
-+ uint8_t hdcp_bus_lock,
-+ uint8_t capb_bus_sel,
-+ uint8_t capb_bus_lock,
-+ uint8_t *dpcd_resp,
-+ uint8_t *hdcp_resp,
-+ uint8_t *capb_resp)
-+{
-+ internal_block_function(cdn_api_apbconf(dpcd_bus_sel, dpcd_bus_lock,
-+ hdcp_bus_sel, hdcp_bus_lock,
-+ capb_bus_sel, capb_bus_lock,
-+ dpcd_resp, hdcp_resp,
-+ capb_resp));
-+}
-+
-+CDN_API_STATUS cdn_api_setclock(unsigned char mhz)
-+{
-+ return cdn_apb_write(SW_CLK_H << 2, mhz);
-+}
-+
-+CDN_API_STATUS cdn_api_general_read_register(unsigned int addr,
-+ GENERAL_READ_REGISTER_RESPONSE
-+ *resp)
-+{
-+ CDN_API_STATUS ret;
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL,
-+ GENERAL_READ_REGISTER, 1, 4, addr);
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ state.rxenable = 1;
-+ return CDN_STARTED;
-+ }
-+ INTERNAL_PROCESS_MESSAGES;
-+ ret = internal_test_rx_head(MB_MODULE_ID_GENERAL,
-+ GENERAL_READ_REGISTER_RESP);
-+ if (ret != CDN_OK)
-+ return ret;
-+ internal_readmsg(2, 4, &resp->addr, 4, &resp->val);
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS
-+cdn_api_general_read_register_blocking(unsigned int addr,
-+ GENERAL_READ_REGISTER_RESPONSE *resp)
-+{
-+ internal_block_function(cdn_api_general_read_register(addr, resp));
-+}
-+
-+CDN_API_STATUS cdn_api_general_write_register(unsigned int addr,
-+ unsigned int val)
-+{
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL,
-+ GENERAL_WRITE_REGISTER, 2, 4, addr, 4,
-+ val);
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ return CDN_STARTED;
-+ }
-+ INTERNAL_PROCESS_MESSAGES;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_write_register_blocking(unsigned int addr,
-+ unsigned int val)
-+{
-+ internal_block_function(cdn_api_general_write_register(addr, val));
-+}
-+
-+CDN_API_STATUS cdn_api_general_write_field(unsigned int addr,
-+ unsigned char startbit,
-+ unsigned char bitsno,
-+ unsigned int val)
-+{
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL, GENERAL_WRITE_FIELD,
-+ 4, 4, addr, 1, startbit, 1, bitsno, 4,
-+ val);
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ return CDN_STARTED;
-+ }
-+ INTERNAL_PROCESS_MESSAGES;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_write_field_blocking(unsigned int addr,
-+ unsigned char startbit,
-+ unsigned char bitsno,
-+ unsigned int val)
-+{
-+ internal_block_function(cdn_api_general_write_field
-+ (addr, startbit, bitsno, val));
-+}
-+
-+CDN_API_STATUS cdn_api_general_phy_test_access(uint8_t *resp)
-+{
-+ CDN_API_STATUS ret;
-+
-+ *resp = 0;
-+
-+ if (!state.running) {
-+ if (!internal_apb_available())
-+ return CDN_BSY;
-+
-+ internal_tx_mkfullmsg(MB_MODULE_ID_GENERAL, GENERAL_TEST_ACCESS,
-+ 0);
-+ state.bus_type = CDN_BUS_TYPE_APB;
-+ state.rxenable = 1;
-+
-+ return CDN_STARTED;
-+ }
-+
-+ INTERNAL_PROCESS_MESSAGES;
-+
-+ ret = internal_test_rx_head(MB_MODULE_ID_GENERAL, GENERAL_TEST_ACCESS);
-+
-+ if (ret != CDN_OK)
-+ return ret;
-+
-+ internal_readmsg(1, 1, resp);
-+
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS cdn_api_general_phy_test_access_blocking(uint8_t *resp)
-+{
-+ internal_block_function(cdn_api_general_phy_test_access(resp));
-+}
-diff --git a/drivers/video/imx/hdp/API_General.h b/drivers/video/imx/hdp/API_General.h
-new file mode 100644
-index 0000000000..44e16e8ad7
---- /dev/null
-+++ b/drivers/video/imx/hdp/API_General.h
-@@ -0,0 +1,302 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * API_General.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef API_GENERAL_H_
-+#define API_GENERAL_H_
-+
-+#ifndef __UBOOT__
-+#include <stdint.h>
-+#else
-+#include <common.h>
-+#endif
-+
-+#define GENERAL_TEST_ECHO_MAX_PAYLOAD 100
-+#define GENERAL_TEST_ECHO_MIN_PAYLOAD 1
-+
-+/**
-+ * \addtogroup GENERAL_API
-+ * \{
-+ */
-+/** status code returned by API calls */
-+typedef enum {
-+ /** operation succedded */
-+ CDN_OK = 0,
-+ /** CEC operation succedded */
-+ CDN_CEC_ERR_NONE = 0,
-+ /** mailbox is currently sending or receiving data */
-+ CDN_BSY,
-+ /** message set up and ready to be sent, no data sent yet */
-+ CDN_STARTED,
-+ /** error encountered while reading/writing APB */
-+ CDN_ERR,
-+ /** reply returned with bad opcode */
-+ CDN_BAD_OPCODE,
-+ /** reply returned with bad module */
-+ CDN_BAD_MODULE,
-+ /** reply not supported mode */
-+ CDN_ERROR_NOT_SUPPORTED,
-+ /** Invalid argument passed to CEC API function */
-+ CDN_CEC_ERR_INVALID_ARG,
-+ /**
-+ * TX Buffer for CEC Messages is full. This is applicable only
-+ * when TX Buffers for CEC Messages are implemented in the HW.
-+ */
-+ CDN_CEC_ERR_TX_BUFF_FULL,
-+ /** No Messages in the RX Buffers are present. */
-+ CDN_CEC_ERR_RX_BUFF_EMPTY,
-+ /** Timeout during TX operation */
-+ CDN_CEC_ERR_TX_TIMEOUT,
-+ /** Timeout during RX operation */
-+ CDN_CEC_ERR_RX_TIMEOUT,
-+ /** Data transmision fail. */
-+ CDN_CEC_ERR_TX_FAILED,
-+ /** Data reception fail. */
-+ CDN_CEC_ERR_RX_FAILED,
-+ /** Operation aborted. */
-+ CDN_CEC_ERR_ABORT,
-+ /** All Logical Addresses are in use. */
-+ CDN_CEC_ERR_ALL_LA_IN_USE,
-+} CDN_API_STATUS;
-+
-+typedef enum {
-+ CDN_BUS_TYPE_APB = 0,
-+ CDN_BUS_TYPE_SAPB = 1
-+} CDN_BUS_TYPE;
-+
-+/**
-+ * GENERAL_Read_Register response struct
-+ */
-+typedef struct {
-+ unsigned int addr;
-+ unsigned int val;
-+} GENERAL_READ_REGISTER_RESPONSE;
-+
-+/**
-+ * \brief set up API, must be called before any other API call
-+ */
-+void cdn_api_init(void);
-+
-+/**
-+ * \brief Loads firmware
-+ *
-+ * \param iMem - pointer to instruction memory
-+ * \param imemSize - size of instruction memory buffer
-+ * \param dMem - pointer to data memory
-+ * \param dmemSize - size of data memory buffer
-+ * \return 0 if success, 1 if apb error encountered, 2 if CPU
-+ * isn't alive after loading firmware
-+ *
-+ * This function does not require initialisation by #CDN_API_Init
-+ */
-+
-+CDN_API_STATUS cdn_api_loadfirmware(unsigned char *imem,
-+ int imemsize,
-+ unsigned char *dmem, int dmemsize);
-+/**
-+ * \brief debug echo command for APB
-+ * \param val - value to echo
-+ * \return status
-+ *
-+ * will return #CDN_ERROR if reply message doesn't match request
-+ */
-+CDN_API_STATUS cdn_api_general_test_echo(unsigned int val,
-+ CDN_BUS_TYPE bus_type);
-+
-+/**
-+ * \brief blocking version of #CDN_API_General_Test_Echo
-+ */
-+CDN_API_STATUS cdn_api_general_test_echo_blocking(unsigned int val,
-+ CDN_BUS_TYPE bus_type);
-+
-+/**
-+ * \brief Extended Echo test for mailbox.
-+ *
-+ * This test will send msg buffer to firmware's mailbox and
-+ * receive it back to the resp buffer. Received data will be
-+ * check against data sent and status will be returned as well
-+ * as received data.
-+ *
-+ * \param msg - Pointer to a buffer to send.
-+ * \param resp - Pointer to buffer for receiving msg payload back.
-+ * \param num_bytes - Number of bytes to send and receive.
-+ * \param bus_type Bus type.
-+ * \return status
-+ *
-+ * will return #CDN_ERROR if reply message doesn't match request or if
-+ * arguments are invalid.
-+ */
-+CDN_API_STATUS cdn_api_general_test_echo_ext(uint8_t const *msg, uint8_t *resp,
-+ uint16_t num_bytes,
-+ CDN_BUS_TYPE bus_type);
-+
-+/**
-+ * \brief blocking version of #CDN_API_General_Test_Echo_Ext
-+ */
-+CDN_API_STATUS cdn_api_general_test_echo_ext_blocking(uint8_t const *msg,
-+ uint8_t *resp,
-+ uint16_t num_bytes,
-+ CDN_BUS_TYPE bus_type);
-+
-+/**
-+ * \brief get current version
-+ * \param [out] ver - fw version
-+ * \param [out] libver - lib version
-+ * \return status
-+ *
-+ * this fucntion does not require #CDN_API_Init
-+ */
-+CDN_API_STATUS cdn_api_general_getcurversion(unsigned short *ver,
-+ unsigned short *verlib);
-+
-+/**
-+ * \brief read event value
-+ * \param [out] event - pointer to store 32-bit events value
-+ * \return status
-+ *
-+ * this function does not require #CDN_API_Init
-+ */
-+CDN_API_STATUS cdn_api_get_event(uint32_t *events);
-+
-+/**
-+ * \brief read debug register value
-+ * \param [out] val - pointer to store 16-bit debug reg value
-+ * \return status
-+ *
-+ * this function does not require #CDN_API_Init
-+ */
-+CDN_API_STATUS cdn_api_get_debug_reg_val(uint16_t *val);
-+
-+/**
-+ * \brief check if KEEP_ALIVE register changed
-+ * \return #CDN_BSY if KEEP_ALIVE not changed, #CDN_OK if changed and #CDN_ERR
-+ * if error occured while reading
-+ */
-+CDN_API_STATUS cdn_api_checkalive(void);
-+
-+/**
-+ * \breif blocking version of #CDN_API_CheckAlive
-+ * blocks untill KEEP_ALIVE register changes or error occurs while reading
-+ */
-+CDN_API_STATUS cdn_api_checkalive_blocking(void);
-+
-+/**
-+ * \brief set cpu to standby or active
-+ * \param [in] state - 1 for active, 0 for standby
-+ * \return status
-+ */
-+CDN_API_STATUS cdn_api_maincontrol(unsigned char mode, unsigned char *resp);
-+
-+/**
-+ * \breif blocking version of #CDN_API_MainControl
-+ */
-+CDN_API_STATUS cdn_api_maincontrol_blocking(unsigned char mode,
-+ unsigned char *resp);
-+
-+/**
-+ * \brief settings for APB
-+ *
-+ * Sends GENERAL_APB_CONF Command via regular Mailbox.
-+ * @param dpcd_bus_sel Set DPCD to use selected bus (0 for APB or 1 for SAPB)
-+ * @param dpcd_bus_lock Lock bus type. Aftern that bus type cannot be changed
-+ * by using this function.
-+ * @param hdcp_bus_sel Same meaning as for DPCD but for HDCP.
-+ * @param hdcp_bus_lock Same meaning as for DPCD but for HDCP.
-+ * @param capb_bus_sel Same meaning as for DPCD but for Cipher APB.
-+ * @param capb_bus_lock Same meaning as for DPCD but for Cipher APB.
-+ * @param dpcd_resp [out] Status of the operation.
-+ * If set to zero then DPCD bus type was successfuly changed.
-+ * If not then error occurred, most likely due to locked DPCD bus.
-+ * @param hdcp_resp [out] Same as for DPCD but for HDCP.
-+ * @param capb_resp [out] Same as for DPCD but for Cipher APB.
-+ *
-+ * \return status
-+ */
-+CDN_API_STATUS cdn_api_apbconf(uint8_t dpcd_bus_sel, uint8_t dpcd_bus_lock,
-+ uint8_t hdcp_bus_sel, uint8_t hdcp_bus_lock,
-+ uint8_t capb_bus_sel, uint8_t capb_bus_lock,
-+ uint8_t *dpcd_resp, uint8_t *hdcp_resp,
-+ uint8_t *capb_resp);
-+
-+/**
-+ * blocking version of #CDN_API_MainControl
-+ */
-+CDN_API_STATUS cdn_api_apbconf_blocking(uint8_t dpcd_bus_sel,
-+ uint8_t dpcd_bus_lock,
-+ uint8_t hdcp_bus_sel,
-+ uint8_t hdcp_bus_lock,
-+ uint8_t capb_bus_sel,
-+ uint8_t capb_bus_lock,
-+ uint8_t *dpcd_resp,
-+ uint8_t *hdcp_resp,
-+ uint8_t *capb_resp);
-+
-+/**
-+ * \brief set the xtensa clk, write this api before turn on the cpu
-+ */
-+CDN_API_STATUS cdn_api_setclock(unsigned char mhz);
-+
-+CDN_API_STATUS cdn_api_general_read_register(unsigned int addr,
-+ GENERAL_READ_REGISTER_RESPONSE
-+ *resp);
-+CDN_API_STATUS
-+cdn_api_general_read_register_blocking(unsigned int addr,
-+ GENERAL_READ_REGISTER_RESPONSE *resp);
-+CDN_API_STATUS cdn_api_general_write_register(unsigned int addr,
-+ unsigned int val);
-+CDN_API_STATUS cdn_api_general_write_register_blocking(unsigned int addr,
-+ unsigned int val);
-+CDN_API_STATUS cdn_api_general_write_field(unsigned int addr,
-+ unsigned char startbit,
-+ unsigned char bitsno,
-+ unsigned int val);
-+CDN_API_STATUS cdn_api_general_write_field_blocking(unsigned int addr,
-+ unsigned char startbit,
-+ unsigned char bitsno,
-+ unsigned int val);
-+CDN_API_STATUS cdn_api_general_phy_test_access(uint8_t *resp);
-+CDN_API_STATUS cdn_api_general_phy_test_access_blocking(uint8_t *resp);
-+
-+#endif
-diff --git a/drivers/video/imx/hdp/Makefile b/drivers/video/imx/hdp/Makefile
-new file mode 100644
-index 0000000000..13dcefdee5
---- /dev/null
-+++ b/drivers/video/imx/hdp/Makefile
-@@ -0,0 +1 @@
-+obj-y += API_General.o util.o test_base_sw.o
-diff --git a/drivers/video/imx/hdp/address.h b/drivers/video/imx/hdp/address.h
-new file mode 100644
-index 0000000000..327e7a90e4
---- /dev/null
-+++ b/drivers/video/imx/hdp/address.h
-@@ -0,0 +1,109 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * address.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef ADDRESS_H_
-+# define ADDRESS_H_
-+
-+# define ADDR_IMEM 0x10000
-+# define ADDR_DMEM 0x20000
-+# define ADDR_CIPHER 0x60000
-+# define BASE_CIPHER 0x600
-+# define ADDR_APB_CFG 0x00000
-+# define BASE_APB_CFG 0x000
-+# define ADDR_SOURCE_AIF_DECODER 0x30000
-+# define BASE_SOURCE_AIF_DECODER 0x300
-+# define ADDR_SOURCE_AIF_SMPL2PCKT 0x30080
-+# define BASE_SOURCE_AIF_SMPL2PCKT 0x300
-+# define ADDR_AIF_ENCODER 0x30000
-+# define BASE_AIF_ENCODER 0x300
-+# define ADDR_SOURCE_PIF 0x30800
-+# define BASE_SOURCE_PIF 0x308
-+# define ADDR_SINK_PIF 0x30800
-+# define BASE_SINK_PIF 0x308
-+# define ADDR_APB_CFG 0x00000
-+# define BASE_APB_CFG 0x000
-+# define ADDR_SOURCE_CSC 0x40000
-+# define BASE_SOURCE_CSC 0x400
-+# define ADDR_UCPU_CFG 0x00000
-+# define BASE_UCPU_CFG 0x000
-+# define ADDR_SOURCE_CAR 0x00900
-+# define BASE_SOURCE_CAR 0x009
-+# define ADDR_SINK_CAR 0x00900
-+# define BASE_SINK_CAR 0x009
-+# define ADDR_CLOCK_METERS 0x00A00
-+# define BASE_CLOCK_METERS 0x00A
-+# define ADDR_SOURCE_VIF 0x00b00
-+# define BASE_SOURCE_VIF 0x00b
-+# define ADDR_SINK_MHL_HD 0x01000
-+# define ADDR_SINK_VIDEO_HD 0x01800
-+# define BASE_SINK_MHL_HD 0x010
-+# define ADDR_SINK_CORE 0x07800
-+# define BASE_SINK_CORE 0x078
-+# define ADDR_DPTX_PHY 0x02000
-+# define BASE_DPTX_PHY 0x020
-+# define ADDR_DPTX_HPD 0x02100
-+# define BASE_DPTX_HPD 0x021
-+# define ADDR_DPTX_FRAMER 0x02200
-+# define BASE_DPTX_FRAMER 0x022
-+# define ADDR_DPTX_STREAM 0x02200
-+# define BASE_DPTX_STREAM 0x022
-+# define ADDR_DPTX_GLBL 0x02300
-+# define BASE_DPTX_GLBL 0x023
-+# define ADDR_DPTX_HDCP 0x02400
-+# define BASE_DPTX_HDCP 0x024
-+# define ADDR_DP_AUX 0x02800
-+# define BASE_DP_AUX 0x028
-+# define ADDR_CRYPTO 0x05800
-+# define BASE_CRYPTO 0x058
-+# define ADDR_CIPHER 0x60000
-+# define BASE_CIPHER 0x600
-+# define ADDR_SOURCE_MHL_HD 0x01000
-+
-+# define ADDR_AFE (0x20000 * 4)
-+# define ADDR_SOURCD_PHY (0x800)
-+
-+#endif
-+
-diff --git a/drivers/video/imx/hdp/apb_cfg.h b/drivers/video/imx/hdp/apb_cfg.h
-new file mode 100644
-index 0000000000..cdcbd76c01
---- /dev/null
-+++ b/drivers/video/imx/hdp/apb_cfg.h
-@@ -0,0 +1,185 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * This file was auto-generated. Do not edit it manually.
-+ *
-+ ******************************************************************************
-+ *
-+ * apb_cfg.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef APB_CFG_H_
-+#define APB_CFG_H_
-+
-+/* register APB_CTRL */
-+#define APB_CTRL 0
-+#define F_APB_XT_RESET(x) (((x) & ((1 << 1) - 1)) << 0)
-+#define F_APB_XT_RESET_RD(x) (((x) & (((1 << 1) - 1) << 0)) >> 0)
-+#define F_APB_DRAM_PATH(x) (((x) & ((1 << 1) - 1)) << 1)
-+#define F_APB_DRAM_PATH_RD(x) (((x) & (((1 << 1) - 1) << 1)) >> 1)
-+#define F_APB_IRAM_PATH(x) (((x) & ((1 << 1) - 1)) << 2)
-+#define F_APB_IRAM_PATH_RD(x) (((x) & (((1 << 1) - 1) << 2)) >> 2)
-+
-+/* register XT_INT_CTRL */
-+#define XT_INT_CTRL 1
-+#define F_XT_INT_POLARITY(x) (((x) & ((1 << 2) - 1)) << 0)
-+#define F_XT_INT_POLARITY_RD(x) (((x) & (((1 << 2) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX_FULL_ADDR */
-+#define MAILBOX_FULL_ADDR 2
-+#define F_MAILBOX_FULL(x) (((x) & ((1 << 1) - 1)) << 0)
-+#define F_MAILBOX_FULL_RD(x) (((x) & (((1 << 1) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX_EMPTY_ADDR */
-+#define MAILBOX_EMPTY_ADDR 3
-+#define F_MAILBOX_EMPTY(x) (((x) & ((1 << 1) - 1)) << 0)
-+#define F_MAILBOX_EMPTY_RD(x) (((x) & (((1 << 1) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX0_WR_DATA */
-+#define MAILBOX0_WR_DATA 4
-+#define F_MAILBOX0_WR_DATA(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_MAILBOX0_WR_DATA_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX0_RD_DATA */
-+#define MAILBOX0_RD_DATA 5
-+#define F_MAILBOX0_RD_DATA(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_MAILBOX0_RD_DATA_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register KEEP_ALIVE */
-+#define KEEP_ALIVE 6
-+#define F_KEEP_ALIVE_CNT(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_KEEP_ALIVE_CNT_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register VER_L */
-+#define VER_L 7
-+#define F_VER_LSB(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_VER_LSB_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register VER_H */
-+#define VER_H 8
-+#define F_VER_MSB(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_VER_MSB_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register VER_LIB_L_ADDR */
-+#define VER_LIB_L_ADDR 9
-+#define F_SW_LIB_VER_L(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_LIB_VER_L_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register VER_LIB_H_ADDR */
-+#define VER_LIB_H_ADDR 10
-+#define F_SW_LIB_VER_H(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_LIB_VER_H_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_DEBUG_L */
-+#define SW_DEBUG_L 11
-+#define F_SW_DEBUG_7_0(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_DEBUG_7_0_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_DEBUG_H */
-+#define SW_DEBUG_H 12
-+#define F_SW_DEBUG_15_8(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_DEBUG_15_8_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX_INT_MASK */
-+#define MAILBOX_INT_MASK 13
-+#define F_MAILBOX_INT_MASK(x) (((x) & ((1 << 2) - 1)) << 0)
-+#define F_MAILBOX_INT_MASK_RD(x) (((x) & (((1 << 2) - 1) << 0)) >> 0)
-+
-+/* register MAILBOX_INT_STATUS */
-+#define MAILBOX_INT_STATUS 14
-+#define F_MAILBOX_INT_STATUS(x) (((x) & ((1 << 2) - 1)) << 0)
-+#define F_MAILBOX_INT_STATUS_RD(x) (((x) & (((1 << 2) - 1) << 0)) >> 0)
-+
-+/* register SW_CLK_L */
-+#define SW_CLK_L 15
-+#define F_SW_CLOCK_VAL_L(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_CLOCK_VAL_L_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_CLK_H */
-+#define SW_CLK_H 16
-+#define F_SW_CLOCK_VAL_H(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_CLOCK_VAL_H_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_EVENTS0 */
-+#define SW_EVENTS0 17
-+#define F_SW_EVENTS7_0(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_EVENTS7_0_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_EVENTS1 */
-+#define SW_EVENTS1 18
-+#define F_SW_EVENTS15_8(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_EVENTS15_8_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_EVENTS2 */
-+#define SW_EVENTS2 19
-+#define F_SW_EVENTS23_16(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_EVENTS23_16_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register SW_EVENTS3 */
-+#define SW_EVENTS3 20
-+#define F_SW_EVENTS31_24(x) (((x) & ((1 << 8) - 1)) << 0)
-+#define F_SW_EVENTS31_24_RD(x) (((x) & (((1 << 8) - 1) << 0)) >> 0)
-+
-+/* register XT_OCD_CTRL */
-+#define XT_OCD_CTRL 24
-+#define F_XT_DRESET(x) (((x) & ((1 << 1) - 1)) << 0)
-+#define F_XT_DRESET_RD(x) (((x) & (((1 << 1) - 1) << 0)) >> 0)
-+#define F_XT_OCDHALTONRESET(x) (((x) & ((1 << 1) - 1)) << 1)
-+#define F_XT_OCDHALTONRESET_RD(x) (((x) & (((1 << 1) - 1) << 1)) >> 1)
-+
-+/* register XT_OCD_CTRL_RO */
-+#define XT_OCD_CTRL_RO 25
-+#define F_XT_XOCDMODE(x) (((x) & ((1 << 1) - 1)) << 0)
-+#define F_XT_XOCDMODE_RD(x) (((x) & (((1 << 1) - 1) << 0)) >> 0)
-+
-+/* register APB_INT_MASK */
-+#define APB_INT_MASK 27
-+#define F_APB_INTR_MASK(x) (((x) & ((1 << 3) - 1)) << 0)
-+#define F_APB_INTR_MASK_RD(x) (((x) & (((1 << 3) - 1) << 0)) >> 0)
-+
-+/* register APB_STATUS_MASK */
-+#define APB_STATUS_MASK 28
-+#define F_APB_INTR_STATUS(x) (((x) & ((1 << 3) - 1)) << 0)
-+#define F_APB_INTR_STATUS_RD(x) (((x) & (((1 << 3) - 1) << 0)) >> 0)
-+
-+#endif /*APB_CFG*/
-diff --git a/drivers/video/imx/hdp/externs.h b/drivers/video/imx/hdp/externs.h
-new file mode 100644
-index 0000000000..055f6ea2e8
---- /dev/null
-+++ b/drivers/video/imx/hdp/externs.h
-@@ -0,0 +1,81 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * externs.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef EXTERNS_H_
-+#define EXTERNS_H_
-+
-+#ifndef __UBOOT__
-+#include <stdint.h>
-+
-+#else
-+#include <common.h>
-+#endif
-+/**
-+ * \addtogroup UTILS
-+ * \{
-+ */
-+/**
-+ * \brief read from apb
-+ * \param addr - address to read
-+ * \param value - pointer to store value
-+ * \return non-zero value if error
-+ */
-+/*extern int cdn_bus_read(unsigned int addr, unsigned int* value);*/
-+
-+/**
-+ * \brief write to apb
-+ * \param addr - address to write
-+ * \param value - value to write
-+ * \return non-zero if error
-+ */
-+/*extern int cdn_bus_write(unsigned int addr, unsigned int value);*/
-+
-+uint32_t cdn_apb_read(uint32_t addr, uint32_t *value);
-+uint32_t cdn_sapb_read(uint32_t addr, uint32_t *value);
-+uint32_t cdn_apb_write(uint32_t addr, uint32_t value);
-+uint32_t cdn_sapb_write(uint32_t addr, uint32_t value);
-+#endif
-+
-diff --git a/drivers/video/imx/hdp/general_handler.h b/drivers/video/imx/hdp/general_handler.h
-new file mode 100644
-index 0000000000..3656ef8848
---- /dev/null
-+++ b/drivers/video/imx/hdp/general_handler.h
-@@ -0,0 +1,162 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * general_handler.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef GENERAL_HANDLER_H
-+#define GENERAL_HANDLER_H
-+
-+/**
-+ * \file
-+ * \brief general handler, checks available messages, receives
-+ * it from mailbox, handles requests and sends response
-+ * to the host
-+ */
-+#define DP_TX_MAIL_HANDLER_REQUEST_BUFFER_LEN 256
-+
-+/**
-+ * \brief opcode defines host->controller
-+ */
-+#define GENERAL_MAIN_CONTROL 0x01
-+#define GENERAL_TEST_ECHO 0x02
-+#define GENERAL_BUS_SETTINGS 0x03
-+#define GENERAL_TEST_ACCESS 0x04
-+
-+#define GENERAL_WRITE_REGISTER 0x05
-+#define GENERAL_WRITE_FIELD 0x06
-+#define GENERAL_READ_REGISTER 0x07
-+
-+#define GENERAL_TEST_TRNG_SIMPLE 0xF0
-+
-+#define GENERAL_MAIN_CONTROL_SET_ACTIVE_BIT 0
-+#define GENERAL_MAIN_CONTROL_SET_ALT_CIPHER_ADDR 1
-+#define GENERAL_MAIN_CONTROL_SET_FAST_HDCP_DELAYS 2
-+
-+#define GENERAL_BUS_SETTINGS_DPCD_BUS_BIT 0
-+#define GENERAL_BUS_SETTINGS_DPCD_BUS_LOCK_BIT 1
-+#define GENERAL_BUS_SETTINGS_HDCP_BUS_BIT 2
-+#define GENERAL_BUS_SETTINGS_HDCP_BUS_LOCK_BIT 3
-+#define GENERAL_BUS_SETTINGS_CAPB_OWNER_BIT 4
-+#define GENERAL_BUS_SETTINGS_CAPB_OWNER_LOCK_BIT 5
-+
-+/**
-+ * \brief opcode defines controller->host
-+ */
-+
-+#define GENERAL_MAIN_CONTROL_RESP 0x01
-+#define GENERAL_TEST_ECHO_RESP 0x02
-+#define GENERAL_BUS_SETTINGS_RESP 0x03
-+
-+#define GENERAL_READ_REGISTER_RESP 0x07
-+
-+#define GENERAL_BUS_SETTINGS_RESP_DPCD_BUS_BIT 0
-+#define GENERAL_BUS_SETTINGS_RESP_HDCP_BUS_BIT 1
-+#define GENERAL_BUS_SETTINGS_RESP_CAPB_OWNER_BIT 2
-+
-+#define GENERAL_BUS_SETTINGS_RESP_SUCCESS 0
-+#define GENERAL_BUS_SETTINGS_RESP_LOCK_ERROR 1
-+
-+typedef struct {
-+ unsigned char dpcd_locked;
-+ unsigned char hdcp_locked;
-+ unsigned char capb_locked;
-+ unsigned char active_mode;
-+} S_GENERAL_HANDLER_DATA;
-+
-+/**
-+ * \brief event id sent to the host
-+ */
-+typedef enum {
-+ EVENT_ID_DPTX_HPD = 0,
-+ EVENT_ID_HDMI_TX_HPD = 0,
-+ EVENT_ID_HDMI_RX_5V = 0,
-+
-+ EVENT_ID_DPTX_TRAINING = 1,
-+ EVENT_ID_HDMI_RX_SCDC_CHANGE = 1,
-+
-+ EVENT_ID_RESERVE0 = 2,
-+ EVENT_ID_RESERVE1 = 3,
-+
-+ EVENT_ID_HDCPTX_STATUS = 4,
-+ EVENT_ID_HDCPRX_STATUS = 4,
-+
-+ EVENT_ID_HDCPTX_IS_KM_STORED = 5,
-+ EVENT_ID_HDCPTX_STORE_KM = 6,
-+ EVENT_ID_HDCPTX_IS_RECEIVER_ID_VALID = 7,
-+ EVENT_ID_HDMITX_READ_REQUEST = 8,
-+} EVENT_ID;
-+
-+/**
-+ * \brief convert bank id and register number to address and write to ptr
-+ */
-+
-+#define select_reg_old(bank, reg_no, ptr) \
-+do { \
-+ ptr = 0; \
-+ if ((bank == 0x22) || (bank == 0x20) || (bank == 0x0b) || \
-+ (bank == 0x09) || (bank == 0x0A)) \
-+ ptr = (unsigned int *)(bank << 8 | reg_no); \
-+} while (0)
-+
-+#define select_reg(bank, reg_no, ptr) \
-+ ptr = (unsigned int *)(bank << 8 | reg_no)
-+
-+#define select_reg4(pmsb, p2, p3, plsb, ptr) \
-+ ptr = (unsigned int *)((pmsb << 24) | (p2 << 16) | \
-+ (p3 << 8) | (plsb << 0))
-+
-+
-+#define EVENTS_DPTX_CNT 2
-+#define EVENTS_HDCPTX_CNT 4
-+
-+void general_handler_set_active_mode(void);
-+void general_handler_set_standby_mode(void);
-+
-+/**
-+ * \brief request sending en event to the host
-+ * \param [in] eventId
-+ * \param [in] eventCode
-+ */
-+
-+#endif /* GENERAL_HANDLER_H */
-diff --git a/drivers/video/imx/hdp/opcodes.h b/drivers/video/imx/hdp/opcodes.h
-new file mode 100644
-index 0000000000..e0e7d93412
---- /dev/null
-+++ b/drivers/video/imx/hdp/opcodes.h
-@@ -0,0 +1,115 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * This file was auto-generated. Do not edit it manually.
-+ *
-+ ******************************************************************************
-+ *
-+ * opcodes.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef OPCODES_H_
-+# define OPCODES_H_
-+
-+# define DP_TX_MAIL_HANDLER_H
-+# define DP_TX_MAIL_HANDLER_REQUEST_BUFFER_LEN 256
-+# define DPTX_SET_POWER_MNG 0x00
-+# define DPTX_SET_HOST_CAPABILITIES 0x01
-+# define DPTX_GET_EDID 0x02
-+# define DPTX_READ_DPCD 0x03
-+# define DPTX_WRITE_DPCD 0x04
-+# define DPTX_ENABLE_EVENT 0x05
-+# define DPTX_WRITE_REGISTER 0x06
-+# define DPTX_READ_REGISTER 0x07
-+# define DPTX_WRITE_FIELD 0x08
-+# define DPTX_TRAINING_CONTROL 0x09
-+# define DPTX_READ_EVENT 0x0A
-+# define DPTX_READ_LINK_STAT 0x0B
-+# define DPTX_SET_VIDEO 0x0C
-+# define DPTX_SET_AUDIO 0x0D
-+# define DPTX_GET_LAST_AUX_STAUS 0x0E
-+# define DPTX_SET_LINK_BREAK_POINT 0x0F
-+# define DPTX_FORCE_LANES 0x10
-+# define DPTX_HPD_STATE 0x11
-+# define DPTX_DBG_SET 0xF0
-+# define DP_TX_OPCODE_READ_I2C_REQUEST 0xA5
-+# define DP_TX_OPCODE_WRITE_I2C_REQUEST 0xA6
-+# define DP_TX_OPCODE_MESSAGE_FILTER 0xA7
-+# define DPTX_EDID_RESP 0x02
-+# define DPTX_DPCD_READ_RESP 0x03
-+# define DPTX_DPCD_WRITE_RESP 0x04
-+# define DPTX_READ_EVENT_RESP 0x0A
-+# define DPTX_READ_REGISTER_RESP 0x07
-+# define DP_TX_OPCODE_MESSAGE 0x10
-+# define DP_TX_OPCODE_READ_I2C_RESPONSE 0x50
-+# define DP_TX_OPCODE_WRITE_I2C_RESPONSE 0x60
-+# define DP_TX_OPCODE_LOOPBACK_TEST 0xFE
-+# define DP_TX_OPCODE_BIT_TEST 0xFF
-+# define DP_TX_EVENT_ENABLE_HPD_BIT 0x00
-+# define DP_TX_EVENT_ENABLE_TRAINING_BIT 0x01
-+# define DP_TX_EVENT_CODE_HPD_HIGH 0x01
-+# define DP_TX_EVENT_CODE_HPD_LOW 0x02
-+# define DP_TX_EVENT_CODE_HPD_PULSE 0x04
-+# define DP_TX_EVENT_CODE_HPD_STATE_HIGH 0x08
-+# define DP_TX_EVENT_CODE_HPD_STATE_LOW 0x00
-+# define DP_TX_EVENT_CODE_TRAINING_FULL_STARTED 0x01
-+# define DP_TX_EVENT_CODE_TRAINING_FAST_STARTED 0x02
-+# define DP_TX_EVENT_CODE_TRAINING_FINISHED_CR 0x04
-+# define DP_TX_EVENT_CODE_TRAINING_FINISHED_EQ 0x08
-+# define DP_TX_EVENT_CODE_TRAINING_FINISHED_FAST 0x10
-+# define DP_TX_EVENT_CODE_TRAINING_FAILED_CR 0x20
-+# define DP_TX_EVENT_CODE_TRAINING_FAILED_EQ 0x40
-+# define DP_TX_EVENT_CODE_TRAINING_FAILED_FAST 0x80
-+# define MB_MODULE_ID_DP_TX 0x01
-+# define MB_MODULE_ID_DP_RX 0x02
-+# define MB_MODULE_ID_HDMI_TX 0x03
-+# define MB_MODULE_ID_HDMI_RX 0x04
-+# define MB_MODULE_ID_MHL_TX 0x05
-+# define MB_MODULE_ID_MHL_RX 0x06
-+# define MB_MODULE_ID_HDCP_TX 0x07
-+# define MB_MODULE_ID_HDCP_RX 0x08
-+# define MB_MODULE_ID_HDCP_GENERAL 0x09
-+# define MB_MODULE_ID_GENERAL 0x0A
-+# define MB_MODULE_ID 1
-+
-+#endif
-diff --git a/drivers/video/imx/hdp/test_base_sw.c b/drivers/video/imx/hdp/test_base_sw.c
-new file mode 100644
-index 0000000000..7618323cd8
---- /dev/null
-+++ b/drivers/video/imx/hdp/test_base_sw.c
-@@ -0,0 +1,181 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * test_base_sw.c
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef __UBOOT__
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdio.h>
-+#else
-+#include <common.h>
-+#include <asm/io.h>
-+
-+#ifdef CONFIG_ARCH_IMX8M
-+/* mscale */
-+#define HDMI_BASE 0x32c00000
-+#define HDMI_PHY_BASE 0x32c80000
-+#define HDMI_SEC_BASE 0x32e40000
-+#endif
-+#ifdef CONFIG_ARCH_IMX8
-+/* QM */
-+#define HDMI_BASE 0x56268000
-+#define HDMI_SEC_BASE 0x56269000
-+#define HDMI_OFFSET_ADDR 0x56261008
-+#define HDMI_SEC_OFFSET_ADDR 0x5626100c
-+#endif
-+
-+#endif
-+
-+#ifdef CONFIG_ARCH_IMX8M
-+int cdn_apb_read(unsigned int addr, unsigned int *value)
-+{
-+ unsigned int temp;
-+ uint64_t tmp_addr = addr + HDMI_BASE;
-+ temp = __raw_readl(tmp_addr);
-+ *value = temp;
-+ return 0;
-+}
-+
-+int cdn_apb_write(unsigned int addr, unsigned int value)
-+{
-+ uint64_t tmp_addr = addr + HDMI_BASE;
-+
-+ __raw_writel(value, tmp_addr);
-+ return 0;
-+}
-+
-+int cdn_sapb_read(unsigned int addr, unsigned int *value)
-+{
-+ unsigned int temp;
-+ uint64_t tmp_addr = addr + HDMI_SEC_BASE;
-+ temp = __raw_readl(tmp_addr);
-+ *value = temp;
-+ return 0;
-+}
-+
-+int cdn_sapb_write(unsigned int addr, unsigned int value)
-+{
-+ uint64_t tmp_addr = addr + HDMI_SEC_BASE;
-+ __raw_writel(value, tmp_addr);
-+ return 0;
-+}
-+
-+void cdn_sleep(uint32_t ms)
-+{
-+ mdelay(ms);
-+}
-+
-+void cdn_usleep(uint32_t us)
-+{
-+ udelay(us);
-+}
-+#endif
-+#ifdef CONFIG_ARCH_IMX8
-+int cdn_apb_read(unsigned int addr, unsigned int *value)
-+{
-+ unsigned int temp;
-+ uint64_t tmp_addr = (addr & 0xfff) + HDMI_BASE;
-+
-+ /* printf("%s():%d addr = 0x%08x, tmp_addr = 0x%08x, offset = 0x%08x\n",
-+ __func__, __LINE__, addr, (unsigned int)tmp_addr, addr>>12); */
-+
-+ __raw_writel(addr >> 12, HDMI_OFFSET_ADDR);
-+
-+ temp = __raw_readl(tmp_addr);
-+ /* printf("%s():%d temp = 0x%08x\n", __func__, __LINE__, temp ); */
-+
-+ *value = temp;
-+ return 0;
-+}
-+
-+int cdn_apb_write(unsigned int addr, unsigned int value)
-+{
-+ uint64_t tmp_addr = (addr & 0xfff) + HDMI_BASE;
-+
-+ /*printf("%s():%d addr=0x%08x, taddr=0x%08x, off=0x%08x, val=0x%08x\n",
-+ __func__, __LINE__, addr, (unsigned int)tmp_addr,
-+ addr>>12, value);*/
-+
-+ __raw_writel(addr >> 12, HDMI_OFFSET_ADDR);
-+
-+ /* printf("%s():%d\n", __func__, __LINE__); */
-+ __raw_writel(value, tmp_addr);
-+
-+ return 0;
-+}
-+
-+int cdn_sapb_read(unsigned int addr, unsigned int *value)
-+{
-+ unsigned int temp;
-+ uint64_t tmp_addr = (addr & 0xfff) + HDMI_SEC_BASE;
-+
-+ __raw_writel(addr >> 12, HDMI_SEC_OFFSET_ADDR);
-+
-+ temp = __raw_readl(tmp_addr);
-+ *value = temp;
-+ return 0;
-+}
-+
-+int cdn_sapb_write(unsigned int addr, unsigned int value)
-+{
-+ uint64_t tmp_addr = (addr & 0xfff) + HDMI_SEC_BASE;
-+
-+ __raw_writel(addr >> 12, HDMI_SEC_OFFSET_ADDR);
-+ __raw_writel(value, tmp_addr);
-+
-+ return 0;
-+}
-+
-+void cdn_sleep(uint32_t ms)
-+{
-+ mdelay(ms);
-+}
-+
-+void cdn_usleep(uint32_t us)
-+{
-+ udelay(us);
-+}
-+#endif
-+
-diff --git a/drivers/video/imx/hdp/util.c b/drivers/video/imx/hdp/util.c
-new file mode 100644
-index 0000000000..727946a796
---- /dev/null
-+++ b/drivers/video/imx/hdp/util.c
-@@ -0,0 +1,329 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * util.c
-+ *
-+ ******************************************************************************
-+ */
-+
-+#include "util.h"
-+#include "API_General.h"
-+#include "externs.h"
-+#ifndef __UBOOT__
-+#include <string.h>
-+#endif
-+#include "apb_cfg.h"
-+#include "opcodes.h"
-+#ifndef __UBOOT__
-+#include <stdio.h>
-+
-+#endif
-+state_struct state;
-+
-+int cdn_bus_read(unsigned int addr, unsigned int *value)
-+{
-+ return state.bus_type ?
-+ cdn_sapb_read(addr, value) : cdn_apb_read(addr, value);
-+}
-+
-+int cdn_bus_write(unsigned int addr, unsigned int value)
-+{
-+ return state.bus_type ?
-+ cdn_sapb_write(addr, value) : cdn_apb_write(addr, value);
-+}
-+
-+void internal_itobe(int val, volatile unsigned char *dest, int bytes)
-+{
-+ int i;
-+ for (i = bytes - 1; i >= 0; --i) {
-+ dest[i] = (unsigned char)val;
-+ val >>= 8;
-+ }
-+}
-+
-+uint32_t internal_betoi(volatile uint8_t const *src, uint8_t bytes)
-+{
-+ uint32_t ret = 0;
-+ int i;
-+
-+ if (bytes > sizeof(ret)) {
-+ printf("Warning. Read request for payload larger then supported.\n");
-+ bytes = sizeof(ret);
-+ }
-+
-+ for (i = 0; i < bytes; ++i) {
-+ ret <<= 8;
-+ ret |= (unsigned int)src[i];
-+ }
-+
-+ return ret;
-+}
-+
-+unsigned int internal_mkmsg(volatile unsigned char *dest, int valno, ...)
-+{
-+ va_list vl;
-+ unsigned int len = 0;
-+ va_start(vl, valno);
-+ len = internal_vmkmsg(dest, valno, vl);
-+ va_end(vl);
-+ return len;
-+}
-+
-+unsigned int internal_vmkmsg(volatile unsigned char *dest, int valno,
-+ va_list vl)
-+{
-+ unsigned int len = 0;
-+ int i;
-+ for (i = 0; i < valno; ++i) {
-+ int size = va_arg(vl, int);
-+ if (size > 0) {
-+ internal_itobe(va_arg(vl, int), dest, size);
-+ dest += size;
-+ len += size;
-+ } else {
-+ memcpy((void *)dest, va_arg(vl, void *), -size);
-+ dest -= size;
-+ len -= size;
-+ }
-+ }
-+ return len;
-+}
-+
-+void internal_tx_mkfullmsg(unsigned char module, unsigned char opcode,
-+ int valno, ...)
-+{
-+ va_list vl;
-+ va_start(vl, valno);
-+ internal_vtx_mkfullmsg(module, opcode, valno, vl);
-+ va_end(vl);
-+}
-+
-+void internal_vtx_mkfullmsg(unsigned char module, unsigned char opcode,
-+ int valno, va_list vl)
-+{
-+ unsigned int len =
-+ internal_vmkmsg(state.txbuffer + INTERNAL_CMD_HEAD_SIZE, valno, vl);
-+ internal_mbox_tx_enable(module, opcode, len);
-+ state.txenable = 1;
-+ state.running = 1;
-+}
-+
-+void internal_readmsg(int valno, ...)
-+{
-+ va_list vl;
-+ va_start(vl, valno);
-+ internal_vreadmsg(valno, vl);
-+ va_end(vl);
-+}
-+
-+void internal_vreadmsg(int valno, va_list vl)
-+{
-+ uint8_t *src = state.rxbuffer + INTERNAL_CMD_HEAD_SIZE;
-+ size_t i;
-+
-+ for (i = 0; i < (size_t) valno; ++i) {
-+ int size = va_arg(vl, int);
-+ void *ptr = va_arg(vl, void *);
-+
-+ if (!ptr) {
-+ src += size;
-+ } else if (!size) {
-+ *((unsigned char **)ptr) = src;
-+ } else if (size > 0) {
-+ switch ((size_t) size) {
-+ case sizeof(uint8_t):
-+ *((uint8_t *)ptr) = internal_betoi(src, size);
-+ break;
-+ case sizeof(uint16_t):
-+ *((uint16_t *)ptr) = internal_betoi(src, size);
-+ break;
-+ case 3: /* 3-byte value (e.g. DPCD address)
-+ can be safely converted from BE.*/
-+ case sizeof(uint32_t):
-+ *((uint32_t *)ptr) = internal_betoi(src, size);
-+ break;
-+ default:
-+ printf("Warning. Unsupported variable size.\n");
-+ memcpy(ptr, src, size);
-+ };
-+
-+ src += size;
-+ } else {
-+ memcpy(ptr, src, -size);
-+ src -= size;
-+ }
-+ }
-+}
-+
-+INTERNAL_MBOX_STATUS mailbox_write(unsigned char val)
-+{
-+ INTERNAL_MBOX_STATUS ret;
-+ unsigned int full;
-+ if (cdn_bus_read(MAILBOX_FULL_ADDR << 2, &full)) {
-+ ret.tx_status = CDN_TX_APB_ERROR;
-+ return ret;
-+ }
-+ if (full) {
-+ ret.tx_status = CDN_TX_FULL;
-+ return ret;
-+ }
-+ if (cdn_bus_write(MAILBOX0_WR_DATA << 2, val)) {
-+ ret.tx_status = CDN_TX_APB_ERROR;
-+ return ret;
-+ }
-+ ret.tx_status = CDN_TX_WRITE;
-+ return ret;
-+}
-+
-+INTERNAL_MBOX_STATUS mailbox_read(volatile unsigned char *val)
-+{
-+ INTERNAL_MBOX_STATUS ret;
-+ unsigned int empty;
-+ unsigned int rd;
-+ if (cdn_bus_read(MAILBOX_EMPTY_ADDR << 2, &empty)) {
-+ ret.rx_status = CDN_RX_APB_ERROR;
-+ return ret;
-+ }
-+ if (empty) {
-+ ret.rx_status = CDN_RX_EMPTY;
-+ return ret;
-+ }
-+ if (cdn_bus_read(MAILBOX0_RD_DATA << 2, &rd)) {
-+ ret.rx_status = CDN_RX_APB_ERROR;
-+ return ret;
-+ }
-+ *val = (unsigned char)rd;
-+ ret.rx_status = CDN_RX_READ;
-+ return ret;
-+}
-+
-+INTERNAL_MBOX_STATUS internal_mbox_tx_process(void)
-+{
-+ unsigned int txcount = 0;
-+ unsigned int length =
-+ (unsigned int)state.txbuffer[2] << 8 | (unsigned int)state.
-+ txbuffer[3];
-+ INTERNAL_MBOX_STATUS ret = {.txend = 0 };
-+ ret.tx_status = CDN_TX_NOTHING;
-+ INTERNAL_MBOX_STATUS tx_ret;
-+ if (!state.txenable)
-+ return ret;
-+ while ((tx_ret.tx_status =
-+ mailbox_write(state.txbuffer[state.txi]).tx_status) ==
-+ CDN_TX_WRITE) {
-+ txcount++;
-+ if (++state.txi >= length + 4) {
-+ state.txenable = 0;
-+ state.txi = 0;
-+ ret.txend = 1;
-+ break;
-+ }
-+ }
-+ if (txcount && tx_ret.tx_status == CDN_TX_FULL)
-+ ret.tx_status = CDN_TX_WRITE;
-+ else
-+ ret.tx_status = tx_ret.tx_status;
-+ return ret;
-+}
-+
-+INTERNAL_MBOX_STATUS internal_mbox_rx_process(void)
-+{
-+ unsigned int rxcount = 0;
-+ INTERNAL_MBOX_STATUS ret = { 0, 0, 0, 0 };
-+ INTERNAL_MBOX_STATUS rx_ret;
-+ while ((rx_ret.rx_status =
-+ mailbox_read(state.rxbuffer + state.rxi).rx_status) ==
-+ CDN_RX_READ) {
-+ rxcount++;
-+ if (++state.rxi >= 4 +
-+ ((unsigned int)state.rxbuffer[2] << 8 |
-+ (unsigned int)state.rxbuffer[3])) { /* end of message */
-+ state.rxi = 0;
-+ ret.rxend = 1;
-+ state.rxenable = 0;
-+ break;
-+ }
-+ }
-+ ret.rx_status = rxcount ? CDN_RX_READ : CDN_RX_EMPTY;
-+ return ret;
-+}
-+
-+unsigned int internal_apb_available(void)
-+{
-+ return !(state.rxenable || state.txenable);
-+}
-+
-+void internal_mbox_tx_enable(unsigned char module, unsigned char opcode,
-+ unsigned short length)
-+{
-+ state.txbuffer[0] = opcode;
-+ state.txbuffer[1] = module;
-+ state.txbuffer[2] = (unsigned char)(length >> 8);
-+ state.txbuffer[3] = (unsigned char)length;
-+ state.txenable = 1;
-+}
-+
-+CDN_API_STATUS internal_test_rx_head(unsigned char module, unsigned char opcode)
-+{
-+ if (opcode != state.rxbuffer[0])
-+ return CDN_BAD_OPCODE;
-+ if (module != state.rxbuffer[1])
-+ return CDN_BAD_MODULE;
-+ return CDN_OK;
-+}
-+
-+CDN_API_STATUS internal_test_rx_head_match(void)
-+{
-+ return internal_test_rx_head(state.txbuffer[1], state.txbuffer[0]);
-+}
-+
-+void print_fw_ver(void)
-+{
-+ unsigned short ver, verlib;
-+ cdn_api_general_getcurversion(&ver, &verlib);
-+ printf("FIRMWARE VERSION: %d, LIB VERSION: %d\n", ver, verlib);
-+}
-+
-+unsigned short internal_get_msg_len(void)
-+{
-+ return ((unsigned short)state.rxbuffer[2] << 8) | (unsigned short)state.
-+ rxbuffer[3];
-+}
-diff --git a/drivers/video/imx/hdp/util.h b/drivers/video/imx/hdp/util.h
-new file mode 100644
-index 0000000000..605f0f933b
---- /dev/null
-+++ b/drivers/video/imx/hdp/util.h
-@@ -0,0 +1,278 @@
-+/******************************************************************************
-+ *
-+ * Copyright (C) 2016-2017 Cadence Design Systems, Inc.
-+ * All rights reserved worldwide.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright notice,
-+ * this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright notice,
-+ * this list of conditions and the following disclaimer in the documentation
-+ * and/or other materials provided with the distribution.
-+ *
-+ * 3. Neither the name of the copyright holder nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software without
-+ * specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE SOFTWARE IS PROVIDED "AS IS",
-+ * WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-+ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
-+ * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
-+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+ *
-+ * Copyright 2017 NXP
-+ *
-+ ******************************************************************************
-+ *
-+ * util.h
-+ *
-+ ******************************************************************************
-+ */
-+
-+#ifndef UTIL_H_
-+#define UTIL_H_
-+
-+#include "API_General.h"
-+#ifndef __UBOOT__
-+#include <stdarg.h>
-+#include <stdint.h>
-+#else
-+#include <common.h>
-+#endif
-+/**
-+ * \addtogroup UTILS
-+ * \{
-+ */
-+#define INTERNAL_CMD_HEAD_SIZE 4
-+
-+/**
-+ * \brief expands to blocking function body
-+ * \param x - function call
-+ */
-+#define internal_block_function(x) \
-+do { \
-+ CDN_API_STATUS ret; \
-+ do { \
-+ ret = x; \
-+ } while (ret == CDN_BSY || ret == CDN_STARTED); \
-+ return ret; \
-+} while (0)
-+
-+/**
-+ * \brief write message and write response (if any), non-blocking way. Also sets state.running = 0
-+ */
-+#define INTERNAL_PROCESS_MESSAGES \
-+do { \
-+ if (state.txenable && !internal_mbox_tx_process().txend) \
-+ return CDN_BSY; \
-+ if (state.rxenable && !internal_mbox_rx_process().rxend) \
-+ return CDN_BSY; \
-+ state.running = 0; \
-+} while (0)
-+
-+#define internal_opcode_ok_or_return(module, opcode) \
-+do { \
-+ CDN_API_STATUS ret = internal_test_rx_head(module, opcode); \
-+ if (ret != CDN_OK) \
-+ return ret; \
-+} while (0)
-+
-+#define internal_opcode_match_or_return() \
-+do { \
-+ CDN_API_STATUS ret = internal_test_rx_head_match(); \
-+ if (ret != CDN_OK) \
-+ return ret; \
-+} while (0)
-+
-+/* macro for simple tx only command, command format as in mkfullmsg
-+ (with count) */
-+#define internal_macro_command_tx(module, opcode, bustype, command...) \
-+do { \
-+ if (!state.running) { \
-+ internal_tx_mkfullmsg(module, opcode, command); \
-+ state.bus_type = bustype; \
-+ return CDN_STARTED; \
-+ } \
-+ INTERNAL_PROCESS_MESSAGES; \
-+} while (0)
-+
-+/* macro for command with response with matching opcode, command format as in
-+ mkfullmsg (with count) */
-+#define internal_macro_command_txrx(module, opcode, bustype, command...) \
-+do { \
-+ if (!state.running) { \
-+ internal_tx_mkfullmsg(module, opcode, command); \
-+ state.bus_type = bustype; \
-+ state.rxenable = 1; \
-+ return CDN_STARTED; \
-+ } \
-+ INTERNAL_PROCESS_MESSAGES; \
-+ internal_opcode_match_or_return(); \
-+} while (0)
-+
-+typedef struct {
-+ /** apb write status */
-+ enum tx_status_enum {
-+ /** one or more bytes written */
-+ CDN_TX_WRITE = 0,
-+ /** nothing to write */
-+ CDN_TX_NOTHING = 1,
-+ /** mailbox full, 0 bytes written */
-+ CDN_TX_FULL = 2,
-+ /** APB error while writing */
-+ CDN_TX_APB_ERROR = 3
-+ } tx_status:3;
-+ /** apb read status */
-+ enum rx_status_enum {
-+ /** 1 or more bytes read */
-+ CDN_RX_READ = 0,
-+ /** mailbox empty, 0 bytes read */
-+ CDN_RX_EMPTY = 1,
-+ /** apb error while reading */
-+ CDN_RX_APB_ERROR = 2
-+ } rx_status:2;
-+ /** indicates end of currenly recived message */
-+ unsigned char rxend:1;
-+ /** end of tx message reached */
-+ unsigned char txend:1;
-+} INTERNAL_MBOX_STATUS;
-+
-+/**
-+ * \brief put val into dest in big endian format
-+ * \param val - value to put
-+ * \param dest - place to put value
-+ * \param bytes - true size of val in bytes. for example if
-+ * bytes = 2 val is treated as short int
-+ */
-+void internal_itobe(int val, volatile unsigned char *dest, int bytes);
-+
-+/**
-+ * \brief read big endian value from src and return it
-+ * \param src - source to read from
-+ * \param bytes - size of read value
-+ * \return result
-+ */
-+uint32_t internal_betoi(volatile uint8_t const *src, uint8_t bytes);
-+
-+/**
-+ * \brief create message from size and value pairs; also sets
-+ * state.running and state.txEnable
-+ * \param dest - pointer to write message to
-+ * \param valNo - number of values to write
-+ * \param ... - pairs of size and value, each value is written
-+ * after another. if size is positive value, value is
-+ * written with #internal_itobe, if size is negative,
-+ * value is treated as src pointer for memcpy
-+ *
-+ * example:
-+ *
-+ * unsigned short x = 0xAABB;
-+ *
-+ * internal_mkmsg(dest, 3, 1, 1, 2, 3, -2, &x);
-+ *
-+ * will write 01 00 03 AA BB to dest
-+ */
-+unsigned int internal_mkmsg(volatile unsigned char *dest, int valno, ...);
-+unsigned int internal_vmkmsg(volatile unsigned char *dest, int valno,
-+ va_list vl);
-+
-+/**
-+ * \brief setup message header in txBuffer, set txEnable = 1
-+ */
-+void internal_mbox_tx_enable(unsigned char module, unsigned char opcode,
-+ unsigned short length);
-+
-+/**
-+ * \brief write from txBuffer to mailbox untill full or end of message.
-+ *
-+ * when txEnable == 0 writes nothing
-+ * when write reaches end of message set txEnable = 0
-+ */
-+
-+/**
-+ * \brief combination of #internal_mkmsg and #internal_mbox_tx_enable
-+ *
-+ * #internal_mkmsg dest and #internal_mbox_tx_enable length are determined
-+ * automaticly this function also sets state.txEnable = 1 and
-+ * state.running
-+ */
-+void internal_tx_mkfullmsg(unsigned char module, unsigned char opcode,
-+ int valno, ...);
-+void internal_vtx_mkfullmsg(unsigned char module, unsigned char opcode,
-+ int valno, va_list vl);
-+
-+/**
-+ * \brief read from state.txBuffer and store results in specified pointers
-+ * \param valNo - numbero of values to read
-+ * \param ... - pairs of size and ptr
-+ *
-+ * this function is similar to #internal_mkmsg -
-+ *
-+ * when size is positive read value using #internal_betoi
-+ * when size is negative mempcy from txBuffer to ptr -size bytes
-+ * when size is 0 write to ptr addres of current position in rxbuffer
-+ * when ptr is NULL ignore size bytes (if size is negative this
-+ * will rewind buffer)
-+ */
-+void internal_readmsg(int valno, ...);
-+void internal_vreadmsg(int valno, va_list vl);
-+
-+INTERNAL_MBOX_STATUS internal_mbox_tx_process(void);
-+/**
-+ * \brief read to rxBuffer from mailbox untill empty or end of message
-+ *
-+ * when rxEnable == 0 reads nothing
-+ * when end of message reached sets rxEnable = 0
-+ */
-+INTERNAL_MBOX_STATUS internal_mbox_rx_process(void);
-+
-+/**
-+ * \brief check if apb is available
-+ * \return !(rxEnable && txEable)
-+ */
-+unsigned int internal_apb_available(void);
-+
-+/**
-+ * \brief test if parameters match module and opcode in rxBuffer
-+ * \return CDN_OK or CDN_BAD_OPCODE or CDN_BAD_MODULE
-+ */
-+CDN_API_STATUS internal_test_rx_head(unsigned char module,
-+ unsigned char opcode);
-+
-+CDN_API_STATUS internal_test_rx_head_match(void);
-+
-+/**
-+ * \brief print current fw and lib version
-+ */
-+void print_fw_ver(void);
-+
-+typedef struct {
-+ unsigned char txbuffer[1024];
-+ unsigned char rxbuffer[1024];
-+ unsigned int txi; /* iterators */
-+ unsigned int rxi;
-+ unsigned char txenable; /*data readt to send*/
-+ unsigned char rxenable;
-+ unsigned char running;
-+ CDN_BUS_TYPE bus_type;
-+ unsigned int tmp;
-+} state_struct;
-+
-+unsigned short internal_get_msg_len(void);
-+
-+#endif
-diff --git a/drivers/video/imx/hdp_load.c b/drivers/video/imx/hdp_load.c
-new file mode 100644
-index 0000000000..d5eea2cf72
---- /dev/null
-+++ b/drivers/video/imx/hdp_load.c
-@@ -0,0 +1,107 @@
-+/*
-+ * Copyright 2017-2018 NXP
-+ *
-+ * SPDX-License-Identifier: GPL-2.0+
-+ */
-+
-+#include <common.h>
-+#include <command.h>
-+
-+#include "API_General.h"
-+#include "scfw_utils.h"
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+#define ON 1
-+#define OFF 0
-+
-+static void display_set_power(int onoff)
-+{
-+ sc_ipc_t ipcHndl = -1;
-+
-+ SC_PM_SET_RESOURCE_POWER_MODE(ipcHndl, SC_R_DC_0, onoff);
-+ SC_PM_SET_RESOURCE_POWER_MODE(ipcHndl, SC_R_HDMI, onoff);
-+}
-+
-+static void display_set_clocks(void)
-+{
-+ sc_ipc_t ipcHndl = -1;
-+ const sc_pm_clock_rate_t pll = 1188000000;
-+ const sc_pm_clock_rate_t hdmi_core_clock = pll / 10;
-+ const sc_pm_clock_rate_t hdmi_bus_clock = pll / 14;
-+
-+ SC_PM_SET_RESOURCE_POWER_MODE(ipcHndl,
-+ SC_R_HDMI_PLL_0, SC_PM_PW_MODE_OFF);
-+ SC_PM_SET_CLOCK_RATE(ipcHndl,
-+ SC_R_HDMI_PLL_0, SC_PM_CLK_PLL, pll);
-+ SC_PM_SET_RESOURCE_POWER_MODE(ipcHndl,
-+ SC_R_HDMI_PLL_0, SC_PM_PW_MODE_ON);
-+
-+ /* HDMI DI Bus Clock */
-+ SC_PM_SET_CLOCK_RATE(ipcHndl,
-+ SC_R_HDMI, SC_PM_CLK_MISC4, hdmi_bus_clock);
-+ /* HDMI DI Core Clock */
-+ SC_PM_SET_CLOCK_RATE(ipcHndl,
-+ SC_R_HDMI, SC_PM_CLK_MISC2, hdmi_core_clock);
-+}
-+
-+static void display_enable_clocks(int enable)
-+{
-+ sc_ipc_t ipcHndl = -1;
-+
-+ SC_PM_CLOCK_ENABLE(ipcHndl, SC_R_HDMI_PLL_0, SC_PM_CLK_PLL, enable);
-+ SC_PM_CLOCK_ENABLE(ipcHndl, SC_R_HDMI, SC_PM_CLK_MISC2, enable);
-+ SC_PM_CLOCK_ENABLE(ipcHndl, SC_R_HDMI, SC_PM_CLK_MISC4, enable);
-+}
-+
-+int do_hdp(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-+{
-+ if (argc < 2)
-+ return 0;
-+
-+ if (strncmp(argv[1], "tracescfw", 9) == 0) {
-+ g_debug_scfw = 1;
-+ printf("Enabled SCFW API tracing\n");
-+ } else if (strncmp(argv[1], "load", 4) == 0) {
-+ unsigned long address = 0;
-+ unsigned long offset = 0x2000;
-+ const int iram_size = 0x10000;
-+ const int dram_size = 0x8000;
-+
-+ if (argc > 2) {
-+ address = simple_strtoul(argv[2], NULL, 0);
-+ if (argc > 3)
-+ offset = simple_strtoul(argv[3], NULL, 0);
-+ } else
-+ printf("Missing address\n");
-+
-+ printf("Loading hdp firmware from 0x%016lx offset 0x%016lx\n",
-+ address, offset);
-+ display_set_power(SC_PM_PW_MODE_ON);
-+ display_set_clocks();
-+ display_enable_clocks(ON);
-+ cdn_api_loadfirmware((unsigned char *)(address + offset),
-+ iram_size,
-+ (unsigned char *)(address + offset +
-+ iram_size),
-+ dram_size);
-+ display_enable_clocks(OFF);
-+ printf("Loading hdp firmware Complete\n");
-+ /* do not turn off hdmi power or firmware load will be lost */
-+ } else {
-+ printf("test error argc %d\n", argc);
-+ }
-+
-+ return 0;
-+}
-+/***************************************************/
-+
-+U_BOOT_CMD(
-+ hdp, CONFIG_SYS_MAXARGS, 1, do_hdp,
-+ "load hdmi firmware ",
-+ "[<command>] ...\n"
-+ "hdpload [address] [<offset>]\n"
-+ " address - address where the binary image starts\n"
-+ " <offset> - IRAM offset in the binary image (8192 default)\n"
-+ "tracescfw - Trace SCFW API calls for video commands\n"
-+ );
-diff --git a/drivers/video/imx/scfw_utils.h b/drivers/video/imx/scfw_utils.h
-new file mode 100644
-index 0000000000..a583d26a78
---- /dev/null
-+++ b/drivers/video/imx/scfw_utils.h
-@@ -0,0 +1,90 @@
-+/*
-+ * Copyright 2017 NXP
-+ *
-+ * SPDX-License-Identifier: GPL-2.0+
-+ */
-+#ifndef _SCFW_UTILS_H_
-+#define _SCFW_UTILS_H_
-+
-+#include <common.h>
-+#include <asm/arch/sci/sci.h>
-+
-+static int g_debug_scfw; /* set to one to turn on SCFW API tracing */
-+
-+#define SC_PM_SET_CLOCK_PARENT(__ipcHndl__, __res__, __clk__, __parent__) \
-+do { \
-+ char _res_str[] = #__res__;\
-+ char _clk_str[] = #__clk__;\
-+ sc_err_t _ret;\
-+ if (g_debug_scfw) \
-+ printf("(%4d) sc_pm_set_clock_parent %s:%s -> %d\n",\
-+ __LINE__, _res_str, _clk_str, __parent__);\
-+ _ret = sc_pm_set_clock_parent(__ipcHndl__,\
-+ __res__, __clk__, __parent__);\
-+ if (_ret != SC_ERR_NONE) \
-+ printf("(%d)>> sc_pm_set_clock_parent failed! %s:%s -> %d (error = %d)\n",\
-+ __LINE__, _res_str, _clk_str, __parent__, _ret);\
-+} while (0)
-+
-+#define SC_PM_SET_CLOCK_RATE(__ipcHndl__, __res__, __clk__, __rate__) \
-+do { \
-+ char _res_str[] = #__res__;\
-+ char _clk_str[] = #__clk__;\
-+ sc_err_t _ret;\
-+ sc_pm_clock_rate_t _actual = __rate__;\
-+ if (g_debug_scfw) \
-+ printf("(%4d) sc_pm_set_clock_rate %s:%s -> %d\n",\
-+ __LINE__, _res_str, _clk_str, __rate__);\
-+ _ret = sc_pm_set_clock_rate(__ipcHndl__, __res__, __clk__, &_actual);\
-+ if (_ret != SC_ERR_NONE)\
-+ printf("(%4d)>> sc_pm_set_clock_rate failed! %s:%s -> %d (error = %d)\n",\
-+ __LINE__, _res_str, _clk_str, __rate__, _ret);\
-+ if (_actual != __rate__)\
-+ printf("(%4d)>> Actual rate for %s:%s is %d instead of %d\n", \
-+ __LINE__, _res_str, _clk_str, _actual, __rate__); \
-+} while (0)
-+
-+#define SC_PM_CLOCK_ENABLE(__ipcHndl__, __res__, __clk__, __enable__) \
-+do { \
-+ char _res_str[] = #__res__;\
-+ char _clk_str[] = #__clk__;\
-+ sc_err_t _ret;\
-+ if (g_debug_scfw) \
-+ printf("(%4d) sc_pm_clock_enable %s:%s -> %d\n",\
-+ __LINE__, _res_str, _clk_str, __enable__);\
-+ _ret = sc_pm_clock_enable(ipcHndl,\
-+ __res__, __clk__, __enable__, false);\
-+ if (_ret != SC_ERR_NONE)\
-+ printf("(%4d)>> sc_pm_clock_enable failed! %s:%s -> %d (error = %d)\n",\
-+ __LINE__, _res_str, _clk_str, __enable__, _ret);\
-+} while (0) \
-+
-+#define SC_MISC_SET_CONTROL(__ipcHndl__, __res__, __clk__, __value__) \
-+do { \
-+ char _res_str[] = #__res__; \
-+ char _clk_str[] = #__clk__; \
-+ sc_err_t _ret; \
-+ if (g_debug_scfw) \
-+ printf("(%4d) sc_misc_set_control %s:%s -> %d\n",\
-+ __LINE__, _res_str, _clk_str, __value__);\
-+ _ret = sc_misc_set_control(ipcHndl, \
-+ __res__, __clk__, __value__); \
-+ if (_ret != SC_ERR_NONE) \
-+ printf("(%4d)>> sc_misc_set_control failed! %s:%s -> %d (error = %d)\n", \
-+ __LINE__, _res_str, _clk_str, __value__, _ret); \
-+} while (0)
-+
-+#define SC_PM_SET_RESOURCE_POWER_MODE(__ipcHndl__, __res__, __enable__) \
-+do { \
-+ char _res_str[] = #__res__; \
-+ sc_err_t _ret; \
-+ if (g_debug_scfw) \
-+ printf("(%4d) sc_pm_set_resource_power_mode %s -> %d\n",\
-+ __LINE__, _res_str, __enable__);\
-+ _ret = sc_pm_set_resource_power_mode(ipcHndl, __res__, __enable__);\
-+ if (_ret != SC_ERR_NONE) \
-+ printf("(%4d)>> sc_pm_set_resource_power_mode failed! %s -> %d (error = %d)\n", \
-+ __LINE__, _res_str, __enable__, _ret);\
-+} while (0)
-+
-+#endif /*_SCFW_UTILS_H_ */
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0012-MLK-17205-2-video-imx-hdp-Adding-HDP-firmware-loadin.patch b/recipes-bsp/u-boot-mainline/files/0012-MLK-17205-2-video-imx-hdp-Adding-HDP-firmware-loadin.patch
deleted file mode 100644
index 022b8e4..0000000
--- a/recipes-bsp/u-boot-mainline/files/0012-MLK-17205-2-video-imx-hdp-Adding-HDP-firmware-loadin.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 60ebfc3c6aa4e04c2c0418a14b83c549a2828610 Mon Sep 17 00:00:00 2001
-From: Oliver Brown <oliver.brown@nxp.com>
-Date: Wed, 13 Dec 2017 17:12:45 -0600
-Subject: [PATCH 12/15] MLK-17205-2 video: imx: hdp: Adding HDP firmware
- loading to the build
-
-Adding the HDP firmware loading to the build.
-
-Signed-off-by: Oliver Brown <oliver.brown@nxp.com>
-(cherry picked from downstream commit d4702582552aa1921fce58329ae40c24481fba3a)
----
- drivers/video/Kconfig | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index c3781b160d..a40df01500 100644
---- a/drivers/video/Kconfig
-+++ b/drivers/video/Kconfig
-@@ -549,6 +549,15 @@ config VIDEO
- model. Video drivers typically provide a colour text console and
- cursor.
-
-+config VIDEO_IMX_HDP_LOAD
-+ bool "i.MX8 HDMI/DP firmware loading"
-+ default n
-+ depends on IMX8
-+ help
-+ Support for HDMI/DP firmware loading for i.MX8QM processors. The
-+ firmware is copied from system memory to the HDMI/DP IRAM and
-+ DRAM memory.
-+
- config CFB_CONSOLE
- bool "Enable colour frame buffer console"
- depends on VIDEO
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0013-MLK-17205-3-video-imx-hdp-Adding-configs-for-HDP-fir.patch b/recipes-bsp/u-boot-mainline/files/0013-MLK-17205-3-video-imx-hdp-Adding-configs-for-HDP-fir.patch
deleted file mode 100644
index 8c31bcb..0000000
--- a/recipes-bsp/u-boot-mainline/files/0013-MLK-17205-3-video-imx-hdp-Adding-configs-for-HDP-fir.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a646aace8bfd6fc83e360c2fd0c406812922ba5f Mon Sep 17 00:00:00 2001
-From: Oliver Brown <oliver.brown@nxp.com>
-Date: Wed, 13 Dec 2017 17:14:58 -0600
-Subject: [PATCH 13/15] MLK-17205-3 video: imx: hdp: Adding configs for HDP
- firmware loading
-
-Added default environment for hdp loading.
-Added hdp loading as default for iMX8QM MEK board.
-
-Signed-off-by: Oliver Brown <oliver.brown@nxp.com>
-(cherry picked from downstream commit 432e5b4347841095c3b5a8a0d106f35deadd006e)
-(cherry picked from downstream commit cb78a32fa8eb8c37932be003ebe4fa1f8c46c1d5)
----
- configs/imx8qm_mek_defconfig | 1 +
- include/configs/imx8qm_mek.h | 5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/configs/imx8qm_mek_defconfig b/configs/imx8qm_mek_defconfig
-index 1c67b98c5d..5aae2fd0d9 100644
---- a/configs/imx8qm_mek_defconfig
-+++ b/configs/imx8qm_mek_defconfig
-@@ -74,4 +74,5 @@ CONFIG_SPL_DM_REGULATOR_GPIO=y
- CONFIG_DM_SERIAL=y
- CONFIG_FSL_LPUART=y
- CONFIG_SPL_TINY_MEMSET=y
-+CONFIG_VIDEO_IMX_HDP_LOAD=y
- # CONFIG_EFI_LOADER is not set
-diff --git a/include/configs/imx8qm_mek.h b/include/configs/imx8qm_mek.h
-index d06ed61c80..32fcf7eb8f 100644
---- a/include/configs/imx8qm_mek.h
-+++ b/include/configs/imx8qm_mek.h
-@@ -80,7 +80,11 @@
- "source\0" \
- "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
- "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
-+ "hdp_addr=0x84000000\0" \
-+ "hdp_file=hdmitxfw.bin\0" \
-+ "loadhdp=fatload mmc ${mmcdev}:${mmcpart} ${hdp_addr} ${hdp_file}\0" \
- "mmcboot=echo Booting from mmc ...; " \
-+ "if run loadhdp; then; hdp load ${hdp_addr}; fi;" \
- "run mmcargs; " \
- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
- "if run loadfdt; then " \
-@@ -101,6 +105,7 @@
- "else " \
- "setenv get_cmd tftp; " \
- "fi; " \
-+ "if ${get_cmd} ${hdp_addr} ${hdp_file}; then; hdp load ${hdp_addr}; fi;" \
- "${get_cmd} ${loadaddr} ${image}; " \
- "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
- "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/0014-apalis-imx8-enable-hdp-firmware-loading.patch b/recipes-bsp/u-boot-mainline/files/0014-apalis-imx8-enable-hdp-firmware-loading.patch
deleted file mode 100644
index 64c6ccc..0000000
--- a/recipes-bsp/u-boot-mainline/files/0014-apalis-imx8-enable-hdp-firmware-loading.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From fbbde5249ec74fdb0873438e13d1e55f5214ed72 Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Fri, 31 May 2019 10:32:32 +0300
-Subject: [PATCH 14/15] apalis-imx8: enable hdp firmware loading
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
- configs/apalis-imx8qm_defconfig | 1 +
- include/configs/apalis-imx8.h | 13 +++++++++++--
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/configs/apalis-imx8qm_defconfig b/configs/apalis-imx8qm_defconfig
-index d7dfc4a27b..f1c5511fd0 100644
---- a/configs/apalis-imx8qm_defconfig
-+++ b/configs/apalis-imx8qm_defconfig
-@@ -55,4 +55,5 @@ CONFIG_DM_SERIAL=y
- CONFIG_FSL_LPUART=y
- CONFIG_DM_THERMAL=y
- CONFIG_IMX_SCU_THERMAL=y
-+CONFIG_VIDEO_IMX_HDP_LOAD=y
- # CONFIG_EFI_LOADER is not set
-diff --git a/include/configs/apalis-imx8.h b/include/configs/apalis-imx8.h
-index be2c5a2293..e5f0d1396a 100644
---- a/include/configs/apalis-imx8.h
-+++ b/include/configs/apalis-imx8.h
-@@ -61,9 +61,12 @@
- "fdt_file=fsl-imx8qm-apalis-eval.dtb\0" \
- "fdtfile=fsl-imx8qm-apalis-eval.dtb\0" \
- "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \
-+ "hdp_addr=0x84000000\0" \
-+ "hdp_file=hdmitxfw.bin\0" \
- "image=Image\0" \
- "initrd_addr=0x83800000\0" \
- "initrd_high=0xffffffffffffffff\0" \
-+ "loadhdp=fatload mmc ${mmcdev}:${mmcpart} ${hdp_addr} ${hdp_file}\0" \
- "mmcargs=setenv bootargs console=${console},${baudrate} " \
- "root=PARTUUID=${uuid} rootwait " \
- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
-@@ -71,8 +74,10 @@
- "netargs=setenv bootargs console=${console},${baudrate} " \
- "root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp" \
- "\0" \
-- "nfsboot=run netargs; dhcp ${loadaddr} ${image}; tftp ${fdt_addr} " \
-- "apalis-imx8/${fdt_file}; booti ${loadaddr} - ${fdt_addr}\0" \
-+ "nfsboot=run netargs; dhcp ${loadaddr} ${image}; if tftp ${hdp_addr} " \
-+ "${hdp_file}; then; hdp load ${hdp_addr}; fi; tftp " \
-+ "${fdt_addr} apalis-imx8/${fdt_file}; booti ${loadaddr} - " \
-+ "${fdt_addr}\0" \
- "panel=NULL\0" \
- "script=boot.scr\0" \
- "update_uboot=askenv confirm Did you load u-boot-dtb.imx (y/N)?; " \
-@@ -81,6 +86,10 @@
- "${blkcnt} / 0x200; mmc dev 0 1; mmc write ${loadaddr} 0x0 " \
- "${blkcnt}; fi\0"
-
-+#undef CONFIG_BOOTCOMMAND
-+#define CONFIG_BOOTCOMMAND \
-+ "if run loadhdp; then; hdp load ${hdp_addr}; fi; run distro_bootcmd"
-+
- /* Link Definitions */
- #define CONFIG_LOADADDR 0x80280000
-
---
-2.13.6
-
diff --git a/recipes-bsp/u-boot-mainline/files/colibri-imx7-emmc/fw_env.config b/recipes-bsp/u-boot-mainline/files/colibri-imx7-emmc/fw_env.config
deleted file mode 100644
index 00f21bf..0000000
--- a/recipes-bsp/u-boot-mainline/files/colibri-imx7-emmc/fw_env.config
+++ /dev/null
@@ -1,15 +0,0 @@
-# Configuration file for fw_(printenv/setenv) utility.
-# Up to two entries are valid, in this case the redundant
-# environment sector is assumed present.
-# Device offset must be prefixed with 0x to be parsed as a hexadecimal value.
-# On a block device a negative offset is treated as a backwards offset from the
-# end of the device/partition, rather than a forwards offset from the start.
-
-# Colibri iMX7 Dual 1GB (eMMC)
-# U-Boot environment is stored at the end of the first eMMC boot partition
-# hence use a negative value. The environment is just in front of the config
-# block which occupies the last sector (hence -0x200)
-
-# Block device name Device offset Env. size
-/dev/mmcblk0boot0 -0x2200 0x2000
-
diff --git a/recipes-bsp/u-boot-mainline/files/mx8/fw_env.config b/recipes-bsp/u-boot-mainline/files/mx8/fw_env.config
deleted file mode 100644
index a9e724e..0000000
--- a/recipes-bsp/u-boot-mainline/files/mx8/fw_env.config
+++ /dev/null
@@ -1,17 +0,0 @@
-# Configuration file for fw_(printenv/setenv) utility.
-# Up to two entries are valid, in this case the redundant
-# environment sector is assumed present.
-# Device offset must be prefixed with 0x to be parsed as a hexadecimal value.
-# On a block device a negative offset is treated as a backwards offset from the
-# end of the device/partition, rather than a forwards offset from the start.
-
-# Colibri iMX6/Apalis iMX6
-# U-Boot environment is stored at the end of the first eMMC boot partition
-# hence use a negative value. The environment is just in front of the config
-# block which occupies the last sector (hence -0x200)
-# Note that /dev/mmcblk0boot0 by default is read only
-# To use fw_setenv you have to first make it writeable, on the cmdline e.g. by
-# $ echo 0 > /sys/block/mmcblk0boot0/force_ro
-
-# Block device name Device offset Env. size
-/dev/mmcblk0boot0 -0x2200 0x2000
diff --git a/recipes-bsp/u-boot-mainline/files/video_mxsfb_fix_mxsfb_fbdev_binding_issues.mbox b/recipes-bsp/u-boot-mainline/files/video_mxsfb_fix_mxsfb_fbdev_binding_issues.mbox
deleted file mode 100644
index f32653c..0000000
--- a/recipes-bsp/u-boot-mainline/files/video_mxsfb_fix_mxsfb_fbdev_binding_issues.mbox
+++ /dev/null
@@ -1,1140 +0,0 @@
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:15 2019
-Received: from DBBPR05MB6474.eurprd05.prod.outlook.com
- (2603:10a6:209:8b::37) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM6P191CA0024.EURP191.PROD.OUTLOOK.COM; Wed, 19 Jun 2019 08:47:15
- +0000
-Received: from AM3PR05CA0142.eurprd05.prod.outlook.com
- (2603:10a6:207:3::20) by DBBPR05MB6474.eurprd05.prod.outlook.com
- (2603:10a6:10:cc::10) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun
- 2019 08:47:14 +0000
-Received: from DB5EUR01FT025.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::200) by AM3PR05CA0142.outlook.office365.com
- (2603:10a6:207:3::20) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1987.13 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:14 +0000
-Authentication-Results: spf=softfail (sender IP is 91.209.104.157)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 91.209.104.157 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (91.209.104.157) by
- DB5EUR01FT025.mail.protection.outlook.com (10.152.4.240) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:14 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com
- [209.85.221.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id 8D6CA800077; Wed, 19 Jun 2019
- 08:47:13 +0000 (UTC)
-Received: by mail-wr1-f66.google.com with SMTP id p11so2400969wre.7;
- Wed, 19 Jun 2019 01:47:13 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=+ky1e8NbOQ4HXdCozTskKppJj59ix/nasaCKDIQ96x0=;
- b=pa5mFM5Cjok0jbjbzDLhTtk+yGPnoQv1h9iKRzWJ+g1ZEBnmN5gA7HeZtzNUll6W2h
- tX2Ct+mhaXELhKbwsorKHwGqSXERqFE5KuXMh4Nnl8G5vbpmX3ThDQYvTvuHtKDHaS3w
- bdxUMV/mMC/mLJqCvdcP/1gJ3fcEG02ZIYWSMArT/PHZnCijbbjpgjOTNbJseNhyqFZu
- 5XASFZmLLQkXacLc+epYHzsrKShjM+8ifqOfMM+en7Y7x5spyq3vvuwzIQq6TXO2njSj
- NfbzFdoYbSViF0D6ONO731nUHdBx1d/QzWFtp8IShzkIgWVKmW2Oj5WSlj11NLWBD7Bc YqeQ==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=+ky1e8NbOQ4HXdCozTskKppJj59ix/nasaCKDIQ96x0=;
- b=rBxfOdhGpaltB6IuBBPtUh/GC77CmifCvfQMF3nWvvyUbtT0EYb7mMYW1GMY45YGuq
- 9clIvvcgBbQQSjFFhUdEGghu9goUQDi9one39Om3guvTIAgJQ/GNIoJWcdAD+ib+AHAw
- /Lh3/iCUsOK0JQcf35FgBoVOvHpu5k+kuhFCuYEbkn21Ek3b87ykcExL3WMe2MyO+6Gn
- hB7YoKjnhWuBGUgMCxVpYpcuyDMuhT33RL1ci+dCrfCJDRXiUR4XL7+YIhJRhVJi17+/
- ogihzH1KkVUkw3gXg31Q5U2JpOptqYOBvl959R7lDrM+rAym+ojAT32TLS918EaAZTfn eLSA==
-X-Gm-Message-State:
- APjAAAWLmOriVFf2twrayRUiaWZ9CymkVyb5nyb+cmhw33llHzaWsfXR
- RQNQ1Qr2xoogdlb9dPdSjwE=
-X-Google-Smtp-Source:
- APXvYqxqf+ZmdHhDyGeHuoBSBdiecNPglHyDhxmdkYM/09LCtPcXaIkI+NfOd+5Ww/oCmSkvDSyriQ==
-X-Received: by 2002:adf:b60f:: with SMTP id
- f15mr19687083wre.283.1560934033132; Wed, 19 Jun 2019 01:47:13 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id r3sm20076998wrr.61.2019.06.19.01.47.12 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:12
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 1/6] video: mxsfb: fix mxsfb fbdev binding issues
-Message-Id: <20190619084710.19074-2-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934034-1SIYzjPIaBSY
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:14.3918
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- 2a4bed9d-c604-4a64-1f8c-08d6f492ba16
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:91.209.104.157;IPV:NLI;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(2980300002)(199004)(189003)(73392003)(2361001)(2351001)(61266001)(1096003)(95326003)(76506005)(57986006)(26005)(16003)(2160300002)(356004)(76176011)(7636002)(86362001)(44832011)(47776003)(336012)(246002)(956004)(426003)(446003)(126002)(6666004)(50466002)(48376002)(36756003)(2616005)(16586007)(7596002)(11346002)(82202003)(486006)(60626007)(50226002)(60616004)(8676002)(55446002)(450100002)(305945005)(5660300002)(34206002)(51416003)(73972006)(1076003)(83322999)(476003)(59536001)(76482006)(4326008);DIR:INB;SFP:;SCL:1;SRVR:DBBPR05MB6474;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:SoftFail;LANG:en;PTR:dispatch1-eu1.ppe-hosted.com;A:1;MX:1;
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT025.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- 2a4bed9d-c604-4a64-1f8c-08d6f492ba16
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:DBBPR05MB6474;
-X-MS-TrafficTypeDiagnostic: DBBPR05MB6474:
-X-MS-Oob-TLC-OOBClassifiers: OLM:2089;
-X-MS-Exchange-Organization-SCL: 1
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:14.3147
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 2a4bed9d-c604-4a64-1f8c-08d6f492ba16
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR05MB6474
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.3268693
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(20160514016)(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- RxF0PDFExWB5QCDuLwuxkqX2AI9JgAu7ErJk2I6wwJTvqB7H088Zf4OL22pPXMNFbO3WFoJX1gGjKXg3bap9khngCJMqxa/mUY3NCf1JRH7DqRPkC7aa1eGPBhholtMp7qd4IVAZ51dtO+hS1GbzYOtwsFGvC5+DwhGAGksES6rzNnKyTb/kr16aksTgMUeOboC9YRO6yt2+WrSZ5w3LpIH436alRHCXIRpSFxdHLiw6yxS/Ex145Y3LtsfKZXejhnxXjE+BA+cm8Vwfzbe0Gx1w2f7rgQOkVJE1yrCu76jABC76z5p3TrWuHk/Kh4TvtNWPhM3rbr/Iqtv28QcYA756ataxSc3GvPooUObHfjzxzkHtsVDKuXj8cC2eUnpyVH74KAK8xlYxv3LkbnNdOzfSDtiGvSxS7TfUlAUWRFJW1hIU9JR4Y/6cxCZcK0G7ACF+tjafigiFUqva4v0u91BlQCQ2qcnr7adBt3wZmDuAiQhhSlWL0k38PBTI2xcX8puilFyvLL4EddBzSgTkHPHa+5slfShfo5dVcmvkvTmtjd4RITDxVWSST1D/2LmfQFN5bQHz3n5RXK/H38TGWTCJ7S7/wPI64WqeiHvM95weT5HoX2HfioIo9KlAutU7cSm9vtr7w8QlTrNIc4P5zI/gFU9/NQiClz1BJDpyAN0nGs6myX5BoX0uvLILfASSZw8ndMCIeTaLXi43FDjaqZn3torrKm/BVfJkS9n4cIMYlGzbld1tcp/4XLD87FlxpGxfGQwGdxXPCFcEOue1eFAthxDPSCH5CxLaqSgquq+AKWFaRMEFlHzLz5uTnkz8uZXgZOS9GMyxrTUexu+I7nZLUGOmzTTUIZ1i0KvFsJSE0V5XK3lrEhfx+KP6Iw9qqMbj1IqZl8Yo5Dhd8mI9yDYQ2h8prpJofYcQz4K4PKyh2R32//6gfdxTj8yYL/oA
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:05 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-Add support for display and bits-per-pixel properties.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- drivers/video/mxsfb.c | 74 ++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 62 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
-index f02ba20138..6c9a7c05e8 100644
---- a/drivers/video/mxsfb.c
-+++ b/drivers/video/mxsfb.c
-@@ -271,6 +271,42 @@ dealloc_fb:
- }
- #else /* ifndef CONFIG_DM_VIDEO */
-
-+static int mxs_of_get_timings(struct udevice *dev,
-+ struct display_timing *timings,
-+ u32 *bpp)
-+{
-+ int ret = 0;
-+ u32 display_phandle;
-+ ofnode display_node;
-+
-+ ret = ofnode_read_u32(dev_ofnode(dev), "display", &display_phandle);
-+ if (ret) {
-+ dev_err(dev, "required display property isn't provided\n");
-+ return -EINVAL;
-+ }
-+
-+ display_node = ofnode_get_by_phandle(display_phandle);
-+ if (!ofnode_valid(display_node)) {
-+ dev_err(dev, "failed to find display subnode\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = ofnode_read_u32(display_node, "bits-per-pixel", bpp);
-+ if (ret) {
-+ dev_err(dev,
-+ "required bits-per-pixel property isn't provided\n");
-+ return -EINVAL;
-+ }
-+
-+ ret = ofnode_decode_display_timing(display_node, 0, timings);
-+ if (ret) {
-+ dev_err(dev, "failed to get any display timings\n");
-+ return -EINVAL;
-+ }
-+
-+ return ret;
-+}
-+
- static int mxs_video_probe(struct udevice *dev)
- {
- struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
-@@ -278,18 +314,16 @@ static int mxs_video_probe(struct udevice *dev)
-
- struct ctfb_res_modes mode;
- struct display_timing timings;
-- int bpp = -1;
-+ u32 bpp = 0;
- u32 fb_start, fb_end;
- int ret;
-
- debug("%s() plat: base 0x%lx, size 0x%x\n",
- __func__, plat->base, plat->size);
-
-- ret = ofnode_decode_display_timing(dev_ofnode(dev), 0, &timings);
-- if (ret) {
-- dev_err(dev, "failed to get any display timings\n");
-- return -EINVAL;
-- }
-+ ret = mxs_of_get_timings(dev, &timings, &bpp);
-+ if (ret)
-+ return ret;
-
- mode.xres = timings.hactive.typ;
- mode.yres = timings.vactive.typ;
-@@ -301,13 +335,12 @@ static int mxs_video_probe(struct udevice *dev)
- mode.vsync_len = timings.vsync_len.typ;
- mode.pixclock = HZ2PS(timings.pixelclock.typ);
-
-- bpp = BITS_PP;
--
- ret = mxs_probe_common(&mode, bpp, plat->base);
- if (ret)
- return ret;
-
- switch (bpp) {
-+ case 32:
- case 24:
- case 18:
- uc_priv->bpix = VIDEO_BPP32;
-@@ -341,15 +374,32 @@ static int mxs_video_bind(struct udevice *dev)
- {
- struct video_uc_platdata *plat = dev_get_uclass_platdata(dev);
- struct display_timing timings;
-+ u32 bpp = 0;
-+ u32 bytes_pp = 0;
- int ret;
-
-- ret = ofnode_decode_display_timing(dev_ofnode(dev), 0, &timings);
-- if (ret) {
-- dev_err(dev, "failed to get any display timings\n");
-+ ret = mxs_of_get_timings(dev, &timings, &bpp);
-+ if (ret)
-+ return ret;
-+
-+ switch (bpp) {
-+ case 32:
-+ case 24:
-+ case 18:
-+ bytes_pp = 4;
-+ break;
-+ case 16:
-+ bytes_pp = 2;
-+ break;
-+ case 8:
-+ bytes_pp = 1;
-+ break;
-+ default:
-+ dev_err(dev, "invalid bpp specified (bpp = %i)\n", bpp);
- return -EINVAL;
- }
-
-- plat->size = timings.hactive.typ * timings.vactive.typ * BYTES_PP;
-+ plat->size = timings.hactive.typ * timings.vactive.typ * bytes_pp;
-
- return 0;
- }
---
-2.17.1
-
-
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:17 2019
-Received: from AM0PR05MB6466.eurprd05.prod.outlook.com
- (2603:10a6:20b:3a::32) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM6PR0202CA0055.EURPRD02.PROD.OUTLOOK.COM; Wed, 19 Jun 2019
- 08:47:17 +0000
-Received: from HE1PR0501CA0006.eurprd05.prod.outlook.com
- (2603:10a6:3:1a::16) by AM0PR05MB6466.eurprd05.prod.outlook.com
- (2603:10a6:208:13e::11) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun
- 2019 08:47:16 +0000
-Received: from DB5EUR01FT028.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::209) by HE1PR0501CA0006.outlook.office365.com
- (2603:10a6:3:1a::16) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.12 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:15 +0000
-Authentication-Results: spf=softfail (sender IP is 185.132.181.6)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 185.132.181.6 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (185.132.181.6) by
- DB5EUR01FT028.mail.protection.outlook.com (10.152.4.237) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:15 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com
- [209.85.221.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id 98193A40066; Wed, 19 Jun 2019
- 08:47:14 +0000 (UTC)
-Received: by mail-wr1-f67.google.com with SMTP id n4so2359002wrw.13;
- Wed, 19 Jun 2019 01:47:14 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=Og6Tyqh06wltZnx6uI4Uz0VzGdRmJQzlnAcslpN+uYs=;
- b=rUNzx1MgbKqLB82I0ChPSZSBsgAgIpdxe3aORefI7ewNdZSUjsXAoeYOPnWBiZrJbq
- Cjn6YqnYnvH7VWGKVNfrYmef9qHQ3cuIKquNHKkrKTlkmSlgPFFLZiRHBZlpCvJusbEB
- 3YQo3z2IXmZ6zL0iQ0HHEMPNfPG7RGjJ5utlNfyQ12IQ0P5SRw0mcTg6Dq+iNviEGYRu
- u9fmsFMIDjteSn8iowH9GmCvL1eJ6AyHPFSnzoM2L2pAPkL4InnN19dvCei5EYkhYMLd
- S+h6TV/OH2z7YSg6Q4+fs2kM7h9MiNAZBtKMAmq1d+GPwRFrxbe0wDtPcnzACDNlJ4PG ixYw==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=Og6Tyqh06wltZnx6uI4Uz0VzGdRmJQzlnAcslpN+uYs=;
- b=iXomlqSauw4Z54FQVcPu1N0W+/AOZELVqjXvLzT42HBI7LBd5lQucELQbD5ek1LYES
- 5dqgcolwTWBiGqfB5H6+IvS84I7cpTLZYp0K93YqTQ9k5iSx6bh3PDZz1UeUKzhKqjz3
- HXt8itNsUxDjqApRQn2JeT8rMwk0x5r/MYps/KD9ud1wqOm8pe1LEpC/USyMrreO9WKy
- MJkJd2ssPUHePOvSKqp8eSe9d3ae1WcEi6IHdnMU4/Yv7YZyFvYsFd+3RX894QE0WKI7
- TONLC88NoeLEjQ+nCGipzcRo+bnQBTFLc7HTvJpHeiR5YN5NKIPSon70suDhOcrAm8bK Y8vA==
-X-Gm-Message-State:
- APjAAAVBb4PdrmmblCxz3AAj7xZ3UHtSuveCPf7ERjoHiSwoDbb9aOgo
- eWJquonXNfCA1HMebq4+1Fc=
-X-Google-Smtp-Source:
- APXvYqxtj1uUlxozlRfpix2OJSBh/rf48E8qXzOqIpBIhNWgirGOwh1leRYMHVLdpEZaf7as9Agn0A==
-X-Received: by 2002:adf:ce03:: with SMTP id
- p3mr61373726wrn.94.1560934034265; Wed, 19 Jun 2019 01:47:14 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id s63sm755665wme.17.2019.06.19.01.47.13 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:13
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 2/6] ARM: dts: colibri_imx7: Fix lcdif node definition
-Message-Id: <20190619084710.19074-3-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934035-0AIPggVIhb44
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:15.5176
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- 6d6c71b7-c5f6-4329-e878-08d6f492bac1
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:185.132.181.6;IPV:CAL;SCL:-1;CTRY:NL;EFV:NLI;SFV:SKN;SFS:;DIR:INB;SFP:;SCL:-1;SRVR:AM0PR05MB6466;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:None;LANG:en;
-X-MS-Exchange-Organization-SCL: -1
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT028.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- 6d6c71b7-c5f6-4329-e878-08d6f492bac1
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:AM0PR05MB6466;
-X-MS-TrafficTypeDiagnostic: AM0PR05MB6466:
-X-MS-Exchange-PUrlCount: 1
-X-MS-Oob-TLC-OOBClassifiers: OLM:2512;
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:15.4025
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 6d6c71b7-c5f6-4329-e878-08d6f492bac1
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB6466
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.8981251
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- =?iso-8859-1?Q?qHqHra3t8MWayuGiWjplQcOHDMzEtloWMwssJ641P4LVbtIP+/zK00fYH3?=
- =?iso-8859-1?Q?EC/FgBkjEc3fuPW9AsfeG6aszm6Y9wlTFcH8IS8gSVrYvOhg8jtejDFff3?=
- =?iso-8859-1?Q?WLBXPD/uBmHxQ1TVo3TLnAI4d7KWLGejWyDShEx7Vi/KJh1m94LmI1BoFJ?=
- =?iso-8859-1?Q?uQwxEbMVIltLmW0Kfbw2Cx2GwGmESy62pOqHAZxWYlgSd0bK0Zeq0YLnv2?=
- =?iso-8859-1?Q?pov/ZEBccOzWcfOieoVqq6kwOyteP3SexG5tbbTlgTdZulF3MfvgEVbHP3?=
- =?iso-8859-1?Q?c+XwIT3+FkcfSkJmU9LE+7PnnzLiuxASRM33GpWLIgZeNfOWnr2ofzWntI?=
- =?iso-8859-1?Q?rixv35A6eGWmisHnd8nZyppRDX0FX4l+KA0+umSiSwVlyFboQBwEnUn40+?=
- =?iso-8859-1?Q?ND+aiSXguIQ97TgmO51UWrkj56RpASdKgFpAHzMrigShfl1Ku8VPnzDO/0?=
- =?iso-8859-1?Q?R0+jqpN3/ZFYcwgRudfFtY+4kqNzOcNZgBXhLIlRdaVJ2xBKLhJ+ubCE2l?=
- =?iso-8859-1?Q?oC5uG/PXp/GlenwNqrWkIZ1/5rE2d8hTOpbjIYN1J9E24nj/HygiLX5qnG?=
- =?iso-8859-1?Q?hvRq87kF4YWKNiv1S9zYMLpjJaE+QT2xNO1WIBI48mCRv+e0PQNYyK3P4L?=
- =?iso-8859-1?Q?rjjZsRwPx+nw1KHEdtwngSkVtoy8pczE46zQfft0u9ZRjhFVdNdkxfnNj3?=
- =?iso-8859-1?Q?vH/IXs4eXySGWsin1dM3JOCdLhzInwztxQo/GBXv1tdDSK2q//8LrdVsFw?=
- =?iso-8859-1?Q?zpCZmMGeDgjwe0rgpY/4zczElN6xEgs0rwV+yH/VOTWmp1A83sV/9zPRa9?=
- =?iso-8859-1?Q?pnKlSF6u0+th96oIrNokOBn2sHSYvAzDHEWE39BDBm3LrBrU1ujfuUasR1?=
- =?iso-8859-1?Q?XzT3yozvMvefVAW7ECafsWjQnalI3+W6Ic8I4Zr+OeWKzY1xHQqRPsY/SO?=
- =?iso-8859-1?Q?WwvYAPKp+/+sJ4uTktexMSdy8Hdn381eSz3q9DcAYDmh3OCKnbhbkIs40P?=
- =?iso-8859-1?Q?JN7P3R6la+bYM5SER72LYYo65eRVLM6Uj/7q0nFtGc/uwJ+Vpb00PGqD9I?=
- =?iso-8859-1?Q?iPA7pgAKB+e0h8va7PeapWPY1rARWWgBdM/9SQwz22kD/lHOfhJJVDn1W7?=
- =?iso-8859-1?Q?xmtgqlsg=3D=3D?=
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:06 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-Fix lcdif DT node and make it conform to the structure defined in the
-Linux devicetree bindings [1]. Currently there is support only for
-old style lcdif node definitions.
-
-[1] https://www.kernel.org/doc/Documentation/devicetree/bindings/display/mxsfb.txt
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/dts/imx7-colibri.dtsi | 47 +++++++++++++++++++---------------
- 1 file changed, 26 insertions(+), 21 deletions(-)
-
-diff --git a/arch/arm/dts/imx7-colibri.dtsi b/arch/arm/dts/imx7-colibri.dtsi
-index 81717c233d..308e0b2a63 100644
---- a/arch/arm/dts/imx7-colibri.dtsi
-+++ b/arch/arm/dts/imx7-colibri.dtsi
-@@ -113,29 +113,34 @@
- };
-
- &lcdif {
-- u-boot,dm-pre-reloc;
- status = "okay";
-+ display = <&display0>;
-+ u-boot,dm-pre-reloc;
-
-- display-timings {
-- native-mode = <&timing_vga>;
--
-- /* Standard VGA timing */
-- timing_vga: 640x480 {
-- u-boot,dm-pre-reloc;
-- clock-frequency = <25175000>;
-- hactive = <640>;
-- vactive = <480>;
-- hback-porch = <48>;
-- hfront-porch = <16>;
-- vback-porch = <33>;
-- vfront-porch = <10>;
-- hsync-len = <96>;
-- vsync-len = <2>;
--
-- de-active = <1>;
-- hsync-active = <0>;
-- vsync-active = <0>;
-- pixelclk-active = <0>;
-+ display0: display0 {
-+ bits-per-pixel = <18>;
-+ bus-width = <24>;
-+ status = "okay";
-+
-+ display-timings {
-+ native-mode = <&timing_vga>;
-+ timing_vga: 640x480 {
-+ u-boot,dm-pre-reloc;
-+ clock-frequency = <25175000>;
-+ hactive = <640>;
-+ vactive = <480>;
-+ hback-porch = <48>;
-+ hfront-porch = <16>;
-+ vback-porch = <33>;
-+ vfront-porch = <10>;
-+ hsync-len = <96>;
-+ vsync-len = <2>;
-+
-+ de-active = <1>;
-+ hsync-active = <0>;
-+ vsync-active = <0>;
-+ pixelclk-active = <0>;
-+ };
- };
- };
- };
---
-2.17.1
-
-
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:17 2019
-Received: from DBBPR05MB6476.eurprd05.prod.outlook.com
- (2603:10a6:203:69::11) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM5PR0202CA0001.EURPRD02.PROD.OUTLOOK.COM; Wed, 19 Jun 2019
- 08:47:17 +0000
-Received: from AM3PR05CA0128.eurprd05.prod.outlook.com
- (2603:10a6:207:2::30) by DBBPR05MB6476.eurprd05.prod.outlook.com
- (2603:10a6:10:cc::12) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun
- 2019 08:47:17 +0000
-Received: from DB5EUR01FT054.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::200) by AM3PR05CA0128.outlook.office365.com
- (2603:10a6:207:2::30) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.12 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:16 +0000
-Authentication-Results: spf=softfail (sender IP is 185.132.181.6)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 185.132.181.6 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (185.132.181.6) by
- DB5EUR01FT054.mail.protection.outlook.com (10.152.5.133) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:16 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com
- [209.85.221.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id C71EE34006D; Wed, 19 Jun 2019
- 08:47:15 +0000 (UTC)
-Received: by mail-wr1-f68.google.com with SMTP id x17so2389694wrl.9;
- Wed, 19 Jun 2019 01:47:15 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=FfJuEkJ29yu/c0XTbT3mNGR6L49aAUIGpxPuXL6wOxo=;
- b=PkOXo8yrpyvbimKEN4Abs6fyVrfPwc53t1v6YLlddNvyxz2ZrYEfKhEZnWCD8zF7+Y
- UdQDo7bK1ZHRjAb8n6w2Avgun48mAkZ4pJEG34P3Opub89ZmxryYDdxvBrLm9sSTTTW/
- l0mGnyy+3xjjTms7qTxUeUNJ6KSroUQg8lfd9MqhKL9f+HzPKUvawgs3oOyEuayqACK4
- HuzoARpi5D7yDk7QI9Qorwytieu2cAxSL2okUYbRH6o9W6d9aJTIMGUq4kEQdWh0CRZe
- vPKQstRk0We0yMVOuXezIzgvuDo9u49McBpyugNZJMFOTbLSiBRXeNd96MaxWjlK/2R7 g5vQ==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=FfJuEkJ29yu/c0XTbT3mNGR6L49aAUIGpxPuXL6wOxo=;
- b=dmgY1Q7OYCvnadRE7MxQpPih4CLoOToxVGSuinKtdOJfWWu/kFqVTrlZ4WgkoU3gpW
- WgjnUgVwxtjCIoVVBTdAfvoQDKP49cOIHAvR/iJoeah/E3BwBwROaYxvdzOT/GOMPmTu
- 7RCAL9In+4F37/UhWfU56KZ5WIr/bNls8O0o8klF27lMK7jR25u2H6jEEv54Hw2YPX0J
- bwMNiZ/yAzvqgIJCN1I9GIj3UY2yFPWZ41Sw/DtKWJ1ypK2mqTbN+sIkmY+MIPPOlpui
- KkQM9/FmP8Mhj4cdstNBAVgUTaXdkM2rRbhJEgaXOGc0ODMphAJr8Mk/WQ39uZRdTDCS RHXA==
-X-Gm-Message-State:
- APjAAAVUY6E37p7f2CX8bINXmu1XpWCa1yXyNkKBTcToFKDQ7GFevMsr
- 2AsbCSkR172A1cA1C9UxUg8=
-X-Google-Smtp-Source:
- APXvYqy27QzjNAdmxyexCR+EtSrgfx/CPMWkbu35r6fj+uGo7DxQRbO+rd8bUqc5QPMRbn6ELManVQ==
-X-Received: by 2002:a5d:65c5:: with SMTP id
- e5mr29286544wrw.266.1560934035472; Wed, 19 Jun 2019 01:47:15 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id c1sm1202740wrh.1.2019.06.19.01.47.14 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:14
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 3/6] configs: colibri_imx7: enable DM_VIDEO
-Message-Id: <20190619084710.19074-4-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934036-48RNLTRy7JUa
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:16.7174
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- 9c5ecfd9-cb9f-43d0-f9e7-08d6f492bb78
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:185.132.181.6;IPV:CAL;SCL:-1;CTRY:NL;EFV:NLI;SFV:SKN;SFS:;DIR:INB;SFP:;SCL:-1;SRVR:DBBPR05MB6476;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:None;LANG:en;
-X-MS-Exchange-Organization-SCL: -1
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT054.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- 9c5ecfd9-cb9f-43d0-f9e7-08d6f492bb78
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:DBBPR05MB6476;
-X-MS-TrafficTypeDiagnostic: DBBPR05MB6476:
-X-MS-Oob-TLC-OOBClassifiers: OLM:469;
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:16.6253
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 9c5ecfd9-cb9f-43d0-f9e7-08d6f492bb78
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR05MB6476
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.0161314
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- =?iso-8859-1?Q?1PxXVj1J3BBrKnxco1QX2WcYi1p6DC7e6lWkv9dLarOOnOUDWWsdaGN+0w?=
- =?iso-8859-1?Q?HR5IcVZs5sE+81lWVLsh5j8c5M8QxwopTPCP9I5O4P/5MdCryQsAnnfjy6?=
- =?iso-8859-1?Q?1UNnBTZCmN8HyywJ9SVPTf9TudX8mq4JXIMHcwBFl8pKfXtYmZ1b29n1Xl?=
- =?iso-8859-1?Q?c7O49yXB2FTyNxyJqZMEp7u34OmqMaLH9dA1Jy0rXrGs0ZGbziyoJqaK/1?=
- =?iso-8859-1?Q?iSKUM1bSVbsaXnANS6FNP7FlI6/oTRi6jh3SgFkVvCzMrxAXXsLKq/dmzT?=
- =?iso-8859-1?Q?xrWXeXfkeoqeZG+ZEsgXDJ9IHjudRt95Qj/KIm7O1B6POVUAqbsJ+7CbgY?=
- =?iso-8859-1?Q?hSKwb0dWpEsOWOkcNENIDrWgwh8rcWbyYQjZxuBnt4pcjIzPH/J6LCPmkB?=
- =?iso-8859-1?Q?znqY301Oz+LgWztjalo7/FkmVBBLjpb3ZEbph1437NYY4kDsq+fOSb+Jbl?=
- =?iso-8859-1?Q?NeT0gMIkWHHZ2bGy+y5WSEACe4XvbVA3I+dgUUmQhfBEN3FJuEh6QT3rdh?=
- =?iso-8859-1?Q?5foizDDU2tyk28+vbzDOsfHyMOYfhjOvvGrbYePTrOGGZTkIV2VS/gjbg8?=
- =?iso-8859-1?Q?Ls6B6+zSnndfVFtRVb9awPtYxmmT76x+rsGo2LMej2ipxxo41Lb2QDBUxE?=
- =?iso-8859-1?Q?BN/AHJSsd1DFgAoVZmSxMwmc17fXWfgPah6ketrAC5v5KtTjNqbS4oh1zS?=
- =?iso-8859-1?Q?uNIoBJ22b6jiHpKB4AiFlcpXSmNv8J6CxIMZAAf3dwBFioc+6Y0HYD3LMM?=
- =?iso-8859-1?Q?IDViI5AgU5Vvas+Wx5klzecsM+0ahXSfGp8sdM+rVDrWo09nLPnCHVWCCg?=
- =?iso-8859-1?Q?Mi1FrXQI5kJZcsIWDEKvDPgZ50ho/OB86SNXr4wi9pU4C/+wIKsS3DfsDr?=
- =?iso-8859-1?Q?H1ZdOH8keVB/lbry61w0xOXwT5dCYhL9ky0q97YXL624r4LJW6KWaCtHi9?=
- =?iso-8859-1?Q?QSwR+1I2T6OgP6a3RmrfUS4VMs48GOzsWDjKZ+g2oLUCYvvDdwO+lnqguZ?=
- =?iso-8859-1?Q?1bwIDY7NK/1fKhrC6wW0WF/rjKynRHREyDlF/WnFXREVqJUL5vjnXWmS4u?=
- =?iso-8859-1?Q?OEiVK6cYviFWWgMoe5drF3A=3D?=
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:07 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-Enable DM_VIDEO support for Colibri iMX7 NAND version.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/colibri_imx7_defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig
-index efbf5f55a3..6d1a1afc56 100644
---- a/configs/colibri_imx7_defconfig
-+++ b/configs/colibri_imx7_defconfig
-@@ -75,6 +75,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
- CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
- CONFIG_CI_UDC=y
- CONFIG_USB_GADGET_DOWNLOAD=y
--CONFIG_VIDEO=y
-+CONFIG_DM_VIDEO=y
- CONFIG_OF_LIBFDT_OVERLAY=y
- CONFIG_FDT_FIXUP_PARTITIONS=y
---
-2.17.1
-
-
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:21 2019
-Received: from HE1PR0502MB3692.eurprd05.prod.outlook.com
- (2603:10a6:203:91::13) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM5PR0502CA0003.EURPRD05.PROD.OUTLOOK.COM; Wed, 19 Jun 2019
- 08:47:21 +0000
-Received: from HE1PR05CA0308.eurprd05.prod.outlook.com (2603:10a6:7:93::39)
- by HE1PR0502MB3692.eurprd05.prod.outlook.com (2603:10a6:7:85::26) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.12; Wed, 19 Jun
- 2019 08:47:19 +0000
-Received: from DB5EUR01FT044.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::201) by HE1PR05CA0308.outlook.office365.com
- (2603:10a6:7:93::39) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.12 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:19 +0000
-Authentication-Results: spf=softfail (sender IP is 91.209.104.157)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 91.209.104.157 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (91.209.104.157) by
- DB5EUR01FT044.mail.protection.outlook.com (10.152.4.182) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:18 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com
- [209.85.128.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id F0C3B28005D; Wed, 19 Jun 2019
- 08:47:16 +0000 (UTC)
-Received: by mail-wm1-f65.google.com with SMTP id c6so863461wml.0;
- Wed, 19 Jun 2019 01:47:16 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=rDby15+5kWd7VRumMDoT9sWqpIU8cleR+raBPZ6DtQQ=;
- b=eo1ZOR63prvVNqpyCnfSj45vT4QXf8c94TTDINKgrLGzePkY0ez3H/QPKVliy4YHQO
- UCyS8g55gROwIjgb9hfAJGYSqOGrsmBZISAatyax5UdnFpUs3kmzaAoT4VOw8ZdtZHXz
- BPm5QThOz72pEVrZ8icsPYJvAOCsVr1ZDq50kf+Z+cej2n/7eLsEhjDfY0rHVz3LI9wV
- MVAP3ym9jiVYWcBkbhHNG97h+A2reRbBaevc4z7gR2/Lzuaflo9/QVJL7d9F/SByioNC
- OBt38w499qZ7nDQagUigBsJlYgOpjI6f4uH9Nd7FYKHESVkH+mhXi57CPc663wlVB4EV 3bag==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=rDby15+5kWd7VRumMDoT9sWqpIU8cleR+raBPZ6DtQQ=;
- b=kjJ+Xx6VubN9NrD94lFaJQeWbrUnQEMlB3XfHfh/lp0BR7bxEfJBFfhijQPZ0ib9AS
- JjC8CgnN4I5/NQ9tRKQY1kGjnXLEEvK6GJqBYvFIOyGkRBGelZVdr3pOoqQb+hilUhJm
- UQPFVMJ+xjlDjcSt+J6ORUJ8PGFjIW9wC//tzuPWht2VRLfEJiKhBj+t4KotsXKiOz87
- 1INBReF9jBoBfybYU+rupaCMo87yg3sp2RMfd5nRw7fUrwjJC+u1il+XRnSrCaFNOBzK
- y9CE/KCbY9zIFXXAGgM14AC8PhTa0F1l0L1bQBcGo45lshd8I1vzHxR8lp1+jLCX413P HphQ==
-X-Gm-Message-State:
- APjAAAUpHNUgT6EAG8w7ep9KNzLm2fm7kTannX1j8EzeYFH2QK0BDrrr
- H7D5SKYdPAvWLJTE6Phz1dA=
-X-Google-Smtp-Source:
- APXvYqxNt1XTzbcno94NDXI6dYbfrybeRPCpqWM+rngu3ExuBoC/13COM1nEupYeefUeeE/yPaMb2A==
-X-Received: by 2002:a1c:e0c4:: with SMTP id
- x187mr6908137wmg.177.1560934036610; Wed, 19 Jun 2019 01:47:16 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id t6sm831141wmb.29.2019.06.19.01.47.15 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:16
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 4/6] colibri-imx6ull: support building with DM_VIDEO=y
-Message-Id: <20190619084710.19074-5-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934038-IPsMFvB-gl6M
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:18.8261
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- cad5879a-4679-4588-bdd5-08d6f492bcba
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:91.209.104.157;IPV:NLI;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(2980300002)(199004)(189003)(34206002)(61266001)(336012)(57986006)(4326008)(450100002)(426003)(6666004)(55446002)(47776003)(1076003)(356004)(83322999)(16003)(82202003)(95326003)(59536001)(5660300002)(76482006)(2160300002)(7596002)(7636002)(305945005)(86362001)(126002)(51416003)(16586007)(60626007)(956004)(2616005)(26005)(476003)(486006)(48376002)(2351001)(44832011)(36756003)(1096003)(11346002)(246002)(76506005)(73972006)(50226002)(446003)(73392003)(8676002)(50466002)(2361001)(76176011)(60616004);DIR:INB;SFP:;SCL:1;SRVR:HE1PR0502MB3692;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:SoftFail;LANG:en;PTR:dispatch1-eu1.ppe-hosted.com;A:1;MX:1;
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT044.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- cad5879a-4679-4588-bdd5-08d6f492bcba
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:HE1PR0502MB3692;
-X-MS-TrafficTypeDiagnostic: HE1PR0502MB3692:
-X-MS-Oob-TLC-OOBClassifiers: OLM:1303;
-X-MS-Exchange-Organization-SCL: 1
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:18.7480
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- cad5879a-4679-4588-bdd5-08d6f492bcba
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0502MB3692
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:02.2615145
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(20160514016)(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- P/OobbA80fiKh8Nc3BPrpssHdjhsBMkqMj92P6CfBo7tPqG2L7AIYfr50q2YGFN5ZowUChDcE4Fc/ZxFMZ8gQ1byfQRDzPfGfhGjss4OM/Z/fFLu4r0VdRHnZmL35im49QUGmsdpdKMqpeoSVACra1cFz4lTRdW8f7dH5dLJwZ4NYhBcNmd7++Zqz6nggTzJ6AMhlGAx/Ta59hlUL5nBnV4ojtA2fCKfGfhP2nm6XrLmI/3YnV9Jo/WLydjJp8EFvwZPvdPguDwNOsUy5sbmQle/85PzUYL0EDbcCah1gqIGlwmjdbnYW9x4YNziB42oowHsPCYbGT3Ur4xhZNKLysxNEEathOtUqbecZ2JVMi6qCCWRVoHt1U6sfIPKLFWMJX9QPlHhjR+5zKQdRocp86IUMCgaTRPG/LWLEGTdlxBe7WS8TkF8/8/4knhM1uHAlCf+1l2jG6mUPiYPUwDyzNbK864wtX8FBI/AHVyW8CJwBEU81f1bH0WMxN3Kaxpv99f6HEif5PhQwX7frx34bx1P9gEI6hWzlv1GOSiayTjuR71HCH/mR7eU25yTWOzivpDUaGreXiSkO0ppGZdwKhMYb7jyP7YCHrVsAngNyXtuObnc/IR5yRxmYiS2/CzgvsWk+iAHSLIWsiiZAU14Q7qCBNQ4xvsbkKsBN/ej8Af6WgDWWJKnE8yODKTxfc2xMZT/YNzUefjDZ4isM6yUpQU9eCVc9vxbM8T5q3gKx3hqXZN+DKaWsZ8c4pH3+nGe/GOuWyF6a+91z0JXfBKwNQZ/B+WHNZXXlo3PhB3PAsAEJo1AVs4/UrIhj80EEHRm0Jj1un6C2ghebr3Dfum39ku8TT4YkzhRs+oAnK2jDtSDjHdOWbzAh3S8U4bmqNITKVu52U6rOK/LHhSESliQPOl/sQrBzGTW0LFP0XHXv8zRZV6TIXICr6eQ1RFqZ1tu
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:08 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-1. This fixes linking issues when building with DM_VIDEO enabled mxsfb
-driver.
-2. Provide proper defines for both VIDEO=y and DM_VIDEO=y.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/mach-imx/mx6/soc.c | 2 +-
- include/configs/colibri-imx6ull.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-imx/mx6/soc.c b/arch/arm/mach-imx/mx6/soc.c
-index e80f1d484b..86a9eeba0c 100644
---- a/arch/arm/mach-imx/mx6/soc.c
-+++ b/arch/arm/mach-imx/mx6/soc.c
-@@ -549,7 +549,7 @@ const struct boot_mode soc_boot_modes[] = {
- void reset_misc(void)
- {
- #ifndef CONFIG_SPL_BUILD
--#ifdef CONFIG_VIDEO_MXS
-+#if defined(CONFIG_VIDEO_MXS) && !defined(CONFIG_DM_VIDEO)
- lcdif_power_down();
- #endif
- #endif
-diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
-index 21d9a3da01..1c6acf0081 100644
---- a/include/configs/colibri-imx6ull.h
-+++ b/include/configs/colibri-imx6ull.h
-@@ -170,7 +170,7 @@
- #define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_16M
- #define DFU_DEFAULT_POLL_TIMEOUT 300
-
--#ifdef CONFIG_VIDEO
-+#if defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
- #define CONFIG_VIDEO_MXS
- #define MXS_LCDIF_BASE MX6UL_LCDIF1_BASE_ADDR
- #define CONFIG_VIDEO_LOGO
---
-2.17.1
-
-
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:20 2019
-Received: from DBBPR05MB6476.eurprd05.prod.outlook.com
- (2603:10a6:209:85::48) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM6P193CA0143.EURP193.PROD.OUTLOOK.COM; Wed, 19 Jun 2019 08:47:20
- +0000
-Received: from HE1PR05CA0355.eurprd05.prod.outlook.com (2603:10a6:7:94::14)
- by DBBPR05MB6476.eurprd05.prod.outlook.com (2603:10a6:10:cc::12) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun
- 2019 08:47:19 +0000
-Received: from DB5EUR01FT010.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::201) by HE1PR05CA0355.outlook.office365.com
- (2603:10a6:7:94::14) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.12 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:19 +0000
-Authentication-Results: spf=softfail (sender IP is 91.209.104.157)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 91.209.104.157 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (91.209.104.157) by
- DB5EUR01FT010.mail.protection.outlook.com (10.152.4.136) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:18 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com
- [209.85.128.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id 27FC6C0073; Wed, 19 Jun 2019
- 08:47:18 +0000 (UTC)
-Received: by mail-wm1-f66.google.com with SMTP id u8so859045wmm.1;
- Wed, 19 Jun 2019 01:47:18 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=uqH/UNB+2DaMIqMbPS6PZlpLCuVkzYTI9/SJUmkNeN0=;
- b=WT2nLJRW+S/yL5/gEJbGjaUQ8e6HHxQRI+fQBQE5MJ+loPnFZ36f+5NDGMMvJ42tBZ
- ta7YoHIkm6GOWruGrcjjbjl0VpU5CwPY3Cknwi3B9vqFOL3p2AtmuNgjjILtPg9iWIjG
- vC6qBhA3bHXDkLWE7QPRJBGZLQ+sFIUPg7qhHdNJojh00tsEPMisYH5XJzcD45kFGhPh
- pHMgBBZQ4KKJbMmSor829fGJSTsjYydAUpDmeDBfbjscoOndRDE0TPyHG/DwxHKrd7IH
- 3Qwr+vNhJaWQ/nWbkS8oNLGobIVU5MluM98KATRkUiT9o/O3BEUzRYOyHf9iPd72CNVJ OTqg==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=uqH/UNB+2DaMIqMbPS6PZlpLCuVkzYTI9/SJUmkNeN0=;
- b=QrNc8u7+7/l4ygifAev9fM/qIo1THojKFURSb8u4/Ygi+N3/MR5nUhwJEUIrk7ID4P
- vx8sUXsX6Qaei0KfzpV6GICjHLJu7VtQuSlz5Qx3mrGpZ5rh42fzG8R9Mm2yZSOaBEwR
- gycxvkcttnaY9I5HXx3C7aOK6RkbYt0VkQV2bu83K4qFkbYaBqMP6WZ3qKygJEm0246T
- j4QRQIV5AhT9ZyzDiH0t6Oq2qpkqYok1QYolL/iTMJvFaEpKpq/tF7d+JUU2OZnmTc0/
- +7eoTrWDnjpN+E+DJdGSGoGF1pF5EBxy5wxYO7Av7yOOTrScHELkr+meYlokNpLfohfx Q0Uw==
-X-Gm-Message-State:
- APjAAAXwSZ55kwRo9HFfMPzC2VJF/sYlQVcyj2Iq6mQL554uioLgXODZ
- CrnGJOAaseDe71/4qTLfTh0=
-X-Google-Smtp-Source:
- APXvYqzLihrpU2TIrqqBrA4QWFq1CNwCVmCB/F62b6XbHpQLuiJGArUzeKvJq3INtqYjPJ5zRa8cSw==
-X-Received: by 2002:a1c:be12:: with SMTP id
- o18mr7102244wmf.21.1560934037777; Wed, 19 Jun 2019 01:47:17 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id h17sm11322444wrq.79.2019.06.19.01.47.17 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:17
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 5/6] ARM: dts: colibri-imx6ull: extend lcdif node
-Message-Id: <20190619084710.19074-6-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934038-HyXq0asLRXMd
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:18.9545
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- 494b618e-fde9-4662-558b-08d6f492bcce
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:91.209.104.157;IPV:NLI;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(2980300002)(189003)(199004)(476003)(7636002)(16586007)(336012)(1076003)(5660300002)(73972006)(34206002)(73392003)(86362001)(16003)(26005)(446003)(36756003)(82202003)(11346002)(6666004)(2616005)(55446002)(2160300002)(95326003)(60626007)(83322999)(50226002)(76482006)(426003)(2361001)(60616004)(8676002)(57986006)(76506005)(47776003)(59536001)(956004)(356004)(1096003)(76176011)(61266001)(2351001)(51416003)(7596002)(305945005)(486006)(126002)(246002)(4326008)(450100002)(44832011)(50466002)(48376002);DIR:INB;SFP:;SCL:1;SRVR:DBBPR05MB6476;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:SoftFail;LANG:en;PTR:dispatch1-eu1.ppe-hosted.com;MX:1;A:1;
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT010.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- 494b618e-fde9-4662-558b-08d6f492bcce
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:DBBPR05MB6476;
-X-MS-TrafficTypeDiagnostic: DBBPR05MB6476:
-X-MS-Oob-TLC-OOBClassifiers: OLM:248;
-X-MS-Exchange-Organization-SCL: 1
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:18.8724
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 494b618e-fde9-4662-558b-08d6f492bcce
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR05MB6476
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.4435088
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(20160514016)(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- XhHsVA6UsiOBgp/PfKol8pg9IPlDVsDf4n1UmRlGgBH9+AjJsPyxyk7DKs/wgB99SbX9phRk4BXebrSZrH6jc69NbBWbX1/xwoGHQ9Y1pWLSRLzqsjPIb0iM/wXklFlApOK8gIGCmZtcgfJrb0KjrH2s8jDDY2dMo4SS1oXXKMtQ2fG2ZgKOIBW+0wQPfcmYHz3xImUiGka9WJhmiXr+1Y5vI2Rj7FtJwKTAKkSsZdBerLL5M/T/kM6DxMGu3FvIbhcIJ4acj6nGyLdAYUG4Hkvhti4E7wVJjVsIBiPtqtZiFe+p5IBYs2Y6IzyqjDEXPrrRjaCQinFZGR41gLBOwXm8zHeVKT8NWmDjGpNu5FvuvqJkOt0t+eRV4NWcm10EpNQSsN3IcvnXhbcROOEN6er4ZE/HV8Bj3SYpzON6VjRZkPanHjCTjzkYDkXY7edq+FSmQmZ9+jYv4gqhyqq+b54AQrPK1m4QHDsGClbRZQJmfkoPgGjMPXocYdNssdOJ5FDsitDVjTatFjyU+ikPNbG4mUIKVg00hsDjbfDHBsbrYzCFcsXn+wcf8iN4bvhBSESEXU4qRHZ0N0DZaWN+u91CePKM4w5EDXb2K7p3OiA5CIo764sBHj2bs8q9KbGpZ/3pBJ0N4tbXBAxh29Mpl12aGD2vsrXfUiO8eILV4LH93XHhb++vkQ9bIcdIERyUTU+sDoVgNbl2mDpMnT+IWJScdzN7bLlSNRVaulGZJsIrVv+Dtzq3+2kBsJCzvIVpIawY/UfBKYXcXaO/ETrApfix8UpaIjVR0RQaKaj99nlm/nwARaN0sPuqWxkYjIdRaea3Cr6rtMm+PEd1VvNtyBuN9Aibwxrxvqdw1ayVHrbMRtZrxrJKETBeUsJm/YAaI9bjnr2RZkn/G8rGNiTYou/HMNzPQwkICrsYpmOxQNoEE4SB65bLg7uIT+cSjYVO
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:09 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-Provide proper display timings for lcdif node, used by mxsfb DM_VIDEO
-enabled framebuffer driver.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- arch/arm/dts/imx6ull-colibri.dts | 32 ++++++++++++++++++++++++++++++++
- 1 file changed, 32 insertions(+)
-
-diff --git a/arch/arm/dts/imx6ull-colibri.dts b/arch/arm/dts/imx6ull-colibri.dts
-index 6c847ab792..262205ac5e 100644
---- a/arch/arm/dts/imx6ull-colibri.dts
-+++ b/arch/arm/dts/imx6ull-colibri.dts
-@@ -12,8 +12,10 @@
- compatible = "toradex,colibri-imx6ull", "fsl,imx6ull";
-
- aliases {
-+ u-boot,dm-pre-reloc;
- mmc0 = &usdhc1;
- usb0 = &usbotg1; /* required for ums */
-+ display0 = &lcdif;
- };
-
- chosen {
-@@ -156,6 +158,36 @@
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcdif_dat
- &pinctrl_lcdif_ctrl>;
-+ status = "okay";
-+ display = <&display0>;
-+ u-boot,dm-pre-reloc;
-+
-+ display0: display0 {
-+ bits-per-pixel = <18>;
-+ bus-width = <24>;
-+ status = "okay";
-+
-+ display-timings {
-+ native-mode = <&timing_vga>;
-+ timing_vga: 640x480 {
-+ u-boot,dm-pre-reloc;
-+ clock-frequency = <25175000>;
-+ hactive = <640>;
-+ vactive = <480>;
-+ hback-porch = <48>;
-+ hfront-porch = <16>;
-+ vback-porch = <33>;
-+ vfront-porch = <10>;
-+ hsync-len = <96>;
-+ vsync-len = <2>;
-+
-+ de-active = <1>;
-+ hsync-active = <0>;
-+ vsync-active = <0>;
-+ pixelclk-active = <0>;
-+ };
-+ };
-+ };
- };
-
- /* PWM <A> */
---
-2.17.1
-
-
-From igor.opaniuk@gmail.com Wed Jun 19 08:47:24 2019
-Received: from VI1PR0502MB3694.eurprd05.prod.outlook.com
- (2603:10a6:209:3e::36) by AM6PR0502MB3688.eurprd05.prod.outlook.com with
- HTTPS via AM6P193CA0023.EURP193.PROD.OUTLOOK.COM; Wed, 19 Jun 2019 08:47:24
- +0000
-Received: from DB6PR05CA0021.eurprd05.prod.outlook.com (2603:10a6:6:14::34)
- by VI1PR0502MB3694.eurprd05.prod.outlook.com (2603:10a6:803:10::22) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.11; Wed, 19 Jun
- 2019 08:47:20 +0000
-Received: from DB5EUR01FT055.eop-EUR01.prod.protection.outlook.com
- (2a01:111:f400:7e02::205) by DB6PR05CA0021.outlook.office365.com
- (2603:10a6:6:14::34) with Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1987.10 via Frontend
- Transport; Wed, 19 Jun 2019 08:47:20 +0000
-Authentication-Results: spf=softfail (sender IP is 91.209.104.157)
- smtp.mailfrom=gmail.com; toradex.com; dkim=pass (signature was verified)
- header.d=gmail.com;toradex.com; dmarc=pass action=none
- header.from=gmail.com;compauth=pass reason=100
-Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
- gmail.com discourages use of 91.209.104.157 as permitted sender)
-Received: from dispatch1-eu1.ppe-hosted.com (91.209.104.157) by
- DB5EUR01FT055.mail.protection.outlook.com (10.152.5.250) with Microsoft
- SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384)
- id 15.20.2008.13 via Frontend Transport; Wed, 19 Jun 2019 08:47:19 +0000
-X-Virus-Scanned: Proofpoint Essentials engine
-Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com
- [209.85.128.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256
- (128/128 bits)) (No client certificate requested) by mx1-eu1.ppe-hosted.com
- (PPE Hosted ESMTP Server) with ESMTPS id 5D93340058; Wed, 19 Jun 2019
- 08:47:19 +0000 (UTC)
-Received: by mail-wm1-f67.google.com with SMTP id s3so822815wms.2;
- Wed, 19 Jun 2019 01:47:19 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
- s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references;
- bh=TMyvzeWpaZI/mnuVw1jNz3PBitym8lD7GgEwGlrIrl0=;
- b=ViZ8ukqZdr82Q/hpcMJ5Dg+aFnOtqF0JJ/xQqOBuMd8LgDCPf3Lkmti2fe9mwt+Z1D
- 78iJWdDsx7eiNakdvWy+NlF0Rp4VGtvy/PcpyczAJj13A6OjMQuw/OLiaSmZAjA9KibG
- U/9X13Cs+seWuhC/5/uVOa82Nckq6RmR5mtl7NsBjjQ2q0fQSGQjxZFxYcOGrDzNDqnA
- 6HUu9UptqT/GjWoBNu/+2VRHBFgUv/ObERndIGHhR3yVI7U76CtHx8H8/vhz7zQWJIuB
- AuixdnlkXKSRcWpjqecPVp6L1HaOoU/u3sCSV1GGZ8nT+dGOsDWn3YKiLPHGjY7gFu0m gORQ==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
- s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references; bh=TMyvzeWpaZI/mnuVw1jNz3PBitym8lD7GgEwGlrIrl0=;
- b=HY8i1yxHR2mIcT4x0ySbipxZ/LHHH0UYtB8KHwLfam300zj5K0d6/7Ig8WHJq3I5qe
- F43AaUI34NzeMyMU8abSSIHjxmPmwyKqmM8DJlbDQF+SXsKjNWtrDPtoP9IpDZFYPkY8
- eGzBjlEi/J6PZNenACby07bSZEQhlP+pyFX5pjws5QXIWq7OFfGQJ8m5fmcomr7r0lhl
- nHCe9V/1sgoT88ZDo4cM09KShKAizwGzQyXDCjA9PSByrvbZpstIA1irI4BXGdsmNESn
- w33dAdxRzK96KULkcMH/f8WCOu7+4+/Hy8uJHaLouxLCcM2PKBRlaKCQNsPVkycf7qBi 53Cw==
-X-Gm-Message-State:
- APjAAAWtXDLf9pcq/5dxUosB11+z2hg8kBegr4aIoRy6i6wMbUOP0/Qi
- BRW+OGcfb7gesDSYrZKc12M=
-X-Google-Smtp-Source:
- APXvYqxyR7ijNOJB8nCiuPtIIH5MfXJyoWl+b+w/BqKYZMSE9QdQXX/GaPjrqeyzc2E/2NLGjYJp0g==
-X-Received: by 2002:a1c:ac81:: with SMTP id
- v123mr7433236wme.145.1560934039015; Wed, 19 Jun 2019 01:47:19 -0700 (PDT)
-Received: from localhost ([194.105.145.90]) by smtp.gmail.com with ESMTPSA
- id a84sm1193220wmf.29.2019.06.19.01.47.18 (version=TLS1_2
- cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 19 Jun 2019 01:47:18
- -0700 (PDT)
-From: Igor Opaniuk <igor.opaniuk@gmail.com>
-To: u-boot@lists.denx.de
-Cc: agust@denx.de,
- albert.u.boot@aribaud.net,
- sbabic@denx.de,
- festevam@gmail.com,
- uboot-imx@nxp.com,
- peng.fan@nxp.com,
- jagan@amarulasolutions.com,
- marcel.ziswiler@toradex.com,
- stefan@agner.ch,
- max.krummenacher@toradex.com
-Subject: [PATCH 6/6] configs: colibri-imx6ull: switch to DM_VIDEO
-Message-Id: <20190619084710.19074-7-igor.opaniuk@gmail.com>
-X-Mailer: git-send-email 2.17.1
-In-Reply-To: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-References: <20190619084710.19074-1-igor.opaniuk@gmail.com>
-X-MDID: 1560934039-JBqO6EPdzzVc
-Return-Path: igor.opaniuk@gmail.com
-X-MS-Exchange-Organization-ExpirationStartTime: 19 Jun 2019 08:47:20.0778
- (UTC)
-X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
-X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
-X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
-X-MS-Exchange-Organization-Network-Message-Id:
- 67a210b5-bbc2-4aac-bcf6-08d6f492bd79
-X-EOPAttributedMessage: 0
-X-EOPTenantAttributedMessage: d9995866-0d9b-4251-8315-093f062abab4:0
-X-MS-Exchange-Organization-MessageDirectionality: Incoming
-X-Forefront-Antispam-Report:
- CIP:91.209.104.157;IPV:NLI;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(2980300002)(199004)(189003)(11346002)(16003)(336012)(83322999)(36756003)(356004)(6666004)(1076003)(14444005)(486006)(47776003)(61266001)(8676002)(60626007)(34206002)(50466002)(59536001)(95326003)(4744005)(4326008)(82202003)(2160300002)(450100002)(73972006)(246002)(2351001)(2361001)(76506005)(48376002)(476003)(7636002)(86362001)(7596002)(446003)(126002)(2616005)(76482006)(26005)(5660300002)(426003)(956004)(57986006)(16586007)(1096003)(55446002)(76176011)(51416003)(60616004)(50226002)(73392003)(44832011)(305945005);DIR:INB;SFP:;SCL:1;SRVR:VI1PR0502MB3694;H:dispatch1-eu1.ppe-hosted.com;FPR:;SPF:SoftFail;LANG:en;PTR:dispatch1-eu1.ppe-hosted.com;A:1;MX:1;
-Content-Type: text/plain
-X-MS-Exchange-Organization-AuthSource:
- DB5EUR01FT055.eop-EUR01.prod.protection.outlook.com
-X-MS-Exchange-Organization-AuthAs: Anonymous
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id:
- 67a210b5-bbc2-4aac-bcf6-08d6f492bd79
-X-Microsoft-Antispam:
- BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(5600148)(711020)(4605104)(4709080)(8001031)(1402095)(71702078);SRVR:VI1PR0502MB3694;
-X-MS-TrafficTypeDiagnostic: VI1PR0502MB3694:
-X-MS-Oob-TLC-OOBClassifiers: OLM:469;
-X-MS-Exchange-Organization-SCL: 1
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2019 08:47:19.9987
- (UTC)
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- 67a210b5-bbc2-4aac-bcf6-08d6f492bd79
-X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4
-X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0502MB3694
-X-MS-Exchange-Transport-EndToEndLatency: 00:00:04.1660186
-X-MS-Exchange-Processed-By-BccFoldering: 15.20.1987.013
-X-Microsoft-Antispam-Mailbox-Delivery:
- ucf:0;jmr:0;ex:0;auth:0;dest:I;ENG:(20160514016)(750119)(520011016)(944506303)(944626516);
-X-Microsoft-Antispam-Message-Info:
- nSzVwPz1QEG/mvEFc1fd1j6+EuKMZuKqJi6V7sfYBybJsDfGEanPHkfJ2slf7hv5xlooQhrR0m6iEUMelgBfa1xe3ohy8MxddxUwTLThTUAoqGwX+U0X2cZll+hisXzRDdCEEsitsRLdHNqCkn3PKQ0zIgYGkXfmNESjUb8yhr+RifxFWkZfIvlxr0xWctnnfnsO1GnZB05suSw+vuXQx6/cE74tG7/iinN18IdSgKtBPyvmRqFTAu8FhIewlsvI49JLh5W+zbCYqUsBw9ohvX/9W/ntTxbmwnzP0ybYPvZlWzZYdJwJcOTYQuLcqiQdfBmBkQEa00Y79Z3GWg/Dmvxb1fa+9VN2929JL9UTZXTivKwsjHjQttX62YLdSyJNXB+TuCrawXlgxXa3/m4tVyCoddWgbdH19nR0WBsY4MekRTrk14nMrUA13r45rfHyciLf9x2spqP+qnbD1E2uzcNIvQkB+JJI4HjbU2su2EWxemhLAcWUugUTxjSU6a/RwjRWuBErxDKu2TS11wBF001lxO3AuxJNztHM6MhYBAifDyT7N2YhnzlD/vJJMTlU1tgo4qewJ7LaK+Mz34j8xo3zjPCr7xQhDJ2eErHOSLKIx5IAy+aHFx9GSs4QNiqYuQAHaGYhuvTmh7EUwvck42/IUlSZDg4JcbP9wrczyGg4zqaPl33lU9anb4KhXeQVD0bAeAgb+crqhW9K/NTVsH7G0HzYBIShkVQ4jG5rvV12qbuojjk4OyW323bKH2R28S/YurzgtDP1WWzpR6/GDbOoTGIDDmGOnzSmDUFE4D8I9pu8tnQL7yf48ujzP/oG1nWbJgddvEWM0oyhDvqqpNCMgHKj5Go7qK9zQXBs95wsUdNTnuhTjvCeKa0Qek5KIe9jAfnplgeo/57jpUt2GoINUQShbP+zwqmIyG+4NPKGjVgf2mPQ0UQiR0X9hhMiD1+v31EMZLaJhL2Gnzeskg==
-MIME-Version: 1.0
-Date: Wed, 19 Jun 2019 11:47:10 +0300
-X-Evolution-Source: 1468251588.7413.5@roman-pc.toradex.int
-Content-Transfer-Encoding: 8bit
-
-From: Igor Opaniuk <igor.opaniuk@toradex.com>
-
-Use CONFIG_DM_VIDEO=y by default for Colibri iMX6ULL.
-
-Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
----
- configs/colibri-imx6ull_defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configs/colibri-imx6ull_defconfig b/configs/colibri-imx6ull_defconfig
-index 5c89439f7b..ac5c519346 100644
---- a/configs/colibri-imx6ull_defconfig
-+++ b/configs/colibri-imx6ull_defconfig
-@@ -80,6 +80,6 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
- CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
- CONFIG_CI_UDC=y
- CONFIG_USB_GADGET_DOWNLOAD=y
--CONFIG_VIDEO=y
-+CONFIG_DM_VIDEO=y
- CONFIG_OF_LIBFDT_OVERLAY=y
- CONFIG_FDT_FIXUP_PARTITIONS=y
---
-2.17.1
-
-
diff --git a/recipes-bsp/u-boot-mainline/u-boot-common.inc b/recipes-bsp/u-boot-mainline/u-boot-common.inc
deleted file mode 100644
index 0e739d4..0000000
--- a/recipes-bsp/u-boot-mainline/u-boot-common.inc
+++ /dev/null
@@ -1,52 +0,0 @@
-HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
-SECTION = "bootloaders"
-DEPENDS += "flex-native bison-native"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e"
-PE = "1"
-
-# We use the revision in order to avoid having to fetch it from the
-# repo during parse
-SRCREV = "77f6e2dd0551d8a825bab391a1bd6b838874bcd4"
-
-SRC_URI = "git://git.denx.de/u-boot.git"
-
-# patches in flight
-SRC_URI += " \
- file://0001-usb-limit-USB_MAX_XFER_BLK-to-256.patch \
- file://0002-misc-imx8-add-sc_misc_get_temp.patch \
- file://0003-thermal-add-i.MX8-thermal-driver.patch \
- file://0004-imx-imx8dx-qxp-enable-thermal.patch \
- file://0005-misc-imx8-add-sc_rm_set_master_sid.patch \
- file://0006-MLK-14938-8-imx8-Add-SMMU-setup-to-Soc-codes.patch \
- file://0007-apalis-imx8-enable-smmu-setup.patch \
- file://0008-MLK-16087-imx8qm-qxp-Disable-kernel-FDT-nodes-for-th.patch \
- file://0009-MLK-16560-1-imx8-Configure-sids-based-on-iommu-prope.patch \
- file://0010-apalis-imx8-enable-of_system_setup.patch \
- file://0011-MLK-17205-1-video-imx-hdp-Adding-support-for-HDP-fir.patch \
- file://0012-MLK-17205-2-video-imx-hdp-Adding-HDP-firmware-loadin.patch \
- file://0013-MLK-17205-3-video-imx-hdp-Adding-configs-for-HDP-fir.patch \
- file://0014-apalis-imx8-enable-hdp-firmware-loading.patch \
- \
- file://0001-imx8-cpu-fix-warning-for-cpu_imx_get_temp.patch \
- file://0002-video-fsl_dcu_fb-refactor-init-functions.patch \
- file://0003-video-fsl_dcu_fb-add-DM_VIDEO-support.patch \
- file://0004-ARM-dts-colibri_vf-Add-dcu0-node.patch \
- file://0005-colibri_vf-enable-DM_VIDEO.patch \
- file://0006-colibri-apalis-tegra-drop-DFU-support.patch \
- file://0007-colibri-apalis-imx-drop-DFU-support.patch \
- \
- file://0001-video-mxsfb-fix-mxsfb-fbdev-binding-issues.patch \
- file://0002-ARM-dts-colibri_imx7-Fix-lcdif-node-definition.patch \
- file://0003-configs-colibri_imx7-enable-DM_VIDEO.patch \
- file://0004-colibri-imx6ull-support-building-with-DM_VIDEO-y.patch \
- file://0005-ARM-dts-colibri-imx6ull-extend-lcdif-node.patch \
- file://0006-configs-colibri-imx6ull-switch-to-DM_VIDEO.patch \
- \
- file://0001-apalis_imx6-increase-phy-autoneg-timeout.patch \
- \
- file://0001-apalis_imx6-fix-set_emmcargs-wrapper.patch \
-"
-
-S = "${WORKDIR}/git"
diff --git a/recipes-bsp/u-boot-mainline/u-boot-fw-utils_2019.07plus.bb b/recipes-bsp/u-boot-mainline/u-boot-fw-utils_2019.07plus.bb
deleted file mode 100644
index b5ce568..0000000
--- a/recipes-bsp/u-boot-mainline/u-boot-fw-utils_2019.07plus.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require u-boot-common.inc
-
-SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
-DEPENDS += "mtd-utils"
-
-INSANE_SKIP_${PN} = "already-stripped"
-EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1'
-EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
-
-inherit uboot-config
-
-do_compile () {
- oe_runmake ${UBOOT_MACHINE}
- oe_runmake envtools
-}
-
-do_install () {
- install -d ${D}${base_sbindir}
- install -d ${D}${sysconfdir}
- install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
- install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_setenv
- install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config
-}
-
-do_install_class-cross () {
- install -d ${D}${bindir_cross}
- install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
- install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
-}
-
-SYSROOT_DIRS_append_class-cross = " ${bindir_cross}"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-BBCLASSEXTEND = "cross"
diff --git a/recipes-bsp/u-boot-mainline/u-boot-tools_2019.07plus.bb b/recipes-bsp/u-boot-mainline/u-boot-tools_2019.07plus.bb
deleted file mode 100644
index bede984..0000000
--- a/recipes-bsp/u-boot-mainline/u-boot-tools_2019.07plus.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-require u-boot-common.inc
-
-SUMMARY = "U-Boot bootloader tools"
-DEPENDS += "openssl"
-
-PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage"
-PROVIDES_class-native = "u-boot-mkimage-native u-boot-mkenvimage-native"
-
-PACKAGES += "${PN}-mkimage ${PN}-mkenvimage"
-
-# Required for backward compatibility with "u-boot-mkimage-xxx.bb"
-RPROVIDES_${PN}-mkimage = "u-boot-mkimage"
-RREPLACES_${PN}-mkimage = "u-boot-mkimage"
-RCONFLICTS_${PN}-mkimage = "u-boot-mkimage"
-
-EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
-EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
-EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
-
-SED_CONFIG_EFI = '-e "s/CONFIG_EFI_LOADER=.*/# CONFIG_EFI_LOADER is not set/"'
-SED_CONFIG_EFI_x86 = ''
-SED_CONFIG_EFI_x86-64 = ''
-SED_CONFIG_EFI_arm = ''
-SED_CONFIG_EFI_armeb = ''
-SED_CONFIG_EFI_aarch64 = ''
-
-do_compile () {
- oe_runmake sandbox_defconfig
-
- # Disable CONFIG_CMD_LICENSE, license.h is not used by tools and
- # generating it requires bin2header tool, which for target build
- # is built with target tools and thus cannot be executed on host.
- sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} .config
-
- oe_runmake cross_tools NO_SDL=1
-}
-
-do_install () {
- install -d ${D}${bindir}
-
- # mkimage
- install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage
- ln -sf uboot-mkimage ${D}${bindir}/mkimage
-
- # mkenvimage
- install -m 0755 tools/mkenvimage ${D}${bindir}/uboot-mkenvimage
- ln -sf uboot-mkenvimage ${D}${bindir}/mkenvimage
-
- # dumpimage
- install -m 0755 tools/dumpimage ${D}${bindir}/uboot-dumpimage
- ln -sf uboot-dumpimage ${D}${bindir}/dumpimage
-
- # fit_check_sign
- install -m 0755 tools/fit_check_sign ${D}${bindir}/uboot-fit_check_sign
- ln -sf uboot-fit_check_sign ${D}${bindir}/fit_check_sign
-}
-
-ALLOW_EMPTY_${PN} = "1"
-FILES_${PN} = ""
-FILES_${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage ${bindir}/uboot-dumpimage ${bindir}/dumpimage ${bindir}/uboot-fit_check_sign ${bindir}/fit_check_sign"
-FILES_${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage"
-
-RDEPENDS_${PN}-mkimage += "dtc"
-RDEPENDS_${PN} += "${PN}-mkimage ${PN}-mkenvimage"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-bsp/u-boot-mainline/u-boot_2019.07plus.bb b/recipes-bsp/u-boot-mainline/u-boot_2019.07plus.bb
deleted file mode 100644
index c7368c4..0000000
--- a/recipes-bsp/u-boot-mainline/u-boot_2019.07plus.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require u-boot-common.inc
-require u-boot.inc
-require recipes-bsp/u-boot/u-boot-toradex-initial-env.inc
-
-DEPENDS += "bc-native dtc-native"
diff --git a/recipes-bsp/u-boot-mainline/files/colibri-imx6ull/fw_env.config b/recipes-bsp/u-boot/files/colibri-imx6ull/fw_env.config
index 930bcee..930bcee 100644
--- a/recipes-bsp/u-boot-mainline/files/colibri-imx6ull/fw_env.config
+++ b/recipes-bsp/u-boot/files/colibri-imx6ull/fw_env.config
diff --git a/recipes-bsp/u-boot-mainline/files/colibri-imx7/fw_env.config b/recipes-bsp/u-boot/files/colibri-imx7/fw_env.config
index b59116d..b59116d 100644
--- a/recipes-bsp/u-boot-mainline/files/colibri-imx7/fw_env.config
+++ b/recipes-bsp/u-boot/files/colibri-imx7/fw_env.config
diff --git a/recipes-bsp/u-boot-mainline/files/mx6/fw_env.config b/recipes-bsp/u-boot/files/mx6/fw_env.config
index a9e724e..a9e724e 100644
--- a/recipes-bsp/u-boot-mainline/files/mx6/fw_env.config
+++ b/recipes-bsp/u-boot/files/mx6/fw_env.config
diff --git a/recipes-bsp/u-boot-mainline/files/fw_env.config b/recipes-bsp/u-boot/files/vf/fw_env.config
index e054ccb..51f09d1 100644
--- a/recipes-bsp/u-boot-mainline/files/fw_env.config
+++ b/recipes-bsp/u-boot/files/vf/fw_env.config
@@ -5,18 +5,6 @@
# Futhermore, if the Flash sector size is ommitted, this value is assumed to
# be the same as the Environment size, which is valid for NOR and SPI-dataflash
-# NOR example
# MTD device name Device offset Env. size Flash sector size Number of sectors
-#/dev/mtd1 0x0000 0x4000 0x4000
-#/dev/mtd2 0x0000 0x4000 0x4000
-
-# MTD SPI-dataflash example
-# MTD device name Device offset Env. size Flash sector size Number of sectors
-#/dev/mtd5 0x4200 0x4200
-#/dev/mtd6 0x4200 0x4200
-
-# NAND example
-#/dev/mtd0 0x4000 0x4000 0x20000 2
-
-# Block device example
-#/dev/mmcblk0 0xc0000 0x20000
+# Colibri VF61
+/dev/mtd2 0x00000000 0x00020000 0x20000 4
diff --git a/recipes-bsp/u-boot/u-boot-toradex-common.inc b/recipes-bsp/u-boot/u-boot-toradex-common.inc
new file mode 100644
index 0000000..fcb454d
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-common.inc
@@ -0,0 +1,25 @@
+HOMEPAGE = "http://www.denx.de/wiki/U-Boot/WebHome"
+SECTION = "bootloaders"
+DEPENDS += "flex-native bison-native"
+
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e"
+PE = "1"
+
+PV = "2019.07+git${SRCPV}"
+LOCALVERSION = "-${TDX_VER_ITEM}"
+inherit fsl-u-boot-localversion
+
+# We use the revision in order to avoid having to fetch it from the
+# repo during parse
+SRCREV = "e60e2c0d3f44f42642bb4dbf648a3b25142fd8d1"
+SRCBRANCH = "2019.07-toradex-next"
+SRCREV_use-head-next = "${AUTOREV}"
+SRCBRANCH_use-head-next = "2019.07-toradex-next"
+
+SRC_URI = "git://git.toradex.com/u-boot-toradex.git;protocol=https;branch=${SRCBRANCH}"
+
+S = "${WORKDIR}/git"
+
+# defaults
+TDX_VER_ITEM ??= "0"
diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bbappend b/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bbappend
deleted file mode 100644
index 9d6d46d..0000000
--- a/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2016.11.bbappend
+++ /dev/null
@@ -1,31 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
-
-SRCREV = "83a53c1c0c6fd813bd655b4f88fd07bf798e11d7"
-SRCREV_use-head-next = "${AUTOREV}"
-SRCBRANCH_use-head-next = "2016.11-toradex-next"
-SRC_URI += "file://fw_unlock_mmc.sh"
-
-PV = "2016.11+git${SRCPV}"
-LOCALVERSION ?= "-${TDX_VER_ITEM}"
-
-S = "${WORKDIR}/git"
-
-install_unlock_emmc() {
- install -d ${D}${sysconfdir}/profile.d/
- install -m 0644 ${WORKDIR}/fw_unlock_mmc.sh ${D}${sysconfdir}/profile.d/fw_unlock_mmc.sh
-}
-
-do_install_append_apalis-imx6() {
- install_unlock_emmc
-}
-
-do_install_append_colibri-imx6() {
- install_unlock_emmc
-}
-
-do_install_append_colibri-imx7-emmc() {
- install_unlock_emmc
-}
-
-# defaults
-TDX_VER_ITEM ??= "0"
diff --git a/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2019.07.bb b/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2019.07.bb
new file mode 100644
index 0000000..3f036c1
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-toradex-fw-utils_2019.07.bb
@@ -0,0 +1,72 @@
+require u-boot-toradex-common.inc
+
+SUMMARY = "U-Boot bootloader fw_printenv/setenv utilities"
+DEPENDS += "mtd-utils"
+
+SRC_URI += " \
+ file://fw_env.config \
+ file://fw_unlock_mmc.sh \
+"
+
+INSANE_SKIP_${PN} = "already-stripped"
+EXTRA_OEMAKE_class-target = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" V=1'
+EXTRA_OEMAKE_class-cross = 'HOSTCC="${CC} ${CFLAGS} ${LDFLAGS}" V=1'
+
+inherit uboot-config
+
+do_compile () {
+ oe_runmake ${UBOOT_MACHINE}
+ oe_runmake envtools
+}
+
+do_install () {
+ install -d ${D}${base_sbindir}
+ install -d ${D}${sysconfdir}
+ install -m 755 ${S}/tools/env/fw_printenv ${D}${base_sbindir}/fw_printenv
+ ln -s fw_printenv ${D}${base_sbindir}/fw_setenv
+
+ if [ -e ${WORKDIR}/fw_env.config ]; then
+ install -m 0644 ${WORKDIR}/fw_env.config ${D}${sysconfdir}/fw_env.config
+ else
+ install -m 0644 ${S}/tools/env/fw_env.config ${D}${sysconfdir}/fw_env.config
+ fi
+}
+
+install_unlock_emmc() {
+ install -d ${D}${sysconfdir}/profile.d/
+ install -m 0644 ${WORKDIR}/fw_unlock_mmc.sh ${D}${sysconfdir}/profile.d/fw_unlock_mmc.sh
+}
+
+do_install_append_apalis-imx6() {
+ install_unlock_emmc
+}
+
+do_install_append_colibri-imx6() {
+ install_unlock_emmc
+}
+
+do_install_append_colibri-imx7-emmc() {
+ install_unlock_emmc
+}
+
+do_install_append_apalis-imx8() {
+ install_unlock_emmc
+}
+
+do_install_append_colibri-imx8x() {
+ install_unlock_emmc
+}
+
+do_install_class-cross () {
+ install -d ${D}${bindir_cross}
+ install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_printenv
+ install -m 755 ${S}/tools/env/fw_printenv ${D}${bindir_cross}/fw_setenv
+}
+
+SYSROOT_DIRS_append_class-cross = " ${bindir_cross}"
+
+PROVIDES += "u-boot-fw-utils"
+RPROVIDES_${PN} += "u-boot-fw-utils"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+BBCLASSEXTEND = "cross"
diff --git a/recipes-bsp/u-boot/u-boot-toradex_2016.11.bbappend b/recipes-bsp/u-boot/u-boot-toradex_2016.11.bbappend
deleted file mode 100644
index 5ad16f2..0000000
--- a/recipes-bsp/u-boot/u-boot-toradex_2016.11.bbappend
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-bsp/u-boot/u-boot-toradex-env.inc
-
-LOCALVERSION = "-${TDX_VER_ITEM}"
-
-SRCREV = "83a53c1c0c6fd813bd655b4f88fd07bf798e11d7"
-SRCBRANCH = "2016.11-toradex"
-SRCREV_use-head-next = "${AUTOREV}"
-SRCBRANCH_use-head-next = "2016.11-toradex-next"
-
-# defaults
-TDX_VER_ITEM ??= "0"
diff --git a/recipes-bsp/u-boot-mainline/u-boot_%.bbappend b/recipes-bsp/u-boot/u-boot-toradex_2019.07.bb
index 996f4e9..6e08268 100644
--- a/recipes-bsp/u-boot-mainline/u-boot_%.bbappend
+++ b/recipes-bsp/u-boot/u-boot-toradex_2019.07.bb
@@ -1,3 +1,9 @@
+require u-boot-toradex-common.inc
+require recipes-bsp/u-boot/u-boot.inc
+require recipes-bsp/u-boot/u-boot-toradex-initial-env.inc
+
+DEPENDS += "bc-native dtc-native"
+
# U-Boot is flashed 1k into a NAND block, create a binary which prepends
# U-boot with 1k of zeros to ease flashing
diff --git a/recipes-bsp/u-boot-mainline/u-boot.inc b/recipes-bsp/u-boot/u-boot.inc
index 9a754fd..9a754fd 100644
--- a/recipes-bsp/u-boot-mainline/u-boot.inc
+++ b/recipes-bsp/u-boot/u-boot.inc