From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 25 Jan 2016 07:39:10 +0100 Subject: [U-Boot] [PATCHv7 6/7] igep00x0: UBIize In-Reply-To: References: <20160117030929.GA28493@localhost.localdomain> <20160117031603.GG28493@localhost.localdomain> <56A0759F.4050509@denx.de> Message-ID: <56A5C30E.5070401@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Enric, Ladislav, Am 22.01.2016 um 23:35 schrieb Enric Balletbo Serra: > Hi Ladis, > > Many thanks for your work on this, see some comments below ... Sorry, pull request is sent with this patch, see: http://lists.denx.de/pipermail/u-boot/2016-January/239855.html @Ladislav: Please send changes in a follow up patch, thanks! > 2016-01-21 7:07 GMT+01:00 Heiko Schocher : >> Hello Ladislav, >> >> Am 17.01.2016 um 04:16 schrieb Ladislav Michl: >>> >>> Convert IGEP board to use UBI volumes for U-Boot, its environment and >>> kernel. With exception of first four sectors read by SoC boot >>> ROM whole NAND is UBI managed. As code is too big now, drop >>> CONFIG_SPL_EXT_SUPPORT to make it fit. >>> >>> Signed-off-by: Ladislav Michl >>> --- >>> include/configs/omap3_igep00x0.h | 80 >>> ++++++++++++++++++++++------------------ >>> 1 file changed, 45 insertions(+), 35 deletions(-) >> >> >> Reviewed-by: Heiko Schocher >> >> bye, >> Heiko >> >>> >>> diff --git a/include/configs/omap3_igep00x0.h >>> b/include/configs/omap3_igep00x0.h >>> index 5da6cfd..9afbcbe 100644 >>> --- a/include/configs/omap3_igep00x0.h >>> +++ b/include/configs/omap3_igep00x0.h >>> @@ -74,6 +74,8 @@ >>> #define CONFIG_CMD_CACHE >>> #ifdef CONFIG_BOOT_ONENAND >>> #define CONFIG_CMD_ONENAND /* ONENAND support */ >>> +#else >>> +#define CONFIG_CMD_UBI >>> #endif >>> #define CONFIG_CMD_DHCP >>> #define CONFIG_CMD_PING >>> @@ -86,6 +88,10 @@ >>> "stdout=serial\0" \ >>> "stderr=serial\0" >>> >>> +#define ENV_MTD_SETTINGS \ >>> + "mtdids=nand0=gpmc-nand.0\0" \ >>> + "mtdparts=mtdparts=gpmc-nand.0:512k(SPL),-(UBI)\0" >>> + > > I think this should be protected by CONFIG_BOOT_NAND, if is defined > CONFIG_BOOT_ONENAND the ENV_MTD_SETTINGS are wrong. Good point ... > Also, as we're changing the memory map, I'd like to change the > reserved space for SPL to 2M instead of 512k, so we cover all NAND > block sizes from (64KB to 512KB) I do not understand this, but I have no details about the hw ... >>> #define MEM_LAYOUT_SETTINGS \ >>> DEFAULT_LINUX_BOOT_ENV \ >>> "scriptaddr=0x87E00000\0" \ >>> @@ -96,36 +102,15 @@ >>> >>> #include >>> >>> - >>> #define CONFIG_EXTRA_ENV_SETTINGS \ >>> ENV_DEVICE_SETTINGS \ >>> + ENV_MTD_SETTINGS \ >>> MEM_LAYOUT_SETTINGS \ >>> BOOTENV >>> >>> #endif >>> >>> /* >>> - * FLASH and environment organization >>> - */ >>> - >>> -#ifdef CONFIG_BOOT_ONENAND >>> -#define CONFIG_SYS_ONENAND_BASE ONENAND_MAP >>> - >>> -#define ONENAND_ENV_OFFSET 0x260000 /* environment starts >>> here */ >>> - >>> -#define CONFIG_ENV_IS_IN_ONENAND 1 >>> -#define CONFIG_ENV_SIZE (512 << 10) /* Total Size >>> Environment */ >>> -#define CONFIG_ENV_ADDR ONENAND_ENV_OFFSET >>> -#endif >>> - >>> -#ifdef CONFIG_NAND >>> -#define CONFIG_ENV_OFFSET 0x260000 /* environment starts >>> here */ >>> -#define CONFIG_ENV_IS_IN_NAND 1 >>> -#define CONFIG_ENV_SIZE (512 << 10) /* Total Size >>> Environment */ >>> -#define CONFIG_ENV_ADDR NAND_ENV_OFFSET >>> -#endif >>> - >>> -/* >>> * SMSC911x Ethernet >>> */ >>> #if defined(CONFIG_CMD_NET) >>> @@ -134,19 +119,50 @@ >>> #define CONFIG_SMC911X_BASE 0x2C000000 >>> #endif /* (CONFIG_CMD_NET) */ >>> >>> +/* >>> + * FLASH and environment organization >>> + */ >>> +#ifdef CONFIG_NAND >>> +#define CONFIG_SPL_UBI 1 >>> +#define CONFIG_SPL_UBI_MAX_VOL_LEBS 256 >>> +#define CONFIG_SPL_UBI_MAX_PEB_SIZE (256*1024) >>> +#define CONFIG_SPL_UBI_MAX_PEBS 4096 >>> +#define CONFIG_SPL_UBI_VOL_IDS 8 >>> +#define CONFIG_SPL_UBI_LOAD_MONITOR_ID 0 >>> +#define CONFIG_SPL_UBI_LOAD_KERNEL_ID 3 >>> +#define CONFIG_SPL_UBI_LOAD_ARGS_ID 4 >>> +#define CONFIG_SPL_UBI_PEB_OFFSET 4 >>> +#define CONFIG_SPL_UBI_VID_OFFSET 512 >>> +#define CONFIG_SPL_UBI_LEB_START 2048 >>> +#define CONFIG_SPL_UBI_INFO_ADDR 0x88080000 >>> + >>> +#define CONFIG_ENV_IS_IN_UBI 1 >>> +#define CONFIG_ENV_UBI_PART "UBI" >>> +#define CONFIG_ENV_UBI_VOLUME "config" >>> +#define CONFIG_ENV_UBI_VOLUME_REDUND "config_r" >>> +#define CONFIG_UBI_SILENCE_MSG 1 >>> +#define CONFIG_UBIFS_SILENCE_MSG 1 >>> +#else >>> +#define CONFIG_ENV_IS_NOWHERE >>> +#endif >>> +#define CONFIG_ENV_SIZE (32*1024) >>> + >>> +#define CONFIG_RBTREE >>> +#define CONFIG_MTD_PARTITIONS >>> +#define MTDIDS_DEFAULT "nand0=gpmc-nand.0" >>> +#define MTDPARTS_DEFAULT >>> "mtdparts=gpmc-nand.0:512k(SPL),-(UBI)" >>> + > > Same comment as above. > >>> /* OneNAND boot config */ >>> #ifdef CONFIG_BOOT_ONENAND >>> #define CONFIG_SPL_ONENAND_SUPPORT >>> -#define CONFIG_SYS_ONENAND_U_BOOT_OFFS 0x80000 >>> #define CONFIG_SYS_ONENAND_PAGE_SIZE 2048 >>> -#define CONFIG_SPL_ONENAND_LOAD_ADDR 0x80000 >>> -#define CONFIG_SPL_ONENAND_LOAD_SIZE \ >>> - (512 * 1024 - CONFIG_SPL_ONENAND_LOAD_ADDR) >>> - >>> +#define CONFIG_SYS_ONENAND_BASE ONENAND_MAP >>> +#define CONFIG_SYS_ONENAND_U_BOOT_OFFS 0x80000 >>> #endif >>> >>> /* NAND boot config */ >>> #ifdef CONFIG_NAND >>> +#define CONFIG_SPL_NAND_SUPPORT >>> #define CONFIG_SYS_NAND_BUSWIDTH_16BIT >>> #define CONFIG_SYS_NAND_5_ADDR_CYCLE >>> #define CONFIG_SYS_NAND_PAGE_COUNT 64 >>> @@ -166,14 +182,8 @@ >>> #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW_DETECTION_SW >>> #define CONFIG_NAND_OMAP_GPMC >>> #define CONFIG_BCH >>> - >>> -#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 >>> -/* NAND: SPL falcon mode configs */ >>> -#ifdef CONFIG_SPL_OS_BOOT >>> -#define CONFIG_CMD_SPL_NAND_OFS 0x240000 >>> -#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x280000 >>> -#define CONFIG_CMD_SPL_WRITE_SIZE 0x2000 >>> -#endif >>> #endif >>> >>> +#undef CONFIG_SPL_EXT_SUPPORT >>> + >>> #endif /* __IGEP00X0_H */ >>> >> > > About the new layout you propose the following, right? > > volume 0 is u-boot.img, 1 and 2 env, 3 kernel, 4 FDT, 5 rootfs (ubifs) > > It's not possible load the kernel and the FDT from the rootfs directly, right? That would be nice, but for this we need UBIFS support in SPL. Patches are welcome ;-) > BTW, I created the 5 volumes and copied the files to every volume but > I get following errors, do you know what I am missing? > > U-Boot SPL 2016.01-00358-g4efe05f (Jan 22 2016 - 17:16:04) > Trying to boot from NAND > UBI warning: LEB 0 of 1 is missing > UBI warning: Failed to load volume 3 > UBI warning: LEB 0 of 1 is missing > UBI warning: Failed to load volume 3 > UBI warning: Failed > Loading Linux failed, falling back to U-Boot. > UBI warning: LEB 0 of 1 is missing > UBI warning: Failed to load volume 0 > UBI warning: LEB 0 of 1 is missing > UBI warning: Failed to load volume 0 > UBI warning: Failed > SPL: failed to boot from all boot devices > ### ERROR ### Please RESET the board ### > > Thanks, > Enric bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany