Environment support for Flex-OneNAND
PATCH v2 2/4 Environment support for Flex-OneNAND
Define and use CONFIG_ENV_ADDR_FLEX and CONFIG_ENV_SIZE_FLEX for storing environment variables.
Signed-off-by Rohit Hagargundgi <[email protected]>
--- common/env_onenand.c | 10 ++++++++++ include/configs/apollon.h | 2 ++ 2 files changed, 12 insertions(+), 0 deletions(-)
common/env_onenand.c +10 -0
@@ -58,11 +58,14 @@ uchar env_get_char_spec(int index)void env_relocate_spec (void ) { +struct onenand_chip *this = &onenand_chip;unsigned long env_addr;int use_default =0 ;size_t retlen; env_addr =CONFIG_ENV_ADDR ; +if (FLEXONENAND (this)) + env_addr =CONFIG_ENV_ADDR_FLEX ;/* Check OneNAND exist */ if (onenand_mtd.writesize)
@@ -89,6 +92,7 @@ void env_relocate_spec(void)int saveenv (void ) { +struct onenand_chip *this = &onenand_chip;unsigned long env_addr =CONFIG_ENV_ADDR ;struct erase_info instr = { .callback =NULL ,
@@ -96,6 +100,12 @@ int saveenv(void)size_t retlen; instr.len =CONFIG_ENV_SIZE ; +if (FLEXONENAND (this)) { + env_addr =CONFIG_ENV_ADDR_FLEX ; + instr.len =CONFIG_ENV_SIZE_FLEX ; + instr.len <<= onenand_mtd.eraseregions[0 ].numblocks ==1 ? +1 :0 ; + } instr.addr = env_addr; instr.mtd = &onenand_mtd;if (onenand_erase (&onenand_mtd, &instr)) {
include/configs/apollon.h +2 -0
@@ -76,6 +76,7 @@* Size of malloc() pool */ #define CONFIG_ENV_SIZE SZ_128K/* Total Size of Environment Sector */ +#define CONFIG_ENV_SIZE_FLEX SZ_256K#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_1M)/* bytes reserved for initial data */ #define CONFIG_SYS_GBL_DATA_SIZE 128
@@ -256,6 +257,7 @@#define CONFIG_SYS_ONENAND_BASE 0x00000000#define CONFIG_ENV_IS_IN_ONENAND 1#define CONFIG_ENV_ADDR 0x00020000 +#define CONFIG_ENV_ADDR_FLEX 0x00040000#ifdef CONFIG_SYS_USE_UBI #define CONFIG_JFFS2_CMDLINE
Signature · 1 line
1.5.4.3
PATCH v2 2/4 Environment support for Flex-OneNAND
Quoted 3 lines · On Thursday 11 December 2008 19:57:34 Rohit Hagargundgi wrote:
Define and use
CONFIG_ENV_ADDR_FLEXandCONFIG_ENV_SIZE_FLEXfor storing environment variables.
Signed-off-by Rohit Hagargundgi <[email protected]>
--- common/env_onenand.c | 10 ++++++++++ include/configs/apollon.h | 2 ++ 2 files changed, 12 insertions(+), 0 deletions(-)
common/env_onenand.c +10 -0
@@ -58,11 +58,14 @@ uchar env_get_char_spec(int index)void env_relocate_spec (void ) { +struct onenand_chip *this = &onenand_chip;unsigned long env_addr;int use_default =0 ;size_t retlen; env_addr =CONFIG_ENV_ADDR ; +if (FLEXONENAND (this)) + env_addr =CONFIG_ENV_ADDR_FLEX ;/* Check OneNAND exist */ if (onenand_mtd.writesize)
@@ -89,6 +92,7 @@ void env_relocate_spec(void)int saveenv (void ) { +struct onenand_chip *this = &onenand_chip;unsigned long env_addr =CONFIG_ENV_ADDR ;struct erase_info instr = { .callback =NULL ,
@@ -96,6 +100,12 @@ int saveenv(void)size_t retlen; instr.len =CONFIG_ENV_SIZE ; +if (FLEXONENAND (this)) { + env_addr =CONFIG_ENV_ADDR_FLEX ; + instr.len =CONFIG_ENV_SIZE_FLEX ; + instr.len <<= onenand_mtd.eraseregions[0 ].numblocks ==1 ? +1 :0 ; + } instr.addr = env_addr; instr.mtd = &onenand_mtd;if (onenand_erase (&onenand_mtd, &instr)) {
include/configs/apollon.h +2 -0
@@ -76,6 +76,7 @@* Size of malloc() pool */ #define CONFIG_ENV_SIZE SZ_128K/* Total Size of Environment Sector */ +#define CONFIG_ENV_SIZE_FLEX SZ_256K#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + SZ_1M)/* bytes reserved for initial data */ #define CONFIG_SYS_GBL_DATA_SIZE 128
@@ -256,6 +257,7 @@#define CONFIG_SYS_ONENAND_BASE 0x00000000#define CONFIG_ENV_IS_IN_ONENAND 1#define CONFIG_ENV_ADDR 0x00020000 +#define CONFIG_ENV_ADDR_FLEX 0x00040000#ifdef CONFIG_SYS_USE_UBI #define CONFIG_JFFS2_CMDLINE
Signature · 1 line
1.5.4.3