public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* Re: Can't load DOC driver
       [not found] ` <423125F5.3070804@snapgear.com>
@ 2005-03-14 16:07   ` Wolter Kamphuis
  2005-03-14 17:18     ` Thomas Gleixner
  2005-03-15 13:42     ` Raphael Zimmerer
  0 siblings, 2 replies; 3+ messages in thread
From: Wolter Kamphuis @ 2005-03-14 16:07 UTC (permalink / raw)
  To: linux-mtd

hi Greg,

The 0xa4000000 address I mentioned in my previous emails seems to be the 
virtual address, not the physical address I thought it was. Thanks 
Dmitry for making that clear.

After changing the readdoc and writedoc macros to readb and writeb I was
able to get a correct manufactur id. The toggle bits also work so I'm
nearly there! Thanks Greg for the hint.

Now, for some reason the nand-chip id isn't found correctly, it should
be 0x75 (Toshiba:NAND 32MiB 3,3V 8-bit) but the driver find's 0xa5
(Toshiba:NAND 2GiB 1,8V 8-bit). If I hardcode the chip id to 0x75 and 
load the ftl module I'm able to read from /dev/mtdblock/0, however it's 
difficult to see if the information is correct.

I can't use the diskonchip module since that one doesn't support the 
32/64Mb DOC M+. I need to inftl module to be able to install a root 
filesystem right?

Will it be difficult to port the 32/64Mb DOC M+ to the new diskonchip 
driver? I'm certainly not an expert...

thanks in advance,
   Wolter Kamphuis


/ # modprobe -v ftl
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/mtdcore.ko
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/mtd_blkdevs.ko
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/ftl.ko
$Id: ftl.c,v 1.55 2005/01/17 13:47:21 hvr Exp $

/ # modprobe -v doc2001plus
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/mtdpart.ko
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docecc.ko
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/nand/nand_ids.ko
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/doc2001plus.ko

/ # modprobe -v docprobe
insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko
Using configured DiskOnChip probe address 0x0
drivers/mtd/devices/docprobe.c:250 (DoC_Probe) physadr=0x0 docptr=0xc4000000
drivers/mtd/devices/docprobe.c:142 (doccheck) physadr=0x0 ChipID=0x40
drivers/mtd/devices/docprobe.c:194 (doccheck) ChipID=0x40
drivers/mtd/devices/docprobe.c:203 (doccheck) tmp=0x0 tmpb=0x4 tmpc=0x0
drivers/mtd/devices/docprobe.c:256 (DoC_Probe) physadr=0x0 ChipID=0x40
DiskOnChip Millennium Plus found at address 0x0
drivers/mtd/devices/doc2001plus.c:364 (DoC_ScanChips) TAG
drivers/mtd/devices/doc2001plus.c:370 (DoC_ScanChips) TAG
drivers/mtd/devices/doc2001plus.c:381 (DoC_ScanChips) TAG
drivers/mtd/devices/doc2001plus.c:313 (DoC_IdentChip) mfr=0x98
drivers/mtd/devices/doc2001plus.c:318 (DoC_IdentChip) id=0xa5
Flash chip found: Manufacturer ID: 98, Chip ID: A5 (Toshiba:NAND 32MiB 
3,3V 8-bit (FAKE))
_DoC_WaitReady called for out-of-line wait 

drivers/mtd/devices/doc2001plus.c:313 (DoC_IdentChip) mfr=0x98
drivers/mtd/devices/doc2001plus.c:318 (DoC_IdentChip) id=0xa5
Flash chip found: Manufacturer ID: 98, Chip ID: A5 (Toshiba:NAND 32MiB 
3,3V 8-bit (FAKE))
drivers/mtd/devices/doc2001plus.c:393 (DoC_ScanChips) TAG 

