Discussion:
[Buildroot] [PATCH 0/3] Initial support for NXP iMX8 (imx8mq-evk)
Erik Larsson
2018-02-18 13:28:28 UTC
Permalink
This series provides initial support for NXP iMX8.

This series of patches are tested against NXP imx8mq-evk.
It only handles basic support for iIMX8, currently no
support for GPU, VPU and other HW features. This series
makes it possible to build a minimal system for imx8mq-evk.

Erik Larsson (3):
imx-mkimage: new package
imx-atf: new package
add support for iMX8MQ-evk board

.../common/imx/genimage.cfg.template_imx8 | 40 ++
board/freescale/common/imx/post-image.sh | 33 +-
board/freescale/imx8mqevk/linux-4.9.config | 625 +++++++++++++++++++++
configs/freescale_imx8mqevk_defconfig | 35 ++
package/Config.in.host | 1 +
package/freescale-imx/Config.in | 8 +-
package/freescale-imx/firmware-imx/Config.in | 2 +-
package/freescale-imx/firmware-imx/firmware-imx.mk | 8 +
package/freescale-imx/imx-atf/Config.in | 5 +
package/freescale-imx/imx-atf/imx-atf.hash | 3 +
package/freescale-imx/imx-atf/imx-atf.mk | 23 +
.../0001-make-bl33-read-env-variables.patch | 37 ++
package/freescale-imx/imx-mkimage/Config.in.host | 5 +
package/freescale-imx/imx-mkimage/imx-mkimage.hash | 3 +
package/freescale-imx/imx-mkimage/imx-mkimage.mk | 23 +
15 files changed, 846 insertions(+), 5 deletions(-)
create mode 100644 board/freescale/common/imx/genimage.cfg.template_imx8
create mode 100644 board/freescale/imx8mqevk/linux-4.9.config
create mode 100644 configs/freescale_imx8mqevk_defconfig
create mode 100644 package/freescale-imx/imx-atf/Config.in
create mode 100644 package/freescale-imx/imx-atf/imx-atf.hash
create mode 100644 package/freescale-imx/imx-atf/imx-atf.mk
create mode 100644 package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
create mode 100644 package/freescale-imx/imx-mkimage/Config.in.host
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.hash
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.mk
--
2.7.4
Erik Larsson
2018-02-18 13:28:29 UTC
Permalink
Signed-off-by: Erik Larsson <***@gmail.com>
---
package/Config.in.host | 1 +
.../0001-make-bl33-read-env-variables.patch | 37 ++++++++++++++++++++++
package/freescale-imx/imx-mkimage/Config.in.host | 5 +++
package/freescale-imx/imx-mkimage/imx-mkimage.hash | 3 ++
package/freescale-imx/imx-mkimage/imx-mkimage.mk | 23 ++++++++++++++
5 files changed, 69 insertions(+)
create mode 100644 package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
create mode 100644 package/freescale-imx/imx-mkimage/Config.in.host
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.hash
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.mk

diff --git a/package/Config.in.host b/package/Config.in.host
index 199a8e9..b1cfa75 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -15,6 +15,7 @@ menu "Host utilities"
source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host"
source "package/faketime/Config.in.host"
+ source "package/freescale-imx/imx-mkimage/Config.in.host"
source "package/fwup/Config.in.host"
source "package/genext2fs/Config.in.host"
source "package/genimage/Config.in.host"
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00 2001
+From: Erik Larsson <***@combitech.se>
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31
+
+Signed-off-by: Erik Larsson <***@gmail.com>
+Signed-off-by: Christopher Dahlberg <***@gmail.com>
+Signed-off-by: Marcus Folkesson <***@gmail.com>
+---
+ iMX8M/mkimage_fit_atf.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/iMX8M/mkimage_fit_atf.sh b/iMX8M/mkimage_fit_atf.sh
+index 3a3bd10..95a11eb 100755
+--- a/iMX8M/mkimage_fit_atf.sh
++++ b/iMX8M/mkimage_fit_atf.sh
+@@ -15,7 +15,7 @@ else
+ ls -lct bl31.bin | awk '{print $5}' >&2
+ fi
+
+-BL32="tee.bin"
++[ -z "$BL32" ] && BL32="tee.bin"
+
+ if [ ! -f $BL32 ]; then
+ BL32=/dev/null
+@@ -25,7 +25,7 @@ else
+ ls -lct tee.bin | awk '{print $5}' >&2
+ fi
+
+-BL33="u-boot-nodtb.bin"
++[ -z "$BL33" ] && BL33="u-boot-nodtb.bin"
+
+ if [ ! -f $BL33 ]; then
+ echo "ERROR: $BL33 file NOT found" >&2
+--
+2.7.4
+
diff --git a/package/freescale-imx/imx-mkimage/Config.in.host b/package/freescale-imx/imx-mkimage/Config.in.host
new file mode 100644
index 0000000..3cf0966
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/Config.in.host
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_HOST_IMX_MKIMAGE
+ bool "host imx-mkimage"
+ help
+ imx-mkimage is used to combine input images and generate
+ final boot image with appropriate IVT set.
diff --git a/package/freescale-imx/imx-mkimage/imx-mkimage.hash b/package/freescale-imx/imx-mkimage/imx-mkimage.hash
new file mode 100644
index 0000000..08d31ce
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/imx-mkimage.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 4ddb144520001c33baa24493f68ef2ea9434ac36bf3ae223f78d7ec581aa484c imx-mkimage-imx_4.9.51_imx8m_beta.tar.gz
+sha256 231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c iMX8dv/COPYING
diff --git a/package/freescale-imx/imx-mkimage/imx-mkimage.mk b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
new file mode 100644
index 0000000..a5b1f93
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# imx-mkimage
+#
+################################################################################
+
+IMX_MKIMAGE_VERSION = imx_4.9.51_imx8m_beta
+IMX_MKIMAGE_SITE = https://source.codeaurora.org/external/imx/imx-mkimage
+IMX_MKIMAGE_SITE_METHOD = git
+IMX_MKIMAGE_LICENSE = GPL-2.0
+IMX_MKIMAGE_LICENSE_FILES = iMX8dv/COPYING
+
+define HOST_IMX_MKIMAGE_BUILD_CMDS
+ $(MAKE) -C $(@D)/iMX8M -f soc.mak mkimage_imx8
+endef
+
+define HOST_IMX_MKIMAGE_INSTALL_CMDS
+ mkdir -p $(HOST_DIR)/bin
+ $(INSTALL) -m 755 $(@D)/iMX8M/mkimage_imx8 $(HOST_DIR)/bin
+ $(INSTALL) -m 755 $(@D)/iMX8M/mkimage_fit_atf.sh $(HOST_DIR)/bin
+endef
+
+$(eval $(host-generic-package))
--
2.7.4
Thomas Petazzoni
2018-02-18 14:51:00 UTC
Permalink
Hello,

