On Friday 30 July 2010 11:47:14 pm Nicolas Luna wrote:
> Hi,
> 
> Thanks guys for your advices, I applied few of them and I save a lot of
> time, I'm at 3.9 seconds now. I'll also apply the deferred init calls
>  concept later.
> 
> I have two other questions.
> 
> I'm not sure to understand how to use EDMA to copy from NOR to RAM in
>  uboot. Every post that I found it is never explain the procedure to apply
>  this patch. 

Where is this patch?

>  Do you guys have a piece of code or something to get started
>  with that?
> 

I ported edma code from Linux kernel to u-boot(and ubl as well), then I 
changed memcpy with edma copy function under u-boot where kernel is copied 
from flash to ram, and later for the relocation in ram. That's all.

> In the same way, after the kernel boot, I have to start an application with
> QT and it takes 10 seconds to transfert QT lib (libQtCore, libQtGui,
> libQtNetwork, fonts) from NOR to RAM and start the application. QT stuff is
> ~20MB, I removed every useless lib to reduce the amount of data to
> transfert. I also optimised the EMIFA CS2 (I changed EMIFA clock to 150 Mhz
> and changed CS timing to be at the maximum of my NOR). I probed the NOR
>  chip select and there are big delays between read access. I suppose that
>  is because it is not using EDMA and the CPU is not able to feed the NOR...
>  I would like to reduce this transfert time to ~4 secondes or less and I
>  think that EDMA could maybe help to do it. Do you have any idea how to
>  apply it, or any other ideas?
> 

I think optimizing link time is more important than optimizing transfer time. 
You can use static linking but then your application needs to be GPL. So I 
don't think using static linking is an option. In that case you may use 
prelinking feature of gnu linker [1].

[1] http://people.redhat.com/jakub/prelink.pdf

Regards,
Caglar

