All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration
@ 2016-06-24 15:59 Fabien Lahoudere
  2016-06-27 18:51 ` Troy Kisky
  2016-06-28 10:58 ` [U-Boot] [PATCH] " Sjoerd Simons
  0 siblings, 2 replies; 10+ messages in thread
From: Fabien Lahoudere @ 2016-06-24 15:59 UTC (permalink / raw)
  To: u-boot

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>
---
 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    |  28 +++++++
 include/configs/nitrogen6x.h    | 169 ++++------------------------------------
 10 files changed, 97 insertions(+), 154 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..75cbc84 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,26 @@
 #define CONFIG_CMD_FUSE
 #define CONFIG_MXC_OCOTP
 
+#ifdef CONFIG_DISTRO_DEFAULTS
+#include <config_distro_defaults.h>
+
+#ifndef CONFIG_FDTFILE
+#define CONFIG_FDTFILE "undefined"
+#endif
+
+#include <config_distro_bootcmd.h>
+
+#define CONFIG_EXTRA_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..33658b0 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,159 +111,22 @@
 
 #define CONFIG_PREBOOT                 ""
 
-#ifdef CONFIG_CMD_SATA
-#define CONFIG_DRIVE_SATA "sata "
-#else
-#define CONFIG_DRIVE_SATA
-#endif
-
-#ifdef CONFIG_CMD_MMC
-#define CONFIG_DRIVE_MMC "mmc "
-#else
-#define CONFIG_DRIVE_MMC
-#endif
-
-#ifdef CONFIG_USB_STORAGE
-#define CONFIG_DRIVE_USB "usb "
+#if defined(CONFIG_SABRELITE)
+#define CONFIG_FDTFILE "imx6q-sabrelite.dtb"
 #else
-#define CONFIG_DRIVE_USB
+#define CONFIG_FDTFILE "imx6q-nitrogen6x.dtb"
 #endif
 