Thanks for this contribution!
Post by Erik Larsson
---
package/Config.in.host | 1 +
.../0001-make-bl33-read-env-variables.patch | 37 ++++++++++++++++++++++
package/freescale-imx/imx-mkimage/Config.in.host | 5 +++
package/freescale-imx/imx-mkimage/imx-mkimage.hash | 3 ++
package/freescale-imx/imx-mkimage/imx-mkimage.mk | 23 ++++++++++++++
5 files changed, 69 insertions(+)
create mode 100644 package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
create mode 100644 package/freescale-imx/imx-mkimage/Config.in.host
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.hash
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.mk
diff --git a/package/Config.in.host b/package/Config.in.host
index 199a8e9..b1cfa75 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -15,6 +15,7 @@ menu "Host utilities"
source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host"
source "package/faketime/Config.in.host"
+ source "package/freescale-imx/imx-mkimage/Config.in.host"
I'm not sure this package needs to be under package/freescale-imx/.
This sub-directory was initially created to share the
FREESCALE_IMX_SITE and FREESCALE_IMX_EXTRACT_HELPER definitions, but
you don't use them.
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00 2001
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31
+
What is the upstream status of this patch ?
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/Config.in.host b/package/freescale-imx/imx-mkimage/Config.in.host
new file mode 100644
index 0000000..3cf0966
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/Config.in.host
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_HOST_IMX_MKIMAGE
+ bool "host imx-mkimage"
+ help
+ imx-mkimage is used to combine input images and generate
+ final boot image with appropriate IVT set.
We like to have a blank line, and then the URL of the upstream project
main page. Here, https://source.codeaurora.org/external/imx/imx-mkimage
might be enough, unless there is a better page.
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/imx-mkimage.mk b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
new file mode 100644
index 0000000..a5b1f93
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# imx-mkimage
+#
+################################################################################
+
+IMX_MKIMAGE_VERSION = imx_4.9.51_imx8m_beta
+IMX_MKIMAGE_SITE = https://source.codeaurora.org/external/imx/imx-mkimage
+IMX_MKIMAGE_SITE_METHOD = git
+IMX_MKIMAGE_LICENSE = GPL-2.0
+IMX_MKIMAGE_LICENSE_FILES = iMX8dv/COPYING
+
+define HOST_IMX_MKIMAGE_BUILD_CMDS
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
Post by Erik Larsson
+define HOST_IMX_MKIMAGE_INSTALL_CMDS
+ mkdir -p $(HOST_DIR)/bin
This line is not needed... if...
You replace those lines by:

$(INSTALL) -D -m 755 $(@D)/iMX8M/mkimage_imx8 $(HOST_DIR)/bin/mkimage_imx8
$(INSTALL) -D -m 755 $(@D)/iMX8M/mkimage_fit_atf.sh $(HOST_DIR)/bin/mkimage_fit_atf.sh

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Erik Larsson
2018-02-19 05:43:15 UTC
Permalink
Hello,
Post by Thomas Petazzoni
Hello,
Thanks for this contribution!
Post by Erik Larsson
---
package/Config.in.host | 1 +
.../0001-make-bl33-read-env-variables.patch | 37
++++++++++++++++++++++
Post by Erik Larsson
package/freescale-imx/imx-mkimage/Config.in.host | 5 +++
package/freescale-imx/imx-mkimage/imx-mkimage.hash | 3 ++
package/freescale-imx/imx-mkimage/imx-mkimage.mk | 23 ++++++++++++++
5 files changed, 69 insertions(+)
create mode 100644 package/freescale-imx/imx-
mkimage/0001-make-bl33-read-env-variables.patch
Post by Erik Larsson
create mode 100644 package/freescale-imx/imx-mkimage/Config.in.host
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.hash
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.mk
diff --git a/package/Config.in.host b/package/Config.in.host
index 199a8e9..b1cfa75 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -15,6 +15,7 @@ menu "Host utilities"
source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host"
source "package/faketime/Config.in.host"
+ source "package/freescale-imx/imx-mkimage/Config.in.host"
I'm not sure this package needs to be under package/freescale-imx/.
This sub-directory was initially created to share the
FREESCALE_IMX_SITE and FREESCALE_IMX_EXTRACT_HELPER definitions, but
you don't use them.
Thanks for the information, I'll move it.
Post by Thomas Petazzoni
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00 2001
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31
+
What is the upstream status of this patch ?
I've sent the patch to some of the developers, but still waiting for a
reaction.
Post by Thomas Petazzoni
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/Config.in.host
b/package/freescale-imx/imx-mkimage/Config.in.host
Post by Erik Larsson
new file mode 100644
index 0000000..3cf0966
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/Config.in.host
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_HOST_IMX_MKIMAGE
+ bool "host imx-mkimage"
+ help
+ imx-mkimage is used to combine input images and generate
+ final boot image with appropriate IVT set.
We like to have a blank line, and then the URL of the upstream project
main page. Here, https://source.codeaurora.org/external/imx/imx-mkimage
might be enough, unless there is a better page.
Ok! I'll fix that
Post by Thomas Petazzoni
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/imx-mkimage.mk
b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
Post by Erik Larsson
new file mode 100644
index 0000000..a5b1f93
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
@@ -0,0 +1,23 @@
+###########################################################
#####################
Post by Erik Larsson
+#
+# imx-mkimage
+#
+###########################################################
#####################
Post by Erik Larsson
+
+IMX_MKIMAGE_VERSION = imx_4.9.51_imx8m_beta
+IMX_MKIMAGE_SITE = https://source.codeaurora.org/
external/imx/imx-mkimage
Post by Erik Larsson
+IMX_MKIMAGE_SITE_METHOD = git
+IMX_MKIMAGE_LICENSE = GPL-2.0
+IMX_MKIMAGE_LICENSE_FILES = iMX8dv/COPYING
+
+define HOST_IMX_MKIMAGE_BUILD_CMDS
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
I'm currently only building for IMX8M because that's the only hardware I
have access to. Preferably this should be conditional. Do you think I shall
add it as a conditional option right away event though I can't test it
against other hardware?
Post by Thomas Petazzoni
Post by Erik Larsson
+define HOST_IMX_MKIMAGE_INSTALL_CMDS
+ mkdir -p $(HOST_DIR)/bin
This line is not needed... if...
Ok, I'll fix it!
Post by Thomas Petazzoni
$(HOST_DIR)/bin/mkimage_imx8
$(HOST_DIR)/bin/mkimage_fit_atf.sh
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Thanks for your feedback!

Best regards,
Erik
Thomas Petazzoni
2018-02-19 08:02:54 UTC
Permalink
Hello Erik,
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00 2001
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31
+
What is the upstream status of this patch ?
I've sent the patch to some of the developers, but still waiting for a
reaction.
OK. Then who are those other people who have Signed-off on your patch ?
Post by Erik Larsson
Post by Erik Larsson
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
I'm currently only building for IMX8M because that's the only hardware I
have access to. Preferably this should be conditional. Do you think I shall
add it as a conditional option right away event though I can't test it
against other hardware?
It's fine to support just what you need today. However, it would be
nice to explain it in the commit log and/or in a comment above those
lines in the .mk file.