drivers/mtd/devices/doc2001plus.c:400 (DoC_ScanChips) TAG
drivers/mtd/devices/doc2001plus.c:408 (DoC_ScanChips) TAG
2 flash chips found. Total DiskOnChip size: 64 MiB
mtd: Giving out device 0 to DiskOnChip Millennium Plus
_DoC_WaitReady called for out-of-line wait
<<above line times ~30>>
_DoC_WaitReady called for out-of-line wait
ftl_cs: FTL header not found.
insmod: cannot insert 
`/lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko': 
Resource temporarily unavailable (-1): Resource temporarily unavailae
modprobe: failed to load module docprobe




Greg Ungerer wrote:
> Hi Wolter,
> 
> Wolter Kamphuis wrote:
> 
>> We're working on the Linux port for the E-ten P700. We've got a 
>> problem accessing the DiskOnChip (Millennium Plus 64Mb). The spec's we 
>> have (possibly outdated) say it should be mapped at address 0xA4000000 
>> but the driver (doc2001plus) can't find it there.
>>
>> The driver does find a DOC on all addresses < 0x04000000 offset 0x1000 
>> but fails to find the flash chips. Doesn't look right.
> 
> 
> Given that your finding the primary ID (0x40) I would suspect
> that your access functions are probably not quite right.
> 
> Are you using the correct bus width (8/16/32 bit) access?
> Are you accessing the registers on the appropriate offset
> boundaries?
> The region is not cached, right?
> 
> I have found on a few ARM platforms where I used DoC parts
> that I had to use different ReadDOC and WriteDOC macros in
> ~/include/linux/mtd/doc2000.h
> 
> Regards
> Greg
> 
> 
> 
> 
>> Is there a way to figure where the DOC is mapped without the use of 
>> JTAG (which we haven't). Maybe through a WindowsCE program?
>>
>> The P700 has a M-systems DOC+ MD-3331-D64-V3
>> We start the kernel using HaRET, below is the output. I've added some 
>> debug to the docprobe and doc2001plus drivers.
>>
>>
>> E-ten bootloader starting:
>> *******Beginning System Initialization*******
>>          CPU ID     = A0 PXA255
>>          SDCLK[1]   = MemClk
>>          MemClk     = 99.53 MHz
>>          Run Mode   = 2 * MemClk
>>          Turbo Mode = 2 * Run Mode
>> Mode:    TURBO
>>
>> MMU Enabled!
>> ******************************************************
>> ******************************************************
>> ******************************************************
>> ******************************************************
>> ******************************************************
>> OEMInitDebugSerial using UART1
>>
>> *****************************************************************
>> *    Paladin, Version 2.30
>> *    Built: 13:00:27  Jan 26 2005
>> *
>> *
>> *    Copyright (C) 2003, E-TEN Information System Co., Ltd.
>> *****************************************************************
>> MSC1 Pre value = 7FF07FF0
>> MSC1 Post value = 7FF172FC
>> Tenerife ID = 1884D51
>> DC_0=0x1......
>> DC_1=0x43......
>> DC_2=0x1......
>> DC_4=0x4......
>> DC_5=0x1......
>> DC_8=0x868B8649......
>> M1_0=0x1......
>> M1_1=0x1B676CA0......
>> M1_2=0x117700B0......
>> M1_5=0x170211......
>> CC_0=0x2......
>> CC_2=0x200000......
>> CC_5=0x0......
>> SW_6=0xAABBCCDD......
>> ulStride=0x1E0......
>> (G1_BASE+GC_START_ADDR)=0x1B0......
>> ulStride=0x1E0..0x140..0x25800..
>> ulStride=0x1E0..0x140..0x9600..
>> FP06R=0x80000000......
>> FP07R=0x0......
>> FP08R=0x3......
>> FP08R aw=0x3......
>> FP07R aw=0x0......
>> FP0FR aw=0x10......
>> ====> Y = 320
>> ====> FB_BASE = B8300000
>> flRegisterComponents
>> Adapter Found....
>> flRegisterDOCPLUS()....
>> flRegisterINFTL()....
>> bdkReadInit OK!
>> read from 11 to 0x83FD0000  -> bdkReadBlock OK!
>> read from 12 to 0x83FD8000  -> bdkReadBlock OK!
>> read from 13 to 0x83FE0000  -> bdkReadBlock OK!
>> read from 14 to 0x83FE8000  -> bdkReadBlock OK!
>> read from 15 to 0x83FF0000  -> bdkReadBlock OK!
>> Version String is AB2110.100.0014.WWE.premium.   .100.0000
>>
>> RCSR = 0x00000001
>>
>> dwNK = EA0003FE
>>
>> memset(0x80040000, 0, 0x01EC0000);
>> memset(0x82000000, 0, 0x01F00000);
>> Launch OS image...
>> Launchà
>>
>>
>>
>> HaRET starting kernel:
>> x<x.ØxüxüØx<ÿØxx..x<Øxü.xü.x<.Øx.Øxü.x..x<.Øx.Øx<xx.x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x..x5 
>>
>> CPU: XScale-PXA255 [69052d06] revision 6 (ARMv5TE)
>>
>> CPU0: D VIVT undefined 5 cache
>> CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
>> CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
>> Machine: E-ten P700
>> Memory policy: ECC disabled, Data cache writethrough
>> Memory clock: 99.53MHz (*27)
>> Run Mode clock: 199.07MHz (*2)
>> Turbo Mode clock: 398.13MHz (*2.0, active)
>> Built 1 zonelists
>> Kernel command line: noinitrd console=ttyS1,38400n8 root=/dev/nfs 
>> init=/linuxrc ip=192.168.131.201:192.168.131.102::::: 
>> nfsroot=192.168.131.102:/mnt/nfsrootd
>> PID hash table entries: 256 (order: 8, 4096 bytes)
>>
>> Console: colour dummy device 80x30
>> Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
>> Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
>> Memory: 56MB = 56MB total
>> Memory: 54820KB available (1487K code, 330K data, 84K init)
>> Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
>> CPU: Testing write buffer coherency: ok
>> NET: Registered protocol family 16
>> NetWinder Floating Point Emulator V0.97 (double precision)
>> devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
>> devfs: boot_options: 0x1
>> ttyS0 at MMIO 0x40100000 (irq = 15) is a FFUART
>> ttyS1 at MMIO 0x40200000 (irq = 14) is a BTUART
>> ttyS2 at MMIO 0x40700000 (irq = 13) is a STUART
>> io scheduler noop registered
>> io scheduler anticipatory registered
>> io scheduler deadline registered
>> io scheduler cfq registered
>> loop: loaded (max 8 devices)
>> pxa2xx_udc: version 14-Dec-2003
>> usb0: Ethernet Gadget, version: Equinox 2004
>> usb0: using pxa2xx_udc, OUT ep2out-bulk IN ep1in-bulk
>> usb0: MAC 52:b1:32:84:10:2f
>> mice: PS/2 mouse device common for all mice
>> NET: Registered protocol family 2
>> IP: routing cache hash table of 512 buckets, 4Kbytes
>> TCP established hash table entries: 2048 (order: 2, 16384 bytes)
>> TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
>> TCP: Hash tables configured (established 2048 bind 2048)
>> NET: Registered protocol family 1
>> IP-Config: Guessing netmask 255.255.255.0
>> IP-Config: Complete:
>>       device=usb0, addr=192.168.131.201, mask=255.255.255.0, 
>> gw=255.255.255.255,
>>      host=192.168.131.201, domain=, nis-domain=(none),
>>      bootserver=192.168.131.102, rootserver=192.168.131.102, rootpath=
>> Looking up port of RPC 100003/2 on 192.168.131.102
>> udc: USB reset
>> usb0: full speed config #1: 100 mA, Ethernet Gadget, using CDC 
>> Ethernet Subset
>> Looking up port of RPC 100005/1 on 192.168.131.102
>> VFS: Mounted root (nfs filesystem).
>> Mounted devfs on /dev
>> Freeing init memory: 84K
>> BusyBox v1.00-rc3 (2005.02.25-09:50+0000) Built-in shell (ash)
>> Enter 'help' for a list of built-in commands.
>> / # modprobe -v doc2001plus
>> insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/mtdcore.ko
>> insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/mtdpart.ko
>> insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docecc.ko
>> insmod    /lib/modules/2.6.11-hh0/kernel/drivers/mtd/nand/nand_ids.ko
>> insmod    
>> /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/doc2001plus.ko
>>
>>
>>
>> Try address 0x1000:
>> / # modprobe -v docprobe doc_config_location=0x1000
>> insmod    
>> /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko 
>> doc_config_location=0x1000
>> Using configured DiskOnChip probe address 0x1000
>> drivers/mtd/devices/docprobe.c:142 (doccheck) 0x40
>> drivers/mtd/devices/docprobe.c:194 (doccheck) 0x40
>> drivers/mtd/devices/docprobe.c:255 (DoC_Probe) 0x40
>> DiskOnChip Millennium Plus found at address 0x1000
>> _DoC_WaitReady called for out-of-line wait
>> drivers/mtd/devices/doc2001plus.c:83 (_DoC_WaitReady) 65534 ReadDOC's
>> _DoC_WaitReady timed out.
>> _DoC_WaitReady called for out-of-line wait
>> drivers/mtd/devices/doc2001plus.c:83 (_DoC_WaitReady) 65534 ReadDOC's
>> _DoC_WaitReady timed out.
>> drivers/mtd/devices/doc2001plus.c:316 (DoC_IdentChip) mfr = 0x40
>> drivers/mtd/devices/doc2001plus.c:321 (DoC_IdentChip) id = 0x40
>> No flash chips recognised.
>> insmod: cannot insert 
>> `/lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko': 
>> Resource temporarily unavailable (-1): Resource temporarily unavailae
>> modprobe: failed to load module docprobe
>>
>>
>>
>> Try address 0xA4000000:
>> / # modprobe -v docprobe doc_config_location=0xA4000000
>> insmod    
>> /lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko 
>> doc_config_location=0xA4000000
>> drivers/mtd/devices/docprobe.c:254 (DoC_Probe) physadr=0xa4000000 
>> docptr=0xc4000000
>> drivers/mtd/devices/docprobe.c:144 (doccheck) physadr=0xa4000000 
>> ChipID=0x85
>> No recognised DiskOnChip devices found
>> insmod: cannot insert 
>> `/lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.ko': 
>> Resource temporarily unavailable (-1): Resource temporarily unavailae
>> modprobe: failed to load module docprobe
>>
>> -------------------------------------------------------------------
>> Subscription options: 
>> http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
>> FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
>> Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php
>>
> 

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

* Re: Can't load DOC driver
  2005-03-14 16:07   ` Can't load DOC driver Wolter Kamphuis
