From: Andreas Huber <andreas.hu...@keymile.com>

Add support for a second flash.
By default, a single flash chip is set up:
- called 'boot'
- mtd name for ubi 'ubi0'
MTDIDS and MTDPARTS may be overwritten to add a second flash.
The 'ubiattach' command is featured in two versions:
- if CONFIG_KM_UBI_PARTITION_NAME_APP is not defined:
  this is the version as up to now
- if CONFIG_KM_UBI_PARTITION_NAME_APP is defined:
  a check on 'actual_bank' will be done to determine the flash to boot
  from.

Use CONFIG_KM_UBI_PARTITION_NAME_BOOT and
CONFIG_KM_UBI_PARTITION_NAME_APP to define where to put the bootloader
and the applications.

Example:
In the board config do:
... snip ...

       "boot:"                                                 \
               "768k(u-boot),"                                 \
               "128k(env),"                                    \
               "128k(envred),"                                 \
               "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");"     \
       "app:"                                                  \
               "-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");"

... snap ...

You may also need to enable the second flash:
... snip ...
/* additional featured for COGE5 */
... snap ...

Signed-off-by: Andreas Huber <andreas.hu...@keymile.com>
cc: Kim Phillips <kim.phill...@freescale.com>
cc: Valentin Longchamp <valentin.longch...@keymile.com>
cc: Gerlando Falauto <gerlando.fala...@keymile.com>
Signed-off-by: Holger Brunck <holger.bru...@keymile.com>
---
v2:
  - v1 introduces compile error for 82xx boards, now fixed

 include/configs/km/keymile-common.h |   34 +++++++++++++++++++++++++---------
 include/configs/km/km82xx-common.h  |    2 +-
 include/configs/km/km83xx-common.h  |   11 ++++++++---
 include/configs/km/km_arm.h         |   15 +++++++++------
 4 files changed, 43 insertions(+), 19 deletions(-)

diff --git a/include/configs/km/keymile-common.h 
b/include/configs/km/keymile-common.h
index 7a01705..4f606a0 100644
--- a/include/configs/km/keymile-common.h
+++ b/include/configs/km/keymile-common.h
@@ -126,12 +126,29 @@
        "netdev=eth0\0"
 #endif
 
-#ifndef CONFIG_KM_UBI_PARTITION_NAME
-#define CONFIG_KM_UBI_PARTITION_NAME   "ubi0"
-#endif
-#ifndef CONFIG_KM_UBI_LINUX_MTD_NAME
-#define CONFIG_KM_UBI_LINUX_MTD_NAME   "ubi0"
-#endif
+#ifndef CONFIG_KM_UBI_PARTITION_NAME_BOOT
+#define CONFIG_KM_UBI_PARTITION_NAME_BOOT      "ubi0"
+#endif /* CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+
+#ifndef CONFIG_KM_UBI_PARTITION_NAME_APP
+/* one flash chip only called boot */
+/* boot: CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+# define CONFIG_KM_UBI_LINUX_MTD                                       \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_BOOT
+# define CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI                              \
+       "ubiattach=ubi part " CONFIG_KM_UBI_PARTITION_NAME_BOOT "\0"
+#else /* CONFIG_KM_UBI_PARTITION_NAME_APP */
+/* two flash chips called boot and app */
+/* boot: CONFIG_KM_UBI_PARTITION_NAME_BOOT */
+/* app:  CONFIG_KM_UBI_PARTITION_NAME_APP */
+# define CONFIG_KM_UBI_LINUX_MTD                                       \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_BOOT " "                \
+       "ubi.mtd=" CONFIG_KM_UBI_PARTITION_NAME_APP
+# define CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI                              \
+       "ubiattach=if test ${boot_bank} -eq 0; then; "                  \
+       "ubi part " CONFIG_KM_UBI_PARTITION_NAME_BOOT "; else; "        \
+       "ubi part " CONFIG_KM_UBI_PARTITION_NAME_APP "; fi\0"
+#endif /* CONFIG_KM_UBI_PARTITION_NAME_APP */
 
 #define xstr(s)        str(s)
 #define str(s) #s
