Intel Fast Boot Block support

Kremer, Alex alex.kremer at
Thu Aug 23 11:24:17 EDT 2001

Hi all, I'm resending this one -- not sure it got through.

I have a design question for the code I'm attaching 
that adds support for the old Intel's TE28F*B Fast Boot Block series.
The patch is to cvs from Aug, 19. Note that it modifies
the maps/dc21285.c code and, to which my question below is

As opposed to Intel's 28F*J Strata Flash series the 
old Fast Boot Block series is not CFI compliant.
I couldn't even coerce it to work as a jedec.

The Lart (devices/lart.c) uses a chip from this series, but the data bus has

a totally crazy mapping.
So I wrote a module for this series somewhat based on the chips/amd_flash.c
Since I have it mapped via dc21285 I modified maps/dc21285.c to probe using
my module
instead of using cfi_probe. (I also had to modify the write16, since the
code there uses,
IMO,  a wrong addr. mask).

I see two problems (not counting the possible bug in dc21285_write*() code)
with what I did:

1. The dc21285.c use of cfi compliant chips is hardcoded (there should maybe
be a
	way to try and probe all registered modules for the first one that
reports success,
	or something like that) or should I use CONFIG_ and #ifdef
2. A minor one - the use of a certain chipset for mapping doesn't
necessarily mean that the
	address and data lanes are always the same. In addition is there
some framework in plan 
      that captures the mapping/interleaving and bus width issues separated
for the specific chip support?

Should I maybe write a device specific modules without the maps/chips
separation, since it seems only
to complicate things?

BTW: For some reason for Intel's 28F* chips the most important is the letter
that follows the
      size code, so the 28F128J means that it belongs to a Strata Flash line
which is CFI comliant,
 	while 28F128B belongs to the Fast Boot Block Flash line, which is
really a pre-CFI,
	and the CFI code wont work.

A totally unrelated issue: 
 I need to edit the redboot partition table from linux.
 How should I reread it? Removing and loading the modules, doesn't seem like
a nice solution,
 especially since the root fs is on flash.
 Should I try and add ioctl to the mtdchar/block code, so it would work like
when you use fdisk?


More information about the linux-mtd mailing list