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. Do you guys have a piece of code or something to get started with
that?

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?

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/[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