* [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit
@ 2021-06-10 10:57 Hanspeter Portner
2022-01-17 19:14 ` Giulio Benetti
2022-07-25 15:31 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: Hanspeter Portner @ 2021-06-10 10:57 UTC (permalink / raw)
To: buildroot
Based on configs/toradex_apalis_imx6 with Toradex' mainline linux/uboot
branches.
Tested on:
Module: 'Toradex Col IMX6DL 512MB V1.0A'
Evalboard: 'Toradex Col Evaluation V3.2A'
Signed-off-by: Hanspeter Portner <dev@open-music-kontrollers.ch>
---
board/toradex/colibri-imx6/genimage.cfg | 15 +++++++
board/toradex/colibri-imx6/post-image.sh | 20 +++++++++
board/toradex/colibri-imx6/readme.txt | 53 ++++++++++++++++++++++++
board/toradex/colibri-imx6/uEnv.txt | 7 ++++
configs/toradex_colibri_imx6_defconfig | 25 +++++++++++
5 files changed, 120 insertions(+)
create mode 100644 board/toradex/colibri-imx6/genimage.cfg
create mode 100755 board/toradex/colibri-imx6/post-image.sh
create mode 100644 board/toradex/colibri-imx6/readme.txt
create mode 100644 board/toradex/colibri-imx6/uEnv.txt
create mode 100644 configs/toradex_colibri_imx6_defconfig
diff --git a/board/toradex/colibri-imx6/genimage.cfg b/board/toradex/colibri-imx6/genimage.cfg
new file mode 100644
index 0000000000..91c927c723
--- /dev/null
+++ b/board/toradex/colibri-imx6/genimage.cfg
@@ -0,0 +1,15 @@
+# Minimal SD card image for the Toradex Colibri i.MX6 COM
+#
+# It does not need a boot section for a bootloader since it is booted
+# from its internal flash memory (eMMC).
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext2"
+ size = 512M
+ }
+}
diff --git a/board/toradex/colibri-imx6/post-image.sh b/board/toradex/colibri-imx6/post-image.sh
new file mode 100755
index 0000000000..b95e175a29
--- /dev/null
+++ b/board/toradex/colibri-imx6/post-image.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+GENIMAGE_CFG="$(dirname $0)/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+# copy the uEnv.txt to the output/images directory
+cp board/toradex/colibri-imx6/uEnv.txt $BINARIES_DIR/uEnv.txt
+
+rm -rf "${GENIMAGE_TMP}"
+
+# generate rootfs.img
+genimage \
+ --rootpath "${TARGET_DIR}" \
+ --tmppath "${GENIMAGE_TMP}" \
+ --inputpath "${BINARIES_DIR}" \
+ --outputpath "${BINARIES_DIR}" \
+ --config "${GENIMAGE_CFG}"
+
+RET=${?}
+exit ${RET}
diff --git a/board/toradex/colibri-imx6/readme.txt b/board/toradex/colibri-imx6/readme.txt
new file mode 100644
index 0000000000..50078db173
--- /dev/null
+++ b/board/toradex/colibri-imx6/readme.txt
@@ -0,0 +1,53 @@
+Toradex Colibri i.MX6 Computer on Module
+
+Intro
+=====
+
+The Colibri iMX6 is a SODIMM sized computer module based on NXP?/Freescale
+i.MX 6 SoC. The module targets a wide range of applications, including:
+Medical Devices, Navigation, Industrial Automation, HMIs, Avionics,
+Entertainment system, POS, Data Acquisition, Thin Clients, Robotics, Gaming
+and much more. It offers a wide range of interfaces from simple GPIOs, industry
+standard I2C, SPI, CAN, and UART buses through to high speed USB 2.0 interfaces
+and a 16/32bit external memory bus (parallel bus). The HDMI interface makes it
+very easy to connect large, full HD resolution displays
+
+https://www.toradex.com/computer-on-modules/colibri-arm-family/nxp-freescale-imx6
+
+It supports one carrier boards:
+
+Colibri Evaluation Board
+https://www.toradex.com/products/carrier-board/colibri-evaluation-board
+
+How to build it
+===============
+
+Configure Buildroot:
+
+ $ make toradex_colibri_imx6_defconfig
+
+Compile everything and build the rootfs image:
+
+ $ make
+
+How to boot the image
+=====================
+
+The board only boots from its internal flash memory eMMC, so the
+bootloader image should be copied to it, following the procedures
+described in Toradex website.
+
+http://developer.toradex.com/knowledge-base/flashing-linux-on-imx6-modules
+
+Buildroot prepares a "sdcard.img" in output/images/ with the kernel
+image, device tree and a root filesystem, ready to be dumped on an SD
+card.
+
+ $ dd if=output/images/sdcard.img of=/dev/sdX bs=1M
+
+To boot from the SD card, you should change the U-Boot
+environment. Since U-Boot is running from internal eMMC, you will need
+to access its command line prompt and manually set the necessary
+variables to boot from the external SD card. For convenience, you can
+use uEnv.txt provided in output/images/ as a reference to create the
+necessary U-Boot variables to boot from the SD card.
diff --git a/board/toradex/colibri-imx6/uEnv.txt b/board/toradex/colibri-imx6/uEnv.txt
new file mode 100644
index 0000000000..e8fec787aa
--- /dev/null
+++ b/board/toradex/colibri-imx6/uEnv.txt
@@ -0,0 +1,7 @@
+setenv boot_file 'zImage'
+setenv fdt_file 'imx6dl-colibri-eval-v3.dtb'
+setenv sdargs 'ip=off root=/dev/mmcblk0p1 rw,noatime rootfstype=ext4 rootwait'
+setenv sddtbload 'ext2load mmc 1:1 ${fdt_addr_r} boot/${fdt_file}'
+setenv sdkernelload 'ext2load mmc 1:1 ${kernel_addr_r} boot/${boot_file}'
+setenv bootcmd 'run setup; setenv bootargs ${defargs} ${sdargs} ${setupargs} ${vidargs}; echo Booting from SD card...; run sddtbload; run sdkernelload; bootz ${kernel_addr_r} - ${fdt_addr_r}'
+run bootcmd
diff --git a/configs/toradex_colibri_imx6_defconfig b/configs/toradex_colibri_imx6_defconfig
new file mode 100644
index 0000000000..0e50381579
--- /dev/null
+++ b/configs/toradex_colibri_imx6_defconfig
@@ -0,0 +1,25 @@
+BR2_arm=y
+BR2_cortex_a9=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/toradex/colibri-imx6/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.toradex.com/linux-toradex.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="toradex_5.4.y"
+BR2_LINUX_KERNEL_DEFCONFIG="toradex-imx_v6_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-colibri-eval-v3"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.toradex.com/u-boot-toradex.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="toradex_2020.07"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="colibri_imx6"
+BR2_TARGET_UBOOT_FORMAT_IMG=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="SPL"
+BR2_PACKAGE_HOST_GENIMAGE=y
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit
2021-06-10 10:57 [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit Hanspeter Portner
@ 2022-01-17 19:14 ` Giulio Benetti
2022-07-25 15:31 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Giulio Benetti @ 2022-01-17 19:14 UTC (permalink / raw)
To: Hanspeter Portner, buildroot
Hi Hanspeter,
On 10/06/21 12:57, Hanspeter Portner wrote:
> Based on configs/toradex_apalis_imx6 with Toradex' mainline linux/uboot
> branches.
>
> Tested on:
> Module: 'Toradex Col IMX6DL 512MB V1.0A'
> Evalboard: 'Toradex Col Evaluation V3.2A'
Overall commit log is not that clear. This patch "adds initial
support(is it complete?) for toradex_colibri_imx6".
Can you please reword this commit log?
And...
> Signed-off-by: Hanspeter Portner <dev@open-music-kontrollers.ch>
> ---
> board/toradex/colibri-imx6/genimage.cfg | 15 +++++++
> board/toradex/colibri-imx6/post-image.sh | 20 +++++++++
> board/toradex/colibri-imx6/readme.txt | 53 ++++++++++++++++++++++++
> board/toradex/colibri-imx6/uEnv.txt | 7 ++++
> configs/toradex_colibri_imx6_defconfig | 25 +++++++++++
> 5 files changed, 120 insertions(+)
> create mode 100644 board/toradex/colibri-imx6/genimage.cfg
> create mode 100755 board/toradex/colibri-imx6/post-image.sh
> create mode 100644 board/toradex/colibri-imx6/readme.txt
> create mode 100644 board/toradex/colibri-imx6/uEnv.txt
> create mode 100644 configs/toradex_colibri_imx6_defconfig
>
> diff --git a/board/toradex/colibri-imx6/genimage.cfg b/board/toradex/colibri-imx6/genimage.cfg
> new file mode 100644
> index 0000000000..91c927c723
> --- /dev/null
> +++ b/board/toradex/colibri-imx6/genimage.cfg
> @@ -0,0 +1,15 @@
> +# Minimal SD card image for the Toradex Colibri i.MX6 COM
> +#
> +# It does not need a boot section for a bootloader since it is booted
> +# from its internal flash memory (eMMC).
I'm not used to imx6 anymore for many years, so I don't remember how
bootloader can automatically load u-boot and linux. Maybe here you
didn't explain well what's going on and this should go for sure on
commit log too.
> +
> +image sdcard.img {
> + hdimage {
> + }
> +
> + partition rootfs {
> + partition-type = 0x83
> + image = "rootfs.ext2"
> + size = 512M
> + }
> +}
> diff --git a/board/toradex/colibri-imx6/post-image.sh b/board/toradex/colibri-imx6/post-image.sh
> new file mode 100755
> index 0000000000..b95e175a29
> --- /dev/null
> +++ b/board/toradex/colibri-imx6/post-image.sh
> @@ -0,0 +1,20 @@
> +#!/usr/bin/env bash
> +
> +GENIMAGE_CFG="$(dirname $0)/genimage.cfg"
> +GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
> +
> +# copy the uEnv.txt to the output/images directory
> +cp board/toradex/colibri-imx6/uEnv.txt $BINARIES_DIR/uEnv.txt
> +
> +rm -rf "${GENIMAGE_TMP}"
> +
> +# generate rootfs.img
> +genimage \
> + --rootpath "${TARGET_DIR}" \
> + --tmppath "${GENIMAGE_TMP}" \
> + --inputpath "${BINARIES_DIR}" \
> + --outputpath "${BINARIES_DIR}" \
> + --config "${GENIMAGE_CFG}"
> +
> +RET=${?}
> +exit ${RET}
> diff --git a/board/toradex/colibri-imx6/readme.txt b/board/toradex/colibri-imx6/readme.txt
> new file mode 100644
> index 0000000000..50078db173
> --- /dev/null
> +++ b/board/toradex/colibri-imx6/readme.txt
> @@ -0,0 +1,53 @@
> +Toradex Colibri i.MX6 Computer on Module
> +
> +Intro
> +=====
> +
> +The Colibri iMX6 is a SODIMM sized computer module based on NXP®/Freescale
> +i.MX 6 SoC. The module targets a wide range of applications, including:
> +Medical Devices, Navigation, Industrial Automation, HMIs, Avionics,
> +Entertainment system, POS, Data Acquisition, Thin Clients, Robotics, Gaming
> +and much more. It offers a wide range of interfaces from simple GPIOs, industry
> +standard I2C, SPI, CAN, and UART buses through to high speed USB 2.0 interfaces
> +and a 16/32bit external memory bus (parallel bus). The HDMI interface makes it
> +very easy to connect large, full HD resolution displays
> +
> +https://www.toradex.com/computer-on-modules/colibri-arm-family/nxp-freescale-imx6
> +
> +It supports one carrier boards:
> +
> +Colibri Evaluation Board
> +https://www.toradex.com/products/carrier-board/colibri-evaluation-board
> +
> +How to build it
> +===============
> +
> +Configure Buildroot:
> +
> + $ make toradex_colibri_imx6_defconfig
> +
> +Compile everything and build the rootfs image:
> +
> + $ make
> +
So here basically you only build the rootfs.
> +How to boot the image
> +=====================
> +
> +The board only boots from its internal flash memory eMMC, so the
> +bootloader image should be copied to it, following the procedures
> +described in Toradex website.
> +
> +http://developer.toradex.com/knowledge-base/flashing-linux-on-imx6-modules
> +
> +Buildroot prepares a "sdcard.img" in output/images/ with the kernel
> +image, device tree and a root filesystem, ready to be dumped on an SD
> +card.
> +
> + $ dd if=output/images/sdcard.img of=/dev/sdX bs=1M
> +
> +To boot from the SD card, you should change the U-Boot
> +environment. Since U-Boot is running from internal eMMC, you will need
> +to access its command line prompt and manually set the necessary
> +variables to boot from the external SD card. For convenience, you can
> +use uEnv.txt provided in output/images/ as a reference to create the
> +necessary U-Boot variables to boot from the SD card.
Ah here it's clarified. But this only creates a rootfs and need some
external intervention.
Couldn't you create support including u-boot in the genimage.cfg?
Because what I expect from a defconfig that produces a sdcard.img is
that I flash it and it simply works.
Otherwise, please rename the defconfig by placing _rootfs_only suffix at
the end. But I'd go for having a unique image with u-boot included.
> diff --git a/board/toradex/colibri-imx6/uEnv.txt b/board/toradex/colibri-imx6/uEnv.txt
> new file mode 100644
> index 0000000000..e8fec787aa
> --- /dev/null
> +++ b/board/toradex/colibri-imx6/uEnv.txt
> @@ -0,0 +1,7 @@
> +setenv boot_file 'zImage'
> +setenv fdt_file 'imx6dl-colibri-eval-v3.dtb'
> +setenv sdargs 'ip=off root=/dev/mmcblk0p1 rw,noatime rootfstype=ext4 rootwait'
> +setenv sddtbload 'ext2load mmc 1:1 ${fdt_addr_r} boot/${fdt_file}'
> +setenv sdkernelload 'ext2load mmc 1:1 ${kernel_addr_r} boot/${boot_file}'
> +setenv bootcmd 'run setup; setenv bootargs ${defargs} ${sdargs} ${setupargs} ${vidargs}; echo Booting from SD card...; run sddtbload; run sdkernelload; bootz ${kernel_addr_r} - ${fdt_addr_r}'
> +run bootcmd
> diff --git a/configs/toradex_colibri_imx6_defconfig b/configs/toradex_colibri_imx6_defconfig
> new file mode 100644
> index 0000000000..0e50381579
> --- /dev/null
> +++ b/configs/toradex_colibri_imx6_defconfig
> @@ -0,0 +1,25 @@
> +BR2_arm=y
> +BR2_cortex_a9=y
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/toradex/colibri-imx6/post-image.sh"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_GIT=y
> +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.toradex.com/linux-toradex.git"
> +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="toradex_5.4.y"
> +BR2_LINUX_KERNEL_DEFCONFIG="toradex-imx_v6_v7"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-colibri-eval-v3"
> +BR2_LINUX_KERNEL_INSTALL_TARGET=y
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
> +BR2_TARGET_UBOOT_CUSTOM_GIT=y
> +BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.toradex.com/u-boot-toradex.git"
> +BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="toradex_2020.07"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="colibri_imx6"
> +BR2_TARGET_UBOOT_FORMAT_IMG=y
> +BR2_TARGET_UBOOT_SPL=y
> +BR2_TARGET_UBOOT_SPL_NAME="SPL"
Where does u-boot binary goes into memory? Because as I can see, eMMC
u-boot will be used instead of the sd-card one. So in case you only want
to produce a rootfs with linux inside, I would also remove the uboot
building here.
Thank you!
Best regards
--
Giulio Benetti
Benetti Engineering sas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit
2021-06-10 10:57 [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit Hanspeter Portner
2022-01-17 19:14 ` Giulio Benetti
@ 2022-07-25 15:31 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-07-25 15:31 UTC (permalink / raw)
To: Hanspeter Portner; +Cc: buildroot
Hello Hanspeter,
On Thu, 10 Jun 2021 12:57:39 +0200
Hanspeter Portner <dev@open-music-kontrollers.ch> wrote:
> Based on configs/toradex_apalis_imx6 with Toradex' mainline linux/uboot
> branches.
>
> Tested on:
> Module: 'Toradex Col IMX6DL 512MB V1.0A'
> Evalboard: 'Toradex Col Evaluation V3.2A'
>
> Signed-off-by: Hanspeter Portner <dev@open-music-kontrollers.ch>
> ---
> board/toradex/colibri-imx6/genimage.cfg | 15 +++++++
> board/toradex/colibri-imx6/post-image.sh | 20 +++++++++
> board/toradex/colibri-imx6/readme.txt | 53 ++++++++++++++++++++++++
> board/toradex/colibri-imx6/uEnv.txt | 7 ++++
> configs/toradex_colibri_imx6_defconfig | 25 +++++++++++
> 5 files changed, 120 insertions(+)
> create mode 100644 board/toradex/colibri-imx6/genimage.cfg
> create mode 100755 board/toradex/colibri-imx6/post-image.sh
> create mode 100644 board/toradex/colibri-imx6/readme.txt
> create mode 100644 board/toradex/colibri-imx6/uEnv.txt
> create mode 100644 configs/toradex_colibri_imx6_defconfig
Thanks for your contribution. However, you got some feedback in January
2022, which requested some changes/improvements, but unless we missed
it, we did not receive an updated version of your patch.
I will now mark your patch as "Changes Requested" in our patch tracking
system.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-07-25 15:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-10 10:57 [Buildroot] [PATCH 1/1] configs/toradex_colibri_imx6: initial commit Hanspeter Portner
2022-01-17 19:14 ` Giulio Benetti
2022-07-25 15:31 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.