-#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC CONFIG_DRIVE_USB
-#define CONFIG_UMSDEVS CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
-
-#if defined(CONFIG_SABRELITE)
-#define CONFIG_EXTRA_ENV_SETTINGS \
-	"script=boot.scr\0" \
-	"uimage=uImage\0" \
-	"console=ttymxc1\0" \
-	"fdt_high=0xffffffff\0" \
-	"initrd_high=0xffffffff\0" \
-	"fdt_file=imx6q-sabrelite.dtb\0" \
-	"fdt_addr=0x18000000\0" \
-	"boot_fdt=try\0" \
-	"ip_dyn=yes\0" \
-	"mmcdevs=0 1\0" \
-	"mmcpart=1\0" \
-	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
-	"mmcargs=setenv bootargs console=${console},${baudrate} " \
-		"root=${mmcroot}\0" \
-	"loadbootscript=" \
-		"load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
-	"bootscript=echo Running bootscript from mmc ...; " \
-		"source\0" \
-	"loaduimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \
-	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
-	"mmcboot=echo Booting from mmc ...; " \
-		"run mmcargs; " \
-		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
-			"if run loadfdt; then " \
-				"bootm ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"if test ${boot_fdt} = try; then " \
-					"bootm; " \
-				"else " \
-					"echo WARN: Cannot load the DT; " \
-				"fi; " \
-			"fi; " \
-		"else " \
-			"bootm; " \
-		"fi;\0" \
-	"netargs=setenv bootargs console=${console},${baudrate} " \
-		"root=/dev/nfs " \
-	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
-		"netboot=echo Booting from net ...; " \
-		"run netargs; " \
-		"if test ${ip_dyn} = yes; then " \
-			"setenv get_cmd dhcp; " \
-		"else " \
-			"setenv get_cmd tftp; " \
-		"fi; " \
-		"${get_cmd} ${uimage}; " \
-		"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
-			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
-				"bootm ${loadaddr} - ${fdt_addr}; " \
-			"else " \
-				"if test ${boot_fdt} = try; then " \
-					"bootm; " \
-				"else " \
-					"echo WARN: Cannot load the DT; " \
-				"fi; " \
-			"fi; " \
-		"else " \
-			"bootm; " \
-		"fi;\0"
+#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_BOOTCOMMAND \
-	"for mmcdev in ${mmcdevs}; do " \
-		"mmc dev ${mmcdev}; " \
-		"if mmc rescan; then " \
-			"if run loadbootscript; then " \
-				"run bootscript; " \
-			"else " \
-				"if run loaduimage; then " \
-					"run mmcboot; " \
-				"fi; " \
-			"fi; " \
-		"fi; " \
-	"done; " \
-	"run netboot; "
-#else
-#define CONFIG_EXTRA_ENV_SETTINGS \
-	"bootdevs=" CONFIG_DRIVE_TYPES "\0" \
-	"umsdevs=" CONFIG_UMSDEVS "\0" \
-	"console=ttymxc1\0" \
-	"clearenv=if sf probe || sf probe || sf probe 1 ; then " \
-		"sf erase 0xc0000 0x2000 && " \
-		"echo restored environment to factory default ; fi\0" \
-	"bootcmd=for dtype in ${bootdevs}" \
-		"; do " \
-			"if itest.s \"xusb\" == \"x${dtype}\" ; then " \
-				"usb start ;" \
-			"fi; " \
-			"for disk in 0 1 ; do ${dtype} dev ${disk} ;" \
-				"load " \
-					"${dtype} ${disk}:1 " \
-					"10008000 " \
-					"/6x_bootscript" \
-					"&& source 10008000 ; " \
-			"done ; " \
-		"done; " \
-		"setenv stdout serial,vga ; " \
-		"echo ; echo 6x_bootscript not found ; " \
-		"echo ; echo serial console at 115200, 8N1 ; echo ; " \
-		"echo details at http://boundarydevices.com/6q_bootscript ; " \
-		"setenv stdout serial;" \
-		"setenv stdin serial,usbkbd;" \
-		"for dtype in ${umsdevs} ; do " \
-			"if itest.s sata == ${dtype}; then " \
-				"initcmd='sata init' ;" \
-			"else " \
-				"initcmd='mmc rescan' ;" \
-			"fi; " \
-			"for disk in 0 1 ; do " \
-				"if $initcmd && $dtype dev $disk ; then " \
-					"setenv stdout serial,vga; " \
-					"echo expose ${dtype} ${disk} " \
-						"over USB; " \
-					"ums 0 $dtype $disk ;" \
-				"fi; " \
-		"	done; " \
-		"done ;" \
-		"setenv stdout serial,vga; " \
-		"echo no block devices found;" \
-		"\0" \
-	"initrd_high=0xffffffff\0" \
-	"upgradeu=for dtype in ${bootdevs}" \
-		"; do " \
-		"for disk in 0 1 ; do ${dtype} dev ${disk} ;" \
-			"load ${dtype} ${disk}:1 10008000 " \
-				"/6x_upgrade " \
-				"&& source 10008000 ; " \
-		"done ; " \
-	"done\0" \
+#include "mx6_common.h"
 
-#endif
 /* Miscellaneous configurable options */
 #define CONFIG_SYS_MEMTEST_START       0x10000000
 #define CONFIG_SYS_MEMTEST_END	       0x10010000
@@ -327,4 +188,4 @@
 #define CONFIG_FASTBOOT_BUF_ADDR   CONFIG_SYS_LOAD_ADDR
 #define CONFIG_FASTBOOT_BUF_SIZE   0x07000000
 
