From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Thu, 10 Dec 2009 11:17:14 -0600 Subject: [U-Boot] Breakage on arm/next In-Reply-To: <590CFEF8CED64C2E9C4BA6CD5BA617D0@sisodomain.com> References: <4B152AAE.8090900@windriver.com> <20091201160555.GA4646@mail.gnudd.com> <4B169EE0.9060400@freescale.com> <8CE7BC89E9714BB78EAB55CFF51076AD@sisodomain.com> <4B1D3ADB.6000603@freescale.com> <590CFEF8CED64C2E9C4BA6CD5BA617D0@sisodomain.com> Message-ID: <4B212D1A.5070105@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de apgmoorthy wrote: > Hi Scott, > >>> Hunk 1: >>> env_addr = CONFIG_ENV_ADDR; >>> + if (FLEXONENAND(this)) >>> + env_addr <<= 1; >>> >>> Hunk 2: >>> + if (FLEXONENAND(this)) { >>> + env_addr <<= 1; >>> + instr.len <<= >> onenand_mtd.eraseregions[0].numblocks == 1 ? >>> + 2 : 1; >>> + } >>> >>> This should not break any other Board with OneNAND support. >> Please comment. >>> (Somehow I still feel Macros can be Cleaner way.) >> Why is the address automatically doubled on flex? I think >> this really needs to be something board-specified. >> > Please excuse me for the Delay. > > Flex-OneNAND device's erasesize itself is double considered to OneNAND. That doesn't mean that all data you're storing is double the size. A board may want to keep the byte offset the same, and let the block number change. > Like , In SLC region of Flex-OneNAND size is 256K and > in MLC region it is 512K. In case of OneNAND erasesize is 128K and > it is just SLC. Suppose I have a 256K U-Boot. I want CONFIG_ENV_ADDR to be 256K regardless, which would be block 1 for flex SLC or block 2 for regular OneNAND. If I have a 512K U-Boot, then the byte offset would be the same for MLC as well. -Scott