From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 16 Apr 2012 16:10:13 -0500 Subject: [U-Boot] Status of fsl_elbc_nand driver and 4k page NAND / 4bit ECC In-Reply-To: References: <4F85FDB1.1040900@freescale.com> <4F862049.3040509@freescale.com> Message-ID: <4F8C8AB5.8040505@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 On 04/13/2012 05:15 PM, Rafael Beims wrote: > On Wed, Apr 11, 2012 at 9:22 PM, Scott Wood > wrote: > > On 04/11/2012 07:14 PM, Rafael Beims wrote: > > Hello Scott, > On Wed, Apr 11, 2012 at 6:54 PM, Scott Wood > > >> wrote: > > On 04/11/2012 04:28 PM, Rafael Beims wrote: > > Hello, > I work with several MPC83xx boards in our company, and a > while > ago we were > informed that the NAND chip we used was being > discontinued. The only > options for a replacement were the newer 4k page ones. > Specifically, we are > using now the Micron 29F8G08ABABA (8 gigabit). > > I was sweeping the repositories and this list's archives > and I'm > with the > impression that these chips are not supported yet. I saw some > patches sent > hacking the driver to allow for the use of 4k pages. > > Additionally, I'm worried about the use of the 4 bit ECC lib > (BCH), as it > seems to me that the fsl_elbc_nand driver is not prepared > to use > a software > ECC config. Maybe I'm wrong, but it seems that the driver > always > uses the 1 > bit HW ECC that's present in freescale's controller. > > Because of this, I would like to ask for an overall status of > these things. > What can I expect to be working? What are the main areas > of concern? > If there is no complete implementation yet (as I saw some > patches being > rejected / not merged yet), what is currently missing? > What is the area where most work is needed? > > > The main thing that is missing from the current patches is > migrating > bad block markers on first use, and checking that this has > happened > before using the hack. See the discussion on the Linux version of > these patches. I was hoping to take care of this earlier this > year, > but other tasks have intruded. > > > Does this have to do with the fact that the oob size is > different in the > bigger page NAND's (sorry if my question seems dumb, but I'm not > very > familiar with the NAND drivers and the software use. Until now > the NAND > part was just plug and play :) ) > > > The hack involves changing the flash layout from "4096 main 128 > spare" to "2048 main 64 spare 2048 main 64 spare". This means that > the factory bad block marker is now in an area we use for main data. > We need to move it to where it belongs in the new layout before > doing anything else with the chip. > > > And as you note, many 4K-page NAND chips require 4-bit ECC which > means the driver will need to be updated to support software ECC > (this should be fairly straightforward, except maybe the > decision of > when to do this). > > -Scott > > > I will have a look at the driver and try to do the modifications to > support SW ECC. As I understand the fsl_elbc_nand driver is in > sync with > the linux kernel, and in this case the patches should be > implemented and > sent to the kernel first? > > > Ordinarily yes, but in this case it might be better to start with > U-Boot. We'll likely do the bad block migration in U-Boot, whereas > Linux will just check that it's been done via some sort of marker. > And the ECC stuff doesn't make much sense until we have the 4K > support (I haven't heard of a 2K chip that needs 4-bit ECC). > > -Scott > > > OK, I will have a look at it. I was just wondering, is there a tree > somewhere that contains the patches for the 4k hack applied? Not that I know of. > I saw that a version 2 of the patch was sent by Shengzhou Liu in > December 12, 2011, but I cannot find these patches applied in the main > git://git.denx.de/u-boot-nand-flash.git > . No, they were rejected because the bad block problem was not dealt with (among other things, probably). I do not want to apply a half-measure to the tree, and have people use it and corrupt their data. > I think that has something to do with the fact that the patches were not > accepted in the way that they were presented, but I would like to know > what's the procedure to start working from there to a possible solution. Take their patches, turn them into something acceptable, and submit. > I even tried to apply the patches to the current tree, without success. > I could manually apply them, but this code is not mine and if I manually > applied it, it would appear as mine. You just need to preserve the signed-off-by and the from line (git tracks committer and author separately), and add your own signed-off-by at the end (make sure you read the developer's certificate of origin before adding your signed-off-by). See www.denx.de/wiki/U-Boot/Patches, and Documentation/SubmittingPatches in the Linux tree (U-Boot follows a similar process as Linux). -Scott