All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration
Date: Wed, 20 Jul 2016 10:07:15 +0200	[thread overview]
Message-ID: <578F3133.6060200@collabora.co.uk> (raw)
In-Reply-To: <57865027.3090804@denx.de>

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.

  reply	other threads:[~2016-07-20  8:07 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2016-07-21 10:01         ` Stefano Babic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=578F3133.6060200@collabora.co.uk \
    --to=fabien.lahoudere@collabora.co.uk \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.