
In order to simplify the use of various images on various media for nitrogen6x, the configuration of the board must follow the generic distro configuration (doc/README.distro).
In order to boot your old rootfs, move your kernel and your device tree in /boot/. Then create /boot/extlinux/extlinux.conf with for example:
default Buildroot
label Buildroot kernel /boot/zImage append console=ttymxc1,115200 root=/dev/mmcblk0p1 rootwait rw fdtdir /boot
Signed-off-by: Fabien Lahoudere fabien.lahoudere@collabora.co.uk --- Changes for V2: - reintegration of deleted env - changes are applied only if CONFIG_DISTRO_DEFAULTS=y
Changes for V3: - remove undefined device tree configs/mx6qsabrelite_defconfig | 1 + configs/nitrogen6dl2g_defconfig | 1 + configs/nitrogen6dl_defconfig | 1 + configs/nitrogen6q2g_defconfig | 1 + configs/nitrogen6q_defconfig | 1 + configs/nitrogen6s1g_defconfig | 1 + configs/nitrogen6s_defconfig | 1 + doc/README.imx6 | 47 +++++++++++++++++++++++++++++++++++++++++ include/configs/mx6_common.h | 24 +++++++++++++++++++++ include/configs/nitrogen6x.h | 36 +++++++++++++++++++++++++------ 10 files changed, 108 insertions(+), 6 deletions(-)
diff --git a/configs/mx6qsabrelite_defconfig b/configs/mx6qsabrelite_defconfig index fa6139a..27b64c4 100644 --- a/configs/mx6qsabrelite_defconfig +++ b/configs/mx6qsabrelite_defconfig @@ -36,3 +36,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6dl2g_defconfig b/configs/nitrogen6dl2g_defconfig index 02b2462..b1344c6 100644 --- a/configs/nitrogen6dl2g_defconfig +++ b/configs/nitrogen6dl2g_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6dl_defconfig b/configs/nitrogen6dl_defconfig index 52553f6..f794c08 100644 --- a/configs/nitrogen6dl_defconfig +++ b/configs/nitrogen6dl_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6q2g_defconfig b/configs/nitrogen6q2g_defconfig index 11188b7..56cebe0 100644 --- a/configs/nitrogen6q2g_defconfig +++ b/configs/nitrogen6q2g_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6q_defconfig b/configs/nitrogen6q_defconfig index 05bf140..c150b97 100644 --- a/configs/nitrogen6q_defconfig +++ b/configs/nitrogen6q_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6s1g_defconfig b/configs/nitrogen6s1g_defconfig index bb081a2..dfd096d 100644 --- a/configs/nitrogen6s1g_defconfig +++ b/configs/nitrogen6s1g_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/configs/nitrogen6s_defconfig b/configs/nitrogen6s_defconfig index 08e91c9..5e2e693 100644 --- a/configs/nitrogen6s_defconfig +++ b/configs/nitrogen6s_defconfig @@ -34,3 +34,4 @@ CONFIG_G_DNL_MANUFACTURER="Boundary" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_DISTRO_DEFAULTS=y \ No newline at end of file diff --git a/doc/README.imx6 b/doc/README.imx6 index 1823fb2..36452f6 100644 --- a/doc/README.imx6 +++ b/doc/README.imx6 @@ -138,3 +138,50 @@ c The last "c" command tells kermit (from ckermit package in most distros) to switch from command line mode to communication mode, and when the script is finished, the U-Boot prompt is shown in the same shell. + +3. Using generic distro configuration +------------------------------------- + +In order to simplify the use of various images on various media +for imx6 boards, the configuration of the board must follow the +generic distro configuration (doc/README.distro). + +3.1. Setup uboot configuration for your board +--------------------------------------------- + +First, you have to set 'CONFIG_DISTRO_DEFAULTS=y' in your board defconfig + +Some mandatory variable are set in mx6_common.h but can be overwritten like: + - fdtfile with CONFIG_FDTFILE + - fdt_addr_r and fdt_addr with CONFIG_FDTADDR + - ramdisk_addr_r, ramdiskaddr CONFIG_RAMDISKADDR + +You also have to define BOOT_TARGET_DEVICES with available media. +For example added in include/configs/nitrogen6x.h: +#define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ + func(MMC, mmc, 1) \ + func(SATA, sata, 0) \ + func(USB, usb, 0) \ + func(PXE, pxe, na) \ + func(DHCP, dhcp, na) + +All this configuration should be done before '#include "mx6_common.h"' + +3.2. Setup your distribution +---------------------------- + +Set the partition containing /boot/ bootable. +Copy your kernel and device tree in /boot. +Create /boot/extlinux/extlinux.conf on your rootfs and fill it according to specification +at http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/ + +For example: + +default Buildroot + +label Buildroot + kernel /boot/zImage + append console=ttymxc1,115200 root=/dev/mmcblk0p1 rootwait rw + fdtdir /boot + diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h index fb49322..4a665d2 100644 --- a/include/configs/mx6_common.h +++ b/include/configs/mx6_common.h @@ -58,6 +58,12 @@ #endif #endif #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR +#ifndef CONFIG_FDTADDR +#define CONFIG_FDTADDR 0x18000000 +#endif +#ifndef CONFIG_RAMDISKADDR +#define CONFIG_RAMDISKADDR 0x13000000 +#endif
/* allow to overwrite serial and ethaddr */ #define CONFIG_ENV_OVERWRITE @@ -93,4 +99,22 @@ #define CONFIG_CMD_FUSE #define CONFIG_MXC_OCOTP
+#ifdef CONFIG_DISTRO_DEFAULTS +#include <config_distro_defaults.h> + +#include <config_distro_bootcmd.h> + +#define CONFIG_EXTRA_DEFAULT_ENV_SETTINGS \ + "fdtfile=" CONFIG_FDTFILE "\0" \ + "fdt_addr_r=" __stringify(CONFIG_FDTADDR) "\0" \ + "fdt_addr=" __stringify(CONFIG_FDTADDR) "\0" \ + "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ + "pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \ + "scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \ + "ramdisk_addr_r=" __stringify(CONFIG_RAMDISKADDR) "\0" \ + "ramdiskaddr=" __stringify(CONFIG_RAMDISKADDR) "\0" \ + BOOTENV + +#endif + #endif diff --git a/include/configs/nitrogen6x.h b/include/configs/nitrogen6x.h index b651eb3..c1a3a47 100644 --- a/include/configs/nitrogen6x.h +++ b/include/configs/nitrogen6x.h @@ -10,8 +10,6 @@ #ifndef __CONFIG_H #define __CONFIG_H
-#include "mx6_common.h" - #define CONFIG_MACH_TYPE 3769
/* Size of malloc() pool */ @@ -38,9 +36,9 @@ /* I2C Configs */ #define CONFIG_SYS_I2C #define CONFIG_SYS_I2C_MXC -#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ -#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ -#define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ +#define CONFIG_SYS_I2C_MXC_I2C1 /* enable I2C bus 1 */ +#define CONFIG_SYS_I2C_MXC_I2C2 /* enable I2C bus 2 */ +#define CONFIG_SYS_I2C_MXC_I2C3 /* enable I2C bus 3 */ #define CONFIG_SYS_I2C_SPEED 100000 #define CONFIG_I2C_EDID
@@ -113,6 +111,8 @@
#define CONFIG_PREBOOT ""
+#ifndef CONFIG_DISTRO_DEFAULTS + #ifdef CONFIG_CMD_SATA #define CONFIG_DRIVE_SATA "sata " #else @@ -266,6 +266,30 @@ "done\0" \
#endif + +#else + +#if defined(CONFIG_SABRELITE) +#define CONFIG_FDTFILE "imx6q-sabrelite.dtb" +#else +#define CONFIG_FDTFILE "imx6q-nitrogen6x.dtb" +#endif + +#define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ + func(MMC, mmc, 1) \ + func(SATA, sata, 0) \ + func(USB, usb, 0) \ + func(PXE, pxe, na) \ + func(DHCP, dhcp, na) + +#define CONFIG_EXTRA_ENV_SETTINGS \ + CONFIG_EXTRA_DEFAULT_ENV_SETTINGS + +#endif + +#include "mx6_common.h" + /* Miscellaneous configurable options */ #define CONFIG_SYS_MEMTEST_START 0x10000000 #define CONFIG_SYS_MEMTEST_END 0x10010000 @@ -327,4 +351,4 @@ #define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR #define CONFIG_FASTBOOT_BUF_SIZE 0x07000000
-#endif /* __CONFIG_H */ +#endif /* __CONFIG_H */