From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rohit Date: Thu, 16 Oct 2008 13:13:56 +0530 Subject: [U-Boot] [PATCH] Flex-OneNAND driver In-Reply-To: <9c9fda240809251827n7c5e5d3v4a700a9a8687d8b4@mail.gmail.com> References: <000101c91f13$fb13fa80$3dd66c6b@sisodomain.com> <9c9fda240809251827n7c5e5d3v4a700a9a8687d8b4@mail.gmail.com> Message-ID: <48F6F0BC.9040700@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Kyungmin, Thank you for the comments. Kyungmin Park wrote: >> diff --git a/common/env_onenand.c b/common/env_onenand.c >> --- a/common/env_onenand.c >> +++ b/common/env_onenand.c >> @@ -58,11 +58,14 @@ >> >> 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; >> > > Umm do you have more fancy method to determine the environment address > whatever it's OneNAND or not. > We can just double CONFIG_ENV_ADDR for Flex-OneNAND, so CONFIG_ENV_ADDR_FLEX is not needed. Otherwise, we can just set env_addr to 1 block size as bootloader is always limited to block 0. >> 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 @@ >> 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; >> + } >> > > Ditto. > I don't get alternative than to use CONFIG_ENV_SIZE_FLEX to store size of environment variables partition. Can you please elaborate. Regards, Rohit