From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pau Pajuelo Date: Thu, 6 Apr 2017 19:22:07 +0200 Subject: [U-Boot] [PATCH 5/7] igep003x: UBIize In-Reply-To: <58E1CD2E.8050803@denx.de> References: <20170401151326.4d3ijtffy744rwaz@lenoch> <20170401151757.cjusllxak2h6zjfc@lenoch> <58E1CD2E.8050803@denx.de> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Tested-by: Pau Pajuelo 2017-04-03 6:18 GMT+02:00 Heiko Schocher : > > 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