All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolter Kamphuis <wolter.kamphuis@opticon.com>
To: linux-mtd@lists.infradead.org
Subject: Re: Can't load DOC driver
Date: Mon, 14 Mar 2005 17:07:21 +0100	[thread overview]
Message-ID: <4235B6B9.9030608@opticon.com> (raw)
In-Reply-To: <423125F5.3070804@snapgear.com>

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
>>
> 

       reply	other threads:[~2005-03-14 16:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <422EDE03.4080803@opticon.com>
     [not found] ` <423125F5.3070804@snapgear.com>
2005-03-14 16:07   ` Wolter Kamphuis [this message]
2005-03-14 17:18     ` Can't load DOC driver Thomas Gleixner
2005-03-15 13:42     ` Raphael Zimmerer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4235B6B9.9030608@opticon.com \
    --to=wolter.kamphuis@opticon.com \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.