something gets odd when I set the mtd.dev.parent

Peter Pan pppeterpppan at gmail.com
Tue Mar 2 13:20:26 EST 2010


2010/2/27 Peter Pan <pppeterpppan at gmail.com>:
> 2010/2/27 Scott Wood <scottwood at freescale.com>:
>> On Fri, Feb 26, 2010 at 10:08:09AM +0800, Peter Pan wrote:
>> There isn't one.  I was not under the impression that such a configuration
>> was even possible (how do you control ALE/CLE, for example?).  There is a
>> NAND driver that uses UPM, though -- perhaps you could use that?
>>
>> How specifically is NAND connected to the SoC on your board?  What about it
>> suggests GPCM?
>>
>> -Scott
>>

We use Address A20 and A21 connect to ALE and CLE, the data bus is
connected through a buffer.
The RE is OE AND with CS. the WE is PBS0 AND with CS. CE pin is
connect to ground. It works
fine in VxWorks. And also in our previous Linux version 2.6.22.

Now, I get a odd problem. My GPCM Nand flash driver is mostly copied
from fsl_upm.c. In the fun_probe
function, I have printed out the of_device pointer status as follows:
ofdev= 0xcf851ca0
ofdev->dev= 0xcf851cb0
ofdev->dev.class= 0xcf851d50

Then I set the &ofdev->dev to mtd.dev.parent using
fun->mtd.dev.parent = &ofdev->dev;

Then I print out the values:
fun->mtd.dev.parent= 0xcf851cb0
fun->mtd.dev.parent->class= 0x0

The parent pointer is identical, but the class member is NULL, which
makes the access of NULL pointer oops
later.

I'm wondering why this could happen. The pointer points at the same
address, shouldn't all the members be the
same?


More information about the Linuxppc-dev mailing list