@@ -173,7 +190,7 @@
                " console=" CONFIG_KM_CONSOLE_TTY ",${baudrate}"        \
                " mem=${kernelmem} init=${init}"                        \
                " phram.phram=phvar,${varaddr}," xstr(CONFIG_KM_PHRAM)  \
-               " ubi.mtd=" CONFIG_KM_UBI_LINUX_MTD_NAME " "            \
+               " " CONFIG_KM_UBI_LINUX_MTD " "                         \
                CONFIG_KM_DEF_BOOT_ARGS_CPU                             \
                "\0"                                                    \
        "addpanic="                                                     \
@@ -199,10 +216,9 @@
 #define CONFIG_KM_DEF_ENV_FLASH_BOOT                                   \
        "cramfsaddr=" xstr(CONFIG_KM_CRAMFS_ADDR) "\0"                  \
        "cramfsloadkernel=cramfsload ${load_addr_r} uImage\0"           \
-       "ubiattach=ubi part " CONFIG_KM_UBI_PARTITION_NAME "\0"         \
        "ubicopy=ubi read "xstr(CONFIG_KM_CRAMFS_ADDR)                  \
                        " bootfs${boot_bank}\0"                         \
-       ""
+       CONFIG_KM_DEV_ENV_FLASH_BOOT_UBI
 
 /*
  * constants
diff --git a/include/configs/km/km82xx-common.h 
b/include/configs/km/km82xx-common.h
index 02a82a6..2c763bb 100644
--- a/include/configs/km/km82xx-common.h
+++ b/include/configs/km/km82xx-common.h
@@ -73,7 +73,7 @@
                "128k(env),"                                            \
                "128k(envred),"                                         \
                "3072k(free),"                                          \
-               "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+               "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ")"
 
 /*
  * Default environment settings
diff --git a/include/configs/km/km83xx-common.h 
b/include/configs/km/km83xx-common.h
index 06ecb8a..2c266fa 100644
--- a/include/configs/km/km83xx-common.h
+++ b/include/configs/km/km83xx-common.h
@@ -15,13 +15,18 @@
 #include "keymile-common.h"
 #include "km-powerpc.h"
 
-#define MTDIDS_DEFAULT         "nor0=boot"
-#define MTDPARTS_DEFAULT       "mtdparts="                     \
+#ifndef MTDIDS_DEFAULT
+# define MTDIDS_DEFAULT        "nor0=boot"
+#endif /* MTDIDS_DEFAULT */
+
+#ifndef MTDPARTS_DEFAULT
+# define MTDPARTS_DEFAULT      "mtdparts="                     \
        "boot:"                                                 \
                "768k(u-boot),"                                 \
                "128k(env),"                                    \
                "128k(envred),"                                 \
-               "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+               "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");"
+#endif /* MTDPARTS_DEFAULT */
 
 #define CONFIG_MISC_INIT_R
 /*
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h
index c73a10c..011f838 100644
--- a/include/configs/km/km_arm.h
+++ b/include/configs/km/km_arm.h
@@ -229,11 +229,15 @@ int get_scl(void);
 
 #define FLASH_GPIO_PIN                 0x00010000
 
-#define MTDIDS_DEFAULT         "nand0=orion_nand"
-/* test-only: partitioning needs some tuning, this is just for tests */
-#define MTDPARTS_DEFAULT       "mtdparts="                             \
-       "orion_nand:"                                                   \
-               "-(" CONFIG_KM_UBI_PARTITION_NAME ")"
+#ifndef MTDIDS_DEFAULT
+# define MTDIDS_DEFAULT                "nand0=orion_nand"
+#endif /* MTDIDS_DEFAULT */
+
+#ifndef MTDPARTS_DEFAULT
+# define MTDPARTS_DEFAULT      "mtdparts="                     \
+       "orion_nand:"                                           \
+               "-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");"
+#endif /* MTDPARTS_DEFAULT */
 
 #define        CONFIG_KM_DEF_ENV_UPDATE                                        
\
        "update="                                                       \
@@ -257,7 +261,6 @@ int get_scl(void);
        ""
 
 #if defined(CONFIG_SYS_NO_FLASH)
-#define CONFIG_KM_UBI_PARTITION_NAME   "ubi0"
 #undef CONFIG_FLASH_CFI_MTD
 #undef CONFIG_JFFS2_CMDLINE
 #endif
-- 
1.7.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to