@ 2005-03-14 17:18     ` Thomas Gleixner
  2005-03-15 13:42     ` Raphael Zimmerer
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Gleixner @ 2005-03-14 17:18 UTC (permalink / raw)
  To: Wolter Kamphuis; +Cc: linux-mtd

Hi Wolter, 

please do not top post and snip the irrelevant bits.
http://www.infradead.org/~dwmw2/email.html

On Mon, 2005-03-14 at 17:07 +0100, Wolter Kamphuis wrote:
> Now, for some reason the nand-chip id isn't found correctly, it should
> be 0x75 (Toshiba:NAND 32MiB 3,3V 8-bit) but the driver find's 0xa5
> (Toshiba:NAND 2GiB 1,8V 8-bit). If I hardcode the chip id to 0x75 and 

Hardcoding seems not to be a bright idea to me. If something is read
wrong then there is usually a reason.

> load the ftl module I'm able to read from /dev/mtdblock/0, however it's 
> difficult to see if the information is correct.
> 
> I can't use the diskonchip module since that one doesn't support the 
> 32/64Mb DOC M+. I need to inftl module to be able to install a root 
> filesystem right?

Not inevitably.

> Will it be difficult to port the 32/64Mb DOC M+ to the new diskonchip 
> driver? I'm certainly not an expert...

