public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* MTD drivers for DoC Millenium Plus
@ 2003-06-04 10:56 angainor
  2003-06-11  9:53 ` David Woodhouse
  0 siblings, 1 reply; 9+ messages in thread
From: angainor @ 2003-06-04 10:56 UTC (permalink / raw)
  To: linux-mtd

Hi all,
I'm trying to set up a single boot solution based
on DiscOnChip Millenium Plus and Linux (yeah, I
know... I should use a flash chip instead ;)
not up to me.) No real problems when doing that 
with M-Systems binary linux driver, still my boss 
would rather use a GPLd driver. 
I have experienced some problems with doc2001plus 
and inftl drivers and I hoped you could help me out. 
And yes, I know that the inftl driver is quite new...
I could work on it for some time, if it wouldn't be
too much time and if I knew where to start.

First of all, docprobe successfuly identifies DOCMP,
but total size of the DoC is only half of its actual
size (64MiB chip is identified as 32MiB).
I have studied the "DiskOnChip 2000 128Mb problem"
thread here on list and tried to change the
MAX_CHIPS_MPLUS define to something else than 1.
Well, this way I got an 128MiB disk, then a
256MiB one, and so on... :). way too many chips found.
I am able to correctly read the /dev/mtd0 device
(char) with doc2001plus driver. However, 
insmod inftl has no effect. Looking into the code
and little debugging showed that:

1. inftlcore.c

        if (mtd->ecctype != MTD_ECC_RS_DiskOnChip)
                return;

   does indeed return. I guess it shouldn't...
   I don't yet understand the full architecture
   of linux MTD driver, but a quick grep showed,
   that mtd->ecctype is never actually set, except
   for mtd->ecctype = MTD_ECC_SW; in nand.c.
   Is this value acquired from the chip directly?
   If so, there must be something wrong there.
   I commented out that part to see what's next ;)

	Jun  4 13:36:43 (none) syslog.warn klogd: INFTL: Media Header ->
	Jun  4 13:36:43 (none) syslog.warn klogd:     bootRecordID          = BNAND
	Jun  4 13:36:43 (none) syslog.warn klogd:     NoOfBootImageBlocks   = -1
	Jun  4 13:36:43 (none) syslog.warn klogd:     NoOfBinaryPartitions  = 1
	Jun  4 13:36:43 (none) syslog.warn klogd:     NoOfBDTLPartitions    = 1
	Jun  4 13:36:43 (none) syslog.warn klogd:     BlockMultiplerBits    = 0
	Jun  4 13:36:43 (none) syslog.warn klogd:     FormatFlgs            = 1
	Jun  4 13:36:43 (none) syslog.warn klogd:     OsakVersion           = 0x30343135
	Jun  4 13:36:43 (none) syslog.warn klogd:     PercentUsed           = 98
	Jun  4 13:36:43 (none) syslog.warn klogd:     PARTITION[0] ->
	Jun  4 13:36:43 (none) syslog.warn klogd:         virtualUnits    = 10
	Jun  4 13:36:43 (none) syslog.warn klogd:         firstUnit       = 0
	Jun  4 13:36:43 (none) syslog.warn klogd:         lastUnit        = 0
	Jun  4 13:36:43 (none) syslog.warn klogd:         flags           = 0x20000000
	Jun  4 13:36:43 (none) syslog.warn klogd:         spareUnits      = 0
	Jun  4 13:36:43 (none) syslog.warn klogd: INFTL: Media Header Parition 0 
sanity check failed
	Jun  4 13:36:43 (none) syslog.warn klogd:     firstUnit 0 : lastUnit 0  >  
virtualUnits 0
	Jun  4 13:36:43 (none) syslog.warn klogd: INFTL: could not find valid boot record?
	Jun  4 13:36:43 (none) syslog.warn klogd: INFTL: could not mount device	
   
   Basically, the start is ok and does reflect the
   reality. So what goes wrong afterwards?

2. doc2000.h
   
   I found the following definition:

	#define DoC_Mplus_OutputControl         0x1002

   Shouldn't this be rather:

	#define DoC_Mplus_OutputControl         0x100c

   This is what I found in DOC_Millennium_Plus_DS_Rev1.7.pdf.
   0x1002 is actually NOP. I don't think this will help me
   much though ;)

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2003-06-20  5:48 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-04 10:56 MTD drivers for DoC Millenium Plus angainor
2003-06-11  9:53 ` David Woodhouse
2003-06-11 11:18   ` angainor
2003-06-11 13:13     ` angainor
2003-06-11 13:28       ` David Woodhouse
2003-06-12  1:22   ` Greg Ungerer
2003-06-12 10:10     ` angainor
2003-06-12 14:42       ` Greg Ungerer
2003-06-20  5:48       ` Greg Ungerer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox