On Wednesday, September 06, 2006 5:40 PM, Curtis Monroe wrote:
> On September 6, 2006 03:53 pm, Michael Schmidt wrote:
>>
>> The filesystem is defined the way it is because the reserved space
>> contains
>> data which RedBoot doesn't know how to handle. For instance, the Linux
>> partition uses the YAFFS or YAFF2 filesystem. If RedBoot were to naively
>> write to this area, not only would the data be in the wrong format, but
>> out
>> of band data which YAFFS requires would not be written.
>>
>> >> Another reason may come from the fact that the MTD driver on the TS
>> >> kernel does not parse the RedBoot partition at all, but has a
>> >> hardcoded map of the partitions instead. If you would change the
>> >> partition layout, the /dev/mtd devices would stop working (At least
>> >> on the TS-11 kernel version I'm using).
>> >>
>>
>> I think you've got this backwards... Redboot sits in its own partition
>> which
>> is (currently) hard-coded by the MTD driver. It is true however that MTD
>> has no knowledge of the filesystem used by RedBoot (fis dir).
>
> I think Guille is suggesting the Linux MTD driver parse the Redboot "fis
> dir"
> to extract its partition list. In this way the partition sizes and
> locations
> are not hardcoded in the MTD driver. Users could change the partition
> sizes
> and locations, as long as the name of the FIS partion remained the same,
> so
> the linux driver could find the partition (much like an IDE partition
> table)
Ok I think I understand what is being suggested, basically there would be
specifically named pseudo-files to represent the partitions instead of just
"Reserved". I'm not sure how useful this would be - it wouldn't allow
recovery from an accidental TS-BOOTROM overwrite, since such an overwrite
would preclude RedBoot ever being loaded.
>> This is not entirely true... There is ECC checking and correction
>> implemented in RedBoot. Also, when we added support for 2K sector size
>> NAND
>> flash, code was added to deal with and work around bad blocks, but this
>> is
>> in the RedBoot partition *only* and is an entirely different scheme from
>> what a filesystem like YAFFS uses.
>>
>
> ... nope still true:
>
> I don't have the latest 2KB TS-PREBOOT eeprom image, or 16KB TS-BOOTROM,
> so
> all my comments are based on the TS-7250 versions.
>
> The 2KB TS-PREBOOT EEPROM image does not need ECC because it is not
> subject to
> that same errors as NAND.
>
> The 16KB TS-BOOTROM image does not need ECC because it resides within the
> first block. This block is guarantied to be error free without ECC for up
> to
> 1,000 progam/erase cycles. (see the data sheet)
>
> The 256KB RedBoot image needs ECC. It is not within the first block which
> is
> guaranteed error free, (block = 16KB for small page nand flash, block =
> 128KB
> for large page flash). This means the 16KB TS-BOOTROM must implement ECC
> correction when loading RedBoot. Its possible the TS-BOOTROM could load a
> Redboot image that is corrupt, but this would be rare.
>
> The linux Kernel, or BSD Kernel should also be loaded with ECC. It sounds
> like
> RedBoot does this now! good.
>
As of TS11, the boot sequence is as follows:
1. TS-PREBOOT loads TS-BOOTROM from first block of flash (partition 1). As
you mentioned correctly, this does not need ECC due to guarantees on the
first block.
2. TS-BOOTROM then loads RedBoot from the third partition on the flash.
This is now done with ECC checking, although earlier versions did not ECC
check. So a corrupt load of RedBoot should never occur, at least not due to
ECC failure or bad blocks (although it could occur if RedBoot got corrupted
without incurring an ECC failure, e.g. overwriting part of it with bad
data.)
3. RedBoot loads the kernel which is a file store in the FIS in the RedBoot
partition, and as you correctly indicated, it does ECC check as well. Files
created by RedBoot will also correctly work around bad blocks which may
develop; iirc you will see pseudo-files named "(bad block)" when this
occurs.
4. The kernel then boots and uses the second partition to find its root
filesystem, which is YAFFS or YAFF2 depending on which flash hardware you
have.
So the statement I was disagreeing with was (not yours) "TS loads the 256KB
RedBoot partition into memory with no ECC correction" which is no longer
true as of TS11.
Regards,
Michael
------------------------ Yahoo! Groups Sponsor --------------------~-->
See what's inside the new Yahoo! Groups email.
http://us.click.yahoo.com/3EuRwD/bOaOAA/yQLSAA/CFFolB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|