I have no hardware to attack it myself, but lately somebody showed
interest to make it work. I have no clue how far it has evolved.

tglx

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

* Re: Can't load DOC driver
  2005-03-14 16:07   ` Can't load DOC driver Wolter Kamphuis
  2005-03-14 17:18     ` Thomas Gleixner
@ 2005-03-15 13:42     ` Raphael Zimmerer
  1 sibling, 0 replies; 3+ messages in thread
From: Raphael Zimmerer @ 2005-03-15 13:42 UTC (permalink / raw)
  To: Wolter Kamphuis; +Cc: linux-mtd

On Mon, Mar 14, 2005 at 05:07:21PM +0100, Wolter Kamphuis wrote:
> Will it be difficult to port the 32/64Mb DOC M+ to the new diskonchip 
> driver? I'm certainly not an expert...

I'am working on DocMilPlus 32/64MB support. Currently, reading with
full ECC support works fine, write support will follow. Unfortunately,
for the next weeks I'am on vacation.

Since I won't use INFTL, it is likely that there won't be full INFTL
support. That also depends on how good the DocMilPlus driver can be
integrated into the existing nand framework. Cuz of the fuc^H^H^Hlovely
page layout, some small changes to the nand subsystem will be
necessary, at least, if code duplication is has to be avoided. But
that's another story...

- kille

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

end of thread, other threads:[~2005-03-15 13:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <422EDE03.4080803@opticon.com>
     [not found] ` <423125F5.3070804@snapgear.com>
2005-03-14 16:07   ` Can't load DOC driver Wolter Kamphuis
2005-03-14 17:18     ` Thomas Gleixner
2005-03-15 13:42     ` Raphael Zimmerer

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