Trouble indetifying FLASH part

Ho-Kuo Chan hchan at wavesat.com
Thu May 23 17:19:39 EDT 2002


Hi David,
    I have partially solved the problem. The PPC405GP multiplexes its GPIO
lines with the External Bus Chip Select lines. In fact, what was occurring
was that my GPIO's were misconfigured and were not acting as Chip Select
Lines. However, it's not quite working:

physmap flash device: 400000 at 8000000
HKC: Map Priv 1 = 0xc2003000
HKC: Calling cfi_probe_chip with bus width 2, interleave 2 and device_type 8
HKC: Output Reg: 0x45480000        -------> Correct value
HKC: TCR: 0x750a0000                    -------> Correct value
HKC: ODR: 0x20000                        -------> Correct value
Control 0: 0x17ee616                        -------> Correct value
Addr = 0x0
Cmd_addr = 0x0, CFIDEV_INTERLEAVE = 0x2, type = 0x1
Val = 0xf0f0
Addr = 0xaa
Cmd_addr = 0x55, CFIDEV_INTERLEAVE = 0x2, type = 0x1
Val = 0x9898
Read 0x=51, cmd = 0x5151   -----> the correct value is read, but it is being
compared to a value returned by cfi_build_cmd('Q',map,cfi) in qry_present
Read 0x=52, cmd = 0x5252
Read = 0x59, cmd = 0x5959
CFI Query Failed for driver
Calling cfi_probe_chip with bus width 2, interleave 2 and device_type 16
Output Reg: 0x45480000
TCR: 0x750a0000
ODR: 0x20000
Control 0: 0x17ee616
Addr = 0x0
Cmd_addr = 0x0, CFIDEV_INTERLEAVE = 0x2, type = 0x2
Val = 0xf0f0
Addr = 0x154
Cmd_addr = 0x55, CFIDEV_INTERLEAVE = 0x2, type = 0x2
Val = 0x9898
Read 0x=ffff, cmd = 0x5151
Read 0x=3000, cmd = 0x5252
Read = 0x3000, cmd = 0x5959
CFI Query Failed for driver
CFI: Found no Physically mapped flash device at location zero

The value read above is the return value of cfi_read as in the qry_present
function. I am no expert but should the comparison in qry_present:

if (cfi_read(map, base+osf*0x10)==cfi_buil_cmd('Q', map, cfi) &&
    cfi_read(map, base+osf*0x11)==cfi_buil_cmd('R', map, cfi) &&
    cfi_read(map, base+osf*0x12)==cfi_buil_cmd('Y', map, cfi))

be simply:

if (cfi_read(map, base+osf*0x10)=='Q' &&
    cfi_read(map, base+osf*0x11)=='R' &&
    cfi_read(map, base+osf*0x12)=='Y')

Thanks for all your help!!!!

Ho-Kuo Chan
Software Designer, Digital Division
Wavesat Wireless Inc.
(514) 956-6322
----- Original Message -----
From: "David Woodhouse" <dwmw2 at infradead.org>
To: "Ho-Kuo Chan" <hchan at wavesat.com>
Cc: <linux-mtd at lists.infradead.org>
Sent: Thursday, May 16, 2002 11:01 AM
Subject: Re: Trouble indetifying FLASH part


>
> hchan at wavesat.com said:
> >  The result was a continuous stream of 0xf0's. In VxWorks I get
> > 0x1303434953463900 which is "..CIS59.". Does this tell you anything?
>
> Yeah. It really does look like the chip isn't where you think it is.
>
> Can you get Linux to boot anyway, with NFSroot or something?
>
> od -A x -t x1 /dev/mem | grep "13 03 43 49 53 46 39 00"
>
> Or you could code the equivalent in the kernel.
>
> --
> dwmw2
>
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>





More information about the linux-mtd mailing list