On Fri, Mar 20, 2015 at 1:37 PM, Roger Quadros <rog...@ti.com> wrote: > On 20/03/15 13:24, Yegor Yefremov wrote: >> On Thu, Mar 19, 2015 at 4:56 PM, Daniel Mack <zon...@gmail.com> wrote: >>> On 03/19/2015 04:13 PM, Yegor Yefremov wrote: >>>> Strange. Have tried with "nand read" command, but still the same >>>> result with and without CONFIG_NAND_OMAP_GPMC_PREFETCH : >>>> >>>> [2.150655 0.001006] NAND read: device 0 offset 0x260000, size 0x1200000 >>>> [15.978943 13.828288] 18874368 bytes read: OK >>> >>> What about adding some debug prints to the prefetch setup function and >>> see if it is executed at all? >> >> I2C: ready >> DRAM: 256 MiB >> NAND: prefetch enabled >> NAND: 256 MiB >> MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 >> Using default environment >> >> I've added "NAND: prefetch enabled" output for: >> >> #ifdef CONFIG_NAND_OMAP_GPMC_PREFETCH >> else { >> printf("NAND: prefetch enabled\n"); >> nand->read_buf = omap_nand_read_prefetch8; >> } >> #else >> >> I've also put printf() into omap_nand_read_prefetch8() just to make >> sure it is called - it was called. >> >> Further ideas? >> >>>> Daniel, do you have the numbers? Images size and load time? What can I >>>> expect? >>> >>> I don't currently have the setup at hand, sorry. But the number I recall >>> from an email conversation back then is: The time from power-on, loading >>> SPL, loading U-Boot, leeching a 6MB uImage, jumping into it waiting for >>> the console to start dumping the kernel boot messages was less than 5 >>> seconds in total. >> >> I Linux I had ti,nand-xfer-type = "polled";. After replacing it with >> ti,nand-xfer-type = "prefetch-polled"; I now get >> >> # dd if=/dev/mtdblock5 of=/dev/null bs=2M count=8 >> 8+0 records in >> 8+0 records out >> 16777216 bytes (17 MB) copied, 2.58744 s, 6.5 MB/s >> >> instead of: >> >> # dd if=/dev/mtdblock5 of=/dev/null bs=2M count=8 >> 8+0 records in >> 8+0 records out >> 16777216 bytes (17 MB) copied, 6.05157 s, 2.8 MB/s >> >> Do I see it right, that DMA support is not implemented in am33xx.dtsi? > > DMA support will have to be enabled in the board dts. e.g. am335x-bone.dts. > > if ti,nand-xfer-type is not specified (like in mainline kernel) then it > defaults to prefetch-polled
I get following error: omap-gpmc 50000000.gpmc: GPMC revision 6.0 nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xda nand: Micron MT29F2G08ABAEAWP nand: 256MiB, SLC, page size: 2048, OOB size: 64 omap2-nand omap2-nand.0: DMA engine request failed Kernel: 3.18.1 GPMC config: &gpmc { pinctrl-names = "default"; pinctrl-0 = <&nandflash_pins_s0>; ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ status = "okay"; nand@0,0 { reg = <0 0 4>; /* CS0, offset 0 */ nand-bus-width = <8>; ti,nand-ecc-opt = "bch8"; ti,nand-xfer-type = "prefetch-dma"; gpmc,device-nand = "true"; gpmc,device-width = <1>; gpmc,sync-clk-ps = <0>; gpmc,cs-on-ns = <0>; gpmc,cs-rd-off-ns = <44>; gpmc,cs-wr-off-ns = <44>; gpmc,adv-on-ns = <6>; gpmc,adv-rd-off-ns = <34>; gpmc,adv-wr-off-ns = <44>; gpmc,we-on-ns = <0>; gpmc,we-off-ns = <40>; gpmc,oe-on-ns = <0>; gpmc,oe-off-ns = <54>; gpmc,access-ns = <64>; gpmc,rd-cycle-ns = <82>; gpmc,wr-cycle-ns = <82>; gpmc,wait-on-read = "true"; gpmc,wait-on-write = "true"; gpmc,bus-turnaround-ns = <0>; gpmc,cycle2cycle-delay-ns = <0>; gpmc,clk-activation-ns = <0>; gpmc,wait-monitoring-ns = <0>; gpmc,wr-access-ns = <40>; gpmc,wr-data-mux-bus-ns = <0>; #address-cells = <1>; #size-cells = <1>; elm_id = <&elm>; }; }; Any idea? Btw. where DMA support should be configured? GPMC config has no "dmas" like other components like mmc, uart, USB etc. gpmc: gpmc@50000000 { compatible = "ti,am3352-gpmc"; ti,hwmods = "gpmc"; ti,no-idle-on-init; reg = <0x50000000 0x2000>; interrupts = <100>; gpmc,num-cs = <7>; gpmc,num-waitpins = <2>; #address-cells = <2>; #size-cells = <1>; status = "disabled"; }; Yegor _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot