From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 3 Apr 2017 06:18:54 +0200 Subject: [U-Boot] [PATCH 5/7] igep003x: UBIize In-Reply-To: <20170401151757.cjusllxak2h6zjfc@lenoch> References: <20170401151326.4d3ijtffy744rwaz@lenoch> <20170401151757.cjusllxak2h6zjfc@lenoch> Message-ID: <58E1CD2E.8050803@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 Ladislav, Am 01.04.2017 um 17:17 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 BootROM whole > NAND is UBI managed. > > Signed-off-by: Ladislav Michl > --- > board/isee/igep003x/board.c | 17 +++++++++++++++ > configs/am335x_igep0033_defconfig | 4 ++++ > include/configs/am335x_igep003x.h | 45 +++++++++++++++++++++++---------------- > 3 files changed, 48 insertions(+), 18 deletions(-) Reviewed-by: Heiko Schocher Thanks! Nive to see, that UBI (with FASTMAP) is working with SPL! bye, Heiko > > 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 */ > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany