Can't load DOC driver
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
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) TAGdrivers/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 waitftl_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
Quoted 217 lines · Greg Ungerer
Hi Wolter,
Quoted 3 lines · Wolter Kamphuis
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
0xA4000000but the driver (doc2001plus) can't find it there.The driver does find a DOC on all addresses <
0x04000000offset0x1000but 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.hRegards
GregQuoted 189 lines
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 * MemClkTurbo Mode = 2 * Run Mode
Mode: TURBOMMU 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 =
0x00000001dwNK = 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..x5CPU: 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 ([email protected])
devfs:boot_options:0x1
ttyS0 at MMIO0x40100000(irq = 15) is a FFUART
ttyS1 at MMIO0x40200000(irq = 14) is a BTUART
ttyS2 at MMIO0x40700000(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: usingpxa2xx_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 doc2001plusinsmod /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.koTry address
0x1000:
/ # modprobe -v docprobe doc_config_location=0x1000
insmod/lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.kodoc_config_location=0x1000
Using configured DiskOnChip probe address0x1000drivers/mtd/devices/docprobe.c:142(doccheck)0x40drivers/mtd/devices/docprobe.c:194(doccheck)0x40drivers/mtd/devices/docprobe.c:255(DoC_Probe)0x40
DiskOnChip Millennium Plus found at address0x1000_DoC_WaitReadycalled for out-of-line waitdrivers/mtd/devices/doc2001plus.c:83(_DoC_WaitReady) 65534 ReadDOC's_DoC_WaitReadytimed out._DoC_WaitReadycalled for out-of-line waitdrivers/mtd/devices/doc2001plus.c:83(_DoC_WaitReady) 65534 ReadDOC's_DoC_WaitReadytimed out.drivers/mtd/devices/doc2001plus.c:316(DoC_IdentChip) mfr =0x40drivers/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 docprobeTry address
0xA4000000:
/ # modprobe -v docprobe doc_config_location=0xA4000000
insmod/lib/modules/2.6.11-hh0/kernel/drivers/mtd/devices/docprobe.kodoc_config_location=0xA4000000drivers/mtd/devices/docprobe.c:254(DoC_Probe) physadr=0xa4000000 docptr=0xc4000000drivers/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
Hi Wolter,
please do not top post and snip the irrelevant bits.
http://www.infradead.org/~dwmw2/email.html
Quoted 3 lines · Wolter Kamphuis
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's0xa5(Toshiba:NAND 2GiB 1,8V 8-bit). If I hardcode the chip id to0x75and
Hardcoding seems not to be a bright idea to me. If something is read wrong then there is usually a reason.
Quoted 6 lines
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.
Quoted 2 lines
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
Quoted 2 lines · Wolter Kamphuis
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