From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabien Lahoudere Date: Wed, 20 Jul 2016 10:07:15 +0200 Subject: [U-Boot] [PATCH v3] nitrogen6x : Use generic distro configuration In-Reply-To: <57865027.3090804@denx.de> References: <1467111529.2763.170.camel@collabora.co.uk> <1467183922-2082-1-git-send-email-fabien.lahoudere@collabora.co.uk> <57865027.3090804@denx.de> Message-ID: <578F3133.6060200@collabora.co.uk> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.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 >> --- >> 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 >> + >> +#include >> + >> +#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.