Forums

Amtel SAM9 "boot from NAND" is a myth?

Started by Grant Edwards September 15, 2010
On 2010-09-16, Anders.Montonen@kapsi.spam.stop.fi.invalid <Anders.Montonen@kapsi.spam.stop.fi.invalid> wrote:
> Grant Edwards <invalid@invalid.invalid> wrote: >> The Atmel SAM9 parts require that block 0 be completely free of bit >> errors since the ROM bootloader doesn't do ECC (despite the fact that >> the part does have hardware ECC support). > > At least Samsung's S3C2440A has the same requirement.
At some point in the past, perhaps it was thought that bit-error-free block 0 was going to be a common spec for NAND flash parts? Apparently nobody told the guys running the flash fabs... I have found a datasheet for one 1.8V NAND flash that guarantees a good block zero. Whether the parts are actually available or not I don't know. Unfortunately we want to run the flash at 3.3V, and the distributors/FAEs we've talked to have been unable to _any_ 3.3V part thats meets Atmel's defect-free block 0 requirement. Now the choice is between adding a SPI flash for booting or adding 1.8V rail plus buying more expensive 1.8V SDRAM along with bus transceivers to talk to the required 3.3V peripherals. -- Grant Edwards grant.b.edwards Yow! I'm imagining a surfer at van filled with soy sauce! gmail.com
"Grant Edwards" <invalid@invalid.invalid> wrote in message 
news:i6r6fr$rm2$1@reader1.panix.com...
> We recently based a board on an Atmel AT91SAM9G20 part which the FAE > and rep said could boot from NAND flash. The eval board can indeed be > configured to boot from NAND flash. However, when it comes time to > spec parts for a real product, we find that's all smoke and mirrors. > > The Atmel SAM9 parts require that block 0 be completely free of bit
But don't all manufactures guarantee this? When I worked on NAND that as the spec - Block 0 was guaranteed to work (so that you could boot from it) and all the rest could be replaced by error checking. devices with errors in block 0 are scrap. tim
On 2010-09-16, tim.... <tims_new_home@yahoo.co.uk> wrote:
> > "Grant Edwards" <invalid@invalid.invalid> wrote in message > news:i6r6fr$rm2$1@reader1.panix.com... >> We recently based a board on an Atmel AT91SAM9G20 part which the FAE >> and rep said could boot from NAND flash. The eval board can indeed be >> configured to boot from NAND flash. However, when it comes time to >> spec parts for a real product, we find that's all smoke and mirrors. >> >> The Atmel SAM9 parts require that block 0 be completely free of bit > > But don't all manufactures guarantee this?
Nope. For example, from Micron's datasheet for the MT29F1G08/MT29F1G16: * Blocks 0\u20137 (block address 00h-07h) guaranteed to be valid with ECC when shipped from factory (3.3V only); see Error Management (page 83). * Blocks 0\u20133 (block address 00h-03h) guaranteed to be valid with ECC when shipped from factory (1.8V only); see Error Management (page 83). From p83: The first block (physical block address 00h) for each CE# is guaranteed to be valid with ECC when shipped from the factory. Blocks 0-7 (block address 00h-40h) guaranteed to be valid with ECC when shipped from factory (3.3V only). Blocks 0-3 (block address 00h-40h) guaranteed to be valid with ECC when shipped from factory (1.8V only).
> When I worked on NAND that as the spec -
That doesn't currently seem to be the case.
> Block 0 was guaranteed to work (so that you could boot from it) and > all the rest could be replaced by error checking.
Makes sense to me.
> devices with errors in block 0 are scrap.
Not any more. From what the local Arrow guys have told us, it seems most newer parts don't guarantee block 0 good unless you're doing ECC that can correct a single-bit error. [A few minutes ago, our Arrow guy just sent us a Toshiba datasheet for a 3.3V 1Gb part that does guarantee good block 0.] -- Grant Edwards grant.b.edwards Yow! I want the presidency at so bad I can already taste gmail.com the hors d'oeuvres.
Grant Edwards <invalid@invalid.invalid> wrote:
> Unfortunately we want to run the flash at 3.3V, and the > distributors/FAEs we've talked to have been unable to _any_ 3.3V part > thats meets Atmel's defect-free block 0 requirement.
Coincidentally Samsung's own K9F1208 is a 3.3V part and guarantees an error-free block zero. It's not advertised as a feature, but reading the datasheet you find this: "The 1st block, which is placed on 00h block address, is guaranteed to be a valid block, does not require Error Correction up to 1K program/erase cycles." I don't have enough experience with NAND flash to say if this is a common feature or not. (I'm only aware of the S3C2440 and this flash via the FriendlyARM Mini2440 board.) -a
Grant Edwards wrote:
> On 2010-09-15, Tim Wescott <tim@seemywebsite.com> wrote: >>The last time I looked at NAND flash the ECC part was just extra bits >>in each record -- it was your job to fill them in on writes and >>interpret them on reads. > > Yup. And the NAND controller in the SAM9 part _has_ hardware that > generates the ECC bits when you do a write operation. All you hvae to > do is write them into the "extra" bits in the flash after you've > written the data. Reading is a bit more complex, since there's extra > work required to correct an error when one is detected.
All "hardware ECC support" I have seen so far is useless for anything but older, smaller SLC parts. "Hardware ECC support" is doing a Hamming code in hardware, which can correct a single bit error. Current large SLC parts, and MLC parts, need a 4- or even 8-bit-correcting code. Thus, "NAND flash support" is another piece for glossy brochures. A regular memory interface and an interrupt-capable GPIO is enough to access NAND flash.
>>Of course, that was 5-10 years ago. > > It's still that way. There may be NAND parts that do ECC themselves, > but I've never seen one.
I haven't seen anything but announcements (or fully-fledged SSDs / memory cards). Stefan
On 16-9-2010 18:40, Grant Edwards wrote:
> On 2010-09-16, tim.... <tims_new_home@yahoo.co.uk> wrote: >> >> But don't all manufactures guarantee this? > > Nope.
See what they (Hynix, Intel, Micron, Phison, SanDisk, Sony, Spansion) have spec'ed about NAND at http://www.onfi.org One of the specs is that NAND's *must* have at least one guaranteed valid block starting at address 0.
> For example, from Micron's datasheet for the MT29F1G08/MT29F1G16: > > * Blocks 0\u20137 (block address 00h-07h) guaranteed to be valid > with ECC when shipped from factory (3.3V only); see Error > Management (page 83).
From the Hynix HY27USXX561A data sheet: - 3.3V device: VCC = 2.7 to 3.6V : - The 1st block is guaranteed to be a valid block up to 1K cycles without ECC -- Wil
On 2010-09-16, Wil Taphoorn <wil@nogo.wtms.nl> wrote:
> On 16-9-2010 18:40, Grant Edwards wrote: >> On 2010-09-16, tim.... <tims_new_home@yahoo.co.uk> wrote: >>> >>> But don't all manufactures guarantee this? >> >> Nope. > > See what they (Hynix, Intel, Micron, Phison, SanDisk, Sony, Spansion) > have spec'ed about NAND at http://www.onfi.org > > One of the specs is that NAND's *must* have at least one guaranteed > valid block starting at address 0.
Can you please point to that in the spec? All I can find is the definition for one of the fields in the parameter block that tells how many valid blocks there are at the beginning of the device: Version 2.0: 5.6.1.20. Byte 107 Guaranteed valid blocks at beginning of target This field indicates the number of guaranteed valid blocks starting at block address 0 of the target. The minimum value for this field is 1h. The blocks are guaranteed to be valid for the endurance specified for this area (see section 5.6.1.21) when the host follows the specified number of bits to correct. Versions 2.1,2.2,2.3: 5.6.1.22. Byte 107 Guaranteed valid blocks at beginning of target This field indicates the number of guaranteed valid blocks starting at block address 0 of the target. The minimum value for this field is 1h. The blocks are guaranteed to be valid for the endurance specified for this area (see section 5.6.1.23) when the host follows the specified number of bits to correct. Nowhere does it say this number can't be 0, and it explicitly says they can require that the host do ECC for those "garanteed valid" blocks.
>> For example, from Micron's datasheet for the MT29F1G08/MT29F1G16: >> >> * Blocks 0 (block address 00h-07h) guaranteed to be valid >> with ECC when shipped from factory (3.3V only); see Error >> Management (page 83). > > From the Hynix HY27USXX561A data sheet: > - 3.3V device: VCC = 2.7 to 3.6V : > - The 1st block is guaranteed to be a valid block up to 1K cycles > without ECC
Yup, I just found that one about 10 minutes ago. Unfortunately, Hynix has no local distributors and we're not large enough that Hynix sell to us, and we've been burned recently buying gray-market flash. I've also just found a couple Micron datasheets that spec block 0 to be valid without ECC, but apparently those parts aren't available according to the local Micron rep. -- Grant Edwards grant.b.edwards Yow! This is a NO-FRILLS at flight -- hold th' CANADIAN gmail.com BACON!!
On 2010-09-16, Anders.Montonen@kapsi.spam.stop.fi.invalid <Anders.Montonen@kapsi.spam.stop.fi.invalid> wrote:
> Grant Edwards <invalid@invalid.invalid> wrote: > >> Unfortunately we want to run the flash at 3.3V, and the >> distributors/FAEs we've talked to have been unable to find _any_ 3.3V >> part thats meets Atmel's defect-free block 0 requirement. > > Coincidentally Samsung's own K9F1208 is a 3.3V part and guarantees an > error-free block zero. It's not advertised as a feature, but reading the > datasheet you find this: > > "The 1st block, which is placed on 00h block address, is guaranteed to > be a valid block, does not require Error Correction up to 1K program/erase > cycles." > > I don't have enough experience with NAND flash to say if this is a common > feature or not. (I'm only aware of the S3C2440 and this flash via the > FriendlyARM Mini2440 board.)
Ah. That appears to be a lower-desnity small-block part (512Mb). I'm not sure what size we told the rep, but it looks like it was 1Gb or based on the datasheets I've seen so far. We're also only interested in parts we can actually buy, so it's also possible the K9F1208 isn't avaialable through distribution. -- Grant Edwards grant.b.edwards Yow! -- I have seen the at FUN -- gmail.com
On 2010-09-16, Grant Edwards <invalid@invalid.invalid> wrote:
> On 2010-09-16, Wil Taphoorn <wil@nogo.wtms.nl> wrote: >> On 16-9-2010 18:40, Grant Edwards wrote: >>> On 2010-09-16, tim.... <tims_new_home@yahoo.co.uk> wrote: >>>> >>>> But don't all manufactures guarantee this? >>> >>> Nope. >> >> See what they (Hynix, Intel, Micron, Phison, SanDisk, Sony, Spansion) >> have spec'ed about NAND at http://www.onfi.org >> >> One of the specs is that NAND's *must* have at least one guaranteed >> valid block starting at address 0. > > Can you please point to that in the spec? > > All I can find is the definition for one of the fields in the > parameter block that tells how many valid blocks there are at the > beginning of the device: > > 5.6.1.22. Byte 107 > > Guaranteed valid blocks at beginning of target This field > indicates the number of guaranteed valid blocks starting at > block address 0 of the target. The minimum value for this field > is 1h. The blocks are guaranteed to be valid for the endurance > specified for this area (see section 5.6.1.23) when the host > follows the specified number of bits to correct. > > Nowhere does it say this number can't be 0,
Duh, wrong. The minimum is 1.
> and it explicitly says they can require that the host do ECC for > those "garanteed valid" blocks.
I still stand by that reading. -- Grant Edwards grant.b.edwards Yow! I'm EMOTIONAL at now because I have gmail.com MERCHANDISING CLOUT!!
Grant Edwards <invalid@invalid.invalid> wrote:
> On 2010-09-16, Anders.Montonen@kapsi.spam.stop.fi.invalid <Anders.Montonen@kapsi.spam.stop.fi.invalid> wrote: >> Coincidentally Samsung's own K9F1208 is a 3.3V part and guarantees an >> error-free block zero. > Ah. That appears to be a lower-desnity small-block part (512Mb). I'm > not sure what size we told the rep, but it looks like it was 1Gb or > based on the datasheets I've seen so far. We're also only interested > in parts we can actually buy, so it's also possible the K9F1208 isn't > avaialable through distribution.
They have other parts, like the K9F8G08 (1GB, 4K pages). Dunno about availability. -a