Thanks a lot!

Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Erik Larsson
2018-02-19 08:05:09 UTC
Permalink
Hello,
Post by Thomas Petazzoni
Hello Erik,
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
Post by Erik Larsson
b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00
2001
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only
BL31
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
+
What is the upstream status of this patch ?
I've sent the patch to some of the developers, but still waiting for a
reaction.
OK. Then who are those other people who have Signed-off on your patch ?
My colleagues :)
Post by Thomas Petazzoni
Post by Erik Larsson
Post by Erik Larsson
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
I'm currently only building for IMX8M because that's the only hardware I
have access to. Preferably this should be conditional. Do you think I
shall
Post by Erik Larsson
add it as a conditional option right away event though I can't test it
against other hardware?
It's fine to support just what you need today. However, it would be
nice to explain it in the commit log and/or in a comment above those
lines in the .mk file.
Okay, I will fix that.
Post by Thomas Petazzoni
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Thanks,
Erik
Marcus Folkesson
2018-02-19 09:55:28 UTC
Permalink
Thomas, Erik,
Post by Thomas Petazzoni
Hello,
Post by Thomas Petazzoni
Hello Erik,
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
Post by Erik Larsson
b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-
env-variables.patch
Post by Erik Larsson
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00
2001
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only
BL31
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
+
What is the upstream status of this patch ?
I've sent the patch to some of the developers, but still waiting for a
reaction.
OK. Then who are those other people who have Signed-off on your patch ?
My colleagues :)
Yep, we are fine with this.
Post by Thomas Petazzoni
Post by Thomas Petazzoni
Post by Erik Larsson
Post by Erik Larsson
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
I'm currently only building for IMX8M because that's the only hardware I
have access to. Preferably this should be conditional. Do you think I
shall
Post by Erik Larsson
add it as a conditional option right away event though I can't test it
against other hardware?
It's fine to support just what you need today. However, it would be
nice to explain it in the commit log and/or in a comment above those
lines in the .mk file.
Okay, I will fix that.
Post by Thomas Petazzoni
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Thanks,
Erik
_______________________________________________
buildroot mailing list
http://lists.busybox.net/mailman/listinfo/buildroot
Best regards
Marcus Folkesson
Gary Bisson
2018-02-19 16:44:06 UTC
Permalink
Hi Thomas, Erik,
Post by Thomas Petazzoni
Hello,
Thanks for this contribution!
Post by Erik Larsson
---
package/Config.in.host | 1 +
.../0001-make-bl33-read-env-variables.patch | 37 ++++++++++++++++++++++
package/freescale-imx/imx-mkimage/Config.in.host | 5 +++
package/freescale-imx/imx-mkimage/imx-mkimage.hash | 3 ++
package/freescale-imx/imx-mkimage/imx-mkimage.mk | 23 ++++++++++++++
5 files changed, 69 insertions(+)
create mode 100644 package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
create mode 100644 package/freescale-imx/imx-mkimage/Config.in.host
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.hash
create mode 100644 package/freescale-imx/imx-mkimage/imx-mkimage.mk
diff --git a/package/Config.in.host b/package/Config.in.host
index 199a8e9..b1cfa75 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -15,6 +15,7 @@ menu "Host utilities"
source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host"
source "package/faketime/Config.in.host"
+ source "package/freescale-imx/imx-mkimage/Config.in.host"
I'm not sure this package needs to be under package/freescale-imx/.
This sub-directory was initially created to share the
FREESCALE_IMX_SITE and FREESCALE_IMX_EXTRACT_HELPER definitions, but
you don't use them.
Actually there are plenty of packages in that folder that don't need the
extract helper nor the site address. Would you like those moved out of
it? (imx-kobs, imx-uuc, imx-vpuwrap etc..).

As a user I find it convenient to have it all in one place but I'd
understand moving them around.

Another aspect of that folder is BR2_PACKAGE_FREESCALE_IMX_PLATFORM,
although it is accessible at other places, which has an effect on which
packages are available.
Post by Thomas Petazzoni
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
new file mode 100644
index 0000000..490eb05
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/0001-make-bl33-read-env-variables.patch
@@ -0,0 +1,37 @@
+From 5ca549356ef889286c12b4d736d9026efafb8fff Mon Sep 17 00:00:00 2001
+Date: Mon, 29 Jan 2018 08:00:57 +0100
+Subject: [PATCH] Add support for overriding BL32 and BL33 not only BL31
+
What is the upstream status of this patch ?
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/Config.in.host b/package/freescale-imx/imx-mkimage/Config.in.host
new file mode 100644
index 0000000..3cf0966
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/Config.in.host
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_HOST_IMX_MKIMAGE
+ bool "host imx-mkimage"
+ help
+ imx-mkimage is used to combine input images and generate
+ final boot image with appropriate IVT set.
We like to have a blank line, and then the URL of the upstream project
main page. Here, https://source.codeaurora.org/external/imx/imx-mkimage
might be enough, unless there is a better page.
Post by Erik Larsson
diff --git a/package/freescale-imx/imx-mkimage/imx-mkimage.mk b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
new file mode 100644
index 0000000..a5b1f93
--- /dev/null
+++ b/package/freescale-imx/imx-mkimage/imx-mkimage.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# imx-mkimage
+#
+################################################################################
+
+IMX_MKIMAGE_VERSION = imx_4.9.51_imx8m_beta
+IMX_MKIMAGE_SITE = https://source.codeaurora.org/external/imx/imx-mkimage
+IMX_MKIMAGE_SITE_METHOD = git
+IMX_MKIMAGE_LICENSE = GPL-2.0
+IMX_MKIMAGE_LICENSE_FILES = iMX8dv/COPYING
+
+define HOST_IMX_MKIMAGE_BUILD_CMDS
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
That is where new BR2_PACKAGE_FREESCALE_IMX_PLATFORM values would be
needed to separate iMX8M, iMX8QM and iMX8QX.

As a FYI, iMX8dv was some sort of development version of i.MX8, this
will not be supported moving forward, only the 3 families listed above.

Regards,
Gary
Thomas Petazzoni
2018-02-19 16:55:51 UTC
Permalink
Hello,
Post by Gary Bisson
Post by Thomas Petazzoni
I'm not sure this package needs to be under package/freescale-imx/.
This sub-directory was initially created to share the
FREESCALE_IMX_SITE and FREESCALE_IMX_EXTRACT_HELPER definitions, but
you don't use them.
Actually there are plenty of packages in that folder that don't need the
extract helper nor the site address. Would you like those moved out of
it? (imx-kobs, imx-uuc, imx-vpuwrap etc..).
I don't have a very clear cut opinion about this. If they don't need to
be in package/freescale-imx/, then in theory they should be outside
yes.
Post by Gary Bisson
Another aspect of that folder is BR2_PACKAGE_FREESCALE_IMX_PLATFORM,
although it is accessible at other places, which has an effect on which
packages are available.
Yeah, but that's just Config.in values, which are available to all
packages without problem.
Post by Gary Bisson
Post by Thomas Petazzoni
Why are you building just the tool in iMX8M ? There is also one in src/
and in iMX8dv. What are the differences ? Should we build/install all
of them ? Conditionally ?
That is where new BR2_PACKAGE_FREESCALE_IMX_PLATFORM values would be
needed to separate iMX8M, iMX8QM and iMX8QX.
As a FYI, iMX8dv was some sort of development version of i.MX8, this
will not be supported moving forward, only the 3 families listed above.
OK, thanks for the info!

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
Marcus Folkesson
2018-02-19 10:00:40 UTC
Permalink
Signed-off-by: Marcus Folkesson <***@gmail.com>

