On Fri, Apr 11, 2008 at 12:22 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > * Juha Kuikka <juha.kuikka@xxxxxxxxx> [080408 17:33]: > > Hi, > > > > I am trying to use the NAND prefetch engine to speed up NAND access. > > > > In GPMC CS0 is the NAND chip. GPMC_CONFIG7_0 is set to 0x0000084c by > > u-boot. Hence the address for this CS should be 0x0C000000. > > Documentation indicates that the FIFO should be accessible in any > > associated chip-select region after the engine has been enabled. > > > > In linux I use ioremap() to map 0x0C000000 and use the returned > > pointer to access the prefetch engine FIFO. > > > > Prefetch engine is configured and started. > > I get FIFOEVENT interrupt from it and try to read the fifo by using > > this ioremap's pointer but kernel crashes with: > > > > Unhandled fault: external abort on non-linefetch (0x008) at 0xc4854000 > > 0xc4854000 corresponds to the pointer ioremap() returned. > > > > Apparently I miss something either in HW or kernel but I cannot think > > of anything. > > Conventional access to the NAND chip through COMMAND/ADDRESS/DATA > > registers works ok. > > Any ideas would be appreciated. > > Are you sure you have all the needed clocks on at this point? At least > gpmc_fck should be checked. Of course if access to gpmc works in > general, this is not the problem. Yes, GPMC access without prefetch engine works fine so clocks are on. I was able to solve this problem though. U-boot configured CS0 mapping to be 128MB. If I change this to 64MB it works. Very strange indeed. / Juha -- Madness takes it's toll. Please have exact change. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html