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 <la...@linux-mips.org>
---
  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<h...@denx.de>

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 <i2c.h>
  #include <miiphy.h>
  #include <cpsw.h>
+#include <fdt_support.h>
+#include <mtd_node.h>
+#include <jffs2/load_kernel.h>
  #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
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to