-#endif	       /* __CONFIG_H */
+#endif /* __CONFIG_H */
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration
  2016-06-24 15:59 [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration Fabien Lahoudere
@ 2016-06-27 18:51 ` Troy Kisky
  2016-06-28  7:58   ` Fabien Lahoudere
  2016-06-28 10:22   ` [U-Boot] [PATCH v2] " Fabien Lahoudere
  2016-06-28 10:58 ` [U-Boot] [PATCH] " Sjoerd Simons
  1 sibling, 2 replies; 10+ messages in thread
From: Troy Kisky @ 2016-06-27 18:51 UTC (permalink / raw)
  To: u-boot

On 6/24/2016 8:59 AM, Fabien Lahoudere wrote:
> 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>
...
> +
> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
> index fb49322..75cbc84 100644
> --- a/include/configs/mx6_common.h
> +++ b/include/configs/mx6_common.h
> +#define CONFIG_EXTRA_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
> +

This should probably be called something like CONFIG_EXTRA_DEFAULT_ENV_SETTINGS
and the board files could contain

#define CONFIG_EXTRA_ENV_SETTINGS CONFIG_EXTRA_DEFAULT_ENV_SETTINGS \
	"extra=more stuff\0" \


I would not remove any environment variables in this patch except for redundant things.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration
  2016-06-27 18:51 ` Troy Kisky
@ 2016-06-28  7:58   ` Fabien Lahoudere
  2016-06-28 10:22   ` [U-Boot] [PATCH v2] " Fabien Lahoudere
  1 sibling, 0 replies; 10+ messages in thread
From: Fabien Lahoudere @ 2016-06-28  7:58 UTC (permalink / raw)
  To: u-boot

On 27/06/16 20:51, Troy Kisky wrote:
> On 6/24/2016 8:59 AM, Fabien Lahoudere wrote:
>> 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>
> ...
>> +
>> diff --git a/include/configs/mx6_common.h b/include/configs/mx6_common.h
>> index fb49322..75cbc84 100644
>> --- a/include/configs/mx6_common.h
>> +++ b/include/configs/mx6_common.h
>> +#define CONFIG_EXTRA_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
>> +
> This should probably be called something like CONFIG_EXTRA_DEFAULT_ENV_SETTINGS
> and the board files could contain
>
> #define CONFIG_EXTRA_ENV_SETTINGS CONFIG_EXTRA_DEFAULT_ENV_SETTINGS \
> 	"extra=more stuff\0" \
>
>
> I would not remove any environment variables in this patch except for redundant things.
>
Hello Troy

Thank you for your reply.
I think that all variables defined in CONFIG_EXTRA_ENV_SETTINGS are 
redundant with the generic distro configuration feature (except for 
ums). That's why I thought to replace this variable.

Advantages of this feature is:
- to boot any distro on any media
- have more common code between imx6 boards
- manage more media than current settings
- use more generic configuration (extlinux.conf)

I will prepare a new patch in order to keep current settings and set 
generic distro only if CONFIG_DISTRO_DEFAULTS=y

Is it ok for you?

Thanks

Fabien

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH v2] nitrogen6x : Use generic distro configuration
  2016-06-27 18:51 ` Troy Kisky
  2016-06-28  7:58   ` Fabien Lahoudere
@ 2016-06-28 10:22   ` Fabien Lahoudere
  1 sibling, 0 replies; 10+ messages in thread
From: Fabien Lahoudere @ 2016-06-28 10:22 UTC (permalink / raw)
  To: u-boot

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

 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    | 28 ++++++++++++++++++++++++
 include/configs/nitrogen6x.h    | 35 ++++++++++++++++++++++++------
 10 files changed, 111 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..d65bd8e 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,26 @@
 #define CONFIG_CMD_FUSE
 #define CONFIG_MXC_OCOTP
 
+#ifdef CONFIG_DISTRO_DEFAULTS
+#include <config_distro_defaults.h>
+
+#ifndef CONFIG_FDTFILE
+#define CONFIG_FDTFILE "undefined"
+#endif
+
+#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..528e5e1 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,29 @@
 	"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 +350,4 @@
 #define CONFIG_FASTBOOT_BUF_ADDR   CONFIG_SYS_LOAD_ADDR
 #define CONFIG_FASTBOOT_BUF_SIZE   0x07000000
 
-#endif	       /* __CONFIG_H */
+#endif /* __CONFIG_H */
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration
  2016-06-24 15:59 [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration Fabien Lahoudere
  2016-06-27 18:51 ` Troy Kisky
@ 2016-06-28 10:58 ` Sjoerd Simons
  2016-06-28 15:37   ` Fabien Lahoudere
  2016-06-29  7:05   ` [U-Boot] [PATCH v3] " Fabien Lahoudere
  1 sibling, 2 replies; 10+ messages in thread
From: Sjoerd Simons @ 2016-06-28 10:58 UTC (permalink / raw)
  To: u-boot

On Fri, 2016-06-24 at 17:59 +0200, Fabien Lahoudere wrote:
> 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>
> ---
>?
> diff --git a/include/configs/mx6_common.h
> b/include/configs/mx6_common.h
> index fb49322..75cbc84 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,26 @@
> ?#define CONFIG_CMD_FUSE
> ?#define CONFIG_MXC_OCOTP
> ?
> +#ifdef CONFIG_DISTRO_DEFAULTS
> +#include <config_distro_defaults.h>

Why a configure option for using the default distro options rather then
just always using them??

Note that you can use the defaults without enforcing distro_bootcmd
usage. (Though it would be good to get some consistent boot setup on
all the mx6 devices ofcourse)

> +#ifndef CONFIG_FDTFILE
> +#define CONFIG_FDTFILE "undefined"
> +#endif

Not having an fdt is bad when using distro boot commands, probably
better to error here.

> +#include <config_distro_bootcmd.h>
> +
> +#define CONFIG_EXTRA_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..33658b0 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,159 +111,22 @@
> ?
> ?#define CONFIG_PREBOOT?????????????????""
> ?
> -#ifdef CONFIG_CMD_SATA
> -#define CONFIG_DRIVE_SATA "sata "
> -#else
> -#define CONFIG_DRIVE_SATA
> -#endif
> -
> -#ifdef CONFIG_CMD_MMC
> -#define CONFIG_DRIVE_MMC "mmc "
> -#else
> -#define CONFIG_DRIVE_MMC
> -#endif
> -
> -#ifdef CONFIG_USB_STORAGE
> -#define CONFIG_DRIVE_USB "usb "
> +#if defined(CONFIG_SABRELITE)
> +#define CONFIG_FDTFILE "imx6q-sabrelite.dtb"
> ?#else
> -#define CONFIG_DRIVE_USB
> +#define CONFIG_FDTFILE "imx6q-nitrogen6x.dtb"
> ?#endif
> ?
> -#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
> CONFIG_DRIVE_USB
> -#define CONFIG_UMSDEVS CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
> -
> -#if defined(CONFIG_SABRELITE)
> -#define CONFIG_EXTRA_ENV_SETTINGS \
> -	"script=boot.scr\0" \
> -	"uimage=uImage\0" \
> -	"console=ttymxc1\0" \
> -	"fdt_high=0xffffffff\0" \
> -	"initrd_high=0xffffffff\0" \
> -	"fdt_file=imx6q-sabrelite.dtb\0" \
> -	"fdt_addr=0x18000000\0" \
> -	"boot_fdt=try\0" \
> -	"ip_dyn=yes\0" \
> -	"mmcdevs=0 1\0" \
> -	"mmcpart=1\0" \
> -	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
> -	"mmcargs=setenv bootargs console=${console},${baudrate} " \
> -		"root=${mmcroot}\0" \
> -	"loadbootscript=" \
> -		"load mmc ${mmcdev}:${mmcpart} ${loadaddr}
> ${script};\0" \
> -	"bootscript=echo Running bootscript from mmc ...; " \
> -		"source\0" \
> -	"loaduimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr}
> ${uimage}\0" \
> -	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr}
> ${fdt_file}\0" \
> -	"mmcboot=echo Booting from mmc ...; " \
> -		"run mmcargs; " \
> -		"if test ${boot_fdt} = yes || test ${boot_fdt} =
> try; then " \
> -			"if run loadfdt; then " \
> -				"bootm ${loadaddr} - ${fdt_addr}; "
> \
> -			"else " \
> -				"if test ${boot_fdt} = try; then " \
> -					"bootm; " \
> -				"else " \
> -					"echo WARN: Cannot load the
> DT; " \
> -				"fi; " \
> -			"fi; " \
> -		"else " \
> -			"bootm; " \
> -		"fi;\0" \
> -	"netargs=setenv bootargs console=${console},${baudrate} " \
> -		"root=/dev/nfs " \
> -	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
> -		"netboot=echo Booting from net ...; " \
> -		"run netargs; " \
> -		"if test ${ip_dyn} = yes; then " \
> -			"setenv get_cmd dhcp; " \
> -		"else " \
> -			"setenv get_cmd tftp; " \
> -		"fi; " \
> -		"${get_cmd} ${uimage}; " \
> -		"if test ${boot_fdt} = yes || test ${boot_fdt} =
> try; then " \
> -			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then
> " \
> -				"bootm ${loadaddr} - ${fdt_addr}; "
> \
> -			"else " \
> -				"if test ${boot_fdt} = try; then " \
> -					"bootm; " \
> -				"else " \
> -					"echo WARN: Cannot load the
> DT; " \
> -				"fi; " \
> -			"fi; " \
> -		"else " \
> -			"bootm; " \
> -		"fi;\0"
> +#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)

You probably don't want to toss out all the legacy boot stuff. See
commit?bc3199fd1875f89e9e1fb2af45665c4a718217b9 for an example of how
to integrate older hardcoded boot commands with the distro boot
commands.

Do take special care about the ordering, It's probably undesirable to
have attempts for network booting happening before e.g. trying to do an
upgrade.

>?
-- 

Sjoerd Simons
Collabora Ltd.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration
  2016-06-28 10:58 ` [U-Boot] [PATCH] " Sjoerd Simons
@ 2016-06-28 15:37   ` Fabien Lahoudere
  2016-06-29  7:05   ` [U-Boot] [PATCH v3] " Fabien Lahoudere
  1 sibling, 0 replies; 10+ messages in thread
From: Fabien Lahoudere @ 2016-06-28 15:37 UTC (permalink / raw)
  To: u-boot



On 28/06/16 12:58, Sjoerd Simons wrote:
> On Fri, 2016-06-24 at 17:59 +0200, Fabien Lahoudere wrote:
>> 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>
>> ---
>>
>> diff --git a/include/configs/mx6_common.h
>> b/include/configs/mx6_common.h
>> index fb49322..75cbc84 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,26 @@
>>  #define CONFIG_CMD_FUSE
>>  #define CONFIG_MXC_OCOTP
>>
>> +#ifdef CONFIG_DISTRO_DEFAULTS
>> +#include <config_distro_defaults.h>
>
> Why a configure option for using the default distro options rather then
> just always using them?
>
> Note that you can use the defaults without enforcing distro_bootcmd
> usage. (Though it would be good to get some consistent boot setup on
> all the mx6 devices ofcourse)

Because #include <config_distro_defaults.h> need 
CONFIG_DISTRO_DEFAULTS=y else it does not compile.

And keeping this configure option will let the end user chose u-boot 
behaviour without having an heavy env.


>
>> +#ifndef CONFIG_FDTFILE
>> +#define CONFIG_FDTFILE "undefined"
>> +#endif
>
> Not having an fdt is bad when using distro boot commands, probably
> better to error here.
>

Ok. I agree and I will fix this.

>> +#include <config_distro_bootcmd.h>
>> +
>> +#define CONFIG_EXTRA_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..33658b0 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,159 +111,22 @@
>>
>>  #define CONFIG_PREBOOT                 ""
>>
>> -#ifdef CONFIG_CMD_SATA
>> -#define CONFIG_DRIVE_SATA "sata "
>> -#else
>> -#define CONFIG_DRIVE_SATA
>> -#endif
>> -
>> -#ifdef CONFIG_CMD_MMC
>> -#define CONFIG_DRIVE_MMC "mmc "
>> -#else
>> -#define CONFIG_DRIVE_MMC
>> -#endif
>> -
>> -#ifdef CONFIG_USB_STORAGE
>> -#define CONFIG_DRIVE_USB "usb "
>> +#if defined(CONFIG_SABRELITE)
>> +#define CONFIG_FDTFILE "imx6q-sabrelite.dtb"
>>  #else
>> -#define CONFIG_DRIVE_USB
>> +#define CONFIG_FDTFILE "imx6q-nitrogen6x.dtb"
>>  #endif
>>
>> -#define CONFIG_DRIVE_TYPES CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
>> CONFIG_DRIVE_USB
>> -#define CONFIG_UMSDEVS CONFIG_DRIVE_SATA CONFIG_DRIVE_MMC
>> -
>> -#if defined(CONFIG_SABRELITE)
>> -#define CONFIG_EXTRA_ENV_SETTINGS \
>> -	"script=boot.scr\0" \
>> -	"uimage=uImage\0" \
>> -	"console=ttymxc1\0" \
>> -	"fdt_high=0xffffffff\0" \
>> -	"initrd_high=0xffffffff\0" \
>> -	"fdt_file=imx6q-sabrelite.dtb\0" \
>> -	"fdt_addr=0x18000000\0" \
>> -	"boot_fdt=try\0" \
>> -	"ip_dyn=yes\0" \
>> -	"mmcdevs=0 1\0" \
>> -	"mmcpart=1\0" \
>> -	"mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
>> -	"mmcargs=setenv bootargs console=${console},${baudrate} " \
>> -		"root=${mmcroot}\0" \
>> -	"loadbootscript=" \
>> -		"load mmc ${mmcdev}:${mmcpart} ${loadaddr}
>> ${script};\0" \
>> -	"bootscript=echo Running bootscript from mmc ...; " \
>> -		"source\0" \
>> -	"loaduimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr}
>> ${uimage}\0" \
>> -	"loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr}
>> ${fdt_file}\0" \
>> -	"mmcboot=echo Booting from mmc ...; " \
>> -		"run mmcargs; " \
>> -		"if test ${boot_fdt} = yes || test ${boot_fdt} =
>> try; then " \
>> -			"if run loadfdt; then " \
>> -				"bootm ${loadaddr} - ${fdt_addr}; "
>> \
>> -			"else " \
>> -				"if test ${boot_fdt} = try; then " \
>> -					"bootm; " \
>> -				"else " \
>> -					"echo WARN: Cannot load the
>> DT; " \
>> -				"fi; " \
>> -			"fi; " \
>> -		"else " \
>> -			"bootm; " \
>> -		"fi;\0" \
>> -	"netargs=setenv bootargs console=${console},${baudrate} " \
>> -		"root=/dev/nfs " \
>> -	"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
>> -		"netboot=echo Booting from net ...; " \
>> -		"run netargs; " \
>> -		"if test ${ip_dyn} = yes; then " \
>> -			"setenv get_cmd dhcp; " \
>> -		"else " \
>> -			"setenv get_cmd tftp; " \
>> -		"fi; " \
>> -		"${get_cmd} ${uimage}; " \
>> -		"if test ${boot_fdt} = yes || test ${boot_fdt} =
>> try; then " \
>> -			"if ${get_cmd} ${fdt_addr} ${fdt_file}; then
>> " \
>> -				"bootm ${loadaddr} - ${fdt_addr}; "
>> \
>> -			"else " \
>> -				"if test ${boot_fdt} = try; then " \
>> -					"bootm; " \
>> -				"else " \
>> -					"echo WARN: Cannot load the
>> DT; " \
>> -				"fi; " \
>> -			"fi; " \
>> -		"else " \
>> -			"bootm; " \
>> -		"fi;\0"
>> +#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)
>
> You probably don't want to toss out all the legacy boot stuff. See
> commit bc3199fd1875f89e9e1fb2af45665c4a718217b9 for an example of how
> to integrate older hardcoded boot commands with the distro boot
> commands.
>
> Do take special care about the ordering, It's probably undesirable to
> have attempts for network booting happening before e.g. trying to do an
> upgrade.
>

Yes I see the commit but the problem with the nitrogen6x.h is that there 
is two different env. So if we add LEGACY_MMC, we need to redefine 
mmcboot depending on what board is used. The goal is to simplify so I 
prefer not to add this legacy stuff.
I you think it is mandatory, I can add it and redefine mmcboot if necessary.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration
  2016-06-28 10:58 ` [U-Boot] [PATCH] " Sjoerd Simons
  2016-06-28 15:37   ` Fabien Lahoudere
@ 2016-06-29  7:05   ` Fabien Lahoudere
  2016-07-13 14:28     ` Stefano Babic
  1 sibling, 1 reply; 10+ messages in thread
From: Fabien Lahoudere @ 2016-06-29  7:05 UTC (permalink / raw)
  To: u-boot

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 */
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration
  2016-06-29  7:05   ` [U-Boot] [PATCH v3] " Fabien Lahoudere
@ 2016-07-13 14:28     ` Stefano Babic
  2016-07-20  8:07       ` Fabien Lahoudere
  0 siblings, 1 reply; 10+ messages in thread
From: Stefano Babic @ 2016-07-13 14:28 UTC (permalink / raw)
  To: u-boot

Hi Fabien,

On 29/06/2016 09:05, Fabien Lahoudere wrote:
> 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

I am afraid that this can be a problem. I am not sure that all boards
can share the same address.

On most boards, mx6_common is included at the beginning of the
configuration file. This means that CONFIG_FDTADDR is surely not set,
and it will be set to 0x18000000.

For some boards this could be flawless: for example, I see  the
"aristainetos" board, it uses as address 0x14000000. But it is set
later. It remains just confusing that a CONFIG_FDTADDR is set to a
different address as used.

But for other boards I am quite unsure - it could generate some problems.

> +#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 */
> 

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration
  2016-07-13 14:28     ` Stefano Babic
@ 2016-07-20  8:07       ` Fabien Lahoudere
  2016-07-21 10:01         ` Stefano Babic
  0 siblings, 1 reply; 10+ messages in thread
From: Fabien Lahoudere @ 2016-07-20  8:07 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

Thank you for your comments.

On 13/07/2016 16:28, Stefano Babic wrote:
> Hi Fabien,
>
> On 29/06/2016 09:05, Fabien Lahoudere wrote:
>> 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
> I am afraid that this can be a problem. I am not sure that all boards
> can share the same address.
>
> On most boards, mx6_common is included at the beginning of the
> configuration file. This means that CONFIG_FDTADDR is surely not set,
> and it will be set to 0x18000000.
>
> For some boards this could be flawless: for example, I see  the
> "aristainetos" board, it uses as address 0x14000000. But it is set
> later. It remains just confusing that a CONFIG_FDTADDR is set to a
> different address as used.
>
> But for other boards I am quite unsure - it could generate some problems.
I will remove those lines that just lead to a compilation error only if
we forgot to set CONFIG_FDTADDR when CONFIG_DISTRO_DEFAULTS=y.
Is this change acceptable for you?
>> +#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 */
>>
> Best regards,
> Stefano Babic
>

-- 
Fabien Lahoudere
Collabora Ltd.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration
  2016-07-20  8:07       ` Fabien Lahoudere
@ 2016-07-21 10:01         ` Stefano Babic
  0 siblings, 0 replies; 10+ messages in thread
From: Stefano Babic @ 2016-07-21 10:01 UTC (permalink / raw)
  To: u-boot

Hi Fabien,

On 20/07/2016 10:07, Fabien Lahoudere wrote:
>
>> On most boards, mx6_common is included at the beginning of the
>> configuration file. This means that CONFIG_FDTADDR is surely not set,
>> and it will be set to 0x18000000.
>>
>> For some boards this could be flawless: for example, I see  the
>> "aristainetos" board, it uses as address 0x14000000. But it is set
>> later. It remains just confusing that a CONFIG_FDTADDR is set to a
>> different address as used.
>>
>> But for other boards I am quite unsure - it could generate some problems.
> I will remove those lines that just lead to a compilation error only if
> we forgot to set CONFIG_FDTADDR when CONFIG_DISTRO_DEFAULTS=y.
> Is this change acceptable for you?

I agree - this lets boards that do not use CONFIG_DISTRO unchanged.

Best regards,
Stefano Babic


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-07-21 10:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-24 15:59 [U-Boot] [PATCH] nitrogen6x : Use generic distro configuration Fabien Lahoudere
2016-06-27 18:51 ` Troy Kisky
2016-06-28  7:58   ` Fabien Lahoudere
2016-06-28 10:22   ` [U-Boot] [PATCH v2] " Fabien Lahoudere
2016-06-28 10:58 ` [U-Boot] [PATCH] " Sjoerd Simons
2016-06-28 15:37   ` Fabien Lahoudere
2016-06-29  7:05   ` [U-Boot] [PATCH v3] " Fabien Lahoudere
2016-07-13 14:28     ` Stefano Babic
2016-07-20  8:07       ` Fabien Lahoudere
2016-07-21 10:01         ` Stefano Babic

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.