newbie needs help getting onenand to work...

Mathew Chasan mathew at exbiblio.com
Fri Jun 8 13:59:49 EDT 2007


Thank You Kyungmin, that is very very helpful.  Hopefully onenand  
will work before my day is over :-) !

*m

On Jun 7, 2007, at 7:24 PM, Kyungmin Park wrote:

>>
>> Hi List,
>>
>> I'm trying to get a Samsung KFH4G16Q2M Onenand to work with the
>> Freescale i.MX31.  I'm using a modified version of the 2.6.19.2 tree
>> available on the freescale website.
>>
>> Basically i have yet to get anywhere.  I've enabled the MTD and
>> OneNand drivers in the kernel  but thats about it.  Interestingly, i
>> don't see any sort of indication that the OneNand drivers are even
>> getting initialized in any way during kernel boot.
>>
>> I know that i'm going to need to somehow explain to the kernel where
>> to look for my oneNand device, and what to look for, but i haven't
>> figured out how to do this.  There's quite a lot out there on NAND
>> and NOR devices of course, but i'm not clear on what needs to be the
>> same and different for a OneNand part.  I spent all day yesterday
>> searching for any sort of documentation either online or in the code,
>> and found very little talking about oneNand.  Today i'm looking
>> through the code trying to put together what i need to do, but was
>> hoping someone might be able to help me, either by pointing me to a
>> preexisting document, or by quickly telling me what steps i need to
>> take/what i need to define to get this to work.
>
> Hi,
> There's OneNAND reference board, Apollon.
> linux/arch/arm/mach-omap2/board-apollon.c [1]
>
> First, you define mtd partitions.
> Second, define the OneNAND address at struct resource.
> Third, register struct platform_device with namd "onenand"
>
> static struct platform_device apollon_onenand_device = {
>         .name           = "onenand",
>         .id             = -1,
>         .dev            = {
>                 .platform_data  = &apollon_flash_data,
>         },
>         .num_resources  = ARRAY_SIZE(apollon_flash_resource),
>         .resource       = apollon_flash_resource,
> };
>
> Finally, you can see some message at boot.
>
> Muxed OneNAND 256MB 1.8V 16-bit (0x40)
> Scanning device for bad blocks
> Bad eraseblock 411 at 0x03360000
> Bad eraseblock 716 at 0x05980000
> Bad eraseblock 1176 at 0x09300000
> Creating 6 MTD partitions on "onenand":
> 0x00000000-0x00020000 : "X-Loader + U-Boot"
> 0x00020000-0x00040000 : "params"
> 0x00040000-0x00240000 : "kernel"
> 0x00240000-0x01240000 : "rootfs"
> 0x01240000-0x03240000 : "filesystem00"
> 0x03240000-0x10000000 : "filesystem01"
>
> As Nishanth Menon wrote omap2430sdp for reference but it is OMAP2  
> specific. It's
> not work on other architectures. Also it's not yet merged mtd tree.
>
> Thank you,
> Kyungmin Park
>
> 1.
> http://source.mvista.com/git/gitweb.cgi?p=linux- 
> omap-2.6.git;a=blob;h=16428f6290
> 20b1d19516d75f54631e51fd13b84c;hb=e0e0c1591b129da1246eaa51b91f040f6dfb 
> 2a2e;f=arc
> h/arm/mach-omap2/board-apollon.c
>
>
>





More information about the linux-mtd mailing list