From patchwork Sat Apr 1 15:17:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ladislav Michl X-Patchwork-Id: 746028 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3vwMSn4gtyz9s03 for ; Sun, 2 Apr 2017 02:18:17 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 11CF8C21C42; Sat, 1 Apr 2017 15:18:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B01F6C21C44; Sat, 1 Apr 2017 15:18:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D5FA9C21C79; Sat, 1 Apr 2017 15:17:58 +0000 (UTC) Received: from cvs.linux-mips.org (eddie.linux-mips.org [148.251.95.138]) by lists.denx.de (Postfix) with ESMTP id 43FECC21C69 for ; Sat, 1 Apr 2017 15:17:58 +0000 (UTC) Received: (from localhost user: 'ladis' uid#1021 fake: STDIN (ladis@eddie.linux-mips.org)) by eddie.linux-mips.org id S23990506AbdDAPR6JGE9D (ORCPT ); Sat, 1 Apr 2017 17:17:58 +0200 Date: Sat, 1 Apr 2017 17:17:57 +0200 From: Ladislav Michl To: u-boot@lists.denx.de Message-ID: <20170401151757.cjusllxak2h6zjfc@lenoch> References: <20170401151326.4d3ijtffy744rwaz@lenoch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170401151326.4d3ijtffy744rwaz@lenoch> User-Agent: NeoMutt/20170113 (1.7.2) Cc: Pau Pajuelo Subject: [U-Boot] [PATCH 5/7] igep003x: UBIize X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Convert IGEP board to use UBI volumes for U-Boot, its environment and kernel. With exception of first four sectors read by SoC BootROM whole NAND is UBI managed. Signed-off-by: Ladislav Michl Reviewed-by: Heiko Schocher Tested-by: Pau Pajuelo --- board/isee/igep003x/board.c | 17 +++++++++++++++ configs/am335x_igep0033_defconfig | 4 ++++ include/configs/am335x_igep003x.h | 45 +++++++++++++++++++++++---------------- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/board/isee/igep003x/board.c b/board/isee/igep003x/board.c index 5fea7ffaef..9abb4824b5 100644 --- a/board/isee/igep003x/board.c +++ b/board/isee/igep003x/board.c @@ -23,6 +23,9 @@ #include #include #include +#include +#include +#include #include "board.h" DECLARE_GLOBAL_DATA_PTR; @@ -104,6 +107,20 @@ int board_init(void) return 0; } +#ifdef CONFIG_OF_BOARD_SETUP +int ft_board_setup(void *blob, bd_t *bd) +{ +#ifdef CONFIG_FDT_FIXUP_PARTITIONS + static struct node_info nodes[] = { + { "ti,omap2-nand", MTD_DEV_TYPE_NAND, }, + }; + + fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); +#endif + return 0; +} +#endif + #if defined(CONFIG_DRIVER_TI_CPSW) static void cpsw_control(int enabled) { diff --git a/configs/am335x_igep0033_defconfig b/configs/am335x_igep0033_defconfig index 12f04c68f9..71e11da17a 100644 --- a/configs/am335x_igep0033_defconfig +++ b/configs/am335x_igep0033_defconfig @@ -13,6 +13,7 @@ CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_FAT_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_STACK_R_ADDR=0x82000000 +CONFIG_OF_BOARD_SETUP=y CONFIG_SYS_EXTRA_OPTIONS="MACH_TYPE=MACH_TYPE_IGEP0033" CONFIG_SYS_CONSOLE_INFO_QUIET=y CONFIG_VERSION_VARIABLE=y @@ -41,9 +42,12 @@ CONFIG_CMD_EXT4=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_FAT=y CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_UBI=y CONFIG_ISO_PARTITION=y CONFIG_EFI_PARTITION=y CONFIG_MMC_OMAP_HS=y +CONFIG_MTD_UBI_FASTMAP=y CONFIG_SYS_NS16550=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y # CONFIG_GENERATE_SMBIOS_TABLE is not set diff --git a/include/configs/am335x_igep003x.h b/include/configs/am335x_igep003x.h index 348b16f3e8..f7209930d3 100644 --- a/include/configs/am335x_igep003x.h +++ b/include/configs/am335x_igep003x.h @@ -21,7 +21,7 @@ #define V_OSCK 24000000 /* Clock output from T2 */ #define V_SCLK (V_OSCK) -#define CONFIG_ENV_SIZE (128 << 10) /* 128 KiB */ +#define CONFIG_ENV_SIZE (96 << 10) /* 96 KiB */ /* Make the verbose messages from UBI stop printing */ #define CONFIG_UBI_SILENCE_MSG @@ -67,11 +67,11 @@ "fi;\0" \ "mtdids=" MTDIDS_DEFAULT "\0" \ "mtdparts=" MTDPARTS_DEFAULT "\0" \ - "nandroot=ubi0:filesystem rw ubi.mtd=3,2048\0" \ + "nandroot=ubi0:rootfs rw ubi.mtd=1\0" \ "nandrootfstype=ubifs rootwait\0" \ - "nandload=ubi part filesystem 2048; ubifsmount ubi0; " \ - "ubifsload ${loadaddr} ${bootdir}/${bootfile}; " \ - "ubifsload ${fdtaddr} ${bootdir}/${dtbfile} \0" \ + "nandload=ubi part UBI; " \ + "ubi read ${loadaddr} kernel; " \ + "ubi read ${fdtaddr} dtb \0" \ "nandargs=setenv bootargs console=${console} " \ "${optargs} " \ "root=${nandroot} " \ @@ -97,12 +97,6 @@ /* NAND support */ #define CONFIG_NAND_OMAP_ELM #define CONFIG_SYS_NAND_ONFI_DETECTION 1 -#define CONFIG_SYS_ENV_SECT_SIZE (128 << 10) /* 128 KiB */ -#define CONFIG_SYS_REDUNDAND_ENVIRONMENT -#define CONFIG_ENV_IS_IN_NAND -#define CONFIG_ENV_OFFSET 0x180000 /* environment starts here */ -#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_OFFSET + CONFIG_SYS_ENV_SECT_SIZE) -#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE) #define CONFIG_MTD_PARTITIONS #define CONFIG_MTD_DEVICE @@ -110,9 +104,7 @@ #define CONFIG_LZO #define MTDIDS_DEFAULT "nand0=omap2-nand.0" -#define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:512k(spl),"\ - "1m(uboot),256k(environment),"\ - "-(filesystem)" +#define MTDPARTS_DEFAULT "mtdparts=omap2-nand.0:512k(SPL),-(UBI)" /* Unsupported features */ #undef CONFIG_USE_IRQ @@ -120,6 +112,27 @@ /* SPL */ #define CONFIG_SPL_LDSCRIPT "arch/arm/mach-omap2/am33xx/u-boot-spl.lds" +/* UBI configuration */ +#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 + +/* environment organization */ +#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" + +/* NAND config */ #define CONFIG_SYS_NAND_5_ADDR_CYCLE #define CONFIG_SYS_NAND_PAGE_COUNT (CONFIG_SYS_NAND_BLOCK_SIZE / \ CONFIG_SYS_NAND_PAGE_SIZE) @@ -139,8 +152,4 @@ #define CONFIG_SYS_NAND_ECCBYTES 14 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_BCH8_CODE_HW -#define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE - -#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 - #endif /* ! __CONFIG_IGEP003X_H */