> Thanks for your time.
> 
> Regards,
> 
> Nicolas
> 
> On Thu, Jul 29, 2010 at 10:42 PM, rohan tabish 
<[email protected]>wrote:
> > set verify=n this will ignore checksum
> >
> > Regard's
> > RT
> >
> > --- On *Thu, 29/7/10, Nicolas Luna <[email protected]>* wrote:
> >
> >
> > From: Nicolas Luna <[email protected]>
> > Subject: Boot time
> > To: [email protected]
> > Date: Thursday, 29 July, 2010, 0:59
> >
> >
> > Hi guys,
> >
> > I'm trying to make by board boot as quick as possible. I did some
> > optimisation with the "All This For 1 Second Boot" wiki and other
> > website. I would like to reduce a little bit more the boot time and I
> > wonder if you guys could give me some clues.
> >
> > I copied my boot log below. For sure I'll remove the uboot autoboot delay
> > and probably build a new kernel with modules. I putted in bold part that
> > I think it is possible to do more optimisation.
> >
> > 1- See bullet #3.
> > 2- The verifying Checksum is about 400 msec is it possible to skip it?
> > 3- It takes ~1 sec to start booting the kernel and there is a other ~1
> > sec delay between the starting kernel and the beginning of the
> > uncompressing. Why it's so long? Ok maybe there is the copy from NOR to
> > RAM but it should not take more than few msec.
> > 4- It takes ~1 sec to the kernel to free 120K memory... I got enought RAM
> > is it possible to remove it?
> >
> > I got custom hardware based on OMAP-L138 with FS (jffs2) and compressed
> > kernel in NOR Flash.
> >
> > Thanks a lot
> >
> > Nicolas
> >
> >
> > -------------------------------------------------------------------------
> >------------
> >
> > 0.000 0.000: OMAP-L138 initialization passed!
> > 0.000 0.000: Booting TI User Boot Loader
> > 0.004 0.004:    UBL Version: 1.65
> > 0.004 0.000:    UBL Flashtype: NOR
> > 0.008 0.004: Starting NOR Copy...
> > 0.008 0.000: CFI Query...passed.
> > 0.012 0.004: NOR Initialization:
> > 0.012 0.000:    Command Set: Intel
> > 0.012 0.000:    Manufacturer: INTEL
> > 0.016 0.004:    Size: 0x00000020 MB
> > 0.020 0.004: Valid magicnum, 0x55424CBB, found..
> > 0.184 0.164:    DONE
> > 0.188 0.004: Jumping to entry point at 0xC1080000.
> > 0.504 0.316:
> > 1.548 1.044: Hit any key to stop autoboot:  0
> > *2.372 0.824: ## Booting kernel from Legacy Image at c0007fc0 ...*
> > 2.372 0.000:    Image Name:   Linux-2.6.34
> > 2.380 0.008:    Image Type:   ARM Linux Kernel Image (uncompressed)
> > 2.380 0.000:    Data Size:    1505956 Bytes =  1.4 MB
> > 2.384 0.004:    Load Address: c0008000
> > 2.388 0.004:    Entry Point:  c0008000
> > *2.808 0.420:    Verifying Checksum ... OK*
> > 2.808 0.000:    Loading Kernel Image ... OK
> > 2.808 0.000: OK
> > 2.808 0.000:
> > *2.812 0.004: Starting kernel ...*
> > *2.812 0.000:*
> > *3.860 1.048: Uncompressing Linux... done, booting the kernel.*
> > 4.264 0.404: Linux version 2.6.34 (i...@idt-ubuntu-linux) (gcc version
> > 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #89 PREEMPT Thu Jul 22 15:24:03
> > EDT 2010 4.268 0.004: CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ),
> > cr=00053177 4.272 0.004: CPU: VIVT data cache, VIVT instruction cache
> > 4.276 0.004: Machine: DaVinci DA850/OMAP-L138 EVM
> > 4.280 0.004: Memory policy: ECC disabled, Data cache writeback
> > 4.284 0.004: DaVinci da850/omap-l138 variant 0x0
> > 4.288 0.004: Built 1 zonelists in Zone order, mobility grouping on. 
> > Total pages: 32512
> > 4.300 0.012: Kernel command line: lpj=747520 mem=128M
> > console=ttyS2,115200n8 root=/dev/mtdblock2 rootfstype=jffs2 rw ip=off
> > 4.304 0.004: PID hash table entries: 512 (order: -1, 2048 bytes)
> > 4.308 0.004: Dentry cache hash table entries: 16384 (order: 4, 65536
> > bytes) 4.316 0.008: Inode-cache hash table entries: 8192 (order: 3, 32768
> > bytes) 4.316 0.000: Memory: 128MB = 128MB total
> > 4.324 0.008: Memory: 126752k/126752k available, 4320k reserved, 0K
> > highmem 4.324 0.000: Virtual kernel memory layout:
> > 4.332 0.008:     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
> > 4.336 0.004:     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
> > 4.340 0.004:     DMA     : 0xff000000 - 0xffe00000   (  14 MB)
> > 4.344 0.004:     vmalloc : 0xc8800000 - 0xfea00000   ( 866 MB)
> > 4.348 0.004:     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
> > 4.352 0.004:     modules : 0xbf000000 - 0xc0000000   (  16 MB)
> > 4.356 0.004:       .init : 0xc0008000 - 0xc0026000   ( 120 kB)
> > 4.360 0.004:       .text : 0xc0026000 - 0xc02e8000   (2824 kB)
> > 4.364 0.004:       .data : 0xc02e8000 - 0xc0307a60   ( 127 kB)
> > 4.372 0.008: SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0,
> > CPUs=1, Nodes=1
> > 4.376 0.004: Hierarchical RCU implementation.
> > 4.376 0.000: NR_IRQS:245
> > 4.380 0.004: Console: colour dummy device 80x30
> > 4.384 0.004: Calibrating delay loop (skipped) preset value.. 149.50
> > BogoMIPS (lpj=747520)
> > 4.388 0.004: Mount-cache hash table entries: 512
> > 4.392 0.004: CPU: Testing write buffer coherency: ok
> > 4.396 0.004: DaVinci: 144 gpio irqs
> > 4.396 0.000: NET: Registered protocol family 16
> > 4.400 0.004: bio: create slab <bio-0> at 0
> > 4.404 0.004: SCSI subsystem initialized
> > 4.408 0.004: usbcore: registered new interface driver usbfs
> > 4.412 0.004: usbcore: registered new interface driver hub
> > 4.416 0.004: usbcore: registered new device driver usb
> > 4.416 0.000: Switching to clocksource timer0_1
> > 4.420 0.004: musb_hdrc: version 6.0, pio, host, debug=0
> > 4.424 0.004: Waiting for USB PHY clock good...
> > 4.428 0.004: musb_hdrc musb_hdrc: MUSB HDRC host driver
> > 4.432 0.004: musb_hdrc musb_hdrc: new USB bus registered, assigned bus
> > number 1
> > 4.436 0.004: hub 1-0:1.0: USB hub found
> > 4.440 0.004: hub 1-0:1.0: 1 port detected
> > 4.444 0.004: musb_hdrc musb_hdrc: USB Host mode controller at fee00000
> > using PIO, IRQ 58
> > 4.448 0.004: NET: Registered protocol family 2
> > 4.456 0.008: IP route cache hash table entries: 1024 (order: 0, 4096
> > bytes) 4.460 0.004: TCP established hash table entries: 4096 (order: 3,
> > 32768 bytes)
> > 4.464 0.004: TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
> > 4.468 0.004: TCP: Hash tables configured (established 4096 bind 4096)
> > 4.472 0.004: TCP reno registered
> > 4.476 0.004: UDP hash table entries: 256 (order: 0, 4096 bytes)
> > 4.480 0.004: UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> > 4.484 0.004: NET: Registered protocol family 1
> > 4.488 0.004: RPC: Registered udp transport module.
> > 4.492 0.004: RPC: Registered tcp transport module.
> > 4.496 0.004: RPC: Registered tcp NFSv4.1 backchannel transport module.
> > 4.500 0.004: JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
> > 4.504 0.004: msgmni has been set to 247
> > 4.508 0.004: io scheduler noop registered (default)
> > 4.512 0.004: da8xx_lcdc da8xx_lcdc.0: GLCD: Found Sharp_LK043T1DG01 panel
> > 4.516 0.004: Console: switching to colour frame buffer device 60x34
> > 4.520 0.004: Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
> > 4.528 0.008: serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
> > 4.532 0.004: serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
> > 4.540 0.008: serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
> > 4.540 0.000: console [ttyS2] enabled
> > 4.548 0.008: brd: module loaded
> > 4.556 0.008: physmap platform flash device: 02000000 at 60000000
> > 4.564 0.008: physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
> > 4.568 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > 4.572 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > 4.576 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > 4.580 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > 4.584 0.004:  Intel/Sharp Extended Query Table at 0x010A
> > 4.588 0.004: Using buffer write method
> > 4.588 0.000: Using auto-unlock on power-up/resume
> > 4.592 0.004: cfi_cmdset_0001: Erase suspend on write enabled
> > 4.596 0.004: RedBoot partition parsing not available
> > 4.600 0.004: Using physmap partition information
> > 4.604 0.004: Creating 3 MTD partitions on "physmap-flash.0":
> > 4.608 0.004: 0x000000000000-0x000000080000 : "bootloaders + env"
> > 4.620 0.012: 0x000000080000-0x000000280000 : "kernel"
> > 4.628 0.008: 0x000000280000-0x000002000000 : "filesystem"
> > 4.636 0.008: physmap-flash.0: failed to claim resource 0
> > 4.644 0.008: NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Micron
> > NAND 512MiB 3,3V 8-bit)
> > 4.652 0.008: Creating 2 MTD partitions on "davinci_nand.1":
> > 4.656 0.004: 0x000000000000-0x000001900000 : "data"
> > 4.664 0.008: 0x000001900000-0x000020000000 : "else"
> > 4.672 0.008: davinci_nand davinci_nand.1: controller rev. 2.5
> > 4.680 0.008: spi_davinci spi_davinci.1: Controller at 0xfef0e000
> > 4.692 0.012: tun: Universal TUN/TAP device driver, 1.6
> > 4.696 0.004: tun: (C) 1999-2004 Max Krasnyansky
> > <[email protected]<http://mc/[email protected]>
> >
> > 4.704 0.008: ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
> > 4.708 0.004: ohci ohci.0: DA8xx OHCI
> > 4.712 0.004: ohci ohci.0: new USB bus registered, assigned bus number 2
> > 4.716 0.004: Waiting for USB PHY clock good...
> > 4.720 0.004: ohci ohci.0: irq 59, io mem 0x01e25000
> > 4.788 0.068: hub 2-0:1.0: USB hub found
> > 4.788 0.000: hub 2-0:1.0: 1 port detected
> > 4.796 0.008: Initializing USB Mass Storage driver...
> > 4.804 0.008: usbcore: registered new interface driver usb-storage
> > 4.804 0.000: USB Mass Storage support registered.
> > 5.804 1.000: i2c_davinci i2c_davinci.1: controller timed out
> > 5.808 0.004: i2c_davinci i2c_davinci.1: initiating i2c bus recovery
> > 5.812 0.004: tps6507x-ts: probe of tps6507x-ts failed with error -110
> > 5.820 0.008: omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
> > 5.824 0.004: omap_rtc: RTC power up reset detected
> > 5.824 0.000: omap_rtc: already running
> > 5.828 0.004: i2c /dev entries driver
> > 5.832 0.004: TCP cubic registered
> > 5.836 0.004: Clocks: disable unused i2c1
> > 5.840 0.004: Clocks: disable unused emac
> > 5.848 0.008: davinci_emac_probe: using random MAC addr: 72:93:72:ad:15:13
> > 5.852 0.004: emac-mii: probed
> > 5.860 0.008: omap_rtc omap_rtc: setting system clock to 2000-01-01
> > 01:34:03 UTC (946690443)
> > 6.136 0.276: VFS: Mounted root (jffs2 filesystem) on device 31:2.
> > *6.140 0.004: Freeing init memory: 120K*
> > *7.356 1.216: Mounting proc*
> >
> > -----Inline Attachment Follows-----
> >
> >
> > _______________________________________________
> > Davinci-linux-open-source mailing list
> > [email protected]<http://mc/compose?to=Davin
> >[email protected]>
> > http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
> 
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to