Issues with a Doc Milplus

David Woodhouse dwmw2 at infradead.org
Fri Oct 1 09:57:45 EDT 2004


On Fri, 2004-10-01 at 15:46 +0200, Nicolas Pouillon wrote:
> 1/ Doc is mapped to mem address 0x0, in docprobe.c there is an
> expression like: 
> if (doc_config_location) {
> 	[probe at specified address]
> } else {
> 	[probe hardlisted addresses]
> }
> 
> So it never probes for my chip at 0. I noticed the same construct is
> present in newer probing routines.
> Is there a special way of declaring a chip at 0x0 ?

Hmmm. We should probably use -1 for 'unconfigured' instead of zero. Want
to provide a patch accordingly?

> 2/ It was not known by nan_ids, I had to add the following line:
> {"NAND 64MiB 3,3V", 0xa5, 26, 0x4000, 0},

Are you sure that's a 64MiB chip?

> 3/ It seems to be detected twice, it should be 64MiB total, and there is
> physically one chip on the board.
> Could one chip be virtually two 32MiB chips ?

I think that might actually be the case for the 64MiB DiskOnChip M+,
yes.

> 4/ Using arm part in doc2000.h which is:
> #define ReadDOC_(adr, reg)      ((unsigned char)(*(volatile __u32
> *)(((unsigned long)adr)+((reg)<<2)))) 
> #define WriteDOC_(d, adr, reg) do{ *(volatile __u32 *)(((unsigned
> #long)adr)+((reg)<<2)) = (__u32)d; wmb();} while(0)
> 
> makes the machine crash, I have to use readb/writeb in order to make the
> device work.

If provide that in 'diff -u' form we can change that too.

-- 
dwmw2





More information about the linux-mtd mailing list