Ask Christopher if he should be stated here as well.
Post by Erik Larsson
+################################################################################
+#
+# imx-mkimage
+#
+################################################################################
+
+IMX_MKIMAGE_VERSION = imx_4.9.51_imx8m_beta
+IMX_MKIMAGE_SITE = https://source.codeaurora.org/external/imx/imx-mkimage
+IMX_MKIMAGE_SITE_METHOD = git
+IMX_MKIMAGE_LICENSE = GPL-2.0
This should actually be GPL-2.0+ as stated in several source files... despite our internal review.
Post by Erik Larsson
+IMX_MKIMAGE_LICENSE_FILES = iMX8dv/COPYING
+
+define HOST_IMX_MKIMAGE_BUILD_CMDS
+endef
+
+define HOST_IMX_MKIMAGE_INSTALL_CMDS
+ mkdir -p $(HOST_DIR)/bin
+endef
+
+$(eval $(host-generic-package))
--
2.7.4
_______________________________________________
buildroot mailing list
http://lists.busybox.net/mailman/listinfo/buildroot
Best regards
Marcus Folkesson
Erik Larsson
2018-02-18 13:28:30 UTC
Permalink
Signed-off-by: Erik Larsson <***@gmail.com>
---
package/freescale-imx/Config.in | 4 ++++
package/freescale-imx/imx-atf/Config.in | 5 +++++
package/freescale-imx/imx-atf/imx-atf.hash | 3 +++
package/freescale-imx/imx-atf/imx-atf.mk | 23 +++++++++++++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 package/freescale-imx/imx-atf/Config.in
create mode 100644 package/freescale-imx/imx-atf/imx-atf.hash
create mode 100644 package/freescale-imx/imx-atf/imx-atf.mk

diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index b5e5ab2..2535caa 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -88,4 +88,8 @@ source "package/freescale-imx/imx-gpu-viv/Config.in"
source "package/freescale-imx/kernel-module-imx-gpu-viv/Config.in"
endif

+if BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
+ source "package/freescale-imx/imx-atf/Config.in"
+endif
+
endif
diff --git a/package/freescale-imx/imx-atf/Config.in b/package/freescale-imx/imx-atf/Config.in
new file mode 100644
index 0000000..200203d
--- /dev/null
+++ b/package/freescale-imx/imx-atf/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_IMX_ATF
+ bool "imx-atf"
+ help
+ ARM Trusted Firmware provides a reference implementation
+ of secure world software for `ARMv8-A`
diff --git a/package/freescale-imx/imx-atf/imx-atf.hash b/package/freescale-imx/imx-atf/imx-atf.hash
new file mode 100644
index 0000000..5b653a7
--- /dev/null
+++ b/package/freescale-imx/imx-atf/imx-atf.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 aa5879af507df44b9981d75852e2a520612c6c5c43dc423480ca36b6deff5160 imx-atf-imx_4.9.51_imx8m_beta.tar.gz
+sha256 487795b8023df866259fa159bab94706b747fb0d623b7913f1c4955c0ab5f164 license.rst
diff --git a/package/freescale-imx/imx-atf/imx-atf.mk b/package/freescale-imx/imx-atf/imx-atf.mk
new file mode 100644
index 0000000..f0aa988
--- /dev/null
+++ b/package/freescale-imx/imx-atf/imx-atf.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# imx-atf
+#
+################################################################################
+
+IMX_ATF_VERSION = imx_4.9.51_imx8m_beta
+IMX_ATF_SITE = https://source.codeaurora.org/external/imx/imx-atf
+IMX_ATF_SITE_METHOD = git
+IMX_AFT_LICENSE = BSD-3-Clause
+IMX_AFT_LICESE_FILES = license.rst
+
+define IMX_ATF_BUILD_CMDS
+ $(TARGET_MAKE_ENV) \
+ CROSS_COMPILE=$(TARGET_CROSS) \
+ $(MAKE) -C $(@D) PLAT=imx8mq bl31
+endef
+
+define IMX_ATF_INSTALL_TARGET_CMDS
+ cp $(@D)/build/imx8mq/release/bl31.bin $(BINARIES_DIR)/imx-boot
+endef
+
+$(eval $(generic-package))
--
2.7.4
Baruch Siach
2018-02-18 13:46:03 UTC
Permalink
Hi Erik,
Post by Erik Larsson
---
package/freescale-imx/Config.in | 4 ++++
package/freescale-imx/imx-atf/Config.in | 5 +++++
package/freescale-imx/imx-atf/imx-atf.hash | 3 +++
package/freescale-imx/imx-atf/imx-atf.mk | 23 +++++++++++++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 package/freescale-imx/imx-atf/Config.in
create mode 100644 package/freescale-imx/imx-atf/imx-atf.hash
create mode 100644 package/freescale-imx/imx-atf/imx-atf.mk
We have an arm-trusted-firmware already at boot/arm-trusted-firmware/. Any
reason you can't use that?

baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- ***@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
Erik Larsson
2018-02-18 13:55:24 UTC
Permalink
Hi Baruch,
Post by Baruch Siach
Hi Erik,
Post by Erik Larsson
---
package/freescale-imx/Config.in | 4 ++++
package/freescale-imx/imx-atf/Config.in | 5 +++++
package/freescale-imx/imx-atf/imx-atf.hash | 3 +++
package/freescale-imx/imx-atf/imx-atf.mk | 23 +++++++++++++++++++++++
4 files changed, 35 insertions(+)
create mode 100644 package/freescale-imx/imx-atf/Config.in
create mode 100644 package/freescale-imx/imx-atf/imx-atf.hash
create mode 100644 package/freescale-imx/imx-atf/imx-atf.mk
We have an arm-trusted-firmware already at boot/arm-trusted-firmware/. Any
reason you can't use that?
Sorry to say, but I completely missed that there already where an
ATF-package. After a first glance there shouldn't be any reason not to use
boot/arm-trusted-firmware. I will look into this.
Post by Baruch Siach
baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--
Ooo------------{=
Erik Larsson
2018-02-18 13:28:31 UTC
Permalink
Signed-off-by: Erik Larsson <***@gmail.com>
---
.../common/imx/genimage.cfg.template_imx8 | 40 ++
board/freescale/common/imx/post-image.sh | 33 +-
board/freescale/imx8mqevk/linux-4.9.config | 625 +++++++++++++++++++++
configs/freescale_imx8mqevk_defconfig | 35 ++
package/freescale-imx/Config.in | 4 +-
package/freescale-imx/firmware-imx/Config.in | 2 +-
package/freescale-imx/firmware-imx/firmware-imx.mk | 8 +
7 files changed, 742 insertions(+), 5 deletions(-)
create mode 100644 board/freescale/common/imx/genimage.cfg.template_imx8
create mode 100644 board/freescale/imx8mqevk/linux-4.9.config
create mode 100644 configs/freescale_imx8mqevk_defconfig

diff --git a/board/freescale/common/imx/genimage.cfg.template_imx8 b/board/freescale/common/imx/genimage.cfg.template_imx8
new file mode 100644
index 0000000..138beff
--- /dev/null
+++ b/board/freescale/common/imx/genimage.cfg.template_imx8
@@ -0,0 +1,40 @@
+# Minimal SD card image for the Freescale boards Template for SPL Boot
+#
+# We mimic the .sdcard Freescale's image format:
+# * the SD card must have 33 kB free space at the beginning,
+# * U-Boot is integrated into imx-boot-imx8mqevk-sd.bin and is dumped as is,
+# * a FAT partition at offset 64MB is containing Image and DTB files
+# * a single root filesystem partition is required (ext2, ext3 or ext4)
+#
+
+image boot.vfat {
+ vfat {
+ files = {
+ %FILES%
+ }
+ }
+ size = 64M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition imx-boot {
+ in-partition-table = "no"
+ image = "imx-boot-imx8mqevk-sd.bin"
+ offset = 33K
+ }
+
+ partition boot {
+ partition-type = 0xC
+ bootable = "true"
+ image = "boot.vfat"
+ offset = 8M
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext2"
+ }
+}
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index b239743..e3082a3 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -7,10 +7,10 @@
#
dtb_list()
{
- local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
+ local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([\/a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"

for dt in $DTB_LIST; do
- echo -n "\"$dt.dtb\", "
+ echo -n "\"`basename $dt`.dtb\", "
done
}

@@ -23,6 +23,8 @@ linux_image()
{
if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
echo "\"uImage\""
+ elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then
+ echo "\"Image\""
else
echo "\"zImage\""
fi
@@ -30,19 +32,44 @@ linux_image()

genimage_type()
{
- if grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then
+ if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
+ echo "genimage.cfg.template_imx8"
+ elif grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then
echo "genimage.cfg.template_spl"
else
echo "genimage.cfg.template"
fi
}

+gen_imx8_boot()
+{
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
+ objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_dmem.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
+ cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+ rm -f ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
+
+ BL31=${BINARIES_DIR}/imx-boot/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin mkimage_fit_atf.sh ${BINARIES_DIR}/fsl-imx8mq-evk.dtb > ${BINARIES_DIR}/imx-boot/u-boot.its
+ pushd ${BINARIES_DIR}
+ mkimage -E -p 0x3000 -f ${BINARIES_DIR}/imx-boot/u-boot.its ${BINARIES_DIR}/u-boot.itb
+ popd
+ rm -f ${BINARIES_DIR}/imx-boot/u-boot.its
+
+ mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx-boot-imx8mqevk-sd.bin
+}
+
main()
{
local FILES="$(dtb_list) $(linux_image)"
local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"

+ if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then
+ $(gen_imx8_boot)
+ fi
+
sed -e "s/%FILES%/${FILES}/" \
board/freescale/common/imx/$(genimage_type) > ${GENIMAGE_CFG}

diff --git a/board/freescale/imx8mqevk/linux-4.9.config b/board/freescale/imx8mqevk/linux-4.9.config
new file mode 100644
index 0000000..f6c32cd
--- /dev/null
+++ b/board/freescale/imx8mqevk/linux-4.9.config
@@ -0,0 +1,625 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_AUDIT=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_MEMCG=y
+CONFIG_MEMCG_SWAP=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_PROFILING=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_SUNXI=y
+CONFIG_ARCH_ALPINE=y
+CONFIG_ARCH_BCM_IPROC=y
+CONFIG_ARCH_BERLIN=y
+CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_LAYERSCAPE=y
+CONFIG_ARCH_LG1K=y
+CONFIG_ARCH_HISI=y
+CONFIG_ARCH_MEDIATEK=y
+CONFIG_ARCH_MESON=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_QCOM=y
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_ARCH_SEATTLE=y
+CONFIG_ARCH_RENESAS=y
+CONFIG_ARCH_R8A7795=y
+CONFIG_ARCH_R8A7796=y
+CONFIG_ARCH_STRATIX10=y
+CONFIG_ARCH_TEGRA=y
+CONFIG_ARCH_SPRD=y
+CONFIG_ARCH_THUNDER=y
+CONFIG_ARCH_UNIPHIER=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VULCAN=y
+CONFIG_ARCH_XGENE=y
+CONFIG_ARCH_ZX=y
+CONFIG_ARCH_ZYNQMP=y
+CONFIG_ARCH_FSL_IMX8QM=y
+CONFIG_ARCH_FSL_IMX8QXP=y
+CONFIG_ARCH_FSL_IMX8MQ=y
+CONFIG_PCI=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_AARDVARK=y
+CONFIG_PCI_IMX6=y
+CONFIG_PCIE_RCAR=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_XGENE=y
+CONFIG_PCI_HISI=y
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_SCHED_MC=y
+CONFIG_PREEMPT=y
+CONFIG_KSM=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_CMA=y
+CONFIG_SECCOMP=y
+CONFIG_KEXEC=y
+CONFIG_XEN=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_COMPAT=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_INTERACTIVE=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=y
+CONFIG_ARM_IMX8_CPUFREQ=y
+CONFIG_ARM_IMX8MQ_CPUFREQ=y
+CONFIG_ARM_SCPI_CPUFREQ=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IPV6=m
+CONFIG_NETFILTER=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC2=y
+CONFIG_BPF_JIT=y
+CONFIG_CAN=y
+CONFIG_CAN_FLEXCAN=y
+CONFIG_BT=y
+CONFIG_BT_RFCOMM=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=y
+CONFIG_BT_LEDS=y
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIVHCI=y
+CONFIG_CFG80211=y
+CONFIG_MAC80211=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=320
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_RAM=y
+CONFIG_MTD_DATAFLASH=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SLRAM=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_GPMI_NAND=y
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+CONFIG_SPI_FSL_QUADSPI=y
+CONFIG_SPI_FSL_FLEXSPI=y
+CONFIG_MTD_UBI=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_XEN_BLKDEV_BACKEND=m
+CONFIG_VIRTIO_BLK=y
+CONFIG_SENSORS_FXOS8700=y
+CONFIG_SENSORS_FXAS2100X=y
+CONFIG_SRAM=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_HISI_SAS=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+CONFIG_AHCI_CEVA=y
+CONFIG_AHCI_MVEBU=y
+CONFIG_AHCI_XGENE=y
+CONFIG_AHCI_QORIQ=y
+CONFIG_SATA_SIL24=y
+CONFIG_SATA_RCAR=y
+CONFIG_PATA_PLATFORM=y
+CONFIG_PATA_OF_PLATFORM=y
+CONFIG_NETDEVICES=y
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_TUN=y
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=y
+CONFIG_AMD_XGBE=y
+CONFIG_NET_XGENE=y
+CONFIG_MACB=y
+CONFIG_HNS_DSAF=y
+CONFIG_HNS_ENET=y
+CONFIG_E1000E=y
+CONFIG_IGB=y
+CONFIG_IGBVF=y
+CONFIG_SKY2=y
+CONFIG_RAVB=y
+CONFIG_SMC91X=y
+CONFIG_SMSC911X=y
+CONFIG_STMMAC_ETH=m
+CONFIG_AT803X_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_REALTEK_PHY=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SR9800=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_ATH10K=y
+CONFIG_ATH10K_PCI=y
+CONFIG_ATH10K_AHB=y
+CONFIG_ATH10K_DEBUGFS=y
+CONFIG_BCMDHD_1363=y
+CONFIG_BCMDHD_PCIE=y
+CONFIG_RTL_CARDS=m
+# CONFIG_WLAN_VENDOR_TI is not set
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_KEYBOARD_IMX_SC_PWRKEY=y
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PM8941_PWRKEY=y
+CONFIG_INPUT_HISI_POWERKEY=y
+CONFIG_INPUT_MPL3115=y
+CONFIG_INPUT_ISL29023=y
+# CONFIG_SERIO_SERPORT is not set
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_MT6577=y
+CONFIG_SERIAL_8250_UNIPHIER=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_TEGRA=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=11
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_MSM=y
+CONFIG_SERIAL_MSM_CONSOLE=y
+CONFIG_SERIAL_XILINX_PS_UART=y
+CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX_PCA954x=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_IMX=y
+CONFIG_I2C_IMX_LPI2C=y
+CONFIG_I2C_MESON=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_I2C_QUP=y
+CONFIG_I2C_TEGRA=y
+CONFIG_I2C_UNIPHIER_F=y
+CONFIG_I2C_RCAR=y
+CONFIG_I2C_CROS_EC_TUNNEL=y
+CONFIG_SPI=y
+CONFIG_SPI_FSL_LPSPI=y
+CONFIG_SPI_MESON_SPIFC=m
+CONFIG_SPI_ORION=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_QUP=y
+CONFIG_SPI_S3C64XX=y
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPMI=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_MAX77620=y
+CONFIG_PINCTRL_MSM8916=y
+CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_QDF2XXX=y
+CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RCAR=y
+CONFIG_GPIO_XGENE=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_MAX77620=y
+CONFIG_POWER_RESET_MSM=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_BATTERY_BQ27XXX=y
+CONFIG_SENSORS_ARM_SCPI=y
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_INA2XX=m
+# CONFIG_MXC_MMA8451 is not set
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CPU_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_IMX8M_THERMAL=y
+CONFIG_IMX_SC_THERMAL=y
+CONFIG_DEVICE_THERMAL=y
+CONFIG_EXYNOS_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_S3C2410_WATCHDOG=y
+CONFIG_IMX2_WDT=y
+CONFIG_IMX8_WDT=y
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_RENESAS_WDT=y
+CONFIG_MFD_CROS_EC=y
+CONFIG_MFD_CROS_EC_I2C=y
+CONFIG_MFD_HI655X_PMIC=y
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_SPMI_PMIC=y
+CONFIG_MFD_SEC_CORE=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_HI655X=y
+CONFIG_REGULATOR_MAX77620=y
+CONFIG_REGULATOR_PFUZE100=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_SMD_RPM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_S2MPS11=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_VIDEO_MXC_CAPTURE=y
+CONFIG_VIDEO_MX8_CAPTURE=y
+CONFIG_GMSL_MAX9286=y
+CONFIG_VIDEO_MXC_CSI_CAMERA=y
+CONFIG_MXC_MIPI_CSI=y
+CONFIG_MXC_CAMERA_OV5640_MIPI_V2=y
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_IMX_DPU_CORE=y
+CONFIG_IMX_DCSS_CORE=y
+CONFIG_DRM=y
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_VIVANTE=m
+CONFIG_DRM_MSM=m
+CONFIG_DRM_TEGRA=m
+CONFIG_DRM_PANEL_SIMPLE=m
+CONFIG_DRM_PANEL_RAYDIUM_RM67191=y
+CONFIG_DRM_I2C_ADV7511=y
+CONFIG_DRM_ITE_IT6263=y
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
+CONFIG_DRM_IMX_TVE=y
+CONFIG_DRM_IMX_LDB=y
+CONFIG_DRM_IMX_HDMI=y
+CONFIG_DRM_IMX_NWL_DSI=y
+CONFIG_DRM_IMX_HDP=y
+CONFIG_IMX_HDP_CEC=y
+CONFIG_DRM_HISI_KIRIN=m
+CONFIG_DRM_MXSFB=y
+CONFIG_FB_IMX64=y
+CONFIG_FB_IMX64_DEBUG=y
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_MXC_DISP_FRAMEWORK=y
+CONFIG_FB_MX8_HDMI=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_LP855X=m
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_FSL_ACM=y
+CONFIG_SND_SOC_FSL_HIFI4=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_WM8960=y
+CONFIG_SND_SOC_IMX_WM8524=y
+CONFIG_SND_SOC_IMX_CS42888=y
+CONFIG_SND_SOC_IMX_WM8962=y
+CONFIG_SND_SOC_IMX_MQS=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_AMIX=y
+CONFIG_SND_SOC_IMX_CDNHDMI=y
+CONFIG_SND_SOC_SAMSUNG=y
+CONFIG_SND_SOC_RCAR=y
+CONFIG_SND_SOC_AK4613=y
+CONFIG_HID_MULTITOUCH=y
+CONFIG_USB=y
+CONFIG_USB_OTG=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_TEGRA=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_MSM=y
+CONFIG_USB_EHCI_EXYNOS=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_EXYNOS=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_RENESAS_USBHS=m
+CONFIG_USB_ACM=m
+CONFIG_USB_STORAGE=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC2=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_ISP1760_HOST_ROLE=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_TEST=m
+CONFIG_USB_EHSET_TEST_FIXTURE=y
+CONFIG_USB_HSIC_USB3503=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GPIO_VBUS=y
+CONFIG_USB_MXS_PHY=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_RENESAS_USBHS_UDC=m
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_FSL_UTP=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+CONFIG_GADGET_UAC1=y
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_G_NCM=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_MINORS=32
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ACPI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+# CONFIG_MMC_SDHCI_IPROC is not set
+CONFIG_MMC_SPI=y
+CONFIG_MMC_SDHI=y
+CONFIG_MXC_MLB150=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_S5M=y
+CONFIG_RTC_DRV_DS3232=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_S3C=y
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_TEGRA=y
+CONFIG_RTC_DRV_SNVS=y
+CONFIG_RTC_DRV_IMX_SC=y
+CONFIG_RTC_DRV_XGENE=y
+CONFIG_DMADEVICES=y
+CONFIG_FSL_EDMA_V3=y
+CONFIG_IMX_SDMA=y
+CONFIG_MXS_DMA=y
+CONFIG_PL330_DMA=y
+CONFIG_TEGRA20_APB_DMA=y
+CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+CONFIG_RCAR_DMAC=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_MMIO=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
+CONFIG_STAGING=y
+CONFIG_STAGING_MEDIA=y
+CONFIG_MEDIA_CEC=y
+CONFIG_ION=y
+CONFIG_ION_MXC=y
+CONFIG_TYPEC_TCPM=y
+CONFIG_TYPEC_TCPCI=y
+CONFIG_COMMON_CLK_SCPI=y
+CONFIG_COMMON_CLK_CS2000_CP=y
+CONFIG_COMMON_CLK_S2MPS11=y
+CONFIG_CLK_QORIQ=y
+CONFIG_COMMON_CLK_QCOM=y
+CONFIG_MSM_GCC_8916=y
+CONFIG_MSM_MMCC_8996=y
+CONFIG_HWSPINLOCK_QCOM=y
+CONFIG_CLKSRC_IMX_SYS_CNT=y
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU=y
+CONFIG_HI6220_MBOX=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARCH_MXC_ARM64=y
+CONFIG_QCOM_SMEM=y
+CONFIG_QCOM_SMD=y
+CONFIG_QCOM_SMD_RPM=y
+CONFIG_ARCH_TEGRA_132_SOC=y
+CONFIG_ARCH_TEGRA_210_SOC=y
+CONFIG_EXTCON_PTN5150=y
+CONFIG_IIO=y
+CONFIG_EXYNOS_ADC=y
+CONFIG_PWM=y
+CONFIG_PWM_IMX=y
+CONFIG_PWM_SAMSUNG=y
+CONFIG_PWM_TEGRA=m
+CONFIG_PHY_HI6220_USB=y
+CONFIG_PHY_XGENE=y
+CONFIG_PHY_TEGRA_XUSB=y
+CONFIG_IMX8_DDR_PERF=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_IMX_OCOTP=y
+CONFIG_NVMEM_IMX_SCU_OCOTP=y
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_ACPI=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_HUGETLBFS=y
+CONFIG_EFIVAR_FS=y
+CONFIG_JFFS2_FS=y
+CONFIG_UBIFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_KVM=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOCKUP_DETECTOR=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+CONFIG_MEMTEST=y
+CONFIG_SECURITY=y
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_CHACHA20POLY1305=y
+CONFIG_CRYPTO_ECHAINIV=y
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_LRW=y
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_MD4=y
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_RMD128=y
+CONFIG_CRYPTO_RMD160=y
+CONFIG_CRYPTO_RMD256=y
+CONFIG_CRYPTO_RMD320=y
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_SHA3=y
+CONFIG_CRYPTO_TGR192=y
+CONFIG_CRYPTO_WP512=y
+CONFIG_CRYPTO_BLOWFISH=y
+CONFIG_CRYPTO_CAMELLIA=y
+CONFIG_CRYPTO_CAST5=y
+CONFIG_CRYPTO_CAST6=y
+CONFIG_CRYPTO_SERPENT=y
+CONFIG_CRYPTO_TWOFISH=y
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_ARM64_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_CRC32_ARM64=y
diff --git a/configs/freescale_imx8mqevk_defconfig b/configs/freescale_imx8mqevk_defconfig
new file mode 100644
index 0000000..a2ec07e
--- /dev/null
+++ b/configs/freescale_imx8mqevk_defconfig
@@ -0,0 +1,35 @@
+BR2_aarch64=y
+BR2_ARM_FPU_VFPV3=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/linux-imx"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="imx_4.9.51_imx8m_beta"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/freescale/imx8mqevk/linux-4.9.config"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/fsl-imx8mq-evk"
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y
+BR2_PACKAGE_FIRMWARE_IMX=y
+BR2_PACKAGE_IMX_ATF=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://source.codeaurora.org/external/imx/uboot-imx"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="imx_v2017.03_4.9.51_imx8m_beta"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mq_evk"
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_IMX_MKIMAGE=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 2535caa..adda403 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -1,6 +1,6 @@
menuconfig BR2_PACKAGE_FREESCALE_IMX
bool "Freescale i.MX libraries"
- depends on BR2_arm
+ depends on BR2_arm || BR2_aarch64
help
Those packages provide hardware acceleration for GPU or VPU,
hardware optimization or some hardware tools for Freescale
@@ -40,6 +40,8 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
bool "imx7d/imx7ulp"

+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
+ bool "imx8m"
endchoice

config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
index fca280a..56d5b80 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_FIRMWARE_IMX
bool "firmware-imx"
- depends on BR2_arm # Only relevant for i.MX
+ depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
help
Firmware blobs for the Freescale i.MX SoCs.

diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
index 630afca..040a088 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -18,6 +18,13 @@ define FIRMWARE_IMX_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(FIRMWARE_IMX_SOURCE))
endef

+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+define FIRMWARE_IMX_INSTALL_TARGET_CMDS
+ mkdir -p $(BINARIES_DIR)/imx-boot
+ cp $(@D)/firmware/ddr/synopsys/lpddr4_pmu_train_*.bin $(BINARIES_DIR)/imx-boot
+ cp $(@D)/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(BINARIES_DIR)/imx-boot
+endef
+else
define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/lib/firmware/imx
for blobdir in $(FIRMWARE_IMX_BLOBS); do \
@@ -27,5 +34,6 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
endef
+endif

$(eval $(generic-package))
--
2.7.4
Baruch Siach
2018-02-18 14:47:09 UTC
Permalink
Hi Erik,
Post by Erik Larsson
+gen_imx8_boot()
+{
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
+ objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_dmem.bin > ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
+ cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin > ${BINARIES_DIR}/u-boot-spl-ddr.bin
+ rm -f ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
+
+ BL31=${BINARIES_DIR}/imx-boot/bl31.bin BL33=${BINARIES_DIR}/u-boot.bin mkimage_fit_atf.sh ${BINARIES_DIR}/fsl-imx8mq-evk.dtb > ${BINARIES_DIR}/imx-boot/u-boot.its
+ pushd ${BINARIES_DIR}
+ mkimage -E -p 0x3000 -f ${BINARIES_DIR}/imx-boot/u-boot.its ${BINARIES_DIR}/u-boot.itb
+ popd
+ rm -f ${BINARIES_DIR}/imx-boot/u-boot.its
+
+ mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin 0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out ${BINARIES_DIR}/imx-boot-imx8mqevk-sd.bin
+}
Instead of reproducing the convoluted way of generating the i.MX8 boot image,
can't you just copy the files into the iMX8M/ subdirectory of imx-mkimage, and
run there 'make SOC=iMX8M flash_spl_uboot'?

[...]
Post by Erik Larsson
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/Config.in
index 2535caa..adda403 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -1,6 +1,6 @@
menuconfig BR2_PACKAGE_FREESCALE_IMX
bool "Freescale i.MX libraries"
- depends on BR2_arm
+ depends on BR2_arm || BR2_aarch64
help
Those packages provide hardware acceleration for GPU or VPU,
hardware optimization or some hardware tools for Freescale
@@ -40,6 +40,8 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
bool "imx7d/imx7ulp"
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
+ bool "imx8m"
endchoice
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
diff --git a/package/freescale-imx/firmware-imx/Config.in b/package/freescale-imx/firmware-imx/Config.in
index fca280a..56d5b80 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_FIRMWARE_IMX
bool "firmware-imx"
- depends on BR2_arm # Only relevant for i.MX
+ depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
help
Firmware blobs for the Freescale i.MX SoCs.
diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk b/package/freescale-imx/firmware-imx/firmware-imx.mk
index 630afca..040a088 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -18,6 +18,13 @@ define FIRMWARE_IMX_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(FIRMWARE_IMX_SOURCE))
endef
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+define FIRMWARE_IMX_INSTALL_TARGET_CMDS
+ mkdir -p $(BINARIES_DIR)/imx-boot
+endef
+else
define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/lib/firmware/imx
for blobdir in $(FIRMWARE_IMX_BLOBS); do \
@@ -27,5 +34,6 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted \
$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
endef
+endif
These changes should be in a separate patch to firmware-imx.

baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- ***@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
Erik Larsson
2018-02-19 06:01:54 UTC
Permalink
Hello,
Post by Baruch Siach
Hi Erik,
Post by Erik Larsson
+gen_imx8_boot()
+{
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
Post by Erik Larsson
+ objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
Post by Erik Larsson
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin >
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_dmem.bin >
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin >
${BINARIES_DIR}/u-boot-spl-ddr.bin
Post by Erik Larsson
+ rm -f ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
Post by Erik Larsson
+
+ BL31=${BINARIES_DIR}/imx-boot/bl31.bin
BL33=${BINARIES_DIR}/u-boot.bin mkimage_fit_atf.sh
${BINARIES_DIR}/fsl-imx8mq-evk.dtb > ${BINARIES_DIR}/imx-boot/u-boot.its
Post by Erik Larsson
+ pushd ${BINARIES_DIR}
+ mkimage -E -p 0x3000 -f ${BINARIES_DIR}/imx-boot/u-boot.its
${BINARIES_DIR}/u-boot.itb
Post by Erik Larsson
+ popd
+ rm -f ${BINARIES_DIR}/imx-boot/u-boot.its
+
+ mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin
0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out
${BINARIES_DIR}/imx-boot-imx8mqevk-sd.bin
Post by Erik Larsson
+}
Instead of reproducing the convoluted way of generating the i.MX8 boot image,
can't you just copy the files into the iMX8M/ subdirectory of imx-mkimage, and
run there 'make SOC=iMX8M flash_spl_uboot'?
Yes this is pretty convoluted, just as you say. There are some issues with
doing this in the imx-mkimage (at least I think so, please let me know if
I'm wrong :) ).
The main Makefile of imx-mkimage has a step called buildinfo which reads
information from its git repository, in buildroot there are no git
repository during build time. This can off course be fixed using a small
patch in the packet. The other problem is that we need to have a way of
selecting which file is used as BL33 in the mkimage_fit_aft.sh which is
called from iMX8M/soc.mk. This can also be fixed with a packet patch, or we
can simply copy our u-boot.bin and call it u-boot-nodtb.bin as
mkimage_fit_atf.sh is expecting it to be called.

Please let my know what you think!
Post by Baruch Siach
[...]
Post by Erik Larsson
diff --git a/package/freescale-imx/Config.in b/package/freescale-imx/
Config.in
Post by Erik Larsson
index 2535caa..adda403 100644
--- a/package/freescale-imx/Config.in
+++ b/package/freescale-imx/Config.in
@@ -1,6 +1,6 @@
menuconfig BR2_PACKAGE_FREESCALE_IMX
bool "Freescale i.MX libraries"
- depends on BR2_arm
+ depends on BR2_arm || BR2_aarch64
help
Those packages provide hardware acceleration for GPU or VPU,
hardware optimization or some hardware tools for Freescale
@@ -40,6 +40,8 @@ config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6UL
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX7
bool "imx7d/imx7ulp"
+config BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M
+ bool "imx8m"
endchoice
config BR2_PACKAGE_FREESCALE_IMX_PLATFORM
diff --git a/package/freescale-imx/firmware-imx/Config.in
b/package/freescale-imx/firmware-imx/Config.in
Post by Erik Larsson
index fca280a..56d5b80 100644
--- a/package/freescale-imx/firmware-imx/Config.in
+++ b/package/freescale-imx/firmware-imx/Config.in
@@ -1,6 +1,6 @@
config BR2_PACKAGE_FIRMWARE_IMX
bool "firmware-imx"
- depends on BR2_arm # Only relevant for i.MX
+ depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
help
Firmware blobs for the Freescale i.MX SoCs.
diff --git a/package/freescale-imx/firmware-imx/firmware-imx.mk
b/package/freescale-imx/firmware-imx/firmware-imx.mk
Post by Erik Larsson
index 630afca..040a088 100644
--- a/package/freescale-imx/firmware-imx/firmware-imx.mk
+++ b/package/freescale-imx/firmware-imx/firmware-imx.mk
@@ -18,6 +18,13 @@ define FIRMWARE_IMX_EXTRACT_CMDS
$(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(FIRMWARE_IMX_
SOURCE))
Post by Erik Larsson
endef
+ifeq ($(BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M),y)
+define FIRMWARE_IMX_INSTALL_TARGET_CMDS
+ mkdir -p $(BINARIES_DIR)/imx-boot
$(BINARIES_DIR)/imx-boot
$(BINARIES_DIR)/imx-boot
Post by Erik Larsson
+endef
+else
define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/lib/firmware/imx
for blobdir in $(FIRMWARE_IMX_BLOBS); do \
@@ -27,5 +34,6 @@ define FIRMWARE_IMX_INSTALL_TARGET_CMDS
mv $(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw.nonrestricted
\
Post by Erik Larsson
$(TARGET_DIR)/lib/firmware/imx/epdc/epdc_ED060XH2C1.fw
endef
+endif
These changes should be in a separate patch to firmware-imx.
Ok, I will fix that!
Post by Baruch Siach
baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--
Ooo------------{=
Erik
Baruch Siach
2018-02-19 12:44:47 UTC
Permalink
Hi Erik,
Post by Erik Larsson
Post by Erik Larsson
Post by Erik Larsson
+gen_imx8_boot()
+{
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
Post by Erik Larsson
+ objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
Post by Erik Larsson
+ objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin >
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_dmem.bin >
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
Post by Erik Larsson
+ cat ${BINARIES_DIR}/u-boot-spl.bin ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin >
${BINARIES_DIR}/u-boot-spl-ddr.bin
Post by Erik Larsson
+ rm -f ${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_fw.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_imem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_1d_dmem_pad.bin
${BINARIES_DIR}/imx-boot/lpddr4_pmu_train_2d_imem_pad.bin
Post by Erik Larsson
+
+ BL31=${BINARIES_DIR}/imx-boot/bl31.bin
BL33=${BINARIES_DIR}/u-boot.bin mkimage_fit_atf.sh
${BINARIES_DIR}/fsl-imx8mq-evk.dtb > ${BINARIES_DIR}/imx-boot/u-boot.its
Post by Erik Larsson
+ pushd ${BINARIES_DIR}
+ mkimage -E -p 0x3000 -f ${BINARIES_DIR}/imx-boot/u-boot.its
${BINARIES_DIR}/u-boot.itb
Post by Erik Larsson
+ popd
+ rm -f ${BINARIES_DIR}/imx-boot/u-boot.its
+
+ mkimage_imx8 -fit -loader ${BINARIES_DIR}/u-boot-spl-ddr.bin
0x7E1000 -second_loader ${BINARIES_DIR}/u-boot.itb 0x40200000 0x60000 -out
${BINARIES_DIR}/imx-boot-imx8mqevk-sd.bin
Post by Erik Larsson
+}
Instead of reproducing the convoluted way of generating the i.MX8 boot
image, can't you just copy the files into the iMX8M/ subdirectory of
imx-mkimage, and run there 'make SOC=iMX8M flash_spl_uboot'?
Yes this is pretty convoluted, just as you say. There are some issues with
doing this in the imx-mkimage (at least I think so, please let me know if
I'm wrong :) ).
The main Makefile of imx-mkimage has a step called buildinfo which reads
information from its git repository, in buildroot there are no git
repository during build time. This can off course be fixed using a small
patch in the packet.
Yes. I think that patching the top-level Makefile is preferable.
Post by Erik Larsson
The other problem is that we need to have a way of
selecting which file is used as BL33 in the mkimage_fit_aft.sh which is
called from iMX8M/soc.mk. This can also be fixed with a packet patch, or we
can simply copy our u-boot.bin and call it u-boot-nodtb.bin as
mkimage_fit_atf.sh is expecting it to be called.
Renaming u-boot.bin to u-boot-nodtb.bin is a small price to pay for not having
to duplicate the logic of iMX8M/soc.mak in Buildroot. This logic has changed
in the recent past, and I don't think we want to chase the creative
imagination of NXP engineers.

Over at the U-Boot mailing list Fabio indicated[1] that imx-mkimage will merge
into the U-Boot mkimage. So hopefully we can get rid of this mess at some
point.

[1] https://patchwork.ozlabs.org/patch/857974/#1843851

baruch
--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- ***@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Marcus Folkesson
2018-02-19 10:12:39 UTC
Permalink
Signed-off-by: Marcus Folkesson <***@gmail.com>

Ask Christopher if he want to be stated here as well.
Post by Erik Larsson
---
diff --git a/board/freescale/common/imx/post-image.sh b/board/freescale/common/imx/post-image.sh
index b239743..e3082a3 100755
--- a/board/freescale/common/imx/post-image.sh
+++ b/board/freescale/common/imx/post-image.sh
@@ -7,10 +7,10 @@
#
dtb_list()
{
- local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
+ local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([\/a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
Just a thought.. is ${BR2_LINUX_KERNEL_INTREE_DTS_NAME} available in
postscripts?
It would be nice if we could avoid this sed magic.

I'm not in an environment that I can check this by myself.
Post by Erik Larsson
for dt in $DTB_LIST; do
- echo -n "\"$dt.dtb\", "
+ echo -n "\"`basename $dt`.dtb\", "
done
}
Best regards
Marcus Folkesson
Loading...